Anda di halaman 1dari 7

GERENCIAMENTO DE MEMRIA

1 Introduo
Historicamente, a memria principal sempre foi vista como um recurso escasso
e caro. Uma das maiores preocupaes dos projetistas foi desenvolver sistemas
operacionais que no ocupassem muito espao de memria e, ao mesmo tempo,
otimizassem a utilizao dos recursos computacionais. Mesmo atualmente, com a
reduo do custo e o aumento considervel da capacidade da memria principal, seu
gerenciamento dos fatores mais importantes no projeto e implementao dos sistemas
operacionais.
O Sistema Operacional tem como principal funo gerenciar a hierarquia de
memria. A parte do SO responsvel por essa funo chamada de gerenciamento de
memria. Entre as funes do gerenciador de memria est em controlar as partes de
memria utilizada e as partes no utilizadas, alocar (disponibilizar) memria para os
processos, desalocar (retirar) memria de processos e gerenciar a troca entre memria
principal (primria) e memria secundria.

Hierarquia de Memria

Basicamente, o gerenciamento da memria a ferramenta utilizada para


permitir aos programas em execuo no computador utilizarem a memria do
computador para armazenar as instrues e dados que sero manipulados.
Os principais objetivos a serem alcanados no gerenciamento da memria so:

Oferecer uma rea de armazenamento para os processos serem


executados;

Proteger a execuo dos processos contra eventuais falhas causadas por


erro em um determinado processo;

Criar um ambiente de execuo com desempenho satisfatrio aos


usurios;
Alm dessas caractersticas, adicionalmente deseja-se de um bom gerenciador:

Compartilhamento da memria entre os processos (em sistemas


avanados);

Permitir aos programadores desenvolverem programas que tenham um


acesso transparente memria do computador.
21

Nos sistemas operacionais modernos, o gerenciamento da memria realizar


essas tarefas atravs da Proteo da Memria.

2. Gerenciamento Bsico de Memria


O esquema mais simples de gerenciamento de memria foi implementado nos
primeiros Sistemas Operacionais, porm ainda est presente em alguns sistemas
monoprogramveis. Este esquema chamado por alguns autores como alocao
contgua.
Basicamente, a memria principal disponvel dividida entre o Sistema
Operacional e o programa em execuo. Como este esquema de gerenciamento
utilizado em sistemas monoprogramveis, temos apenas um processo em execuo por
vez.

Esquema Bsico de gerenciamento de memria

Neste tipo de gerenciamento, o usurio tem acesso a toda memria principal,


inclusive o espao do Sistema Operacional. possvel proteger a rea de memria do
Sistema Operacional utilizando registradores delimitadores de rea de usurio e do
SO.Assim, os programas esto limitados ao tamanho de memria principal disponvel.
Uma tcnica conhecida como overlay, permite que um programa seja dividido em
mdulos, de forma que seja possvel a execuo independente de cada mdulo,
utilizando uma mesma rea de memria.
PRONATEC/SEDUC-PI

3. Gerencia de Memria para Multiprogramao


Atualmente, os sistemas multiprogramveis so amplamente mais utilizados do
que os sistemas monoprogramveis, devido a maior eficincia do uso do processador,
pois permitem que mltiplos processos executem simultaneamente.
A forma mais simples de gerenciar memria em sistemas multiprogramveis
dividindo a memria principal em parties estticas e com tamanhos definidos,
estabelecidas na fase de inicializao do sistema. Esse tipo de gerncia chamado por
alguns autores por alocao particionada esttica ou alocao fixa.
Quando um processo chega, ele colocado em uma fila de entrada da partio
menor capaz de armazen-lo. Como o esquema prev que a partio fixa, se o
processo no ocupar o espao total da sua partio, o resto de espao desperdiado.
22

Esquema de gerencia de memria para multiprogramao com Parties Fixas.

Assim, os programas eram carregados em uma partio especfica. Em algumas


situaes, possvel que uma determinada fila exista uma quantidade grande de
processos esperando pela partio enquanto que em outras filas de partio no exista
nenhum processo. Isso era uma grande desvantagem para o sistema.
Por exemplo, na Figura acima podemos verificar que a partio 4 possui trs
processos em espera, enquanto que na partio 2 no existe nenhum processo. Essa
partio poderia, assim, ser utilizado por um desses processos na fila.
Dessa forma, uma soluo para tentar contornar esse problema implementar
este mtodo com uma nica fila. Assim, quando uma determinada partio estivesse
livre, o processo mais prximo do incio da fila que melhor se ajusta essa partio
poderia ser carregado nela. Este mtodo mostrado na Figura abaixo.

