Você está na página 1de 65

SISTEMAS OPERACIONAIS

Gerenciamento de Memria Virtual

Ana Cristina de Oliveira Dantas


ana.oliveira@ifpb.edu.br

IFPB Instituto Federal da Paraba


Campus Campina Grande
2 Organizao da Memria Virtual
O conceito de memria virtual
Sistemas de memria virtual paginada
Sistemas de memria virtual segmentada
Sistemas combinados de segmentao/paginao de memria virtual

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Memria Virtual - Introduo
3

Soluciona o problema de pouco espao de memria principal


Cria a iluso de que existe mais memria do que a disponvel no
sistema
Utilizando o armazenamento secundrio como memria principal

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Endereos de Memria Virtual
4

Existem dois tipos de endereo nos sistemas de memria virtual:


Endereos virtuais
Referenciados pelos processos
Endereos fsicos
Indicam localizaes fsicas na memria principal
Unidade de gerenciamento de memria (MMU Memory Management
Unit)
Traduz os endereos virtuais para endereos fsicos

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Memria Real vs. Memria Virtual
5

Evoluo de organizaes de memria

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Memria virtual: conceitos bsicos
6

Espao de endereo virtual, V


Conjunto de endereos virtuais que um processo pode referenciar
Espao de endereo real, R
Conjunto de endereos fsicos disponveis
Mecanismo de traduo dinmica de endereo (DAT Dynamic
Address Translation)
Converteendereos virtuais em endereos fsicos durante a execuo de um
programa

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Memria virtual: conceitos bsicos
7

|V| em geral bem maior que |R|


O sistema operacional tem de armazenar partes de V para cada processo
externo memria principal
Armazenamento de dois nveis:
O sistema operacional move pores de V entre a memria principal (e os caches)
e o armazenamento secundrio

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Memria virtual: conceitos bsicos
8

Armazenamento em dois nveis


Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Memria virtual: conceitos bsicos
9

Pedaos de espaos de de endereamento existem na


memria e no armazenamento secundrio
Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Mapeamento de bloco
10

Mapeamento de um bloco da memria virtual em sua respectiva


localizao na memria real

Mapeamentos de traduo de endereo


Indicamque regies do espao de endereo virtual (V) de um processo
esto na memria principal no momento e onde esto localizadas

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Mapeamento de bloco
11

Mapeamento de endereos virtuais para endereos reais


Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Mapeamento de bloco
12

Contigidade artificial
Osendereos virtuais contguos podem no corresponder aos endereos de
memria real contguos

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Mapeamento de bloco
13

Contigidade artificial
Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Mapeamento de bloco
14

Pgina
Memria dividida em blocos com tamanho fixo
Tcnica denominada Paginao

Segmentos
Memria dividida em blocos que podem ter diferentes tamanhos
Tcnica denominada Segmentao

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Mapeamento de bloco
15

Endereos pares ordenados (representao)

Formato de endereo virtual em um sistema de


mapeamento de bloco

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Mapeamento de bloco
16

Traduo de endereo virtual com mapeamento de bloco


Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Mapeamento de bloco
17

Dado um endereo (address) v = (b, d)


O registrador de origem (registrador-base) de mapas de blocos
armazenado em a
O nmero do bloco, b, acrescentado a a para localizar a entrada
apropriada na tabela de mapas de blocos
A entrada da tabela de mapas de blocos indica o endereo, b, do incio
do bloco b na memria principal
Um deslocamento d acrescentado a b para formar o endereo real, r

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Paginao
18

Mapeamento de blocos de tamanho fxo


O endereo virtual no sistema de paginao um par ordenado v = (p, d)
p o nmero da pgina na memria virtual na qual o item referenciado reside
d o deslocamento do incio da pgina p na qual o item referenciado est
localizado

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Formato do endereo virtual
19

Formato do endereo virtual em um sistema de


paginao pura

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Moldura de pgina (page frame)
20

Bloco de tamanho fixo na memria principal


Comea em um endereo da memria principal que um mltiplo
inteiro do tamanho fixo de pgina
ps page size = tamanho da pgina

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Diviso da memria principal em molduras de
21
pginas (page frame)

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Paginao
22

Correspondncia entre
endereos de memria
virtual e endereos de
memria fsica em um
sistema de paginao
pura

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Entrada de tabela de pginas (PTE Page Table
23
Entry)
Indica se uma pgina virtual p corresponde a uma moldura de pgina
p
Contm um bit residente para indicar se a pgina est na memria
Se estiver, a PTE armazena o nmero da moldura da pgina
Do contrrio, a PTE armazena a localizao da pgina no armazenamento
secundrio

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Entrada de tabela de pginas
24

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de paginao por
25
mapeamento direto
A traduo dinmica de endereo na paginao semelhante
traduo de endereo de bloco
O processo referencia o endereo virtual v = (p, d)
O mecanismo DAT adiciona o endereo-base da tabela de pginas do
processo, b, ao nmero da pgina referenciada, p
b + p forma o endereo de memria principal da PTE para a pgina p

O sistema concatena p com o deslocamento, d, para formar o endereo


