1 gerenciamento de memória (algoritmos de substituição de páginas) prof. alexandre monteiro...
TRANSCRIPT
![Page 1: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/1.jpg)
1
Gerenciamento de Memória (Algoritmos de Substituição de
Páginas)
Prof. Alexandre Monteiro
Recife
![Page 2: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/2.jpg)
Contatos
Prof. Guilherme Alexandre Monteiro Reinaldo
Apelido: Alexandre Cordel
E-mail/gtalk: [email protected]
Site: http://www.alexandrecordel.com.br/fbv
Celular: (81) 9801-1878
![Page 3: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/3.jpg)
Algoritmos de Substituição de Página Como dito anteriormente, quando ocorre uma falha
de página, o Sistema Operacional deve selecionar uma das molduras para disponibilizar para a página não mapeada. Se a página a ser retirada da moldura tiver sido modificada, ela deve ser atualizada em disco.
Caso contrário, a página pode ser retirada da moldura, ou seja, da memória principal, sem necessitar de atualização em memória. A página escolhida é, comumente, chamada de página vítima.
![Page 4: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/4.jpg)
Algoritmos de Substituição de Página
A escolha aleatória de uma página vítima pode influenciar diretamente o desempenho do sistema.
O ideal seria retirar uma página não modificada e que não é utilizada constantemente.
• uma página modificada precisa ser copiada para disco, mas uma não modificada pode ser sobrescrita
• se for retirado uma página muito utilizada, é provável que seja logo referenciada e necessite voltar para a memória principal, gerando novamente uma falha de página.
Para a escolha de qual página será retirado da memória, o algoritmo de substituição de páginas determina qual página deve ser removida e usa as informações estatísticas contidas nas tabelas de páginas, que serão descritos a seguir.
![Page 5: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/5.jpg)
Algoritmos de Substituição de Páginas
![Page 6: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/6.jpg)
6
O Algoritmo de Substituiçãode Página Ótimo ou Ideal
Substitui a página que será acessada no futuro mais remoto• Infelizmente, não é viável na prática, pois exigiria
um conhecimento sobre todos os acessos futuros. Estimada através de...
• registro do uso da página em execuções anteriores do processo ...
• apesar disto ser impraticável
![Page 7: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/7.jpg)
7
O Algoritmo de Substituição de Página Não Usada Recentemente (NUR)
Cada página tem os bits (R) Referenciada / Acessada e (M) Modificada/Alterada• Bits são colocados em 1 quando a página é referenciada e
modificada
As páginas são classificadas- Classe 0: não referenciada, não modificada- Classe 1: não referenciada, modificada- Classe 2: referenciada, não modificada- Classe 3: referenciada, modificada
NUR remove página aleatoriamente • da classe de ordem mais baixa que não esteja vazia
![Page 8: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/8.jpg)
8
Algoritmo de Substituição de Página Primeira a Entrar, Primeira a Sair
Mantém uma lista encadeada de todas as páginas• página mais antiga na cabeça da lista• página que chegou por último na memória no final da lista
Na ocorrência de falta de página- página na cabeça da lista é removida- nova página adicionada no final da lista
Desvantagem• página há mais tempo na memória pode ser usada com
muita freqüência
![Page 9: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/9.jpg)
9
Algoritmo de Substituição de Página Segunda Chance (SC)
Operação do algoritmo segunda chancea) lista de páginas em ordem FIFOb) estado da lista em situação de falta de página no instante 20, com o bit
R da página A em 1 (verificado se seu bit de referência tenha valor 1, caso ele tenha valor 1, seu valor é mudado para 0 e esta página NÃO é retirada, é tratada como mais recentemente carregada)
![Page 10: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/10.jpg)
10
Algoritmo de Substituição de Página Relógio
Todos as páginas carregadas estão em uma lista circular.
Ponteiro aponta para a página P15, a próxima página ser testada a partir da página P14.
Note neste algoritmo, que a próxima página que será retirada não será nem as páginas 15, 16, 1 e 2, pois seus bits de referência tem valores 1. a próxima vítima será a página 3
Alternativa para o algoritmo da 2a. Chance (sem necessidade de manipular fila)
![Page 11: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/11.jpg)
11
Menos Recentemente Usada (MRU) ou LRU (Least Recently Used)
Assume que páginas usadas recentemente logo serão usadas novamente
• retira da memória página que há mais tempo não é usada
Uma lista encadeada de páginas deve ser mantida• página mais recentemente usada no início da lista, menos usada
no final da lista• atualização da lista à cada referência à memória
Alternativamente manter contador em cada entrada da tabela de página
• escolhe página com contador de menor valor • zera o contador periodicamente
![Page 12: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/12.jpg)
LRU
A implementação do algoritmo LRU é muito custoso, segundo Tanenbaum, pois é preciso manter uma lista encadeada de todas as páginas na memória, com as páginas mais recentemente utilizadas na frente e as menos recentemente utilizadas no fundo.
Essa lista deve ser atualizada a cada referência de página, o que pode gerar uma grande modificação na lista.
Imagine que, uma página do fim da lista (pouco referenciada) seja referenciada. É preciso, então deslocar esta página para o início da fila.
![Page 13: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/13.jpg)
MRU usando matrizes
HW especial que mantém uma matriz n x n, onde n é o número de molduras.
Inicialmente todos os bits da matriz são 0.
Sempre que a moldura k é referenciada, o hardware seta todos os bits da linha k para 1, e depois zera todos os bits da coluna k para zero.
Deste modo, a qualquer instante a linha com o menor valor binário é a menos recentemente usada.
![Page 14: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/14.jpg)
14
Simulação do LRU em Software (1)
LRU usando uma matriz – páginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3
![Page 15: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/15.jpg)
Algoritmo NFU (Não Frequentemente Usado) Não Usada Frenquentemente
Um contador por página na memória
A cada tick, o S.O. percorre todas as páginas na memória e soma
o bit R (0 ou 1) de cada página ao seu respectivo contador
Na ocorrência de falta de página, a página c/ o menor contador é substituída
Problema: o algoritmo nunca esquece (reseta) o contador
![Page 16: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/16.jpg)
16
Envelhecimento (Aging)Simulação do LRU em Software
O algoritmo do envelhecimento (aging) simula o LRU em software
Note 6 páginas para 5 tiques de relógio, (a) – (e)
![Page 17: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/17.jpg)
17
O Algoritmo de Substituição de Página do Conjunto de Trabalho (1)
![Page 18: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/18.jpg)
18
O Algoritmo de Substituição de Páginado Conjunto de Trabalho (2)
![Page 19: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/19.jpg)
19
O Algoritmo de Substituiçãode Página WSClock
Operaçãodo Algoritmo WSClock
Considera: Conjunto de Trabalho;Referenciadas e;Modificadas.
![Page 20: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/20.jpg)
20
Revisão dos Algoritmos de Substituição de Página
![Page 21: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/21.jpg)
21
Modelagem de Algoritmos de Substituição de Página – Anomalia de Belady
(a) FIFO com 3 molduras de página (b) FIFO com 4 molduras de página P mostra quais referências de página causaram faltas de página
![Page 22: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/22.jpg)
22
Algoritmos de Pilha
Estado do vetor de memória, M, após cada item na cadeia de referências ter sido processado
![Page 23: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/23.jpg)
23
A Cadeia de Distâncias
Funções densidade de probabilidade para duas cadeias de distâncias hipotéticas
![Page 24: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/24.jpg)
24
A Cadeia de Distâncias
Cálculo da freqüência de faltas de página (PFF)a) o vetor Cb) o vetor F
![Page 25: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/25.jpg)
25
Questões de Projeto para Sistemas de PaginaçãoPolítica de Alocação Local x Global (1)
(a) Configuração original (b) Substituição local (c) Substituição global
![Page 26: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/26.jpg)
26
Política de Alocação – Ultra-paginaçãoLocal x Global (Thrashing)
Fenômeno que ocorre quando o gerenciador de memória fica sobrecarregado com cópias de páginas entre memória e disco.
Alta frequência de faltas de página: ocorre quando um processo possui menos páginas na memória do que o seu conjunto de páginas em uso (working-set).
![Page 27: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/27.jpg)
27
Controle de Carga
Mesmo com um bom projeto, o sistema ainda pode sofrer paginação excessiva (thrashing)
Quando o algoritmo PFF indica• alguns processos precisam de mais memória• mas nenhum processo precisa de menos
Solução :Reduzir o número de processos que competem pela memória• levar alguns deles para disco e liberar a memória a eles
alocada• reconsiderar grau de multiprogramação
![Page 28: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/28.jpg)
28
Espaços Separados de Instruções e Dados
a) Espaço de endereçamento único
b) Espaços separados de instruções (I) e dados (D)
![Page 29: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/29.jpg)
29
Páginas Compartilhadas
Dois processos que compartilham o mesmo código de programa e, por conseqüência, a mesma tabela de
páginas para instruções
![Page 30: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/30.jpg)
30
Política de Limpeza
Precisa de um processo que executa em background, um daemon de paginação
• Inspeciona periodicamente o estado da memória• Verifica se página modificadas foram escritas em disco.
Quando apenas algumas molduras de página estão disponíveis• Seleciona páginas a serem removidas usando um algoritmo de
substituição
Pode ser implementada através de lista circular (relógio) com dois ponteiros
• Ponteiro da frente controlado pelo daemon de paginação• Ponteiro de trás usado para substituição de página (como no do relógio)
![Page 31: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/31.jpg)
31
Questões de ImplementaçãoEnvolvimento do S.O. com a Paginação
Quatro circunstâncias de envolvimento:
1. Criação de processo- determina tamanho do programa- cria tabela de página (swap area = área de troca de disco)
2. Execução de processo- MMU reinicia tabela de páginas para novo processo- TLB é esvaziada
3. Ocorrência de falta de página- determina endereço virtual que causou a falta- descarta, se necessário, página antiga (política de limpeza)- carrega página requisitada para a memória e aponta para instrução
4. Terminação de processo- Libera tabela de páginas, páginas, e espaço em disco que as
páginas ocupam, caso não sejam compartilhadas.
![Page 32: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/32.jpg)
32
Tratamento de Faltas de Página (1)
1) Hardware desvia a execução para o núcleo (salva estado atual do processo na pilha)
2) Salva conteúdo de registradores e outras informações voláteis
3) SO determina a página virtual necessária que gerou a falta de página.
4) SO checa validade de endereço, busca moldura de página na memória.
5) Se moldura de página selecionada foi modificada (suja), salvá-la em disco
![Page 33: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/33.jpg)
33
Tratamento de Faltas de Página (2)
6) SO escreve a página modificada em disco e busca em disco página virtual referenciada
7) Tabela de páginas é atualizada
8) Estado da instrução que causou falta de página é recuperado e aponta para a instrução
9) Processo que causou falta de página é escalado para executar
10) Programa continua
![Page 34: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/34.jpg)
34
Fixação de Páginas na Memória Memória virtual e E/S interagem ocasionalmente
Processo emite chamada ao sistema para ler do disco para o buffer• enquanto espera pela E/S, outro processo inicia• ocorre uma falta de página• buffer do primeiro processo pode ser escolhido para ser
levado para disco
Solução possível (Retenção de Páginas = Pinning)• Fixação de páginas envolvidas com E/S na memória
![Page 35: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/35.jpg)
35
Memória Secundária
(a) Paginação para uma área de troca estática
(b) Páginas alocadas dinamicamente em disco
![Page 36: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/36.jpg)
36
Separação da Políticae do Mecanismo
Tratamento de faltas de página com paginador externo
![Page 37: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/37.jpg)
Segmentação
Divisão do espaço de endereçamento em um número de partições com tamanhos distintos
Aproxima-se mais da visão do programador: um programa é uma coleção de segmentos de tamanho variável
Os compiladores e montadores criam automaticamente os segmentos que constituem o programa
Na carga do programa cada segmento recebe um número de segmento específico
![Page 38: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/38.jpg)
38
Segmentação (1)
Espaço de endereçamento unidimensional com tabelas crescentes
Uma tabela pode atingir outra
![Page 39: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/39.jpg)
Segmentação
A memória lógica é constituída por um conjunto de segmentos, cada um com um nome e um tamanho (na prática, os segmentos são identificados por números e não por nomes)
Páginas têm tamanho fixo, segmentação não.
Uma posição da memória lógica é referida por um par (s, d)
- s é o número do segmento - d é o deslocamento (offset ) dentro do segmento
![Page 40: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/40.jpg)
40
Segmentação (2)
Permite que cada tabela cresça ou encolha, independentemente
![Page 41: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/41.jpg)
Segmentação
SubrotinaPilha
Programa Principal
Sqrt
Array X
Espaço de Endereçamento Lógico do Processo
![Page 42: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/42.jpg)
Segmentação
É necessário mapear cada endereço lógico do tipo (s, d) para o endereços da memória física correspondente
Para isso cada processo possui a sua tabela de segmentos
A tabela de segmentos pode ser colocada em registradores rápidos ou na memória principal.
Normalmente, é usado o esquema de memória associativa (na tabela associativa ficam os segmentos mais recentemente acessados e seus endereços)
![Page 43: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/43.jpg)
Tabela de Segmentos
![Page 44: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/44.jpg)
Segmentação
Pode-se associar atributos aos segmentos, possibilitando assim uma proteção ou compartilhamento destes segmentos
Bit de proteção associado a cada entrada da tabela de segmentos
A segmentação facilita o compartilhamento entre usuários
![Page 45: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/45.jpg)
Segmentação e Paginação
Espaço endereçamento• Paginação
- Espaço de endereçamento lógico é um espaço único, contínuo, cujos endereços vão desde zero até MAX (onde MAX = tamanho do programa menos 1)
• Segmentação- Espaço de endereçamento lógico é formado por um
conjunto de segmentos. Cada segmento é um espaço contínuo, cujos endereços vão desde zero até MAX (onde MAX = tamanho do segmento menos 1)
![Page 46: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/46.jpg)
Segmentação e Paginação
Qual o melhor?• Discussão antiga, sem vencedores
Fragmentação• Paginação : apresenta fragmentação interna• Segmentação : apresenta fragmentação externa
Administração• Paginação é mais simples
Proteção (segurança) e compartilhamento• Segmentação é melhor, pois:
- segmentos são unidades lógicas - páginas são mais misturadas (dados, código)
![Page 47: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/47.jpg)
47
Segmentação (3)
Comparação entre paginação e segmentação
![Page 48: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/48.jpg)
Sistemas Combinados
Existem sistemas onde a paginação e a segmentação são usadas em conjunto, procurando tirar proveito de ambos os esquemas.
• Segmentação paginada (mais comum)• Paginação segmentada (menos comum)
![Page 49: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/49.jpg)
Segmentação Paginada
s d
Base daTabela dePáginas
Tamanho do
Segmento
+
>=
p d’
d
f d’f
erro
N
STabela deSegmentos
MEM
![Page 50: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/50.jpg)
Paginação por demanda
Um programa pode ser executado com poucas de suas páginas na memória
Quando necessário, uma página é trazida do disco para memória e utilizada (demanda)
![Page 51: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/51.jpg)
Paginação por demanda
É uma extensão do mecanismo de paginação simples
As páginas de um processo podem estar presentes na memória ou não.
As páginas não presentes estão marcadas como inválidas
Se uma página inválida é referida, o SO verifica se ela está em disco (page fault) ou se realmente é uma página fora do espaço lógico do processo
![Page 52: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/52.jpg)
52
Implementação de Segmentação Pura
(a)-(d) Desenvolvimento de fragmentação externa
(e) Remoção da fragmentação via compactação
![Page 53: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/53.jpg)
53
Segmentação com Paginação: MULTICS (1)
a) Descritores de segmentos apontam para tabelas de páginas
b) Descritor de segmento – números indicam tamanhos dos campos
![Page 54: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/54.jpg)
54
Um endereço virtual de 34 bits no MULTICS
Segmentação com Paginação:MULTICS (2)
![Page 55: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/55.jpg)
55
Conversão de um endereço MULTICS de duas partes em um endereço da memória principal
Segmentação com Paginação:MULTICS (3)
![Page 56: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/56.jpg)
56
Versão simplificada da TLB do MULTICS
Existência de dois tamanhos de páginas torna a TLB real mais complicada
Segmentação com Paginação:MULTICS (4)
![Page 57: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/57.jpg)
57
Segmentação com Paginação:Pentium (1)
Um seletor do Pentium
Memória virtial do Pentium suporta:• Paginação pura, segmentação pura, ou segmentação paginada• 16K segmentos independentes cada um com 232 palavras• 2 tabelas: Local Description Table (uma por processo), e Globaldescription Table (compartilhada por todos pprocessos)• Endereço base (so segmento) é carregado em registrador de CPU: CS (code segment) ou DS (data segment)• Cada segmento possui um dos 4 níveis de privilégio do Pentium:(kernel, system calls, sh.libraries, user programs)
![Page 58: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/58.jpg)
58
Segmentação com Paginação:Pentium (2)
Descritor de segmento de código do Pentium
Segmentos de dados diferem ligeiramente
![Page 59: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/59.jpg)
59
Segmentação com Paginação:Pentium (3)
Conversão de um par (seletor, deslocamento) para um endereço linear
Tamanho de página é 4K (12 bits). 20 bits da Base são usados para indexar a tabela de páginas.
![Page 60: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/60.jpg)
60
Segmentação com Paginação:Pentium (4)
Mapeamento de um endereço linear sobre um endereço físico
Quando usado no modo paginação:• A tabela de páginas é paginada, e endereço possui dois indices: (dir-index, page-
index)• Pentium possui um pequeno TLB que mantém os pares de índice recentes
![Page 61: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/61.jpg)
61
Segmentação com Paginação:Pentium (5)
Proteção no Pentium
![Page 62: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/62.jpg)
Realocação dinâmica de memória é indispensável para multiprogramação;
Cada processo deve ter o seu próprio mapeamento de memória;
Memória Virtual (paginação) é provida na maioria dos S.O. modernos;
Mas necessita de uma MMU (com um TLB), senão torna-se inviável;
A depender o tamanho de página, pode-se precisar paginação em 2 (ou mais) níveis;
Algoritmo de substituição de páginas - implementado no Gerente de Memória - , deve escolher as páginas usadas há mais tempo e não modificadas.
Segmentação permite ao desenvolvedor controlar a gerência de memória.
![Page 63: 1 Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife](https://reader036.vdocuments.net/reader036/viewer/2022062303/552fc171497959413d8ee36f/html5/thumbnails/63.jpg)
Referências
Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.
Modern Operating Systems 3 e. Prentice-Hall, 2008.