2002 13.1
Sistemas Operacionais
Solaris 2
■ Mantém uma lista de páginas livres para atribuir aos processo com falha de página.
■ Lotsfree – parâmetro limite para começar paginação.
■ Paginação é realizada por um processo denominado pageout, realizada segundo contagem por clock.
■ Scanrate é a taxa entre duas verificações. Varia de slowscan a fastscan.
■ Pageout é chamado mais frequentemente dependendo da quantidade de memória livre disponível.
2002 13.1 Sistemas Operacionais
Padrão de
localidade
de
referências
à memória
Memória Virtual no Windows NT
■ Usa paginação por demanada com clustering. Clustering tráz, além da página requisitada, páginas próximas.
■ A cada processo são designados um conjunto de trabalho mínimo(working set minimum) e um máximo( working set maximum).
■ Conjunto de trabalho mínimo é o número mínimo de páginas que o processo tem garantido ter em memória.
■ A um processo pode ser designado tantas páginas quanto o conjunto máximo de páginas.
■ Quando uma quantidade de memória livre passa abaixo de um limite, um processo automático de recuperação de conjunto de trabalho é ativado para restaurar uma quantidade de memória livre.
■ Este processo de recuperação remove páginas de processo que tem páginas excedendo seu conjunto de trabalho mínimo.
2002 13.1 Sistemas Operacionais
Localidade de referências
int main () {
float v[1000];
...
...
...
for(i=0; i<1000;i++) {
v[i] = ...
}
...
}
Pagina 0
Página 1
Página 2
Página 3
Thrashing
■
Why does paging work?
Locality model
✦ Process migrates from one locality to another. ✦ Localities may overlap.
■
Why does thrashing occur?
2002 13.1
Sistemas Operacionais
Algoritmos baseados em contagem
■
Manter um contador com o número de vezes que a
página foi referenciada.
■
Algoritmo LFU(Least Frequently Used) : substitui a
página com menor contador.
■
Algoritmo MFU(Most Frequently Used) : substitui a
página com maior contador. É baseda no argumento que
uma página com o menor contador foi recentemente
colocada na memória mas ainda não foi usada.
Localidade de referências
■Tempos típicos de acesso:
■
Memória
≈
40
η
s (nanossegundos)
■Disco
≈
3.5 ms (milissegundos)
■
Se o tempo de acesso a disco pode ser até 100 mil
vezes maior, então como a paginação funciona bem?
■
Princípio de localidade das referências
✦ Processos apresentam um padrão de acesso à memória ✦ Segundo esse padrão, cada processo possui conjuntos de
2002 13.1
Sistemas Operacionais
Algoritmo ótimo
■ Substituir uma página que não será usada por um longo período de tempo.
■ Exemplo ( 4 quadros )
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
■ Como obter uma aproximação deste algoritmo ? 1 2 3 4 6 falhas de páginas 4 5
Algoritmo Least Recently Used (LRU)
Página menos recentemente usada
■Seqüência de páginas: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
■
Implementação do contador:
✦ Toda entrada de página tem um contador; cada vez que uma página é referenciada, copiar o clock no contador.
✦ Quando é necessário substituir uma página, localizar a que possui o contador mais antigo.
1 2 3 5 4 4 3 5
2002 13.1
Sistemas Operacionais
Algoritmo básico de substituição de páginas
Algoritmo First-In-First-Out (FIFO)
■ Referências: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
■ 3 quadros (3 páginas, no máximo, na memória)
■ 4 quadros 1 2 3 1 2 3 4 1 2 5 3 4 9 falhas de página 1 2 3 1 2 3 5 1 2 4 5 10 falhas de página 4 4 3
2002 13.1
Sistemas Operacionais
Substituição de páginas
■
Previne super-alocação de memória modificando a rotina
de serviço de falha de página para incluir substituição de
página.
■
Usa bit de modificação(dirty bit) para reduzir overhead de
transferência de página – somente páginas modificadas
são escritas no disco.
■
Substituição de páginas completa separação entre
memória lógica e memória física. Assim, uma grande
memória virtual pode ser mapeada para uma pequena
memória física.
2002 13.1
Sistemas Operacionais
Arquivos mapeados em memória
■ I/O de arquivos mapeados em memória permitem que I/O em arquivos seja tratada como uma rotina de acesso à memória por mapeamento de um bloco de disco numa página de memória.
■ Um arquivo é inicialmente lido usando paginação por demanda. Um trecho do arquivo, do tamanho de uma página, é lido do sistema de arquivos para a memória física. Escritas/leituras subsequentes são tratados como acessos ordinários a memória.
■ Simplifica o acesso a arquivos tratando I/O de arquivos através de acessos à memória ao invés de systems calls do tipo read() e write() .
■ Permite, também, que vários processos possam mapear o mesmo arquivo, possibilitando compartilhamento de páginas em memória.
2002 13.1
Sistemas Operacionais
Criação de processos
■
Memória virtual permite outros benefícios durante a
criação de processos:
- Cópia-na-escrita(Copy-on-Write)
- Arquivos mapeados em memória(Memory-Mapped
Files)
Copy-on-Write
■
Copy-on-Write (COW) permite que pai e filho inicialmente
compartilhem as mesmas páginas em memória.
■
Se um dos processos modifica a página compartilhada,
somente a página é copiada.
■
COW permite criação mais eficiente de processos, uma
vez que somente páginas modificadas sejam copiadas.
2002 13.1
Sistemas Operacionais
Passos no tratamento de falha de página
O que acontece se não existem quadros livres?
■
Substituição de páginas – encontrar alguma página em
memória e armazená-la em disco.
✦ algoritmo
✦ performance – queremos um algoritmo que resulte no menor número de falhas de página.
2002 13.1
Sistemas Operacionais
Bit Válido-Inválido
■ Com cada entrada na tabela de página uma bit válido-inválido é associado(1 ⇒ na memória, 0 ⇒ não está na memória)
■ Inicialemnte, todos os bits estão em 0.
■ Exemplo:
■ Durante a tradução de nedereço, se o bit válido-inválido na entrada é 0 ⇒ falha de página.
1 1 1 1 0 0 0
Quadro # Bit válido-inválido
page table
2002 13.1
Sistemas Operacionais
Paginação por demanda
■
Coloca uma página na memória somente quando é
necessário.
✦ Necessita de menos I/O
✦ Necessita de menos memória
✦ Resposta mais rápida
✦ Mais usuários
■
Se uma página é necessária
⇒
basta referenciá-la
✦ Referência inválida ⇒ erro
✦ Não está na memória ⇒ carregá-la na memória
Transferência de uma memória paginada para espaço contíguo no
disco
2002 13.1
Sistemas Operacionais
Conceitos básicos
■
Memória virtual – separação de memória lógica da
memória física.
✦ Somente parte do programa precisa estar na memória para execução.
✦ Espaço de endereçamento lógico pode ser muito maior que o espaço de endereçamento físico.
✦ Permite que espaços de endereçamento sejam compartilhados por vários processos.
✦ Permite uma criação mais eficiente de processos.
■
Memória virtual pode ser criada via:
✦ Paginação por demanda ( Demand paging )
✦ Segmentação por demanda.
2 0 0 2 1 3 .1 p e ra ci o n a is
Memória Virtual
Cap. 9
■Conceitos básicos
■
Paginação por demanda
■
Criação de processos
■