Vous êtes sur la page 1sur 77

Sistemas Operacionais Modernos

Gerncia de Memria

Osmar Ri eiro Leo professor@leao.org

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Moti#a$o
%ro lemas de programas maiores do &"e a memria con#encional '( Sol"$o) Overlays
%rogramas di#ididos em md"los &"e seriam tra*idos a memria "m a cada #e* +ontrole , feito pelo programador

2( Sol"$o) Sistemas Operacionais controlando o acesso


-m '9.'/ 0ot1ering1am crio" "m m,todo c1amada Memria !irt"al O Sistema Operacional apenas mant,m em memria as partes de programa &"e esto sendo e2ec"tadas 3pil1a/ cdigo e dados4
Osmar Leo professor@leao.org

Sistemas Operacionais 2009/2

Memria !irt"al
Moti#a$o
5a sol"$o de memria #irt"al/ ainda podemos di#idir a memria entre di#ersos processos 3m"ltiprograma$o4 +omo temos m"itos 6peda$os7 de programas em memria podemos efet"ar escalonamento para controle das trocas de memria e disco paralelo ao escalonamento de 8+% 9odo programa &"e espera &"e o"tro 6peda$o7 se" se:a tra*ido do disco est; esperando por -/S e de#e ser lo&"eado

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
%agina$o
%agina$o , a id,ia de di#idir a memria em p;ginas de taman1o fi2o com endere$os para cada ;rea < cada pedido de carga de "m endere$o de memria pelo processo 3e2emplo) MO! R-G/'0004 so tra*idos da memria o conte=do do endere$o 3'0004 ao registrador 3R-G4 Os endere$os gerados pelos processos so con1ecidos como endere$os #irt"ais O espa$o de endere$amento #irt"al , o con:"nto de endere$os #irt"ais -m m;&"inas sem endere$amento #irt"al/ o endere$o #irt"al , o mesmo do endere$o f>sico e de#e ser colocado diretamente no arramento de memria
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
%agina$o
?"ando a m;&"ina poss"i endere$os #irt"ais/ o pedido do processo no , colocado diretamente no arramento/ antes ele #ai para a MM8 3Memory Management Unit4 < MM8 6trad"*7 os endere$os #irt"ais em endere$os f>sicos e/ ento/ , repassado ao arramento

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
%agina$o
Os endere$os #irt"ais so con1ecidos simplesmente como p;ginas e os endere$os f>sicos de mold"ras de p;ginas <m os/ p;ginas e mold"ras de p;ginas/ de#em ser do mesmo taman1o 5o e2emplo) MO! R-G/0 3#er a seg"ir4

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
%agina$o

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
%agina$o
< MM8 #erifica &"e o endere$o #irt"al 0 3p;gina 04 corresponde @ mold"ra de p;gina 2 < MM8 6trad"*7 o pedido de 0A 3endere$o4 para BA 3B'924 <ps a 6trad"$o7/ o pedido , inserido no arramento de memria < memria no sa e da e2istncia da MM8 O"tros e2emplos)
MO! R-G/B'92 #ira MO! R-G/2CDE. MO! R-G/'22BB #ira MO! R-G/0 MO! R-G/20D00 320CB0F20 3deslocamento de 2044 #ira MO! R-G/'2G0B 3'22BBF20 3deslocado de 204

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
%agina$o
5este modelo apenas podemos "sar 6sim"ltaneamente7 B p;ginas de memria de &"al&"er forma O &"e acontece se endere$armos "m endere$o marcado com H/ o" se:a/ &"e no poss"i mapeamento para "ma mold"ra de p;ginaI -ste 6pro lema7 de#e ser tratado pelo Sistema Operacional < MM8 poss"i/ em s"a ta ela/ "ma referncia informando se o endere$o est; o" no alocado em memria f>sica -sta referncia , con1ecida como bit de presen$a 3presente/a"sente4/ sendo ' para presente e 0 para a"sente

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
%agina$o
?"ando ocorre a c1amada MO! R-G/G2EB0/ a MM8 #erifica &"e o bit de presen$a est; em 0 3a memria no est; alocada fisicamente4 e ento , gerada "ma interr"p$o 3trap4 de falta de p;gina 3page fault4 O Sistema Operacional , c1amado para tratar a falta de p;gina 3interr"p$o4
O Sistema Operacional escol1e "ma p;gina po"co "sada o" &"e tem pro a ilidade ai2a de ser referenciada mais cedo e retiraJa da memria 5o se" l"gar o SO coloca a p;gina re&"isitada/ fa* a at"ali*a$o da MM8 Ke#ol#e o fl"2o do processamento 3c1ama a instr"$o ca"sadora da interr"p$o no#amente4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
%agina$o
+omo a MM8 fa* a 6trad"$o7 dos endere$os de memriaI 9emos/ no nosso e2emplo/ '. p;ginas 32C4 B mold"ras de p;ginas 32L4 +om "m endere$o de '. bits podemos resol#er o pro lema)
C bits mais significati#os para endere$amento das p;ginas 3este ser; o >ndice da ta ela da MM84 '2 bits para deslocamento 32'2 M C09. 3taman1o da p;gina CA44 8samos os C bits para percorrer a ta ela da MM8 e ac1ar se a p;gina poss"i "ma mold"ra de p;gina alocada 3#erificamos o bit de presen$a4 Se sim/ "samos os G bits da ta ela para compor os G bits mais significati#os do registrador de sa>da e completamos com os '2 bits restantes 3deslocamento4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
%agina$o

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
9a ela de %;ginas
< ta ela de p;ginas , a ta ela &"e g"arda as posi$Nes de mold"ras de p;ginas e se poss"em conte=do alocado 5o e2emplo anterior/ , "sado o modelo mais simples de composi$o de ta elas de p;ginas
O C bits da p;gina , "sado como >ndice na ta ela &"e indica a mold"ra de p;gina correspondente Os G bits da ta ela compNem os bits mais significati#os "sados para o endere$o da mold"ra em memria Os bits ad:acentes so os deslocamentos na mold"ra de p;gina Simploriamente podemos ter "ma f"n$o matem;tica &"e tem como entrada a p;gina #irt"al e sa>da a mold"ra de p;gina 3o" p;gina de memria f>sica real4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
9a ela de %;ginas
Oaseado neste modelo podemos o ser#ar)
Se ti#ermos '. bits para endere$os #irt"ais/ onde temos p;ginas de CP 3'2 bits4/ podemos 6endere$ar7 '. p;ginas Se ti#ermos p;ginas de G2P e '. endere$os ainda/ precisaremos de C bits de endere$o e 'D bits para deslocamento 5os comp"tadores at"ais/ geralmente temos G2 bits de endere$os/ o" se:a/ C.29C.9.E.29. endere$os 3posi$Nes na ta ela4/ se "sarmos mais do &"e CP de deslocamento... O c;lc"lo de#e ser r;pido tam ,m/ pois a cada instr"$o &"e en#ol#e memria/ precisamos do mapeamento...

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
9a ela de %;ginas
<lg"mas sol"$Nes podem ser propostas para sol"$o do pro lema da ta ela de p;ginas
Se o S.O. carregar toda a ta ela de p;ginas para "m processo antes da s"a e2ec"$oI
5o temos mais referncias a ta ela de p;ginas/ agili*amos as coisas - se a ta ela for m"ito grandeI Q caro) a cada m"dan$a de conte2to ser; necess;rio fa*er todo o processo no#amente

- se carregarmos toda a ta ela em memria e "sarmos "m registrador apenas como >ndiceI
< cada instr"$o m"damos o #alor do >ndice 3registrador4 temos o endere$o real e 6alcan$amos7 a memria f>sica alocada -sta sol"$o no , "sada na s"a forma original/ por,m , a sol"$o
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
9a ela de %;ginas M"ltin>#eis
%ara minimi*ar a necessidade de "so de memria para arma*enar as ta elas de p;ginas/ , "sado o modelo de ta elas de p;ginas m"ltin>#eis Ki#idimos a ta ela de p;ginas em dois o" mais n>#eis e no 6carregamos7 todas em memria Se &"isermos di#idir CGO de memria em dois n>#eis/ poder>amos ter a seg"inte sit"a$o
G2 bits para endere$o) '0 para a ta ela de n>#el '/ '0 para o n>#el 2 e '2 para deslocamento +omo temos '2 bits para deslocamento/ as p;ginas so de CPO %odemos ter 220 p;ginas #irt"ais
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
9a ela de %;ginas M"ltin>#eis
Os '0 its iniciais do endere$o sero c1amados de %9' e referenciaro CMO de memria 2'02C09. M CGO 5"ma aplica$o pr;tica para "m dado processo &"e necessite de '2MO de memria) CMO para cdigo do programa 3 ase da memria4/ CMO para ;rea de dados e CMO para pil1a 3topo da memria4
8tili*aremos o endere$o 0 do n>#el ' para a ase do programa -ndere$o ' para a ;rea de dados -ndere$o '02G para a pil1a

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
9a ela de %;ginas M"ltin>#eis
Os '0 bits do %9' indicam a mold"ra de p;gina na ta ela de n>#el 2 Os o"tros '0 bits do %92 so os deslocamentos dentro da mold"ra indicando a mold"ra de p;gina f>sica real < #antagem deste modelo , &"e no , preciso ter todas as ta elas em memria/ apenas a de n>#el ' e as G ta elas referenciadas O"tra #antagem , &"e o S.O./1ardRare pode 6for$ar7 &"e o bit de presen$a da ta ela de n>#el ' se:a 0/ impedindo &"e o processo em e2ec"$o acesse ;reas &"e no so alocadas para ele

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
-str"t"ra de "ma -ntrada da 9a ela de %;ginas
-sta , a estr"t"ra ;sica de "ma entrada de "m ta ela de p;gina

