Sistemas Operacionais
Prof. André Y. Kusumoto
[email protected]
Prof. André Y. Kusumoto – [email protected]
Memória Virtual
Fundamentos
• Gerência de memória
• Todo o espaço lógico mapeado no espaço físico
• O tamanho do programa é limitado pelo tamanho da memória
• Um programa ocupando apenas um espaço de memória que
realmente é necessária permite uma economia substancial de
espaço de memória
2/
Prof. André Y. Kusumoto – [email protected]
Memória Virtual
• Técnica que permite a execução de um processo sem que ele
esteja completamente em memória
• Apenas parte do programa precisa estar na memória para
execução.
• Manter em memória apenas as páginas necessárias
• Espaço de endereçamento lógico pode ser maior que o espaço
físico.
3/
Prof. André Y. Kusumoto – [email protected]
Paginação sob Demanda
• Traz a página para a memória somente quando ela for
necessária.
• Menos I/O necessário
• Menos memória necessária
• Capacidade de executar programas maiores que a capacidade
disponível de memória
• Página é necessária
• página presente na memória -> acesso
• página ausente -> traz para a memória
4/
Prof. André Y. Kusumoto – [email protected]
Paginação sob Demanda
Bit de Presença (válido-inválido)
• A cada entrada de tabela de página, um bit de válido-inválido é
associado (1 -> na memória, 0 -> ausente)
• Durante a tradução de endereço, se o bit de presença para a
página que será acessada for zero -> falta de página.
Página
BP
1
0
1
1
Tabela de páginas
5/
Prof. André Y. Kusumoto – [email protected]
Paginação sob Demanda
Falta de Página (Page Fault)
• Se há uma referência para uma página ausente, a execução é
desviada para o Sistema Operacional (Trap - falta de página).
• O SO busca frame livre na memória.
• Traz a página do disco para o frame livre (swapping).
• Atualiza a tabela de páginas, bit de presença da página passa
para 1.
• Reinicia a execução do ponto interrompido.
6/
Prof. André Y. Kusumoto – [email protected]
Paginação sob Demanda
Substituição de Páginas
• Se não houver frame livre na memória: substituição de página
• SO escolhe alguma página para ser retirada da MP (página que
não esteja em uso) e realiza swapping para o disco, liberando o
quadro que ela ocupava.
7/
Prof. André Y. Kusumoto – [email protected]
Algoritmos de Substituição de Páginas
• É utilizado um algoritmo para a escolha da página a ser
substituída.
• O algoritmo deve resultar no menor número possível de faltas
de página.
• A página escolhida deve ficar o maior tempo possível e ser
acessada para que não ocorra outra falta de página => é
desejável o menor número de faltas de páginas
8/
Prof. André Y. Kusumoto – [email protected]
Algoritmo First-In-First-Out (FIFO)
• A página carregada a mais tempo é a candidata a ser retirada
da memória
• Exemplo com 3 frames:
• Desempenho:
• Nem sempre bom.
• Página escolhida para ser retirada pode ainda estar sendo muito
utilizada.
9/
Prof. André Y. Kusumoto – [email protected]
Algoritmo Least Recently Used (LRU)
• Menos Recentemente Utilizada (MRU)
• Substitui a página que não foi acessada a mais tempo – menos
recentemente utilizada.
• Premissa básica é que páginas acessadas recentemente por um processo
serão novamente acessadas em um futuro “próximo”
• Exemplo com 3 frames:
10/
Prof. André Y. Kusumoto – [email protected]
Algoritmo Least Recently Used (LRU)
Implementação
• Contadores na tabela de páginas
• Contador
• Tempo da última referência (time stamp)
• Desvantagem é o overhead
• Implementação do contador
• Cada entrada de página tem um contador; toda vez que a página é
referenciada por essa entrada, copia o clock para o contador
• Quando uma página precisa ser mudada, veja os contadores para
determinar quais devem mudar (menor valor do campo contador)
11/
Prof. André Y. Kusumoto – [email protected]
Alocação de Quadros
Questão
• Como se deve alocar frames na presença de “n” processos ?
Problemas
• Qual o mínimo necessário por processo ?
• Cada processo necessita de um mínimo número de frames para executar.
• Definido pelo conjunto de instruções da máquina (modos de endereçamento)
• MOV MEM,POS - necessita três páginas
• Quantas páginas físicas alocar para cada processo ?
• Quanto menor o número de frames alocado a um processo maior a taxa de falta de
páginas (page fault)
• Queda de desempenho do sistema
• Tentar manter o máximo de páginas em memória
• Número máximo de frames alocados é definido pelo tamanho da Memória
Principal
12/
Prof. André Y. Kusumoto – [email protected]
Paginação Excessiva - Thrashing
• Se o número de frames alocados a um processo é inferior ao número de
páginas efetivamente em uso
• O processo tentará acessar uma nova página que não está presente =>
falta de página.
• Para carregar a página não presente, uma página do processo é retirada.
• O processo tentará acessar a página recém retirada => falta de página...
• Paginação excessiva, baixa utilização da CPU
13/
Download

Memória virtual