SO Memoria virtual
Referência:
Silberschatz, Abraham. Sistemas Operacionais com Java. 7 ed. Rio de
Janeiro: Elsevier, 2008.
Fundamentos
Paginação por demanda
Cópia na escrita
Substituição de página
Alocação de frames
Fundamentos
Memória virtual - separação da memória lógica de usuário da memória física. o Princípio: Apenas parte do programa precisa estar na memória para a execução. o O espaço de endereços lógicos pode ser muito maior do que o espaço físico de endereços. (Espaço = capacidade de endereçamento = número de bits do endereço) o Precisa permitir que as páginas sejam suapadas para/do disco.
A memória virtual pode ser implementada por: o Paginação por demanda. o Segmentação por demanda.
Na verdade o termo swap para páginas não está adequado, o swap se refere à troca de um processo na memória memória principal para a memória secundária por decisão de um escalonador de longo prazo. No caso das páginas, quem executa as trocas de páginas é o paginador e não necessariamente algum processo é retirado da memória principal para que uma página possa ser trazida do disco.
Memória virtual maior que a memória física
Espaço de endereço virtual
Biblioteca compartilhada usando memória virtual
Paginação por demanda
Traz uma página para a memória apenas se ela for necessária. o Minimiza as operações de E/S para trazer/guardar páginas o Usa o mínimo de memória o Resposta rápida o Maior quantidade de usuários
A página é necessária => houve uma referência para ela o referência inválida => aborta a operação e o processo o não está na memória => trazer para a memória
Bit de válido-inválido
Para cada linha da tabela de páginas há um bit de válido-inválido associado
(1 => está na memória, 0 => não está na memória)
Inicialmente, todos os bits válido-inválido da tabela são colocados em 0
Exemplo de um instante numa tabela de páginas
Durante a tradução da página, se o bit de válido-inválido estiver em 0 => falha de página
Falha de página
Se houver uma referência a uma