You are on page 1of 58

GERNCIA DE MEMRIA VIRTUAL

Arquitetura de Sistemas Operacionais - Capitulo 10 de Francis Berenger Machado Luiz Paulo Maia

Sumrio

Introduo Espao de Endereamento Virtual Mapeamento Memria Virtual por Paginao


Poltica de Busca de Pginas Poltica de Alocao de Pginas Poltica de Substituio de Pginas Working Set Algoritmo de Substituio de Pginas Tamanho de Pgina Paginao em Mltiplos Nveis

Memria Virtual por Paginao (cont.)


Translation Lookaside Buffer Proteo de Memria Compartilhamento de Memria

Memria Virtual por Segmentao Memria Virtual por Segmentao com Paginao Swapping em Memria Virtual Thrashing

Introduo

O que Memria Virtual ?


Memria virtual uma tcnica de gerncia de memria, onde as memrias principal e secundria so combinadas, dando ao usurio a iluso de uma memria maior que a capacidade real.

Na prtica como funciona?


O conceito de memria virtual baseia-se em no vincular o endereamento feito pelo programa dos endereos fsicos da memria principal. Desta forma, programas e suas estruturas de dados deixam de estar limitados ao tamanho da memria fsica pois podem possuir endereos associados a memria secundria.

Vantagens...
Maximizar o nmero de processos na memria. Reduzir a fragmentao. Permitir estruturas e dados maiores que a memria.

Espao de Endereamento Virtual


Em ambientes onde Vetor de 100 posies a memria virtual Endereo Fsico VET [1] 500 implementada, o espao VET [2] 501 de endereamento do VET [3] 502 processo conhecido VET [4] 503 como espao de VET [5] 504 endereamento virtual . . . e representa o conjunto . . . . . . de endereamentos virtuais que o processo VET [100] 599 pode enderear.

Espao de Endereamento Virtual


Espao de Endereamento Virtual e Real
Endereo virtual 0
Espao de endereamento virtual Espao de endereamento real

Endereo real 0 Endereo real 1 Endereo real 2 Endereo real 3

Endereo virtual 1 Endereo virtual 2 Endereo virtual 3 Endereo virtual 4 Endereo virtual 5

. . .
Endereo virtual V

. . .
Endereo real R

Mapeamento
Memria Virtual

. . .

Memria Principal

. . .

Mapeamento

Um programa no ambiente de memria virtual no faz referncia a endereos fsicos de memria , mas apenas endereos virtuais. No momento da execuo da instruo, o endereo virtual, uma vez solicitado traduzido para um endereo fsico, essa traduo chamada de mapeamento.

Mapeamento
O mecanismo de traduo que realizada por um hardware junto com o sistema operacional se encarrega de manter tabelas de mapeamento exclusivas para cada processo, relacionando endereos virtuais do processo s suas posies na memria real. Se um novo processo executado, o sistema passa a referenciar a tabela do novo processo. Essa troca de tabelas realizada atravs de um registrador.

Mapeamento
Espao de endereamento virtual de A T abela de mapeamento de A

Endereo virtual 1

Tabela de Mapeamento

. . .
Memria P rincipal

P rocesso A

Espao de endereamento virtual de B T abela de mapeamento de B

Endereo virtual 1

. . .

P rocesso B

Mapeamento
As tabelas mapeiam blocos de dados cujo tamanho determina o numero de entradas existentes nas tabelas de mapeamento. Quanto maior o bloco, menos entradas nas tabelas de mapeamento e por conseqncia, tabelas de mapeamento que ocupam um espao menor de memria.

Mapeamento
Espao virtual x tamanho do bloco

Memria Virtual por Paginao


A memria virtual por paginao a tcnica de gerncia por memria onde o espao de endereamento virtual e o real so divididos em blocos de mesmo tamanho chamados pginas. As pginas no espao virtual so chamadas de pginas virtuais, enquanto as pginas no espao real so denominadas de pginas reais ou frames.

Memria Virtual por Paginao