< parte mais importante 3por &"estNes #ias4 , o campo &"e indica a mold"ra de p;gina O campo %resente/a"sente indica o bit de presen$a da p;gina em memria 3' para presente e 0 para a"sente4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
-str"t"ra de "ma -ntrada da 9a ela de %;ginas
O campo de %rote$o , composto por G bits/ ' para leit"ra/ o"tro para escrita e o =ltimo para e2ec"$o O campo modificada , "sado pelo 1ardRare para a#isar ao S.O. &"e a p;gina foi alterada pelo processo e n"ma e#ent"al desaloca$o para disco/ o S.O. ter; &"e at"ali*ar as p;ginas em disco 3tam ,m con1ecido como bit s":o4 O campo referenciada a"2ilia o S.O. &"ando ele necessita desalocar mold"ras para alocar o"tras 3as p;ginas &"e esto sem o bit referenciada ligado so as mel1ores candidatas para serem retiradas4 O campo cache desa ilitado permite &"e o cache se:a desa ilitado para esta p;gina 3geralmente "tili*adas para mapeamento de registradores de dispositi#os4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
Memria <ssociati#a o" 9LO
?"ando "samos ta elas de p;ginas para acesso ao conte=do de memria/ a cada instr"$o fa*emos "so da memria para acesso a ta ela e para acesso ao dado referenciado -sses 6acessos e2cessi#os7 a memria in#ia ili*ariam &"al&"er "so de instr"$Nes com ta elas de p;ginas %erce ido este 6pro lema7/ foi criado o conceito de memria associati#a o" 9OL S Translation Lookaside Buffer4 -ste dispositi#o reside na MM8 e tem referncia ' para ' com as mold"ras de p;ginas f>sicas acelerando o processo <s m;&"inas at"ais "tili*am/ geralmente/ .C entradas apenas 3m;2imo4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
Memria <ssociati#a o" 9LO
+ada entrada poss"i informa$Nes so re as p;ginas/ como n=mero da p;gina #irt"al/ mold"ra de p;gina real/ bits de prote$o e de modifica$o

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Memria <ssociati#a o" 9LO
O f"ncionamento da 9LO , a seg"inte)
?"ando alg"m p;gina , referenciada/ a MM8 proc"ra na s"a ta ela de 9LO por esta entrada sim"ltaneamente 3em paralelo4 +aso e2ista na 9LO/ so #erificado os bits de permisso 3leit"ra/escrita/e2ec"$o4 gerando #iola$Nes o" no ig"almente a MM8 tradicional +aso no e2ista referncia a p;gina "sada/ so copiados os campos depois de "ma "sca normal na ta ela da MM8 para a 9OL para poss>#eis acessos posteriores <ps o "so e retirada da 9OL da p;gina 3referncias4 , copiado o bit modificada para a memria f>sica

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
+onsidera$Nes so re 9LO e 9a elas de %;ginas
<t"almente as 9LO so implementadas em softRare/ fa*endo o 1ardRare da m;&"ina 6c1amar7 o S.O. 3trap4 para tratamento de 9LO e otimi*a$o dos cdigos M"itas m;&"inas RTS+ 3<lp1a/ S%<R+/ etc4 "tili*am este modelo de 9LO <s ta elas de p;ginas para entradas de .C its so in#i;#eis nos modelos propostos/ geralmente "samJse ta elas de p;ginas in#ertidas/ onde so "sados dois parUmetros para "sca de p;gina 3n e p/ onde n , processo e p , p;gina4 < associa$o de t,cnicas no#as de ta elas de p;ginas 3in#ertidas/ por e2emplo4 com no#as de 9LO 3hash/ etc4 , a tendncia das no#as ar&"itet"ras de m;&"inas .C its
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmos de S" stit"i$o de %;ginas
8m momento importante para o Sistema Operacional dentro da gerncia de memria , &"ando fa*Jse necess;rio "ma troca de p;gina na memria -2istem dois pontos importantes)
Se a p;gina foi alterada/ ele de#e ser reescrita em disco < escol1a da p;gina a ser destit">da tem &"e ser a mel1or poss>#el/ pois podemos a"mentar -/S se escol1ermos p;ginas &"e logo sero re&"isitadas no#amente