Mtodo de parties fixas com nica fila.

Este mtodo de gerncia de memria baseado em parties fixas, de uma forma


ou de outra, gera um grande desperdcio de memria, posto que, um processo ao ser
23

carregado em uma partio, se ele no ocupa todo o seu espao, o restante no poder
ser utilizado por nenhum outro processo.
Para evitar esse desperdcio, foi desenvolvido um esquema de gerenciamento e
alocao de memria dinamicamente, dependendo da necessidade do processo. Este
esquema conhecido como alocao com parties variveis.
Alocao com Parties Variveis
Quando o mtodo de alocao de parties variveis utilizado, o tamanho das
parties de memria ajustado dinamicamente medida que os processos vo
chegando.
Nesse tipo de esquema, o processo utilizar um espao de memria necessrio,
tornando esse espao sua partio. Isto resolve o problema da fragmentao, pois as
parties passaro a ser definidas a partir da alocao dos processos na memria.
O mtodo bem simples. Observe atravs da Figura abaixo, que um processo
A ao chegar, carregado na memria e o seu tamanho define do tamanho da sua
partio. O processo B e C, de forma anloga, so carregados no espao livre, ainda
disponvel. Ao chegar o processo D, no existe espao livre contnuo suficiente para ele
ser carregado.

Esquema de Alocao com Parties Variveis.

Note que, para inserir o novo processo D na memria foi preciso retirar o
processo A, a fim de o espao de memria suficiente seja disponibilizado para o novo
processo. Assim, o processo A atualizado em disco e o processo D carregado em
memria principal, podendo executar suas atividades.
Este processo de retirar um processo de memria, atualizar em disco e colocar
outro no lugar chamado, segundo Tanenbaum, por mtodo de Troca.
A troca consiste em trazer um processo inteiro, executa-lo temporariamente e,
ento, devolve-lo ao disco. Isto acontece quando a memria principal disponvel
insuficiente para manter todos os nossos processos carregados (situao que seria a
tima).
Existe outra estratgia, que permite que apenas parte do programa fique em
memria principal. Esta estratgia, bem mais complexa que a troca, conhecida como
Memria Virtual.
O mtodo de alocao dinmica da partio bem mais flexvel que o mtodo
de alocao esttica. Porm, essa flexibilidade tambm complica mais a tarefa de alocar
e desalocar a memria, assim como a monitorao da memria utilizada. O Sistema
Operacional tem a funo de gerenciar essa memria. De modo geral, h duas maneiras
de monitorar o uso da memria: atravs do mapa de bits e listas encadeadas.
24

Gerenciamento de Memria com Mapa de Bits


Com o mapa de bits, a memria dividida em unidades de alocao e para
cada unidade associado um bit no mapa. Se este bit estiver com valor 0 implica que
esta unidade de alocao est vazia. Se este bit estiver com valor 1 implica que esta
unidade de alocao est preenchida por algum processo.
Atravs da Figura abaixo mais fcil compreender como essa estratgia de
gerenciamento funciona. Considere a memria, particionada em XX unidades de
alocao, com processos e espaos vazios (lacunas). O mapa de bits dessa memria
ser configurado como mostrado na figura.

Memria dividida em unidade de alocao e o Mapa de bits correspondente

O ponto crucial do mapa de bits a definio do tamanho da unidade de


alocao. Se ele for muito pequeno, o mapa de bits poder ser muito grande. Se a
unidade for muito grande, o mapa de bits ser menor, mas uma quantia de memria
poder ser desperdiada na ltima unidade se o tamanho do processo no for um
mltiplo exato da unidade de alocao.
Gerenciamento de Memria com Listas Encadeadas
Outra estratgia manter uma lista encadeada dos segmentos de memria
alocados e livres, onde um segmento pode ser um processo ou lacuna entre dois
processos.
Assim, cada n da lista seria formado por uma entrada especificando se um
processo (P) ou uma lacuna (L), o endereo de onde se inicia a quantidade de unidades
de alocao e um ponteiro para a prxima entrada. A Figura abaixo ilustra a mesma
memria gerenciada atravs de listas encadeadas.