Todo mapeamento de endereo virtual em real feito atravs de tabelas de pginas. Cada processo possui sua prpria tabela e cada pgina virtual do processo possui uma entrada na tabela (Entrada na Tabela de Pginas ETP), com informaes de mapeamento que permitem ao sistema localizar a pgina real correspondente.

Memria Virtual por Paginao


Memria Virtual Pgina virtual 0 Pgina real 1 Pgina virtual 1 T abela de pginas Pgina virtual 2 ETP

Tabela de pginas

Memria Principal Pgina real 0

. . .
Pgina real R

. . . .
Pgina virtual V

Memria Secundria

Memria Virtual por Paginao


Quando um programa executado, as pginas virtuais so transferidas da memria secundria para a memria principal e colocadas nos frames. Sempre que um programa fizer referncia a um endereo virtual, o mecanismo de mapeamento localizar na ETP da tabela do processo o endereo fsico do frame no qual se encontra o endereo real correspondente.

Memria Virtual por Paginao


Nessa tcnica o endereo virtual formado pelo nmero da pgina virtual (NPV) e por um deslocamento. O NPV identifica somente a pgina virtual que contm o endereo, funcionando como o ndice na tabela de pginas. O deslocamento indica a posio do endereo virtual em relao ao incio da pgina na qual se encontra. O endereo fsico obtido, ento, combinando-se o endereo do frame, localizado na tabela de pginas, com o deslocamento contido no endereo virtual.

Memria Virtual por Paginao


Pgina virtual Deslocamento Endereo virtual

NP V Desloc. T abela de pginas

Traduo do endereo virtual

ETP End. do frame

End. do frame

Desloc.

Frame Deslocamento Endereo fsico

Memria Virtual por Paginao


Alm da informao sobre a localizao da pgina virtual, a ETP possui outras informaes, como o bit de validade (validad bit) que se indica se uma pgina est ou no na memria principal. Se o bit tem o valor 0 significa que a pgina virtual no est na memria principal, mas se igual a 1, a pgina est localizada na memria.

Memria Virtual por Paginao


Sempre que o processo referencia um endereo virtual, a unidade de gerncia de memria verifica, atravs do bit de validade, se a pgina que ,o endereo referenciado est ou no na memria principal. Caso a pgina no esteja na memria, dizemos que ocorreu um page fault. Neste caso o sistema transfere a pgina da memria secundria para a memria principal, realizando uma operao de E/S conhecida como page in ou paginao.

Memria Virtual por Paginao


Endereo virtual Memria P rincipal T abela de pginas

Mecanismo de traduo

Bit de validade 0

Pag e

P age in

f au

lt

O nmero de page faults gerado por um processo em um determinado intervalo de tempo definido como taxa de paginao do processo.

Memria secundria

Memria P rincipal T abela de pginas

Bit de validade 1 Memria secundria

Poltica de Busca de Pginas


Determina quando uma pgina deve ser carregada para a memria. Paginao por demanda: As pginas do processo so transferidas da memria secundria para a principal quando referenciadas. Paginao antecipada: O sistema carrega para a memria principal, alm das pginas referenciadas, outras pginas que podem ou no ser necessrias ao processo ao longo do processamento.

Poltica de Alocao de Pginas


Determina quantos frames um processo pode manter na memria principal. Alocao fixa: Cada processo tem um nmero mximo de frames que pode ser utilizado durante a execuo do programa. Caso o nmero de pginas reais seja insuficiente , uma pgina do processo dever ser descartada para que uma nova seja carregada. Alocao varivel: O nmero mximo de pginas alocadas ao processo poder variar durante sua execuo em funo de sua taxa de paginao e da ocupao da memria principal. Exige monitoramento constante.

Polticas de Substituio de Pginas


Memria Principal

Mecanismo do sistema operacional que determina qual pgina ser liberada aps um processo atingir o seu limite de alocao de frames e necessita alocar novas pginas na memria principal.

Arquivo de paginao
Page o
ut

Page in

Polticas de Substituio de Pginas


