Você está na página 1de 58

GERÊNCIA DE MEMÓRIA VIRTUAL

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

Sumário


 

Introdução Espaço de Endereçamento Virtual Mapeamento Memória Virtual por Paginação
◦ ◦ ◦ ◦ ◦ ◦ ◦ Política de Busca de Páginas Política de Alocação de Páginas Política de Substituição de Páginas Working Set Algoritmo de Substituição de Páginas Tamanho de Página Paginação em Múltiplos Níveis

Memória Virtual por Paginação (cont.)
◦ Translation Lookaside Buffer ◦ Proteção de Memória ◦ Compartilhamento de Memória


  

Memória Virtual por Segmentação Memória Virtual por Segmentação com Paginação Swapping em Memória Virtual Thrashing

Introdução

O que é Memória Virtual ?
Memória virtual é uma técnica de gerência de memória, onde as memórias principal e secundária são combinadas, dando ao usuário a ilusão de uma memória maior que a capacidade real.

programas e suas estruturas de dados deixam de estar limitados ao tamanho da memória física pois podem possuir endereços associados a memória secundária. Desta forma. .Na prática como funciona? O conceito de memória virtual baseia-se em não vincular o endereçamento feito pelo programa dos endereços físicos da memória principal.

Maximizar o número de processos na memória..  .  Permitir estruturas e dados maiores que a memória..  Reduzir a fragmentação.Vantagens.

. . . o espaço VET [2] 501 de endereçamento do VET [3] 502 processo é conhecido VET [4] 503 como espaço de VET [5] 504 endereçamento virtual . .Espaço de Endereçamento Virtual Em ambientes onde •Vetor de 100 posições a memória virtual é Endereço Físico VET [1] 500 implementada. de endereçamentos virtuais que o processo VET [100] 599 pode endereçar. e representa o conjunto . . . . .

Espaço de Endereçamento Virtual •Espaço de Endereçamento Virtual e Real Endereço virtual 0 Espaço de endereçamento virtual Espaço de endereçamento real Endereço real 0 Endereço real 1 Endereço real 2 Endereço real 3 Endereço virtual 1 Endereço virtual 2 Endereço virtual 3 Endereço virtual 4 Endereço virtual 5 . . . Endereço virtual V . . Endereço real R . .

essa tradução é chamada de mapeamento. Memória Principal . o endereço virtual. mas apenas endereços virtuais. . . .Mapeamento Memória Virtual . uma vez solicitado é traduzido para um endereço físico. . . Mapeamento Um programa no ambiente de memória virtual não faz referência a endereços físicos de memória . No momento da execução da instrução.

Se um novo processo é executado.Mapeamento O mecanismo de tradução que é realizada por um hardware junto com o sistema operacional se encarrega de manter tabelas de mapeamento exclusivas para cada processo. . relacionando endereços virtuais do processo às suas posições na memória real. o sistema passa a referenciar a tabela do novo processo. Essa troca de tabelas é realizada através de um registrador.

P rocesso B . . . . . Memória P rincipal P rocesso A Espaço de endereçamento virtual de B T abela de mapeamento de B Endereço virtual 1 .Mapeamento Espaço de endereçamento virtual de A T abela de mapeamento de A  Endereço virtual 1 Tabela de Mapeamento .

tabelas de mapeamento que ocupam um espaço menor de memória. . menos entradas nas tabelas de mapeamento e por conseqüência. Quanto maior o bloco.Mapeamento As tabelas mapeiam blocos de dados cujo tamanho determina o numero de entradas existentes nas tabelas de mapeamento.

Mapeamento •Espaço virtual x tamanho do bloco .

Memória Virtual por Paginação A memória virtual por paginação é a técnica de gerência por memória onde o espaço de endereçamento virtual e o real são divididos em blocos de mesmo tamanho chamados páginas. As páginas no espaço virtual são chamadas de páginas virtuais. . enquanto as páginas no espaço real são denominadas de páginas reais ou frames.

