1 / 17

Fundamentos da Arquitetura de Computadores

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;

joey
Download Presentation

Fundamentos da Arquitetura de Computadores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Memória Virtual • Como 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;

  3. Memória Virtual • Memó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.

  4. Memória Virtual • Em 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.

  5. Memória Virtual • Embora 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).

  6. Memória Virtual

  7. Memória Virtual • Como 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);

  8. Memória Virtual

  9. Memória Virtual • Blocos 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.

  10. Memória Virtual • O DAT possui uma pequena memória interna chamada TLB (TranslationLookaside 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.

  11. Memória Virtual • Ao 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.

  12. Memória Virtual

  13. Memória Virtual • Com 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.

  14. Memória Virtual • Paginaçã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.

  15. Memória Virtual • O 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.

  16. Memória Virtual • O 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

  17. Memória Virtual • Thrashing: 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);

More Related