Arquitetura de Sistemas
Operacionais
Captulo 9
Gerncia de Memria
Gerncia de Memria
Sumrio
Introduo
Funes bsicas
Alocao contgua simples
Tcnica de overlay
Alocao Particionada
Alocao Particionada Esttica
Alocao Particionada Dinmica
Estratgias de Alocao de Partio
Swapping
Gerncia de Memria
Introduo
Historicamente,
a
memria
principal
sempre foi vista como um recurso escasso
e caro.
Uma das maiores preocupaes dos
projetistas
era
desenvolver
sistemas
operacionais que no ocupassem muita
memria e, ao mesmo tempo, otimizassem
a sua utilizao.
Enquanto nos sistemas monoprogramveis
a gerncia de memria no muito
complexa, nos sistemas multiprogramveis
ela se torna crtica.
Gerncia de Memria
Funes Bsicas
Manter o maior nmero de processos
na memria
Maximizar o compartilhamento da UCP
e demais recursos
Swapping
Execuo de programas maiores que
memria disponvel
Proteo
Compartilhamento
Gerncia de Memria
re a p a ra
p ro g ra m a
Gerncia de Memria
Registrador delimita
as reas do Sist. Op.
e do usurio
(proteo).
Uso ineficiente do
espao, somente um
usurio ocupando-o.
R e g i s tr a d o r
re a p a ra
p ro g ra m a
Gerncia de Memria
Pro g ra m a
d o u s u r io
r e a liv r e
Gerncia de Memria
Arquitetura
de Sistemas Operacionais Machado/Maia
Arquitetura de
Machado/Maia
Tcnica de Overlay
Tcnica de Overlay
Na alocao contgua simples, todos os programas esto
limitados ao tamanho da rea de memria principal disponvel
para o usurio.
Uma soluo encontrada para o problema dividir o programa
em mdulos, de forma que seja possvel a execuo
independente de cada mdulo, usando uma mesma rea de
memria. Essa tcnica chamada de overlay.
Considere um programa que tenha trs mdulos: um
principal, um de cadastramento e outro de impresso, sendo
os mdulos de cadastramento e impresso independentes.
Esta independncia significa que quando um dos mdulos
estiver na memria para execuo, o outro no precisa
necessariamente estar presente tambm.
O mdulo principal comum aos dois mdulos, logo, deve
permanecer na memria durante toda a execuo do
programa.
Gerncia de Memria
Arquitetura
de Sistemas Operacionais
Machado/Maia
ASO
Machado/Maia
complem. porSidney
Lucena (UNIRIO)
Tcnica de Overlay
A tcnica de overlay permite que mdulos independentes de um
mesmo programa sejam carregados numa mesma rea de
memria em momentos diferentes.
M e m r ia P r in c ip a l
2 Kb
reas de overlay
definidas pelo
programador.
S is te m a O p e r a c io n a l
C a d a s tr a m e n to
3 Kb
M d u lo p r in c ip a l
4 Kb
4 Kb
re a d e o v e rla y
Im p re ss o
2 Kb
1 Kb
r e a liv r e
re a n o
u til iz a d a
Gerncia de Memria
2 Kb
Expande limites da
memria principal.
No possui
compartilhamento
por usurio.
9
Arquitetura
de Sistemas Operacionais Machado/Maia
Arquitetura de
Machado/Maia
Tcnica de Overlay
Tcnica de Overlay
A definio das reas de overlay funo do
programador da aplicao, atravs de
comandos especficos da linguagem de
programao utilizada.
O tamanho de uma rea de overlay
estabelecido a partir do tamanho do maior
mdulo.
A tcnica de overlay tem a vantagem de
permitir ao programador expandir os limites
da memria principal.
O uso desta tcnica exige cuidado pois pode
trazer problemas devido possibilidade de
transferncia excessiva de mdulos entre a
memria principal e a secundria.
Gerncia de Memria
10
Arquitetura
de Sistemas Operacionais Machado/Maia
Arquitetura de
Machado/Maia
11
(UNIRIO)
Arquitetura
de Sistemas Operacionais
Machado/Maia
ASO Machado/Maia
complem. por Sidney
Lucena
Ta m a n h o
2 Kb
5 Kb
8 Kb
S is te m a O p e r a c i o n a l
P r o g r a m a s a s e r e m e x e c u ta d o s :
E
3 Kb
6 Kb
1 Kb
4 Kb
2 Kb
Gerncia de Memria
P a r ti o 1
2 Kb
P a r ti o 2
5 Kb
P a r ti o 3
8 Kb
12
13
M e m r ia P r in c ip a l
S is te m a O p e r a c io n a l
C
1 Kb
2 Kb
3 Kb
4 Kb
P a r ti o 1
2 Kb
P a r ti o 2
5 Kb
P a r ti o 3
8 Kb
6 Kb
Gerncia de Memria
14
Gerncia de Memria
15
Gerncia de Memria
S is te m a O p e r a c io n a l
6 Kb
3 Kb
Pro g ra m a C
2 Kb
Pro g ra m a A
5 Kb
Pro g ra m a B
8 Kb
16
17
Tabela de Alocao de
Parties
P/manter controle das parties, gerada uma tabela de
alocao.
M e m r ia P r in c ip a l
P a r ti o
Ta m a n h o
Livr e
2 Kb
N o
5 Kb
S im
8 Kb
N o
Gerncia de Memria
S is te m a O p e r a c io n a l
1
Pro g ra m a C
r e a liv r e
Pro g ra m a B
18
E n d e r e o in ic ia l
E n d e r e o fi n a l
Gerncia de Memria
19
6 Kb
4 Kb
3 Kb
Pro g ra m a E
5 Kb
Gerncia de Memria
20
Gerncia de Memria
21
2 Kb
3 Kb
1 Kb
4 Kb
M e m r ia P r in c ip a l
M e m r ia P r in c ip a l
S is te m a O p e r a c io n a l
S is te m a O p e r a c io n a l
Pro g ra m a B
4 Kb
Pro g ra m a C
1 Kb
Pro g ra m a E
3 Kb
Pro g ra m a A
2 Kb
15 Kb
5 Kb
Gerncia de Memria
22
4 Kb
Pro g ra m a C
3 Kb
D
6 Kb
Pro g ra m a A
5 Kb
Gerncia de Memria
23
M e m r ia P r in c ip a l
S is te m a O p e r a c io n a l
S is te m a O p e r a c io n a l
4 Kb
8 Kb
Pro g ra m a C
3 Kb
Pro g ra m a A
Pro g ra m a A
5 Kb
Gerncia de Memria
5 Kb
24
M e m r ia P r in c ip a l
S is te m a O p e r a c io n a l
S is te m a O p e r a c io n a l
Pro g ra m a C
4 Kb
Pro g ra m a C
Pro g ra m a A
R e lo c a o
3 Kb
Pro g ra m a A
12 Kb
5 Kb
Gerncia de Memria
25
Estratgias de Alocao
Gerncia de Memria
26
Estratgias de Alocao
Lista de reas Livres
M e m r ia P r in c ip a l
S is te m a O p e r a c io n a l
r e a s liv r e s
Ta m a n h o
4 Kb
5 Kb
3 Kb
r e a liv r e 1
4 Kb
Pro g ra m a C
r e a liv r e 2
5 Kb
Pro g ra m a A
r e a liv r e 3
Gerncia de Memria
3 Kb
27
S is te m a O p e r a c io n a l
Pro gra m a C
Pro g ra m a C
Pro gra m a A
Pro g ra m a A
4 Kb
F
1 Kb
5 Kb
Pro g ra m a F
3 Kb
Gerncia de Memria
r e a liv r e
2 Kb
28
Estratgias de Alocao
-Worst-Fit
Partio escolhida aquela em que o programa deixa o maior
espao sem utilizao.
M e m r ia P r in c ip a l
S is te m a O p e r a c io n a l
S is te m a O p e r a c io n a l
4 Kb
Pro g ra m a C
( b ) W o r s t- fi t
Pro gra m a C
Pro g ra m a F
F
1 Kb
5 Kb
r e a liv r e
Pro g ra m a A
4 Kb
Pro g ra m a A
3 Kb
Gerncia de Memria
29
S is te m a O p e r a c io n a l
P ro g ra m a F
4 Kb
r e a liv r e
Pro g ra m a C
Pro g ra m a C
Pro g ra m a A
Pro g ra m a A
3 Kb
F
1 Kb
5 Kb
3 Kb
Gerncia de Memria
30
Swapping
Problema: e se no houver memria RAM suficiente para
acomodar todos os processos?
Soluo: realizar uma troca de processos, ou swapping.
Um dos processos em RAM deslocado para uma memria
secundria (swap out) e d lugar ao novo processo (swap in).
Opta-se por remover o processo em wait com menos chance de ser
executado (possivelmente pode optar por um processo em ready).
Uma rea do disco passa a ser usada como memria secundria
(rea de swap).
Mais tarde, o processo swapped out escalonado e, ento,
swapped in, voltando a ser executado.
Gerncia de Memria
31
Swapping
Mesmo com o aumento da eficincia da multiprogramao e,
particularmente, da gerncia de memria, muitas vezes um
programa no podia ser executado por falta de uma partio
livre disponvel.
A tcnica de swapping foi introduzida para contornar o
problema da insuficincia de memria principal.
Em todos os esquema apresentados anteriormente, um
processo permanecia na memria principal at o final da sua
execuo, inclusive nos momentos em que esperava por um
evento, como uma operao de leitura ou gravao.
O swapping uma tcnica aplicada gerncia de memria
para programas que esperam por memria livre para serem
executados.
Neste caso, o sistema escolhe um processo residente, que
transferido da memria principal para a secundria (swap
out), geralmente disco.
Posteriormente, o processo carregado de volta da memria
secundria para a principal (swap in) e pode continuar sua
execuo como se nada tivesse acontecido.
Gerncia de Memria
32
Swapping
Para que a tcnica de swapping seja
implementada, essencial que o sistema
oferea um loader que implemente a
relocao dinmica de programas.
Um loader relocvel que no oferea esta
facilidade permite que um programa seja
colocado em qualquer posio de memria,
porm a relocao realizada apenas no
momento do carregamento.
No caso do swapping, um programa pode
sair e voltar diversas vezes para a memria,
sendo necessrio que a relocao seja
realizada pelo loader a cada carregamento.
Gerncia de Memria
33
Swapping
Necessrio haver relocao
dinmica.
Permite maior
compartilhamento.
M e m r ia P r in c ip a l
S is te m a
O p e r a c io n a l
Pro g ra m a A
Pro g ra m a B
Pro g ra m a E
Sw ap out
Pro g ra m a G
B
M e m r ia P r in c ip a l
S is te m a
O p e r a c io n a l
Problema: no havendo
espao para crescimento ou
relocao, e/ou a rea de swap
estiver cheia, o processo poder
ficar em estado de espera ou ser
terminado.
Gerncia de Memria
Pro g ra m a A
Pro g ra m a H
Pro g ra m a E
B
S w a p in
r e a L iv r e
A r q u iv o
de Sw ap
34
Swapping
A relocao dinmica realizada atravs de um registrado
especial denominado registrador de relocao.
No momento em que o programa carregado na memria, o
registrador recebe o endereo inicial da posio de memria
que o programa ir ocupar.
Toda vez que ocorrer a referncia a algum endereo, o
endereo contido na instruo ser somado ao contedo do
registrador gerando, assim, o endereo fsico.
Dessa forma, um programa pode ser carregado em qualquer
posio de memria.
O conceito de swapping permite uma maior compartilhamento
da memria principal e, consequentemente, maior uso dos
recursos do sistema computacional.
Seu maior problema o elevado custo das operaes de
entrada/sada (swap in/ou).
Em situaes crticas, quando h pouca memria, disponvel,
o sistema pode ficar quase que dedicado execuo de
swapping, deixando de realizar outras tarefas e impedindo a
execuo de processos residentes.
Gerncia de Memria
35
Swapping
Relocao Dinmica
R e g i s tr a d o r d e R e lo c a o
E n d e r e o in c ia l
d a p a r ti o
I n s tr u o
C d ig o d e
o p e ra o
E n d e re o
E n d e re o d e
m e m r ia
Gerncia de Memria
36