Anda di halaman 1dari 39

SistemasOperacionais

GerenciamentodeMemriaVirtual AlgoritmosdePaginao
NortonTrevisanRoman MarceloMorandini JUeyama

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


1

TabelasdePginas

TLBsaceleramatraduoentreendereos virtuaisereais Masesseapenasumproblemacomo traduzirrapidamente Restaaindacomolidarcomgrandesespaos deendereosvirtuaisComoorganizara tabeladepginas?

Paginaohierrquica(multinvel) Tabelasdepginacomhash Tabelasdepginainvertidas


2

PaginaoMultiNvel

Quebreoespaodeendereolgicoem mltiplastabelasdepgina

Umatcnicasimples umatabeladepgina emdoisnveis

PaginaoemDoisNveis

Aidiaevitarmanternamemriatodasas tabelasdepginaotempotodo

Apenasasnecessriasdevemestarnamemria Ex.

Suponhaqueumprogramaestejadivididoem:

Umatabelaparaocdigo(4MBdabasedamemria) Umaparaosdados(4MBseguintes) Umaparaapilha(4MBdotopo) Humburacogigantevazio,natabela(usouapenas3pginas)

PaginaoemDoisNveis

Aidiaevitarmanternamemriatodasas tabelasdepginaotempotodo

Ex.

Podemosdividiroprogramaem:

Umatabelaparaocdigo(4MBdabasedamemria) Umaparaosdados(4MBseguintes) Umaparaapilha(4MBdotopo) Humburacogigantevazio,natabela(usouapenas3pginas)

Mesmoqueatabelainteirasejaenorme,paraesse programaprecisaramosapenasmanter4(aprincipal,e essasoutras3) Asdemais(possivelmentenousadas),noestariamna memria.


5

PaginaoemDoisNveis
Tabelanica:20bits 1Mentradas DuasTabelas: Principal:10bits1Kentradas Secundrias:Adhoc

Emnosso exemplo, teramos mais3 pginasde 10bits3 x1K. Otamanho total ocupado seria4K
6

PaginaoemDoisNveis

Endereamento:

Umendereolgico(emmquinasde32bits) divididoem:

umnmerodepginacontendo20bits umdeslocamentodepginacontendo12bits

Comoatabeladepginapaginada,onmerode pginadivididoaindaem:

umnmerodepginaPT1,de10bits umnmerodepginaPT2,de10bits

PT1umndiceparaatabeladepginamaisexterna,e PT2odeslocamentodapginadentrodatabelade pginamaisexterna


7

PaginaoemDoisNveis

Umavezqueooffset12bits

Aspginastm4KB(omximoem12bits)

Comotemos3212=20bitsparaenderear pginas:

Temos220 =1Mpossveispginas

Traduode endereo:

AMMUextraio campoPT1, usandoseuvalor comondicenapginamaisalta


8

PaginaoemDoisNveis

Traduodeendereo:

Aentradanessa posiodo endereo(ou nmeroda moldura)da tabeladepgina nosegundonvel

PaginaoemDoisNveis

Traduodeendereo:

Aentradanessa posiodo endereo(ou nmeroda moldura)da tabeladepgina nosegundonvel OcampoPT2 entousado comoumndice napginade segundonvel

10

PaginaoemDoisNveis

Traduodeendereo:

Onmeroda moldurafsica obtidodessa entradanatabela

Checaobitde residncia

11

PaginaoemDoisNveis

Traduodeendereo:

Onmeroda moldurafsica obtidodessa entradanatabela

Checaobitde residncia
Combinaonmero damolduracomd

Finalmenteo deslocamento usadopara comporo endereofsico

12

PaginaoemTrsNveis

Maisnveispodemexistir

Dois:

Trs:

Naprtica,noseusamaisque3
13

TabelasdePginaemHash

Comunsemespaosdeendereo>32bits Onmerodepginavirtualusadopara clculodovalordehash Cadaentradanatabelacontmumalistaligada deelementos,consistindode:

Onmerodapginavirtual Ovalordamoldura Umponteiroparaoprximoelementodalista


14

TabelasdePginaemHash

Funcionamento:

Oendereodepaginavirtualusadoparaclculo dohash Esseendereocomparadoacadaelemento Sefor encontrado, ocampo damoldura usado noendereo fsico
15