O est"do de algoritmos de s" stit"i$o de p;ginas , an;logo a s" stit"i$o entre memria cache e R<M 3sendo a R<M m"ito mais r;pida do &"e o disco/ claro4

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmos de S" stit"i$o de %;ginas
Os algoritmos de s" stit"i$o de p;ginas so)
<lgoritmo Vtimo <lgoritmo 5o 8sada Recentemente 358R4 <lgoritmo %rimeira a -ntrar/ %rimeira a Sair 30T0O4 <lgoritmo Seg"nda +1ance 3S+4 <lgoritmo Relgio <lgoritmo Menos Recente 8sada 3MR84 <lgoritmo do +on:"nto de 9ra al1o <lgoritmo WSClock

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo de S" s. %;g. Vtimo
O algoritmo Vtimo , apenas "ma referncia para conta ili*armos o desempen1o dos demais algoritmos O se" f"ncionamento , o seg"inte)
5o momento de "ma interr"p$o para s" stit"i$o de p;gina por page fault/ o S.O. de#e escol1er a p;gina em memria &"e le#ar; mais tempo/ dentro de todas as o"tras/ para ser s" stit">da no#amente <inda neste mesmo instante 3trap4/ podemos o ser#ar &"e temos apenas "ma instr"$o con1ecida &"e ser; logo referenciada 3a &"e gero" o trap4 e o"tras com tempos #ariados Se rot"l;ssemos todas as p;ginas por tempo de c1amada/ poder>amos retirar a &"e seria referenciada mais tarde

