Buscar

Sistemas Operacionais - Gerenciamento de memória - Apostila

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SISTEMAS 
OPERACIONAIS 
 
 
 
 
 Gerência de Memória 
Apostila 7 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 2 
1.0 – 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 a redução de custo e consequente 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 eficientemente o espaço 
da memória principal. 
 
1.1 - Funções Básicas 
 Em geral programas são armazenados em memórias 
secundárias, como discos ou fitas, 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 deles serem executados. 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, para evitar 
problemas de desempenho do sistema. 
 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. Mesmo na ausência de espaço livre, o 
sistema deve permitir que novos processos sejam aceitos e 
executados. Isto é possível através da transferência temporária de 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 3 
processos residentes na memória principal para a memória 
secundária, liberando espaço para novos processos. Este mecanismo 
é conhecido como swapping. 
 Outra preocupação na gerência de memória é permitir a 
execução de programas que sejam maiores que a memória física 
disponível, implementando 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 deve impedí-lo. 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. 
 
2.0 - ALOCAÇÃO DE MEMÓRIA 
 
 Simples 
 
 Contígua 
 
 Particionada Estática(Fixa) / Dinâmica 
 Alocação 
 Paginação 
 
 Não-Contígua Segmentação 
 (Memória 
 Virtual) Segmentação com Paginação 
 
 
 2.1 - Alocação Contígua Simples 
 Foi implementada nos primeiros Sistemas Operacionais, porém 
ainda está presente em alguns sistemas monoprogramáveis. Nesse 
tipo de organização, a memória principal é subdividida em duas 
áreas: uma para o sistema operacional e outra para o programa do 
usuário. Dessa forma, o programador deve desenvolver suas 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 4 
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 área ocupada pelo Sistema Operacional. 
 
 
Figura 1 - Alocação Contígua Simples 
 Esquema em que o usuário tem controle sobre toda a memória 
principal, inclusive a área do Sistema Operacional. 
 Implementa controle de proteção do sistema através de 
registrador que delimita a área do Sistema Operacional. 
 Fácil implementação e código reduzido, porém não utiliza os 
recursos computacionais de forma eficiente, pois apenas um 
usuário/aplicação pode dispor deste recurso. 
 
2.2 - Técnia de Overlay 
 Na alocação contígua simples, todos os programas estão 
limitados ao tamanho da área de memória principal disponível para o 
usuário. Uma solução encontrada para o problema é dividir o 
programa em módulos, de forma que seja possível a execução 
independente de cada módulo, utilizando uma mesma área de 
memória. Essa técnica é chamada de overlay. 
 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 5 
 
Figura 2 - Técnia de Overlay 
 
 A técnica de overlay utiliza uma área de memória comum, os 
os módulos “não-carregados” poderão compartilhar esta área 
de memória (área de overlay). 
 Sempre que um módulo “não-carregado” for referenciado pelo 
módulo principal, o módulo será carregado da memória 
secundária para a área de overlay. No caso de uma referência 
a um módulo já carregado, a carga não será realizada. 
 A definição das áreas de overlay é função do programador, 
através de comandos específicos das linguagem de 
programação utilizada. 
 O tamanho da área de overlay é estabelecido a partir do 
tamanho do maior módulo. 
 Esta técnica tem a vantagem de permitir ao programador 
expandir os limites da memória principal, porém deve ser 
utilizada com cuidado, pois pode trazer sérios problemas de 
desempenho, devido a possibilidade de transferência excessiva 
dos módulos entre a memória principal e a secundária. 
 
2.3 - Alocação Contígua Particionada 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 6 
 Os Sistemas Operacionais evoluiram no sentido de 
proporcionar melhor aproveitamento dos recursos disponíveis. Nos 
sistemas monoprogramáveis, o processador permance grande parte 
do tempo ocioso e a memória principal é subutilizada. Os sistemas 
multiprogramáveis jão são muito mais eficientes no uso do 
processador, necessitando assim, que diversos programas estejam 
na memória principal ao mesmo tempo e que novas formas de 
gerência da memória sejam implementadas. 
 
 2.4 - Alocação Contígua Particionada Fixa (Estática) 
 Nos primeiros sistemas multiprogramáveis, a memória era 
dividida em pedaços de tamanho fixo, chamados partições. O 
tamanho das partições, estabelecido na fase de inicialização do 
sistema, era definido em função do tamanho dos programas que 
executariam no ambiente. Sempre que fossem necessárias alterações 
do tamanho de uma partição, o sistema deveria ser reinicializado 
com a nova configuração. 
 
Figura 3 - Alocação Contígua Particionada Fixa (Estática) - Absoluta 
 Inicialmente, os programas só podiam ser carregados e 
executados em apenas uma partição específica, mesmo se 
outras estivessem disponíveis. 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 7 
 Esta limitação se devia aos compiladores e montadores, que 
geravam apenas código absoluto. 
 No exemplo acima, supondo que os programas A e B estivesem 
