Buscar

8 Gerenciamento de Memoria Virtual

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 65 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 65 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 65 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SISTEMAS OPERACIONAIS
Gerenciamento de Memória Virtual
Ana Cristina de Oliveira Dantas
ana.oliveira@ifpb.edu.br
IFPB – Instituto Federal da Paraíba
Campus Campina Grande
■ O conceito de memória virtual
■ Sistemas de memória virtual paginada
■ Sistemas de memória virtual segmentada
■ Sistemas combinados de segmentação/paginação de memória virtual
Organização da Memória Virtual2
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
Memória Virtual - Introdução
 Soluciona o problema de pouco espaço de memória principal
 Cria a ilusão de que existe mais memória do que a disponível no 
sistema
 Utilizando o armazenamento secundário como memória principal
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
3
Endereços de Memória Virtual
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
4
 Existem dois tipos de endereço nos sistemas de memória virtual:
 Endereços virtuais
 Referenciados pelos processos
 Endereços físicos
 Indicam localizações físicas na memória principal
 Unidade de gerenciamento de memória (MMU – Memory Management 
Unit)
 Traduz os endereços virtuais para endereços físicos
Evolução de organizações de memória
Memória Real vs. Memória Virtual
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
5
Memória virtual: conceitos básicos
 Espaço de endereço virtual, V
 Conjunto de endereços virtuais que um processo pode referenciar
 Espaço de endereço real, R
 Conjunto de endereços físicos disponíveis
 Mecanismo de tradução dinâmica de endereço (DAT – Dynamic 
Address Translation)
 Converte endereços virtuais em endereços físicos durante a execução de um 
programa
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
6
Memória virtual: conceitos básicos
 |V| em geral é bem maior que |R|
 O sistema operacional tem de armazenar partes de V para cada processo
externo à memória principal
 Armazenamento de dois níveis:
 O sistema operacional move porções de V entre a memória principal (e os caches) 
e o armazenamento secundário
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
7
Armazenamento em dois níveis
Memória virtual: conceitos básicos
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
8
Pedaços de espaços de de endereçamento existem na
memória e no armazenamento secundário
Memória virtual: conceitos básicos
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
9
Mapeamento de bloco
 Mapeamento de um bloco da memória virtual em sua respectiva
localização na memória real
 Mapeamentos de tradução de endereço
 Indicam que regiões do espaço de endereço virtual (V) de um processo
estão na memória principal no momento e onde estão localizadas
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
10
Mapeamento de endereços virtuais para endereços reais
Mapeamento de bloco
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
11
Mapeamento de bloco
 Contigüidade artificial
 Os endereços virtuais contíguos podem não corresponder aos endereços de 
memória real contíguos
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
12
Contigüidade artificial
Mapeamento de bloco
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
13
Mapeamento de bloco
 Página
 Memória dividida em blocos com tamanho fixo
 Técnica denominada Paginação
 Segmentos
 Memória dividida em blocos que podem ter diferentes tamanhos
 Técnica denominada Segmentação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
14
Formato de endereço virtual em um sistema de 
mapeamento de bloco
Mapeamento de bloco
 Endereços → pares ordenados (representação)
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
15
Tradução de endereço virtual com mapeamento de bloco
Mapeamento de bloco
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
16
Mapeamento de bloco
 Dado um endereço (address) v = (b, d)
 O registrador de origem (registrador-base) de mapas de blocos é 
armazenado em a
 O número do bloco, b, é acrescentado a a para localizar a entrada
apropriada na tabela de mapas de blocos
 A entrada da tabela de mapas de blocos indica o endereço, b´, do início
do bloco b na memória principal
 Um deslocamento d é acrescentado a b´ para formar o endereço real, r
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
17
Paginação
 Mapeamento de blocos de tamanho fíxo
 O endereço virtual no sistema de paginação é um par ordenado v = (p, d)
 p é o número da página na memória virtual na qual o item referenciado reside
 d é o deslocamento do início da página p na qual o item referenciado está
