1
1
Administração de Memória
4.1 Administração básica de memória4.2 Swapping4.3 Memória Virtual4.4 Algoritmos de substituição de páginas4.5 Modelando algoritmos de substituição de páginas4.6 Tópicos de projeto para sistemas de paginação4.7 Tópicos de implementação4.8 Segmentação
2
Administração de Memória
Idealmente, programadores querem memória queseja
GrandeRápidaNão volátil
HierarquiaCacheMemória principlaDiscoFita
O administrador de memória cuida da hierarquia!
2
3
Administração Básica de MemóriaMonoprogramação sem Swapping ou Paginação
- SO com um processo de usuário
4
Multiprogramação com Partições Fixas
3
5
Modelando Multiprogamação
Utilização da CPU = 1 – pn
Utilização da CPU em função do número de processos namemória
Degree of multiprogramming
6
Análise da porformance de sistemasMultiprogramados
4
7
Relocação e Proteção
Não se pode saber com certeza onde o programaserá carregado na memória
Endereços de locação de variáveis e rotinas de código nãopodem ser absolutosDeve manter um programa fora das partições de outrosprogramas
Usar valores de “base” e “limite”Posições de endereços adicionadas ao valor base paramapear para o endereço físicoPosições maiores que o valor limite são erradas
8
Swapping (1)
Alocação de memória muda quando processos:Entram na memóriaSaem da memória
Regiões sombreadas são memória não usadas
5
9
Swapping (2)
Alocando espaço para um segmento de dados crescenteAlocando espaço para segmentos de pilha e dados crescentes
10
Administração de Memória com Bit Maps
Parte de memória com 5 processos, 3 buracos
Tmarcas indicam unidades de alocaçãoRegiões sombreadas estão livres
bit mapMesma informação em uma lista
6
11
Administração de Memória com Listas ligadas
Quatro situações para o fim do processo X
12
Memoria Virtual Paginação (1)
Posição e Função da MMU
7
13
Paginação (2)
Relação entreendereços virtuaise endereços físicosdados pela tabelade páginas
14
Tabelas de Páginas (1)
Operação interna da MMU com 16 - 4 KB paginas
8
15
Tabelas de Páginas (2)
Endereço de 32 bits co 2 campos de tabelas de páginasTabela de páginas em 2 níveis
Second-level page tables
Top-level page table
16
Tabelas de Páginas(3)
Estranda Típica de tabela de páginas
9
17
TLBs – Translation Lookaside Buffers(Memória associativa)
Uma TLB para acelerar a paginação
18
Tabelas de Páginas Invertidas
Comparaçao entra uma tabela de páginas tradicional com uma tabela de páginas invertida
10
19
Algoritmos de Substituição de Páginas
Page fault força escolhaQual página deve ser removida para cederespaço para a página que chega
Páginas modificadas devem ser salvasNão modificadas apenas sobrescritas
Melhor não usar uma página usadafrequentemente
20
Algoritmo Ótimo
Trocar a página que será necessária no futuro mais distante
Ótima mas impossível…
Estimativa por …logging das páginas usadas em rexecuçõesanteriores do processo… não é prático…
11
21
Algorítmo Not Recently Used
Cada página tem um bit de referência(R) e um de modificado (M)
Os bis são setados quando a página émodificada ou referenciada
Classificação Das páginas1. não referenciada, não modified2. não referenciada, modificada3. referenciada, não modificada4. referenciada, modificadaNRU remove páginas aleatoriamente
A partir das classes mais baixasnumerações
22
FIFO
Mantém uma lista ligada de todas as páginasNa ordem em que foram carregadas
A página no início da lista é substituida
DesvantagemUma página carregada a muito tempo pode ser usadafrequentemente
12
23
Segunda Chance
Operação da segunda chanceAs páginas são classificas por FIFOLista de págins se falta ocorre no tempo 20, A tem Rbit ligado (números acima das páginas são tempos de carga)
24
Relógio
13
25
Least Recently Used (LRU)Assume que páginas usadas recentemente serãouadas novamente em breve
Discarta a página não usda por mais tempo
Deve manter uma lista ligada de todas as páginasUsadas maia recentemente na frente, menos usdas no fundoAtualiza esta lista a cada referência à memória !!
Alternativamente, mantem um contador em cadaentrada de página
Escolhe a página com o menor contgadorPeriodicamente zera o contador
26
Simulando LRU em Software (1)
LRU usando uma matriz – referências àspáginas na ordem 0,1,2,3,2,1,0,3,2,3
14
27
Simulando LRU em Software (2)
O algoritmo do envelhecimento simulaLRU em softwareNote 6 páginas para 5 ticks do relógio, (a) – (e)
28
Algoritmo do conjunto de trabalho (Working Set) (1)
O Conjunto de Trabalho é o conjunto de páginasusadas pelas k mais recentes referências à memóriaw(k,t) é o tamanho do conjunto de trabalho no instante, t
15
29
Algoritmo do conjunto de trabalho (Working Set)(2)
30
Relógio do Conjunto de Trabalho (WSClock)
16
31
Revisão dos Algoritmos de Substituição de Páginas
32
Modelando Algoritmos de susbtituição de Páginas – Anomalia de Belady
FIFO com 3 molduras de páginasP's mostram qual referência de página provocauma falta de página
17
33
Modelando Algoritmos de susbtituição de Páginas – Anomalia de Belady
FIFO com 4 molduras de páginasP's mostram qual referência de página provocauma falta de página
34
Modelando Algoritmos de susbtituição de Páginas –Anomalia de Belady
FIFO com 3 molduras de páginasFIFO com 4 molduras de páginasP's mostram qual referência de página provoca uma faltade página
18
35
Algoritmos de Pilha
Estado da Memória (M), após cada item da string de referência ser processado
7 4 6 5
36
A String de Distância
Funções de Densidade de Probabilidade para duas Strings de
Distância Hipotéticas
19
37
A String de Distância
Computação da taxa de falte de páginas pelastring de distância
vetor C vetor F
38
Tópicos de Projeto para Sistemas de PaginaçãoPolíticas de Alocação Global vs Alocação Local (1)
Configuração Original Substituição de páginaLocalSubstituição de páginaGlobal
20
39
Políticas de Alocação Global vs Alocação Local (2)
Taxa de Faltas de Páginas como umafunção do número de molduras
atribuidas
40
Fim
Apresentar a definição do trabalho de OSP do módulo memória
21
41
Próxima aula
42
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
22
43
Controle de Carga
Apesar de bons projetos, os sistemas aindapodem entrar em thrashing
Quando a Frequência de Faltas de Páginaindica:
Alguns processos precisam de maismemóriaNenhum processo precisa de menosmemória
Solução?
44
Tamanho de Página (1)
PequenoVantagens
Desvantagem
23
45
Tamanho de Página(2)
Overhead devido à fragmentaçãointerna e tabela de página
Ondes = tamanho médio do processo em bytesp = tamanho da página em bytese = entrada de página
2s e poverheadp⋅
= +
page table space
internal fragmentation
Optimized when
2p se=
46
Separar espaços de instruções e Dados
Um espaço de endereçamentoEspaços separados para I e D
24
47
Páginas Compartilhadas
48
Política de LimpezaRequerida para um processo em background process, daemon de paginação
Periodicamente inspeciona a memóriaQuando poucas molduras estão livres
Seleciona uma página para ser descartadaPode usar mesmo algoritmo(clock)
Como o algoritmos regular de troca de páginas mas com parâmetros diferentes
25
49
Tópicos de ImplementaçãoEnvolvimento do So com Paginação1. Criação do processo
− Determina tamanho do programa− Cria a tabela de páginas
2. Execução do processoMMU iniciada para o novo processo− TLB flushed
3. Momento da falta de página− 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
50
Administração de Falta de páginas (1)
1. Hardware traps para kernel2. Registradores gerasi salvos3. SO determina qual página virtual é requerida4. SO checa validade do endereço, busca a moldura
de página5. Se moldura selecionada estiver suja, escreve-a
em disco
26
51
Administração de Falta de páginas (2)
6. SO traz página nova do disco7. As tabelas de páginas são atualizadas
Instrução que provocou a falta volta para seuinício
8. Processo de falta restaurado9. Registradores restaurados
Programa continua
52
Backup de Instrução
Uma instrução provocando uma faltade página
27
53
Travando páginas em memóriaMemória virtual e ES interagemocasionalmenteProcesso faz uma chamada para umaleitura de um dispositivo em um buffer
Enquanto espera por ES, outro processo iniciaOcorre uma falta de páginaO buffer do primeiro processo pode ser escolhidopara page-out
É necessário especificar algumas páginas“travadas”(locked)
54
Backing Store
(a) Paginação para área de swap estática(b) Backing up páginas dinamicamente
28
55
Separação de Política e Mecanismo
Administração de falta de página com um paginadorexterno
56
Segmentação (1)
Espaço de endereçamnto uni-dimensional com tabelascrescentesUma tabela pode invadir a outra
29
57
Segmentação (2)
Permite cada tabela crescer/encolherindependentemente
58
Segmentação (3)
Comparação entre paginação e segmentação
30
59
Implementação de segmentação pura
(a)-(d) desenvolvimento de “xadrez”(e) Remoção por compactação
60
Segmentação com paginação: MULTICS (1)
Segmento descritor aponta para tabelas de páginasSegmento descritor – números são comprimentos dos campos
31
61
Segmentação com paginação : MULTICS (2)
Um endereço virtual MULTICS de 34-bit
62
Segmentação com paginação : MULTICS (3)
Conversão de um endereço de duas partes em um endereçode memória
32
63
Segmentação com paginação: MULTICS (4)
Versão simplificada da MULTICS TLBExistencia de 2 tamanhos de páginas faz a TLB maiscomplicada
64
Segmentação com paginação: Pentium (1)
Um seletor Pentium
33
65
Segmentação com paginação: Pentium (2)
Descritor de segmento de códigodo PentiumSegmentos de dados diferentes(ligeiramente)
66
Segmentação com paginação: Pentium (3)
Conversão de (selector, offset) para endereçolinear
34
67
Segmentação com paginação: Pentium (4)
Mapeamento do endereço linear em endereçofísico
68
Segmentação com paginação: Pentium (5)
Proteção no Pentium
Level