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

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

SISTEMAS OPERACIONAIS I Memória Virtual e Paginação

Apresentações semelhantes


Apresentação em tema: "SISTEMAS OPERACIONAIS I Memória Virtual e Paginação"— Transcrição da apresentação:

1 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Embora registradores-base e registradores-limite possam ser usados para criar a abstração de espaços de endereçamento, há um outro problema a ser resolvido: gerenciar o bloatware. O problema de programas maiores que a memória está presente desde o início da computação.

2 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Uma solução adotada na década de 1960 foi a divisão do programa em módulos, denominados sobreposições (overlays) ou módulos de sobreposição. A divisão de programas grandes em módulos menores era um trabalho lento e propenso a erros. Poucos programadores eram bons nisso. Não demorou muito para se pensar em também atribuir essa tarefa ao computador.

3 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Para isso, foi concebido um método, que ficou conhecido como memória virtual. A ideia básica por trás da memória virtual é que cada programa tenha seu próprio espaço de endereçamento, que é dividido em blocos chamados de páginas. Cada página é uma série contígua de endereços.

4 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Essas páginas são mapeadas na memória física, mas nem todas precisam estar na memória física para executar o programa. Quando o programa referencia uma parte de seu espaço de endereçamento que está na memória física, o hardware executa o mapeamento necessário dinamicamente.

5 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Quando o programa referencia uma parte de seu espaço de endereçamento que não está em sua memória física, o sistema operacional é alertado para obter a parte que falta e reexecutar a instrução que falhou. Se um programa estiver esperando por outra parte de si próprio ser carregada na memória, a CPU poderá ser dada a outro processo.

6 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
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. Quando um programa usa uma instrução do tipo MOV REG, 1000, ele deseja copiar o conteúdo do endereço 1000 para o registrador REG.

7 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Esses endereços gerados pelo programa são denominados endereços virtuais e constituem o espaço de endereçamento virtual. Em computadores sem memória virtual, o endereço virtual é idêntico ao endereço físico. Quando a memória virtual é usada, o endereço virtual não é colocado diretamente no barramento de memória.

8 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Em vez disso, ele vai a uma MMU (memory management unit), que mapeia endereços virtuais e endereços físicos.

9 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Um exemplo de computador que pode gerar endereços virtuais de 16 bits, de 0 a 64k, esse computador tem somente 32 KB de memória física. Assim, embora seja possível escrever programas de 64 KB, eles não podem ser totalmente carregados na memória para serem executados e sim partes carregadas dinamicamente na memória quando necessário.

10 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação

11 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
O que acontece se um programa tenta usar uma página virtual não mapeada? A MMU constata que essa página virtual não está mapeada ( o que é indicado pelo X na figura) e força o desvio da CPU para o sistema operacional. Essa interrupção é denominada falta de página (page fault). O sistema operacional, então, escolhe uma moldura de página pouco usada e a salva em disco, ou seja, escreve seu conteúdo de volta no disco.

12 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Em seguida, ele carrega a página virtual referenciada pela instrução na moldura de página recém liberada, atualiza o mapeamento da tabela de páginas e reinicia a instrução causadora da interrupção.

13 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Tabelas de páginas No caso mais simples, o mapeamento dos endereços virtuais em endereços físicos pode ser resumido da seguinte forma: o endereço virtual é dividido em números de página virtual (bits mais significativos) e um deslocamento (bits menos significativos). Por exemplo, com um endereço de 16 bits e um tamanho de página de 4 KB os 4 bits superiores poderiam especificar uma dentre as 16 páginas virtuais e os 12 bits inferiores especificariam, então, o deslocamento do byte (de 0 a 4095) dentro da página selecionada.

14 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Tabelas de páginas O objetivo da tabela de páginas é mapear páginas virtuais em molduras de página física. Matematicamente falando, a tabela de páginas é uma função que usa o número da página virtual como argumento e tem o numero da moldura de página física correspondente como resultado. Usando o resultado dessa função, o campo que endereça a página virtual em um endereço virtual pode ser substituído pelo campo que endereça a moldura de uma página física, formando, assim, um endereço da memória física.

15 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Segmentação A memória virtual discutida até agora é unidimensional porque o endereçamento virtual vai de 0 a algum endereço máximo, um após o outro. Para muitos problemas, ter dois ou mais espaços de endereçamentos separados pode ser muito melhor do que ter somente um.

16 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Segmentação Imagine o que ocorre se um programa tem um número excepcionalmente grande de variáveis, mas uma quantidade normal do restante. A região do espaço de endereçamento alocada para a tabela de símbolos pode se esgotar, mas talvez existam várias entradas livres nas outras tabelas.

17 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Segmentação Uma solução extremamente abrangente e direta é prover a máquina com muitos espaços de endereçamento completamente independentes, chamados de segmentos. Cada segmento é constituído de uma sequencia linear de endereços, de 0 a algum máximo. Segmentos diferentes podem ter tamanhos diferentes.

18 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Linux No Linux, a idéia básica por trás da paginação é simples: um processo não precisa estar inteiro na memória para que seja executado. É necessário simplesmente que a estrutura do usuário e as tabelas de páginas estejam lá. Se isso acontecer, o processo é considerado ‘na memória’ e pode ser escalonado para a execução.

19 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Linux As páginas de código dados e segmentos de pilhas são levadas para a memória dinamicamente, uma a uma conforme são referenciadas. Se a estrutura do usuário e as tabelas de páginas não estiverem na memória, o processo não pode ser executado até que o trocador as traga.

20 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Linux Uma parte da paginação é implementada pelo núcleo e a outra, pelo novo processo denominado daemon de paginação.

21 SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Exercícios: Conceitue memória virtual Descreva como funciona o processo de paginação Resuma a paginação no Linux.


Carregar ppt "SISTEMAS OPERACIONAIS I Memória Virtual e Paginação"

Apresentações semelhantes


Anúncios Google