localizado
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
18
Formato do endereço virtual em um sistema de 
paginação pura
Formato do endereço virtual
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
19
Moldura de página (page frame)
 Bloco de tamanho fixo na memória principal
 Começa em um endereço da memória principal que é um múltiplo
inteiro do tamanho fixo de página
 ps – page size = tamanho da página
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
20
Divisão da memória principal em molduras de 
páginas (page frame)
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
21
Correspondência entre 
endereços de memória
virtual e endereços de 
memória física em um 
sistema de paginação
pura
Paginação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
22
Entrada de tabela de páginas (PTE – Page Table 
Entry)
 Indica se uma página virtual p corresponde a uma moldura de página
p´
 Contém um bit residente para indicar se a página está na memória
 Se estiver, a PTE armazena o número da moldura da página
 Do contrário, a PTE armazena a localização da página no armazenamento
secundário
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
23
Entrada de tabela de páginas
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
24
Tradução de endereço de paginação por
mapeamento direto
 A tradução dinâmica de endereço na paginação é semelhante à 
tradução de endereço de bloco
 O processo referencia o endereço virtual v = (p, d)
 O mecanismo DAT adiciona o endereço-base da tabela de páginas do 
processo, b, ao número da página referenciada, p
 b + p forma o endereço de memória principal da PTE para a página p
 O sistema concatena p´ com o deslocamento, d, para formar o endereço
real, r
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
25
Tradução de endereço de paginação por
mapeamento direto
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
26
Tradução de endereço de paginação por
mapeamento associativo
 Nem sempre é viável manter a tabela de páginas inteira na memória
cache
 Em decorrência do custo da memória cache de alta velocidade, de 
localização endereçada, e do tamanho relativamente grande dos 
programas
 Melhor desempenho com tradução dinâmica de endereço
 Coloca a tabela de página inteira na memória associativa de conteúdo
endereçado
 O preço da memória cache de conteúdo endereçado é alto
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
27
Tradução de endereço de paginação por
mapeamento associativo
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
28
Tradução de endereço de paginação por
mapeamento direto/associativo
 Conciliação entre custo e desempenho
 A maioria das PTEs é armazenada em tabelas de mapeamento direto na memória
principal
 As PTEs usadas mais recentemente são armazenadas na memória cache 
associativa por conjuntode alta velocidade denominada buffer de tradução
lateral (TLB)
 Se a PTE não for encontrada no TLB, o mecanismo DAT procura a tabela na memória
principal
 É possível obter alto desempenho com um TBL relativamente pequeno em virtude
da localidade
 É provável que uma página que acabou de ser referenciada por um processo seja
novamente referenciada logo em seguida
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
29
Tradução de endereço de paginação por
mapeamento direto/associativo
Combinação!
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
30
Tabelas de páginas multiníveis
 Esse sistema pode armazenar em localizações não contíguas da
memória principal as porções da tabela de páginas que o processo
está usando
 Hierarquia das tabelas de páginas
 Cada nível contém uma tabela que armazena ponteiros para tabelas do 
nível que está abaixo
 O nível mais inferior compreende as tabelas que contêm traduções de 
endereço
 Pode diminuir a sobrecarga de memória em comparação ao sistema
de mapeamento direto
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
31
Tabelas de páginas multiníveis
Tradução de endereços 
em vários níveis.
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
32
Tabelas de páginas invertidas
 Armazenam uma PTE na memória para cada moldura de página no 
sistema
 São o contrário das tabelas de páginas tradicionais
 As tradicionais armazenam uma PTE para cada página virtual
 Usam funções de hash para mapear páginas virtuais para entradas
de tabela de páginas invertidas
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
33
Tradução de endereço de página usando tabelas de páginas
invertidas.
Tabelas de páginas invertidas
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
34
Tabelas de páginas invertidas
 A função de hash pode provocar colisões
 O que aumenta o tempo de tradução de endereços por causa do número maior
de vezes que a memória tem de ser acessada
 É possível diminuir as colisões aumentando a amplitude da função de hash
 Não é possível aumentar o tamanho da tabela de páginas invertidas porque ela