-ste algoritmo adiaria ao m;2imo o"tra interr"p$o/ por,m , imposs>#el de ser implementado
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo 5o 8sada Recentemente 358R4
O algoritmo "tili*a os bits M e R para pagina$o simples ?"ando "m processo #ai a memria se"s bits de M e R esto em 0 3no referenciada/ no modificada4 < medida &"e os processos #o alterando as p;ginas em memria este &"adro #ai se alterando O algoritmo 58R consiste no seg"inte)
Ke tempos em tempos 3tempo do clock de m;&"ina4/ o S.O. 6limpa7 os its de referenciada/ gerando C classes de p;ginas
+lasse 0) no referenciada/ no modificada +lasse ') no referenciada/ modificada +lasse 2) referenciada/ no modificada +lasse G) referenciada/ modificada

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo 5o 8sada Recentemente 358R4
O algoritmo ir; remo#er da memria aleatoriamente 3e cada interr"p$o de tempo do clock4 alg"ma p;gina de classe mais ai2a -ste algoritmo sempre eneficia p;ginas &"e so referenciadas e no modificadas/ do &"e modificadas e no referenciadas < e2plica$o para este comportamento , &"e podemos ter mais p;ginas intensamente referenciadas do &"e p;ginas alteradas a todo instante

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo %rimeiro a -ntrar/ %rimeiro a Sair 30T0O4
O algoritmo consiste na id,ia de &"e "ma p;gina alocada a m"ito tempo no , mais referenciada +omo n"m lista/ retiro sempre o &"e est; enca e$andoJa inserindo a no#a p;gina ao final da fila 3esta fila , g"ardada pelo S.O. como estr"t"ra a"2iliar/ 1a:a #isto a memria no tem tal constit"i$o4 O algoritmo/ por ser simples desta forma/ retira p;ginas realmente no referenciadas/ por,m pode/ tam ,m/ retirar p;ginas &"e sero logo referenciadas

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Seg"nda +1ance 3S+4
O algoritmo de seg"nda c1ance , "ma mel1oria ao algoritmo 0T0O O se" f"ncionamento , o mesmo do 0T0O/ no entanto , inspecionado o bit R da p;gina/ se esti#er em '/ indica &"e a p;gina foi recentemente referenciada e o S.O. a reJinsere ao final da fila com o tempori*ador *erado e o bit de referncia em 0 no#amente

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Relgio
Q ig"al ao algoritmo Seg"nda +1ance/ por,m/ ao in#,s de fa*er reJinser$Nes ao final da lista/ temos "ma lista circ"lar ?"ando precisamos retirar alg"ma p;gina/ inspecionamos a p;gina/ se o bit de referncia esti#er em '/ simplesmente coloco em 0 e 6rodo7 a proc"ra da pr2ima p;gina &"e possa retirar

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Menos Recente 8sada 3MR84
O algoritmo , aseado no seg"inte comportamento)
?"ando p;ginas so referenciadas intensamente nas =ltimas instr"$Nes sero referenciadas nas pr2imas m"ito pro#a#elmente O mesmo #ale para p;ginas po"co referenciadas/ elas contin"aro po"co referenciadas

%ara implementa$o da MR8/ por,m/ precisamos de alg"ns rec"rsos &"e dei2am o se" algoritmo oneroso. <lg"ns est"dos foram feitos com d"as modelos de algoritmos com a"2>lio de hard are

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Menos Recente 8sada 3MR84
5o primeiro algoritmo/ nosso hard are 1ipot,tico poss"i "m contador de .C bits 5a nossa lista de p;ginas em memria 3pode ser "ma lista encadeada4/ temos "m campo para arma*enar o #alor de contador < cada referncia este #alor , at"ali*ado ?"ando o Sistema Operacional for tratar "ma falta de p;gina/ #erificar; cada campo de contador para escol1er o &"e foi menos referenciado

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Menos Recente 8sada 3MR84
5o seg"ndo algoritmo/ nosso hard are 1ipot,tico poss"i "ma matri* de n 2 n its/ sendo n a &"antidade de mold"ras de p;ginas < cada referncia a mold"ra k/ a lin1a k , preenc1ida por 's/ en&"anto a col"na k , preenc1ida por 0s. ?"em ti#er a lin1a com o menor #alor , a MR8/ o" se:a/ ser; s" stit">da 5a fig"ra a seg"ir/ temos "m e2emplo para referncias na seg"inte ordem) 0 ' 2 G 2 ' 0 G 2 G

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Menos Recente 8sada 3MR84

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Menos Recente 8sada 3MR84
<s implementa$Nes em hard are satisfa*em a condi$o e algoritmo da MR8/ por,m no e2istem na realidade < MR8 , implementada #ia soft are/ "ma forma , "sando o algoritmo 5o 8sada 0re&"entemente 35084)
< cada interr"p$o de relgio/ o S.O. in#estiga e conta as mold"ras referenciadas 3bit R4/ sa endo &"em est; sendo referenciado e com &"antas #e*es

