fundamentos da arquitetura de computadores
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 PresentationTRANSCRIPT
Fundamentos da Arquitetura de Computadores
Memória Virtual
Prof. André Renato
1º Semestre / 2012
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;
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.
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.
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).
Memória Virtual
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);
Memória Virtual
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.
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.
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.
Memória Virtual
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.
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.
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.
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
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);