Segmentação: Para permitir que programas e dados sejam divididos em espaços de endereçamento logicamente independentes e para auxiliar o compartilhamento e a proteção.
  Sua função é gerenciar a memória de modo eficiente: manter o controle de quais partes da memória estão em uso e quais não estão, alocando memória aos processos quando eles precisam e liberando-a quando esses processos terminam.
É a estratégia mais simples de troca de processos, consistem em trazer, em sua totalidade, cada processo para a memória.
Permite que programas possam ser executados mesmo que estejam apenas parcialmente carregados na memória principal.
  Um método melhor foi desenvolvido e conhecido como Memória Virtual. A ideia é que cada programa tem seu próprio espaço de endereçamento, que é dividido em blocos chamados páginas. Cada página é uma série contígua de endereços. Essas páginas são mapeadas na memória física, mas nem todas as páginas precisam estar na memória física para executar o programa. Quando o programa referencia uma parte de seu espaço de endereçamento que está na memória física, o hardware executa o mapeamento necessário dinamicamente. Quando o programa referencia uma parte de seu espaço de endereçamento que não está em sua memória física, o sistema operacional é alertado para obter a parte que falta e reexecutar a instrução que falhou.
  De certa forma, a memória virtual é uma generalização da ideia do registrador-limite e do registrador-base.
Com um mapa de bits, a memória é dividida entre unidades de alocação tão pequens quanto palavras ou tão grandes como vários kilobytes. Cada unidade de alocação corresponde um bit no mapa de bits (0 para unidade livre; 1 para unidade ocupada).
  Se a unidade de alocação for definida com grande, o mapa de bits será menor, mas uma quantidade apreciável de memória poderá ser desperdiçada na última unidade do processo se o tamanho do processo não for exatamente múltiplo da unidade de alocação.
  O problema é que quando se decide carregar na memória um processo, o gerenciador de memória precisa encontrar espaço disponível na memória procurando no mapa de bits uma sequência de k bits consecutivos em 0. Essa operação de busca por uma sequencial de 0s é muito lenta.
Outra maneira de gerenciar o uso de memória é manter uma lista encadeada de segmentos de memória alocados e disponíveis. Um segmento é tanto uma área de memória alocada a um processo como uma área de memória livre situada entre as áreas de dois processos.
O gerenciador de memória procura ao longo da lista de segmentos de memória por um segmento livre que seja suficientemente grande para esse processo. A parte que sobrar de um segmento se torna uma área livre. É um algoritmo bem rápido.
É uma alteração do first fit. Funciona como o first fit, exceto pelo fato de sempre memorizar a posição em que encontra um segmento de memória disponível de tamanho suficiente. Quando o algoritmo next fit tornar a ser chamado para encontrar um novo segmento de memória livre, ele inicializará sua busca a partir desse ponto, em vez de procurar sempre a partir do início da lista, tal como faz o algoritmo first fit.