Gestão de Memória algoritmos e políticas Criação de espaços de endereçamento virtual com gestão eficiente (gasto mínimo) da memória física disponível O que carregar(colocar em memória física) e quando? (Políticas de carregamento) Minimizar o tempo de carregamento dos programas. Alocar apenas a memória física necessária para a execução Qual a memória física disponível a usar? (Políticas de alocação) Partilhar memória quando possível Ex: código e dados read-only Dados de leitura/escrita podem ser partilhados? (Algoritmo Copy-on-write) Partilha de memória física entre processos Memória como forma de comunicar informação entre processos Memória Virtual Utilização de memória secundária para estender o total de memória disponível Na falta de memória física qual a página a substituir? (Políticas de substituição) 17-10-2014 Sistemas Operativos 1
Transformação de endereço virtual em endereço físico (hardware + software) Software (Page fault exception handler) Page fault exception Start Hardware Valid address and access? No send exception to process No Page Present? (and) Accepted access? Restart instruction Process Page Access Physical address 17-10-2014 Sistemas Operativos 2
bloco ProcessPage do page fault handler (Resolve a situação em que o endereço é valido mas a página não está presente) Page fault exception handler (retrieving page) Are There free Frames? frame allocation No No Faulted Page in disk? Find a page to free (page substitution) Load frame from disk No new page is Modified? Update Page Table Write (if necessary) to disk 17-10-2014 Sistemas Operativos 3
Copy-on-Write (permite a partilha de páginas físicas enquanto não forem modificadas em cada um dos espaços de endereçamento que as utilizem) As páginas partilhadas são marcadas como read only (e copy-on-write usando um dos bits disponíveis na PTE). Uma tentativa de escrita gera excepção com as seguintes consequências: criação de uma cópia se a página estiver a ser partilhada colocação da página read/write Consegue-se uma redução da memória física utilizada pois é possível partilhar código e dados iniciados enquanto não ocorrerem alterações 17-10-2014 Sistemas Operativos 4
Políticas de carregamento de páginas (Fetch) Por necessidade - Demand paging As páginas são carregadas em memória física apenas quando são acedidas Por antecipação Pre-paging Quando uma página é acedida são carregas páginas na sua vizinhança, para optimizar a transferência de disco e minimizar o número de page faults, na eventualidade das pág. adjacentes serem acedidas. 17-10-2014 Sistemas Operativos 5
Políticas de substituição - Princípio da localidade Princípio da localidade Random access Retirado do livro Operating Systems de William Stallings, 6ª Edição 17-10-2014 Sistemas Operativos 6
Políticas de substituição de páginas (replacement) As políticas podem ter variantes globais (agindo sobre todos os processos), locais (agindo sobre o processor gerador da page fault) ou mistos A tabela seguinte apresenta cenários para diferentes políticas (algoritmos) de substituição locais onde se assume por simplicidade um máximo de 3 páginas alocadas a um processo Retirado do livro Operating Systems de William Stallings, 6ª Edição 17-10-2014 Sistemas Operativos 7
Resumo dos algoritmos de substituição Optimal LRU FIFO CLOCK apenas usado como referência, não realizável realizável, mas com um custo em hardware muito grande. realizável e simples, mas os resultados não são os melhores. O melhor compromisso entre simplicidade e eficiência. Baseia-se em informações hardware normalmente existentes nas MMU s modernos (bit accessed ou bits accessed e modified). 17-10-2014 Sistemas Operativos 8
Working Sets Espaço de trabalho (Working Set) de um processo num determinado intervalo de tempo é o conjunto de páginas acedidas nesse intervalo de tempo Devido ao princípio da localidade, verifica-se que, em geral, o working set dos processos é muito inferior ao seu espaço de endereçamento. Chama-se Resident Set de um processo ao conjunto de páginas físicas alocadas ao processo. A situação ideal é que o working set e o resident set de um processo sejam coincidentes. Retirado do livro Operating Systems de William Stallings, 6ª Edição 17-10-2014 Sistemas Operativos 9
Objectivos de aprendizagem Enumerar e especificar os objectivos essenciais presentes no desenvolvimento de políticas e sistemas de gestão de memória. Comprender o papel essencial do handler de page fault (falha de acesso a página) nos sistemas de gestão da memória Compreender os mecanismos, algoritmos e políticas que permitem minimizar a utilização da memória física pelos processos em actividade: copy-on-write demand paging Saber explicar o modo como o SO mantém um conjunto de processos em execução cujo somatório de espaços de endereçamento é muito superior à memória física disponível, ou mesmo que o espaço de endereçamento de um único processo possa ser superior à memória física disponível. Explicar a diferença entre working set e resident set e porque é objectivo essencial dos algoritmos de substituição manter tentar manter os dois conjuntos o mais possível aproximados Explicar os algoritmos de substituição LRU(puro), FIFO e variantes do algoritmo CLOCK com e sem aging (contagem de tempo de não utilização) de páginas. 17-10-2014 Sistemas Operativos 10
Bibliografia Stallings, Operating Systems, 6ª Ed. Cap. 8, Virtual Memory 17-10-2014 Sistemas Operativos 11