Você precisa 20 fãs para girar a roda da fortuna
Um dos principais desafios dos desenvolvedores é criar sistemas que ocupem pouco espaço em memória e ao mesmo tempo otimizem a utilização de recursos computacionais. Mesmo atualmente com a redução de custo e o aumento da capacidade da memória principal, seu gerenciamento é um dos fatores mais importantes nos projetos de sistemas operacionais.
1 – Funções Básicas
Em geral, programas são armazenados em memórias secundárias, como discos, por ser um meio não-volátil, abundante e de baixo custo.
O processador somente executa instruções localizadas na memória principal, ou seja, o sistema operacional deve sempre transferir programas do disco para a memória principal para executá-los. Como o tempo de acesso ao disco é muito superior ao tempo de acesso ä memória principal, o sistema operacional tenta reduzir o número de operações de E/S em disco, mantendo o maior número de processos na memória principal, evitando assim, problemas de desempenho e maximizando o compartilhamento do processador.
Além disso:
- O sistema operacional deve também ter capacidade de permitir que mesmo na ausência de espaço livre, novos processos sejam aceitos, isso é possível através de uma técnica chamada Swapping;
- Deve também permitir a execução de programas maiores que a memória principal disponível, essa necessidade é atendida por técnicas como overlay e memória virtual;
- O S.O deve proteger as áreas de memória ocupadas por cada processo, além da área onde ele mesmo reside;
- Oferecer mecanismos de compartilhamento para que diversos processos possam trocar dados de forma protegida.
2 – Técnicas de Alocação de Memória
2.1 – Alocação Contígua Simples
Este tipo de alocação foi implementada nos primeiros sistemas operacionais e consiste de em organizar a memória principal subdividindo-a em duas áreas: uma para o sistema operacional e outra para o programa do usuário.
Neste esquema o sistema operacional implementa proteção através de um