Memória virtual

25
UFRPE/EAD Licenciatura em Computação-6P 2011.1 Tutor: Rodrigo Lins Rodrigues Memória Virtual Semana 6

Transcript of Memória virtual

Page 1: Memória virtual

UFRPE/EADLicenciatura em Computação-6P

2011.1Tutor: Rodrigo Lins Rodrigues

Memória VirtualSemana 6

Page 2: Memória virtual

Memória virtual

É uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundária são combinadas;

Dar ao usuário a ilusão de existir uma memória muito maior que a capacidade real da memória principal;

Desta forma, programas e suas estruturas deixam de estar limitados ao tamanho da memória física, pois possuem endereços associados à memória secundária;

Permitindo um maior número de processos na “memória”;

Page 3: Memória virtual

Endereçamento virtual

Um programa no ambiente de memória virtual não faz referência a endereços físicos de memória, mas apenas a endereços virtuais;

No momento da execução o endereço virtual é traduzido para um endereço físico, pois o processador manipula apenas posições de memória principal;

Page 4: Memória virtual

Endereçamento virtual

O mecanismo de tradução do endereço virtual para o endereço físico é chamado de mapeamento;

Um programa pode fazer referência a endereços virtuais que estejam fora dos limites da memória principal;

Os programas não estão mais limitados ao tamanho da memória principal;

O S.O utiiza memória secundária como extensão da memória principal;

Page 5: Memória virtual

Mapeamento

O processador apenas executa instruções e referencia dados residentes no espaço de endereçamento real;

Page 6: Memória virtual

Tabelas de Mapeamento

A tabela de mapeamento relaciona os endereços virtuais do processo às suas posições na memória real;

Cada processo tem o seu espaço de endereçamento virtual como se possuísse sua própria memória;

Existem S.Os que trabalham apenas com blocos de tamanho fixo (paginação), enquanto outro utilizam blocos de tamanho variável (segmentação), veremos a seguir.

Page 7: Memória virtual

Paginação

Permite espalhar processos por áreas não contíguas;

Divide espaço de endereçamento virtual conjunto de páginas,de mesmo tamanho, em potência de 2;

Espaço de endereçamento virtual está localizado na memória secundária (Disco rígido);

O programa armazenado no disco é considerado o original e as suas partes que são trazidas para a memória são consideradas cópias.

Page 8: Memória virtual

Paginação

O espaço de endereçamento virtual contém endereços lógicos ou virtuais. O endereço virtual deve ser convertido para um

endereço real (endereço físico) antes de acessar a memória.

É dividido em páginas lógicas de tamanho fixo.

O espaço de endereçamento físico, alocado na memória principal, é dividido em pedaços com o mesmo tamanho de página cada partição da memória principal pode armazenar

exatamente uma página. Essa partição também é chamada de frame ou moldura de página.

Page 9: Memória virtual

9

Paginação

Física

Virtual

Page 10: Memória virtual

10

Paginação

Exemplo: O processo 1 possui 3 páginas, no entanto,

apenas duas estão carregadas na memória principal.

Page 11: Memória virtual

11

Endereçamento

Tabela de páginas

Estrutura de dados que relaciona endereços virtuais com endereços físicos

Page 12: Memória virtual

12

Tabela de páginas

Page 13: Memória virtual

13

Tabela de páginas

Tabela de Páginas – Informações adicionais Presente/Ausente -indica se a página está na memória

física; Desabilitar cache -Indica se a página pode ir para a

memória cache; Referenciada -indica se a página foi referenciada; Modificada -indicar se a página já foi modificada; Proteção - indica se a página está protegida.

Page 14: Memória virtual

14

Algoritmos de substituição de páginas

Page 15: Memória virtual

15

LRU - Least Recent Used

Baseia-se em: as páginas muito usadas nas últimas instruções, provavelmente serão nas próximas instruções;

Escolhe-se uma das páginas da classe com número mais baixo para substituição;

Classe 0 - páginas não-referenciadas e não-modificada; Classe 1 - páginas não-referenciadas, mas modificadas; Classe 2 - páginas referenciadas e não-modificadas; Classe 3 - páginas referenciadas e modificadas;

Page 16: Memória virtual

16

FIFO - First in First out

A página mais antiga é a primeira a ser substituída e a mais recente será a última;

No caso de necessidade de substituição, a página mais antiga será removida e a nova página colocada no final da lista;

