A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 Gerência de Memória Virtual

2 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.

3 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.

4 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.

5 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.

6 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.

7 Espaço de Endereçamento Virtual Mapeamento O 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.

8 Espaço de Endereçamento Virtual Mapeamento Nos 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.

9 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.

10 Memória Virtual por Paginação Todo 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.

11 Memória Virtual por Paginação Nessa 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.

12 Memória Virtual por Paginação A 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.

13 Políticas de Busca de Páginas Permite 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.

14 Políticas de Alocação de Páginas Determina 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.

15 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.

16 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.

17 Working Set Surgiu 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.

18 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.

19 Algoritmos de Substituição de Páginas Algoritmo Ótimo Seleciona 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

20 Algoritmos de Substituição de Páginas Algoritmo FIFO A 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.

21 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.

22 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.

23 Algoritmos de Substituição de Páginas FIFO com buffer de páginas Combina 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.

24 Algoritmos de Substituição de Páginas FIFO com buffer de páginas Sempre 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.

25 Algoritmos de Substituição de Páginas FIFO 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.

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

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

28 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.

29 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.

30 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.

31 Gerência de Alocação de Espaço em Disco Alocação Contígua Consiste 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.

32 Gerência de Alocação de Espaço em Disco Alocação Encadeada Um 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.

33 Gerência de Alocação de Espaço em Disco Alocação indexada O princípio desta técnica é manter os ponteiros de todos os blocos do arquivo em uma única estrutura denominada bloco de índice.

34 Gerenciamento de Dispositivos

35 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.

36 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.

37 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.

38 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.

39 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.

40 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.

41 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.


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google