Pré-requisito - Memória Virtual no Sistema Operacional

Conforme sugerido pelo conceito de memória virtual, não é necessário que todo o processo seja carregado na memória principal em determinado momento. O processo pode ser executado de forma eficiente se apenas algumas das páginas estiverem presentes na memória principal em um determinado momento. Agora, a questão que se coloca aqui é qual é a base da seleção de páginas a serem carregadas na memória principal para a execução de um processo antecipadamente?

A resposta para o problema apresentado aqui é Paginação por demanda . De acordo com este conceito, nenhuma página é carregada na memória principal a menos que esteja sendo referenciada pelo processo em qualquer estágio de execução. Em contraste, o conceito de Prepaging apresenta uma abordagem diferente onde o sistema operacional apresenta uma estimativa de qual página o processo exigirá e pré-carrega na memória.

O conceito de Prepaging é usado como uma tentativa de reduzir o grande número de falhas de página que ocorrem no início de um processo onde a estratégia básica é trazer para a memória todas as páginas que serão necessárias ao mesmo tempo antes de serem realmente referenciado pelo processo. 

O pré - envio é usado para superar uma grande desvantagem da paginação sob demanda . Uma grande desvantagem da Paginação por demanda é um número significativamente grande de falhas de página que podem ocorrer assim que um processo começa a ser executado. A situação é resultado de um esforço para carregar a localidade inicial na memória. A mesma situação pode surgir repetidamente. Por exemplo, quando um processo é reiniciado após ser trocado, todas as suas páginas estão presentes no disco e, portanto, cada uma das páginas deve ser trazida de volta para a memória principal para a execução do processo por sua própria falha de página no pior caso.
Se um sistema usa um modelo de conjunto de trabalho, uma lista de páginas é mantida com cada processo em seu conjunto de trabalho. Se um processo for suspenso devido à falta de frames livres ou uma espera de E / S, o conjunto de trabalho do processo não será perdido. Quando um processo é retomado, todo o conjunto de trabalho é trazido de volta à memória antes que o processo comece a ser executado novamente.
A principal vantagem do Prepaging é que ele pode economizar tempo quando endereços consecutivos são referenciados por um processo. Nesse caso, é fácil para o sistema operacional adivinhar e carregar as páginas apropriadas e, como há uma grande probabilidade de que a estimativa seja correta para muitas páginas, haverá menos falhas de página.

O pré-envelhecimento nem sempre é benéfico. A vantagem do Prepaging é baseada na resposta a uma pergunta simples de que se o custo de implementação do Prepaging é menor do que o custo de manutenção das falhas de página correspondentes. Observe aqui que pode ser o caso de não ser usado um número consideravelmente grande de páginas trazidas de volta para a memória pelo Prepaging. A desvantagem do conceito é que há desperdício de recursos, como tempo e memória, se as páginas pré-carregadas não forem utilizadas.

Diferença entre paginação por demanda e pré-envio:

Paging por demanda

Pré-Paging

Nenhuma página é carregada na memória principal, a menos que esteja sendo referenciada pelo processo no momento presente.Todas as páginas são carregadas na memória que serão necessárias ao mesmo tempo em um futuro próximo, mas antes de serem realmente referenciadas pelo processo. 
O número de falhas de página é significativamente alto.O número de falhas de página pode ser reduzido em certos casos específicos.
O tempo de carregamento das páginas não pode diminuir em nenhuma situação.O tempo necessário para carregar as páginas diminui quando endereços consecutivos são referenciados por um processo.
As páginas carregadas na memória principal são certamente utilizadas.As páginas carregadas na memória principal podem ou não ser utilizadas.
Não há desperdício de recursos, pois uma página é carregada como e quando necessário.Há um desperdício de recursos, pois há uma grande chance de que as páginas não sejam utilizadas.

Deixe o número de páginas pré-paginadas ser: s, e a fração dessas páginas realmente usadas por um processo é: m, onde (0 ≤ m ≤ 1). Agora verifique se as falhas da página salva s * m são maiores ou menores do que o custo de pré-envio de s * (1-m) páginas desnecessárias e prossiga com o procedimento que tem um valor menos relativo.

Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.