Memória virtual

16
UFRPE/EAD Licenciatura em Computação-6P 2011.1 Tutor: Rodrigo Lins Rodrigues Infraestrutura de Software Aula – Memória virtual – Parte 1

Transcript of Memória virtual

Page 1: Memória virtual

UFRPE/EADLicenciatura em Computação-6P

2011.1Tutor: Rodrigo Lins Rodrigues

Infraestrutura de Software

Aula – Memória virtual – Parte 1

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;

As tabelas mapeiam blocos de dados, cujo tamanho determina o número de entradas existentes nas tabelas de mapeamento;

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

Endereçamento

Page 13: Memória virtual

13

Endereçamento

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.