Gerenciamento de Memória Prof. Alexandre Beletti Ferreira Gerência de Memória Sistemas Monoprogramáveis = gerenciamento simplificado Sistemas Multiprogramáveis = gerenciamento crítico (muitos usuários / aplicações) 2 1
Sem abstração de memória Comp. Grande Porte (antes de 1960) Microcomputdores (antes de 1970) PCs(antes de 1980) Exemplo: MOV REG,[1000] 3 Código Absoluto X Código Relativo (a) Programa A (16K) (b) Programa B (16K) (c) Os dois Programas A instrução no endereço 16384 irá saltar para a área de outro processo. O IBM 360 resolvia com uma constante de relocação. Processo lento e precisa localizar o que é endereço e o que é valor. 4 2
Abstração de Memória Espaço de Endereçamento é análogo ao conceito de Processo (criar uma memória virtual como também cria uma UCP virtual) 5 Registrador Base e Limite O hardware tratou o JMP 28 como um JMP 16412, protegendo o outro processo. CDC 6600 implementava 8088 não tinha o limite, porém múltiplos registradores Se a memória fosse grande o suficiente isso bastaria... 6 3
Gerenciamento de Memória Livre Gerenciamento com mapa de bits (b) Gerenciamento com listas encadeadas (c) 7 Memória Virtual Memória Virtual = Memória Principal (RAM) + Memória Secundária (HD) Simulação de um espaço de memória maior do que a memória real Não existe vínculo direto dos endereços dos programas aos endereços físicos Somente partes dos processos estão na RAM, permitindo um número maior de processos 8 4
Histórico 1960 = Atlas (Univ. Manchester) 1972 = System 370 (IBM) A maioria dos computadores atuais implementa memória virtual (exceto supercomputadores) 9 Espaço de Endereçamento Virtual Processo = Contexto de Hardware + Contexto de Software + Espaço de Endereçamento Espaço de Endereçamento = Endereçamento Virtual O programador que faz uso de linguagem de alto nível não tem acesso aos endereços reais Mesmo o de baixo nível, fica sujeito as restrições impostas pelo Modo Usuário 10 5
End. Real X End. Virtual Exemplo: MOV REG,[1000] Em computadores sem memória virtual o endereço virtual é idêntico ao físico Em computadores com memória virtual o endereço virtual precisa ser tratado pela MMU 11 Espaço de Endereçamento Virtual CONTINUA 12 6
Espaço de Endereçamento Virtual CONTINUA 13 Mapeamento O processador trabalha com endereços reais MMU (hardware) junto ao SO (software) traduz endereços virtuais em reais 14 7
Tabela de Mapeamento 15 Espaço Virtual X Tamanho do Bloco Se o mapeamento fosse para cada célula de memória principal, o espaço da tabela seria tão grande quanto o espaço de endereçamento virtual de cada processo. Quanto maior o bloco, menos entradas na tabela de mapeamento e, consequentemente, tabelas de mapeamento que ocupam menos espaço na memória CONTINUA 16 8
Modelos de Memória Virtual Paginação = Bloco de Tamanho Fixo Segmentação = Bloco de Tamanho Variável Segmentação com Paginação = Híbrido 17 Blocos Fixos = Páginas Paginação Espaço Virtual = Páginas Virtuais Espaço Real = Páginas Reais ou Frames Cada processo possui sua própria tabela de páginas Cada página virtual do processo possui uma Entrada na Tabela de Páginas (ETP) 18 9
Tabela de Páginas 19 Mapeamento de 4K em 4K 20 10
Endereço Virtual Endereço Virtual = Número da Página Virtual (NPV) + Deslocamento Deslocamento = Posição do Endereço Virtual Em Relação ao Início da Página Endereço Real (Físico) = Endereço do Frame + Deslocamento ETP possui também o bit de validade, que indica se uma página virtual está ou não na RAM CONTINUA 21 Tradução do Endereço Virtual 22 11
Page Fault Processo tenta acessar página que não está na RAM (bit de validade = 0) SO transfere página da memória secundária para a memória principal (PAGE IN) Taxa de Paginação = Número de Page Faults Page Fault gera uma mudança do estado do processo: Execução -> Pronto CONTINUA 23 Mecanismo de Tradução 24 12
MMU 16 páginas de 4K 25 TLB (memória associativa) Hardware presente na MMU para mapear endereços virtuais em físicos sem passar pela tabela de páginas As páginas mais acessadas são referenciadas 26 13
Políticas de Busca de Páginas Por Demanda (Demand Paging) Ex: Rotinas de tratamento de erro podem nunca ser carregadas Antecipada (Prepaging) Ex: Se o programa estiver sequencialmente no disco pode ser uma vantagem ( otimização ) 27 Políticas de Alocação de Páginas Alocação Fixa Número Máximo de Frames por Processo Pode gerar excesso de Page Faults Alocação Variável Altas taxas de paginação geram ampliação do limite máximo de Frames 28 14
Políticas de Substituição de Páginas Página foi modificada = Page Out (salvar) Página não modificada = Substitua Dirty/Modify Bit = Indica páginas modificadas Substituição Local = páginas do próprio processo Substituição Global = páginas de todos processos 29 Local (b) e Global (c) 30 15
Algoritmos de Substituição de Páginas Ótimo Aleatório FIFO (First In First Out) FIFO com Buffer FIFO Circular LFU (Last Frequently Used) LRU (Last Recently Used) NRU (Not Recently Used) 31 Swapping em Memória Virtual Insuficiência de memória principal Processos são selecionados para saírem da RAM Swap out = Retirar processo da RAM Swap in = Retorno de um processo a RAM Swap file = Arquivo/Partição de Troca Existem várias políticas de seleção de processos (Ex: estado do processo ou prioridade) CONTINUA 32 16
Swapping em Memória Virtual 33 Segmentação A memória virtual tradicionalmente vai de 0 até um endereço máximo em um espaço unidimensional Dividir em espaços de endereçamento separado pode otimizar alguns procedimentos 34 17
Memória Segmentada 35 Implementação de Segmentação Pura Checkboarding (segmentação externa) Compactação 36 18
Paginação X Segmentação 37 Segmentação Paginada Pentium Intel Possui 16K segmentos independentes Cada segmento com até um bilhão de palavras de 32 bits Faz uso de duas tabelas: LDT = Local Descriptor Table GDT = Global Descriptor Table Cada programa possui a sua LDT mas a GDT é compartilhada por todos 38 19
Segmentação Paginada Pentium Intel Carrega um seletor para aquele segmento dentro de um dos registrados: CS, DS, ES, SS, FS e GS Resumidamente, temos a memória acessada como segmentos e dentro dos segmentos podemos ter: Paginação Desabilitada ou Habilitada. 39 Paginação Desabilitada X Habilitada Desabilitada: Endereço Linear = Interpretado como endereço físico Habilitada: Endereço Linear = Endereço Virtual e mapeado sobre um endereço físico (como já vimos desde o início...) 40 20
Referências TANENBAUM,A.S., Sistemas Operacionais Modernos - 3ª edição. Peason, 2010. SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G.,Fundamentos de Sistemas Operacionais. LTC, 2010. MACHADO F.B.M., MAIA L.P.,Arquitetura de Sistemas Operacionais. LTC, 2013. TANENBAUM,A.S., WOODHULL,,Sistemas Operacionais -Projeto e Implementação -3ª edição. Bookman, 2008. 41 21