Você está na página 1de 56

1

Gerncia de Memria
Disciplina: Sistema Operacional 2
Prof. Wellington Roqe
2
!ntrod"#o

$istoricamente% a memria principal sempre como


m recrsos escasso e caro&

'ma das maiores preocpa"(es dos pro)etisitas foi


desen*ol*er sistemas operacionais qe n#o
ocpassem mito espa"o de memria e% ao mesmo
tempo% otimi+assem a tili+a"#o dos recrsos
comptacionais&
,
!ntrod"#o

Mesmo atalmente% com a red"#o de csto e


conseqentemente amento da capacidade da
memria principal% se gerenciamento - m dos
fatores mais importantes no pro)eto de sistemas
operacionais&

.os sistemas mltiprogram/*eis a principal


dificldade - ma0imi+ar o n1mero de s/rios e
aplica"(es tili+ando eficientemente o espa"o de
memria principal&
2
3n"(es 4/sicas

5 gerncia da memria principal de*e manter na


memria principal o maior n1mero de processos
residentes% permitindo ma0imi+ar o
compartil6amento do processador e demais recrsos
comptacionais&
7
3n"(es 4/sicas

Otra preocpa"#o - permitir a e0ec"#o de


programas qe se)am maiores qe a memria f8sica
dispon8*el&

9m m am4iente mltiprogram*el% o sistema


operacional de*e proteger as /reas da memria
ocpadas por cada processo% al-m da /rea onde
reside o prprio sistema&
:
5loca"#o cont8ga simples

3oi implemenatada nos primeiros sistemas


operacionais% por-m ainda est/ presente em algns
sistemas monoprogram/*eis&

.este tipo de organi+a"#o% a memria principal -


s4di*idada em das /reas: ma para o sistema
operacional e otra para o programa do s/rio%
como pode ser o4ser*ado na 3igra 1&
;
5loca"#o cont8ga simples
3igra 1 < 5loca"#o cont8ga simples.
=
5loca"#o cont8ga simples

.esse esqema% o s/rio tem controle so4re toda


memria principal% podendo ter acesso a qalqer
posi"#o de memria% inclsi*e a /rea do sistema
operacional&

Para proteger o sistema desse tipo de acesso% qe


pode ser intencional o n#o% algns sistemas
implementam prote"#o atra*-s de m registrador
qe delimita as /reas do sistema operacional e do
s/rio% 3igra 2&
>
5loca"#o cont8ga simples
3igra 2 < Prote"#o na aloca"#o cont8ga simples.
1?
5loca"#o cont8ga simples

5pesar da f/cil implemte"#o e do cdigo red+ido% a


aloca"#o cont8ga simples n#o permite a tili+a"#o
eficiente dos recrsos comptacionais% pois apenas
m ss/rio pode dispor desses recrsos&

@aso o programa n#o preenc6a totalmente a


memria principal e0istira m espa"o de memria
li*re sem tili+a"#o% 3igra ,&
11
5loca"#o cont8ga simples
3igra , < S4tili+a"#o da memria principal.
12
A-cnica de O*erlaB

.a aloca"#o cont8ga simples todos os programas


est#o limitados ao taman6o da /rea de memria
principal dispon8*el para o s/rio&

'ma sol"#o encontrada - di*idir o programa em


mdlos% de forma qe se)a poss8*el a e0ec"#o
independente de cada mdlo% tili+ando ma
mesma /rea de memria% est/ t-cnica - c6amada de
o*erlaB&
1,
A-cnica de O*erlaB

@omo podemos *erificar na 3igra 2% a memria -


insficiente para arma+enar todo o programa&

5 t-cnica de o*erlaB tili+a ma /rea de memria


comm% onde os mdlos de cadastramento e
impress#o poder#o compartil6ar a mesma /rea de
memria Co*erlaBD&
12
A-cnica de O*erlaB
3igra 2 < A-cnica de o*erlaB.
17
5loca"#o particionada

Os sistemas mltiprogram/*eis )/ s#o mito mais


eficintes no so do processador% necessitando%
assim% qe di*ersos programas este)am na memria
principal ao mesmo tempo e qe no*as formas de
gerncia da memria se)am implementadas&
1:
5loca"#o particionada est/tica

.os primeiros sistemas mltiprogram/*eis% a


memria era di*idida em peda"os de taman6o f8sico%
c6amados parti"(es&

O taman6o das parti"(es% esta4elecido na fase de


iniciali+a"#o do sistema% era definido em fn"#o do
taman6o dos programas qe e0ectariam no
am4iente&
1;
5loca"#o particionada est/tica

Sempre qe fosse necess/ria a altera"#o do taman6o


de ma parti"#o% o sistema de*eria ser desati*ado e
reiniciali+ado com ma no*a configra"#o&

9sse tipo de gerncia de memria - con6ecido como


aloca"#o particionada est/tica o fi0a% 3igra 7&
1=
5loca"#o particionada est/tica
3igra 7 < 5loca"#o particionada est/tica.
1>
5loca"#o particionada est/tica

!nicialmente% os programas s podiam ser


carregados e e0ectados em apenas ma parti"#o
espec8fica% mesmo se otras esti*essem dispon8*eis&

9ssa limita"#o se de*ia aos compiladores e


montadores qe gera*am apenas cdigo a4solto&
2?
5loca"#o particionada est/tica

.o cdigo a4solto todas as referncias a endere"os


no programa s#o posi"(es f8sicas na memria
principal% o se)a% o programa s poderia ser
carregado a partir do endere"o de memria
especificado no se prprio cdigo&

Se% por e0emplo% os programas 5 e E esti*essem


sendo e0ectados e a terceira parti"#o esti*esse
li*re% os programas @ e 9 n#o poderiam ser
processados% 3igra :&
21
5loca"#o particionada est/tica

5 esse tipo de gerncia de memria c6amaFse


aloca"#o particionada est/tica a4solta&
22
5loca"#o particionada est/tica
3igra : < 5loca"#o particionada est/tica a4solta.
2,
5loca"#o particionada est/tica

@om a e*ol"#o dos compiladores% montadores%


linGers e loaders% o cdigo gerado dei0o de ser
a4solto e passo a ser reloc/*el&

. cdigo reloc/*el% todas as referncias a


endere"os no programa s#o relati*as ao in8cio do
cdigo% e n#o a endere"os f8sicos na memria&

Desta forma% os programas podem ser e0ectados a


partir de qalqer parti"#o&
22
5loca"#o particionada est/tica

Hando o programa - carregado o loader calcla


todos os endere"os a partir da posi"#o inicial onde o
programa foi alocado&

@asos os programas 5 e E terminassem% o programa


9 poderia ser e0ectado em qalqer m das das
parti"(es% 3igra ;&

9sse tipo de gerncia de memria - denominado


aloca"#o particionada est/tica reloc/*el&
27
5loca"#o particionada est/tica
3igra ; < 5loca"#o particioanda est/tica reloc/*el.
2:
5loca"#o particionada est/tica

Para manter o controle so4re qais parti"(es est#o


alocadas% a gerncia de memria mant-m ma ta4ela
com o endere"o inicial de cada parti"#o% se
taman6o e se est/ em so% 3igra =&

Sempre qe m programa - carregado para a


memria% o sistema percorre a ta4ela% na tentati*a de
locali+ar m parti"#o li*re onde o programa possa
ser carregado&
2;
5loca"#o particionada est/tica
3igra = < Aa4ela de aloca"#o de parti"(es.
2=
5loca"#o particionada est/tica

.esse esqema de aloca"#o de memria a prote"#o


4aseiaFse em dois registradores% qe indicam os
limites inferior e sperior da parti"#o onde o
programa est/ sendo e0ectado% 3igra >&

@aso o programa tente acessar ma posi"#o de


memria fora dos limites definidos pelos
registradores% ele - interrompido e ma mensagem
de *iola"#o de acesso - gerada pelo sistema
operacional&
2>

3igra > < Prote"#o na aloca"#o particionada.
@liqe para 5loca"#o particionada
est/ticaadicionar o t8tlo
,?
5loca"#o particionada est/tica

Aanto nos sistemas de aloca"#o a4solta qanto nos


de aloca"#o reloc/*el os programas% normalmente%
n#o preenc6em totalmente as parti"(es onde s#o
carregados&

Por e0emplo% os programas @% 5 e 9 n#o ocpam


integralmente o espa"o das parti"(es onde est#o
alocados% dei0ando 1I4% ,I4 e 7I4 de /reas li*res
respecti*amente% 3igra 1?&
,1
5loca"#o particionada est/tica

9sse tipo de pro4lema% decorrente da aloca"#o fi0a


das parti"(es% - con6ecido como fragmenta"#o
interna&
,2
5loca"#o particionada est/tica
3igra 1? < 3ragmenta"#o interna.
,,
5loca"#o particionada dinJmica

3oi eliminado o conceito de parti"(es de tamn6o


fi0o&

@ada programa tili+aria o espa"o necess/rio%


tornando essa /rea sa parti"#o% 3igra 11&

@omo os programas tili+am apenas o espa"o de qe


necessitam% no esqema de aloca"#o particionada
dinJmica o pro4lema de fragmenta"#o interna n#o
ocorre&
,2
5loca"#o particionada dinJmica
3igra 11 < 5loca"#o particionada dinJmica.
,7
5loca"#o particionada dinJmica

'm diferente tipo de fragmenta"#o come"ar/ a


ocorrer% qando os programas forem terminando e
dei0ando espa"os cada *e+ menores na memria%
n#o permitindo o ingresso de no*os programas&

.o caso da 3igra 12% mesmo e0istindo 12I4 li*res


de memria principal o programa D% qe necessita
de : I4 de espa"o% n#o poder/ ser carregado para
e0ec"#o% pois esse espa"o n#o esta disposto
contigamente&
,:
5loca"#o particionada dinJmica

9sse tipo de pro4lema - con6ecido como


fragmenta"#o e0terna&
,;
5loca"#o particionada dinJmica
3igra 12 < 3ragmenta"#o e0terna.
,=
5loca"#o particionada dinJmica

90istem das sol"(es para esse pro4lema&

.a primeira sol"#o% conforme os programas


terminam paenas os espa"os li*res ad)acentes s#o
renidos% prod+indo /reas li*res de taman6o maior&

.a 3igra 1,% caso o programa @ termine% ma /rea


de = I4 - criada&
,>
5loca"#o particionada dinJmica
3igra 1, < Sol"#o para fragmenta"#o e0terna CaD.
2?
5loca"#o particionada dinJmica

5 segnda sol"#o en*ol*e a reloca"#o de todas as


parti"(es ocpadas% eliminando todos os espa"os
entre elas e criando ma 1nica /rea li*re cont8ga%
3igra 12&

Para qe esse processo se)a poss8*el - necess/rio


qe o sistema ten6a capacidade de mo*er os
di*ersos programas na memria principal% o se)a%
reali+ar reloca"#o dinJmica&
21
5loca"#o particionada dinJmica
3igra 12 < Sol"#o para fragmenta"#o e0terna C4D.
22
9strat-gias de 5loca"#o de Parti"#o

5 mel6or estrat-gia a ser adotada por m sistema


depende de ma s-rie de fatores% sendo o mais
importante o taman6o dos programas processados
no am4iente&

!ndependente do algoritmo tili+ado% o sistema


possi ma lista de /reas li*res% com o endere"o e
taman6o de cada /rea% 3igra 17&
2,
9strat-gias de 5loca"#o de Parti"#o
3igra 17 < 5loca"#o cont8ga simples.
22
9strat-gias de 5loca"#o de Parti"#o

Best-fit < 5 mel6or parti"#o - escol6ida% o se)a%


aqela em qe o programa dei0a o menor espa"o
sem tili+a"#o% 3igra 1: CaD&

.esse algoritmo% a lista de /reas li*res est/ ordenada


por taman6o% diminindo o tempo de 4sca por ma
/rea desocpada&
27
9strat-gias de 5loca"#o de Parti"#o

Worst-fit < 5 pior parti"#o - escol6ida% o se)a%


aqele qe o programa dei0a o maior espa"o sem
tili+a"#o% 3igra 1: C4D&

5pesar de tili+ar as maiores parti"(es% a t-cnica de


KorstFfit dei0a espa"os li*res maiores qe permitem
a m maior n1mero de programas tili+ar a
memria% diminindo o pro4lema de fragmenta"#o&
2:
9strat-gias de 5loca"#o de Parti"#o

First-fit < 5 primeira parti"#o li*re de taman6o


sficiente para carregar o prgrama - escol6ida%
3igra 1: CcD&

.esse algoritmo% a lista de /reas li*res est/ ordenada


por endere"os crescentemente&
2;
3igra 1: < 9strat-gia para escol6a da parti"#o.
2=
SKapping

Mesmo com o amento da eficincia da


mltiprograma"#o e% particlarmente% da gerncia de
memria% mitas *e+es m programa n#o podia ser
e0ectado por falta de ma parti"#o li*re dispon8*el&

5 t-cnica de sKapping foi introd+ida para


contornar o pro4lema de insficincia de memria
principal&
2>
SKapping

9m todos os esqemas apresentados anteriormente%


m processo permanecia na memria principal at- o
final da sa e0ec"#o% inclsi*e nos momentos em
qe espera*a por m e*ento% como ma opera"#o de
leitra o gra*a"#o&

O sKapping - ma t-cnica aplicada L gerncia de


memria para programas qe esperam por memria
li*res para serem e0ectados&
7?
SKapping

.esta sita"#o% o sistema escol6e m processo


residente% qe - transferido da memria principal
para a memria secnd/ria CsKap otD% geralmente
disco&

Psteriormente% o processo - carregado de *olta da


memria secnd/ria para a memria principal CsKap
inD e pode continar sa e0ec"#o como se nada
ti*esse ocorrido% 3igra 1;&
71
SKapping
3igra 1; < SKapping.
72
SKapping

O algoritmo de escol6a do processo a ser retirado da


memria principal de*e priori+ar aqele com
menores c6ances de ser escalonado para e*itar o
sKapping desnecess/rio de m processo qe ser/
e0ectado logo em segida&

Os processos retirados da memria est#o geralmente


em estado de espera% mas ainda e0iste a
possi4ilidade de m processo no estado de pronto
tam4-m ser selecionado para sKapping&
7,
SKapping

Para qe a t-nica de sKapping se)a implementada -


essencial qe o sistema ofere"a m loader qe
implemente a reloca"#o dinJmica de programas&

5 reloca"#o dinJmica - reali+ada atra*-s de m


registrador especial denominado registrador de
relocao;
72
SKapping

.o momento em qe o programa - carregado na


memria% o registrador rece4e o endere"o inicial da
posi"#o de memria qe o programa ocpar/&

Aoda *e+ qe ocorrer ma referncia a algm


endere"o% o endere"o contido na intr"#o ser/
somado ao conte1do do registrador% gerando% assim%
o endere"o f8sico% 3igra 1=&

Dessa forma m programa pode ser carregado em


qalqer posi"#o da memria&
77
SKapping
3igra 1= < Reloca"#o DinJmica.
7:
90erc8cios