Buscar

SOII_Materia_Parte08

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 1 
 
47) RESUMO AULA PASSADA 
 
Paginação sob demanda (“Memória Virtual”) 
 
Memória física cheia e é necessário mais memória: uma página é retirada da memória e fica invalida 
na Tabela de Paginas do Processo. Se for usada novamente o HW gera interrupção e o SO no 
tratamento traz a pagina de volta para a memória física. 
 
O processo fica bloqueado durante o tratamento da interrupção. 
 
Cálculo da perda de desempenho da paginação sob demanda. 
 
Mecanismo para reduzir o uso do disco na paginação sob demanda 
 
1º) Quando uma paginação de código é escolhida como vitima não é necessário salvá-la. 
 
2º) Quando o SO escolhe como vitima uma pagina que já foi vitima anteriormente e não foi 
alterada desde então não é necessário salvá-la. 
 
48) MECANISMO PARA REDUZIR O USO DO DISCO NA PAGINAÇÃO SOB DEMANDA 
 
CARREGAMENTO DAS PÁGINAS LOGICAS DE CÓDIGO “SOB DEMANDA” 
 
O SO faz uma coisa diferente para evitar o uso do disco. Conforme mostra a Figura 1 o processo tem 
um arquivo executável que está no disco. As paginas de código do processo não são todas carregadas 
na memoria física quando o processo começa. As páginas de código não vão para memória física. 
Logo conforme mostra a Figura 2 as páginas de códigos não são válidas na Tabela de Páginas do 
processo. 
 
Como o código não está na memória física quando este processo entra em execução e vai chamar o 
programa principal na primeira rotina do processo fará um salto para uma das paginas do código. 
Geralmente a pagina logica 0. Ela estará invalida. Então o HW gera uma interrupção. O SO vai 
tratar essa interrupção e não abortará o processo. 
 
O que está na página logica 0 é diferente da página logica 6 conforme mostra a Figura 2 da Tabela 
cde Página do Processo. A página logica 0 pertence a área de código. A pagina logica 6 não. Mas 
como o SO sabe disso? Ele consulta a Tabela Mapa de Memória da Figura 6. 
 
A interrupção foi gerada simplesmente porque o SO não carregou ainda a pagina logica 0. Não é uma 
pagina logica que está invalida de verdade ela existe só que não foi carregada para memoria ainda. 
Nesse momento que o SO trata essa interrupção ele coloca na memoria física a pagina logica 0 e 
mapeia na Tabela de Pagina do Processo. Nesse somente um pagina do código esta na memoria as 
outras duas paginas não estão no disco. E o processo é executado. 
 
Se o processo chamar alguma sub rotina que está na pagina logica do código que encontra-se no 
disco a mesma coisa vai acontecer. Vai gerar uma interrupção e o SO ao tratar essa interrupção 
percebe que precisa traz para memória a pagina logica que está no disco. Conforme mostra a Figura 
1. E preenche a tabela de pagina do processo conforme mostra a Figura 2. 
 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 2 
 
 
 
Figura 1 
 
 
Figura 2 
 
 
Figura 3 
 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 3 
 
 
Figura 4 
 
 
 Figura 5 Figura 6 
 
O SO carrega as paginas de código para memoria física aos poucos. Isto é feito quando o processo 
precisa utilizar a pagina pela primeira vez. Dai o nome de carregamento “sob demanda”. O código só 
é carregado quando ele é demandado. Quando tem um sub rotina que precisa dele. É esse mecanismo 
que dá o nome a paginação com o uso do disco que é paginação sob demanda. 
 
Qual é a vantagem desse mecanismo? Temos duas vantagens. Primeiro o fato de não carregar o 
código para memoria pode fazer com que o processo seja útil para o usuário de forma mais rápida. 
Por exemplo, digamos que com as duas paginas carregadas o usuário consiga utilizar o processo 
normalmente. Não tem nenhum rotina sendo chamada para pagina de código que esta no disco. 
Então o usuário consegue utilizar o processo sem estar todo o processo carregado na memoria física. 
 