Memria dividida em unidade de alocao, monitorada atravs de lista encadeada


25

Memria Virtual
Em 1961, Fotheringham desenvolveu um mtodo conhecido como memria
virtual. O principal objetivo desta tcnica estender a memria principal atravs de
memria secundria, dando impresso ao usurio que ele tem a disposio uma
quantidade de memria maior do que a memria real disponvel. Em outras palavras,
para facilitar o entendimento, a tcnica de memria virtual disponibiliza para o usurio
uma memria de trabalho maior do que a memria principal (RAM). Esse espao de
memria adicional implementado em disco conhecido como memria de swap.
Os primeiros sistemas operacionais implementavam tcnicas rudimentares de
memria virtual, que em comparao com os sistemas proprietrios, em que os
programas gerenciavam sua prpria memria, tinham um desempenho abaixo do
desejado para justificar uma substituio. Foi a IBM no final da dcada de 1960 que
oficializou a adoo da memria virtual nos computadores ao lanar alguns modelos
que utilizavam esse recurso. A partir de ento, todas as empresas passaram a implantar
nos sistemas operacionais a capacidade de gerenciamento da memria atravs da
Memria Virtual.
A utilizao de memria virtual em um sistema computadorizado depende
principalmente da arquitetura do computador, mais especificamente, do modo de
endereamento de memria utilizado pelo processador. A Intel, desenvolvedora dos
processadores Pentium, adotou o recurso de memria virtual em seus processadores em
1982 com o lanamento do modelo 80286. A Microsoft passou a utilizar o recurso de
memria virtual apenas em 1990, no lanamento do MS-Windows 3.
Assim, o Sistema Operacional deve manter parte do programa que est em uso
na memria principal e parte dele na memria swap. Na multiprogramao, partes de
vrios processos podem ser mantidas em memria principal e partes em memria swap.
Paginao
Segundo Silberstchaz, a paginao um esquema de gerenciamento de
memria em que o espao de endereamento fsico (endereos de memria principal) de
um processo no contguo. A paginao, assim, evita o problema da fragmentao
externa gerado pela alocao de memria dinmica.
Os programas so capazes de gerar endereos, chamados de endereos
virtuais. Esse conjunto de endereos forma o que chamamos de espao de
endereamento virtual.
Em sistemas que no utilizam a tcnica de memria virtual, o endereo virtual
equivale ao endereo fsico, especificando exatamente onde o programa ser
armazenado na memria principal.
Em computadores que utilizam a tcnica de memria virtual, os endereos
virtuais no vo diretamente para o barramento de memria. Primeiramente, ele passa
por uma unidade chamada de Unidade de Gerenciamento de Memria (MMU
Memory Management Unit). A MMU tem como funo mapear um endereo virtual
para um endereo lgico. Adiante, o espao de endereamento virtual dividido em
unidade chamadas de pginas.
A memria principal tambm dividida em unidades, do mesmo tamanho das
pginas, chamadas de molduras de pgina (quadro). Assim, num sistema que contm
pginas de 4k, as molduras tambm sero de 4k.
Considere a Figura abaixo, com o espao de endereo virtual formado de 64k e
o a memria fsica de 32k, com pginas de molduras de 4k.Note atravs da figura, que
temos 16 pginas virtuais e 8 molduras de pginas. Quando um programa tenta acessar
um endereo virtual, este passado para a MMU, que vai analisar o mapeamento deste
endereo e descobrir a qual moldura pertence. A MMU mapeia este endereo virtual
para o endereo fsico, que, por fim, colocado no barramento de memria.
26

Tcnica de Paginao

EXERCICIO
1.Qual a funo do gerenciador de memria de um Sistema Operacional.
2.Como funciona o gerenciamento bsico de memria.
3.Como funciona o gerenciamento de memria para multiprogramao por
alocao particionada esttica.
4.Explique a tcnica overlay
5.Como funciona o gerenciamento de memria para multiprogramao por
alocao com parties variveis e qual sua vantagem com relao s parties fixas.
6.Diferencie as abordagens de gerenciamento de memria baseado por
troca e memria virtual.
9. Quais os benefcios oferecidos pela tcnica de memria virtual? Como este
conceito permite que um programa e seus dados ultrapassem os limites da memria
principal?
10. Defina Paginao
11. Explique o gerenciamento de memria com mapa de bits.

27

Anda mungkin juga menyukai