Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa...

41
Gerência de Memória Virtual

Transcript of Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa...

Page 1: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Gerência de Memória Virtual

Page 2: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Introdução

Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias são combinadas. O conceito de memória virtual se aproxima da idéia de um vetor, existente nas linguagens de alto nível.

Page 3: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Espaço de Endereçamento Virtual

Quando um programa faz referência a um elemento do vetor, não há preocupação em saber a posição de memória daquele dado. O compilador se encarrega de gerar instruções que implementam esse mecanismo, tornando-o transparente ao programador.

Page 4: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Espaço de Endereçamento Virtual

Um programa no ambiente de memória virtual não faz referência a endereços físicos de memória(endereços reais), mas apenas endereços virtuais. No momento da execução de uma instrução, o endereço virtual referenciado é traduzido para um endereço físico.O Mecanismo de tradução do endereço virtual para endereço físico é chamado Mapeamento.

Page 5: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Espaço de Endereçamento Virtual

Em ambientes que implementam memória virtual, o espaço de endereçamento do processo é conhecido como espaço de endereçamento virtual e representa o conjunto de endereços virtuais que o processo pode endereçar.

Page 6: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Espaço de Endereçamento Virtual

O sistema operacional utiliza a memória secundária como extensão da memória principal. No desenvolvimento de aplicações, a existência dos endereços virtuais é ignorada pelo programador.

Page 7: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Espaço de Endereçamento VirtualMapeamentoO processador apenas executa instruções e referencia dados residentes no espaço de endereçamento real, portanto, deve existir um mecanismo que transforme os endereços virtuais em endereços reais. Esse mecanismo e conhecido por mapeamento.

Page 8: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Espaço de Endereçamento VirtualMapeamentoNos sistemas modernos a tradução de endereços é feita pelo hardware junto com o S.O.. O dispositivo é o MMU (Memory Management Unit) que se encarrega de manter tabelas de mapeamento para cada processo.

Page 9: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Memória Virtual por Paginação

É a técnica de gerência de memória onde o espaço de endereçamento virtual e real são divididos em blocos de mesmo tamanho chamados páginas.As páginas no espaço virtual são denominadas páginas virtuais, enquanto as páginas no espaço real são chamadas de páginas reais ou frames.

Page 10: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Memória Virtual por PaginaçãoTodo o mapeamento de endereço virtual é realizado através de tabelas de páginas.Cada processo possui sua própria tabela de página e cada página virtual do processo possui uma entrada na tabela (ETP – entrada na tabela de páginas), com informações de mapeamento.

Quando um programa é executado, as paginas virtuais são transferidas da memória secundária para a memória principal e colocadas nos frames. O mecanismo de mapeamento localizará na ETP o endereço físico do frame no qual se encontra o endereço real correspondente.

Page 11: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Memória Virtual por PaginaçãoNessa técnica, o endereço virtual é formado pelo número da página virtual (NPV) e por um deslocamento

NPV identifica a página virtual que contém o endereço, funcionando como um índice de página.Deslocamento indica a posição do endereço virtual em relação ao início da página na qual se encontra.

Page 12: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Memória Virtual por PaginaçãoA ETP possui também o bit de validade (valid bit) que indica se uma página está ou não na memória principal. Se o bit tem valor 0, indica que a página virtual não está na memória principal, mas se é igual a 1, a página está localizada na memória.

Page fault – a página não está na memória e realiza um page in ou paginação.O número de page faults gerados por cada processo em um determinado intervalo de tempo é definido como taxa de paginação do processo.

Page 13: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Políticas de Busca de PáginasPermite a execução de um programa sem que seu código esteja completamente residente na memória principal.Paginação por demanda - as páginas dos processos são transferidas da memória secundária para a principal apenas quando são referenciadas.Paginação antecipada – o sistema carrega para a memória principal, além da página referenciada, outras páginas que podem ou não ser necessárias ao processo ao longo do processamento.

Page 14: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Políticas de Alocação de PáginasDetermina quantos frames cada processo pode manter na memória principal.Política de alocação fixa – cada processo tem um número de frames que pode ser utilizado durante a execução do programa. Caso o número de páginas reais seja insuficiente, uma página do processo deve ser descartada para que uma nova seja carregada.Política de alocação variável – o número máximo de páginas alocadas ao processo pode variar durante sua execução em função da taxa de paginação e da ocupação da memória principal.