Qual o beneficio disso? O usuário consegue utilizar o processo mais rapidamente. Isso é importante 
para processo grandes. Por exemplo, o Word. Tem muita coisa que o código dele tem que não é 
utilizado em toda execução do Word. Se ele for ler todo o código do disco para memoria gastará um 
tempo razoável. Mas, como este mecanismo ele não fará isto. O código será carregado aos poucos 
para memoria. Assim para começar a usar será mais rápido e durante a execução do processo do 
Word será um pouco devagar, pois o código está sendo carregado pelo SO para memoria. 
 
Portanto, essa é a primeira vantagem a economia para começar a utilizar o processo. 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 4 
 
A segunda vantagem e a mais importante é o menor gasto de memoria física. Durante um tempo 
importante utilizou menos memoria porque não carregou todo o código do processo para memoria 
ainda. É importante porque existe processo que nunca utilizarão todas as suas páginas de código. O 
Word é um exemplo disso. Não utiliza todas as funcionalidades (todo o código) de uma só vez, mas 
sim de acordo com a solicitação do usuário. 
 
ADIANTAR O SALVAMENTO NO DISCO DAS PAGINAS VITIMAS (POOL DE PAGINAS 
VITIMAS) 
 
No momento que a memoria física está quase cheia. O SO préescolhe as paginas vitimas. O SO só 
escolhe pagina vitima a principio quando a memoria física encheu. O que acontece é que muitas 
vezes tem que liberar espaço na memoria física pra trazer um pagina logica que está no disco. Nesse 
caso ele adianta uma coisa que ele faria no futuro que é adiantar a pagina vitima. 
 
Ao invés de salvar a pagina vitima na hora que precisa de memoria física de verdade. O SO adianta 
esse salvamento no momento que o disco está sem uso. Assim não terá prejuízo, pois o disco não 
está sendo utilizado. Quando o processo precisar de memória não será preciso escolher e salvar uma 
pagina vitima em disco, pois isto já foi feito e tem memoria física livre. 
 
Com este mecanismo a memoria física nunca fica cheia, pois quando está quase cheia o SO escolher 
uma pagina vitima e salva em disco quando o disco não está sendo utilizado. Esse mecanismo 
também é chamado de pool de paginas vitimas. O SO sempre mantem um numero de paginas vitimas 
para serem salvas em disco. 
 
Portanto, esses são os quatro mecanismos para evitar o uso do disco. 
 
ALGORITMOS DE ESCOLHA DE PÁGINAS VITIMAS 
 
A seguir temos a sequencia temporal de paginas logicas que um processo acessou: 
 
 
 
Como o SO escolhe as paginas que vão sair da memória física (paginas vitimas) para colocar as que 
o processo precisa utilizar? Através dos algoritmos a seguir. Utilizaremos no exemplo uma memoria 
física com 3 paginas. E o processo contém 8 paginas logicas. 
 
- Algoritmos para escolha das páginas vítimas, ou seja, páginas que são escolhidas para 
serem salvas em disco: 
 
 FIFO : A primeira página que entra na fila é a primeira a sair 
 Ótimo : Escolhe a página que não será usada em futuro próximo. Não é usado na 
prática; 
 LRU (Least Recently Used): É usado na prática. É escolhida a página usada mais 
recentemente para ir para o disco. Respeita o princípio da localidade 
 2ª chance: 
 
 
1º) ALGORITMO – FIFO (FIRST IN FIRST OUT) 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 5 
 
Conforme mostra a Figura 7. Dentro da pagina física colocaremos o numero da pagina logica que 
precisa ser colocada na memoria física. Inicialmente até a terceira pagina logica conseguimos colocar 
na memoria física sem problema de falta de pagina de memoria física. Ao tentar colocar a quarta 
pagina logica que é a pagina logica 2 na memoria física não conseguiremos, pois ela está cheia. 
 