real, r

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de paginao por
26
mapeamento direto

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de paginao por
27
mapeamento associativo
Nem sempre vivel manter a tabela de pginas inteira na memria
cache
Em decorrncia do custo da memria cache de alta velocidade, de
localizao endereada, e do tamanho relativamente grande dos
programas
Melhor desempenho com traduo dinmica de endereo
Coloca a tabela de pgina inteira na memria associativa de contedo
endereado
O preo da memria cache de contedo endereado alto

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de paginao por
28
mapeamento associativo

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de paginao por
29
mapeamento direto/associativo
Conciliao entre custo e desempenho
A maioria das PTEs armazenada em tabelas de mapeamento direto na memria
principal
As PTEs usadas mais recentemente so armazenadas na memria cache
associativa por conjunto de alta velocidade denominada buffer de traduo
lateral (TLB)
Se a PTE no for encontrada no TLB, o mecanismo DAT procura a tabela na memria
principal
possvel obter alto desempenho com um TBL relativamente pequeno em virtude
da localidade
provvel que uma pgina que acabou de ser referenciada por um processo seja
novamente referenciada logo em seguida

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de paginao por
30
mapeamento direto/associativo

Combinao!

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Tabelas de pginas multinveis
31

Esse sistema pode armazenar em localizaes no contguas da


memria principal as pores da tabela de pginas que o processo
est usando
Hierarquia das tabelas de pginas
Cada nvel contm uma tabela que armazena ponteiros para tabelas do
nvel que est abaixo
O nvel mais inferior compreende as tabelas que contm tradues de
endereo
Pode diminuir a sobrecarga de memria em comparao ao sistema
de mapeamento direto

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Tabelas de pginas multinveis
32

Traduo de endereos
em vrios nveis.

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Tabelas de pginas invertidas
33

Armazenam uma PTE na memria para cada moldura de pgina no


sistema
So o contrrio das tabelas de pginas tradicionais
As tradicionais armazenam uma PTE para cada pgina virtual
Usam funes de hash para mapear pginas virtuais para entradas
de tabela de pginas invertidas

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Tabelas de pginas invertidas
34

Traduo de endereo de pgina usando tabelas de pginas


invertidas.
Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Tabelas de pginas invertidas
35

A funo de hash pode provocar colises


O que aumenta o tempo de traduo de endereos por causa do nmero maior
de vezes que a memria tem de ser acessada
possvel diminuir as colises aumentando a amplitude da funo de hash
No possvel aumentar o tamanho da tabela de pginas invertidas porque ela
tem de armazenar exatamente uma PTE para cada moldura de pgina
A tabela de ncora de hash aumenta a amplitude da funo de hash adicionando
um outro nvel de indireo
O tamanho deve ser escolhido com cuidado para equilibrar a fragmentao de
tabela e o desempenho

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Tabelas de pginas invertidas
36

Tabelas de pginas invertidas usando uma tabela de ncora de hash.


Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Compartilhamento em um sistema de paginao
37

Diminui o consumo de memria por programas que usam dados e/ou


instrues comuns
Exige que o sistema identifique cada pgina como compartilhvel ou
no compartilhvel

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Compartilhamento em um sistema de paginao
38

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Segmentao
39

Segmento
Bloco de dados ou instrues de um programa
Contm uma parte significativa do programa (por exemplo, procedimento,
conjunto, pilha)
Consiste em localizaes contguas

Os segmentos no tm de ser do mesmo tamanho ou adjacentes entre si na


memria principal
possvel executar um processo se suas instrues atuais e dados
referenciados estiverem em segmentos na memria principal

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Segmentao
40

Alocao de memria no contgua em um sistema de


segmentao de memria real
Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Segmentao
41

O processo referencia um endereo de memria virtual v = (s, d)


s o nmero do segmento na memria virtual
d o deslocamento dentro do segmento s no qual o item referenciado est
localizado

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Formato de endereo virtual com sistema de
42
segmentao

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de segmentao por
43
mapeamento direto
O processo referencia um endereo de memria virtual v = (s, d)
A DAT adiciona o endereo-base da tabela de mapas de segmentos do
processo, b, ao nmero do segmento referenciado, s
b + s forma o endereo na memria principal da entrada da tabela de
mapas de segmentos para o segmento s
O sistema adiciona s ao deslocamento, d, para formar o endereo real, r

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo de endereo de segmentao por
44
mapeamento direto

Traduo de endereo virtual em um sistema de


segmentao pura.
Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Entrada da tabela de mapas de segmentos
45

Indica que o segmento s inicia-se no endereo da memria real s


Contm um bit residente para indicar se o segmento est na memria
Se estiver, armazena o endereo-base do segmento
Do contrrio, armazena a localizao do segmento no armazenamento
secundrio
Tambm contm um campo de comprimento que indica o tamanho do
segmento
Podeser usada para evitar que um processo referencie endereos fora do
segmento

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Entrada da tabela de mapa de segmentos
46

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Compartilhamento em um sistema de segmentao
47

A sobrecarga do compartilhamento de segmentos pode ser menor que


