Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS Gerenciamento de Memória Virtual Ana Cristina de Oliveira Dantas ana.oliveira@ifpb.edu.br IFPB – Instituto Federal da Paraíba Campus Campina Grande ■ O conceito de memória virtual ■ Sistemas de memória virtual paginada ■ Sistemas de memória virtual segmentada ■ Sistemas combinados de segmentação/paginação de memória virtual Organização da Memória Virtual2 Gerência de Memória Virtual - Prof. Ana Cristina Dantas Memória Virtual - Introdução Soluciona o problema de pouco espaço de memória principal Cria a ilusão de que existe mais memória do que a disponível no sistema Utilizando o armazenamento secundário como memória principal Gerência de Memória Virtual - Prof. Ana Cristina Dantas 3 Endereços de Memória Virtual Gerência de Memória Virtual - Prof. Ana Cristina Dantas 4 Existem dois tipos de endereço nos sistemas de memória virtual: Endereços virtuais Referenciados pelos processos Endereços físicos Indicam localizações físicas na memória principal Unidade de gerenciamento de memória (MMU – Memory Management Unit) Traduz os endereços virtuais para endereços físicos Evolução de organizações de memória Memória Real vs. Memória Virtual Gerência de Memória Virtual - Prof. Ana Cristina Dantas 5 Memória virtual: conceitos básicos Espaço de endereço virtual, V Conjunto de endereços virtuais que um processo pode referenciar Espaço de endereço real, R Conjunto de endereços físicos disponíveis Mecanismo de tradução dinâmica de endereço (DAT – Dynamic Address Translation) Converte endereços virtuais em endereços físicos durante a execução de um programa Gerência de Memória Virtual - Prof. Ana Cristina Dantas 6 Memória virtual: conceitos básicos |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 Gerência de Memória Virtual - Prof. Ana Cristina Dantas 7 Armazenamento em dois níveis Memória virtual: conceitos básicos Gerência de Memória Virtual - Prof. Ana Cristina Dantas 8 Pedaços de espaços de de endereçamento existem na memória e no armazenamento secundário Memória virtual: conceitos básicos Gerência de Memória Virtual - Prof. Ana Cristina Dantas 9 Mapeamento de bloco Mapeamento de um bloco da memória virtual em sua respectiva localização na memória real Mapeamentos de tradução de endereço Indicam que regiões do espaço de endereço virtual (V) de um processo estão na memória principal no momento e onde estão localizadas Gerência de Memória Virtual - Prof. Ana Cristina Dantas 10 Mapeamento de endereços virtuais para endereços reais Mapeamento de bloco Gerência de Memória Virtual - Prof. Ana Cristina Dantas 11 Mapeamento de bloco Contigüidade artificial Os endereços virtuais contíguos podem não corresponder aos endereços de memória real contíguos Gerência de Memória Virtual - Prof. Ana Cristina Dantas 12 Contigüidade artificial Mapeamento de bloco Gerência de Memória Virtual - Prof. Ana Cristina Dantas 13 Mapeamento de bloco Página Memória dividida em blocos com tamanho fixo Técnica denominada Paginação Segmentos Memória dividida em blocos que podem ter diferentes tamanhos Técnica denominada Segmentação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 14 Formato de endereço virtual em um sistema de mapeamento de bloco Mapeamento de bloco Endereços → pares ordenados (representação) Gerência de Memória Virtual - Prof. Ana Cristina Dantas 15 Tradução de endereço virtual com mapeamento de bloco Mapeamento de bloco Gerência de Memória Virtual - Prof. Ana Cristina Dantas 16 Mapeamento de bloco Dado um endereço (address) v = (b, d) O registrador de origem (registrador-base) de mapas de blocos é armazenado em a O número do bloco, b, é acrescentado a a para localizar a entrada apropriada na tabela de mapas de blocos A entrada da tabela de mapas de blocos indica o endereço, b´, do início do bloco b na memória principal Um deslocamento d é acrescentado a b´ para formar o endereço real, r Gerência de Memória Virtual - Prof. Ana Cristina Dantas 17 Paginação Mapeamento de blocos de tamanho fíxo O endereço virtual no sistema de paginação é um par ordenado v = (p, d) p é o número da página na memória virtual na qual o item referenciado reside d é o deslocamento do início da página p na qual o item referenciado está localizado Gerência de Memória Virtual - Prof. Ana Cristina Dantas 18 Formato do endereço virtual em um sistema de paginação pura Formato do endereço virtual Gerência de Memória Virtual - Prof. Ana Cristina Dantas 19 Moldura de página (page frame) Bloco de tamanho fixo na memória principal Começa em um endereço da memória principal que é um múltiplo inteiro do tamanho fixo de página ps – page size = tamanho da página Gerência de Memória Virtual - Prof. Ana Cristina Dantas 20 Divisão da memória principal em molduras de páginas (page frame) Gerência de Memória Virtual - Prof. Ana Cristina Dantas 21 Correspondência entre endereços de memória virtual e endereços de memória física em um sistema de paginação pura Paginação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 22 Entrada de tabela de páginas (PTE – Page Table Entry) Indica se uma página virtual p corresponde a uma moldura de página p´ Contém um bit residente para indicar se a página está na memória Se estiver, a PTE armazena o número da moldura da página Do contrário, a PTE armazena a localização da página no armazenamento secundário Gerência de Memória Virtual - Prof. Ana Cristina Dantas 23 Entrada de tabela de páginas Gerência de Memória Virtual - Prof. Ana Cristina Dantas 24 Tradução de endereço de paginação por mapeamento direto A tradução dinâmica de endereço na paginação é semelhante à tradução de endereço de bloco O processo referencia o endereço virtual v = (p, d) O mecanismo DAT adiciona o endereço-base da tabela de páginas do processo, b, ao número da página referenciada, p b + p forma o endereço de memória principal da PTE para a página p O sistema concatena p´ com o deslocamento, d, para formar o endereço real, r Gerência de Memória Virtual - Prof. Ana Cristina Dantas 25 Tradução de endereço de paginação por mapeamento direto Gerência de Memória Virtual - Prof. Ana Cristina Dantas 26 Tradução de endereço de paginação por mapeamento associativo Nem sempre é viável manter a tabela de páginas inteira na memória cache Em decorrência do custo da memória cache de alta velocidade, de localização endereçada, e do tamanho relativamente grande dos programas Melhor desempenho com tradução dinâmica de endereço Coloca a tabela de página inteira na memória associativa de conteúdo endereçado O preço da memória cache de conteúdo endereçado é alto Gerência de Memória Virtual - Prof. Ana Cristina Dantas 27 Tradução de endereço de paginação por mapeamento associativo Gerência de Memória Virtual - Prof. Ana Cristina Dantas 28 Tradução de endereço de paginação por mapeamento direto/associativo Conciliação entre custo e desempenho A maioria das PTEs é armazenada em tabelas de mapeamento direto na memória principal As PTEs usadas mais recentemente são armazenadas na memória cache associativa por conjuntode alta velocidade denominada buffer de tradução lateral (TLB) Se a PTE não for encontrada no TLB, o mecanismo DAT procura a tabela na memória principal É possível obter alto desempenho com um TBL relativamente pequeno em virtude da localidade É provável que uma página que acabou de ser referenciada por um processo seja novamente referenciada logo em seguida Gerência de Memória Virtual - Prof. Ana Cristina Dantas 29 Tradução de endereço de paginação por mapeamento direto/associativo Combinação! Gerência de Memória Virtual - Prof. Ana Cristina Dantas 30 Tabelas de páginas multiníveis Esse sistema pode armazenar em localizações não contíguas da memória principal as porções da tabela de páginas que o processo está usando Hierarquia das tabelas de páginas Cada nível contém uma tabela que armazena ponteiros para tabelas do nível que está abaixo O nível mais inferior compreende as tabelas que contêm traduções de endereço Pode diminuir a sobrecarga de memória em comparação ao sistema de mapeamento direto Gerência de Memória Virtual - Prof. Ana Cristina Dantas 31 Tabelas de páginas multiníveis Tradução de endereços em vários níveis. Gerência de Memória Virtual - Prof. Ana Cristina Dantas 32 Tabelas de páginas invertidas Armazenam uma PTE na memória para cada moldura de página no sistema São o contrário das tabelas de páginas tradicionais As tradicionais armazenam uma PTE para cada página virtual Usam funções de hash para mapear páginas virtuais para entradas de tabela de páginas invertidas Gerência de Memória Virtual - Prof. Ana Cristina Dantas 33 Tradução de endereço de página usando tabelas de páginas invertidas. Tabelas de páginas invertidas Gerência de Memória Virtual - Prof. Ana Cristina Dantas 34 Tabelas de páginas invertidas A função de hash pode provocar colisões O que aumenta o tempo de tradução de endereços por causa do número maior de vezes que a memória tem de ser acessada É possível diminuir as colisões aumentando a amplitude da função de hash Não é possível aumentar o tamanho da tabela de páginas invertidas porque ela tem de armazenar exatamente uma PTE para cada moldura de página A tabela de âncora de hash aumenta a amplitude da função de hash adicionando um outro nível de indireção O tamanho deve ser escolhido com cuidado para equilibrar a fragmentação de tabela e o desempenho Gerência de Memória Virtual - Prof. Ana Cristina Dantas 35 Tabelas de páginas invertidas usando uma tabela de âncora de hash. Tabelas de páginas invertidas Gerência de Memória Virtual - Prof. Ana Cristina Dantas 36 Compartilhamento em um sistema de paginação Diminui o consumo de memória por programas que usam dados e/ou instruções comuns Exige que o sistema identifique cada página como compartilhável ou não compartilhável Gerência de Memória Virtual - Prof. Ana Cristina Dantas 37 Compartilhamento em um sistema de paginação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 38 Segmentação Segmento Bloco de dados ou instruções de um programa Contém uma parte significativa do programa (por exemplo, procedimento, conjunto, pilha) Consiste em localizações contíguas Os segmentos não têm de ser do mesmo tamanho ou adjacentes entre si na memória principal É possível executar um processo se suas instruções atuais e dados referenciados estiverem em segmentos na memória principal Gerência de Memória Virtual - Prof. Ana Cristina Dantas 39 Alocação de memória não contígua em um sistema de segmentação de memória real Segmentação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 40 Segmentação O processo referencia um endereço de memória virtual v = (s, d) s é o número do segmento na memória virtual d é o deslocamento dentro do segmento s no qual o item referenciado está localizado Gerência de Memória Virtual - Prof. Ana Cristina Dantas 41 Formato de endereço virtual com sistema de segmentação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 42 Tradução de endereço de segmentação por mapeamento direto O processo referencia um endereço de memória virtual v = (s, d) A DAT adiciona o endereço-base da tabela de mapas de segmentos do processo, b, ao número do segmento referenciado, s b + s forma o endereço na memória principal da entrada da tabela de mapas de segmentos para o segmento s O sistema adiciona s´ ao deslocamento, d, para formar o endereço real, r Gerência de Memória Virtual - Prof. Ana Cristina Dantas 43 Tradução de endereço virtual em um sistema de segmentação pura. Tradução de endereço de segmentação por mapeamento direto Gerência de Memória Virtual - Prof. Ana Cristina Dantas 44 Entrada da tabela de mapas de segmentos Indica que o segmento s inicia-se no endereço da memória real s´ Contém um bit residente para indicar se o segmento está na memória Se estiver, armazena o endereço-base do segmento Do contrário, armazena a localização do segmento no armazenamento secundário Também contém um campo de comprimento que indica o tamanho do segmento Pode ser usada para evitar que um processo referencie endereços fora do segmento Gerência de Memória Virtual - Prof. Ana Cristina Dantas 45 Entrada da tabela de mapa de segmentos Gerência de Memória Virtual - Prof. Ana Cristina Dantas 46 Compartilhamento em um sistema de segmentação A sobrecarga do compartilhamento de segmentos pode ser menor que o compartilhamento no sistema de paginação de mapeamento direto puro É provável que poucas entradas de tabela de mapas tenham de ser compartilhadas Gerência de Memória Virtual - Prof. Ana Cristina Dantas 47 Compartilhamento em um sistema de segmentação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 48 Proteção e controle de acesso em sistemas de segmentação Um esquema de implementação de proteção de memória nos sistemas de segmentação são as chaves de proteção de memória Chave de proteção Está associada ao processo Se a chave de proteção do processador e do bloco solicitado for a mesma, o processo pode acessar o segmento Gerência de Memória Virtual - Prof. Ana Cristina Dantas 49 Proteção e controle de acesso em sistemas de segmentação Proteção de memória com chaves em sistemas de multiprogramação de alocação de memória não contígua. Gerência de Memória Virtual - Prof. Ana Cristina Dantas 50 Proteção e controle de acesso em sistemas de segmentação Um esquema mais comum é usar bits de proteção que especificam se um processo pode ler, gravar, executar código ou ser anexado a um segmento Gerência de Memória Virtual - Prof. Ana Cristina Dantas 51 Tipos de controle de acesso em segmentação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 52 Modos úteis de controle de acesso Gerência de Memória Virtual - Prof. Ana Cristina Dantas 53 Proteção e controle de acesso em sistemas de segmentação Os bits de proteção são adicionados à entrada da tabela de mapas de segmentos e verificados quando um processo referencia um endereço Se o segmento não estiver na memória, é gerada uma falha por ausência de segmento Se d > l, é gerada uma exceção de estouro de segmento Se a operação (por exemplo, ler, gravar, executar ou anexar) não for permitida, é gerada uma exceção de proteção de segmento Gerência de Memória Virtual - Prof. Ana Cristina Dantas 54 Entrada da tabela de segmento com bits de proteção Gerência de Memória Virtual - Prof. Ana Cristina Dantas 55 Sistemasde segmentação/paginação Os segmentos ocupam uma ou mais páginas Todas as páginas do segmento precisam estar na memória principal ao mesmo tempo As páginas contíguas na memória virtual têm de ser contíguas na memória principal O endereço da memória virtual é implementado como triplo ordenado v = (s, p, d) s é o número do segmento p é o número da página dentro do segmento d é o deslocamento dentro da página na qual o item desejado está localizado Gerência de Memória Virtual - Prof. Ana Cristina Dantas 56 Sistemas de segmentação/paginação O processo referencia o endereço na memória virtual: v=(s, p, d) A DAT adiciona um endereço-base na tabela de mapas de segmentos, b, para refereciar o número do segmento, s b + s forma o endereço na memória principal da entrada da tabela de mapas de segmentos para o segmento s A entrada da tabela de mapas de segmentos armazena o endereço-base da tabela de páginas, s´ O número de página referenciado, p, é adicionado a s´para localizar a PTE da página p, que armazena o número da moldura de página p´ O sistema concatena p´ com o deslocamento, d, para formar o endereço real, r Gerência de Memória Virtual - Prof. Ana Cristina Dantas 57 Formato de endereço virtual em um sistema de segmentação/paginação. Tradução dinâmica de endereço em um sistema de segmentação/paginação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 58 Tradução de endereço virtual com mapeamento combinado associativo/direto em um sistema de segmentação/paginação. Tradução dinâmica de endereço em um sistema de segmentação/paginação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 59 Estrutura de tabela para um sistema de segmentação/paginação Gerência de Memória Virtual - Prof. Ana Cristina Dantas 60 Compartilhamento e proteção em um sistema de segmentação/paginação Sistemas de segmentação/paginação Dois processos compartilham memória quando cada processo dispõe de uma entrada de tabela de mapas de segmentos que indica a mesma tabela de páginas O compartilhamento requer um gerenciamento cuidadoso por parte do sistema operacional Gerência de Memória Virtual - Prof. Ana Cristina Dantas 61 Estudo de caso: memória virtual da arquitetura Intel IA-32 A arquitetura Intel IA-32 suporta tanto a memória virtual de segmentação pura quanto de segmentação/paginação Espaço de endereço lógico: Conjunto de endereços contido em cada segmento Segmentos São colocados em qualquer local disponível no espaço de endereço linear do sistema Tradução de endereço de segmento É executada pelo mapeamento direto que usa registradores de processador de alta velocidade para armazenar registradores de origem de tabela de mapas de segmentos em um registrador de tabela de descritor global ou em um registrador de tabela de descritor local Paginação Suporta tabelas de páginas multiníveis e vários tamanhos de página Gerência de Memória Virtual - Prof. Ana Cristina Dantas 62 Dois processos que compartilham um segmento em um sistema de segmentação/paginação. Estudo de caso: memória virtual da arquitetura Intel IA-32 Gerência de Memória Virtual - Prof. Ana Cristina Dantas 63 Bibliografia ANDREW S. TANENBAUM. Sistemas Operacionais Modernos. Editora Prentice-Hall, 2ª Edição, 2003. ISBN: 8587918575 Capítulo 5: Gerenciamento de Memória DEITEL & CHOFFNES. Sistemas Operacionais. Editora Prentice-Hall, 3ª Edição, 2005. ISBN: 8576050110. Capítulos 9, 10, 11: Organização e Gerenciamento da Memória Real, Organização da Memória Virtual, Gerenciamento da Memória Virtual 64 Gerência de Memória Virtual - Prof. Ana Cristina Dantas SISTEMAS OPERACIONAIS Gerenciamento de Memória Virtual Ana Cristina de Oliveira Dantas ana.oliveira@ifpb.edu.br IFPB – Instituto Federal da Paraíba Campus Campina Grande
Compartilhar