O pro lema do 508 , &"e o 1istrico n"nca , perdido/ fa*endo com &"e mold"ras m"ito referenciadas n"ma passado recente/ mas &"e no , mais/ se:a ainda considerada importante.

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Menos Recente 8sada 3MR84
8ma forma de modificar o 508 fa*endoJo se apro2imar do MR8 , "sando t,cnicas de aging 3en#el1ecimento4
+om o en#el1ecimento/ todos os bits do contador so deslocados para a direita a cada interr"p$o de relgio ?"em foi referenciado rece e "m bit ' na posi$o mais significati#a ?"em poss"i menor #alor , retirado &"ando for necess;rio retirar "ma mold"ra de p;gina da memria < fig"ra a seg"ir mostra D interr"p$Nes de relgio e os estados das mold"ras 3contadores4

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo Menos Recente 8sada 3MR84

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo do +on:"nto de 9ra al1o
<ntes/ #amos #er alg"mas considera$Nes so re pagina$o)
8m processo &"ando escalonado para "so da 8+% #ai alocando mold"ras a medida &"e #ai sendo e2ec"tado < cada interr"p$o por falta de p;ginas/ as mold"ras #o sendo alocadas. -ste m,todo , c1amado de pagina$o por demanda. < pagina$o por demanda no , interessante/ pois gastamJse m"ito tempo de 8+% e do S.O. para alocar p;ginas aos processos +omo os processos apresentam "ma propriedade onde sempre "sam "ma pe&"ena fra$o de s"as p;ginas em dados instantes de s"a e2ec"$o 3localidade de referncia4/ o S.O. pode 6pre#er7 alg"mas p;ginas "sadas e aloc;Jlas.
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo do +on:"nto de 9ra al1o
<ntes/ #amos #er alg"mas considera$Nes so re pagina$o)
O con:"nto de p;ginas &"e "m processo "sa nos instantes de e2ec"$o se c1ama con:"nto de tra al1o 3 orking set4. +omo o S.O. se adianto" e carrego" o con:"nto de tra al1o do processo na memria/ 1a#ero po"cas faltas de p;ginas. Se mesmo assim o processo le#a @ m"itas faltas de p;ginas e fre&Wentes pagina$Nes/ di*emos &"e ele gera trashing 0a*er a pr,Jpagina$o 3adiantarJse aos pedidos do processo4 fa* parte do modelo de con:"nto de tra al1o. -ste modelo ser; mostrado a seg"ir. < forma de seg"ir o modelo de con:"nto de tra al1o , considerar o tempo de e2ec"$o do processo em 8+%

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo do +on:"nto de 9ra al1o
<lgoritmo de con:"nto de tra al1o)
9odo o tempo "sado pelo processo na 8+% , contado/ este , o tempo #irt"al at"al Se "m processo le#o" '00ms/ por,m "so" C0ms de 8+%/ se" tempo #irt"al at"al foi de C0ms. < cada interr"p$o de relgio/ #erificaremos os its de R e do tempo #irt"al at"al da mold"ra <&"ele &"e esti#er com o it R M '/ ser; *erado e o campo de tempo #irt"al at"al , at"ali*ado <&"ele &"e esti#er com o it R M 0 e o se" tempo #irt"al at"al for maior do &"e o tempo #irt"al da e2ec"$o ele , retirado Se todos esti#erem no con:"nto de tra al1o/ o" se:a/ os tempos #irt"ais at"ais esti#erem dentro do tempo de e2ec"$o/ , escol1ido a mais #el1a das mold"ras para ser retirada
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo do +on:"nto de 9ra al1o

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo WSClock
O algoritmo WSClock , "ma mel1oria ao con:"nto de tra al1o/ pois ele gasta m"ito percorrendo toda a ta ela de mold"ras *erando os bits R e fa*endo at"ali*a$Nes de tempo. O modelo poss"i "ma lista circ"lar de mold"ras/ como no modelo do relgio/ por,m ele g"arda as informa$Nes do bit R e instante de !ltima refer"ncia 5"ma falta de p;gina/ , #erificado o bit R da mold"ra apontada pelo ponteiro da lista circ"lar +aso a mold"ra este:a s":a 3bit R M '4/ o bit , colocado em 0/ o tempo de referncia , at"ali*ado/ o ponteiro passa para a pr2ima da lista e seg"e o algoritmo
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
<lgoritmo WSClock
+aso a mold"ra este:a limpa 3bit R M 04 e s"a idade esti#er fora do inter#alo de tempo/ ela , retirada e d; l"gar a "ma no#a p;gina. +aso a mold"ra este:a s":a 3bit R M '4 e s"a idade esti#er fora/ esta p;gina , escalonada para ser at"ali*ada em disco/ por,m o algoritmo 6p"la7 esta mold"ra atr;s de "ma limpa e #el1a. Q definido "m limite de -/S para &"e no aconte$a de 1a#er m"ito processamento de disco 3m"itas p;ginas escalonadas para at"ali*a$o em disco4. +aso se:a dada "ma #olta completa/ podemos proc"rar por "ma p;gina &"e foi escalonada pronta 3:; marcada como limpa4 o" escol1er "ma limpa dentro do inter#alo 3a mais #el1a4/ caso no 1a:am limpas/ escol1emos a at"al 3onde o ponteiro aponta4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
!isto o f"ncionamento do Sistema de %agina$o/ precisamos entender mais alg"mas &"estNes de implementa$o para pro:etarmos Sistemas de %agina$o realmente f"ncionais !eremos E &"estNes de pro:eto
%ol>tica de aloca$o) local versus glo al +ontrole de carga 9aman1o da p;gina Separa$o de espa$os para instr"$Nes e dados %;ginas compartil1adas %ol>tica de limpe*a Tnterface de memria #irt"al

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%ol>tica de aloca$o) local versus glo al
O ser#em a seg"inte sit"a$o)
9emos G processos em memria) </ O e + < gera "ma falta de p;gina/ de#emos proc"rar desalocar "ma mold"ra do espa$o de memria de < o" de todos os processos em memriaI Se escol1ermos trocar apenas mold"ras de </ estamos escol1endo pol>tica de troca local/ o" se:a/ "sando algoritmo de s" stit"i$o local Se escol1ermos trocar entre todas as mold"ras/ estamos escol1endo pol>tica de troca glo al/ o" se:a/ "sando algoritmo de s" stit"i$o glo al

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%ol>tica de aloca$o) local versus glo al

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%ol>tica de aloca$o) local versus glo al
Geralmente pol>tica glo al , mais eficiente do &"e a local/ pois podemos ter trashing mesmo com mold"ras dispon>#eis e desperd>cio de memria &"ando o con:"nto de tra al1o dimin"i/ t"do isso &"ando "samos algoritmos de s" stit"i$o local 8ma forma de otimi*armos o "so da memria , di#idiJla para os processos em memria de forma :"sta X"sta , o seg"inte)
%roporcional ao taman1o e "so de memria do processo Garantindo o m>nimo de memria para este processo

