Escolar Documentos
Profissional Documentos
Cultura Documentos
Transferncia (Swapping)
Arquiteturas baseadas
(1)
Transferncia (Swapping)
(2)
Arquiteturas segmentadas:
regies (texto, dados, stack) carregadas de forma contnua em memria
Transfere para disco processos que estejam bloqueados ou com menor prioridade
3
Principal desvantagem
Apenas um pequeno nmero de processos podem encontrar-se simultaneamente na memria fsica
Traduo de endereos
Usando-se a MMU (address translation maps) Na ocorrncia de page faults, o fault handler do kernel deve trat-la (ex: trazendo a nova pgina p/ memria)
(3)
Memria compartilhada
Exemplos:
processos executando um mesmo programa podem compartilhar uma mesma regio de texto; bibliotecas compartilhadas Em algumas implementaes, aps um fork, pai e filho compartilham regio de dados enquanto no feita nenhuma alterao na mesma
Aumenta o desempenho da gerncia de memria paginada
rea de texto (cdigo do programa) rea de dados, inicializados ou no (variveis alocadas estaticamente) pilha (variveis automticas ou locais, passagem de parmetros, salvar e restaurar endereos de retorno) Alm disso: heap, shared memory,
shared libraries
heap so read-write
read-only, enquanto
pilha, dados
Inicializao
Cdigo e dados inicializados: lidos do arquivo executvel Dados inicializados:
zero filled
u area e kernel stack: tm suas pginas copiadas do pai c/ alguns elementos alterados
Na hora em que ocorre um page fault: soluo ineficiente que degrada o desempenho do sistema. Em geral, os kernels implementam um esquema onde as pginas so periodicamente liberadas e colocadas em um pool de pginas livres free page list (molduras) Prepaging: as pginas do working set so trazidas para memria antes que o processo seja escalonado
10 Sistemas Operacionais 2008/1
Requisitos de Hardware
O subsistema de gerncia de memria se apia no hardware para a execuo de vrias tarefas Traduo de endereos
(1)
MMU
Tabelas de p ginas
empty
8K
Data 32K Stack 64K Endere os Virtuais 87K 541K 783K 986K 897K
. . . . . . . .
Tabelas de pginas
Tabelas de pginas Translation Lookaside Buffer (TLB) O hardware dita o formato dessas estruturas, mas o S.O. responsvel pelo set up e a manuteno das mesmas uma tabela de pginas para endereos de kernel uma ou mais tabelas de pginas para cada processo
11
(2)
Tabelas de Pginas
proc structure
...
Text
File Descriptor Table
Data Stack
14 Sistemas Operacionais 2008/1
U Area
Profa.Patrcia D. Costa LPRM/DI/UFES 13 Sistemas Operacionais 2008/1 Profa.Patrcia D. Costa LPRM/DI/UFES
Page Faults
Faltas de Presena Faltas de Proteo Faltas de Validao
A pgina no est presente na tabela de pginas ( h PTE) PTE marcada como invlida (pgina residente na memria) O acesso pretendido no est de acordo com a proteo definida para a pgina
Core map (tabela de frames da memria fsica) Page tables (tabelas de pginas p/ traduo) Disk maps
Mapeia pginas do espao de endereamento virtual em blocos de discos da rea de swap Localizados na u-area
Na ocorrncia de um Page Fault, a MMU gera uma interrupo, e o controle transferido para o respectivo handler no kernel
O handler pode:
tentar resolver o problema (ex: trazendo a pgina para a memria) notificar o processo enviando um sinal (SIGSEGV)
Poder eventualmente ser tratado pelo processo, por exemplo, aumentando a regio de dados.
15
16
Core map
Kernel code e parte dos dados do kernel
Memria Fsica
cmap[]
P0 (regio de programa): user text e data P1 (regio de controle): user stack, kernel stack, u area
S0 (regio de sistema): kernel text e data Reserved: no suportada Data e stack podem crescer livremente
17
18
Pginas de P0
Tabela de Pginas de P1
19
20
Troca de contexto
Os registradores so atualizados TLB dividida em duas sees
Uma para traduo de endereos de sistema Outra (per-process
Swapped out
base address
length
Somente a contexto
per-process section
21
22
Quando um processo criado o kernel aloca espao na rea de swap para os dados e pilhas As pginas de text (e dados no modificados) teoricamente no precisam de ser swapped out
No BSD, elas tambm so colocadas em swap, para evitar a recomputao do
Processo que mantm a lista de frames livres Acordado periodicamente para checar o nmero de page frames livres (indicado pela varivel freemem):
minfree
<= freemem <=
file
maxfree
Se for inferior, o page daemon transfere pginas do disco para a memria O critrio de substituio padro o NRU, implementado atravs do algoritmo two handed clock (similar ao Algoritmo do Relgio)
A tabela cmap[] tratada como circular So mantidos dois ponteiros que avanam juntos O ponteiro da frente zera o O ponteiro de traz verifica o
23
24
Discusso
Tamanho de pgina reduzido (512 bytes). Quantidade reduzida de regies Normalmente necessita-se de 3 segmentos (cdigo/dados/pilha), VAX/VMS tem 2. Cdigo e dados na mesma regio Pouco modular S.O. completamente amarrado ao hardware No h suporte para memria ou biblioteca compartilhadas Sem suporte para memory mapped files
Core Map
Profa.Patrcia D. Costa LPRM/DI/UFES 25 Sistemas Operacionais 2008/1 Profa.Patrcia D. Costa LPRM/DI/UFES 26 Sistemas Operacionais 2008/1
(1)
(2)
27
28