Memória - Gerenciamento. Sistemas Operacionais - Professor Machado - PDF Free Download
Download "Memória - Gerenciamento. Sistemas Operacionais - Professor Machado"
Maria de Begonha Dias Palhares
1 Memória - Gerenciamento Sistemas Operacionais - Professor Machado 1
2 Partes físicas associadas à memória Memória RAM Memória ROM Cache MMU (Memory Management Unit) Processador Tabela de Páginas TLB 2
3 Conceitos Execução de Programas (Processos na memória) Único arquivo (Standalone) Fragmentos (Overlays) Uso de bibliotecas estáticas Ligação ocorre na compilação Uso de bibliotecas dinâmicas Ligação ocorre na execução (.DLL,.so) 3
6 Multiprogramação com Partições Fixas Partições fixas de memória a) filas de entrada separadas para cada partição b) fila única de entrada 6
7 Partições variáveis: algoritmos First-fit aloca o primeiro bloco de memória grande o suficiente Best-fit aloca o menor bloco de memória grande o suficiente resultando em menor sobra Worst-fit aloca o maior bloco de memória resultando em maior sobra Circular-fit como o first-fit, mas inicia a procura na partição seguinte a última sobra 7
8 Fragmentação 8
9 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 9
10 Troca de Processos 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 10
11 Troca de Processos 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 11
12 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 correspondente c) Mesmas informações em uma lista encadeada 12
13 Gerenciamento de Memória com Listas Encadeadas Quatro combinações de vizinhança para o processo X em término de execução 13
14 Memória Virtual Paginação Localização e função da MMU 14
15 Memória Virtual Paginação 15
16 Tabelas de Páginas Operação interna de uma MMU com 16 páginas de 4KB26 16
17 Tabelas de Páginas em Ní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 17
18 Tabelas de Páginas Entrada típica de uma tabela de páginas 18
19 Memória Associativa ou TLB TLB para acelerar a paginação 19
20 Tabelas de Páginas Invertidas Comparação de uma tabela de páginas tradicional com uma tabela de páginas invertidas 20
21 Questões de Implementação Envolvimento 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 Libera tabela de páginas, páginas, e espaço em disco que as páginas ocupam 21
22 Tratamento de Faltas de Página 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ária 4) SO checa validade de endereço, busca moldura de página 5) Se moldura de página selecionada foi modificada (suja), salvá-la em disco 22
23 Tratamento de Faltas de Página 6) SO 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 9) Processo que causou falta de página é escalado para executar 10) Programa continua 23
24 Recuperação de Instrução Uma instrução causadora de falta de página 24
25 Memória Secundária (a) Paginação para uma área de troca estática (b) Páginas alocadas dinamicamente em disco 25
26 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 26
27 O Algoritmo de Substituição de 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 27
28 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 28
29 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 29
30 Algoritmo de Substituição de Página Segunda Chance (SC) Operação do algoritmo segunda chance a) lista de páginas em ordem FIFO b) 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) 30
31 Algoritmo de Substituição de Página Relógio 31
32 Menos Recentemente Usada (MRU) 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 32
33 Simulação do MRU em Software MRU usando uma matriz páginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3 33
34 Simulação do MRU em Software O algoritmo do envelhecimento (aging) simula o MRU em software Note 6 páginas para 5 tiques de relógio, (a) (e) 34
35 O Algoritmo de Substituição de Página do Conjunto de Trabalho O algoritmo do conjunto de trabalho 35
36 O Algoritmo de Substituição de Página WSClock Operação do Algoritmo WSClock 36
37 Revisão dos Algoritmos de Substituição de Página 37
38 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 38
39 Questões de Projeto para Sistemas de Paginação Política de Alocação Local x Global (1) (a) Configuração original (b) Substituição local (c) Substituição global 39
40 Política de Alocação Local x Global (2) Freqüência de faltas de página como função do número de molduras de página alocado 40
41 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 41
42 Tamanho de Página 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 42
43 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) 43
44 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 44
45 Política de Limpeza Precisa de um processo que executa em background, um daemon de paginação Inspeciona periodicamente o estado da memória 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) 45
46 Segmentação Espaço de endereçamento unidimensional com tabelas crescentes Uma tabela pode atingir outra 46
47 Segmentação Permite que cada tabela cresça ou encolha, independentemente 47
48 Implementação de Segmentação Pura (a)-(d) Desenvolvimento de fragmentação externa (e) Remoção da fragmentação via compactação 48
49 Segmentação 49
Infra-Estrutura de Software IF677
Infra-Estrutura de Software IF677 Gerenciamento de Memória Tópicos Gerenciamento básico de memória Troca de processos Memória virtual Paginação Gerenciamento de Memória Idealmente, o que todo programador