Memória virtual no sistema operacional: o que é paginação por demanda, vantagens

Índice:

Anonim

O que é memória virtual?

A memória virtual é um mecanismo de armazenamento que oferece ao usuário a ilusão de ter uma memória principal muito grande. Isso é feito tratando uma parte da memória secundária como a memória principal. Na memória virtual, o usuário pode armazenar processos com um tamanho maior que a memória principal disponível.

Portanto, em vez de carregar um longo processo na memória principal, o SO carrega as várias partes de mais de um processo na memória principal. A memória virtual é implementada principalmente com paginação por demanda e segmentação por demanda.

Neste tutorial do sistema operacional, você aprenderá:

  • O que é memória virtual?
  • Como funciona a memória virtual?
  • O que é paginação por demanda?
  • Tipos de métodos de substituição de página
  • Substituição de página FIFO
  • Algoritmo Ótimo
  • Substituição de página LRU
  • Vantagens da memória virtual
  • Desvantagens da memória virtual

Por que precisa de memória virtual?

Aqui, estão as razões para usar a memória virtual:

  • Sempre que seu computador não tem espaço na memória física, ele grava o que precisa ser lembrado no disco rígido em um arquivo de troca como memória virtual.
  • Se um computador com Windows precisa de mais memória / RAM, então instalada no sistema, ele usa uma pequena parte do disco rígido para essa finalidade.

Como funciona a memória virtual?

No mundo moderno, a memória virtual se tornou bastante comum nos dias de hoje. É utilizado sempre que algumas páginas precisam ser carregadas na memória principal para a execução, e a memória não está disponível para essas muitas páginas.

Portanto, nesse caso, em vez de impedir que as páginas entrem na memória principal, o SO procura o espaço de RAM que é mínimo usado nos últimos tempos ou que não são referenciados na memória secundária para abrir o espaço para as novas páginas em a memória principal.

Vamos entender o gerenciamento de memória virtual com a ajuda de um exemplo.

Por exemplo:

Vamos supor que um sistema operacional exija 300 MB de memória para armazenar todos os programas em execução. No entanto, atualmente há apenas 50 MB de memória física disponível armazenada na RAM.

  • O sistema operacional irá então configurar 250 MB de memória virtual e usar um programa chamado Virtual Memory Manager (VMM) para gerenciar esses 250 MB.
  • Portanto, neste caso, o VMM criará um arquivo no disco rígido de 250 MB para armazenar a memória extra necessária.
  • O SO irá agora proceder ao endereçamento da memória, uma vez que considera 300 MB de memória real armazenada na RAM, mesmo se apenas 50 MB de espaço estiverem disponíveis.
  • É função do VMM gerenciar 300 MB de memória, mesmo que apenas 50 MB de espaço de memória real estejam disponíveis.

O que é paginação por demanda?

Um mecanismo de paginação por demanda é muito semelhante a um sistema de paginação com troca, onde os processos armazenados na memória secundária e as páginas são carregadas apenas sob demanda, não antecipadamente.

Portanto, quando ocorre uma troca de contexto, o sistema operacional nunca copia nenhuma das páginas do programa antigo do disco ou qualquer uma das páginas do novo programa para a memória principal. Em vez disso, ele começará a executar o novo programa após carregar a primeira página e buscar as páginas do programa, que são referenciadas.

Durante a execução do programa, se o programa fizer referência a uma página que pode não estar disponível na memória principal porque foi trocada, o processador a considera uma referência de memória inválida. Isso ocorre porque a falha de página e as transferências enviam o controle de volta do programa para o sistema operacional, que exige armazenar a página de volta na memória.

Tipos de métodos de substituição de página

Aqui estão alguns métodos importantes de substituição de páginas

  • FIFO
  • Algoritmo Ótimo
  • Substituição de página LRU

Substituição de página FIFO

FIFO (First-in-first-out) é um método de implementação simples. Neste método, a memória seleciona a página para uma substituição que está no endereço virtual da memória há mais tempo.

Características:

  • Sempre que uma nova página é carregada, a página que recentemente entrou na memória é removida. Portanto, é fácil decidir qual página deve ser removida, pois seu número de identificação está sempre na pilha FIFO.
  • A página mais antiga na memória principal é aquela que deve ser selecionada para substituição primeiro.

Algoritmo Ótimo

O método de substituição de página ideal seleciona aquela página para uma substituição para a qual o tempo para a próxima referência é o mais longo.