8ma forma de gerenciar a &"antidade de memria &"e "m processo de#e ter , "sando o algoritmo %00 3#age $ault $re%uency4 S fre&Wncia das faltas de p;gina
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%ol>tica de aloca$o) local versus glo al
O %00 se aseia n"ma m,dia de faltas de p;ginas geradas a cada inter#alo de interr"p$o de relgio +om o %00 podemos #er &"e o n>#el de trashing est; alto 3lin1a <4 o" &"e podemos retirar alg"mas mold"ras do processo 3lin1a O4

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
+ontrole de +arga
Mesmo com os mel1ores algoritmos de aloca$o de p;ginas/ pode ocorrer trashing 8ma forma de detectar este pro lema geral , a indica$o pelo %00 &"e todos os processos precisam de mais mold"ras e nen1"m de menos %ara resol#er este pro lema/ podemos "tili*ar o escalonamento em dois n>#eis/ retirando alg"ns processos da memria para a"mentar a &"antidade de mold"ras dispon>#eis Se o n>#el de interr"p$Nes por falta de p;ginas contin"ar alto/ dimin">mos ainda mais o n>#el de m"ltiprograma$o at, c1egarmos em n>#eis aceit;#eis 9eremos/ tam ,m agora/ pagina$o para processos inteiros irem e sa>rem da memria
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
9aman1o da p;gina
Mesmo em 1ardRares pro:etados para taman1os de p;ginas espec>ficos/ podemos/ #ia Sistema Operacional/ alterar o taman1o da p;gina <lg"ns aspectos de#em ser considerados)
Se ti#ermos p;ginas maiores do &"e os limites de 1ardRare/ alocaremos pares de p;ginas < &"antidade de p;ginas interfere no desempen1o do S.O. %;ginas pe&"enas geram ta elas de aloca$o grandes %;ginas grandes/ geram desperd>cios de espa$o da memria 3fragmenta$o interna4 M"itas p;ginas pe&"enas gera maior espera de -/S do disco 3geralmente4 5o li#ro de 9anen a"m e2iste "ma frm"la matem;tica para ac1armos o taman1o timo de p;ginas 3est"demY4

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
-spa$os separados de instr"$Nes e dados
-spa$o "nido para instr"$Nes e dados dos programas f"nciona em &"ando temos m"ito espa$o e , "ma dor de ca e$a &"ando temos po"co espa$o %ara s"prir este pro lema/ a partir do %K%J'' 3'. its4/ foi separado o espa$o de endere$amento de instr"$Nes do de dados Os espa$os so c1amados de espa$o T e espa$o K/ para Tnstr"$Nes e Kados respecti#amente Os espa$os podem ser paginados independente "m do o"tro e a"2ilia na aloca$o de mais espa$o para "m programa/ pois temos a separa$o da parte 6fi2a7 da #ari;#el 3cresce e decresce com o tempo4
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%;ginas compartil1adas
+om a separa$o dos espa$os/ podemos compartil1ar mold"ras de p;gina entre processos Tsto , facilmente imagin;#el para a parte de instr"$Nes 3mold"ra de somente leit"ra4 Kois softRares ig"ais 6rodando7 na m;&"ina para "s";rios distintos podem compartil1ar o espa$o de instr"$Nes/ pois , ig"al Tsto pode ser feito na ta ela de processos do S.O./ onde cada processo pode ter 2 ponteiros) "m para o espa$o de instr"$Nes o"tro para o espa$o de dados

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%;ginas compartil1adas

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%;ginas compartil1adas
<lg"ns aspectos de#em ser considerados &"ando dois processos compartil1am espa$os de memria)
Se o S.O. retira mold"ras de "m dado processo </ ele pode gerar m"itas interr"p$Nes de falta de p;gina @ "m processo O Se "m processo termina/ o S.O. tem &"e sa er se ele compartil1a#a memria com o"tros processos para no retirar mold"ras inde#idamente 3para isso/ geralmente/ "sam estr"t"ras de dados especiais4

