Sistema operacional - memória virtual

Um computador pode endereçar mais memória do que a quantidade fisicamente instalada no sistema. Esta memória extra é realmente chamadavirtual memory e é uma seção de um disco rígido configurado para emular a RAM do computador.

A principal vantagem visível desse esquema é que os programas podem ser maiores do que a memória física. A memória virtual tem dois propósitos. Primeiro, ele nos permite estender o uso da memória física usando o disco. Em segundo lugar, permite-nos ter proteção de memória, porque cada endereço virtual é traduzido para um endereço físico.

A seguir estão as situações em que não é necessário que o programa inteiro seja carregado totalmente na memória principal.

  • As rotinas de tratamento de erros escritas pelo usuário são usadas apenas quando ocorre um erro nos dados ou computação.

  • Certas opções e recursos de um programa podem ser usados ​​raramente.

  • Muitas tabelas recebem uma quantidade fixa de espaço de endereço, embora apenas uma pequena quantidade da tabela seja realmente usada.

  • A capacidade de executar um programa que está apenas parcialmente na memória prejudicaria muitos benefícios.

  • Menor número de E / S seria necessário para carregar ou trocar cada programa do usuário na memória.

  • Um programa não seria mais limitado pela quantidade de memória física disponível.

  • Cada programa do usuário poderia ocupar menos memória física, mais programas poderiam ser executados ao mesmo tempo, com um aumento correspondente na utilização e rendimento da CPU.

Microprocessadores modernos para uso geral, uma unidade de gerenciamento de memória ou MMU, são integrados ao hardware. O trabalho do MMU é traduzir endereços virtuais em endereços físicos. Um exemplo básico é dado abaixo -

A memória virtual é comumente implementada por paginação por demanda. Também pode ser implementado em um sistema de segmentação. A segmentação de demanda também pode ser usada para fornecer memória virtual.

Paging por demanda

Um sistema de paginação sob demanda é bastante semelhante a um sistema de paginação com troca, onde os processos residem na memória secundária e as páginas são carregadas apenas sob demanda, não antecipadamente. Quando ocorre uma mudança de contexto, o sistema operacional não copia nenhuma das páginas do programa antigo para o disco ou qualquer uma das páginas do novo programa para a memória principal. Em vez disso, ele apenas começa a executar o novo programa após carregar a primeira página e buscar aquele páginas do programa à medida que são referenciadas.

Ao executar um programa, se o programa faz referência a uma página que não está disponível na memória principal porque foi trocada há pouco, o processador trata esta referência de memória inválida como um page fault e transfere o controle do programa para o sistema operacional para exigir a página de volta na memória.

Vantagens

A seguir estão as vantagens do Paging por demanda -

  • Grande memória virtual.
  • Uso mais eficiente da memória.
  • Não há limite para o grau de multiprogramação.

Desvantagens

  • O número de tabelas e a quantidade de sobrecarga do processador para lidar com interrupções de página são maiores do que no caso das técnicas de gerenciamento de páginas simples.

Algoritmo de substituição de página

Os algoritmos de substituição de página são as técnicas pelas quais um sistema operacional decide quais páginas de memória trocar e gravar no disco quando uma página de memória precisar ser alocada. A paginação ocorre sempre que ocorre uma falha de página e uma página livre não pode ser usada para fins de alocação de contabilidade para justificar que as páginas não estão disponíveis ou o número de páginas livres é menor do que o necessário.

Quando a página que foi selecionada para substituição e eliminada é referenciada novamente, ela deve ser lida do disco e isso requer a conclusão de E / S. Este processo determina a qualidade do algoritmo de substituição de página: quanto menor o tempo de espera pela entrada de páginas, melhor é o algoritmo.

Um algoritmo de substituição de página analisa as informações limitadas sobre o acesso às páginas fornecidas pelo hardware e tenta selecionar quais páginas devem ser substituídas para minimizar o número total de páginas perdidas, enquanto equilibra isso com os custos de armazenamento primário e tempo de processador do algoritmo em si. Existem muitos algoritmos de substituição de página diferentes. Avaliamos um algoritmo executando-o em uma string particular de referência de memória e calculando o número de falhas de página,

String de Referência

A string de referências de memória é chamada de string de referência. As strings de referência são geradas artificialmente ou rastreando um determinado sistema e registrando o endereço de cada referência de memória. A última escolha produz um grande número de dados, onde notamos duas coisas.

  • Para um determinado tamanho de página, precisamos considerar apenas o número da página, não o endereço completo.

  • Se tivermos uma referência a uma página p, então todas as referências imediatamente seguintes à página pnunca causará uma falha de página. A página p estará na memória após a primeira referência; as referências imediatamente a seguir não irão falhar.

  • Por exemplo, considere a seguinte sequência de endereços - 123.215.600,1234,76,96

  • Se o tamanho da página for 100, a string de referência será 1,2,6,12,0,0

Algoritmo primeiro a entrar, primeiro a sair (FIFO)

  • A página mais antiga da memória principal é aquela que será selecionada para substituição.

  • Fácil de implementar, mantenha uma lista, substitua as páginas do final e adicione novas páginas ao cabeçalho.

Algoritmo de página ideal

  • Um algoritmo de substituição de página ideal tem a taxa de falha de página mais baixa de todos os algoritmos. Existe um algoritmo de substituição de página ideal, denominado OPT ou MIN.

  • Substitua a página que não será usada por um longo período de tempo. Use o tempo em que uma página deve ser usada.

Algoritmo menos usado recentemente (LRU)

  • A página que não foi usada por muito 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.

Algoritmo de buffer de página

  • Para que um processo comece rapidamente, mantenha um pool de frames livres.
  • Na falha de página, selecione uma página a ser substituída.
  • Escreva a nova página no quadro do pool livre, marque a tabela de páginas e reinicie o processo.
  • Agora escreva a página suja fora do disco e coloque o quadro que contém a página substituída no pool livre.

Algoritmo menos usado (LFU)

  • A página com a menor contagem é aquela que será selecionada para substituição.

  • Esse algoritmo sofre com a situação em que uma página é usada intensamente durante a fase inicial de um processo, mas nunca é usada novamente.

Algoritmo usado com mais frequência (MFU)

  • Este algoritmo é baseado no argumento de que a página com a menor contagem provavelmente acabou de ser trazida e ainda não foi usada.