Administração de Memória - INF

Propaganda
Administração de Memória
4.1 Administração básica de memória
4.2 Swapping
4.3 Memória Virtual
4.4 Algoritmos de substituição de páginas
4.5 Modelando algoritmos de substituição de páginas
4.6 Tópicos de projeto para sistemas de paginação
4.7 Tópicos de implementação
4.8 Segmentação
1
Administração de Memória
{
Idealmente, programadores querem memória que
seja
z
z
z
{
Hierarquia
z
z
z
z
{
Grande
Rápida
Não volátil
Cache
Memória principla
Disco
Fita
O administrador de memória cuida da hierarquia!
2
1
Administração Básica de Memória
Monoprogramação sem Swapping ou Paginação
- SO com um processo de usuário
3
Multiprogramação com Partições Fixas
4
2
Modelando Multiprogamação
Degree of multiprogramming
Utilização da CPU = 1 – pn
Utilização da CPU em função do número de processos na
memória
5
Análise da porformance de sistemas
Multiprogramados
6
3
Relocação e Proteção
{
Não se pode saber com certeza onde o programa
será carregado na memória
z
z
{
Endereços de locação de variáveis e rotinas de código não
podem ser absolutos
Deve manter um programa fora das partições de outros
programas
Usar valores de “base” e “limite”
z
z
Posições de endereços adicionadas ao valor base para
mapear para o endereço físico
Posições maiores que o valor limite são erradas
7
Swapping (1)
Alocação de memória muda quando processos:
z
z
Entram na memória
Saem da memória
Regiões sombreadas são memória não usadas
8
4
Swapping (2)
{
{
Alocando espaço para um segmento de dados crescente
Alocando espaço para segmentos de pilha e dados
crescentes
9
Administração de Memória com Bit Maps
{
Parte de memória com 5 processos, 3
buracos
z
z
{
{
Tmarcas indicam unidades de alocação
Regiões sombreadas estão livres
bit map
Mesma informação em uma lista
10
5
Administração de Memória com Listas ligadas
Quatro situações para o fim do processo X
11
Memoria Virtual
Paginação (1)
Posição e Função da MMU
12
6
Paginação (2)
Relação entre
endereços virtuais
e endereços físicos
dados pela tabela
de páginas
13
Tabelas de Páginas (1)
Operação interna da MMU com 16 - 4 KB paginas
14
7
Tabelas de Páginas (2)
Second-level page tables
Top-level
page table
{
{
Endereço de 32 bits co 2 campos de tabelas de
páginas
Tabela de páginas em 2 níveis
15
Tabelas de Páginas(3)
Estranda Típica de tabela de páginas
16
8
TLBs – Translation Lookaside Buffers
(Memória associativa)
Uma TLB para acelerar a paginação
17
Tabelas de Páginas Invertidas
Comparaçao entra uma tabela de páginas tradicional com
uma tabela de páginas invertida
18
9
Algoritmos de Substituição de Páginas
{
Page fault força escolha
z
{
Páginas modificadas devem ser salvas
z
{
Qual página deve ser removida para ceder
espaço para a página que chega
Não modificadas apenas sobrescritas
Melhor não usar uma página usada
frequentemente
19
Algoritmo Ótimo
{
Trocar a página que será necessária no
futuro mais distante
z
{
Ótima mas impossível…
Estimativa por …
z
z
logging das páginas usadas em rexecuções
anteriores do processo
… não é prático…
20
10
Algorítmo Not Recently Used
{
Cada página tem um bit de referência
(R) e um de modificado (M)
z
{
Classificação Das páginas
1.
2.
3.
4.
{
Os bis são setados quando a página é
modificada ou referenciada
não referenciada, não modified
não referenciada, modificada
referenciada, não modificada
referenciada, modificada
NRU remove páginas aleatoriamente
z
A partir das classes mais baixas
numerações
21
FIFO
{
Mantém uma lista ligada de todas as páginas
z
Na ordem em que foram carregadas
{
A página no início da lista é substituida
{
Desvantagem
z
Uma página carregada a muito tempo pode ser usada
frequentemente
22
11
Segunda Chance
{
Operação da segunda chance
z
z
As páginas são classificas por FIFO
Lista de págins se falta ocorre no tempo 20, A tem R
bit ligado (números acima das páginas são tempos de
carga)
23
Relógio
24
12
Least Recently Used (LRU)
{
Assume que páginas usadas recentemente serão
uadas novamente em breve
z
{
Deve manter uma lista ligada de todas as páginas
z
z
{
Discarta a página não usda por mais tempo
Usadas maia recentemente na frente, menos usdas no
fundo
Atualiza esta lista a cada referência à memória !!
Alternativamente, mantem um contador em cada
entrada de página
z
z
Escolhe a página com o menor contgador
Periodicamente zera o contador
25
Simulando LRU em Software (1)
LRU usando uma matriz – referências às
26
páginas na ordem 0,1,2,3,2,1,0,3,2,3
13
Simulando LRU em Software (2)
{
{
O algoritmo do envelhecimento simula
LRU em software
Note 6 páginas para 5 ticks do relógio, (a)
27
– (e)
Algoritmo do conjunto de trabalho (Working Set) (1)
{
{
O Conjunto de Trabalho é o conjunto de páginas
usadas pelas k mais recentes referências à memória
w(k,t) é o tamanho do conjunto de trabalho no
instante, t
28
14
Algoritmo do conjunto de trabalho (Working Set)(2)
29
Relógio do Conjunto de Trabalho (WSClock)
30
15
Revisão dos Algoritmos de Substituição de Páginas
31
Modelando Algoritmos de susbtituição de
Páginas – Anomalia de Belady
{
{
FIFO com 3 molduras de páginas
P's mostram qual referência de página provoca
uma falta de página
32
16
Modelando Algoritmos de susbtituição de
Páginas – Anomalia de Belady
{
{
FIFO com 4 molduras de páginas
P's mostram qual referência de página provoca
uma falta de página
33
Modelando Algoritmos de susbtituição de Páginas –
Anomalia de Belady
{
{
{
FIFO com 3 molduras de páginas
FIFO com 4 molduras de páginas
P's mostram qual referência de página provoca uma falta
de página
34
17
Algoritmos de Pilha
7
4
6 5
Estado da Memória (M), após cada item
da string de referência ser processado
35
A String de Distância
Funções de Densidade de
Probabilidade para duas Strings de
Distância Hipotéticas
36
18
A String de Distância
{
Computação da taxa de falte de páginas pela
string de distância
z
z
vetor C
vetor F
37
Tópicos de Projeto para Sistemas de Paginação
Políticas de Alocação Global vs Alocação Local (1)
{
{
{
Configuração Original
Substituição de página
Local
Substituição de página
Global
38
19
Políticas de Alocação Global vs Alocação Local (2)
Taxa de Faltas de Páginas como uma
função do número de molduras
atribuidas
39
Fim
{
Apresentar a definição do trabalho
de OSP do módulo memória
40
20
Próxima aula
41
Tabelas de Páginas Invertidas
Comparaçao entra uma tabela de páginas tradicional com
uma tabela de páginas invertida --- Usasdas em
arquiteturas de 64 bits
42
21
Controle de Carga
{
{
{
Apesar de bons projetos, os sistemas ainda
podem entrar em thrashing
Quando a Frequência de Faltas de Página
indica:
z Alguns processos precisam de mais
memória
z Nenhum processo precisa de menos
memória
Solução?
43
Tamanho de Página
(1)
Pequeno
{
Vantagens
{
Desvantagem
44
22
Tamanho de Página(2)
{
Overhead devido à fragmentação
interna e tabela de página
page table space
overhead =
{
Onde
z
z
z
s ⋅e p
+
p
2
internal
fragmentation
s = tamanho médio do processo em bytes
p = tamanho da página em bytes
Optimized
e = entrada de página
when
p = 2 se
45
Separar espaços de instruções e Dados
{
{
Um espaço de endereçamento
Espaços separados para I e D
46
23
Páginas Compartilhadas
47
Política de Limpeza
{
Requerida para um processo em
background process, daemon de
paginação
z
{
Quando poucas molduras estão livres
z
{
Periodicamente inspeciona a memória
Seleciona uma página para ser descartada
Pode usar mesmo algoritmo(clock)
z
Como o algoritmos regular de troca de
páginas mas com parâmetros diferentes
48
24
Tópicos de Implementação
Envolvimento do So com Paginação
1.
Criação do processo
−
−
Determina tamanho do programa
Cria a tabela de páginas
Execução do processo
2.
MMU iniciada para o novo processo
−
TLB flushed
Momento da falta de página
3.
−
−
Determina endereço virtual causando a falta
swap página alvo fora e requerida para dentro
4. Termino do processo
−
Libera tabela de páginas e páginas
49
Administração de Falta de páginas (1)
1.
2.
3.
4.
5.
Hardware traps para kernel
Registradores gerasi salvos
SO determina qual página virtual é requerida
SO checa validade do endereço, busca a moldura
de página
Se moldura selecionada estiver suja, escreve-a
em disco
50
25
Administração de Falta de páginas (2)
SO traz página nova do disco
As tabelas de páginas são atualizadas
6.
7.
z
Instrução que provocou a falta volta para seu
início
Processo de falta restaurado
Registradores restaurados
8.
9.
z
Programa continua
51
Backup de Instrução
Uma instrução provocando uma falta
de página
52
26
Travando páginas em memória
{
{
Memória virtual e ES interagem
ocasionalmente
Processo faz uma chamada para uma
leitura de um dispositivo em um buffer
z
z
z
{
Enquanto espera por ES, outro processo inicia
Ocorre uma falta de página
O buffer do primeiro processo pode ser escolhido
para page-out
É necessário especificar algumas páginas
“travadas”(locked)
53
Backing Store
(a) Paginação para área de swap estática
(b) Backing up páginas dinamicamente
54
27
Separação de Política e Mecanismo
Administração de falta de página com um paginador
externo
55
Segmentação (1)
{
{
Espaço de endereçamnto uni-dimensional com tabelas
crescentes
Uma tabela pode invadir a outra
56
28
Segmentação (2)
Permite cada tabela crescer/encolher
independentemente
57
Segmentação (3)
Comparação entre paginação e
segmentação
58
29
Implementação de segmentação pura
(a)-(d) desenvolvimento de “xadrez”
(e) Remoção por compactação
59
Segmentação com paginação: MULTICS (1)
{
{
Segmento descritor aponta para tabelas de páginas
Segmento descritor – números são comprimentos dos campos
60
30
Segmentação com paginação : MULTICS (2)
Um endereço virtual MULTICS de 34bit
61
Segmentação com paginação : MULTICS (3)
Conversão de um endereço de duas partes em um endereço
de memória
62
31
Segmentação com paginação: MULTICS (4)
{
{
Versão simplificada da MULTICS TLB
Existencia de 2 tamanhos de páginas faz a TLB mais
complicada
63
Segmentação com paginação: Pentium (1)
Um seletor Pentium
64
32
Segmentação com paginação: Pentium (2)
{
{
Descritor de segmento de código
do Pentium
Segmentos de dados diferentes
(ligeiramente)
65
Segmentação com paginação: Pentium (3)
Conversão de (selector, offset) para endereço
linear
66
33
Segmentação com paginação: Pentium (4)
Mapeamento do endereço linear em endereço
físico
67
Segmentação com paginação: Pentium (5)
Level
Proteção no Pentium
68
34
Download