tem de armazenar exatamente uma PTE para cada moldura de página
 A tabela de âncora de hash aumenta a amplitude da função de hash adicionando
um outro nível de indireção
 O tamanho deve ser escolhido com cuidado para equilibrar a fragmentação de 
tabela e o desempenho
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
35
Tabelas de páginas invertidas usando uma tabela de âncora de hash.
Tabelas de páginas invertidas
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
36
Compartilhamento em um sistema de paginação
 Diminui o consumo de memória por programas que usam dados e/ou
instruções comuns
 Exige que o sistema identifique cada página como compartilhável ou
não compartilhável
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
37
Compartilhamento em um sistema de paginação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
38
Segmentação
 Segmento
 Bloco de dados ou instruções de um programa
 Contém uma parte significativa do programa (por exemplo, procedimento, 
conjunto, pilha)
 Consiste em localizações contíguas
 Os segmentos não têm de ser do mesmo tamanho ou adjacentes entre si na
memória principal
 É possível executar um processo se suas instruções atuais e dados 
referenciados estiverem em segmentos na memória principal
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
39
Alocação de memória não contígua em um sistema de 
segmentação de memória real
Segmentação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
40
Segmentação
 O processo referencia um endereço de memória virtual v = (s, d)
 s é o número do segmento na memória virtual
 d é o deslocamento dentro do segmento s no qual o item referenciado está
localizado
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
41
Formato de endereço virtual com sistema de 
segmentação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
42
Tradução de endereço de segmentação por
mapeamento direto
 O processo referencia um endereço de memória virtual v = (s, d)
 A DAT adiciona o endereço-base da tabela de mapas de segmentos do 
processo, b, ao número do segmento referenciado, s
 b + s forma o endereço na memória principal da entrada da tabela de 
mapas de segmentos para o segmento s
 O sistema adiciona s´ ao deslocamento, d, para formar o endereço real, r
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
43
Tradução de endereço virtual em um sistema de 
segmentação pura.
Tradução de endereço de segmentação por
mapeamento direto
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
44
Entrada da tabela de mapas de segmentos
 Indica que o segmento s inicia-se no endereço da memória real s´
 Contém um bit residente para indicar se o segmento está na memória
 Se estiver, armazena o endereço-base do segmento
 Do contrário, armazena a localização do segmento no armazenamento
secundário
 Também contém um campo de comprimento que indica o tamanho do 
segmento
 Pode ser usada para evitar que um processo referencie endereços fora do 
segmento
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
45
Entrada da tabela de mapa de segmentos
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
46
Compartilhamento em um sistema de segmentação
 A sobrecarga do compartilhamento de segmentos pode ser menor que
o compartilhamento no sistema de paginação de mapeamento direto
puro
 É provável que poucas entradas de tabela de mapas tenham de ser 
compartilhadas
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
47
Compartilhamento em um sistema de segmentação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
48
Proteção e controle de acesso em sistemas de 
segmentação
 Um esquema de implementação de proteção de memória nos sistemas
de segmentação são as chaves de proteção de memória
 Chave de proteção
 Está associada ao processo
 Se a chave de proteção do processador e do bloco solicitado for a 
mesma, o processo pode acessar o segmento
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
49
Proteção e controle de acesso em sistemas de 
segmentação
Proteção de memória com 
chaves em sistemas de 
multiprogramação de 
alocação de memória não
contígua.
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
50
Proteção e controle de acesso em sistemas de 
segmentação
 Um esquema mais comum é usar bits de proteção que especificam se 
um processo pode ler, gravar, executar código ou ser anexado a um 
segmento
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
51
Tipos de controle de acesso em segmentação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
52
Modos úteis de controle de acesso
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
53
Proteção e controle de acesso em sistemas de 
segmentação
 Os bits de proteção são adicionados à entrada da tabela de mapas
de segmentos e verificados quando um processo referencia um 
endereço
 Se o segmento não estiver na memória, é gerada uma falha por ausência
