Técnicas de gerenciamento de memória
Gerenciamento Básico de Memória
Os Sistemas de Gerenciamento de Memória podem ser divididos em duas classes: aqueles que levam e trazem processos entre a memória principal e o disco durante a execução (fazendo troca de processos e paginação) e aqueles que mantém os processos fixos em memória primária. As próximas seções apresentam os mesmos.
Monoprogramação
A monoprogramação consiste em executar um processo por vez na memória, dessa forma todos os recursos de hardware são exclusivos para execução do mesmo.
Monoprogramação sem troca ou paginação
Este é o esquema mais simples possível: só é possível executar um programa de cada vez, compartilhando a memória entre o programa e o S.O. Existem três variações para este modelo:
• O SO é carregado na parte inferior da memória, em RAM (Random Access Memory), e deixa a parte superior da memória disponível para o processo do usuário. O endereçamento por parte do processo usuário inicia do fim da RAM até o limite da memória.
• O SO é carregado na parte superior da memória, em ROM (Read-Only Memory), e deixa a parte inferior da memória disponível para o processo do usuário. O endereçamento do processo usuário vai do endereço 0 ao início da ROM.
• Os drives do SO são carregados em ROM (parte superior) e o restante do SO é carregado em RAM (parte inferior).
Quando o sistema está organizado desta maneira, somente um processo por vez pode estar executando, desta forma esse tipo de sistema é usado em aplicações de caráter muito específico, como por exemplo sistemas de controle de temperatura ou pressão.
Multiprogramação
A multiprogramação nada mais é que manter diversos processos na memória, e essa memória precisa ser dividida de maneira eficiente para que possamos manter o número máximo de processos. Existem diversas técnicas para gerenciar memória que variam de acordo com o hardware do processador.
Multiprogramação com Partições Fixas
A maneira mais simples de implementar a