O SO escolherá uma pagina vitima para salvar em disco e libar espaço na memoria física para 
colocar a pagina logica 2. Com este algoritmo coloca em uma fila as paginas logicas que foram para 
memoria física e escolhe como vitima primeira paginada fila sempre. 
 
 
Figura 7 
 
Fila de Pagina logica: 701230423 
 
Em 2 a pagina logica 7 é colocada na memoria, em 3 a pagina logica 0 é colocada na memoria, em 4 
a pagina logica 1 é colocada na memória. Para colocar a pagina logica 2 na memoria é preciso tirar 
um página logica. Então a página logica 7 é retirada colocada em uma fila e a pagina logica 2 é 
colocada no lugar dele. 
 
Agora a memoria física tem três paginas validas que são as paginas logicas 2, 0 e 1. A próxima 
pagina a ser acessada é a pagina logica 0 que já está na memoria física é um pagina válida que está 
com o bit valido ligado. Não precisa fazer nada. 
 
A pagina logica utilizada a pagina logica 3 que não está na memoria física é uma pagina logica 
inválida na tabela de paginas e o que o HW vai fazer vai gerar uma interrupção o que o SO vai fazer 
vai tratar a interrupção colocando na memoria física a pagina logica 3. Só que como a memoria física 
está cheia o SO vai escolher a pagina vitima entre as paginas 0, 2 e 1. 
 
Em 5 a pagina logica 0 já está na memória. 
 
Neste algoritmo temos 15 interrupções que é igual 15 Page Fault (Falta de Página) 
 
2º) ALGORITMO ÓTIMO (ALGORITMO TEÓRICO) 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 6 
 
Nesse algoritmo escolha-se a pagina vitima que não terá uso logo em seguida. A pagina vitima será 
a que terá uso mais distante no futuro. 
 
Figura 8 
 
Em 4 a memória está cheia e sai o próximo mais longe e a pagina 2 entra no lugar dele. 
 
Esse algoritmo é o que gera menos interrupção. Temos 9 interrupções que é igual 9 Page Fault 
(Falta de Página). 
 
O problema dele é que tem conhecer o Futuro, mas não tem como saber o futuro. Logo ele é um 
algoritmo somente teórico serve apenas como base de comparação. 
 
3º) ALGORITMO LEAST RECENTLY USED (LRU) 
 
Esse algoritmo utiliza a ideia do algoritmo ótimo, mas ao invés de olhar para o futuro olha para o 
passado, ou seja, escolhe a pagina que teve o uso mais distante no passado. 
 
 
Figura 9 
 
Nesse algoritmo o mais passado é igual ao menos recente. A pagina vitima é a pagina menos usada 
recentemente. 
 
Em 4 a memoria está cheia e a pagina logica 2 precisa ser colocada na memória, mas uma pagina 
deve ser retirada da memoria. No LRU a pagina vitima é a pagina mais distante usada no passado 
(atrás, anteriormente). Então escolhe a pagina vitima olhando qual das paginas logicas 7, 0 e 1 foi 
utilizada mais distante no passado. Nesse caso a pagina vitima será a 7. Então a pagina logica 2 entra 
no lugar da pagina logica 7. 
 
Em 5 a pagina logica 0 já está na memoria. Em 6 temos que colocar a pagina logica 3 na memoria 
física. Analisando as paginas logicas 2, 0 e 1 o algoritmo escolhe a pagina logica 1, pois é a que tem 
o uso mais distante. Então a pagina logica 3 entra no lugar no pagina logica 1. 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 7 
 
A próxima pagina é a 0 que já está na memoria. Em 7 precisamos colocar a pagina logica 4 na 
memoria física. O SO escolhe uma vitima entre as paginas logicas 2, 0 e 3. A pagina logica 2 é a 
vitima ela sai e entra a 4. 
 
