CIÊNCIAS EXATAS
CURSO SUPERIOR DE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS
Gerenciamento de Memória nos Sistemas operacionais |
|
NOME DO AUTOR
ALEXANDRE COSTA PELEGRINO
RGM 81566-7
DISCIPLINA SISTEMAS OPERACIONAIS
São Paulo
Dezembro/2009
ÍNDICE:
1. Introdução
2. Funções Básicas
3. Alocação Contígua Simples
4. Técnica deOverlay
5. Alocação Particionada
6. Swapping
7. Bibliografia
1.
INTRODUÇÃO
Historicamente, a memória principal sempre foi vista como um recurso escasso e caro. Uma das maiores preocupações dos projetistas foi desenvolver sistemas operacionais que não ocupassem muito espaço de memória e, ao mesmo tempo, otimizassem a utilização dos recursos computacionais. Mesmo atualmente, com aredução de custo e conseqüente aumento da capacidade da memória principal, seu gerenciamento é um dos fatores mais importantes no projeto de sistemas operacionais.
Enquanto nos sistemas monoprogramáveis a gerência da memória não é muito complexa, nos sistemas multiprogramáveis essa gerência se torna crítica, devido à necessidade de se maximizar o número de usuários e aplicações utilizando eficientementeo espaço da memória principal.
2. FUNÇÕS BÁSICAS
Em geral, programas são armazenados em memórias secundárias, como disco ou fita, por ser um meio não-volátil, abundante e de baixo custo. Como o processador somente executa instruções localizadas na memória principal, o sistema operacional deve sempre transferir programas da memória secundária para a memória principal antes de seremexecutados. Como o tempo de acesso à memória secundária é muito superior ao tempo de acesso à memória principal, o sistema operacional deve buscar reduzir o número de operações de E/S à memória secundária, caso contrário, sérios problemas no desempenho do sistema podem ser ocasionados.
Os sistemas de gerência de memória podem ser divididos em duas grandes categorias: aqueles que movem os processosentre a memória principal e o disco (swapping e paginação), e aqueles que não movimentam os processos entre tais dispositivos de armazenamento. Os últimos são bem mais simples que os primeiros.
A gerência de memória deve tentar manter na memória principal o maior número possível de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais. Mesmona ausência de espaço livre, o sistema deve permitir que novos processos sejam aceitos e executados. Isso é possível através da transferência temporária de processos residentes na memória principal para a memória secundária, liberando espaço para novos processos. Este mecanismo é conhecido como swapping e será detalhado posteriormente.
Outra preocupação na gerência de memória é permitir aexecuçã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.
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 deveimpedi-lo. Apesar da 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.
3. ALOCAÇÃO CONTÍGUA SIMPLES
A alocação contígua simples foi implementada nos primeiros sistemas operacionais, porém ainda está presente em alguns sistemas monoprogramáveis. Nesse tipo deorganização, a memória principal é subdividida em duas áreas: uma para o sistema operacional e outra para o programa do usuário.
Figura 1: Alocação contígua simples
Dessa forma, o programador deve desenvolver suas aplicações, preocupado, apenas, em não ultrapassar o espaço de memória disponível, ou seja, a diferença entre o tamanho total da memória principal e a área ocupada pelo sistema...