+ompartil1amento de memria para a ;rea de dados pode ser o tida no 85TH com o comando fork&'( +om o fork , criada "ma cpia do processo/ por,m a ;rea de dados contin"a a mesma para am os os processos e com o bit de controle em )*+,-O.L/ +aso "m dos processos necessite alterar a ;rea de dados/ criaJ se/ ento/ mais "ma p;gina de dados para ele.
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
?"estNes de %ro:eto para Sistemas de %agina$o
%ol>tica de Limpe*a
%ara &"e 1a:a a troca de mold"ras de p;ginas/ , preciso/ caso a mold"ra este:a s":a/ a at"ali*a$o em disco do se" conte=do em memria antes de li er;Jla %ara manter n>#eis ele#ados de mold"ras limpas em memria/ e#itando lo&"eios de processos por -/S/ alg"ns S.O.s "tili*am "m daemon de limpe*a) paging daemon o" daemon de pagina$o Se esti#erem po"cas mold"ras dispon>#eis/ o daemon come$a a selecionar p;ginas a serem remo#idas da memria "tili*ando algoritmos de s" stit"i$o de p;ginas %ara e#itar &"e alg"m processo espere por -/S &"ando solicitar "ma mold"ra &"e o daemon retiro"/ ele g"arda as mold"ras dispon>#eis de forma &"e/ se no s" stit">das/ elas podem #oltar a ser "sadas
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o
< id,ia de memria #irt"al #ista at, este ponto foi considerada como "nidimensional/ o" se:a/ #ai de 0 at, o n=mero m;2imo 5"ma processo &"e poss"i di#ersos tipos de dados e estr"t"ras &"e #ariam conforme a e2ec"$o/ gerenciar a memria tornaJse "m pro lema 8m caso &"e e2emplifica em este pro lema , "m compilador &"al&"er. %odemos ter em meria)
O cdigo fonteZ 9a ela de s>m olos 3nomes e atri "tos de #ari;#eis4Z %il1a com as c1amadas de sistemas "sadasZ 9a elas de constantes e n=meros de ponto fl"t"ante
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o
%ara o programador gerenciar os espa$os dentro da mold"ra rece ida , e2tremamente complicado 8ma sol"$o , pro#er ao processos espa$os de separados e independentes de memria para cada necessidade < di#iso em espa$os de endere$amento separadas com endere$os inicias 0 at, "m ponto/limite , c1amado de segmenta$o +omo cada segmento tem se" espa$o de memria/ eles podem crescer o" dimin"ir o taman1o sem pro lemas o" interferncias em o"tras ;reas Geralmente cada segmento cont,m "m con:"nto de #ari;#eis/ "m #etor/ "ma pil1a/ por,m raramente d"as o" mais coisas :"ntas
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o
< segmenta$o tam ,m facilita o compartil1amento de dados e procedimentos entre os processos 8m e2emplo cl;ssico , o "so da i lioteca compartil1ada) 6KLLs7 no [indoRs e 6.so7 no Lin"2 <s i liotecas ficam em memria e di#ersos processos "tili*am se"s procedimentos de forma compartil1ada a"mentando a #elocidade de carga e dimin"indo o "so de memria Os segmentos ainda tem G tipos de prote$o) e2ec"$o/ escrita e leit"ra +om a segmenta$o a prote$o @ ;reas espec>ficas , simplificada
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o %"ra
8ma diferen$a entre segmenta$o e pagina$o , &"e as p;ginas poss"em taman1o fi2o e os segmentos no +omo os segmentos no poss"em o mesmo taman1o podemos ter fragmenta$o e2terna 3checkerboarding4 3d4 &"e , resol#ida com "so de compacta$o 3e4

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S
+omo os segmentos no poss"em limites de taman1o/ eles podem se tornar e2tremamente grandes/ impossi ilitando a s"a man"ten$o completa em memria %ara resol#er este pro lema gerado/ foram implementada a pagina$o de segmentos O primeiro grande Sistema Operacional a s"portar tal config"ra$o foi o M8L9T+S O pro:eto est; ligado ao 1ardRare &"e ele era e2ec"tado) \one]Rell .000 e se"s descendentes O \one]Rell pro#ia 2'B segmentos 3mais de 2D0 mil4 com at, .D.DG. 3G. bits4 pala#ras de comprimento

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S
O M8L9T+S trata#a cada segmento com "ma memria #irt"al/ paginandoJa como tal e no tendo a o riga$o de manter todo o segmento em memria +ada programa no M8L9T+S tem "ma ta ela de segmentos com "m descritor para cada segmento < ta ela de segmentos , tam ,m "m segmento 3pode conter mais do &"e 2D0 mil entradas4 e , paginada. O descritor de segmento informa se "m segmento est; o" no na memria. +aso parte do segmento esti#er na memria , considerado &"e o segmento est; na memria/ :"ntamente com s"a ta ela de p;ginas.

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S
Se "m segmento est; em memria/ o M8L9T+S "sa 'B bits para o descritor de ta ela de p;ginas na s"a ta ela de descritores O descritor pode conter tam ,m)
9aman1o do segmento Bits de prote$o 9aman1o da p;gina Se o segmento est; paginado Bits di#ersos

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S
O segmento , "m espa$o de endere$amento com"m e , paginado como #isto anteriormente 3pagina$o4 O taman1o de "m p;gina normal , de '02C pala#ras/ em ora ainda possam e2istir segmentos no paginados e com p;ginas de .C pala#ras4 8m endere$o no M8L9T+S , composto de d"as partes) o segmento e o endere$o dentro do segmento O endere$o dentro do segmento cont,m a p;gina e o deslocamento dentro dela.

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S
O processo descrito , grande e se fosse e2ec"tado a cada instr"$o os programas no rodariam de forma sati*fatria %ara resol#er este pro lema/ o M8L9T+S cont,m "ma 9LO de alta #elocidade com '. pala#ras < pes&"isa na 9LO , feita em paralelo incrementando a #elocidade de "sca/ caso no a p;gina no este:a na 9LO/ o processo de "sca e pagina$o , feito e a 9LO at"ali*ada s" stit"indo "ma p;gina mais antiga 3campo idade4

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) M8L9T+S

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) %-59T8M
< memria #irt"al do %enti"m se parece astante com a do M8L9T+S. -les se diferem nos seg"intes aspectos)
O M8L9T+S tem 2D.P segmentos com .CP pala#ras de G. bits O T59-L tem '.P segmentos com ' il1o de pala#ras de G2 bits

