Aula 07 - Eduardo Santos

Propaganda
Gerência de memória III
Eduardo Ferreira dos Santos
Ciência da Computação
Centro Universitário de Brasília UniCEUB
Maio, 2016
1 / 45
Sumário
1
Memória Virtual
Segmentação
Paginação
2
Alocação de páginas
Tabelas de páginas
Políticas de alocação
2 / 45
Memória Virtual
1
Memória Virtual
Segmentação
Paginação
2
Alocação de páginas
Tabelas de páginas
Políticas de alocação
3 / 45
Memória Virtual
Conceitos
Problema do bloatware: programas que usam muito mais memória do
que deveriam;
É preciso então fornecer ao usuário a ilusão de que o computador tem
muito mais memória do que realmente tem;
Some os seguintes tamanhos:
Código-fonte;
Dados;
Pilha de execução.
Solução: manter na memória principal apenas a parte que está em uso;
O resto ca na memória secundária (disco).
4 / 45
Memória Virtual
Conceitos (cont.)
Ideia: desvincular o endereçamento lógico do endereçamento físico;
Cada programa tem seu próprio espaço de endereçamento.
Figura 1.1: Execução de memória virtual1
1
Fonte:
https://i.ytimg.com/vi/qlH4-oHnBb8/maxresdefault.jpg
5 / 45
Memória Virtual
Implementação
Generalização dos conceitos de registrador-limite e registrador-base;
Ao invés de realizar realocação separada para os segmentos de texto e
dados, mapeia o espaço de endereçamento completo na memória física;
Vantagens [Favacho, 2009]:
O tamanho dos programas não é limitado pela memória do computador;
Mais programas podem executar ao mesmo tempo.
Pode ser implementada de duas maneiras:
Paginação Divide a memória física e a memória virtual em blocos
de mesmo tamanho chamados páginas;
Segmentação Divide a memória física e a memória virtual em blocos
de tamanhos diferentes chamados segmentos.
6 / 45
Memória Virtual
1
Segmentação
Memória Virtual
Segmentação
Paginação
2
Alocação de páginas
Tabelas de páginas
Políticas de alocação
7 / 45
Memória Virtual
Segmentação
Segmentação (gráco)
Figura 1.2: Divisão da memória em segmentos [Galvin et al., 2013]
8 / 45
Memória Virtual
Segmentação
Segmentação no hardware
Figura 1.3: Algoritmo de segmentação implementado no hardware
[Galvin et al., 2013]
9 / 45
Memória Virtual
Segmentação
Segmentação (exemplo)
A referência ao byte 1222 do segmento 0 resultaria numa interrupção, pois
o segmento só possui 1000 bytes.
Figura 1.4: Exemplo de segmentação [Galvin et al., 2013]
10 / 45
Memória Virtual
1
Paginação
Memória Virtual
Segmentação
Paginação
2
Alocação de páginas
Tabelas de páginas
Políticas de alocação
11 / 45
Memória Virtual
Paginação
Paginação [Favacho, 2009]
Técnica de gerência de memória onde o espaço de endereçamento
virtual e o espaço de endereçamento real são divididos em blocos
iguais;
Na paginação é permitido o uso de espaço físico de memória não
contíguo;
As páginas no espaço virtual são chamadas páginas virtuais;
A correspondência na memória física é chamada de moldura de página
(frame);
Quando um processo precisa ser executado, suas páginas são
carregadas em frames disponíveis de memória.
12 / 45
Memória Virtual
Paginação
Memory Management Unit MMU
Componente físico que mapeia, em tempo de execução, endereços
lógicos para endereços físicos;
Diferentes métodos para mapear endereços físicos e virtuais:
1
O valor do registrador de realocação é adicionado a cada endereço
gerado pelo processo e enviado para a memória.
2
O programa do usuário trabalha somente com endereços virtuais.
Intel 80x86 possuía quatro registradores para realocação.
O endereçamento em tempo de execução é feito quando o valor da
memória é solicitado;
O endereço lógico é vinculado ao endereço físico.
13 / 45
Memória Virtual
Paginação
Registrador de realocação
Figura 1.5: Realocação dinâmica utilizando registrador de realocação
[Galvin et al., 2013]
14 / 45
Memória Virtual
Paginação
Implementação
Páginas e molduras têm sempre o mesmo tamanho;
O tamanho das páginas é uma potência de 2, que normalmente varia
entre 2
12 e 222 (4.096 - 4.194.304) bytes;
Endereços virtuais utilizam a MMU para mapear endereços físicos e
virtuais;
O mapeamento é realizado através de tabelas de páginas;
Cada página virtual possui uma entrada na tabela ETP Entrada na
Tabela de Páginas;
A tabela permite ao SO localizar a página correspondente, seja em
memória ou no disco;
Ainda possui fragmentação interna.
15 / 45
Memória Virtual
Paginação
Hardware
Figura 1.6: Exemplo de paginação no hardware [Galvin et al., 2013]
16 / 45
Memória Virtual
Paginação
Acesso à memória
Passos no acesso à memória:
1
2
3
4
A CPU envia o endereço virtual à MMU;
Na MMU o endereço virtual é dividido em (p , d ), onde p é a página e
d é o deslocamento dentro da página;
A MMU utiliza a página p para acessar a tabela de páginas e recuperar
o frame f no qual a página p reside;
A MMU substitui o p por f e coloca o endereço (f , d ) no barramento.
O endereço virtual é formado pelo número da página virtual (NPV) e
um deslocamento dentro da página;
O NPV identica unicamente uma página virtual: o deslocamento é o
índice;
Calcula-se o endereço físico somando o endereço do frame com o
deslocamento contido no endereço virtual.
17 / 45
Memória Virtual
Paginação
Mapeamento (gráco)
Figura 1.7: Algoritmo de mapeamento [Favacho, 2009]
18 / 45
Memória Virtual
Paginação
Exemplo
Figura 1.8: Exemplo de organização em páginas [Favacho, 2009]
19 / 45
Memória Virtual
Paginação
Acesso
1
O programa tenta acessar o endereço 0 (MOVE REG, 0);
2
O endereço virtual 0 é enviado à MMU;
3
A MMU conclui que o endereço virtual está na página 0 (endereços 0
a 4095);
4
frame) 2
O processo de mapeamento está na moldura de página (
(endereços 8192 a 12287);
5
A MMU transforma o endereço entregue para 8192 e coloca o valor no
barramento.
20 / 45
Memória Virtual
Paginação
Acesso (gráco)
Figura 1.9: Acesso à página [Favacho, 2009]
21 / 45
Memória Virtual
Paginação
Outro exemplo
1
O endereço virtual 20500 está a 20 bytes do início da página virtual 5
(endereços virtuais de 20480 a 24575);
2
A página virtual 5 está na página real 3 (endereços reais de 12288 a
16383);
3
Qual o endereço real que será mapeado?
22 / 45
Memória Virtual
Paginação
Outro exemplo
1
O endereço virtual 20500 está a 20 bytes do início da página virtual 5
(endereços virtuais de 20480 a 24575);
2
A página virtual 5 está na página real 3 (endereços reais de 12288 a
16383);
3
Qual o endereço real que será mapeado?
4
O endereço é mapeado no endereço real 12288 + 20 = 12308.
23 / 45
Memória Virtual
Paginação
Layout do espaço de memória
Figura 1.10: Layout do espaço de endereçamento de memória no Linux
[Duarte, 2009]
24 / 45
Alocação de páginas
1
Memória Virtual
Segmentação
Paginação
2
Alocação de páginas
Tabelas de páginas
Políticas de alocação
25 / 45
Alocação de páginas
Considerações sobre paginação
O espaço de endereçamento virtual é, geralmente, bem maior que a
memória física disponível;
Algumas páginas não estão mapeadas na memória;
Cada página virtual do processo possui uma entrada na tabela ETP;
Cada entrada possui um bit de validade, que indica se a página está
ou não na memória principal;
Bit de validade:
1 -> está na memória;
0 -> não está na memória.
26 / 45
Alocação de páginas
Bit de validade
Figura 2.1: Utilização de bit de validade [Galvin et al., 2013]
27 / 45
Alocação de páginas
Validação
Quando o processo faz referência a um endereço virtual o sistema
verica, através do bit de validade, se a página está ou não na
memória principal;
Se não estiver é necessário transferir a página da memória secundária
para a memória principal;
Quando a página é transferida, diz-se que houve um page fault (falha
de página) no sistema;
A taxa de paginação indica muito ou pouco overhead de
processamento.
28 / 45
Alocação de páginas
Análise
Figura 2.2: Ferramentas de análise da memória virtual
29 / 45
Alocação de páginas
Análise II
Figura 2.3: Servidor com muita carga
30 / 45
Alocação de páginas
Gerenciamento de page fault [Favacho, 2009]
1
Vericar se a referência de memória desse processo está dentro do seu
espaço de endereçamento;
2
Se a referência for inválida, o processo é nalizado;
3
Se a referência for válida, toma-se uma das posições de memória para
colocar a nova página;
4
É feita uma operação de disco para recuperar a página solicitada;
5
Quando o disco é lido, procede-se à modicação da tabela de páginas,
indicando que a página agora está em memória (bit = 1).
6
A instrução é reiniciada, agora com a página requerida na memória.
31 / 45
Alocação de páginas
Page fault
Figura 2.4: Algoritmo para gerenciar falhas de página (page fault) [Favacho, 2009]
32 / 45
Alocação de páginas
Tabela de páginas ETP
Guarda informações de mapeamento;
Uma das possibilidades de organização é criar uma tabela para cada
processo;
O crescimento da tabela pode ser grande demais, considerando o
aumento do espaço de endereçamento (64 bits);
Campos comuns à maior parte das tabelas de página:
bit de cache Se a página pode ser colocada em cache;
bit de referência Se a página foi referenciada;
bit de proteção Permissão da página para o processo;
bit de presente/ausente Página presente/ausente em memória física;
número do frame
Frame onde a página está mapeada
33 / 45
Alocação de páginas
1
Tabelas de páginas
Memória Virtual
Segmentação
Paginação
2
Alocação de páginas
Tabelas de páginas
Políticas de alocação
34 / 45
Alocação de páginas
Tabelas de páginas
Localização da ETP
A tabela de páginas pode ser localizada tanto na MMU quanto na
memória principal;
Tabela de páginas totalmente armazenada na MMU;
Estratégias híbridas: MMU e memória principal;
Alguns fatores considerados na escolha da estratégia
Overhead da troca de contexto;
Tamanho da tabela de páginas;
Simplicidade de implementação;
Quantidade de acessos à tabela
Custo.
35 / 45
Alocação de páginas
Tabelas de páginas
Localização na MMU
A tabela de páginas é mantida na memória principal;
Componentes de hardware auxiliam no controle da tabela de páginas
[Galvin et al., 2013]:
Page-table base register PTBR Aponta para a tabela de páginas;
Page-table length register PTLR Tamanho da tabela de páginas
Cada instrução necessita de dois acessos à memória:
1
2
Acessa a ETP;
Acessa o dado/instrução.
36 / 45
Alocação de páginas
Tabelas de páginas
Considerações sobre MMU
Utilização de registradores especiais;
Cada registrador contém uma entrada da tabela;
A tabela de páginas é carregada na troca de contexto direto dos
registradores;
Vantagens [Favacho, 2009]:
Fácil de implementar;
Mapeamento eciente;
Desvantagens:
Inviável para páginas grandes;
Aumento do overhead na troca de contexto.
37 / 45
Alocação de páginas
Tabelas de páginas
Abordagem híbrida
Tenta reduzir o custo de realizar dois acessos utilizando um tipo
especial de cache chamado TLB Translation Look-aside Buer;
A tabela de páginas é armazenada na memória principal e um
registrador contém o endereço de início;
Quando um endereço virtual é apresentado à MMU primeiro acessa o
TLB;
Caso não esteja no TLB, realiza o acesso à memória para procurar o
endereço;
Insere a entrada no TLB para as próximas referências;
Vantagens:
Custo relativamente baixo;
Desvantagens:
Alguns acessos à memória precisarão pagar o custo adiciona de acesso.
38 / 45
Alocação de páginas
Tabelas de páginas
Implementação TLB
Figura 2.5: Paginação em hardware utilizando TLB [Galvin et al., 2013]
39 / 45
Alocação de páginas
1
Políticas de alocação
Memória Virtual
Segmentação
Paginação
2
Alocação de páginas
Tabelas de páginas
Políticas de alocação
40 / 45
Alocação de páginas
Políticas de alocação
Número de frames
Há duas alternativas para determinar o número de frames que cada
processo pode manter na memória principal:
frames.
Cada processo tem um número máximo de frames;
Quantos frames alocar para cada processo?
Número de frames depende da taxa de paginação.
Fixo Todo processo aloca uma quantidade xa de
Variável
Varia de acordo com a ocupação da memória;
Como denir o número máximo por processo?
41 / 45
Alocação de páginas
Políticas de alocação
Política de alocação
Como deve ser alocada a memória livre?
Estratégias:
Número mínimo de quadros;
Alocação igual. Divide m quadros por n processos. Assim, cada
processo tem direito a mn quadros;
Alocação proporcional, levando em consideração o tamanho do
processo.
42 / 45
Alocação de páginas
Políticas de alocação
Escopo
Escopo da política de alocação de páginas:
Local Só podem ser selecionados
frames alocados ao processo.
Número total de quadros do processo permanece
constante;
Global Os
frames são compartilhados entre todos os processos.
Todas as páginas são candidatas à realocação;
Um processo pode realocar frames de outro;
Como gerenciar?
É possível reduzir o espaço de memória de outro
processo.
43 / 45
Alocação de páginas
Políticas de alocação
OBRIGADO!!!
PERGUNTAS???
44 / 45
Alocação de páginas
Políticas de alocação
Duarte, G. (2009).
Anatomy of a program in memory.
Disponível em: http://duartes.org/gustavo/blog/post/
anatomy-of-a-program-in-memory/ Acessado em 11/04/2016.
Favacho, A. (2009).
Notas de aula da Profa. Aletéia Favacho.
Galvin, P. B., Gagne, G., and Silberschatz, A. (2013).
Operating system concepts.
John Wiley & Sons, Inc.
45 / 45
Download