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
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.
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
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