Qualquer estratgia de substituio de pginas deve considerar se uma pgina foi ou no modificada antes de liber-la, caso contrrio, os dados armazenados na pgina podem ser perdidos.

Polticas de Substituio de Pginas


O Sistema operacional consegue identificar as pginas modificadas atravs do bit que existe em cada entrada da tabela de pginas, chamado de bit de modificao (dirty bit ou modify bit). Sempre que uma pgina sofre uma alterao, o valor do bit de modificao alterado, indicando que a pgina foi modificada.

Polticas de Substituio de Pginas


Poltica de Substituio de Local: Apenas as pginas do processo que gerou so page fault candidatas a ter pginas realocadas os demais no s avaliados. Poltica de Substituio Global: Todas as pginas na memria principal so candidatas, independente do processo que gerou o page fault. Exceto algumas pginas como as do ncleo do sistema que so marcadas como bloqueadas e no podem ser realocadas.

Working Set
O conceito surgiu com objetivo de reduzir o problema do thrashing e est relacionado ao principio de localidade.
Localidade Espacial: a tendncia de que aps uma referncia a uma posio de memria sejam realizadas novas referncias a endereos prximos. Localidade Temporal: a tendncia de que aps a referncia a uma posio de memria esta mesma memria seja novamente referenciada em um curto intervalo de tempo.

Working Set
A partir da observao do principio da localidade, Peter Denning formulou o conceito de working set que definido como sendo o conjunto das pginas referenciadas por um processo durante determinado intervalo de tempo. Janela do working set ( t)

P2 P3 P2 P8 t1 t2
W(t2, t) tempo

Working Set

Tamanho do Working Set

P2 P3 P4 P5 P2 P5 P5 P5 P5 P6 t1 ta t2 tb t3
tempo

Algoritmos de Substituio de Pginas


Tem o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro prximo, caso contrrio, o frame poderia voltar diversas vezes para a memria principal, gerando vrios page faults e acesso a memria secundria. A seguir os principais algoritmos existentes.

Algoritmos de Substituio de Pginas


timo: seleciona para substituio uma pgina que no ser mais referenciada no futuro ou aquela que levar o maior intervalo de tempo para ser novamente utilizado Aleatrio: No utiliza critrio algum de seleo, todas as pginas tem o mesmo direito de serem selecionadas. FIFO (First In- First - Out): A pgina que foi primeiro utilizada, ou seja, a memria seleciona a pgina mais antiga.

Algoritmos de Substituio de Pginas


sada entrada

Pgina mais antiga

Pgina mais recente

Algoritmos de Substituio de Pginas


LFU (Least-Frequently-Used): Seleciona pginas menos referenciadas. Evitando excluir pginas bastante utilizadas. LRU (Least- Recently-Used): Seleciona pginas na memria principal que est a muito tempo sem ser referenciada. Considerando o principio da localidade, se uma pgina no foi utilizada provavelmente no ser referenciada em um futuro prximo!

Algoritmos de Substituio de Pginas

NRU (Not-Recently-Used): Para implementao desse algoritmo necessrio um bit adicional, conhecido como bit de referncia. O bit indica se a pgina foi utilizada recentemente e est presente em cada entrada da tabela de pginas. FIFO com buffer de pginas: Combina uma lista de pginas alocadas (LPA) com uma lista de pginas livres (LPL). A LPA organiza todas as pginas que esto sendo utilizadas na memria principal, podendo ser implementada como uma lista nica. A LPL organiza todos os frames livres da memria principal.

Algoritmos de Substituio de Pginas

Bits de referncia e modificao

Algoritmos de Substituio de Pginas

FIFO com Buffer de Pginas


Lista de pginas livres fim

incio

(a)

(c)

(b)

fim

Lista de pginas alocadas

incio

Algoritmos de Substituio de Pginas

FIFO Circular (Clock)


BR= 1 P1 BR= 1 Pn P2 pgina mais antiga BR= 0 P3 pgina selecionada Pn BR= 0 P1 BR= 0 P2

