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&
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
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
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=&