Cada processo possui sua própria tabela e cada página virtual do processo possui uma entrada na tabela (Entrada na Tabela de Páginas – ETP).Memória Virtual por Paginação Todo mapeamento de endereço virtual em real é feito através de tabelas de páginas. com informações de mapeamento que permitem ao sistema localizar a página real correspondente. .

Página virtual V Memória Secundária . Página real R . . . . . .Memória Virtual por Paginação Memória Virtual Página virtual 0 Página real 1 Página virtual 1 T abela de páginas Página virtual 2 ETP  Tabela de páginas Memória Principal Página real 0 .

Memória Virtual por Paginação Quando um programa é executado. as páginas virtuais são transferidas da memória secundária para a memória principal e colocadas nos frames. o mecanismo de mapeamento localizará na ETP da tabela do processo o endereço físico do frame no qual se encontra o endereço real correspondente. Sempre que um programa fizer referência a um endereço virtual. .

O NPV identifica somente a página virtual que contém o endereço. com o deslocamento contido no endereço virtual. combinando-se o endereço do frame. O deslocamento indica a posição do endereço virtual em relação ao início da página na qual se encontra. O endereço físico é obtido. então. . localizado na tabela de páginas.Memória Virtual por Paginação Nessa técnica o endereço virtual é formado pelo número da página virtual (NPV) e por um deslocamento. funcionando como o índice na tabela de páginas.

Memória Virtual por Paginação Página virtual Deslocamento Endereço virtual  NP V Desloc. do frame End. do frame Desloc. Frame Deslocamento Endereço físico . T abela de páginas Tradução do endereço virtual ETP End.

mas se igual a 1. Se o bit tem o valor 0 significa que a página virtual não está na memória principal.Memória Virtual por Paginação Além da informação sobre a localização da página virtual. a página está localizada na memória. como o bit de validade (validad bit) que se indica se uma página está ou não na memória principal. . a ETP possui outras informações.

realizando uma operação de E/S conhecida como page in ou paginação.Memória Virtual por Paginação Sempre que o processo referencia um endereço virtual. a unidade de gerência de memória verifica. Neste caso o sistema transfere a página da memória secundária para a memória principal.o endereço referenciado está ou não na memória principal. dizemos que ocorreu um page fault. através do bit de validade. Caso a página não esteja na memória. . se a página que .

Memória secundária Memória P rincipal T abela de páginas Bit de validade 1 Memória secundária .Memória Virtual por Paginação Endereço virtual Memória P rincipal T abela de páginas  Mecanismo de tradução Bit de validade 0 Pag e P age in f au lt O número de page faults gerado por um processo em um determinado intervalo de tempo é definido como taxa de paginação do processo.

 . Paginação por demanda: As páginas do processo são transferidas da memória secundária para a principal quando referenciadas.Política de Busca de Páginas Determina quando uma página deve ser carregada para a memória. outras páginas que podem ou não ser necessárias ao processo ao longo do processamento. além das páginas referenciadas.  Paginação antecipada: O sistema carrega para a memória principal.

.  Alocação variável: O número máximo de páginas alocadas ao processo poderá variar durante sua execução em função de sua taxa de paginação e da ocupação da memória principal.  Alocação fixa: Cada processo tem um número máximo de frames que pode ser utilizado durante a execução do programa.Política de Alocação de Páginas Determina quantos frames um processo pode manter na memória principal. Caso o número de páginas reais seja insuficiente . uma página do processo deverá ser descartada para que uma nova seja carregada. Exige monitoramento constante.

Políticas de Substituição de Páginas Memória Principal Mecanismo do sistema operacional que determina qual página será liberada após um processo atingir o seu limite de alocação de frames e necessita alocar novas páginas na memória principal. Arquivo de paginação Page o ut Page in .

Políticas de Substituição de Páginas Qualquer estratégia de substituição de páginas deve considerar se uma página foi ou não modificada antes de liberá-la. . caso contrário. os dados armazenados na página podem ser perdidos.