Em 8 a pagina logica 2 tem que entrar na memoria física. Acabamos que tirar a pagina logica 2 da 
memoria física. Nesse caso o algoritmo LRU não fez uma boa escolha. O algoritmo continua a ser 
aplicado até que todas paginas logicas da sequencia do exemplo tenham sido colocadas na memoria. 
 
O problema é o seguinte o algoritmo que escolhe a pagina vitima tem saber qual foi a sequencia 
exata de paginas acessadas pelo processo, mas isso não é facilmente conhecido porque o SO, por 
exemplo, não sabe quais paginas foram para memoria física ele só fica sabendo das coisas quando 
está em execução. 
 
Nesse exemplo durante a colocação das três primeiras paginas logicas na memoria física o SO não 
entrou em execução, pois nenhuma interrupção aconteceu. O HW sabe quem foi que executou. O 
problema é que o HW não marca as paginas que ele acessou. 
 
A sequencia exata embora ela tenha ocorrido ninguém fica sabendo no futuro. Embora o algoritmo 
LRU seja possível ser implementado na prática hoje em dia ele não é implementado porque não tem 
disponível a informação para o SO. 
 
O LRU é um algoritmo que não é fácil de implementar, porque, o LRU significa uma ordem de 
quem vai usar por mais tempo, isso é difícil de manter, pois, qualquer execução faz com que a página 
seja a página mais recentemente usada, então qualquer coisa que rode muda a ordem de uso da 
página. Existe uma alternativa de verificar o tempo de uso das páginas que não é exatamente o LRU, 
é uma forma de aproximar a idéia do uso recente, mantendo a ordem exata de como a página foi 
usada. 
 
Como funciona? 
A tabela de páginas tem um campo a mais que é o “acessado”, toda vez que uma página lógica é 
acessada o hardware vai ao campo e muda o bit, por exemplo, se a página 8 for usada o hardware vai 
ao campo acessado e desliga o bit. 
 
Qual a idéia básica do uso do LRU? 
De tempos em tempos uma rotina é executada e zera todos os bits de todas as páginas. Digamos que 
falte memória e o SO tenha que escolher uma página vítima, que tipo de página que o SO vai 
escolher? A página que está com o bit 0 em acessado ou a página com bit 1 em acessado? A página 
que está com bit 0, pois a página com bit 0 não foi acessada recentemente. Sabe-se, com isso, quem 
teve acesso recente, e quem não teve acesso recente. Então, escolhe uma das páginas que não teve 
acesso recente. 
 
4º) ALGORITMO NOT RECENTLY USED (NRU) 
 
Tipo de algoritmo usado atualmente é aquele que escolhe uma pagina qualquer que não teve uso 
recente. O nome desse algoritmo é o Not Recently Used. Isto dá para ser feito. Mas como é feito? 
Com ajuda do HW preenchendo um bit a mais que é colocado na Tabela de Páginas do Processo. O 
nome desse bit é Acessado (ou usado). Ele é ligado pelo HW quando a pagina logica tem qualquer 
tipo de acesso. Conforme mostra a Figura 10. 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 8 
 
 
Figura 10 
 
O Bit Acessado (ou usado) só diz se teve ou não acesso a esta pagina logica, mas não diz se foi 
recente. Então a pagina está na memoria ela sofreu acesso o HW vai nesse campo e altera para 1. 
Desse jeito consultando esse campo o SO consegue descobrir quais paginas foram acessadas. No 
entanto, isso não resolveu o problema. 
 
Como o SO sabe que o acesso a pagina foi recente? Para isto tem que implementar um mecanismo 
para auxiliar o SO que de tempos em tempos ele vai no bit Acesso é coloque 0. Desse jeito ele 
consegue saber qual a pagina logica que teve o uso mais recente, ou seja, é pagina logica com o bit 
Acessado igual 1 ainda. Isto quer dizer que esta pagina foi acessada depois da ultima vez que o SO 
zerou o campo bit Acessado. 
 
5º) ALGORITMO DA 2ª CHANCE 
 