de segmento
 Se d > l, é gerada uma exceção de estouro de segmento
 Se a operação (por exemplo, ler, gravar, executar ou anexar) não for 
permitida, é gerada uma exceção de proteção de segmento
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
54
Entrada da tabela de segmento com bits de 
proteção
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
55
Sistemasde segmentação/paginação
 Os segmentos ocupam uma ou mais páginas
 Todas as páginas do segmento precisam estar na memória principal ao
mesmo tempo
 As páginas contíguas na memória virtual têm de ser contíguas na memória
principal
 O endereço da memória virtual é implementado como triplo ordenado v = 
(s, p, d)
 s é o número do segmento
 p é o número da página dentro do segmento
 d é o deslocamento dentro da página na qual o item desejado está localizado
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
56
Sistemas de segmentação/paginação
 O processo referencia o endereço na memória virtual: v=(s, p, d)
 A DAT adiciona um endereço-base na tabela de mapas de segmentos, b, 
para refereciar o número do segmento, s
 b + s forma o endereço na memória principal da entrada da tabela de 
mapas de segmentos para o segmento s
 A entrada da tabela de mapas de segmentos armazena o endereço-base 
da tabela de páginas, s´
 O número de página referenciado, p, é adicionado a s´para localizar a 
PTE da página p, que armazena o número da moldura de página p´
 O sistema concatena p´ com o deslocamento, d, para formar o endereço
real, r
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
57
Formato de endereço virtual em um sistema
de segmentação/paginação.
Tradução dinâmica de endereço em um sistema de 
segmentação/paginação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
58
Tradução de endereço virtual 
com mapeamento combinado
associativo/direto em um 
sistema de 
segmentação/paginação.
Tradução dinâmica de endereço em um sistema de 
segmentação/paginação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
59
Estrutura de tabela para um sistema de 
segmentação/paginação
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
60
Compartilhamento e proteção em um sistema de 
segmentação/paginação
 Sistemas de segmentação/paginação
 Dois processos compartilham memória quando cada processo dispõe de 
uma entrada de tabela de mapas de segmentos que indica a mesma
tabela de páginas
 O compartilhamento requer um gerenciamento cuidadoso por parte 
do sistema operacional
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
61
Estudo de caso: memória virtual
da arquitetura Intel IA-32
 A arquitetura Intel IA-32 suporta tanto a memória virtual de segmentação pura
quanto de segmentação/paginação
 Espaço de endereço lógico:
 Conjunto de endereços contido em cada segmento
 Segmentos
 São colocados em qualquer local disponível no espaço de endereço linear do sistema
 Tradução de endereço de segmento
 É executada pelo mapeamento direto que usa registradores de processador de alta
velocidade para armazenar registradores de origem de tabela de mapas de segmentos
em um registrador de tabela de descritor global ou em um registrador de tabela de 
descritor local
 Paginação
 Suporta tabelas de páginas multiníveis e vários tamanhos de página
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
62
Dois processos que
compartilham um segmento
em um sistema de 
segmentação/paginação.
Estudo de caso: memória virtual
da arquitetura Intel IA-32
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
63
Bibliografia
 ANDREW S. TANENBAUM. Sistemas Operacionais Modernos. Editora 
Prentice-Hall, 2ª Edição, 2003. ISBN: 8587918575
 Capítulo 5: Gerenciamento de Memória
 DEITEL & CHOFFNES. Sistemas Operacionais. Editora Prentice-Hall, 3ª 
Edição, 2005. ISBN: 8576050110.
 Capítulos 9, 10, 11: Organização e Gerenciamento da Memória Real, 
Organização da Memória Virtual, Gerenciamento da Memória Virtual
64
Gerência de Memória Virtual - Prof. Ana Cristina Dantas
SISTEMAS OPERACIONAIS
Gerenciamento de Memória Virtual
Ana Cristina de Oliveira Dantas
ana.oliveira@ifpb.edu.br
IFPB – Instituto Federal da Paraíba
Campus Campina Grande

Outros materiais