5ota) o taman1o de segmento maior , mais importante para "m processo do &"e ter m"itos segmentos. Raramente "m processo "sa mais do &"e '000 segmentos < memria #irt"al do %enti"m , di#idido em d"as ta elas)
9KL 39a ela de Kescritores Locais4) "ma para cada processo/ com os se"s segmentos locais 9KG 39a ela de Kescritores Glo ais4) "ma ta ela =nica para todos os processos/ descre#endo segmentos de sistema/ incl"si#e o do prprio Sistema Operacional

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) %-59T8M
<ssim como o M8L9T+S/ o %enti"m cont,m se" m,todo de "sca pelo segmento/ p;gina e deslocamento 8ma diferen$a , &"e alg"ns segmentos so locais aos processos/ o"tros glo ais < ta ela de descritores do M8L9T+S , e&"i#alente ao diretrio de p;ginas do %enti"m 8ma ta ela de p;gina do %enti"m cont,m '02C mold"ras de p;gina de CPO/ portanto/ "ma ta ela de p;ginas gerencia CMO de memria 3como no e2emplo de ta elas de p;ginas de dois n>#eis4 O %enti"m tam ,m tem "ma 9LO &"e mapeia diretamente a maioria das com ina$Nes Kiretrio/%;ginas mais recentes
Sistemas Operacionais 2009/2 Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) %-59T8M

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Memria !irt"al
Segmenta$o com pagina$o) %-59T8M
O %enti"m poss"i C n>#eis de prote$o)
5>#el 0) 5>#el do n=cleo 3cerne4 do sistema operacional. So tratados -/S/ gerenciamento de memria e ass"ntos de cerneZ 5>#el ') 5>#el de c1amadas de sistema 3system calls4. <penas alg"mas c1amadas podem ser mapeadas e estas so li eradas pelo cerne do S.O.Z 5>#el 2) 5>#el &"e cont,m as i liotecas de sistema compartil1ados pelos processos. Os processos podem ler e e2ec"tar estes procedimentos/ por,m no podem alter;JlosZ 5>#el G) 5>#el no &"al rodam os processos de "s";riosZ

%ara efet"ar "ma c1amada 3+<LL4 aos n>#eis/ so "sados seletores ao in#,s de endere$os 3algoritmo da MM84 O seletor define "m descritor c1amado de porta de c1amada <s interr"p$Nes de 1ardRare tam ,m "sam descritores especiais
Osmar Leo professor@leao.org

Sistemas Operacionais 2009/2

Memria !irt"al
Segmenta$o com pagina$o) %-59T8M

Sistemas Operacionais 2009/2

Osmar Leo professor@leao.org

Vous aimerez peut-être aussi