TabeladePginaInvertida

Com32bits,multinvelfuncionabem Ecom64?

Seapginativer4K(212 ),teremosumatabelacom 264 /212 =26412 =252 entradas Secadaentradativer8bytes,atabelatermaisde 30.000.000GB

30PB(petabytes) Provavelmente,noumaboaidiacoloclanaRAM

Soluo:

Tabeladepginainvertida
16

TabeladePginaInvertida

Possuiumaentradapormolduranamemria fsica

Emvezdeumaentradaporpginanoespao virtual Aentradaregistraquepginavirtualestalocalizada namoldura

Cominformaessobreoprocessoquepossuiessa pgina

Poupammuitoespaoquandooespaovirtual muitomaiorqueofsico
17

TabeladePginaInvertida

Modelodenicapgina(oumultinvel)

Cadaprocessotemumatabeladepginas associadaaeleclassificaofeitapeloendereo virtual; SOmantmumanicatabelaparaasmoldurasde pginasdamemria; Cadaentradaconsistenoendereovirtualda pginaarmazenadanaquelapginareal,com informaessobreoprocessodonodapgina virtual;


18

Modelodepginainvertida:

TabeladePginaInvertida

19

TabeladePginaInvertida

Problema:

Traduesvirtualfsicamuitomaisdifcil

Quandooprocessonreferenciaapginavirtualp,o hardwarenoconseguemaisencontrarapginafsica usandopcomondice


Devebuscaremtodaatabeladepginasporumaentrada(n,p) Seencontrar,geraoendereofsico Fazissoemcadarefernciamemriaaumentaotempo necessrioparapesquisaratabela

Oquefazer?

UsaraTLBparaguardarasmaisacessadas CasoapginabuscadanoestejanaTLB,devemos procuraremtodaatabelainvertida


20

TabeladePginaInvertida

Buscanatabelainvertida:

Feitaatravsdeumatabeladehash,comovalor dehashcalculadoapartirdoendereovirtual

Todasaspginasvirtuaisatualmentenamemriacomo mesmovalordehashsoagrupadas Umavezencontradoo nmerodepginabuscado, opar(virtual,fsico) armazenadonaTLB

Pginasinvertidasso bastantecomunsem sistemasde64bits


21

AlocaodePginas

Quantaspginasreaisseroalocadasaum processo? Duasestratgias:

Alocaofixaouesttica:cadaprocessotemum nmeromximodepginasreais,definidoquando oprocessocriado;

Olimitepodeserigualparatodososprocessos; Vantagem:simplicidade; Desvantagens:(i)nmeromuitopequenodepginas reaispodecausarmuitapaginao;(ii)nmeromuito grandedepginasreaiscausadesperdciodememria principal;


22

AlocaodePginas

Quantaspginasreaisseroalocadasaum processo? Duasestratgias:

Alocaovariveloudinmica:nmeromximode pginasreaisalocadasaoprocessovariadurante suaexecuo;

Vantagem:(i)processoscomelevadataxadepaginao podemterseulimitedepginasreaisampliado;(ii) processoscombaixataxadepaginaopodemterseu limitedepginasreaisreduzido; Desvantagem:monitoramentoconstante;


23

BuscadePgina

Paginaosimples:

Todasaspginasvirtuaisdoprocessoso carregadasparaamemriaprincipal; Assim,sempretodasaspginassovlidas; Processoscomeamcomnenhumapginana memria AssimqueaCPUtentaexecutaraprimeira instruo,geraumpagefault

Paginaopordemanda(DemandPaging):

OS.O.Trazapginaquefaltamemria
24

BuscadePgina

Paginaopordemanda(DemandPaging):

Apenasaspginasefetivamenteacessadaspelo processosocarregadasnamemriaprincipal; Quaispginasvirtuaisforamcarregadas?

Indicadopelobitderesidncia MMUgeraumainterrupodeproteoeacionao sistemaoperacional

Pginainvlida:

Seapginaestforadoespaodeendereamentodo processo,oprocessoabortado; Seapginaaindanofoicarregadanamemriaprincipal, ocorreumafaltadepgina(pagefault);


25

BuscadePgina

PaginaopordemandaFaltadePgina:

Processosuspensoeseudescritorinseridoem umafilaespecial

Filadosprocessosesperandoumapginavirtual;