O problema encontrado nessa abordagem é que existe a possibilidade de remoção de páginas muito referenciadas, ainda que estejam há muito tempo na memória.

Page 17: Memória virtual

17

Segmentação

A segmentação, assim como a paginação, é uma técnica de memória virtual;

Na segmentação, os segmentos têm diferentes tamanhos;

Duas maneiras de segmentação são permitidas: » Segmentação simples ou por swapping; » Segmentação com paginação;

Page 18: Memória virtual

18

Segumentação

Na segmentação, o uso da técnica não é transparente ao programador, enquanto que na paginação, a transparência ao programador existe;

Páginas têm tamanhos fixos e segmentos não;

Os segmentos possuem tamanhos diferentes que inclusive podem variar durante a execução;

Page 19: Memória virtual

19

Algoritmos para segmentação

Existem dois principais:

Best-fit: Procura a menor lacuna que caiba o segmento;

First-ft: Procura a primeira lacuna que caiba o segmento.

Independentemente do algoritmo utilizado, o S.O precisa realizar a atualização da lista de lacunas existentes na memória;

Page 20: Memória virtual

20

Segmentação com paginação

A memória virtual é dividida em segmentos e estes são compostos por um conjunto de páginas;

Cada segmento tem a sua própria tabela de páginas;

Page 21: Memória virtual

21

Exercício 1

Considere um sistema de memória virtual composto de 512 páginas de 2Kbytes o qual é mapeado em um espaço de endereçamento físico de 256 Kbytes.

a) Qual o formato do endereço virtual?

R: O tamanho da página é igual ao tamanho da moldura = 2Kbytes.

Para representar o deslocamento na página, consideraremos 2K linhas, que em potência de 2 = 2¹ x 2¹⁰. São necessários 11 bits para o deslocamento.

Para representar 512 páginas = 2 ⁹ → 9bits. O endereço virtual terá 9 bits número de página e 11 bits para

deslocamento, totalizando 20 bits.

Page 22: Memória virtual

22

Exercício 1

b) Qual o tamanho em bytes da tabela de páginas? Assuma que cada página possui 1 bit de presença, 3 bits de proteção e 1 dirty bit. Considere ainda que os endereços da memória secundária não estão armazenados nesta tabela.

Ao dividir 256 Kbytes (espaço de endereço físico) por 2Kbytes (tamanho moldura) obteremos 128 molduras ou páginas físicas. Para representar 128 páginas físicas, precisamos de 7 bits (2 ⁷). Considerando que os deslocamentos não estão presentes na tabela, a tabela terá 21 colunas ou bits (9 bits para número de página virtual + 7 bits para número de páginas físicas + 1 bit de presença + 3 bits de proteção + 1 dirty bit). A tabela terá: 512 páginas virtuais x 21 bits de coluna = 10752 bits = 1344 bytes. Aproximadamente 1,3Kbyte.

Page 23: Memória virtual

23

Exercício 2

Considere uma arquitetura com um sistema de memória virtual com as seguintes características: Endereço virtual de 40 bits , Páginas de 16Kbytes e Endereço físico de 36 bits.

A) Qual o layout do endereço virtual?

Se a página é de 16K, temos em potência de 2 = 2 ⁴ x 2¹⁰, totalizando 14 bits para o deslocamento. Como o endereço virtual é de 40 bits, 14 bits são utilizados para o deslocamento e 26 bits para representar as páginas.

Page 24: Memória virtual

24

Exercício 2

B) Qual o layout e tamanho da tabela de páginas em bytes? Assuma que cada página possui um bit de presença, 3 bits de proteção e um dirty bit. Considere ainda que os endereços da memória secundária não estão armazenados nesta tabela.

Como o endereço físico possui 36 bits, e 14 são necessários para o deslocamento, 22 bits são necessários para identificar as páginas. Logo, a tabela de páginas terá 53 colunas ou bits( 26 das páginas virtuais + 22 das páginas físicas + 1 bit de presença + 3 bits de proteção + 1 dirty bit).A tabela terá 53 bits de coluna x 2² páginas virtuais = aproximadamente 445Mbytes..

Page 25: Memória virtual

25

Exercício 3

A tabela seguinte descreve a memória virtual de um sistema paginado com páginas de 1024 palavras. O endereço virtual é da forma [p,d] onde p refere-se à página e d ao deslocamento dentro dela. O endereço virtual [0,514] corresponde a que endereço real?

R: [3, 514]