Características:

  • O algoritmo ideal resulta no menor número de falhas de página. Este algoritmo é difícil de implementar.
  • Um método de algoritmo de substituição de página ideal tem a taxa de falha de página mais baixa de todos os algoritmos. Este algoritmo existe e deve ser denominado MIN ou OPT.
  • Substitua a página que não deseja usar por um longo período de tempo. Ele só usa o tempo quando uma página precisa ser usada.

Substituição de página LRU

O formulário completo do LRU é a página Menos usados ​​recentemente. Este método ajuda o sistema operacional a encontrar o uso da página por um curto período de tempo. Este algoritmo deve ser implementado associando um contador a uma página par.

Como funciona?

  • A página, que não é usada há mais tempo na memória principal, é aquela que será selecionada para substituição.
  • Fácil de implementar, mantenha uma lista, substitua páginas olhando para trás no tempo.

Características:

  • O método de substituição LRU tem a contagem mais alta. Esse contador também é chamado de registros de envelhecimento, que especificam sua idade e quanto suas páginas associadas também devem ser referenciadas.
  • A página que não é usada há mais tempo na memória principal é aquela que deve ser selecionada para substituição.
  • Ele também mantém uma lista e substitui as páginas, olhando para trás no tempo.

Taxa de falha

A taxa de falha é uma frequência com a qual um sistema ou componente projetado falha. É expresso em falhas por unidade de tempo. É denotado pela letra grega λ (lambda).

Vantagens da memória virtual

Aqui, estão os prós / benefícios de usar a memória virtual:

  • A memória virtual ajuda a ganhar velocidade quando apenas um segmento específico do programa é necessário para a execução do programa.
  • É muito útil na implementação de um ambiente de multiprogramação.
  • Ele permite que você execute mais aplicativos de uma vez.
  • Ajuda a ajustar muitos programas grandes em programas menores.
  • Dados ou códigos comuns podem ser compartilhados entre a memória.
  • O processo pode se tornar ainda maior do que toda a memória física.
  • Os dados / código devem ser lidos do disco sempre que necessário.
  • O código pode ser colocado em qualquer lugar da memória física sem a necessidade de realocação.
  • Mais processos devem ser mantidos na memória principal, o que aumenta o uso efetivo da CPU.
  • Cada página é armazenada em um disco até que seja necessária, depois disso, ela será removida.
  • Ele permite que mais aplicativos sejam executados ao mesmo tempo.
  • Não há limite específico para o grau de multiprogramação.
  • Grandes programas devem ser escritos, já que o espaço de endereço virtual disponível é maior em comparação com a memória física.

Desvantagens da memória virtual

Aqui estão as desvantagens / contras do uso de memória virtual:

  • Os aplicativos podem ser executados mais lentamente se o sistema estiver usando memória virtual.
  • Provavelmente leva mais tempo para alternar entre os aplicativos.
  • Oferece menos espaço no disco rígido para seu uso.
  • Reduz a estabilidade do sistema.
  • Ele permite que aplicativos maiores sejam executados em sistemas que não oferecem RAM física suficiente para executá-los.
  • Não oferece o mesmo desempenho da RAM.
  • Afeta negativamente o desempenho geral de um sistema.
  • Ocupe o espaço de armazenamento, que pode ser usado de outra forma para armazenamento de dados de longo prazo.

Resumo:

  • A memória virtual é um mecanismo de armazenamento que oferece ao usuário a ilusão de ter uma memória principal muito grande.
  • A memória virtual é necessária sempre que o seu computador não tem espaço na memória física
  • Um mecanismo de paginação por demanda é muito semelhante a um sistema de paginação com troca, onde os processos armazenados na memória secundária e as páginas são carregadas apenas sob demanda, não antecipadamente.
  • Os métodos de substituição de página importantes são 1) FIFO 2) Algoritmo ideal 3) Substituição de página LRU.
  • No método FIFO (First-in-first-out), a memória seleciona a página para uma substituição que está no endereço virtual da memória há mais tempo.
  • O método de substituição de página ideal seleciona aquela página para uma substituição para a qual o tempo para a próxima referência é o mais longo.
  • O método LRU ajuda o SO a encontrar o uso da página por um curto período de tempo.
  • A memória virtual ajuda a ganhar velocidade quando apenas um segmento específico do programa é necessário para a execução do programa.
  • Os aplicativos podem ser executados mais lentamente se o sistema estiver usando memória virtual.