Recomendado, 2020

Escolha Do Editor

Diferença entre memória virtual e cache no sistema operacional

Memória é um dispositivo de hardware usado para armazenar as informações temporárias ou permanentemente. Neste artigo, discuti as diferenças entre a memória virtual e a cache. Uma memória cache é uma memória de alta velocidade que é usada para reduzir o tempo de acesso aos dados. Por outro lado, a memória virtual não é exatamente uma memória física, é uma técnica que amplia a capacidade da memória principal além de seu limite.

A principal diferença entre a memória virtual e a memória cache é que uma memória virtual permite que um usuário execute programas maiores que a memória principal, enquanto a memória cache permite o acesso mais rápido aos dados que foram usados ​​recentemente. Vamos discutir mais algumas diferenças com a ajuda do gráfico de comparação mostrado abaixo.

Gráfico de comparação

Base para ComparaçãoMemória virtualMemória em cache
BasicA memória virtual estende a capacidade da memória principal para o usuário.A memória cache fixa a velocidade de acesso aos dados da CPU.
NaturezaMemória virtual é técnica.A memória cache é uma unidade de armazenamento.
FunçãoA memória virtual permite a execução do programa que é maior que a memória principal.A memória cache armazena as cópias dos dados originais que foram usados ​​recentemente.
Gerenciamento de memóriaA memória virtual é gerenciada pelo sistema operacional.A memória cache é totalmente gerenciada pelo hardware.
TamanhoA memória virtual é muito maior que a memória armazenada em cache.A memória cache tem tamanho limitado.
MapeamentoA memória virtual requer estruturas de mapeamento para mapear o endereço virtual para o endereço físico.Nenhuma estrutura de mapeamento é necessária como tal em uma memória cache.

Definição de Memória Virtual

A memória virtual não é exatamente uma memória física de um computador, mas uma técnica que permite a execução de um programa grande que pode não estar completamente colocado na memória principal . Permite ao programador executar programas maiores que a memória principal.

Agora vamos entender como funciona a memória virtual? O programa tem seu endereço de memória virtual dividido em várias páginas . A memória principal também é dividida em várias páginas . Agora, como podemos ver, o endereço virtual de um programa é maior que a memória principal disponível. Então, o mapa de memória é usado para mapear o endereço virtual para a memória principal.

A página 0, 1, 2, é mapeada na memória principal e a memória principal é preenchida. Agora, quando a página 3 da memória virtual pede espaço na memória principal, a página mais antiga, ou seja, a página 0, é transferida para o disco rígido e evacua o local para a página 3, na memória principal e o processo continua. Caso a página 0 seja novamente necessária, a página mais antiga nesse momento é transferida para o disco rígido, fazendo o lugar para a página 0.

Se os dois programas precisarem dos mesmos dados, colocados na memória principal, a unidade de mapeamento de memória permite que os dois programas compartilhem o mesmo espaço de endereço na memória principal, onde os dados compartilhados são armazenados. Isso facilita o compartilhamento de arquivos.

Os benefícios da memória virtual são:

  • Os programas não são mais limitados pelo limite da memória principal.
  • A memória virtual aumenta o grau de multiprogramação.
  • Aumenta a utilização da CPU.
  • A menor unidade de E / S exigirá para carregar ou trocar programas na memória.

Mas há uma desvantagem da memória virtual, colocando mais páginas de um programa no disco rígido irá diminuir o desempenho como acessar os dados do disco rígido leva mais tempo em comparação ao acesso a dados da memória principal.

Definição de memória cache

Ao contrário da memória virtual, o Cache é um dispositivo de armazenamento implementado no próprio processador . Ele carrega as cópias dos dados originais que foram acessados ​​recentemente. Os dados originais podem ser colocados na memória principal ou em uma memória secundária. A memória cache agiliza a velocidade de acesso dos dados, mas como? Vamos entender

Podemos dizer que a velocidade de acesso da CPU é limitada à velocidade de acesso da memória principal . Sempre que um programa é executado pelo processador, ele é obtido da memória principal. Se uma cópia do programa já estiver presente no cache implementado no processador. O processo seria capaz de acessar esses dados mais rapidamente, o que resultará em uma execução mais rápida.

Principais diferenças entre memória virtual e cache

  1. A memória virtual estende a capacidade da memória principal virtualmente para o usuário. No entanto, a memória cache torna o acesso de dados mais rápido para a CPU.
  2. Cache é uma unidade de armazenamento de memória enquanto que a memória virtual é uma técnica .
  3. A memória virtual permite que as execuções do programa sejam maiores que a memória principal. Por outro lado, a memória cache armazena as cópias dos dados originais que foram usados ​​recentemente.
  4. O gerenciamento de memória virtual é feito pelo sistema operacional . Por outro lado, o gerenciamento de memória cache é feito pelo hardware .
  5. A memória virtual é muito maior que a memória armazenada em cache em tamanho.
  6. A técnica de memória virtual requer que as estruturas de mapeamento mapeiem o endereço virtual para o endereço físico, enquanto a memória cache não requer nenhuma estrutura de mapeamento.

Conclusão:

A memória virtual é uma técnica para expandir a capacidade da memória principal virtualmente para os usuários. A memória cache é uma unidade de armazenamento que armazena os dados acessados ​​recentemente, permitindo que a CPU acesse-a mais rapidamente.

Top