2. É 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”;
3. 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;
4. 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;
5. O processador apenas executa
instruções e referencia dados
residentes no espaço de
endereçamento real;
6. 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.
7. 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.
8. 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.
13. 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.
13
15. 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;
15
16. 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.
16
17. 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;
17
18. 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;
18
19. 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;
19
20. 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;
20
21. 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.
21
22. 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.
22
23. 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.
23
24. 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..
24
25. 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]
25