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

Sistema Operacionai_memoriaVirtual

Pesquisas Acadêmicas: Sistema Operacionai_memoriaVirtual. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  24/5/2013  •  2.621 Palavras (11 Páginas)  •  381 Visualizações

Página 1 de 11

AULA 14 - Memória Virtual

A idéia básica da memória virtual é permitir que programas muito maiores que a memória

disponível possam ser executados. Para isso, em 1961 Fotheringham criou o método conhecido

como memória virtual. Com o uso dessa memória o SO mantém as partes ativas do programa na

memória e o restante em disco, sendo carregadas ou removidas da memória de acordo com as

necessidades.

Memória virtual é uma técnica que se utiliza da memória secundária para produzir o efeito prático

de aumentar significativamente o espaço de endereçamento disponível aos programas. Essa técnica

não depende do tamanho da memória principal – que continua sendo limitado – para ser

implementada. A memória secundária (normalmente um disco rígido) passa a servir como uma

espécie de extensão da memória principal, armazenando a maior parte dos programas e dados

carregados para execução. À memória principal são transferidas por vez apenas algumas partes

destes programas e dados, essenciais ao momento pontual da execução.

Deste modo, cria-se dois espaços de endereçamento de memória: o espaço de endereçamento

virtual e o espaço de endereçamento real. Endereços virtuais são os endereços gerados pelos

compiladores e linkers na implementação dos programas. Eles representam o espaço completo que

os programas necessitam para serem carregados, isto é, o tamanho de memória que efetivamente

ocupam. No entanto, a memória real – ou memória principal (RAM – Random Access Memory) –

pode ser bastante limitada, possuindo um espaço de endereçamento real às vezes menor até mesmo

que um único programa. Um endereço real corresponde a uma célula física de endereçamento

presente na memória principal da máquina.

Obviamente, apenas parte das aplicações carregadas no espaço de endereçamento virtual poderá

ocupar a memória real num certo instante. Por outro lado, somente os dados carregados na

memória principal são processados pela CPU. Como várias aplicações podem estar sob execução,

concorrendo pela utilização do processador, uma solução encontrada foi dividir o espaço total de

endereçamento dos programas em pequenos blocos de tamanho fixo, as chamadas páginas de

memória. A implementação dessa estratégia constitui o mecanismo de paginação. Outra

alternativa é dividir o código de uma aplicação com base em critérios lógicos, ou seja,

modularizando o programa de acordo com a função dos diversos trechos de código identificados.

Segmentação é o nome que se dá a esta segunda estratégia de particionamento de código, em que

Sistemas Operacionais

Prof. Dr. Jean M. Laine

2

os segmentos gerados possuem tamanhos independentes e variáveis. Ambos os mecanismos são

importantes, sobretudo em ambientes multiusuários e multiprogramáveis. Conforme o momento de

execução, parte dos dados (working set) são transferidos temporariamente para a memória

principal a fim de serem processados, retornando à memória secundária quando solicitados pelo

sistema operacional, o qual é responsável pelo gerenciamento da memória.

Figura 1. Endereços virtuais x físicos. A tradução é feita por uma tab. de páginas.

Paginação

A técnica denominada paginação é utilizada na maioria dos sistemas com memória virtual. Como

sabemos, os endereços gerados pelos programas são denominados endereços virtuais e constituem

o espaço de endereçamento virtual. Em computadores que não tem memória virtual, os endereços

virtuais são idênticos aos endereços físicos. Por outro lado, quando usamos memória virtual estes

endereços diferem. Portanto, o endereço gerado pelo programa não pode ser colocado diretamente

no barramento do sistema para acessar uma posição qualquer de memória. Assim, a MMU mapeia

os end. virtuais em físicos.

Sistemas Operacionais

Prof. Dr. Jean M. Laine

3

A memória física é dividida em blocos de tamanho fixos denominados molduras de páginas (page

frames). Já a memória lógica é dividida em blocos de tamanho fixos denominados páginas

(pages). As páginas e as molduras de páginas são sempre do mesmo tamanho.

Quando um programa tenta usar uma página virtual que não está mapeada é gerada uma

interrupção da CPU para o sistema operacional a fim de buscar esta página na memória. Esta

interrupção (trap) é denominada falta de página (page fault). As ações desencadeadas são: o

sistema operacional escolhe uma moldura de página (page frame) pouco usada e a salva em disco.

Em seguida, carrega a página virtual referenciada pela instrução na moldura de página que foi

liberada. Feito isso o sistema operacional pode reinicializar a instrução causadora da interrupção.

Tabela de Páginas

A

...

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