Anda di halaman 1dari 36

Arquitetura de Sistemas Operacionais Machado/Maia

Arquitetura de Sistemas
Operacionais
Captulo 9
Gerncia de Memria

Gerncia de Memria

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Contgua Simples


Maneira mais simples: alocao contgua da memria.
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

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.

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Contgua Simples


Proteo - Para proteger esse tipo de acesso, que pode ser
intencional ou no, alguns sistemas implementam proteo
atravs de um registrador que delimita as reas do SO e
do usurio.
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 g i s tr a d o r

re a p a ra
p ro g ra m a

Gerncia de Memria

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Contgua Simples


Subutilizao da memria
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
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

Alocao Particionada Esttica


Nos primeiros sistemas multiprogramveis, a
memria era dividida em pedaos de
tamanho fixo, chamados parties.
O tamanho das parties, estabelecido na
fase de inicializao do sistema, era definido
em funo do tamanho dos programas a
serem executados no ambiente.
Sempre que fosse necessrio a alterao de
tamanho de uma partio, o sistema deveria
ser desativado e reinicializado com uma nova
configurao.
Este tipo conhecido como alocao
particionada esttica ou fixa.
Gerncia de Memria

11

(UNIRIO)
Arquitetura
de Sistemas Operacionais
Machado/Maia
ASO Machado/Maia
complem. por Sidney
Lucena

Alocao Particionada Esttica


Memria dividida em parties fixas, cada processo ocupar
uma determinada partio estabelecida na inicializao do
sistema.
M e m r ia P r in c ip a l
Ta b e la d e p a r ti e s
P a r ti o

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Esttica


Alocao Particionada Esttica Absoluta
Inicialmente, os programas s podiam ser carregados e
executados em apenas uma partio especfica mesmo
que outras estivessem disponveis.
Esta limitao se devia aos compiladores e montadores,
que geravam apenas cdigo absoluto.
No cdigo absoluto, todas as referncias a endereos no
programa so posies fsicas na memria principal, ou
seja, o programa s poderia ser carregado a partir do
endereo de memria especificado no seu prprio
cdigo.
Se, por exemplo, os programas A e B estivessem sendo
executados e a terceira partio estivesse livre, os
programas C e D no poderiam ser processados.
A esse tipo de gerncia chamou-se alocao
particionada esttica absoluta.
Gerncia de Memria

13

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Esttica


Absoluta
Compiladores geram cdigos absolutos, ou seja, todas as
referncias a endereos so posies fsicas na memria
principal.
Programas s podem ser
executados em partio
determinada.

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Esttica

Alocao Particionada Esttica Relocvel


Com a evoluo dos compiladores, montadores, linkers e
loaders, o cdigo gerado deixou de ser absoluto e passa
a ser relocvel.
No cdigo relocvel, todas as referncias a endereos no
programa so relativas ao incio do cdigo e no a
endereos fsicos de memria.
Dessa forma, os programas puderam ser executados a
partir de qualquer partio.
Quando o programa carregado, o loader calcula todos
os endereos a partir da posio inicial onde o programa
foi alocado.
Caso os programas A e B terminassem, o programa E
poderia ser executado em qualquer uma das duas
parties.
Esse tipo de gerncia de memria denominado
alocao particionada esttica relocvel.

Gerncia de Memria

15

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Esttica


Relocvel
Compiladores geram cdigos relocveis, ou seja, todas as
referncias a endereos so posies relativas ao incio do
cdigo
M e m r ia P r in c ip a l

Programas podem ser


executados em qualquer
partio

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Esttica


Tabela de Alocao de Parties
Para manter o controle sobre quais parties
esto alocadas, a gerncia de memria
mantm uma tabela com o endereo inicial
de cada partio, o seu tamanho, e se est
em uso.
Sempre que um programa carregado para
a memria, o sistema percorre a tabela na
tentativa de localizar uma partio livre,
onde o programa possa ser carregado.
Gerncia de Memria

17

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Esttica


