gerencia de memoria (2) - paginação.ppt [modo de...
TRANSCRIPT
http://www.inf.ufes.br/~rgomes/so.htm
2 Sistemas Operacionais LPRM/DI/UFES
Endereçamento Virtual (1)
� Espaço de endereçamento dos processos não linearmente relacionado com a memória física
� Cada vez que são usados, os endereços virtuais são convertidos pela MMU para endereços reais
http://www.inf.ufes.br/~rgomes/so.htm
3 Sistemas Operacionais LPRM/DI/UFES
Endereçamento Virtual (2)
� Exemplo� Computador capaz de
gerar endereços virtuais de 16 bits (0->64k).
� Memória física de apenas 32k => programas não podem ser carregados por completo na memória física
� Solução: dividir o pro-grama em Páginas
http://www.inf.ufes.br/~rgomes/so.htm
4 Sistemas Operacionais LPRM/DI/UFES
Endereçamento Virtual (3)
� Exemplo (cont.)
� Uma cópia completa do programa, de até 64k deve estar presente em disco, de modo que partes (páginas) possam ser carregadas dinamicamente na memória quando necessário
� Apenas precisam estar na memória principal as páginas que estão sendo utilizadas por cada processo
http://www.inf.ufes.br/~rgomes/so.htm
5 Sistemas Operacionais LPRM/DI/UFES
Memória virtual: Paginação
� Processo é dividido em Páginas
� A Memória é dividida em Molduras (ou Frames) de mesmo tamanho� Tamanho das Páginas = tamanho das Molduras
� Páginas/Molduras são de pequeno tamanho (e.g., 1K): � fragmentação interna pequena
� Processo não precisa ocupar área contígua em memória � Elimina fragmentação externa
� Processo não precisa estar completamente na MP
� SO mantém uma tabela de páginas por processo
� Endereços são gerados dinamicamente em tempo de execução
http://www.inf.ufes.br/~rgomes/so.htm
6 Sistemas Operacionais LPRM/DI/UFES
Paginação: Como funciona?
� Para minimizar a informação necessária à conversão, a memória virtual é logicamente dividida em páginas� Endereço virtual = (no da página , deslocamento)
� No exemplo anterior (end. virtuais de 16 bits=> processos de até 64k; memória física de 32k; páginas/molduras de 4k)
� São necessários 4 bits para referenciar todas as 16 páginas do processo
� End. virtual = (no da página [4 bits] , deslocamento [16 – 4 bits])
� Instrução MOV REG, 0
� O end. virtual 0 é enviado à MMU
� Ela detecta que esse end. virtual situa-se na página virtual 0 (de 0 a 4095) que, de acordo com o seu mapeamento, corresponde à moldura de página 2 (end. físicos de 8192 – 12287)
http://www.inf.ufes.br/~rgomes/so.htm
7 Sistemas Operacionais LPRM/DI/UFES
Paginação: Como funciona? (2)
� MOV REG, 20500
� Qual é a página?
� Esta página está em qual moldura?
� Qual o deslocamento do endereço 20500 dentro da página?
� Qual será o endereço físico correspondendo ao end. virt. 20500?
Pag. 5, que contém os endereços de 20k (20480) até 24k-1 (24575)
Na moldura 3, que contém end. físicos de 12k (12288) a 16k-1 (16384)
Desl. = End. virtual – End. virtual do
1o byte da página
= 20500 – 20480= 20
= End. do 1o byte da moldura + desloca.
= 12288 + 20 = 12308
http://www.inf.ufes.br/~rgomes/so.htm
8 Sistemas Operacionais LPRM/DI/UFES
Paginação: Como funciona?
� Cada processo tem sua Tabela de Páginas
� Tabela de Páginas faz o mapeamento página x moldura
� O que acontece se o programa faz um acesso a uma página que não está mapeada na memória?
� Tabela de páginas pode estar só parcialmente na MP
� Dois acessos à MP
http://www.inf.ufes.br/~rgomes/so.htm
9 Sistemas Operacionais LPRM/DI/UFES
Paginação: Endereçamento
pont. tab. de páginas
# página deslocam.# moldura deslocam.
# moldura
+
Endereço Virtual
Tabela dePáginas
memóriaprincipal
Registrador
Endereço Físico
http://www.inf.ufes.br/~rgomes/so.htm
10 Sistemas Operacionais LPRM/DI/UFES
Paginação: Endereçamento – Exemplo (1)
pont. tab. de páginas
5 203 20
3
+
Endereço Virtual 205000101 0000 0001 0100
Tabela dePáginas
memóriaprincipal
Registrador
Endereço Físico4 bits 12 bits
3 bits
12 bits
5
http://www.inf.ufes.br/~rgomes/so.htm
11 Sistemas Operacionais LPRM/DI/UFES
Paginação: Endereçamento –Exemplo (2)
� Operação interna de uma MMU com 16 páginas de 4 kB
O no da pag. é usado como
índice
http://www.inf.ufes.br/~rgomes/so.htm
12 Sistemas Operacionais LPRM/DI/UFES
Paginação: Endereçamento
outros bits de ctl.P M número do quadro
número da página deslocamento
Endereço Virtual
Linha da Tabela de Páginas
e.g., referenciada, proteção, compartilhamento, desabilita colocação na cache, etc.
http://www.inf.ufes.br/~rgomes/so.htm
13 Sistemas Operacionais LPRM/DI/UFES
Paginação: Como funciona?
� O que acontece se o programa faz um acesso a uma página que não está mapeada na memória?� Ocorre uma Page Fault => a MMU força uma interrupção
� Ação do S.O.� Escolher uma página pouco usada, que encontra-se em
alguma moldura da memória principal� Salvar esta página no disco (caso ela tenha sido modificada)
� Carregar a página virtual referenciada pela instrução na moldura recém liberada
� Atualizar o mapeamento da tabela de páginas e reiniciar a instrução causadora da interrupção
http://www.inf.ufes.br/~rgomes/so.htm
14 Sistemas Operacionais LPRM/DI/UFES
Tabela de Páginas (1)
� Problemas� Ela pode ser muito grande
� Suponha uma máquina de 32 bits, 4k por página
232 endereços virtuais = 220 entradas na tabela de páginas
4k = 2 x 210
� E uma máquina de 64bits !?!
� Deve-se utilizar mecanismos para diminuir o tamanho da tabela
� O mapeamento deve ser rápido� Mapeamento para buscar a instrução na memória
� Instruções podem conter operandos que também encontram-se na memória
http://www.inf.ufes.br/~rgomes/so.htm
15 Sistemas Operacionais LPRM/DI/UFES
Tabela de Páginas (2)
� Projeto mais simples: � uma única tabela de páginas que consista em um vetor
de registradores rápidos em hardware (um reg. para cada entrada)
� Qdo o processo estiver para ser executado, o S.O. carregará esses reg. A partir de uma cópia da tab. de páginas desse processo mantida na memória
� Vantagem: ñ requer nenhum acesso à memória durante a tradução
� Desvantagens:� CARO!!!
� Ter que carregar toda a tabela de páginas em cada traca de contexto
http://www.inf.ufes.br/~rgomes/so.htm
16 Sistemas Operacionais LPRM/DI/UFES
Tabela de Páginas (3)
� Segunda opção: � Tabela de páginas totalmente na memória
� O HW necessário resume-se a um único registrador (que aponta para o início da tabela de páginas
� Desvantagem: � A execução de uma instrução implicará em pelo menos dois
acessos a memória
� O primeiro, para acessar a tabela de páginas (e descobrir o endereço físico desta instrução)
� O segundo, para buscar a respectiva instrução na memória
� Isso sem falar nos operandos da instrução que podem estar em memória...
http://www.inf.ufes.br/~rgomes/so.htm
17 Sistemas Operacionais LPRM/DI/UFES
Tabela de Página Multinível (1)
� O objetivo é evitar manter toda a tabela de páginas na memória durante todo o tempo
� Apresenta-se como uma solução para odimensionamento da tabela de páginas
� Uso de dois apontadores e um deslocamento
� Exemplo: Tabela de dois níveis� O endereço de 32 bits de endereço divido em 3 campos
� PT1 [10 bits] : indexa o primeiro nível da tabela
� PT2 [10 bits] : indexa o segundo nível da tabela
� Deslocamento [12 bits]: => paginas de 4 KB
http://www.inf.ufes.br/~rgomes/so.htm
18 Sistemas Operacionais LPRM/DI/UFES
Tabela de Página Multinível (2)
� 1o nível com 1024 entradas
� Cada uma dessas entradas representa 4 MB� 4 GB / 1024
http://www.inf.ufes.br/~rgomes/so.htm
19 Sistemas Operacionais LPRM/DI/UFES
Tabela de Página Multinível (3)
� No exemplo anterior:� Suponha que um processo utilize apenas 12 MB
do seu espaço de endereços virtuais� 4MB da base da memória para código de programa
� Outros 4 MB para dados
� 4 MB do topo da memória para pilha
� Portanto:� A entrada 0 da tabela de nivel 1 aponta para a tab.
de páginas de nível 2 relativa ao código do programa
� A entrada 1 da tabela de nivel 1 aponta para a tab. de páginas de nível 2 relativa aos dados do processo
� A entrada 1023 da tabela de nivel 1 aponta para a tab. de páginas de nível 2 relativa à pilha do processo
http://www.inf.ufes.br/~rgomes/so.htm
20 Sistemas Operacionais LPRM/DI/UFES
Tabela de Página Multinível (3)
� Quando um endereço virtual chega à MMU, ela primeiro extrai o campo PT1 e o utiliza como índice da tabela de páginas do nível 1
� A entrada da tab. de páginas de nível 1 aponta para a tabela de páginas do nível 2.
� Então PT2 é usado como índice nesta segunda tabela para localizar a entrada correspondente à pagina virtual � Esta entrada indicará em qual moldura física encontra-se o endereço
a ser acessado
� No exemplo anterior:� Suponha que um processo utilize apenas 12 MB do seu espaço de
endereços virtuais
� A entrada 0 da tab. de nivel 1 aponta para a tab. de páginas de nível 2 relativa ao código do programa
http://www.inf.ufes.br/~rgomes/so.htm
21 Sistemas Operacionais LPRM/DI/UFES
Tabela de Página Multinível (4)
� Considere o end. virtual 0x00403004 (4206596d)� Qual será o endereço físico correspondente?
http://www.inf.ufes.br/~rgomes/so.htm
22 Sistemas Operacionais LPRM/DI/UFES
Tabela de Página Multinível (5)
� PT1: Entrada 1 da tabela do 1o nível� 2o bloco de 4M (4M a 8M de memória virtual)
� PT2: Entrada 3 da tabela do 2o nível� Esta entrada indica em qual moldura encontra-se esta página
� O endereço físico do primeiro byte dessa moldura é somado ao deslocamento
� Supondo a página encontre-se na moldura 1 (4k a 8k-1), o endereço físico correspondente será 4096 + 4 = 4100
� OU:
0000000001 0000000011 0000 0000 0100
PT1 PT2 Deslocamento
0... 00001 0000 0000 0100 = 4100d
DeslocamentoNo da moldura
http://www.inf.ufes.br/~rgomes/so.htm
23 Sistemas Operacionais LPRM/DI/UFES
� Para entender as vantagens, considere o exemplo anterior (endereço virtual de 32 bits – página de 4kB)
� Usando tabela de páginas tradicional: � 1 tab. de 220 entradas (1 M entradas)
� Usando tabela de páginas em 2 níveis� 4 tab. de 210 entradas cada (1 K entradas)
� Se cada entrada da tab. de páginas ocupa 16 bits� primeiro caso: 220 x 24 = 16 Mbits p/ armazenar a tabela de pág.
� segundo caso: 4 x 210 x 24 = 64 Kbits p/ armazenar a tabela de 2 níveis
Tabela de Página Multinível (6)
http://www.inf.ufes.br/~rgomes/so.htm
24 Sistemas Operacionais LPRM/DI/UFES
Tabela de Página Multinível (7)
� Paginação a três níveis� Típico de arquiteturas de processadores de 64 bits
http://www.inf.ufes.br/~rgomes/so.htm
25 Sistemas Operacionais LPRM/DI/UFES
Registro Típico de uma Entrada na Tabela de Páginas
� Número da moldura
� Presente/ausente: diz se página está ou não mapeada em endereço físico
� Proteção: bits de controle de acesso à página (rwx)
� Modificada: indica se página foi alterada
� Referenciada: indica se página foi lida
� Desabilita cache
http://www.inf.ufes.br/~rgomes/so.htm
26 Sistemas Operacionais LPRM/DI/UFES
TLB – Translation Lookaside Buffer (1)
� Como diminuir o número de referências à MP introduzido pelo mecanismo de paginação?
� Os programas tendem a fazer um grande número de referências a um mesmo pequeno conjunto de páginas virtuais
� Princípio da localidade temporal e espacial
� Solução: equipar a MMU com uma TLB� Também chamada de Memória Associativa
� Dispositivo de hardware implementado com um reduzido número de entradas
� Contém algumas entradas (linhas) da tabela de páginas do processo em execução
http://www.inf.ufes.br/~rgomes/so.htm
27 Sistemas Operacionais LPRM/DI/UFES
deslocam.
endereço virtual
memóriaprincipal
memóriasecundária
# quadro deslocam.
tabela depáginas (memória)
TLB
TLB – Translation Lookaside buffer (2)
# página
http://www.inf.ufes.br/~rgomes/so.htm
28 Sistemas Operacionais LPRM/DI/UFES
TLB – Translation Lookaside buffer (3)
� Exemplo de TLB� Loop acessando pag. 19, 20, 21� Dados principais: pag. 129, 130, 141� Pilha: 860, 861
http://www.inf.ufes.br/~rgomes/so.htm
29 Sistemas Operacionais LPRM/DI/UFES
HIT Ratio (Taxa de Sucesso) (1)
� Razão de referências à memória que podem ser satisfeitas a partir da TLB
� ↑Hit Ratio => ↑ performance� Tempo de acesso com HIT (sucesso) à memória via TLB
THit = TTLB + TMEM
� Tempo de acesso com MISS (insucesso) à memória via TLB
TMiss = TTLB + TMEM + TMEM
� Tempo médio de acesso= hr . THit + (1-hr) . TMiss
� Onde hr é o Hit Ratio
http://www.inf.ufes.br/~rgomes/so.htm
30 Sistemas Operacionais LPRM/DI/UFES
HIT Ratio (Taxa de Sucesso) (2)
� Suponha: THit = 20ns ; TMiss= 39 ns; H.R. = 90%
Tempo médio de acesso=
39
20
10050
Todo mapeamento é feito via TLB
Todo mapeamento é feito via Tab. de páginas
Hit Ratio (%)
Tempo médio de acesso (ns)
0,9 x 20 + 0,1 x 39 = 21,9ns
http://www.inf.ufes.br/~rgomes/so.htm
31 Sistemas Operacionais LPRM/DI/UFES
Tabela de páginas invertida (1)
� Espaço de endereçamento virtual pode serexageradamente grande em máquinas de 64 bits.� Páginas de 4KB
� 252 entradas na tabela� Se cada entrada ocupa 8 B => tabela de ~30.000.000 GB
� O armazenamento da tabela torna-se viável se amesma for invertida, isto é, ter o tamanho daquantidade de molduras (memória real) e não daquantidade de páginas (memória virtual)� Se memória real é de 256 Mbytes , e páginas de 4 KB:
� Tem-se 65536 entradas
http://www.inf.ufes.br/~rgomes/so.htm
32 Sistemas Operacionais LPRM/DI/UFES
Tabela de páginas invertida (2)
� Uma entrada por moldura de memória real
� Cada entrada na tabela informa� Par: (PID, # página virtual) alocado naquela moldura
� Entretanto� Tradução de virtual/físico mais complicada
� Quando o processo n endereça a página p� p não serve de índice da tabela
� Toda a tabela deve ser pesquisada em busca de uma entrada (p,n)
� Solução muito lenta� A busca é feita para toda referência à memória
http://www.inf.ufes.br/~rgomes/so.htm
33 Sistemas Operacionais LPRM/DI/UFES
Tabela de páginas invertida (3)
frame 0
frame 1. . .
invertida
http://www.inf.ufes.br/~rgomes/so.htm
34 Sistemas Operacionais LPRM/DI/UFES
Tabela de páginas invertida (4)
� Aceleração pode ser obtida
� TLB para páginas mais referenciadas
� Indexar a tabela por hash � Uma função hash que recebe o número da página e
retorna um entre N valores possíveis, onde N é a quantidade de molduras (memória instalada).
� Páginas com mesmo hash serão encadeadas em uma lista
� Cada entrada da tabela armazena um par(página/quadro)
http://www.inf.ufes.br/~rgomes/so.htm
35 Sistemas Operacionais LPRM/DI/UFES
Exemplo de tabela de páginas invertida
Comparação de uma page table tradicional com uma page table invertida
http://www.inf.ufes.br/~rgomes/so.htm
Referências
� A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 3a. Edição, Editora Prentice-Hall, 2010.� Capítulo 3 (até seção 3.3 inclusa)
� Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edição, Editora LTC, 2004.
� Seção 9.4
� Deitel H. M.; Deitel P. J.; Choffnes D. R.; “Sistemas Operacionais”, 3ª. Edição, Editora Prentice-Hall, 2005
� Seção 10.4
36 Sistemas Operacionais LPRM/DI/UFES