GERÊNCIA DE MEMÓRIA
Histórico: a memória principal (MP) sempre foi vista como um recurso escasso e caro.
Preocupação: os projetistas procuravam desenvolver sistemas operacionais (SO) que não ocupassem muito espaço de MP, otimizando a utilização dos recursos computacionais.
Hoje: com a redução de custo e aumento da capacidade, seu gerenciamento é um dos fatores mais importantes no projeto de SO.
Funções Básicas:
1 – Como o processador somente executa instruções localizadas na MP, o SO deve sempre transferir programas da memória secundária (MS) para a memória principal antes de serem executados.
2 – O tempo de acesso entre o processador e a MS é maior que na MP, com isso o SO deve buscar reduzir o número de operações de E/S na MS, caso contrário, sérios problemas no desempenho do sistema podem ser ocasionados.
3 – A gerência de memória deve tentar manter na MP o maior número de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais. Mesmo na ausência de espaço livre, o sistema deve permitir que novos processos sejam aceitos e executados.
4 – Permitir a execução de programas que sejam maiores que a memória física disponível, implementado através de técnicas como overlay e memória virtual.
5 – 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 de alguma forma deve impedi-lo.
Alocação Contígua Simples: foi implementada nos primeiros SO, porém ainda está presente em alguns sistemas monoprogramáveis. Ela se divide (1) em duas áreas: uma para o SO e outra para o programa do usuário. Desta forma o usuário tem controle sobre toda a MP, podendo ter acesso a qualquer posição de memória, inclusive a área do SO. Para proteger o sistema desse tipo de acesso alguns sistemas implementam proteção através de um registrador que delimita as