Proteo - Nesse esquema de alocao, a proteo baseia-se em
dois registradores, que indicam os limites inferior e superior da
partio onde o programa est sendo executado. Caso o
programa tente acessar uma posio de memria fora dos limites
definidos pelos registradores, ele interrompido e uma
mensagem de violao de acesso gerada pelo SO.
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

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Esttica


Fragmentao Interna - Tanto nos sistemas de alocao absoluta
como nos de alocao relocvel, os programas, normalmente,
no preenchem totalmente as parties onde so carregados.
Esse tipo de problema, decorrente da alocao fixa das parties,
conhecido como fragmentao interna.
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 C
1 Kb
Pro g ra m a A
D

6 Kb

4 Kb

3 Kb

Pro g ra m a E

5 Kb

Gerncia de Memria

20

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Dinmica


A alocao particionada esttica, vista anteriormente,
deixou evidente a necessidade de uma nova forma de
gerncia
de
memria,
onde
o
problema
da
fragmentao
interna
fosse
reduzido
e,
conseqentemente, o grau de compartilhamento da
memria aumentado.
Na alocao particionada dinmica ou varivel, foi
eliminado o conceito de parties de tamanho fixo.
Neste esquema, cada programa usaria o espao
necessrio, tornando essa rea sua partio.
Como os programas usam apenas o espao de que
necessitam, no esquema de alocao particionada
dinmica o problema da fragmentao interna no
ocorre.

Gerncia de Memria

21

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Dinmica


Alocao Particionada Dinmica

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Dinmica

Fragmentao Externa - Porm, um tipo diferente de fragmentao


comear a ocorrer, quando os programas forem terminando e deixando
espaos cada vez menores na memria, no permitindo o ingresso de
novos programas. No caso, mesmo existindo 12 KB livres de memria, o
programa D, que necessita de 6 KB de espao, no poder ser carregado
para execuo. Este tipo de problema chamado de fragmentao
externa.
M e m r ia P r in cip a l
S is te m a O p e r a c i o n a l

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Dinmica


Soluo para a Fragmentao Externa
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

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

Arquitetura de Sistemas Operacionais Machado/Maia

Alocao Particionada Dinmica


Soluo para a Fragmentao Externa
(relocao dinmica)
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 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

Arquitetura de Sistemas Operacionais Machado/Maia

Estratgias de Alocao

Os SOs implementam, basicamente, trs estratgias para determinar


em qual rea livre um programa ser carregado para execuo.
Essas estratgias tentam evitar ou diminuir o problema da
fragmentao externa.
Best-fit nesta, a melhor partio escolhida, ou seja, aquela em que o
programa deixa o menor espao sem utilizao (Fig. 9.16a). Neste
algoritmo, a lista de reas livres est ordenada por tamanho, diminuindo o
tempo de busca por uma rea desocupada. Uma desvantagem deste
mtodo que, como alocada a partio que deixa a menor rea livre, a
tendncia que cada vez mais a memria fique com pequenas reas nocontguas, aumentando o problema da fragmentao.
Worst-fit aqui, a pior partio escolhida, ou seja, aquela em que o
programa deixa o maior espao sem utilizao (Fig. 9.16b). Apesar de usar
as maiores parties, esta tcnica deixa espaos livres maiores que
permitem a um maior nmero de programas usar a memria, diminuindo
o problema da fragmentao.
First-fit a primeira partio livre de tamanho suficiente para carregar o
programa escolhida (Fig. 9.16c). Neste algoritmo, a lista de reas livres
est ordenada crescentemente por endereos. Como o mtodo tenta
primeiro utilizar as reas livres de endereos mais baixos, existe uma
grande chance de se obter uma grande partio livre nos endereos de
memria mais altos. Das trs estratgias apresentadas, a first-fit a mais
rpida, consumindo menos recursos do sistema.

Gerncia de Memria

26

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

Estratgias de Alocao Best-Fit


Partio escolhida aquela em que o programa deixa o menor
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

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

Estratgias de Alocao First-Fit


Partio escolhida primeira livre de tamanho suficiente
para carregar o programa.
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
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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Custo elevado p/operaes de


swap in e swap out.

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Arquitetura de Sistemas Operacionais Machado/Maia

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

Anda mungkin juga menyukai