Swapping x Paginação x Segmentação x Memória Virtual
Existem situações onde não é possível manter todos os processos na memória.
Ex: um processo já alocado na memória faz uma chamada de sistema pedindo mais memória e não existe memória livre contígua a área onde o mesmo está alocado um usuário dispara um programa, não existe memória disponível mas é política dos sistema disparar imediatamente todos os programas solicitados de terminal.
Usando o swapping o sistema escolhe um programa residente que é levado da memória para o disco (swap-out ) retornando posteriormente para a memória (swap-in).
Paginação
A paginação permite que o programa possa ser espalhado por áreas não contíguas de memória. Características: o espaço de endereçamento lógico de um processo é dividido em páginas lógicas de tamanho fixo a memória física é dividida em páginas com tamanho fixo, com tamanho igual ao da página lógica o programa é carregado página a página, cada página lógica ocupa uma página física as páginas físicas não são necessariamente contíguas o endereço lógico é inicialmente dividido em duas partes : um número de página lógica e um deslocamento dentro da página o número da página lógica é usado como índice no acesso a tabela de páginas, de forma a obter o número da página física correspondente não existe fragmentação externa existe fragmentação interna (Ex: um programa que ocupe 201kb, o tamanho de página é de 4 kb, serão alocadas 51 páginas resultando uma fragmentação interna de 3kb) além da localização a tabela de páginas armazena também o bit de validade, (1) se a página está na memória (0) se a página não está na memória a transferência das páginas de processo podem ser transferidas para a memória por demanda, levando apenas o que é necessário para a execução do programa ou por paginação antecipada, onde o sistema tenta prever as páginas que serão necessárias à execução do programa.
Segmentação
Técnica de gerência de memória onde programas são divididos em segmentos de tamanhos variados cada um com