Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner [email protected] Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.6 Questões de projeto para sistemas de paginação 4.7 Questões de implementação 4.8 Segmentação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2 Questões • Como executar um programa que necessite mais que a memória RAM do computador? • Como fazer relocação de código? • Como traduzir endereço virtual (requisitado pela CPU) para endereço físico (endereço na memória RAM) Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3 Swapping Pearson Education Sistemas Operacionais Modernos – 2ª Edição 4 Overlays • Há muito tempo, os programadores já tinham o problema de lidar com programas maiores que a memória disponível; • Dividiu-se os programas em módulos, chamados overlay; • Quem dividia o programa em overlays era o programador: – tarefa trabalhosa; • Os programadores dividiam o programa em overlays de forma que pudesse ser colocados alguns trechos de códigos em RAM sem precisar carregar todo o programa; • A automação desse processo ficou conhecido como memória virtual; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 5 Fragmentação • Considere a possibilidade de se colocar programas em pedaços de memória distintos; • Se um processo A requisitar 18,464 bytes, e um processo B requisitar 18,462 bytes, 2 bytes será um buraco entre os processos; • Isso é chamado de fragmentação externa; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6 Fragmentação • É possível também haver fragmentação interna; • Se um processo requisitar 20KB, e só usar 15KB, 5KB está sendo desperdiçado; • Isso causa fragmentação interna; • Uma solução para fragmentação externa é compactação, como visto na aula passada; • O problema, como vimos, é que esse processo é custoso em relação a tempo; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7 Fragmentação • Uma outra solução é permitir que o espaço de endereçamento lógico de um programa seja não-contíguo; • Duas técnicas representam essa solução; – Paginação; – Segmentação; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8 Paginação • Em todo computador existe um conjunto de endereços de memória que os programas podem gerar ao serem executados; • Ex.: MOV REG, 1000 • Esses endereços gerados são chamados endereços virtuais, e constituem o espaço de endereçamento virtual; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9 Paginação • Em computadores sem memória virtual, o endereço virtual é o mesmo que o físico; • Ou seja, ao tentar ler ou escrever de um endereço, basta colocar esse endereço no barramento de memória; • Em computadores com memória virtual, o endereço virtual difere do físico; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10 Paginação • Antes de ser colocado no barramento de memória, o end. Virtual passa pela MMU (unidade de gerenciamento de memória); • A MMU traduz o endereço virtual para o endereço físico; • A MMU é um dispositivo em HW; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11 Paginação • O espaço de endereçamento virtual é divido em partes denominadas páginas(pages); • As unidades correspondentes em memória física são denominadas molduras de páginas (page frames); • As páginas e frames têm tamanhos fixos na memória; • Página: entre 512 bytes a 16MB • Moldura: • O tamanho é definido pelo hardware; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12 Exemplo • Computador que gera endereços virtuais de 16 bits, 0 a 64K; • O computador tem apenas 32KB de memória física; • As páginas tem 4KB; • 212 para páginas e 24 para indexar as páginas; • Total de páginas: 16 • Total de molduras: 8 -> 32KB/4KB Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13 Memória Virtual Paginação (1) Localização e função da MMU Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14 Paginação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15 Memória Virtual Paginação (2) A relação entre endereços virtuais e endereços físicos de memória dada pela tabela de páginas Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16 Paginação • O que acontece se uma página não estiver mapeada? • Falta de página, ou page fault; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17 Tabelas de Páginas (1) Operação interna de uma MMU com 16 páginas de 4KB26 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18 Paginação • Paginação resolve o problema de fragmentação externa; • Mas o problema de fragmentação interna pode persistir: – Ex.: tamanho de uma página grande, de 16MB!! Provavelmente haverá muito desperdício interno de página. • Por outro lado, tamanho de páginas pequeno pode gerar uma grande quantidade de páginas, fazendo com que a tabela de páginas seja muito grande em memória; • Além de aumentar a quantidade de acessos à tabela de página; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19 Discussões • Dois pontos importantes: – A tabela de páginas pode ser extremamente grande; – O mapeamento deve ser rápido; • Computadores atuais: – usam 32 ou 64 bits; • 32 bits: – Com um tamanho de página de 4KB, um espaço de endereçamento de 32 bits tem mais de um milhão de páginas virtuais (220)! Ou seja, um milhão de entrada na tabela de páginas. Imagina só 64 bits!! – Lembre-se: cada processo necessita de sua própria tabela de página!! Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20 Discussões • O segundo ponto, referente à velocidade de mapeamento, advém do fato que todo acesso à memória precisa do mapeamento end. Lógico>físico; • Por instrução, faz-se uma, duas ou mais traduções; • Se cada tradução durar em média 4ns, a tradução da MMU deve ser de no máximo 1ns, para não virar gargalho; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 21 TB Páginas Multiní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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 22 TB Páginas Multiníveis • Diminuição da tabela em memória; • Mantém apenas as tabelas necessárias; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 23 Estrutura de uma entrada na Tabela Entrada típica de uma tabela de páginas Pearson Education Sistemas Operacionais Modernos – 2ª Edição 24 Estrutura de uma entrada na Tabela • Número da moldura: – parte do endereço físico na memória; • Bit presente/ausente: – 1=entrada válida – 0=página virtual não está na memória. Um acesso gera page fault; • Bits de proteção: – leitura, escrita e execução; • Bit modificada: – é importante quando o SO reinvidica uma moldura. Ela deve ser salva em disco? Pearson Education Sistemas Operacionais Modernos – 2ª Edição 25 Estrutura de uma entrada na Tabela • Bit referenciada: – usada na escolha de qual página dever ser substituída; • Bit cache desabilitado: – importante para páginas que mapeiam em registradores de dispositivos ao invés de memória (pegar o dado mais atual); • Obs.: o endereço em disco de uma página não fica na tabela de páginas. Quem controla isso é o SO, em software; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 26 Memória Associativa ou TLB (Translation Lookaside Buffer) • Problema: – Instrução que copia um registrador em outro. Sem paginação, só se faria um acesso à memória; – Com paginação, são necessários vários acessos, por causa da tabela de páginas; • Solução: – Dispositivo em HW que traduz end. lógicos a físicos, sem passar pela tabela de páginas Pearson Education Sistemas Operacionais Modernos – 2ª Edição 27 TLB • Os projetistas perceberam que os programas tendem a fazer um grande número de acessos a um conjunto pequeno de páginas virtuais; • Normalmente: – TLB tem entre 8-64 entradas; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 28 Memória Associativa ou TLB TLB para acelerar a paginação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 29 Tabelas de Páginas Invertidas • Se o espaço de end. for de 32 bits, com páginas de 4KB, mais de 1 milhão de entradas serão necessárias. • Se cada entrada tiver 4bytes (comum), a tabela de páginas terá 4MB; • Mas e com pcs de 64 bits, com 8 bytes por entrada na tabela? – Mais de 30000000 GB!!! • Mesmo que se aumente a quantidade de níveis de páginas, por exemplo 7 níveis para 64 bits, o acesso seria lento, dado a quantidade de acessos necessários para mapear endereço lógico para físico. • Como solução, usa-se tabelas de páginas invertidas; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 30 Tabelas de Páginas Invertidas Comparação de uma tabela de páginas tradicional com uma tabela de páginas invertidas Usa-se TLB para acelerar o processo de busca Pearson Education Sistemas Operacionais Modernos – 2ª Edição 31 Tabelas de Páginas Invertidas • A quantidade na tabela é a mesma quantidade de molduras de página na memória RAM; • O problema de Tabelas de Páginas Invertidas é que a busca é muito lenta; • Para aumentar a velocidade de busca, usa-se TLB; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 32