Você está na página 1de 44

SistemasOperacionais

GerenciamentodeMemriaVirtual AlgoritmosdePaginao
NortonTrevisanRoman MarceloMorandini JUeyama

ApostilabaseadanostrabalhosdeKalinkaCasteloBranco,AntnioCarlos Sementille,LucianaA.F.Martimianoenastransparnciasfornecidasno sitedecompradolivro"SistemasOperacionaisModernos"


1

AlgoritmosdeTrocadePgina

timo; NRU; FIFO; SegundaChance; Relgio; LRU; Workingset; WSClock;

Veremoscadaumem detalhes

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 Modificadaescrita
4

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

AlgoritmosdeTrocadePgina

AlgoritmodaSegundaChance

Ex:

Ocorrepagefaultnotempo20eRA=0

Aremovido,eonovoelementoinseridoaofinal
9

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=0
15

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, paraencontraracommenorC


18

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:01232
20

AlgoritmosdeTrocadePgina

AlgoritmoLeastRecentlyUsedPage Replacement(LRU)

Implementao:

Hardware(Alternativo):

Ex:

Pginas:01232

Pginas:10323
21

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 candidatas


22

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 tempo
25

AlgoritmosdeTrocadePgina

AlgoritmoWorkingSet(WS):

Objetivoprincipal:reduzirafaltadepginas

Umprocessosexecutadoquandotodasaspginas necessriasnotempotestocarregadasnamemria;

Atento,gerarpagefaults

Aidiadeterminaroworkingsetdecadaprocessoe certificarsedetlonamemriaantesderodaro processoModelodeConjuntodeTrabalhooupr paginao Conjuntoconsistindo,emumdadoinstantet,detodasas pginasusadaspelaskrefernciasmaisrecentes memria


26

Workingsetw(k,t)

AlgoritmosdeTrocadePgina

AlgoritmoWorkingSet(WS):

Oworkingsetvarialentamentecomotempo

Podemosestimaronmerodepginasnecessrias quandooprogramatrazidododiscocombaseemseu workingsetdequandofoiinterrompido. Prpaginaoconsisteemcarregaressaspginasantes derodarnovamenteoprocesso OSOprecisamanterregistrodequepginasestono workingset. Quandoocorrerumpagefault,encontreumapginafora doworkingsetearemova,casonohajamaisnenhuma molduralivre
27

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 candidata


29

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=0
30

AlgoritmosdeTrocadePgina

AlgoritmoWorkingSet(WS):

31

AlgoritmosdeTrocadePgina

AlgoritmoWSClock:

Clock+WorkingSet Amplamenteusado,devidosuasimplicidadee performance Utilizalistacirculardepginas

Inicialmentevazia medidaquemaispginassocarregadas,entramna lista,formandoumanel Cadaentradacontmotempodeltimouso,almdos bitsReM


32

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 deumbloconodisco


41

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,bastavasaberondeoprocessoestavanodisco


43

ImplementaodaPaginao

Ondecolocaraspginasnodisco,quando retiradasdamemria?

Problema:antesdeum processoiniciar,area deswapdeveser inicializada

PossibilidadeB

Almdoendereodo inciodareadeswapdo processo,temosquesaber ondeestapginadentro desseendereo(seu deslocamento) readetrocadinmica


44