Page 15: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Políticas de Substituição de Páginas

Quando um processo atinge o seu limite de alocação de frames e necessita alocar novas páginas na memória principal, o S.O. deve selecionar, dentre as diversas páginas alocadas, qual deverá ser liberada. O sistema mantém um arquivo de

paginação(page file) onde todas as páginas modificadas e descartadas são armazenadas.O S.O. utiliza o bit de modificação sempre que uma página sofre uma alteração, o valor do bit de modificação é alterado, indicando que a página foi modificada.

Page 16: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Políticas de Substituição de Páginas

Política de substituição local – apenas as páginas do processo que gerou o page fault são candidatas a realocação.Política de substituição global – todas as páginas alocadas na memória principal são candidatas a substituição, independente do processo que gerou o page fault.

Page 17: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Working SetSurgiu com o objetivo de reduzir o problema de thrashing e está relacionado no principio da localidade.Thrashing – ocorrência de um número elevando de page faults e inúmeras operações de E/S.Princípio da localidade – é a tendência de que após a referência a uma posição da memória, esta mesma posição seja novamente referenciada em um curto intervalo de tempo.

Page 18: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de Páginas

Têm o objetivo de selecionar os frames que tenham as menores chances de serem referenciados em um futuro próximo; caso contrário, o frame poderia retornar diversas vezes para a memória principal, gerando vários page faults e acessos à memória secundária.

Page 19: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de Páginas

Algoritmo ÓtimoSeleciona para substituição uma página que não será mais referenciada no futuro ou aquela que levará o maior intervalo de tempo para ser novamente utilizada.• Garante as menores taxas de paginação• Na prática é impossível de ser implementado, pois o S.O. não tem como conhecer o comportamento futuro das aplicações.• Modelo comparativo

Page 20: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de Páginas

Algoritmo FIFOA página que primeiro foi utilizada será a primeira a ser escolhida.• É raramente implementado sem algum outro mecanismo que minimize o problema da seleção de páginas antigas que são constantemente referenciadas.

Page 21: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de Páginas

Algoritmo LRU (Least-Recently-Used)Seleciona a página na memória principal que está há mais tempo sem ser referenciada.• É necessário que cada página tenha associado o momento do último acesso, que deve ser atualizado a cada referência a um frame.• Cada acesso à memória exigiria um acesso à lista.• Pouco empregada, devido ao seu elevado custo de implementação.

Page 22: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de Páginas

Algoritmo NRU (Not-Recently-Used)É bastante semelhante ao LRU, porém com menor sofisticação. É necessário um bit adicional, conhecido como bit de referência (BR), que indica se a página foi utilizada recentemente e está presente em cada entrada da tabela de páginas.• BR = 1 a página foi referenciada.• Periodicamente o sistema altera o valor para BR = 0.• À medida que as páginas são utilizadas, o bit associado a cada frame retorna para 1.

Page 23: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de Páginas

FIFO com buffer de páginasCombina uma lista de páginas alocadas (LPA) com uma lista de páginas livres (LPL). A LPA organiza todas as páginas que estão sendo utilizadas na memória principal.A LPL organiza todos os frames livres da memória principal, sendo que as páginas livres há mais tempo estão no início e as mais recentes no final.

Page 24: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de PáginasFIFO com buffer de páginasSempre que um processo necessita alocar uma nova página, o sistema utiliza a primeira página da LPL, colocando-a no final da LPA.Caso o processo tenha que liberar uma página, o mecanismo seleciona o frame em uso há mais tempo na memória, isto é, o primeiro da LPA, colocando-o na final da LPL.

Page 25: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Algoritmos de Substituição de PáginasFIFO circular (clock)Utiliza como base o FIFO, porém as páginas alocadas na memória estão em uma estrutura de lista circular. Usado na maioria dos sistemas Unix.O sistema verifica se o frame apontado tem o bit BR = 0, neste caso, a página é selecionada para descarte.Se o bit BR = 1, o bit é desligado e o ponteiro incrementado, pois, apesar de ser a página mais antiga, foi utilizada recentemente.O processo se repete até ser encontrada uma página com BR = 0.

Page 26: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Sistema de ArquivosParte do sistema responsável por gerenciar a organização e facilitar o acesso dos usuários a seus arquivos.