Esse algoritmo é parecido com o algoritmo FIFO só que dá uma segunda chance para a pagina caso a 
pagina já tenha sido acessada. O que é a segunda chance? É colocar a pagina no final da fila de novo. 
Mas na hora que ela vai para o fim da fila o Bit Acessado dela é zerado. 
 
 
Figura 11 
 
Fila de Pagina logica: 7 0 1 7 0 1 2 0 3 ... 
 
Aplicando o algoritmo da 2ª Chance na sequencia de paginas logicas utilizadas pelo processo temos 
o seguinte: a pagina logica 7 é colocada na memoria física e o bit Acessado dela é alterado pelo HW 
para 1. Colocamos a pagina logica 0 na memoria e o bit Acessado dela igual a 1. Depois colocamos a 
pagina logica 1 e o bit Acessado dela igual a 1. A memoria encheu precisamos tirar uma pagina 
logica da memoria para salvar em disco e colocar a próxima pagina logica que é a 2. 
 
A pagina vitima é a primeira pagina logica que foi para memória física. Nessa hora é avaliado se a 
pagina 7 terá uma segunda chance. Nesse caso terá, pois o bit Acessado dela está igual a 1. Ela é 
colocada no final da fila novamente e seu o bit Acessadoé alterado para 0. No lugar dela é colocada 
a pagina logica 2. 
 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 9 
 
Esse procedimento é repetido até que todas as paginas logicas da sequencia apresentada tenham ido 
para memoria física na ordem apresentada. Lembrando que a pagina vitima só terá segunda chance 
se o bit Acessado dela estiver igual a 1 quando ela foi escolhida como pagina vitima. 
 
Os números ao lado da Figura 11 representam o Bits Acessado da tabela de paginas. 
 
Este algoritmo é utilizado no Windows. Ele segue a lógica do algoritmo NRU. 
 
Se a pagina logica estiver com o bit Acessado igual a 0 ela será a pagina vitima. Se estiver com esse 
bit igual 1 não será a pagina vitima e terá a segunda chance. 
 
O Windows mantem uma fila com a ordem que as paginas vieram da memoria. No caso do Linux é 
igual ao numero da pagina a pagina seguinte é igual ao numero da pagina que se tem e seu nome é 
Algoritmo do Relógio. 
 
O HW que não tem o Bit Acessado o SO simula o Bit Acessado para auxilia-lo a descobrir quando a 
pagina logica foi acessada pela ultima vez. Conforme mostram as Figuras 12 e 13. 
 
Figura 12 
 
 
Figura 13 
 
Digamos que estejam validas as paginas 0, 1, 2 e 4. O SO simula o bit Acessado colocando uma 
informação falsa na tabela de paginas do processo. Ele coloca Valido igual 0 nas paginas logicas que 
estavam validas. O SO coloca a informação correta na tabela auxiliar que usada somente pelo SO no 
campo Realmente Valido que vão conter o valor 1. No campo Acessado ele coloca o valor 0. 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 10 
 
 
Quando o processo precisar utilizar, por exemplo, a pagina logica 4 o HW vai gerar uma interrupção. 
O SO vai tratar essa interrupção e verifique na tabela auxiliar o valor verdadeiro do campo bit válido 
da Tabela de pagina do processo. Logo, o SO não aborta o processo. E no tratamento dessa 
interrupção o SO liga o bit Acessado e coloca o valor correto no campo Válido na pagina logica 4 da 
Tabela de Pagina do Processo. Conforme mostram as Figuras 12 e 13. 
 
Através do campo Acessado na tabela auxiliar do processo o SO consegue saber qual pagina logica 
foi acessada recentemente e dá uma 2ª Chance se o bit Acessado for igual a 1. 
 
Quando ocorre a 2ª chance o SO: 
 
1) Zera o bit acessado na tabela auxiliar 
2) Zera o bit válido na tabela principal (Tabela de paginas sem o bit acessado) 
 
Problema: Tem muita página e se zerar todos os bits de tempo em tempo terá desperdício de tempo. 
 
