Gerenciamento de memoria
INTRODUÇÃO
Em um ambiente de multiprogramação, o sistema operacional deve proteger as áreas de memória ocupadas por cada processo, além da área onde reside o próprio sistema. Caso um programa tente realizar algum acesso indevido à memória, o sistema deve impedi-lo de alguma forma. Apesar de a gerência de memória garantir a proteção de áreas da memória, mecanismos de compartilhamento devem ser oferecidos para que diferentes processos possam trocar dados de forma protegida. A Proteção da Memória é a estratégia utilizada pelos sistemas operacionais para controlar a memória em utilização no computador. A principal função da proteção da memória é a separação dos processos e suas informações, e impedir que um processo acesse uma área de memória que não foi reservada para ele. Para realizar a proteção da memória, uma das seguintes medidas pode ser escolhida: a Segmentação da Memória ou a Paginação da Memória.
Na Paginação da Memória, a memória é dividida em páginas, com tamanho fixo. Com a utilização de um outro mecanismo chamado Memória Virtual, cada página pode ser armazenada em qualquer lugar da memória do computador. A Segmentação da Memória é a divisão da memória do computador em segmentos de dados. Quando um programa vai acessar uma área de memória, ele deve informar também o número do segmento de memória.
1. FreeBSD
O FreeBSD tenta detectar situações de thrashing observando a quantidade de memória livre [McKusick and Neville-Neil, 2004]. Quando o sistema possuir poucas páginas de memória disponíveis e uma taxa elevada de novas requisições de memória, ele se considera em thrashing. O sistema reduz o thrashing fazendo com que o último processo que conseguiu executar não consiga mais executar, ou seja, não permite que esse processo volte ao processador durante algum tempo. Isto permite que o serviço, ou daemon, de paginação coloque todas