Redes
10.7 - Swapping em memoria virtual.
A técnica de swapping pode ser aplicada em sistemas com memoria virtual, permitindo aumentar o numero de processos que compartilham a memoria principal e também o grau de multiprogramação do sistema.
Quando existem novos processos para serem executados e não há memoria principal livre para alocação, o sistema utiliza o swapping, selecionando um ou mais processos para saírem da memoria e oferecer espaço para novos processos. Depois de escolhidos, o sistema retira os processos da memoria principal para a memoria secundaria (swap out), onde as paginas são gravados em um arquivo swap (swap file). Com os processos salvos na memoria secundaria, os frames alocados são liberados para novos processos. Posteriormente, os processos que foram retirados da memoria devem retornar para a memoria principal (swap in) para serem novamente executados.
O sistema tenta selecionar os processos com as menores chances de serem executadas em um futuro próximo. O swapping seleciona, inicialmente, os processos que estão no estado de espera. A seleção pode ser refinada em função do tipo de espera de cada processo.
O arquivo de swap é compartilhado por todos os processos que estão sendo executados no ambiente. Quando um processo é criado, o sistema reserva um espaço no arquivo de swap para o processo. Da mesma forma, quando um processo é eliminado o sistema libera a área alocada.
10.8 – Thrashing
Thrashing pode ser definido como sendo a excessiva transferência de paginas/segmentos entre a memoria principal e a memoria secundaria. Este problema esta presente em sistemas que implementam tanto paginação como segmentação.
Na memoria virtual por paginação, o thrashing ocorre em dois níveis: no do próprio processo e no sistema. No nível do processo, a excessiva paginação ocorre devido ao elevado numero de page faults gerado pelo programa em execução. Existem dois motivos que levam um processo a sofrer esse tipo de thrashing. O