fundamentos da arquitetura de computadores

17
Fundamentos da Arquitetura de Computadores Memória Virtual Prof. André Renato 1º Semestre / 2012

Upload: joey

Post on 05-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Fundamentos da Arquitetura de Computadores. Memória Virtual. Prof. André Renato 1º Semestre / 2012. Memória Virtual. Como vimos, nem sempre a quantidade total de memória que um computador consegue endereçar é efetivamente instalada e utilizada; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fundamentos da Arquitetura de Computadores

Fundamentos da Arquitetura de Computadores

Memória Virtual

Prof. André Renato

1º Semestre / 2012

Page 2: Fundamentos da Arquitetura de Computadores

Memória VirtualComo vimos, nem sempre a

quantidade total de memória que um computador consegue endereçar é efetivamente instalada e utilizada;

A memória virtual foi desenvolvida para que os programas possam utilizar mais memória principal do que de fato existe;

Page 3: Fundamentos da Arquitetura de Computadores

Memória VirtualMemória virtual – separação da

memória lógica do usuário da memória física ◦somente uma parte do programa precisa

estar na memória para execução;◦espaço de endereçamento lógico pode ser

muito maior que espaço de endereçamento físico;

◦permite o compartilhamento de espaços de endereços por vários processos;

◦compartilhamento possibilita criação mais eficiente de processos.

Page 4: Fundamentos da Arquitetura de Computadores

Memória VirtualEm um sistema de memória virtual, o

endereço de memória gerado pelo programa para acessar uma variável, por exemplo, é um endereço virtual, sendo diferente do endereço real usado para o acesso a memória principal.

Os possíveis endereços virtuais que podem ser gerados pelo programa formam o espaço de endereçamento virtual, enquanto a faixa de endereços na memória principal constitui o espaço de endereçamento real.

Page 5: Fundamentos da Arquitetura de Computadores

Memória VirtualEmbora sob o ponto de vista do programa as

instruções e dados estejam armazenados no espaço de endereçamento virtual, na realidade eles continuam armazenados na memória principal, representada pelo espaço de endereçamento real.

Esta diferença entre endereçamento virtual e real utiliza um mecanismo que faz a correspondência entre o endereço virtual gerado pelo programa e o endereço real que será usado para acessar a memória principal, o gerenciador de memória virtual, ou DAT (Dynamic Address Translator).

Page 6: Fundamentos da Arquitetura de Computadores

Memória Virtual

Page 7: Fundamentos da Arquitetura de Computadores

Memória VirtualComo o espaço de endereçamento virtual

é bem maior que o espaço de endereçamento real, pode acontecer de um bloco de dados pedido pelo programa não estar posicionado na MP;

Neste caso, o bloco de dados ainda está na MS e será preciso trazê-lo para a MP;

A operação de movimentação dos blocos é chamada de swapping e consiste em uma leitura ao disco (lenta);

Page 8: Fundamentos da Arquitetura de Computadores

Memória Virtual

Page 9: Fundamentos da Arquitetura de Computadores

Memória VirtualBlocos de memória podem ser

organizados de duas formas: em segmentos ou páginas.◦O segmento pode ser formado por um

bloco de informações logicamente relacionadas (por exemplo, os dados armazenados em uma matriz); os segmentos podem ter tamanho variável.

◦Uma página é um bloco de dados de tamanho fixo e não segue nenhuma coesão lógica, isto é, os dados podem não ter relação entre si.

Page 10: Fundamentos da Arquitetura de Computadores

Memória VirtualO DAT possui uma pequena memória

interna chamada TLB (Translation Lookaside Buffer), que armazena os pares de endereços virtual/principal acessados recentemente, como uma memória cache.

No acesso a uma posição de memória virtual, se o dado requerido não possui um registro relacionando com a memória principal, o bloco de dados também não se encontra na memória principal. Essa ausência de bloco é denominada falha de página ou falha de segmento.

Page 11: Fundamentos da Arquitetura de Computadores

Memória VirtualAo ocorrer uma falha o DAT gera uma

interrupção, transferindo o controle do processador para o sistema operacional, para que este transfira o bloco de dados referenciado da memória secundária para a memória principal.

Após a transferência do bloco de dados ser concluída, o controle do processador retorna ao programa em execução, exatamente para o ponto onde foi interrompido, agora com os dados referenciados presentes na memória principal.

Page 12: Fundamentos da Arquitetura de Computadores

Memória Virtual

Page 13: Fundamentos da Arquitetura de Computadores

Memória VirtualCom a utilização da memória principal,

não é necessário que todas as instruções e dados de um programa permaneçam na memória principal durante a execução do programa, blocos são transferidos da memória secundária para a principal a medida que forem referenciados.

É importante ressaltar que todo o mecanismo de memória virtual funciona de forma totalmente transparente para o programa, e mais importante, para o programador que o desenvolveu.

Page 14: Fundamentos da Arquitetura de Computadores

Memória VirtualPaginação sob demanda:

◦Uma página é colocada na memória somente quando se necessita dela;

◦Menos E/S para carregamento e swap de programas;

◦Menos memória gasta com cada processo;

◦Resposta mais rápida;◦Maior número de usuários.

Page 15: Fundamentos da Arquitetura de Computadores

Memória VirtualO que acontece se não existir

espaço livre para a página?◦Substituição de página– encontra

uma página que está na memória mas não está sendo utilizada e a coloca no disco.

◦algoritmo utilizado deve fornecer menor número de faltas de páginas.

◦A mesma página pode ser trazida para a memória várias vezes.

Page 16: Fundamentos da Arquitetura de Computadores

Memória VirtualO que pode correr se o algoritmo

escolhido for ruim, ou se houver pouco espaço para a memória virtual?◦Se um processo não possui páginas

suficientes para ser executado na memória, a taxa de falta de páginas pode se tornar muito alta.

◦baixa utilização de CPU◦sistema operacional acha que precisa

aumentar o nível de multiprogramação◦permite que outro processo entre para ser

executado causando mais faltas de página

Page 17: Fundamentos da Arquitetura de Computadores

Memória VirtualThrashing: um processo está ocupado

realizando a troca de páginas entre a memória e o disco.

A utilização da MV deve portanto ser feita com moderação.◦Uma MV muito grande, pode fazer com que

muitos blocos fiquem em disco, além de ocupar muito espaço no HD;

◦Uma MV muito pequena pode fazer com que o desempenho da máquina seja bem menor (principalmente com muitos programas);