Page 27: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Arquivo

Um arquivo é constituído por informações logicamente relacionadas. Estas informações podem representar instruções ou dados.

Page 28: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Organização de arquivos

Consiste em como os seus dados estão internamente armazenados.A organização pode ser uma estrutura suportada pelo sistema ou definida pela própria aplicação.A forma mais simples é através de uma sequencia não-estruturada de bytes. Não impõe nenhuma estrutura lógica para os dados, quem define é a aplicação.

Page 29: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Organização de arquivos

Alguns sistemas possuem diferentes organizações de arquivo. Neste caso cada arquivo criado deve seguir um modelo suportado pelo sistema de arquivos. As mais conhecidas e implementadas são a sequencial relativa e indexada.

Page 30: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Métodos de acesso

Nos primeiros SO. o acesso era sequencial. Com o advento dos discos magnéticos surge o acesso direto, permite leitura e gravação diretamente na sua posição.Um método de acesso mais sofisticado é o acesso indexado ou acesso por chave. Para esse acesso, o arquivo deve possuir uma área de índice onde existam ponteiros para os diversos registros.

Page 31: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Gerência de Alocação de Espaço em Disco

Alocação ContíguaConsiste em armazenar um arquivo em blocos sequencialmente disposto no disco.Principais estratégias:First-fit – primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado.Best-fit – seleciona o menor segmento livre disponível com tamanho suficiente.Worst-fit – seleciona o maior segmento.

Page 32: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Gerência de Alocação de Espaço em Disco

Alocação EncadeadaUm arquivo pode ser organizado como um conjunto de blocos ligados logicamente no disco, independente da sua localização física. Cada bloco deve possuir um ponteiro para o bloco seguinte do arquivo e assim sucessivamente.Não há fragmentação de espaços livres, mas o mecanismo de leitura e gravação do disco deve se deslocar diversas vezes sobre a superfície para acessar cada extent.

Page 33: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Gerência de Alocação de Espaço em Disco

Alocação indexadaO princípio desta técnica é manter os ponteiros de todos os blocos do arquivo em uma única estrutura denominada bloco de índice.

Page 34: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Gerenciamento de Dispositivos

Page 35: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Acesso ao Subsistema de I/O

Conjunto de rotinas que possibilita a comunicação com qualquer dispositivo que possa ser conectado ao computador. Este conjunto é denominado rotinas de entrada/saída, faz parte do subsistema de I/O.

Page 36: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Subsistema de I/0

É responsável por realizar as funções comuns a todos os tipos de dispositivos, ficando os aspectos específicos de cada periférico como responsabilidade dos device drivers. Dessa forma, o subsistema de I/O é a parte do sistema operacional que oferece uma interface uniforme com as camadas superiores.A bufferização é outra tarefa realizada por esse subsistema.

Page 37: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Device Drivers

Tem como função implementar a comunicação do subsistema de I/O com os dispositivos, através dos controladores. Enquanto o subsistema de I/O trata de funções ligadas a todos os dispositivos, os drivers tratam apenas dos seus aspectos particulares.Os drivers têm como função receber comandos gerais sobre acessos aos dispositivos e traduzi-los para comandos específicos, que poderão ser executados pelos controladores.

Page 38: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Controladores

São componentes de hardware responsáveis por manipular diretamente os dispositivos de I/O. O S.O., mais exatamente o device driver, comunica-se com os dispositivos através dos controladores.

Page 39: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Desempenho, Redundância e Proteção de Dados

As técnicas de RAID (Redundant Arrays of Inexpensive Disk) podem ser implementados diretamente nos controladores de discos, conhecido como subsistema RAID externo, ou por softwares através do sistema operacional.Uma característica fundamental na técnica de RAID é a criação de um dispositivo virtual conhecido como array de discos.

Page 40: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Técnicas de RAID

Raid 0 (Striping)Função de distribuir as operações de I/O entre os diversos discos físicos contidos no array com intuito de otimizar o desempenho.Raid 1 (espelhamento)Consiste em replicar todo o conteúdo do disco principal, chamado de primário, em um ou mais discos denominados espelhos ou secundários.

Page 41: Gerência de Memória Virtual. Introdução Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundárias.

Raid 5 (acesso Independente com Paridade Distribuída)Consiste em distribuir os dados entre os discos do array e implementar redundância baseada na paridade.