o compartilhamento no sistema de paginao de mapeamento direto
puro
provvel que poucas entradas de tabela de mapas tenham de ser
compartilhadas

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Compartilhamento em um sistema de segmentao
48

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Proteo e controle de acesso em sistemas de
49
segmentao
Um esquema de implementao de proteo de memria nos sistemas
de segmentao so as chaves de proteo de memria
Chave de proteo
Est associada ao processo
Se a chave de proteo do processador e do bloco solicitado for a
mesma, o processo pode acessar o segmento

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Proteo e controle de acesso em sistemas de
50
segmentao

Proteo de memria com


chaves em sistemas de
multiprogramao de
alocao de memria no
contgua.

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Proteo e controle de acesso em sistemas de
51
segmentao
Um esquema mais comum usar bits de proteo que especificam se
um processo pode ler, gravar, executar cdigo ou ser anexado a um
segmento

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Tipos de controle de acesso em segmentao
52

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Modos teis de controle de acesso
53

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Proteo e controle de acesso em sistemas de
54
segmentao
Os bits de proteo so adicionados entrada da tabela de mapas
de segmentos e verificados quando um processo referencia um
endereo
Se o segmento no estiver na memria, gerada uma falha por ausncia
de segmento
Se d > l, gerada uma exceo de estouro de segmento

Se a operao (por exemplo, ler, gravar, executar ou anexar) no for


permitida, gerada uma exceo de proteo de segmento

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Entrada da tabela de segmento com bits de
55
proteo

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Sistemas de segmentao/paginao
56

Os segmentos ocupam uma ou mais pginas


Todas as pginas do segmento precisam estar na memria principal ao
mesmo tempo
As pginas contguas na memria virtual tm de ser contguas na memria
principal
O endereo da memria virtual implementado como triplo ordenado v =
(s, p, d)
s o nmero do segmento
p o nmero da pgina dentro do segmento
d o deslocamento dentro da pgina na qual o item desejado est localizado

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Sistemas de segmentao/paginao
57

O processo referencia o endereo na memria virtual: v=(s, p, d)


A DAT adiciona um endereo-base na tabela de mapas de segmentos, b,
para refereciar o nmero do segmento, s
b + s forma o endereo na memria principal da entrada da tabela de
mapas de segmentos para o segmento s
A entrada da tabela de mapas de segmentos armazena o endereo-base
da tabela de pginas, s
O nmero de pgina referenciado, p, adicionado a spara localizar a
PTE da pgina p, que armazena o nmero da moldura de pgina p
O sistema concatena p com o deslocamento, d, para formar o endereo
real, r
Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Traduo dinmica de endereo em um sistema de
58
segmentao/paginao

Formato de endereo virtual em um sistema


de segmentao/paginao.

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Traduo dinmica de endereo em um sistema de
59
segmentao/paginao

Traduo de endereo virtual


com mapeamento combinado
associativo/direto em um
sistema de
segmentao/paginao.

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Estrutura de tabela para um sistema de
60
segmentao/paginao

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Compartilhamento e proteo em um sistema de
61
segmentao/paginao
Sistemas de segmentao/paginao
Dois
processos compartilham memria quando cada processo dispe de
uma entrada de tabela de mapas de segmentos que indica a mesma
tabela de pginas
O compartilhamento requer um gerenciamento cuidadoso por parte
do sistema operacional

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Estudo de caso: memria virtual
62
da arquitetura Intel IA-32
A arquitetura Intel IA-32 suporta tanto a memria virtual de segmentao pura
quanto de segmentao/paginao
Espao de endereo lgico:
Conjunto de endereos contido em cada segmento
Segmentos
So colocados em qualquer local disponvel no espao de endereo linear do sistema
Traduo de endereo de segmento
executada pelo mapeamento direto que usa registradores de processador de alta
velocidade para armazenar registradores de origem de tabela de mapas de segmentos
em um registrador de tabela de descritor global ou em um registrador de tabela de
descritor local
Paginao
Suporta tabelas de pginas multinveis e vrios tamanhos de pgina
Gerncia de Memria Virtual - Prof. Ana Cristina Dantas
Estudo de caso: memria virtual
63
da arquitetura Intel IA-32

Dois processos que


compartilham um segmento
em um sistema de
segmentao/paginao.

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


Bibliografia
64

ANDREW S. TANENBAUM. Sistemas Operacionais Modernos. Editora


Prentice-Hall, 2 Edio, 2003. ISBN: 8587918575
Captulo 5: Gerenciamento de Memria
DEITEL & CHOFFNES. Sistemas Operacionais. Editora Prentice-Hall, 3
Edio, 2005. ISBN: 8576050110.
Captulos
9, 10, 11: Organizao e Gerenciamento da Memria Real,
Organizao da Memria Virtual, Gerenciamento da Memria Virtual

Gerncia de Memria Virtual - Prof. Ana Cristina Dantas


SISTEMAS OPERACIONAIS

Gerenciamento de Memria Virtual

Ana Cristina de Oliveira Dantas


ana.oliveira@ifpb.edu.br

IFPB Instituto Federal da Paraba


Campus Campina Grande