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/