Upload
mylenemorato
View
13
Download
0
Embed Size (px)
DESCRIPTION
j
Citation preview
Gerncia de MemriaGerncia de Memria
Paginao
http://www.inf.ufes.br/~rgomes/so.htm
Endereamento Virtual (1) Espao de endereamento dos processos no linearmente
relacionado com a memria fsica
Cada vez que so usados, os endereos virtuais so convertidos pela MMU para endereos reais
2 Sistemas Operacionais LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/so.htm
Endereamento Virtual (2)
Exemplo Computador capaz de gerar endereos virtuais de 16 bits (0->64k).
3 Sistemas Operacionais LPRM/DI/UFES
>64k).
Memria fsica de apenas 32k => programas no podem ser carregados por completo na memria fsica
Soluo: dividir o pro-grama em Pginas
http://www.inf.ufes.br/~rgomes/so.htm
Endereamento Virtual (3)
Exemplo (cont.) Uma cpia completa do programa, de at 64k deve estar presente em disco, de modo que partes (pginas)
4 Sistemas Operacionais LPRM/DI/UFES
modo que partes (pginas) possam ser carregadas dinamicamente na memria quando necessrio
Apenas precisam estar na memria principal as pginas que esto sendo utilizadas por cada processo
http://www.inf.ufes.br/~rgomes/so.htm
Memria virtual: Paginao
Processo dividido em Pginas
A Memria dividida em Molduras (ou Frames) de mesmo tamanho Tamanho das Pginas = tamanho das Molduras
Pginas/Molduras so de pequeno tamanho (e.g., 1K):
5 Sistemas Operacionais LPRM/DI/UFES
Pginas/Molduras so de pequeno tamanho (e.g., 1K): fragmentao interna pequena
Processo no precisa ocupar rea contgua em memria Elimina fragmentao externa
Processo no precisa estar completamente na MP
SO mantm uma tabela de pginas por processo
Endereos so gerados dinamicamente em tempo de execuo
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Como funciona?
Para minimizar a informao necessria converso, a memria virtual logicamente dividida em pginas Endereo virtual = (no da pgina , deslocamento)
No exemplo anterior (end. virtuais de 16 bits=> processos de at 64k; memria fsica de 32k; pginas/molduras de 4k)
6 Sistemas Operacionais LPRM/DI/UFES
64k; memria fsica de 32k; pginas/molduras de 4k)
So necessrios 4 bits para referenciar todas as 16 pginas do processo
End. virtual = (no da pgina [4 bits] , deslocamento [16 4 bits])
Instruo MOV REG, 0
O end. virtual 0 enviado MMU
Ela detecta que esse end. virtual situa-se na pgina virtual 0 (de 0 a 4095) que, de acordo com o seu mapeamento, corresponde moldura de pgina 2 (end. fsicos de 8192 12287)
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Como funciona? (2) MOV REG, 20500
Qual a pgina?
Esta pgina est em qual moldura?
Pag. 5, que contm os endereos de 20k (20480) at 24k-1 (24575)
Na moldura 3, que contm end. fsicos de 12k (12288) a 16k-1 (16384)
7 Sistemas Operacionais LPRM/DI/UFES
Qual o deslocamento do endereo 20500 dentro da pgina?
Qual ser o endereo fsico correspondendo ao end. virt. 20500?
de 12k (12288) a 16k-1 (16384)
Desl. = End. virtual End. virtual do
1o byte da pgina
= 20500 20480= 20
= End. do 1o byte da moldura + desloca.
= 12288 + 20 = 12308
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Como funciona?
Cada processo tem sua Tabela de Pginas
Tabela de Pginas faz o mapeamento pgina x moldura
O que acontece se o programa faz um acesso a
8 Sistemas Operacionais LPRM/DI/UFES
O que acontece se o programa faz um acesso a uma pgina que no est mapeada na memria?
Tabela de pginas pode estar s parcialmente na MP
Dois acessos MP
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Endereamento
pont. tab. de pginas
# pgina deslocam.# moldura deslocam.
Endereo Virtual
Registrador
Endereo Fsico
9 Sistemas Operacionais LPRM/DI/UFES
pont. tab. de pginas
# moldura
+
Tabela dePginas
memriaprincipal
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Endereamento Exemplo (1)
5 203 20
Endereo Virtual 205000101 0000 0001 0100
Registrador
Endereo Fsico4 bits 12 bits
3 bits
12 bits
10 Sistemas Operacionais LPRM/DI/UFES
pont. tab. de pginas
3
+
Tabela dePginas
memriaprincipal
Registrador
5
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Endereamento Exemplo (2)
Operao interna de uma
11 Sistemas Operacionais LPRM/DI/UFES
interna de uma MMU com 16 pginas de 4 kB
O no da pag. usado como
ndice
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Endereamento
nmero da pgina deslocamento
Endereo Virtual
12 Sistemas Operacionais LPRM/DI/UFES
outros bits de ctl.P M nmero do quadro
Linha da Tabela de Pginas
e.g., referenciada, proteo, compartilhamento, desabilita colocao na cache, etc.
http://www.inf.ufes.br/~rgomes/so.htm
Paginao: Como funciona?
O que acontece se o programa faz um acesso a uma pgina que no est mapeada na memria? Ocorre uma Page Fault => a MMU fora uma interrupo
Ao do S.O.
13 Sistemas Operacionais LPRM/DI/UFES
Ao do S.O. Escolher uma pgina pouco usada, que encontra-se em alguma moldura da memria principal Salvar esta pgina no disco (caso ela tenha sido modificada)
Carregar a pgina virtual referenciada pela instruo na moldura recm liberada
Atualizar o mapeamento da tabela de pginas e reiniciar a instruo causadora da interrupo
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pginas (1)
Problemas Ela pode ser muito grande
Suponha uma mquina de 32 bits, 4k por pgina
232 endereos virtuais = 220 entradas na tabela de pginas
14 Sistemas Operacionais LPRM/DI/UFES
2 endereos virtuais = 2 entradas na tabela de pginas
4k = 2 x 210
E uma mquina de 64bits !?!
Deve-se utilizar mecanismos para diminuir o tamanho da tabela
O mapeamento deve ser rpido Mapeamento para buscar a instruo na memria
Instrues podem conter operandos que tambm encontram-se na memria
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pginas (2)
Projeto mais simples: uma nica tabela de pginas que consista em um vetor de registradores rpidos em hardware (um reg. para cada entrada)
Qdo o processo estiver para ser executado, o S.O.
15 Sistemas Operacionais LPRM/DI/UFES
Qdo o processo estiver para ser executado, o S.O. carregar esses reg. A partir de uma cpia da tab. de pginas desse processo mantida na memria
Vantagem: requer nenhum acesso memria durante a traduo
Desvantagens: CARO!!!
Ter que carregar toda a tabela de pginas em cada traca de contexto
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pginas (3)
Segunda opo: Tabela de pginas totalmente na memria
O HW necessrio resume-se a um nico registrador (que aponta para o incio da tabela de pginas
Desvantagem:
16 Sistemas Operacionais LPRM/DI/UFES
Desvantagem: A execuo de uma instruo implicar em pelo menos dois
acessos a memria
O primeiro, para acessar a tabela de pginas (e descobrir o endereo fsico desta instruo)
O segundo, para buscar a respectiva instruo na memria
Isso sem falar nos operandos da instruo que podem estar em memria...
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pgina Multinvel (1)
O objetivo evitar manter toda a tabela de pginas na memria durante todo o tempo
Apresenta-se como uma soluo para odimensionamento da tabela de pginas
17 Sistemas Operacionais LPRM/DI/UFES
dimensionamento da tabela de pginas
Uso de dois apontadores e um deslocamento
Exemplo: Tabela de dois nveis O endereo de 32 bits de endereo divido em 3 campos
PT1 [10 bits] : indexa o primeiro nvel da tabela
PT2 [10 bits] : indexa o segundo nvel da tabela
Deslocamento [12 bits]: => paginas de 4 KB
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pgina Multinvel (2)
1o nvel com 1024 entradas
Cada uma dessas entradas representa 4 MB 4 GB / 1024
18 Sistemas Operacionais LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pgina Multinvel (3)
No exemplo anterior: Suponha que um processo utilize apenas 12 MB do seu espao de endereos virtuais 4MB da base da memria para cdigo de programa
Outros 4 MB para dados
19 Sistemas Operacionais LPRM/DI/UFES
Outros 4 MB para dados
4 MB do topo da memria para pilha
Portanto: A entrada 0 da tabela de nivel 1 aponta para a tab. de pginas de nvel 2 relativa ao cdigo do programa
A entrada 1 da tabela de nivel 1 aponta para a tab. de pginas de nvel 2 relativa aos dados do processo
A entrada 1023 da tabela de nivel 1 aponta para a tab. de pginas de nvel 2 relativa pilha do processo
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pgina Multinvel (3)
Quando um endereo virtual chega MMU, ela primeiro extrai o campo PT1 e o utiliza como ndice da tabela de pginas do nvel 1
A entrada da tab. de pginas de nvel 1 aponta para a tabela de pginas do nvel 2.
20 Sistemas Operacionais LPRM/DI/UFES
tabela de pginas do nvel 2.
Ento PT2 usado como ndice nesta segunda tabela para localizar a entrada correspondente pagina virtual Esta entrada indicar em qual moldura fsica encontra-se o endereo
a ser acessado
No exemplo anterior: Suponha que um processo utilize apenas 12 MB do seu espao de
endereos virtuais
A entrada 0 da tab. de nivel 1 aponta para a tab. de pginas de nvel 2 relativa ao cdigo do programa
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pgina Multinvel (4)
21 Sistemas Operacionais LPRM/DI/UFES
Considere o end. virtual 0x00403004 (4206596d) Qual ser o endereo fsico correspondente?
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pgina Multinvel (5)
PT1: Entrada 1 da tabela do 1o nvel 2o bloco de 4M (4M a 8M de memria virtual)
0000000001 0000000011 0000 0000 0100
PT1 PT2 Deslocamento
22 Sistemas Operacionais LPRM/DI/UFES
PT2: Entrada 3 da tabela do 2o nvel Esta entrada indica em qual moldura encontra-se esta pgina
O endereo fsico do primeiro byte dessa moldura somado ao deslocamento
Supondo a pgina encontre-se na moldura 1 (4k a 8k-1), o endereo fsico correspondente ser 4096 + 4 = 4100
OU:
0... 00001 0000 0000 0100 = 4100d
DeslocamentoNo da moldura
http://www.inf.ufes.br/~rgomes/so.htm
Para entender as vantagens, considere o exemplo anterior (endereo virtual de 32 bits pgina de 4kB) Usando tabela de pginas tradicional:
1 tab. de 220 entradas (1 M entradas)
Tabela de Pgina Multinvel (6)
23 Sistemas Operacionais LPRM/DI/UFES
1 tab. de 220 entradas (1 M entradas)
Usando tabela de pginas em 2 nveis 4 tab. de 210 entradas cada (1 K entradas)
Se cada entrada da tab. de pginas ocupa 16 bits primeiro caso: 220 x 24 = 16 Mbits p/ armazenar a tabela de pg.
segundo caso: 4 x 210 x 24 = 64 Kbits p/ armazenar a tabela de 2 nveis
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de Pgina Multinvel (7)
Paginao a trs nveis Tpico de arquiteturas de processadores de 64 bits
24 Sistemas Operacionais LPRM/DI/UFES
http://www.inf.ufes.br/~rgomes/so.htm
Registro Tpico de uma Entrada na Tabela de Pginas
25 Sistemas Operacionais LPRM/DI/UFES
Nmero da moldura
Presente/ausente: diz se pgina est ou no mapeada em endereo fsico
Proteo: bits de controle de acesso pgina (rwx)
Modificada: indica se pgina foi alterada
Referenciada: indica se pgina foi lida
Desabilita cache
http://www.inf.ufes.br/~rgomes/so.htm
TLB Translation Lookaside Buffer (1)
Como diminuir o nmero de referncias MP introduzido pelo mecanismo de paginao?
Os programas tendem a fazer um grande nmero de referncias a um mesmo pequeno conjunto de pginas virtuais
26 Sistemas Operacionais LPRM/DI/UFES
virtuais Princpio da localidade temporal e espacial
Soluo: equipar a MMU com uma TLB Tambm chamada de Memria Associativa
Dispositivo de hardware implementado com um reduzido nmero de entradas
Contm algumas entradas (linhas) da tabela de pginas do processo em execuo
http://www.inf.ufes.br/~rgomes/so.htm
deslocam.
endereo virtual
memriasecundriaTLB
TLB Translation Lookaside buffer (2)
# pgina
27 Sistemas Operacionais LPRM/DI/UFES
memriaprincipal
# quadro deslocam.
tabela depginas (memria)
http://www.inf.ufes.br/~rgomes/so.htm
TLB Translation Lookaside buffer (3)
28 Sistemas Operacionais LPRM/DI/UFES
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
HIT Ratio (Taxa de Sucesso) (1)
Razo de referncias memria que podem ser satisfeitas a partir da TLB
Hit Ratio => performance
Tempo de acesso com HIT (sucesso) memria via TLB
29 Sistemas Operacionais LPRM/DI/UFES
Tempo de acesso com HIT (sucesso) memria via TLB
THit = TTLB + TMEM
Tempo de acesso com MISS (insucesso) memria via TLB
TMiss = TTLB + TMEM + TMEM
Tempo mdio de acesso= hr . THit + (1-hr) . TMiss Onde hr o Hit Ratio
http://www.inf.ufes.br/~rgomes/so.htm
HIT Ratio (Taxa de Sucesso) (2)
Suponha: THit = 20ns ; TMiss= 100 ns; H.R. = 90%
Tempo mdio de acesso=
Tempo mdio de acesso (ns)
0.9 x 20 + 0,1 x 100 = 28ns
30 Sistemas Operacionais LPRM/DI/UFES
100
20
10050
Todo mapeamento feito via TLB
Todo mapeamento feito via Tab. de pginas
Hit Ratio (%)
de acesso (ns)
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de pginas invertida (1)
Espao de endereamento virtual pode serexageradamente grande em mquinas de 64 bits. Pginas de 4KB
252 entradas na tabela
31 Sistemas Operacionais LPRM/DI/UFES
252 entradas na tabela Se cada entrada ocupa 8 B => tabela de ~30.000.000 GB
O armazenamento da tabela torna-se vivel se amesma for invertida, isto , ter o tamanho daquantidade de molduras (memria real) e no daquantidade de pginas (memria virtual) Se memria real de 256 Mbytes , e pginas de 4 KB:
Tem-se 65536 entradas
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de pginas invertida (2)
Uma entrada por moldura de memria real
Cada entrada na tabela informa Par: (PID, # pgina virtual) alocado naquela moldura
Entretanto
32 Sistemas Operacionais LPRM/DI/UFES
Entretanto Traduo de virtual/fsico mais complicada
Quando o processo n enderea a pgina p p no serve de ndice da tabela
Toda a tabela deve ser pesquisada em busca de uma entrada (p,n)
Soluo muito lenta A busca feita para toda referncia memria
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de pginas invertida (3)
33 Sistemas Operacionais LPRM/DI/UFES
frame 0
frame 1. . .
invertida
http://www.inf.ufes.br/~rgomes/so.htm
Tabela de pginas invertida (4)
Acelerao pode ser obtida
TLB para pginas mais referenciadas
Indexar a tabela por hash
34 Sistemas Operacionais LPRM/DI/UFES
Uma funo hash que recebe o nmero da pgina e retorna um entre N valores possveis, onde N a quantidade de molduras (memria instalada).
Pginas com mesmo hash sero encadeadas em uma lista
Cada entrada da tabela armazena um par(pgina/quadro)
http://www.inf.ufes.br/~rgomes/so.htm
Exemplo de tabela de pginas invertida
35 Sistemas Operacionais LPRM/DI/UFES
Comparao de uma page table tradicional com uma page table invertida
http://www.inf.ufes.br/~rgomes/so.htm
Referncias
A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 2a. Edio, Editora Prentice-Hall, 2003. Seo 4.3
Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edio, Editora LTC, 2004.
Seo 9.4
Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3. Edio, Editora Prentice-Hall, 2005 ??
36 Sistemas Operacionais LPRM/DI/UFES