Tem outro mecanismo que é mais eficiente: Para começar estão todos zerados então, tem um 
ponteiro que vai passando e só anda quando tem falta de página. O ponteiro vai zerando os que não 
estiverem zerados. 
 
Divide páginas em páginas que tiveram acessos recentes e páginas que não tiveram recentes. Se a 
página não foi executada desde a última vez que o ponteiro passou por ela é porque não teve uso 
recente. Se a página não foi acessada não teve uso recente. 
 
Escolhe um tempo de passagem e considera recente se não passou nesse tempo. Assim, se for um 
processo antigo então pode ser vítima. 
 
O que é acesso recente? 
De tempos em tempos o algoritmo zera tudo, então o acesso recente é o tempo que ele zerou desde a 
última vez que ele zerou todo mundo. É o momento que o ponteiro passou pela página pela última 
vez, se não teve uso nesse intervalo de tempo é por que não teve uso recente. 
 
 
 
 
 
 
6º) ALGORITMO do relógio de 2 ponteiros: 
 
Cada ponteiro tem uma função diferente, nessa versão existe um ponteiro que desce zerando o bit de 
validade. Digamos agora que vamos escolher uma página vítima o algoritmo vai rodando, a página 
pode ser vítima? Não, pois o byte de validade é 1(1ª linha da tabela de página), então o algoritmo vai 
rodando e desce o ponteiro, a linha de baixo pode ser vítima? Sim, então essa vira vítima. O tempo 
recente é o intervalo de tempo de passagem entre os ponteiros, com isso consegue-se medir o que é 
recente, quanto mais distantes estejam os ponteiros, mais perto fica do que é recente. 
 
 
 
 
agora 
A vítima que o ponteiro 
percorre 
O ponteiro esta passando 
pela página 
recente 
Passou o ponteiro que 
procura a vítima 
SISTEMA OPERACIONAL II – PARTE 8 
 
Elaborado por Luciana SA Amancio Página 11 
 
 
 
 
Existe uma questão agora que é a seguinte: 
Onde eu posso escolher a página vítima? 
Qual o conjunto de páginas que podem ser vítimas? 
Alocação de páginas físicas: global (escolha de página vítima de qualquer processo) e local(escolha 
de página vítima de um único processo) 
 
Difícil implementação: Local: Quantidade de páginas físicas que serão reservadas a cada processo. 
Cada processo terá um nº x de páginas físicas reservada a ele, se um processo gera falta de página, 
incluirá a página vítima entre as páginas físicas reservadas a este processo. A maior dificuldade é 
saber qual número de páginas físicas que devem ser reservadas. Como o SO sabe quanto de páginas 
tem que reservar para cada processo, usando o princípio da localidade? O número de páginas que o 
processo esta usando é chamado de working – set, que é constante em um certo intervalo de tempo, 
baseado no princípio da localidade. A idéia é definir com o nº de páginas reservadas ao processo, o 
tamanho é o tamanho do working –set reservado a esse processo de forma que enquanto o processo 
estiver usando aquelas páginas, não haverá falta de páginas. Existe um mecanismo que verifica se 
está sendo reservado o nº de páginas maior ou menor que o working-set daquele processo. Esse 
mecanismo observa o nº de falta de páginas que o processo gera. Se uns processos geram poucas 
falta de páginas é porque está reservado para este processo um nº de páginas que é maior que o 
tamanho do working –set, pois a falta de página só vai acontecer quando o working-set mudar. Por 
exemplo, uma rotina A, com m working –set, são as páginas locais a rotina e a página da área de 
código da rotina, se esse processo da rotina A , chama um processo da rotina B, poucas páginas vão 
ser usadas, as páginas usadas são as de código e as de pilha da rotina B, então mudou o working set. 
 
Quando o working – set muda? Quando a rotina for chamada. 
 
Percorre o ponteiro que o 
bit é acessado 
recente

Outros materiais