Sempre que uma página sofre uma alteração. chamado de bit de modificação (dirty bit ou modify bit).Políticas de Substituição de Páginas O Sistema operacional consegue identificar as páginas modificadas através do bit que existe em cada entrada da tabela de páginas. . indicando que a página foi modificada. o valor do bit de modificação é alterado.

 . independente do processo que gerou o page fault.Políticas de Substituição de Páginas Política de Substituição de Local: Apenas as páginas do processo que gerou são page fault candidatas a ter páginas realocadas os demais não sã avaliados.  Política de Substituição Global: Todas as páginas na memória principal são candidatas. Exceto algumas páginas como as do núcleo do sistema que são marcadas como bloqueadas e não podem ser realocadas.

Localidade Espacial: É a tendência de que após uma referência a uma posição de memória sejam realizadas novas referências a endereços próximos.Working Set O conceito surgiu com objetivo de reduzir o problema do thrashing e está relacionado ao principio de localidade.  Localidade Temporal: É a tendência de que após a referência a uma posição de memória esta mesma memória seja novamente referenciada em um curto intervalo de tempo.  .

Peter Denning formulou o conceito de working set que é definido como sendo o conjunto das páginas 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 A partir da observação do principio da localidade.

Working Set  Tamanho do Working Set P2 P3 P4 P5 P2 P5 P5 P5 P5 P6 t1 ta t2 tb t3 tempo .

Algoritmos de Substituição de Páginas Tem o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro próximo. caso contrário. . gerando vários page faults e acesso a memória secundária. o frame poderia voltar diversas vezes para a memória principal. A seguir os principais algoritmos existentes.

