memória virtual - Gustavo Wagner

Propaganda
Sistemas Operacionais
FATEC-PB
Professor: Gustavo Wagner
[email protected]
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
1
Capítulo 4
Gerenciamento de Memória
4.1 Gerenciamento básico de memória
4.2 Troca de processos
4.3 Memória virtual
4.4 Algoritmos de substituição de páginas
4.6 Questões de projeto para sistemas de paginação
4.7 Questões de implementação
4.8 Segmentação
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
2
Questões
• Como executar um programa que necessite
mais que a memória RAM do computador?
• Como fazer relocação de código?
• Como traduzir endereço virtual (requisitado
pela CPU) para endereço físico (endereço
na memória RAM)
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
3
Swapping
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
4
Overlays
• Há muito tempo, os programadores já tinham o problema
de lidar com programas maiores que a memória disponível;
• Dividiu-se os programas em módulos, chamados overlay;
• Quem dividia o programa em overlays era o programador:
– tarefa trabalhosa;
• Os programadores dividiam o programa em overlays de
forma que pudesse ser colocados alguns trechos de códigos
em RAM sem precisar carregar todo o programa;
• A automação desse processo ficou conhecido como
memória virtual;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
5
Fragmentação
• Considere a possibilidade de se colocar
programas em pedaços de memória
distintos;
• Se um processo A requisitar 18,464 bytes, e
um processo B requisitar 18,462 bytes, 2
bytes será um buraco entre os processos;
• Isso é chamado de fragmentação externa;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
6
Fragmentação
• É possível também haver fragmentação interna;
• Se um processo requisitar 20KB, e só usar 15KB,
5KB está sendo desperdiçado;
• Isso causa fragmentação interna;
• Uma solução para fragmentação externa é
compactação, como visto na aula passada;
• O problema, como vimos, é que esse processo é
custoso em relação a tempo;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
7
Fragmentação
• Uma outra solução é permitir que o espaço
de endereçamento lógico de um programa
seja não-contíguo;
• Duas técnicas representam essa solução;
– Paginação;
– Segmentação;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
8
Paginação
• Em todo computador existe um conjunto de
endereços de memória que os programas
podem gerar ao serem executados;
• Ex.: MOV REG, 1000
• Esses endereços gerados são chamados
endereços virtuais, e constituem o espaço
de endereçamento virtual;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
9
Paginação
• Em computadores sem memória virtual, o
endereço virtual é o mesmo que o físico;
• Ou seja, ao tentar ler ou escrever de um
endereço, basta colocar esse endereço no
barramento de memória;
• Em computadores com memória virtual, o
endereço virtual difere do físico;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
10
Paginação
• Antes de ser colocado no barramento de
memória, o end. Virtual passa pela MMU
(unidade de gerenciamento de memória);
• A MMU traduz o endereço virtual para o
endereço físico;
• A MMU é um dispositivo em HW;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
11
Paginação
• O espaço de endereçamento virtual é divido em
partes denominadas páginas(pages);
• As unidades correspondentes em memória física
são denominadas molduras de páginas (page
frames);
• As páginas e frames têm tamanhos fixos na
memória;
• Página: entre 512 bytes a 16MB
• Moldura:
• O tamanho é definido pelo hardware;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
12
Exemplo
• Computador que gera endereços virtuais de 16
bits, 0 a 64K;
• O computador tem apenas 32KB de memória
física;
• As páginas tem 4KB;
• 212 para páginas e 24 para indexar as páginas;
• Total de páginas: 16
• Total de molduras: 8 -> 32KB/4KB
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
13
Memória Virtual
Paginação (1)
Localização e função da MMU
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
14
Paginação
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
15
Memória Virtual Paginação (2)
A relação entre endereços virtuais e endereços físicos de
memória dada pela tabela de páginas
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
16
Paginação
• O que acontece se uma página não estiver
mapeada?
• Falta de página, ou page fault;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
17
Tabelas de Páginas (1)
Operação interna de uma MMU com 16 páginas de 4KB26
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
18
Paginação
• Paginação resolve o problema de fragmentação externa;
• Mas o problema de fragmentação interna pode persistir:
– Ex.: tamanho de uma página grande, de 16MB!! Provavelmente
haverá muito desperdício interno de página.
• Por outro lado, tamanho de páginas pequeno pode gerar
uma grande quantidade de páginas, fazendo com que a
tabela de páginas seja muito grande em memória;
• Além de aumentar a quantidade de acessos à tabela de
página;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
19
Discussões
• Dois pontos importantes:
– A tabela de páginas pode ser extremamente grande;
– O mapeamento deve ser rápido;
• Computadores atuais:
– usam 32 ou 64 bits;
• 32 bits:
– Com um tamanho de página de 4KB, um espaço de endereçamento
de 32 bits tem mais de um milhão de páginas virtuais (220)! Ou
seja, um milhão de entrada na tabela de páginas. Imagina só 64
bits!!
– Lembre-se: cada processo necessita de sua própria tabela de
página!!
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
20
Discussões
• O segundo ponto, referente à velocidade de
mapeamento, advém do fato que todo acesso à
memória precisa do mapeamento end. Lógico>físico;
• Por instrução, faz-se uma, duas ou mais traduções;
• Se cada tradução durar em média 4ns, a tradução
da MMU deve ser de no máximo 1ns, para não
virar gargalho;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
21
TB Páginas Multiníveis
a) Endereço de 32 bits com 2 campos para
endereçamento de tabelas de páginas
b) Tabelas de páginas com 2 níveis
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
22
TB Páginas Multiníveis
• Diminuição da tabela em memória;
• Mantém apenas as tabelas necessárias;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
23
Estrutura de uma entrada na
Tabela
Entrada típica de uma tabela de páginas
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
24
Estrutura de uma entrada na
Tabela
• Número da moldura:
– parte do endereço físico na memória;
• Bit presente/ausente:
– 1=entrada válida
– 0=página virtual não está na memória. Um acesso gera page fault;
• Bits de proteção:
– leitura, escrita e execução;
• Bit modificada:
– é importante quando o SO reinvidica uma moldura. Ela deve ser
salva em disco?
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
25
Estrutura de uma entrada na
Tabela
• Bit referenciada:
– usada na escolha de qual página dever ser substituída;
• Bit cache desabilitado:
– importante para páginas que mapeiam em registradores
de dispositivos ao invés de memória (pegar o dado mais
atual);
• Obs.: o endereço em disco de uma página não fica
na tabela de páginas. Quem controla isso é o SO,
em software;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
26
Memória Associativa ou TLB
(Translation Lookaside Buffer)
• Problema:
– Instrução que copia um registrador em outro.
Sem paginação, só se faria um acesso à
memória;
– Com paginação, são necessários vários acessos,
por causa da tabela de páginas;
• Solução:
– Dispositivo em HW que traduz end. lógicos a
físicos, sem passar pela tabela de páginas
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
27
TLB
• Os projetistas perceberam que os programas
tendem a fazer um grande número de
acessos a um conjunto pequeno de páginas
virtuais;
• Normalmente:
– TLB tem entre 8-64 entradas;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
28
Memória Associativa ou TLB
TLB para acelerar a paginação
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
29
Tabelas de Páginas Invertidas
• Se o espaço de end. for de 32 bits, com páginas de 4KB,
mais de 1 milhão de entradas serão necessárias.
• Se cada entrada tiver 4bytes (comum), a tabela de páginas
terá 4MB;
• Mas e com pcs de 64 bits, com 8 bytes por entrada na
tabela?
– Mais de 30000000 GB!!!
• Mesmo que se aumente a quantidade de níveis de páginas,
por exemplo 7 níveis para 64 bits, o acesso seria lento,
dado a quantidade de acessos necessários para mapear
endereço lógico para físico.
• Como solução, usa-se tabelas de páginas invertidas;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
30
Tabelas de Páginas Invertidas
Comparação de uma tabela de páginas
tradicional com uma tabela de páginas invertidas
Usa-se TLB para acelerar o processo de busca
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
31
Tabelas de Páginas Invertidas
• A quantidade na tabela é a mesma
quantidade de molduras de página na
memória RAM;
• O problema de Tabelas de Páginas
Invertidas é que a busca é muito lenta;
• Para aumentar a velocidade de busca, usa-se
TLB;
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
32
Download