Umapginareallivredeveseralocada; Apginavirtualacessadadeveserlocalizadano disco; Operaodeleituradedisco

Indicandooendereodapginavirtualnodiscoeo endereodapginarealalocada;
26

BuscadePgina

PaginaopordemandaFaltadePgina:

Apsaleituradodisco:

Tabeladepginasdoprocessocorrigidaparaindicar queapginavirtualagoraestvlidaeestnapgina realalocada; ProcessoexecutadopeloPager:

Carregapginasespecificasdeumprocessododiscoparaa memriaprincipal;

Odescritordoprocessoretiradodafilaespeciale colocadonafiladoprocessador;

27

TrocadePginas

PolticadeSubstituio Local:

Pginasdosprprios processosso utilizadasnatroca;

Ex:pagefaultno processoA

???

28

TrocadePginas

PolticadeSubstituio Local:

Pginasdosprprios processosso utilizadasnatroca;

Ex:pagefaultno processoA Escolhaamaisantiga dentreaspginas pertencentesaA

Alocaacadaprocesso fraofixadamemria
29

TrocadePginas

PolticadeSubstituio Local:

Dificuldade:definir quantaspginascada processopodeutilizar

Seoprocessousar menosqueasprevistas desperdcio Seusarmaisqueo previsto(ougalgarmais memriaenquanto executa)muitastrocas, mesmohavendopginas disponveis

30

TrocadePginas

PolticadeSubstituio Global:

Pginasdetodosos processosso utilizadasnatroca;

Ex:pagefaultno processoA

???

31

TrocadePginas

PolticadeSubstituio Global:

Pginasdetodosos processosso utilizadasnatroca;

Ex:pagefaultno processoA Escolhaamaisantiga dentreaspginas disponveis

Processossemfrao fixadamemria
32

TrocadePginas

PolticadeSubstituio Global:

Problema:processos commenorprioridade podemterumnmero muitoreduzidode pginas,ecomisso, acontecemmuitasfaltas depginas;

33

TrocadePginas

Quandoocorreumpagefault

Setodasasmoldurasestiveremocupadas,oS.O. Escolheumapginaparaeliminarpginavtima

Aescolhapodeseraleatria Sermelhorescolherumapginaquenosejamuito usada

Seessapginafoimodificadaenquantoestavana memria,deveserreescritanodisco Senotiversidomodificada,podeapenasser sobrescrita


34

TrocadePginas

Exemplo:

DoisprocessosP1eP2,cadaumcom4pginas virtuais; Memriaprincipalcom6pginas;


MemriaVirtualP1 0 A 1 B 2 C 3 D MemriaVirtualP2 0 E 1 F 2 G 3 H MemriaPrincipal 0 D 1 A 2 F 3 E 4 G 5 B 3pginasde cadaprocesso
35

TrocadePginas
MemriaVirtualP1 TabeladePginasP1 0 A Simplificada 1 B 0 1 v 2 C 1 5 v 3 D i 2 3 0 v

MemriaVirtualP2 TabeladePginasP2 Simplificada 0 E 1 F 0 3 v 2 G 1 2 v 3 H 2 4 v 3 i

MemriaPrincipal 0 D 1 A 2 F 3 E 4 G 5 B 3pginasde cadaprocesso

P2tentaacessarpgina3!FaltadePgina!
36

TrocadePginas
MemriaVirtualP1
0 1 2 3 A B C D

TabeladePginasP1 Simplificada
0 1 2 3 1 5 0 v v i v

MemriaPrincipal
0 D 1 A 2 F 3 E 4 H 5 B 3pginasde cadaprocesso

MemriaVirtualP2
0 1 2 3 E F G H

TabeladePginasP2 Simplificada
0 1 2 3 3 2 4 v v i v

Pgina2(virtual)escolhidacomovtima!
37

AlgoritmosdeTrocadePgina

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

Veremoscadaumem detalhes

38

MemriaVirtual
Pginavirtualmapeadaparapginareal;

Ex:

Memriafsica

Computadorquegera 64Kdeendereos virtuais

Temapenas32Kde endereosfsicos Programasde64Kpodem serescritos,masno carregadosinteiramente namemria

MMUrealizaomapeamento Endereosvirtuais(geradospelocomputador)

39

Anda mungkin juga menyukai