Upload
cristiano-pires-martins
View
4.779
Download
0
Embed Size (px)
Citation preview
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1
Gerenciamento de MemóriaCapítulo 4
4.1 Gerenciamento básico de memória4.2 Troca de processos4.3 Memória virtual4.4 Algoritmos de substituição de páginas4.5 Modelagem de algoritmos de substituição de páginas4.6 Questões de projeto para sistemas de paginação4.7 Questões de implementação4.8 Segmentação
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2
Gerenciamento de Memória • Idealmente, o que todo programador deseja é
dispor de uma memória que seja– grande– rápida– não volátil
• Hierarquia de memórias – pequena quantidade de memória rápida, de alto custo -
cache – quantidade considerável de memória principal de
velocidade média, custo médio– gigabytes de armazenamento em disco de velocidade e
custo baixos
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3
Gerenciamento Básico de Memória Monoprogramação sem Troca de Processos ou
Paginação
Três maneiras simples de organizar a memória- um sistema operacional e um processo de usuário
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
• A) Era usado em computadores de grande porte;• B) Utilizado em computadores de mão;• C) Primeiros computadores pessoais: a parte
contida em ROM é a BIOS;• Os processos eram carregados um de cada vez;• Monoprogramação é raramente utilizada hoje.
4
Gerenciamento Básico de Memória Monoprogramação sem Troca de Processos ou
Paginação
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Multiprogramação
• Aumenta o uso de CPU;• Maneira mais comum de realizar
multiprogramação: dividir a memória em n partições (normalmente de tamanhos diferentes);– Pode ser feita quando o sistema for inicializado;– Quando um job chega ele é colocado no menor espaço
que o caiba;– O espaço não utilizado é perdido.
5
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6
Multiprogramação com Partições Fixas
• Partições fixas de memóriaa) filas de entrada separadas para cada partiçãob) fila única de entrada
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Multiprogramação com Partições Fixas
• Fila única:– O próximo que estiver na fila e couber no
espaço vazio;– O próximo maior que não desperdiçar espaço;– Criar pelo menos uma partição pequena para
que os processos menores e, geralmente interativos tenham vez.
7
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8
Relocação e Proteção
• Não se sabe com certeza onde o programa será carregado na memória– Localizações de endereços de variáveis e de código de
rotinas não podem ser absolutos• Uma possível solução: instruções do programa são
modificadas segundo a partição de memória em que ele será carregado
• Uma solução para relocação e proteção: uso de valores base e limite – localizações de endereços são somadas ao valor base
antes de serem mapeadas na memória física– localizações de endereços maior que o valor limite
indicam erro
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9
Troca de Processos (1)
• Alterações na alocação de memória à medida que processos entram e saem da memória
• Regiões sombreadas correspondem a regiões de memória não utilizadas naquele instante
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10
Troca de Processos (2)
a) Alocação de espaço para uma área de dados em expansão
b) Alocação de espaço para uma pilha e uma área de dados, ambos em expansão
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11
Gerenciamento de Memória com Mapas de Bits
a) Parte da memória com 5 segmentos de processos e 3 segmentos de memória livre− pequenos riscos simétricos denotam as unidades de alocação − regiões sombreadas denotam segmentos livres
b) Mapa de bits correspondentec) Mesmas informações em uma lista encadeada
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12
Gerenciamento de Memóriacom Listas Encadeadas
Quatro combinações de vizinhança para o processo X em término de execução
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Evolução de organizações de Memória
13
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória Virtual
• Normalmente os programas são maiores que a memória disponível;
• Solução: dividir a memória em módulos de sobreposição (overlays);
• Overlay 0 seria o primeiro a ser executado;• Quando terminar, chamaria o próximo, que
seria trocado por outro que estava em disco;
14
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória Virtual
• Esse troca de overlay do disco para a memória e vice-versa era feita pelo SO;
• A divisão do programa em módulos pelo programador;
• Em 1961, Fotheringham desenvolveu um método para que o SO dividisse os programas automaticamente: Memória Virtual.
15
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória Virtual
• Ideia básica: o programa (código+dados+pilha) pode exceder o tamanho da memória física. O SO mantém as partes ativas na memória e o restante em disco;
• Também é possível usar Mem. Virtual em um sistema com multiprogramação.
16
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17
Memória VirtualPaginação (1)
• A maioria dos sistemas com M.V. utiliza paginação;
• Existe um conjunto de endereços que podem ser gerados quando um programa é executado;
• Esses endereços são os endereços virtuais e constituem o espaço de endereçamento virtual;
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória virtual
■ Soluciona o problema de pouco espaço de memória.■ Cria a ilusão de que existe mais memória do que a
disponível no sistema.■ Existem dois tipos de endereço nos sistemas de memória
virtual:● Endereços virtuais
→Referenciados por processos.● Endereços físicos
→Indicam localizações físicas na memória principal.■ Unidade de gerenciamento de memória (MMU)
● Traduz os endereços virtuais para endereços físicos.
18
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória VirtualPaginação (1)
• Em computadores sem memória virtual:– Endereço virtual = endereço físico
• Em computadores com memória virtual:– Encaminha o endereço a uma MMU
(memory management unit – unidade de gerenciamento de memória)
– MMU: mapeia endereços virtuais em endereços físicos.
19
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20
Memória VirtualPaginação (1)
Localização e função da MMU
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
n Espaço de endereço virtual, V■ Gama de endereços virtuais que um processo
pode referenciar.n Espaço de endereço real, R
■ Gama de endereços físicos disponíveis em um sistema de computador específico.
n Mecanismo de tradução dinâmica de endereço (DAT)■ Converte endereços virtuais em endereços físicos
durante a execução de um programa.
Memória VirtualPaginação (1)
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
n |V| em geral é bem maior que |R|.■ O sistema operacional tem de armazenar partes
de V para cada processo externo à memória principal.
■ Armazenamento de dois níveis:● O sistema operacional move porções de V entre a
memória principal (e os caches) e o armazenamento secundário.
Memória VirtualPaginação (1)
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória VirtualPaginação (1)
• O espaço de endereçamento virtual é dividido em unidades denominadas páginas (pages);
• As unidades correspondentes em mem. física são molduras de páginas (page frames);
• Páginas e molduras de páginas tem o mesmo tamanho.
23
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 24
A relação entre endereços virtuais e endereços físicos de memória dada pela tabela de páginas
Memória Virtual Paginação (2)
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória VirtualPaginação
• Um bit presente/ausente em cada entrada da tabela de páginas informa se a página está fisicamente na memória ou não;
• O que acontece se não estiver?
25
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória VirtualPaginação
• A MMU verifica e força o desvio da CPU para o SO;
• Essa interrupção (trap): falta de página (page fault);
• O SO escolhe uma moldura de página pouco usada e salva em disco;
26
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória VirtualPaginação
• SO carrega a página virtual referenciada pela instrução na moldura liberada;
• Atualiza o mapeamento da tabela de páginas;
• Reinicia a instrução que causou a interrupção.
27
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 28
Tabelas de Páginas (1)
Operação interna de uma MMU com 16 páginas de 4KB
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Tabela de Páginas
• Objetivo: mapear páginas virtuais em molduras de página física;
• O número da página virtual é usado como índice dentro da tabela de páginas;
• O número da moldura da página física é concatenado aos bits de deslocamento;
29
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Tabela de Páginas
• Substitui-se o número da página virtual pelo da moldura de página física.
• Forma-se o endereço físico que será enviado à memória.
• Dois pontos devem ser considerados:– A tabela de páginas pode ser extremamente
grande;– O mapeamento deve ser rápido.
30
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Tabela de Páginas
31
Pedaços de espaços de de endereçamento existem na memória e no armazenamento secundário.
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Outra forma de mostrar...
32
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 33
Tabelas de Páginas(2)
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
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Estrutura de uma entrada da tabela de páginas
• Número da moldura de página;• O bit presente/ausente;
– 1 entrada válida;– 0 page fault;
• Bits de proteção: tipos de permissão de acesso à página:– 0 leitura/escrita;– 1 somente leitura;
34
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Estrutura de uma entrada da tabela de páginas
• Uma forma mais sofisticada: 3 bits;– Habilita/desabilita leitura, escrita, execução;
• Modificada: controla o uso da página;– 1 foi usada;– 0 não foi usada, mesmo conteúdo do disco.
• Referenciada: verifica se a página foi usada;– 1 foi usada;– 0 não foi usada, pode ser trocada.
35
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Estrutura de uma entrada da tabela de páginas
• Cache desabilitado: quando um valor deve ser constantemente atualizado, desabilita a cache.
36
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 37
Tabelas de Páginas(3)
Entrada típica de uma tabela de páginas
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória Associativa ou TLB
• TLB (translation lookaside buffer): tabela de tradução de endereços;
• Também conhecida como memória associativa;
• Localizada dentro da MMU;
38
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Memória Associativa ou TLB
• Como funciona?– Quando um endereço é apresentado à MMU:
• Primeiro verifica se o número da página virtual está presente na TLB;
• Se é encontrada, e o acesso não viola os bits de proteção;
• O número da moldura de página é obtido diretamente da TLB;
• Sem necessidade de buscá-lo na tabela de páginas.
39
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 40
Memória Associativa ou TLB
TLB para acelerar a paginação
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Apresentação do Trabalho
41
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 42
Algoritmos de Substituição de Páginas
• A falta de página força uma escolha– qual página deve ser removida– alocação de espaço para a página a ser trazida
para a memória
• A página modificada deve primeiro ser salva– se não tiver sido modificada é apenas sobreposta
• Melhor não escolher uma página que está sendo muito usada– provavelmente precisará ser trazida de volta logo
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 43
O Algoritmo de Substituiçãode Página Ótimo
• Substitui a página necessária o mais a frente possível – ótimo mas não realizável
• Estimada através de...– registro do uso da página em execuções
anteriores do processo ...– apesar disto ser impraticável
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 44
O Algoritmo de Substituição de Página Não Usada Recentemente (NUR)
• Cada página tem os bits Referenciada (R) e Modificada (M)– 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
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 45
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
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 46
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 (números representam instantes de carregamento das páginas na memória)
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 47
Algoritmo de Substituição de Página Relógio
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 48
Menos Recentemente Usada (MRU)35
• 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
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 49
Simulação do MRU em Software (1)
MRU usando uma matriz – páginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 50
Simulação do MRU em Software (2)
• O algoritmo do envelhecimento (aging) simula o MRU em software
• Note 6 páginas para 5 tiques de relógio, (a) – (e)
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 51
O Algoritmo de Substituição de Página do Conjunto de Trabalho (1)
• O conjunto de trabalho é o conjunto de páginas usadas pelas k referências mais recentes à memória
• w(k,t) é o tamanho do conjunto de trabalho no instante t
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 52
O Algoritmo de Substituição de Páginado Conjunto de Trabalho (2)
O algoritmo do conjunto de trabalho
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 53
O Algoritmo de Substituiçãode Página WSClock
Operaçãodo Algoritmo WSClock
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 54
Revisão dos Algoritmos de Substituição de Página
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 55
Modelagem de Algoritmos de Substituição de Página – Anomalia de Belady
• FIFO com 3 molduras de página• FIFO com 4 molduras de página• P mostra quais referências de página causaram faltas de página
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 56
Tamanho de Página (1)
Tamanho de página pequeno
• Vantagens– menos fragmentação interna – menos programa não usado na memória
• Desvantagens– programas precisam de mais páginas, tabelas
de página maiores
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 57
Espaços Separados de Instruções e Dados
a) Espaço de endereçamento únicob) Espaços separados de instruções (I) e dados (D)
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 58
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
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 59
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
2. Execução de processo− MMU reinicia tabela 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− carrega página requisitada para a memória
4. Terminação de processo
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 60
Tratamento de Faltas de Página (1)
1) Hardware desvia a execução para o núcleo
2) Salva conteúdo de registradores e outras informações voláteis
3) SO determina a página virtual necessária4) SO checa validade de endereço, busca
moldura de página5) Se moldura de página selecionada foi
modificada (suja), salvá-la em disco
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 61
Tratamento de Faltas de Página (2)
6) SO busca em disco página virtual referenciada
7) Tabela de páginas é atualizada8) Estado da instrução que causou falta de
página é recuperado9) Processo que causou falta de página é
escalado para executar10)Programa continua
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 62
Segmentação (1)
• Espaço de endereçamento unidimensional com tabelas crescentes
• Uma tabela pode atingir outra
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 63
Segmentação (2)
Permite que cada tabela cresça ou encolha, independentemente
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 64
Segmentação (3)
Comparação entre paginação e segmentação
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 65
Implementação de Segmentação Pura
(a)-(d) Desenvolvimento de fragmentação externa(e) Remoção da fragmentação via compactação
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 66
Segmentação com Paginação: MULTICS (1)
a) Descritores de segmentos apontam para tabelas de páginasb) Descritor de segmento – números indicam tamanhos dos campos
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 67
Um endereço virtual de 34 bits no MULTICS
Segmentação com Paginação:MULTICS (2)
sexta-feira, 27 de maio de 2011
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 68
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)
sexta-feira, 27 de maio de 2011