Вы находитесь на странице: 1из 36

Gerncia 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

LPRM/DI/UFES

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Endereamento Virtual


(2)

Exemplo


Computador capaz de
gerar endereos
virtuais de 16 bits (0>64k).
Memria fsica de
apenas 32k =>
programas no podem
ser carregados por
completo na memria
fsica
Soluo: dividir o programa em Pginas

LPRM/DI/UFES

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Endereamento Virtual


Exemplo


(3)

(cont.)

Uma cpia completa do


programa, de at 64k deve
estar presente em disco, de
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

LPRM/DI/UFES

Sistemas Operacionais

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


Pginas/Molduras so de pequeno tamanho (e.g., 1K):







fragmentao interna pequena

Processo no precisa ocupar rea contgua em memria




Tamanho das Pginas = tamanho das Molduras

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

LPRM/DI/UFES

Sistemas Operacionais

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)
 So necessrios 4 bits para referenciar todas as 16 pginas do
processo


Instruo MOV REG, 0





LPRM/DI/UFES

End. virtual = (no da pgina [4 bits] , deslocamento [16 4 bits])


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)
6

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Paginao: Como funciona?




MOV REG, 20500




Qual a pgina?

Pag. 5, que contm os endereos de 20k


(20480) at 24k-1 (24575)
Esta pgina est em qual moldura?
Na moldura 3, que contm end. fsicos
de 12k (12288) a 16k-1 (16384)

LPRM/DI/UFES

(2)

Qual o deslocamento do endereo


20500 dentro da pgina?
Desl. = End. virtual End. virtual do
1o byte da pgina
= 20500 20480= 20
Qual ser o endereo fsico
correspondendo ao end. virt.
20500?
= End. do 1o byte da moldura + desloca.
= 12288 + 20 = 12308
Sistemas Operacionais

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
uma pgina que no est mapeada na
memria?
Tabela de pginas pode estar s parcialmente
na MP
Dois acessos MP

LPRM/DI/UFES

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Paginao: Endereamento
Endereo Virtual
Endereo Fsico

# pgina deslocam.

# moldura deslocam.
Registrador
pont. tab. de pginas

+
# moldura
memria
principal
Tabela de
Pginas
LPRM/DI/UFES

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Paginao: Endereamento Exemplo


Endereo Virtual 20500
0101 0000 0001 0100
4 bits

12 bits

20

(1)

Endereo Fsico
3 bits

20
12 bits

Registrador
pont. tab. de pginas

5
3
memria
principal

LPRM/DI/UFES

10

Tabela de
Pginas

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Paginao:
Endereamento
Exemplo (2)


Operao
interna de uma
MMU com 16
pginas de 4 kB
O no da pag.
usado como
ndice

LPRM/DI/UFES

11

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Paginao: Endereamento
Endereo Virtual
nmero da pgina

deslocamento

Linha da Tabela de Pginas


P

M outros bits de ctl.

nmero do quadro

e.g., referenciada, proteo, compartilhamento, desabilita colocao na cache, etc.

LPRM/DI/UFES

12

Sistemas Operacionais

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.


Escolher uma pgina pouco usada, que encontra-se em


alguma moldura da memria principal


LPRM/DI/UFES

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
13

Sistemas Operacionais

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
4k = 2 x 210
 E uma mquina de 64bits !?!
 Deve-se utilizar mecanismos para diminuir o tamanho da tabela


O mapeamento deve ser rpido





LPRM/DI/UFES

Mapeamento para buscar a instruo na memria


Instrues podem conter operandos que tambm encontram-se
na memria
14

Sistemas Operacionais

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.
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:



LPRM/DI/UFES

CARO!!!
Ter que carregar toda a tabela de pginas em cada traca de
contexto
15

Sistemas Operacionais

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:


A execuo de uma instruo implicar em pelo menos dois


acessos a memria





LPRM/DI/UFES

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...

16

Sistemas Operacionais

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 o
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






LPRM/DI/UFES

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
17

Sistemas Operacionais

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

LPRM/DI/UFES

18

Sistemas Operacionais

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




Portanto:



LPRM/DI/UFES

4MB da base da memria para cdigo de programa


