TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Memorias Virtuais

Pesquisas Acadêmicas: Memorias Virtuais. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  14/7/2014  •  1.271 Palavras (6 Páginas)  •  294 Visualizações

Página 1 de 6

Gerenciamento de Memória Virtual (Linux)

Em uma pesquisa feita recentemente sobre o método de gerenciamento de memória virtual, foi feita o resumo abaixo, não leve ele como uma referência didática e sim como um ideia de como é feito o gerenciamento, como exemplo dele, temos o sistema operacional Linux.

Para quem não sabe e lembrando quem já sabe, o gerenciamento da memória é o que torna o sistema operacional mais rápido e funcional.

Memória Virtual

Quando os programas tornaram-se muito grandes para a memória, a solução foi dividir os programas em pedaços menores e está técnica ficou conhecida como overlay, porém, somente o programar podia separar as partes, então Fotheringham em 1961 inventou o método de memória virtual, onde o sistema operacional é quem gerência a memória virtual – uma evolução do overlay - sua essência se baseia em que o tamanho do programa, dos dados e da pilha, juntos poderia exceder a quantidade da memória física disponível, no sistema em uso a parte principal ficava na memória principal (RAM) e as outras em disco (ROM).

Um exemplo usual para entender esse processo é, um programa de 16 Mb pode ser executado em uma máquina de 4 Mb, para tal feito é foi necessário dividir o programa em quatro partes de 4 Mb cada e executar cada parte quando for mais necessário.

A memória virtual também pode trabalhar em um sistema de multiprogramação, com pedaços de muitos programas na memória simultaneamente. Enquanto um programa está esperando parte dele próprio ser trazida para a memória, ele fica esperando a E/S e não pode executar, então, a CPU pode ser dada a outro processo, assim como em qualquer outro sistema de multiprogramação (Tanenbaum). Ainda existem algumas técnicas implementadas dentro da memória virtual que serão discutidas.

Paginação, Tabelas de Páginas e Multiníveis e Memória Associativa ou TLB

A maioria dos sistemas com memória virtual utiliza uma técnica denominada paginação. Em qualquer computador existe um conjunto de endereços de memória que os programas podem gerar ao serem executados por do uso de indexação, de registradores-base, registradores de segmento ou outras técnicas. Esses endereços são denominados endereços virtuais e constituem o espaço de endereçamento virtual, existe uma exceção para computadores com pouca memória e seus endereços virtuais são iguais aos físicos, em computadores com memória virtual, os endereços não vão direto para o barramento e sim para a MMU (Memory Management Unit – unidade de gerenciamento de memória), que mapeia endereços virtuais em endereços físicos.

O espaço de endereços virtuais é dividido em unidades chamadas páginas e o espaço de memória física é dividido em unidades chamadas quadros de página, de mesmo tamanho das páginas. A MMU tem uma tabela que indica para cada página, qual o quadro de página que corresponde à mesma. Se o processador tenta acessar o endereço 0, a MMU verifica que isto corresponde ao primeiro endereço da primeira página, verifica então que essa primeira página está alocada no terceiro quadro de página. Converte então esse endereço para 8192 (decimal) e envia o endereço convertido para a memória (nem a memória e nem o processador precisam ficar sabendo da existência de paginação). Esse processo pode ser melhor analisado observando a Figura 1.

Figura 1 – Processo de gerenciamento de memória, utilizando o método de memória virtual.

O modelo acima descreve o tratamento mais simples seria uma longa tabela de página com uma entrada por página (Essas entradas são conhecidas como entradas de tabela de páginas ou PTE - page table entries). No entanto, esta solução resultaria em uma tabela de página que seria muito grande para ser encaixada na MMU, dado que tem que ser na memória. A solução, portanto são tabelas de páginas de multiníveis. Desse modo, à medida que o tamanho dos processos crescem, novas páginas são alocadas e, quando o são, a parte da memória associada à tabela de página é preenchida. Esse método de gestão de memória que permite que o espaço de armazenamento seja não contíguo.

A paginação é suportada por hardware ou por uma combinação do hardware com o software, dividindo-se a memória física em blocos de tamanho fixo, chamados frames, cujo tamanho é uma potência de 2. A memória lógica é dividida em blocos do mesmo tamanho, as chamadas páginas.

Um endereço virtual é dividido em 5 campos: diretório de páginas (PGD), diretório superior de páginas (PUD), diretório intermediário de páginas (PMD), tabela de páginas (PTE) e deslocamento (offset). A arquitetura x86 possui um espaço de endereçamento de 32 bits; quando são utilizadas páginas de 4 KB (o padrão) o PUD e o PMD não são utilizados; o PGD e o PTE usam 10 bits cada, e o deslocamento usa 12 bits.

Figura 2 – Tabela de páginas de multiníveis.

Outro ponto importante é que a tradução de endereços

...

Baixar como (para membros premium)  txt (8.1 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com