todas as páginas tem o mesmo direito de serem selecionadas.  .Out): A página que foi primeiro utilizada.First .  FIFO (First –In.Algoritmos de Substituição de Páginas Ótimo: seleciona para substituição uma página que não será mais referenciada no futuro ou aquela que levará o maior intervalo de tempo para ser novamente utilizado  Aleatório: Não utiliza critério algum de seleção. a memória seleciona a página mais antiga. ou seja.

Algoritmos de Substituição de Páginas saída entrada Página mais antiga Página mais recente .

Algoritmos de Substituição de Páginas LFU (Least-Frequently-Used): Seleciona páginas menos referenciadas.  LRU (Least. Considerando o principio da localidade.Recently-Used): Seleciona páginas na memória principal que está a muito tempo sem ser referenciada. se uma página não foi utilizada provavelmente não será referenciada em um futuro próximo!  . Evitando excluir páginas bastante utilizadas.

A LPL organiza todos os frames livres da memória principal. A LPA organiza todas as páginas que estão sendo utilizadas na memória principal. O bit indica se a página foi utilizada recentemente e está presente em cada entrada da tabela de páginas. podendo ser implementada como uma lista única.Algoritmos de Substituição de Páginas   NRU (Not-Recently-Used): Para implementação desse algoritmo é necessário um bit adicional. . conhecido como bit de referência. FIFO com buffer de páginas: Combina uma lista de páginas alocadas (LPA) com uma lista de páginas livres (LPL).

Algoritmos de Substituição de Páginas  Bits de referência e modificação .

Algoritmos de Substituição de Páginas  FIFO com Buffer de Páginas Lista de páginas livres fim início (a) (c) (b) fim Lista de páginas alocadas início .

Algoritmos de Substituição de Páginas  FIFO Circular (Clock) BR= 1 P1 BR= 1 Pn P2 página mais antiga BR= 0 P3 página selecionada Pn BR= 0 P1 BR= 0 P2 BR= 0 P3 P5 (a) P4 P5 (b) P4 .

Tamanho de Página  Fragmentação interna Página 0 PROGRAM Frag. Página 4 Fragmentação . Página 2 END. VAR Página 1 PROCEDURE A. Página 3 BEGIN END.

4 Mb 12 bits (2 -1) 32 bits 20 .Paginação em Múltiplos Níveis  Paginação em um nível Tabela de páginas 0 1 Endereço Virtual 2 NPV 20 bits Desloc.

12 bits Tabela diretório Tabela de páginas frame .Paginação em Múltiplos Níveis  Endereço virtual em dois níveis Endereço Virtual NPV 1 10 bits NPV 2 10 bits Desloc.

Paginação em Múltiplos Níveis T abela de páginas 0  Paginação em dois níveis T abela diretório 0 1 2 3 0 1 2 3 frame 100 frame 2000 1023 T abela de páginas 1 0 1 2 3 frame 4000 frame 300 100 300 2000 1023 4000 1023 Memória P rincipal T abela de páginas 1023 0 1 2 3 1023 .

Físico T abela de mapeamento BV 1 1 1 0 End.Translation Lookaside Buffer  Translation Lookaside Buffer (TLB) Endereço Virtual NPV Desloc. Físico 1 0 1 Memória secundária . T ranslation Lookaside Buffer (TLB) BV 0 1 0 1 Memória principal 0 1 T ag End.

Translation Lookaside Buffer  Campos da TLB .

Proteção de Memória  Proteção para páginas L G Endereço da página/segmento Bits de proteção .

Proteção de Memória  Mecanismo de proteção LG 00 10 11 Descrição Sem acesso Acesso de leitura Acesso para leitura/ gravação .

. . Processo B .Compartilhamento de Memória Espaço de endereçamento virtual de A Tabela de mapeamento de A Endereço virtual 1 . . . Memória Principal Processo A Página Espaço de endereçamento virtual de B Tabela de mapeamento de B Endereço virtual 1 .

. END. . PROCEDURE X. . FUNCTION Y . VAR A: ARRAY .. C: ... Variável C Array A Programa Principal Função Y . END.Memória Virtual por Segmentação  Segmentação Procedimento X PROGRAM Segmento. BEGIN END..

Segmento na memória principal Deslocamento Endereço físico . T abela de segmentos ETS End.Memória Virtual por Segmentação  Tradução do endereço virtual Segmento virtual Deslocamento Endereço virtual Desloc. do segmento Desloc.

Memória Virtual por Segmentação  Campos da ETS .

Memória Virtual por Segmentação  Paginação x segmentação .

segmento N um. da tabela de páginas T abela de páginas ETP Endereço do frame Endereço do frame Deslocamento Endereço físico .Memória Virtual por Segmentação com Paginação Segmento virtual Endereço virtual Segmentação com paginação  N um. página Deslocamento T abela de segmentos ETS End.

Swapping em Memória Virtual Memória Principal Swapping em memória virtual  Processo F Processo A Processo B Processo C Sw ap ou t Processo D Processo E Memória Principal Processo B Processo A ap Sw in Processo C Processo F Arquivo de swapping Processo B Processo D .

Thrashing  Excessiva transferência de páginas e/ou segmentos entre a memória principal e memória secundária Ocorre em dois níveis: ◦ no próprio processo ◦ no sistema  .

Thrashing  Se existirem mais processos para serem executados que memória real disponível.  Este problema não ocorre apenas em sistemas que implementam memória virtual. mas também em sistemas com outros mecanismos de gerência de memória . a única solução é a expansão da memória principal.

Alunos: Rita de Cássia Portugal Gomes Gavinho  Dayana Mafilzo Campos Ribeiro  Laurence Labuto Saad  Turma: 123  .

/0 5E3.83 O .%7.8 0. 97...38107H3.088.

5. O . . 80.08  34 57O574 574. 0 202O7.0884  34 88902.4770 02 /48 3J.4: 80203948 03970 . 202O7.:3/E7. 573.

42 4:9748 20.%7. 70.8 9..08848 5.7.2-F2 02 88902.384 /.8 02 88902. 34 4.. 3.5.38248 /0 07H3.8 574. 2.:9.503.79:.8 6:0 2502039. 890 574-02. 84:4 F . . 202O7.0 .4770 . 80702 00.2 202O7..8 . O . 573. 05./48 6:0 202O7. /0 202O7.83 O $0 089702 2. /8543J.

.4208.-:94$. O .!479:.14./ O %:72./0E88.:703.0.34 O .2548#-074 O .3...:348 #9..