Outros 4 MB para dados
4 MB do topo da memria para pilha
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
19

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de Pgina Multinvel




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.
Ento PT2 usado como ndice nesta segunda tabela para
localizar a entrada correspondente pagina virtual


(3)

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


LPRM/DI/UFES

A entrada 0 da tab. de nivel 1 aponta para a tab. de pginas de nvel 2


relativa ao cdigo do programa
20

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de Pgina Multinvel

(4)

Considere o end. virtual 0x00403004 (4206596d)




LPRM/DI/UFES

Qual ser o endereo fsico correspondente?


21

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de Pgina Multinvel


PT1

PT2

(5)

Deslocamento

0000000001 0000000011 0000 0000 0100




PT1: Entrada 1 da tabela do 1o nvel




2o bloco de 4M (4M a 8M de memria virtual)

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:

No da moldura

Deslocamento

0... 00001 0000 0000 0100


LPRM/DI/UFES

22

= 4100d
Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de Pgina Multinvel




(6)

Para entender as vantagens, considere o exemplo


anterior (endereo virtual de 32 bits pgina de 4kB)


Usando tabela de pginas tradicional:




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





LPRM/DI/UFES

1 tab. de 220 entradas (1 M entradas)

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

23

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de Pgina Multinvel




(7)

Paginao a trs nveis




LPRM/DI/UFES

Tpico de arquiteturas de processadores de 64 bits

24

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Registro Tpico de uma Entrada na Tabela de Pginas









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

LPRM/DI/UFES

25

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

TLB Translation Lookaside Buffer




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


(1)

Princpio da localidade temporal e espacial

Soluo: equipar a MMU com uma TLB





LPRM/DI/UFES

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
26

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

TLB Translation Lookaside buffer

(2)

endereo virtual
# pgina deslocam.
memria
secundria

TLB

tabela de
pginas (memria)

memria
principal
# quadro deslocam.

LPRM/DI/UFES

27

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

TLB Translation Lookaside buffer

(3)

Exemplo de TLB




LPRM/DI/UFES

Loop acessando pag. 19, 20, 21


Dados principais: pag. 129, 130, 141
Pilha: 860, 861
28

Sistemas Operacionais

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

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




LPRM/DI/UFES

Onde hr o Hit Ratio

29

Sistemas Operacionais

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= 0.9 x 20 + 0,1 x 100 = 28ns

Tempo mdio
de acesso (ns)

100

Todo mapeamento feito


via Tab. de pginas

Todo mapeamento
feito via TLB

20

LPRM/DI/UFES

50

30

100

Hit Ratio (%)

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de pginas invertida




Espao de endereamento virtual pode ser


exageradamente grande em mquinas de 64 bits.



Pginas de 4KB
252 entradas na tabela


(1)

Se cada entrada ocupa 8 B => tabela de ~30.000.000 GB

O armazenamento da tabela torna-se vivel se a


mesma for invertida, isto , ter o tamanho da
quantidade de molduras (memria real) e no da
quantidade de pginas (memria virtual)


Se memria real de 256 Mbytes , e pginas de 4 KB:




LPRM/DI/UFES

Tem-se 65536 entradas


31

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de pginas invertida





Uma entrada por moldura de memria real


Cada entrada na tabela informa


Par: (PID, # pgina virtual) alocado naquela moldura

Entretanto



Traduo de virtual/fsico mais complicada


Quando o processo n enderea a pgina p



(2)

p no serve de ndice da tabela


Toda a tabela deve ser pesquisada em busca de uma
entrada (p,n)

Soluo muito lenta




LPRM/DI/UFES

A busca feita para toda referncia memria


32

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Tabela de pginas invertida

(3)

frame 0
frame 1
...

invertida
LPRM/DI/UFES

33

Sistemas Operacionais

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


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)
34

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Exemplo de tabela de pginas invertida

Comparao de uma page table tradicional com uma page table invertida
LPRM/DI/UFES

35

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Referncias


A. S. Tanenbaum, ''Sistemas Operacionais


Modernos'', 2a. Edio, Editora Prentice-Hall, 2003.


Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas


Operacionais'', 6a. Edio, Editora LTC, 2004.


Seo 4.3

Seo 9.4

Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3.


Edio, Editora Prentice-Hall, 2005


LPRM/DI/UFES

??

36

Sistemas Operacionais

Вам также может понравиться