SistemasOperacionais
GerenciamentodeMemriaVirtual AlgoritmosdePaginaoNortonTrevisanRoman MarceloMorandini JUeyama
ApostilabaseadanostrabalhosdeKalinkaCasteloBranco,AntnioCarlos Sementille,LucianaA.F.Martimianoenastransparnciasfornecidasno sitedecompradolivro"SistemasOperacionaisModernos"1
AlgoritmosdeTrocadePgina
timo; NRU; FIFO; SegundaChance; Relgio; LRU; Workingset; WSClock;
Veremoscadaumem detalhes
2
AlgoritmosdeTrocadePgina
Algoritmotimo
Cadapginamarcadacomonmerode instruesqueseroexecutadasantesquea pginasejareferenciada
Retiradamemriaapginaquetemmenoschancede serreferenciada(maiornmerodeinstruesfaltantes)
Praticamenteimpossveldesesaber; Impraticvel; Usadoemsimulaesparacomparaocom outrosalgoritmos;3
AlgoritmosdeTrocadePgina
AlgoritmoNotRecentlyUsedPage Replacement(NRU)
ParaauxiliaroS.O.acoletarestatsticasdepgina deuso:
02bitsassociadosacadapginaR(eferenciada)e M(odificada)
Classe0(00)noreferenciada,nomodificada; Classe1(01)noreferenciada,modificada; Classe2(10)referenciada,nomodificada; Classe3(11)referenciada,modificada;
Referenciadalidaouescrita Modificadaescrita4
AlgoritmosdeTrocadePgina
AlgoritmoNotRecentlyUsedPage Replacement(NRU)
ParaauxiliaroS.O.acoletarestatsticasdepgina deuso:
ReMsoatualizadosacadarefernciamemria;
Armazenadosemcadaentradadatabeladepgina Seuvalordeterminadopelohardware
Quandoumprocessoiniciado,ambosReMso 0paratodassuaspginas
Periodicamente,obitRlimpoparadiferenciaras pginasquenoforamreferenciadasrecentemente;
Acadainterrupoderelgio;5
AlgoritmosdeTrocadePgina
AlgoritmoNotRecentlyUsedPage Replacement(NRU)
ObitMnolimpo,poisoS.O.precisasaberse deveescreverapginanodisco Quandoocorreumapagefault:
Removeumapginaaleatoriamente,escolhendodentre asclassesmaisinferioresbits00,01,10,11 Fcildeentender,eficienteparaimplementarefornece bomdesempenho;6
Vantagens:
AlgoritmosdeTrocadePgina
AlgoritmoFirstinFirstoutPageReplacement (FIFO)
SOmantmumafiladaspginascorrentesna memria;
Apginanoinciodafilaamaisantigaeapginano finalamaisnova; Quandoocorreumpagefault
Apginadoincioremovida Anovainseridaaofinaldafila
Simples,maspodeserineficiente,poisumapgina queestemusoconstantepodeserretirada; Poucoutilizado;7
AlgoritmosdeTrocadePgina
AlgoritmodaSegundaChance
FIFO+bitR; InspecionaobitRdapginamaisvelha
Sefor0,elavelhaenofoiusadarecentemente trocada Sefor1,obitfeito0
Apginacolocadanofinaldafila Seutempodecargamodificado,fazendoparecerquerecm chegounamemria(recebeumasegundachance) Abuscacontinua
8
AlgoritmosdeTrocadePgina
AlgoritmodaSegundaChance
Ex:
Ocorrepagefaultnotempo20eRA=0
Aremovido,eonovoelementoinseridoaofinal9
AlgoritmosdeTrocadePgina
AlgoritmodaSegundaChance
Ex:
Ocorrepagefaultnotempo20eRA=1
RA=0agora
RepeteaoperaocomB
SeRB=0,troca Seno,passaaofinaldafila,comRB=0,everificaseC
10
AlgoritmosdeTrocadePgina
AlgoritmodoRelgio
MelhoriaaoSegundaChance:
Listacircularcomponteiroapontandoparaapginamais antiga,naformadeumrelgio Acabeaapontaparaapgina maisantiga
11
AlgoritmosdeTrocadePgina
AlgoritmodoRelgio
Quandoocorreumpagefault:
Inspecionaseacabeadalista
RC=0
12
AlgoritmosdeTrocadePgina
AlgoritmodoRelgio
Quandoocorreumpagefault:
Inspecionaseacabeadalista SeR=0:
Substituiseapginadacabeapelanovapgina
RC=0
13
AlgoritmosdeTrocadePgina
AlgoritmodoRelgio
Quandoocorreumpagefault:
Inspecionaseacabeadalista SeR=0:
Substituiseapginadacabeapelanovapgina Avanaseacabeaemumaposio
RC=0
14
AlgoritmosdeTrocadePgina
AlgoritmodoRelgio
Quandoocorreumpagefault:
Inspecionaseacabeadalista SeR=1:
Avanaseacabeaemumaposio RepeteseoprocessoatencontrarpginacomR=0
RC=1;RD=0
RC=0;RD=015
AlgoritmosdeTrocadePgina
AlgoritmodoRelgio
Quandoocorreumpagefault:
Inspecionaseacabeadalista SeR=1:
Avanaseacabeaemumaposio RepeteseoprocessoatencontrarpginacomR=0 Agecomonocasoanterior(R=0)
RC=1;RD=0
RC=0;RD=0
RC=0;RD=1
16
AlgoritmosdeTrocadePgina
AlgoritmoLeastRecentlyUsedPage Replacement(LRU)
Idia:
Pginasqueforammuitousadasnasltimasinstrues seroprovavelmenteusadasnovamentenasprximas Trocaapginaquepermaneceuemdesusopelomaior tempo Devesemanterlistaencadeadacomtodasaspginas queestonamemria,comasmaisrecentemente utilizadasnoincioeasmenosutilizadasnofinal; Alistadeveseratualizadaacadarefernciadamemria;17
Altocusto
AlgoritmosdeTrocadePgina
AlgoritmoLeastRecentlyUsedPage Replacement(LRU)
Podeserimplementadotantoporhardwarequanto porsoftware:
Hardware:MMUdevesuportaraimplementaoLRU;
Contadoremhardware(64bits),incrementadoautomaticamente apscadainstruo TabeladepginasarmazenaovalordessecontadorCem cadaentrada Apscadarefernciamemria,ovaloratualdeC armazenadonaentradacorrespondente(pgina)natabela Emumpagefault,oS.O.examinatodasasentradasnatabela, paraencontraracommenorC18
AlgoritmosdeTrocadePgina
AlgoritmoLeastRecentlyUsedPage Replacement(LRU)
Implementao:
Hardware(Alternativo):
Seocomputadortemnmolduras,ohardwaedeLRUmantm umamatrizdennbits,inicialmentezero
Quandoumamoldurak(ex,k=0)referenciada,ohardwarefaz todososbitsdalinhakserem1,eosda colunakserem0
19
AlgoritmosdeTrocadePgina
AlgoritmoLeastRecentlyUsedPage Replacement(LRU)
Implementao:
Hardware(Alternativo):
Aqualquermomento,alinhacomomenorvalorbinrioa menosrecentementeusada.Alinhaseguinteasegunda menosrecentementeusada,eassimpordiante. Ex:
Pginas:0123220
AlgoritmosdeTrocadePgina
AlgoritmoLeastRecentlyUsedPage Replacement(LRU)
Implementao:
Hardware(Alternativo):
Ex:
Pginas:01232
Pginas:1032321
AlgoritmosdeTrocadePgina
AlgoritmoLeastRecentlyUsedPage Replacement(LRU)
Podeserimplementadotantoporhardwarequanto porsoftware:
SoftwareNFU(Notfrequentlyused):
Paracadapginaexisteumcontador,iniciadocomzero Acadainterrupodoclock,oSOvarretodasaspginasda memria Paracadapgina,adicionaobitR(residncia)aocontador Emumpagefault,escolheapginacomomenorcontador Problema:Comoessealgoritmonoseesquecedenada, pginasfrequentementeacessadasemumaporopequenado cdigo,masquenomaisseroacessadas,nosero candidatas22
AlgoritmosdeTrocadePgina
AlgoritmoLeastRecentlyUsedPage Replacement(LRU)
Podeserimplementadotantoporhardwarequanto porsoftware:
SoftwareAging:
SoluoaoproblemadoalgoritmoNFU Almdesaberquantasvezesapginafoireferenciada,tambm controlaquandoelafoireferenciada Primeiro,oscontadoressodeslocadosdireitaemumbit.S entoobitRadicionado,squeaobitmaisdaesquerda Tambmacadainterrupodoclock Emumpagefault,apginacomomenorcontadorremovida
23
Aging
Notequeaps8clocksumapginanoreferenciadatemseucontador zerado.Quantomaistempoficarsemserreferenciada,maiszeros suaesquerdater,emenorserseucontador
24
AlgoritmosdeTrocadePgina
AlgoritmoWorkingSet(WS):
Paginaopordemandapginassocarregadas namemriasomentequandosonecessrias; PrpaginaoWorkingset
Conjuntodepginasqueumprocessoestefetivamente utilizando(referenciando)emumdeterminadotempot;
w(k,t)WS P1 P3 P4 P7 P8 P4 t1 t2 tempo25
AlgoritmosdeTrocadePgina
AlgoritmoWorkingSet(WS):
Objetivoprincipal:reduzirafaltadepginas
Umprocessosexecutadoquandotodasaspginas necessriasnotempotestocarregadasnamemria;
Atento,gerarpagefaults
Aidiadeterminaroworkingsetdecadaprocessoe certificarsedetlonamemriaantesderodaro processoModelodeConjuntodeTrabalhooupr paginao Conjuntoconsistindo,emumdadoinstantet,detodasas pginasusadaspelaskrefernciasmaisrecentes memria26
Workingsetw(k,t)
AlgoritmosdeTrocadePgina
AlgoritmoWorkingSet(WS):
Oworkingsetvarialentamentecomotempo
Podemosestimaronmerodepginasnecessrias quandooprogramatrazidododiscocombaseemseu workingsetdequandofoiinterrompido. Prpaginaoconsisteemcarregaressaspginasantes derodarnovamenteoprocesso OSOprecisamanterregistrodequepginasestono workingset. Quandoocorrerumpagefault,encontreumapginafora doworkingsetearemova,casonohajamaisnenhuma molduralivre27
Implementao:
AlgoritmosdeTrocadePgina
AlgoritmoWorkingSet(WS):
Implementao:
Contaraskrefernciasmaisrecentescustoso Parasimplificaroworkingsetpodeservistocomoo conjuntodepginasqueoprocessoreferencioudurante osltimostsegundosdesuaexecuo
Contaotempoindividualdoprocesso,descontando escalonamentoseutempovirtualcorrente
UtilizabitReotempoderelgio(tempovirtual)daltima vezqueapginafoireferenciada;
28
AlgoritmosdeTrocadePgina
AlgoritmoWorkingSet(WS):
Algoritmo:
Pressupostos:
OhardwaredefineosbitsReM Emcadaciclodoclock,obitdereferncialimpo Otempodoworkingsetseestendeporvriosciclosdoclock
Emcadapagefault,atabeladepginasinteira buscada
medidaquecadaentradaprocessada,examineR
Se1,escrevaotempovirtualcorrentenocampoTempodo ltimoUso(TLU),indicandoqueapginaestavaemusono instantedapagefault,ouseja,estavanoworkingsetno candidata29
AlgoritmosdeTrocadePgina
AlgoritmoWorkingSet(WS):
Algoritmo:
Emcadapagefault,atabeladepginasinteira buscada
medidaquecadaentradaprocessada,examineR SeR=0,apginanofoireferenciadanocicloatual,epodeser umacandidata Nessecaso,sesuaidadeformaiorqueointervalotdo workingset,elanoestnele,epodeserremovida Abuscacontinuaatualizandoasdemaisentradas Se,contudo,aidadeformenorquet,apginapoupada. Contudo,apginacommaioridademarcada
Senenhumcandidatoforencontrado(todasaspginasestono workingset),substituaapginamaisvelha,dentreascomR=030
AlgoritmosdeTrocadePgina
AlgoritmoWorkingSet(WS):
31
AlgoritmosdeTrocadePgina
AlgoritmoWSClock:
Clock+WorkingSet Amplamenteusado,devidosuasimplicidadee performance Utilizalistacirculardepginas
Inicialmentevazia medidaquemaispginassocarregadas,entramna lista,formandoumanel Cadaentradacontmotempodeltimouso,almdos bitsReM32
AlgoritmosdeTrocadePgina
AlgoritmoWSClock:
Mnomostrado nafigura
Funcionamento:
Acadapagefault,apginada cabeaexaminadaprimeiro SeR=1
Apginafoiusadaduranteociclode clockcorrentenocandidataa remoo FazR=0eavanaacabea prximapgina,repetindooalgoritmo paraestapgina
33
AlgoritmosdeTrocadePgina
AlgoritmoWSClock:
Funcionamento:
SeR=0
Seaidadeformaiorqueotamanhodo workingsetteapginaestiverlimpa (M=0)noestnoworkingseteuma cpiavlidaexistenodisco
Apginasubstituda Acabeadalistaavana
34
AlgoritmosdeTrocadePgina
AlgoritmoWSClock:
Funcionamento:
SeR=0
Se,contudo,apginaestiversujanopossuicpiavlidano disco
Agendaumaescritaaodisco,evitandotrocadeprocesso Avanaacabeadalista,prosseguindodapginaseguinte
35
AlgoritmosdeTrocadePgina
AlgoritmoWSClock:
Funcionamento:
SeR=0
Se,contudo,apginaestiversujanopossuicpiavlidano disco
Agendaumaescritaaodisco,evitandotrocadeprocesso Avanaacabeadalista,prosseguindodapginaseguinte
36
AlgoritmosdeTrocadePgina
AlgoritmoWSClock:
Seacabeaderumavoltacompletanalistasem substituir:
Epelomenosumaescritanodiscofoiagendada
Acabeacontinuasemovendo,embuscadeumapginalimpa Emalgummomentoaescritaagendadaserexecutada, marcandoapginacomolimpa Todasaspginasestonoworkingset Nafaltadeinformaoadicional,substituaqualquerpgina limpa Senenhumapginalimpaexistir,escolhaqualqueroutraea escrevanodisco
Enenhumaescritafoiagendada
37
AlgoritmosdeTrocadePgina
Algoritmosde substituiolocal:
WorkingSet; WSClock;
Algoritmosde substituio local/global:
timo; NRU; FIFO; SegundaChance; LRU; Relgio;38
Oconceitodeworking setseaplicasomente aumnicoprocesso nohworkingset paraamquinacomo umtodo
ImplementaodaPaginao
Ondecolocaraspginasnodisco,quando retiradasdamemria?
Asoluomaissimplesterumapartioespecial deswap
SoluodoUnixeLinux Nopossuiumsistemadearquivosnormal
Quandoosistemainicia,apartioestvazia Representadanamemriacomoumanicaentrada contendosuaorigemetamanho medidaemqueprocessossoiniciados,oSOreservaum pedaodareadeswapdotamanhodoprocesso
Quandoterminam,oespaoliberado Areadetrocagerenciadacomoumalistadeespaos disponveis;
39
ImplementaodaPaginao
Ondecolocaraspginasnodisco,quando retiradasdamemria?
Asoluomaissimplesterumapartioespecial deswap
Halgoritmosmelhores,masquenoserodiscutidos
Associadoacadaprocessoestoendereono discodesuareadeswap
Mantidonatabeladeprocessos Clculodoendereoparaescreverumapgina:
Adicioneoendereodoinciodapgina(seuvalornoendereo virtual)aoinciodareadeswapassociadaaoprocesso
40
ImplementaodaPaginao
Ondecolocaraspginasnodisco,quando retiradasdamemria?
Problema:antesdeumprocessoiniciar,areade swapdeveserinicializada
PossibilidadeAAssimqueoprocessocriado,ele copiadotodoparasuareadetrocanodisco,sendo carregadoparamemriaquandonecessrio;
Alternativamente,podemoscopilotodoparaamemria principal(espelhamento) Problema:processospodemaumentardetamanhoaps iniciarem(pilhaedados) Soluo:reservarreasdetrocadiferentesparatextodo programa,dadosepilha,permitindoqueelasconsistamdemais deumbloconodisco41
ImplementaodaPaginao
Ondecolocaraspginasnodisco,quando retiradasdamemria?
Problema:antesdeum processoiniciar,area deswapdeveser inicializada
PossibilidadeA
Bastasaberoendereodo inciodareadeswapdo processo Aspginasso espelhadasnodisco readetroca(swap) esttica
42
ImplementaodaPaginao
Ondecolocaraspginasnodisco,quando retiradasdamemria?
Problema:antesdeumprocessoiniciar,areade swapdeveserinicializada
PossibilidadeBNadaalocadoantecipadamente.
Espaoalocadoemdiscoquandoapginaforenviadaparal edesalocadoquandovoltaparaamemria Assim,processonamemriaRAMnoficaamarradoauma reaespecfica; Desvantagem:precisamos,namemria,deumendereode discoparacadapgina.
Devehaverumatabelaemcadaprocessodizendoonde cadapginaestnodisco(seestiverl) Antes,bastavasaberondeoprocessoestavanodisco43
ImplementaodaPaginao
Ondecolocaraspginasnodisco,quando retiradasdamemria?
Problema:antesdeum processoiniciar,area deswapdeveser inicializada
PossibilidadeB
Almdoendereodo inciodareadeswapdo processo,temosquesaber ondeestapginadentro desseendereo(seu deslocamento) readetrocadinmica44