Documente Academic
Documente Profesional
Documente Cultură
A memória física - é aquele que vai para a memoria física, ou seja, é usado para endereçar
circuitos integrados de memorias
Espaço de endereçamento logico de um processo é formado por todos os endereços que esse
processo gerar, o espaço de endereçamento físico é formado por todos endereços aceitos pelo
circuito integrado de memoria
A memória fi ́sica também é dividida em páginas fi ́sicas com tamanho fixo, idênti- co ao
tamanho da página lógica0 Os endereços de memória fi ́sica também podem ser vistos como
compostos por duas partes: os 3 primeiros bits indicam um número de página fi ́sica; os 2
últimos bits indicam um des- locamento dentro dessa página fi ́sica.
Um programa é carregado página a página. Cada página lógica do processo ocupa exatamente
uma página fi ́sica da memória fi ́sica. Entretanto, a área ocupada pelo processo na memória
fi ́sica não precisa ser conti ́gua. Mais do que isso, a ordem em que as páginas lógicas aparecem
na memória fi ́sica pode ser aleatória, não precisa ser a mesma da memória lógica. Na
paginação, uma página lógica pode ser carregada em qualquer página fi ́sica que esteja livre.
Dessa forma, não existe fragmentação externa. Como a unidade de aloca- çao ̃ é a página, e o
tamanho de um processo raramente é igual a um múltiplo do ta- manho de página, isso
introduz uma fragmentação interna.
O registrador de base da tabela de páginas (page table base register, PTBR) indica o endereço
fi ́sico de memória onde a tabela está colocada. O registrador de limite da tabela de páginas
(page table limit register, PTLR) indica o número de entradas da tabela.
Na paginação simples, todas as páginas lógicas de um processo são sempre car- regadas para a
memória fi ́sica, resultando em uma entrada válida na tabela de páginas para cada página
lógica do processo.
Na “paginação por demanda pura”, somente são carregadas para a memória fi ́sica aquelas
páginas realmente referenciadas pelo processo (a carga das páginas é feita à medida que
ocorrem as faltas). O processo inicia só com a sua página zero na memória, ou seja, todas as
entradas da sua tabela de páginas, exceto a primeira, são inválidas.
Para ser executado, um processo necessita estar carregado na memória o que, no caso da
paginação por demanda, implica em se ter em memória uma certa quantidade de páginas
lógicas. Isso significa alocar uma quantidade equivalente de páginas fi ́sicas da memória RAM
para esse processo.
Nas seções anteriores ficou claro que, como parte do atendimento à uma interrupção por falta
de página, uma página fi ́sica livre deve ser alocada. Entretanto, à medida que processos vão
sendo carregados para a memória, é possi ́vel que todas as páginas fi ́si- cas acabem ocupadas.
Nesse caso, para atender à falta de página, é necessário antes liberar uma página fi ́sica
ocupada. Isso significa escolher uma página lógica que está na memória, copiar seu conteúdo
de volta para o disco e marcá-la como inválida na tabela de páginas do seu processo. A página
escolhida para ser copiada de volta ao disco é chamada de página vi ́tima. O algoritmo de
substituição de páginas é responsável pela escolha da página vi ́tima. Ele é muito importante
para a eficiência do mecanismo como um todo. Uma esco- lha errada significa que a página
removida será novamente acessada em seguida, gerando uma nova falta de página.
O bit de sujeira (dirty bit) indica quando uma página foi alterada durante a execução do
processo. Esse bit é zerado pelo sistema operacional quando a página é carregada para a
memória.
O bit de referência (reference bit) indica quando uma página foi acessada pelo processo. Este
bit é feito igual a zero pelo sistema operacional quando a página é car- regada para a memória.
O bit de tranca (lock bit) serve para o sistema operacional “trancar” uma página lógica na
memória fi ́sica.
O algoritmo FIFO (first in – first out) escolhe para substituição a página que está há mais tempo
residente em memória. A principal vantagem do FIFO é sua implementação simples: basta uma
lista de até M posições e um ponteiro para indicar a frente da fila.
O sistema de armazenagem LIFO significa “last in, first out”, o que quer dizer, em
português, “último que entra, primeiro que sai”, enquanto o sistema FIFO significa
“first in, first out”, ou seja, “primeiro que entra, primeiro que sai”.
O algoritmo LRU (least recently used) surge então como opção para corrigir a defi- ciência do
FIFO de não considerar a localidade de referência. O LRU escolhe como página vi ́tima aquela
que foi acessada a mais tempo, isso é, a que foi “menos recentemente utilizada”.
Algoritmos locais
O princi ́pio de funcionamento dessa poli ́tica é novamente ilustrado com a análise de um
algoritmo ótimo. Nesse caso, para cada processo, o algoritmo ótimo ajus- ta o número de
páginas em memória de acordo com as suas futuras referências.
O modelo de working set é uma aproximaçao ̃ do algoritmo ótimo que estima quais as páginas
serão necessárias no futuro com base em quais páginas foram acessadas no passado.
O tratamento de uma falta de página é várias ordens de grandeza mais lento que um acesso
normal à memória. Logo, o impacto da taxa de falta de página sobre o tempo de execuçao ̃ de
um processo é muito grande. Quando um processo possui um número muito pequeno de
páginas fi ́sicas para executar, a sua taxa de falta de página aumenta e, à medida que isso
acontece, o processo para de realizar qualquer trabalho útil. Tudo que o processo faz é esperar
pelo atendimento de faltas de páginas. Nesse momento, é dito que está ocorrendo thrashin
Para os usuários, o thrashing se apresenta como o sintoma de um congelamento no sistema.
No caso da alocação local, esse congelamento poderá estar limitado a apenas alguns
processos.