sendo executados, os programas C e E não poderiam ser 
processados na terceira partição, mesmo esta estando livre. 
 A esse tipo de gerência chamou-se alocação particionada 
estática absoluta. 
 
Com a evolução dos compiladores, montadores, ligadores e 
carregadores, o código gerado deixou de ser absoluto e passou a 
ser relocável. No código relocável, todas as referências a 
endereços no programa são relativas ao início do código e não a 
endereços físicos de memória. Desta forma, osprogramas 
puderam ser executados a partir de qualquer partição. 
 
Figura 4 - Alocação Contígua Particionada Fixa (Estática) - 
Relocável 
 
 Supondo que na partição 1 esteja o programa C, na partição 2 
o programa A e na partição 3 o programa B. Caso os 
programas A e B terminassem, o programa E poderia ser 
executado tanto na partição 2 quanto na partição 3. 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 8 
 Para manter o controle sobre as partições alocadas, a gerência 
de memória mantém uma tabela com o endereço inicial de 
cada partição, seu tamanho, e se está em uso ou não. 
 
Figura 5 – Tabela de Alocação de Partições 
 
 A esse tipo de gerência chamou-se alocação particionada 
estática relocável. 
 Neste esquema de memória, a proteção baseia-se em dois 
registradores, que indicam os limites (inferior e superior) da 
partição onde o programa está sendo executado. 
 
Figura 6 – Proteção na Alocação Particionada 
 
 Tanto nos sitemas de alocação absoluta quanto nos de 
alocação relocável, os programas, normalmente, não preenchem 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 9 
totalmente as partições onde são carregados, deixando área de 
memória livre. Este problema é conhecido como fragmentação 
interna. 
 Um exemplo de sistema operacional que implementou esse tipo 
de gerência de memória é o OS/MFT (Multiprogramming with Fixed 
Number of Tasks) da IBM. 
 
 2.5 - Alocação Contígua Particionada Dinâmica 
 Na alocação particionada dinâmica ou variável, foi eliminado o 
conceito de partições de tamanho fixo. Nesse esquema, cada 
programa utilizaria o espaço necessário, tornando essa área sua 
partição. Como cada programa utiliza apenas o espaço que necessita, 
o programa de fragmentação interna não ocorre. 
 Um outro problema começará a ocorrer, conhecido como 
fragmentação externa. Ele ocorre quando os programas forem 
terminando e deixando espaços cada vez menores na memória, não 
permitindo o ingresso de novos programas. 
 
 
Figura 7 - Alocação Contígua Particionada Dinâmica 
 Existem duas soluções para este problema. O primeiro método 
indica que, conforme os programas terminem, apenas os espaços 
livres adjacentes sejam reunidos, produzindo áreas livres de 
tamanho maior. 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 10 
 
Figura 8 - Primeira Solução para Fragmentação Interna 
 A segunda solução envolve a relocação de todas as partições 
ocupadas, eliminando todos os espaços entre elas e criando uma 
única área livre contígua. Para que esta solução possa ser 
implementada, é necessário que o sistema tenha a capacidade de 
mover os diversos programas na memória principal, ou seja, realizar 
a relocação dinâmica. 
 
Figura 9 - Segunda Solução para Fragmentação Interna 
 Esta técnica de gerenciamento é conhecida como alocação 
particionada dinâmica com relocação. 
 Reduz em muito o problema da fragmentação, porém aumenta 
a complexidade do algoritmo e o consumo de recursos do 
sistema (processador e área de disco). 
 Exemplo de implementação: OS/MVT (Multiprogramming with a 
Variable Number os Tasks) da IBM. 
 
 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 11 
2.6 - Estratégias de Alocação de Partição 
O Sistemas Operacionais implementam, basicamente, três 
estratégias para determinar em qual área livre um programa será 
carregado para execução. A melhor estratégia depende de uma série 
de fatores, como o tamanho dos programas a serem processados. 
Independente do algoritmo utilizado, o sistema possui uma lista das 
áreas livres, com o endereço e o tamanho de cada área. 
 
Figura 10 - Estratégias de Alocação de Partição 
Qual partição livre alocar a um processo que pede por um 
tamanho X ? 
 FIRST-FIT: a primeira partição livre onde caibam X bytes é 
escolhida; 
o A procura pode começar sempre no início da lista, ou a 
partir do último bloco alocado (“next-fit”). 
 BEST-FIT: a partição livre de tamanho mais parecido com X 
bytes é escolhida (sendo igual ou maior do que X); 
o Pode se aproveitar da ordenação da lista de área livres. 
o Pode aumentar o problema de fragmentação. 
 WORST-FIT: a maior a partição livre é escolhida; 
o Diminui o problema de fragmentação, pois deixa espaços 
livres maiores. 
 
UNIBAN Sistemas Operacionais 
 
 
Gerência de Memória 12 
 
Figura 11 – Exemplo de Uso das Estratégias de Alocação de Partição

Outros materiais