BR= 0 P3

P5 (a)

P4

P5 (b)

P4

Tamanho de Pgina

Fragmentao interna
Pgina 0 PROGRAM Frag; VAR

Pgina 1

PROCEDURE A;

Pgina 2

END;

Pgina 3

BEGIN

END. Pgina 4 Fragmentao

Paginao em Mltiplos Nveis

Paginao em um nvel
Tabela de pginas 0 1 Endereo Virtual 2 NPV 20 bits Desloc. 4 Mb 12 bits

(2 -1) 32 bits

20

Paginao em Mltiplos Nveis

Endereo virtual em dois nveis


Endereo Virtual NPV 1 10 bits NPV 2 10 bits Desloc. 12 bits

Tabela diretrio

Tabela de pginas

frame

Paginao em Mltiplos Nveis


T abela de pginas 0

Paginao em dois nveis


T abela diretrio 0 1 2 3

0 1 2 3

frame 100 frame 2000

1023

T abela de pginas 1 0 1 2 3 frame 4000 frame 300 100 300

2000

1023 4000 1023 Memria P rincipal T abela de pginas 1023 0 1 2 3

1023

Translation Lookaside Buffer

Translation Lookaside Buffer (TLB)


Endereo Virtual NPV Desloc. T ranslation Lookaside Buffer (TLB) BV 0 1 0 1 Memria principal 0 1 T ag End. Fsico

T abela de mapeamento BV 1 1 1 0 End. Fsico

1 0 1

Memria secundria

Translation Lookaside Buffer

Campos da TLB

Proteo de Memria

Proteo para pginas

L G

Endereo da pgina/segmento

Bits de proteo

Proteo de Memria

Mecanismo de proteo

LG 00 10 11

Descrio Sem acesso Acesso de leitura Acesso para leitura/ gravao

Compartilhamento de Memria
Espao de endereamento virtual de A Tabela de mapeamento de A Endereo virtual 1

. . .
Memria Principal

Processo A Pgina

Espao de endereamento virtual de B Tabela de mapeamento de B

Endereo virtual 1

. . .

Processo B

Memria Virtual por Segmentao

Segmentao
Procedimento X PROGRAM Segmento; VAR A: ARRAY ... C: ... PROCEDURE X; END; FUNCTION Y ; END; BEGIN END. Varivel C Array A Programa Principal Funo Y

. . .

Memria Virtual por Segmentao

Traduo do endereo virtual

Segmento virtual Deslocamento Endereo virtual

Desloc.

T abela de segmentos

ETS End. do segmento

Desloc.

Segmento na memria principal Deslocamento Endereo fsico

Memria Virtual por Segmentao

Campos da ETS

Memria Virtual por Segmentao

Paginao x segmentao

Memria Virtual por Segmentao com Paginao


Segmento virtual Endereo virtual

Segmentao com paginao

N um. segmento

N um. pgina

Deslocamento

T abela de segmentos

ETS End. da tabela de pginas

T abela de pginas

ETP Endereo do frame

Endereo do frame

Deslocamento

Endereo fsico

Swapping em Memria Virtual


Memria Principal

Swapping em memria virtual

Processo F

Processo A Processo B

Processo C
Sw
ap
ou
t

Processo D Processo E

Memria Principal

Processo B Processo A
ap Sw
in

Processo C Processo F

Arquivo de swapping

Processo B Processo D

Thrashing

Excessiva transferncia de pginas e/ou segmentos entre a memria principal e memria secundria Ocorre em dois nveis:
no prprio processo
no sistema

Thrashing

Se existirem mais processos para serem executados que memria real disponvel, a nica soluo a expanso da memria principal.

Este problema no ocorre apenas em sistemas que implementam memria virtual, mas tambm em sistemas com outros mecanismos de gerncia de memria

Alunos:
Rita de Cssia Portugal Gomes Gavinho Dayana Mafilzo Campos Ribeiro Laurence Labuto Saad Turma: 123

You might also like