Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma...
Transcript of Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma...
1
Sistemas Operacionais
Profa. Dra. Kalinka Regina Lucas Jaquie Castelo Branco [email protected]
Apresentação baseada nos slides do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências fornecidas no site de compra do livro “Sistemas Operacionais Modernos”
GerenciamentodeMemória• Recursoimportante;• Tendênciaatualdosoftware
• LeideParkinson:“Osprogramasseexpandemparapreencheramemóriadisponívelparaeles”(adaptação);
• Hierarquiadememória:• Cache;• Principal;• Disco;
2
GerenciamentodeMemória
• Idealmenteosprogramadoresqueremumamemóriaqueseja:• Grande• Rápida• NãoVolátil• Baixocusto
• Infelizmenteatecnologiaatualnãocomportataismemórias
• AmaioriadoscomputadoresutilizaHierarquiadeMemóriasquecombina:• Umapequenaquantidadedememóriacache,volátil,muitorápidaedealtocusto• Umagrandememóriaprincipal(RAM),volátil,comcentenasdeMBoupoucosGB,develocidadeecustomédios
• Umamemóriasecundária,nãovolátilemdisco,comgigabytes(outerabytes),velocidadeecustobaixos
3
GerenciamentodeMemóriaHierarquiadeMemória• Cache
• Pequenaquantidade• kbytes
• Altocustoporbyte• Muitorápida• Volátil
• MemóriaPrincipal• Quantidadeintermediária
• Mbytes• Customédioporbyte• Velocidademédia• Volátil
• Disco• Grandequantidade–
• Gbytes• Baixocustoporbyte• Lenta• Nãovolátil
4
HierarquiadeMemória
5 6
❙ Cabe ao Gerenciador de Memória gerenciar a hierarquia de memória ❙ Controla as partes da memória que estão em uso e quais não estão, de forma a: ❙ alocar memória aos processos, quando estes precisarem; ❙ liberar memória quando um processo termina; e ❙ tratar do problema do swapping (quando a memória é insuficiente).
Gerenciamento de Memória
2
GerenciamentodeMemória• Paracadatipodememória:
• Gerenciarespaçoslivres/ocupados;• Alocarprocessos/dadosnamemória;• Localizardado.
• Entreosníveisdememória,deve-se:• Gerenciarastrocas.
• Gerenciadordememória:• Responsávelporalocareliberarespaçosnamemóriaparaosprocessosemexecução;
• Responsávelporgerenciarchaveamentoentreamemóriaprincipaleodisco,ememóriaprincipalememóriacache;
7
GerenciamentoBásicodeMemória
• SistemasdeGerenciamentodeMemória,podemserdivididosem2classes:• Sistemasque,duranteaexecuçãolevametrazemprocessosentreamemóriaprincipaleodisco(trocadeprocessosepaginação)
• Sistemasmaissimples,quenãofazemtrocadeprocessosenempaginação
8
9
Monoprogramação sem trocas de processos ou Paginação
❙ Sistemas Mono-usuários: gerência de memória é bem simples, pois toda a memória é alocada à próxima tarefa, incluindo a área do S.O.
❙ Erros de execução podem vir a danificar o S.O.
❙ Neste caso, a destruição do S.O. é um pequeno inconveniente, resolvido pelo recarregamento do mesmo.
GerenciamentoBásicodeMemóriaMonoprogramaçãosemtrocasdeprocessosouPaginação
GerenciamentoBásicodeMemóriaMonoprogramaçãosemtrocasdeprocessosouPaginação
Trêsesquemassimplesdeorganizaçãodememória-Umsistemaoperacionalcomumprocessodeusuário
10
Gerenciamentomaissimples
11
Multiprogramação com partições Fixas
❙ Sistemas Monoprogramados: raramente usados atualmente. ❙ Sistemas modernos: permitem multiprogramação ❙ A maneira mais comum de realizar a multiprogramação é dividir simplesmente a memória em n partições (provavelmente de tamanhos diferentes). ❙ Esta divisão pode ser feita de maneira manual, quando o sistema é inicializado ❙ Ao chegar, um job, pode ser colocado em uma fila de entrada associada à menor partição, grande o suficiente para armazená-lo
• ModelodeMultiprogramação• Múltiplosprocessossendoexecutados;• EficiênciadeCPU;
12
ModelagemdaMultiprogramação
AutilizaçãodaCPUcomoumafunçãodonúmerodeprocessosna
memória.NecessidadedeParticionamentoda
MemóriaPrincipal.
3
ModelagemdaMultiprogramação
O uso daMultiprogramação podemelhorar a utilização daCPU
ConsiderandoautilizaçãodaCPUdemodoprobabilístico:• Suponha que um processo gaste uma fração p de seutempoesperandopelafinalizaçãodesuasolicitaçãodeE/S
• Comnprocessossimultâneosnamemória,aprobabilidadede todos os n processos estarem esperando por E/S(situaçãoemqueaCPUestáociosa)épn
• AutilizaçãodaCPUédadapelafórmula:utilizaçãodaCPU=1-pn
13
GerenciamentodeMemória• MultiprogramaçãoàVáriosprocessosnamemória:
• Proteção:Comoprotegerosprocessosunsdosoutroseokerneldetodososprocessos?
• Necessidadederealocação:Comotratararealocação?Oprocessopodeestaremdiferentesposiçõesdamemória.
• TodasassoluçõesenvolvemequiparaCPUcomumhardwareespecialàMMU(memorymanagementunit).
14
GerenciamentodeMemória• MMU(doinglêsMemoryManagementUnit)éumdispositivodehardwarequetransformaendereçosvirtuaisemendereçosfísicos.
• NaMMU,ovalornoregistroderelocaçãoéadicionadoatodooendereçológicogeradoporumprocessodoutilizadornaalturadeserenviadoparaamemória.Oprogramadoutilizadormanipulaendereçoslógicos;elenuncavêendereçosfísicosreais.
15 VAMOSVOLTARNISSOMAISAFRENTEOK?
RelocaçãoeProteção• Podenãotercertezadeondeoprogramaserácarregadonamemória• Aslocalizaçõesdeendereçosdelocalizaçãodasvariáveisedocódigodasrotinasnãopodemserabsolutos
• Deve-semanterumprogramaforadaspartiçõesdeoutrosprocessos
• Usodevaloresdebaseelimite• Osendereçosdaslocalizaçõessãosomadosaumvalordebaseparamapearumendereçofísico
• Valoresdelocalizaçõesmaioresqueumvalorlimitesãoconsideradoserro 16
GerenciamentodeMemória• Realocação:
• Quandoumprogramaélinkado(programaprincipal+rotinasdousuário+rotinasdabibliotecaàexecutável)olinkerdevesaberemqueendereçooprogramairáiniciarnamemória;
• Nessecaso,paraqueolinkernãoescrevaemumlocalindevido,comoporexemplonaáreadoSO(100primeirosendereços),éprecisoderealocação:• #100+Δàquedependedapartição!!!
• Proteção:• Comváriaspartiçõeseprogramasocupandodiferentesespaçosdamemóriaépossívelacontecerumacessoindevido.
17
GerenciamentodeMemória• Soluçãoparaambososproblemas:
• 2registradoresàbaseelimite• Quandoumprocessoéescalonadooregistrador-baseécarregadocomoendereçodeiníciodapartiçãoeoregistrador-limitecomotamanhodapartição;
• Oregistrador-basetornaimpossívelaumprocessoumaremissãoaqualquerpartedememóriaabaixodesimesmo.
• Automaticamente,aMMUadicionaoconteúdodoregistrador-baseacadaendereçodememóriagerado;
• Endereçossãocomparadoscomoregistrador-limiteparapreveniracessosindevidos.
18
4
GerenciamentodeMemóriaRegistradoresbaseelimite
19
b) MMU mais sofisticada à dois pares de registradores: segmento de dados usa um par separado; § MMU modernas têm mais pares de registradores.
GerenciamentodeMemóriaPartições/Alocação
• Particionamentodamemóriapodeserrealizadodeduasmaneiras:• Partiçõesfixas(oualocaçãoestática);• Partiçõesvariáveis(oualocaçãodinâmica);
• PartiçõesFixas:• Tamanhoenúmerodepartiçõessãofixos(estáticos);• Nãoéatrativo,porquepartiçõesfixastendemadesperdiçarmemória(Qualquerespaçonãoutilizadoéliteralmenteperdido)
• Maissimples.20
GerenciamentodeMemóriaPartiçõesFixas
• PartiçõesFixas:• Filasmúltiplas:
• Problema:filasnãobalanceadas;
• Filaúnica:• Facilitagerenciamento;• ImplementaçãocomLista:
• Melhorutilizaçãodamemória,poisprocuraomelhorprocessoparaapartiçãoconsiderada;
• Diferentesalgoritmospodemserconsideradosparaalocarosprocessos.
21
MultiprogramaçãocompartiçõesFixas
• Partiçõesdememóriafixa• filaseparadaparacadapartição• umaúnicafiladeentrada
22
GerenciamentodeMemóriaPartiçõesFixas
• PartiçõesFixas:problemascomfragmentação:• Interna:desperdíciodentrodaáreaalocadaparaumprocesso;• Ex.:processodetamanho40Kocupandoumapartiçãode50k;
• Externa:desperdícioforadaáreaalocadaparaumprocesso;• Duaspartiçõeslivres:PL1com25kePL2com100k,eumprocessodetamanho110Kparaserexecutado;
• Livre:125K,masoprocessonãopodeserexecutado;
23
GerenciamentodeMemóriaPartiçõesVariáveis
• PartiçõesVariáveis:• Tamanhoenúmerodepartiçõesvariam;• Otimizaautilizaçãodamemória,mascomplicaaalocaçãoeliberaçãodamemória;
• Partiçõessãoalocadasdinamicamente;• SOmantémnamemóriaumalistacomosespaçoslivres;
• Menorfragmentaçãointernaegrandefragmentaçãoexterna;• Solução:Compactação;
24
5
GerenciamentodeMemóriaPartiçõesVariáveis• PartiçõesVariáveis:
25
SO
A
(a) SO
A
(b)
B
SO
A
(c)
B
C
SO (d)
B
C
SO (e)
B
C
D SO (f)
C
D SO (g)
C
D
A
Tempo
Memória livre
GerenciamentodeMemória• Minimizarespaçodememóriainutilizados:
• Compactação:necessáriapararecuperarosespaçosperdidosporfragmentação;noentanto,muitocustosaparaaCPU;
• Técnicasparaalocaçãodinâmicadememória:• Bitmaps;• ListasEncadeadas.
26
GerenciamentodeMemória• TécnicacomBitmaps:
• Memóriaédivididaemunidadesdealocaçãoemkbytes;
• Cadaunidadecorrespondeaumbitnobitmap: 0àlivre 1àocupado
• Tamanhodobitmapdependedotamanhodaunidadeedotamanhodamemória;
• Ex.:• unidadesdealocaçãopequenasàbitmapgrande;• unidadesdealocaçãograndesàperdadeespaço.
27
GerenciamentodeMemória
• TécnicacomBitmaps:
28
Memória livre
8 16 A B C ... Memória
1 1 1 1 1 0 0 0
1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
... 1 1 1 1 1 0 0 0
Bitmap
Memória ocupada
GerenciamentodeMemória
• TécnicacomListasEncadeadas:• Umalistaparaosespaçosvazioseoutraparaosespaçoscheios,ouumalistaparaambos!
“espaço≡segmento”
29
P 0 5 H 5 3 P 8 6 H 29 3 x .......
começa com zero tamanho 5
Processo Hole (espaço vazio)
começa com 5
tamanho 3
GerenciamentodeMemóriacomListasencadeadas
Outramaneiradegerenciarmemóriaémanterumalistaencadeadadesegmentosdememóriaalocadosesegmentosdisponíveis
Cadaelementodestalistaespecifica:• umsegmentodisponível(H),oualocadoaumprocesso(P),• oendereçoondeseiniciaestesegmento• eumponteiroparaopróximoelemento
30
6
GerenciamentodememóriacomMapasdeBits
(a)Umapartedamemóriacom5processose3buracos• Asregiõesembranco(1nobitmap)marcamasunidadesjáalocadas
• Asregiõessombreadas(0nobitmap)marcamunidadesdesocupadas
(b)OBitmapcorrespondente(c)Amesmainformaçãocomoumalistaencadeada
31
GerenciamentodeMemória
• AlgoritmosdeAlocaçãoàquandoumnovoprocessoécriado:• FIRSTFIT
• 1ºsegmentoéusado;• Rápido,maspodedesperdiçarmemóriaporfragmentação.
• NEXTFIT• 1ºsegmentoéusado;• Masnapróximaalocaçãoiniciabuscadopontoqueparouanteriormente;
• Possuidesempenhoinferior.32
GerenciamentodeMemória• BESTFIT
• Procuranalistatodaealocaoespaçoquemaisconvém;• Menorfragmentação;• Maislento.
• WORSTFIT• Alocaomaiorespaçodisponível.
• QUICKFIT• Mantémlistasseparadasparaosespaçosmaisrequisitados.
33
GerenciamentodeMemória• Cadaalgoritmopodemanterlistasseparadasparaprocessoseparaespaçoslivres:• Vantagem:
• Aumentadesempenho;
• Desvantagens:• Aumentacomplexidadequandoespaçodememóriaéliberado–gerenciamentodaslistas;
• Fragmentação.
34
GerenciamentodeMemóriaAlocaçãodesegmentoslivres
35
❙ Principais Consequências
❙ A melhor escolha: deixa o menor resto, porém após um longo processamento poderá deixar “buracos” muito pequenos para serem úteis.
❙ A pior escolha: deixa o maior espaço após cada alocação, mas tende a espalhar as porções não utilizadas sobre áreas não contínuas de memória e, portanto, pode tornar difícil alocar grandes jobs.
❙ A primeira escolha: tende a ser um meio termo entre a melhor e a pior escolha, com a característica adicional de fazer com que os espaços vazios migrem para o final da memória.
GerenciamentodeMemóriaAlocaçãodesegmentoslivres
36
Áreas livres iniciais Melhor Escolha Pior Escolha Primeira Escolha
7
GerenciamentodeMemóriaOquefazerquandonãoexisteespaçosuficienteparatodososprocessosativos?
• Swapping• Chaveamentodeprocessosinteirosentreamemóriaprincipaleodisco.
• Overlays– MemóriaVirtual• Programadesãodivididosempedaçosmenores• Pedaçossãochaveadosentreamemóriaprincipaleodisco.
37
GerenciamentodeMemória• Swapping
• Chaveamentodeprocessosinteirosentreamemóriaprincipaleodisco;
• Transferênciadoprocessodamemóriaprincipalparaamemóriasecundária(normalmenteodisco):Swap-out;
• Transferênciadoprocessodamemóriasecundáriaparaamemóriaprincipal:Swap-in;
• Podeserutilizadotantocompartiçõesfixasquantovariáveis.
38
GerenciamentodeMemória• Programasmaioresqueamemóriaeramdividosempedaçosmenoreschamadosdeoverlays– programador;• Desvantagem:customuitoalto.
• MemóriaVirtual• Sistemaoperacionaléresponsávelpordividiroprogramaemoverlays;
• Sistemaoperacionalrealizaochaveamentodessespedaçosentreamemóriaeodisco.
39
GerenciamentodeMemóriaMemóriaVirtual(MV)
• Programasmaioresqueamemóriaeramdivididosempedaçosmenoreschamadosoverlays;• Programadordefineáreasdeoverlay;• Vantagem:expansãodamemóriaprincipal;• Desvantagem:customuitoalto.
40
GerenciamentodeMemóriaMemóriaVirtual(MV)
• Sistemaoperacionaléresponsávelpordividiroprogramaemoverlays;
• Sistemaoperacionalrealizaochaveamentodessespedaçosentreamemóriaprincipaleodisco;
• Décadade60:ATLASàprimeirosistemacomMV(UniversidadeManchester-ReinoUnido);
• 1972:sistemacomercial:IBMSystem/370. 41
GerenciamentodeMemóriaMemóriaVirtual(MV)
• ComMVexisteasensaçãodesetermaismemóriaprincipaldoquerealmentesetem;
• Ohardwaremuitasvezesimplementafunçõesdagerênciadememóriavirtual:• SOdeveconsiderarcaracterísticasdaarquitetura.
42
8
GerenciamentodeMemóriaMemóriaVirtual
• EspaçodeEndereçamentoVirtualdeumprocessoéformadoportodososendereçosvirtuaisqueesseprocessopodegerar;
• EspaçodeEndereçamentoFísicodeumprocessoéformadoportodososendereçosfísicos/reaisaceitospelamemóriaprincipal(RAM).
43
GerenciamentodeMemóriaMemóriaVirtual
• UmprocessoemMemóriaVirtualfazreferênciaaendereçosvirtuaisenãoaendereçoreaisdememóriaRAM;
• Nomomentodaexecuçãodeumainstrução,oendereçovirtualétraduzidoparaumendereçoreal,poisaCPUmanipulaapenasendereçosreaisdamemóriaRAMàMAPEAMENTO.
44
GerenciamentodeMemóriaMapeamentoMV
• MMU:Realizamapeamentodosendereçoslógicos(usadospelosprocessos)paraendereçosfísicos;
45
Processador MMU Memória Principal
Endereço Lógico
Endereço Físico
Unidade de Processamento
GerenciamentodeMemóriaMemóriaVirtual
• Endereçosvirtuaisformamumespaçodeendereçamentovirtual;
• MapeamentoentreendereçosreaisevirtuaisérealizadopelaMMU;
• TécnicasdeMV:• Paginação;• Segmentação.
46
GerenciamentodeMemóriaMemóriaVirtual
• Paginação:• Blocosdetamanhofixochamadosdepáginas;• SOmantémumalistadetodasaspáginas;• Oespaçodeendereçamentovirtualédivididoempáginasvirtuais.
• Segmentação:• Blocosdetamanhoarbitráriochamadossegmentos;
• SOmantémumalistadetodosossegmentos;• Oespaçodeendereçamentovirtualédivididoemsegmentosvirtuais. 47
GerenciamentodeMemóriaMemóriaVirtual-Paginação
• MemóriaPrincipaleMemóriaSecundáriasãoorganizadasempáginasdemesmotamanho;
• Páginaéaunidadebásicaparatransferênciadeinformação;
• Tabeladepáginas:responsávelporarmazenarinformaçõessobreaspáginasvirtuais:• argumentodeentradaànúmerodapáginavirtual;• argumentodesaída(resultado)ànúmerodapáginareal(oumolduradepágina-pageframe).
48
9
GerenciamentodeMemóriaMemóriaVirtual-Paginação
Processo A
Esp a ço d eendereça men to
virtua ld e A
Endereço virtu a l 1
.
.
.
Ta b e la dema pea men to
de A
Esp a ço d eendereça men to
virtua ld e B
Endereço virtu a l 1
.
.
.
Ta b e la dema pea men to
de B
Processo B
Memória Pr in cip a l
49
GerenciamentodeMemóriaMemóriaVirtual
• Exemplo:• Páginasde4Kb
• 4096bytes/endereços(0-4095);• 64Kbdeespaçovirtual;• 32Kbdeespaçoreal;• Temos:
• 16páginasvirtuais;• 8páginasreais;
50
GerenciamentodeMemóriaMemóriaVirtual
Espaço de Endereçamento
Virtual
Tamanho da página
Número de páginas
Número de entradas nas
tabela de páginas
232 endereços
232 endereços
264 endereços
264 endereços
512 bytes
4 kbytes
4 kbytes
64 kbytes
223
220
252
248
223
220
252
248 51
Espaço Virtual X Tamanho da Página
GerenciamentodeMemóriaMemóriaVirtual-Paginação
• Problemas:• Fragmentaçãointerna;• Definiçãodotamanhodaspáginas;
• GeralmenteaMMUquedefineenãooSO;• Páginasmaiores:leituramaiseficiente,tabelamenor,masmaiorfragmentaçãointerna;
• Páginasmenores:leituramenoseficiente,tabelamaior,masmenorfragmentaçãointerna;
• Sugestão:1ka8k;• Mapadebitsouumalistaencadeadacomaspáginaslivres.
52
GerenciamentodeMemóriaEndereçoVirtualàEndereçoReal
53
§ MMU realiza o mapeamento
§ Página virtual mapeada para página real;
GerenciamentodeMemóriaMemóriaVirtual-Paginação
54
§ Operação interna de uma MMU com 16 páginas de 4Kb; § Endereço virtual de 16 bits: 4 bits para nº de páginas e 12 bits para deslocamento; § Com 4 bits é possível ter 16 páginas virtuais (24); § 12 bits para deslocamento é possível endereçar os 4096 bytes.
Mapeamento da MMU
10
GerenciamentodeMemóriaMemóriaVirtual-Paginação
55
§ Número da página virtual é usado como índice; § Se página está na memória RAM, então o nº da página real (110) é copiado para os três bits mais significativos do endereço de saída (real), juntamente com o deslocamento sem alteração; § Endereço real com 15 bits é enviado à memória.
índice
Mapeamento da MMU GerênciadeMemóriaMemóriaVirtual-Paginação• AlgumasquestõesquesurgemcomrelaçãoàPaginação:• Ondearmazenaratabeladepáginas?
56
GerênciadeMemóriaMemóriaVirtual-Paginação• ATabeladepáginaspodeserarmazenadadetrêsdiferentesmaneiras:• Emconjuntoderegistradores,seamemóriaforpequena
• Vantagem:rápido• Desvantagem:precisacarregartodaatabelanosregistradoresacadachaveamentodecontexto.
• NaprópriamemóriaRAM–MMUgerenciautilizandodoisregistradores:
• RegistradorBasedatabeladepáginas(PTBR– pagetablebaseregister):indicaoendereçofísicodememóriaondeatabelaestáalocada
• RegistradorLimitedatabeladepáginas(PTBR– pagetablelimitregister):indicaonúmerodeentradasdatabela(númerodepáginas)
• Precisadedoisacessosàmemória:umparaacessaratabeladepáginaseoutroparaacessaraposiçãodememória.
57
GerênciadeMemóriaMemóriaVirtual-Paginação• EmmemóriacachedaMMU
• TambémconhecidacomoTLB(TranslationLooksideBuffer– bufferdetraduçãodinâmica);
• Hardwareespecialparamapearendereçosvirtuaisparaendereçosreaissemterquepassarpelatabeladepáginasnamemóriaprincipal;
• Melhoraodesempenho.
58
GerênciasdeMemóriaMemóriaVirtual-Paginação• Projetomaissimples:
• Umaúnicatabeladepáginasqueconsistaemumvetorderegistradoresrápidosemharware(umregistradorparacadaentrada);
• Quandooprocessoestiverparaserexecutado,oSOcarregaráessesregistradoresapartirdeumacópiadatabeladepáginasdesseprocessomantidanamemória;
• Vantagem:Nãorequernenhumacessoàmemóriaduranteatradução
• Desvantagens:• Caro!• Terquecarregartodaatabeladepáginasemcadatrocadecontexto. 59
GerênciasdeMemóriaMemóriaVirtual-Paginação• Tabeladepáginastotalmentenamemória.• OHardwarenecessárioresume-seaumúnicoregistrador(queapontaparaoiníciodatabeladepáginas)
• Desvantagem:• Aexecuçãodeumainstruçãoimplicaráempelomenosdoisacessosàmemória
• Oprimeiroparaacessaratabeladepáginas(edescobriroendereçofísicodestainstrução)
• Osegundoparabuscararespectivainstruçãonamemória.Issosemfalarnosoperandosdainstruçãoquepodemestaremmemória.
60
11
GerênciasdeMemóriaMemóriaVirtual-PaginaçãoTabeladePáginaMultinível• Oobjetivoéevitarmantertodaatabeladepáginasnamemóriadurantetodootempo
• Apresenta-secomoumasoluçãoparaodimensionamentodatabeladepáginas
• Usodedoisapontadoreseumdeslocamento• Exemplo:Tabeladedoisníveis
• Oendereçode32bitsdeendereçodividoem3campos• PT1[10bits]:indexaoprimeironíveldatabela• PT2[10bits]:indexaosegundoníveldatabela• Deslocamento[12bits]:=>paginasde4KB
61
GerênciasdeMemóriaMemóriaVirtual-Paginação• 1o.nívelcom1024entradas
• Cadaumadessasentradasrepresenta4MB• 4GB/1024
62
GerênciasdeMemóriaMemóriaVirtual-Paginação• Noexemploanterior:• Suponhaqueumprocessoutilizeapenas12MBdoseuespaçodeendereçosvirtuais• 4MBdabasedamemóriaparacódigodeprograma• Outros4MBparadados• 4MBdotopodamemóriaparapilha
• Portanto:• Aentrada0databeladenivel1apontaparaatabeladepáginasdenível2relativaaocódigodoprograma
• Aentrada1databeladenivel1apontaparaatabeladepáginasdenível2relativaaosdadosdoprocesso
• Aentrada1023databeladenivel1apontaparaatabeladepáginasdenível2relativaàpilhadoprocesso
63
GerênciasdeMemóriaMemóriaVirtual-Paginação• QuandoumendereçovirtualchegaàMMU,elaprimeiroextraiocampoPT1eoutilizacomoíndicedatabeladepáginasdonível1
• Aentradadatabeladepáginasdenível1apontaparaatabeladepáginasdonível2.
• EntãoPT2éusadocomoíndicenestasegundatabelaparalocalizaraentradacorrespondenteàpaginavirtual
• Estaentradaindicaráemqualmoldurafísicaencontra-seoendereçoaseracessado
• Noexemplo:• Suponhaqueumprocessoutilizeapenas12MBdoseuespaçodeendereçosvirtuais
• Aentrada0databeladenivel1apontaparaatabeladepáginasdenível2relativaaocódigodoprograma
64
GerênciasdeMemóriaMemóriaVirtual-Paginação
• Considereoendereçovirtual0x00403004(4206596)• Qualseráoendereçofísicocorrespondente? 65
GerênciasdeMemóriaMemóriaVirtual-Paginação
• PT1:Entrada1databelado1onível• 2oblocode4M(4Ma8Mdememóriavirtual)
• PT2:Entrada3databelado2onível• Estaentradaindicaemqualmolduraencontra-seestapágina• Oendereçofísicodoprimeirobytedessamolduraésomadoaodeslocamento
• Supondoapáginaencontre-senamoldura1(4ka8k-1),oendereçofísicocorrespondenteserá4096+4=4100
• OU:66
12
GerênciasdeMemóriaMemóriaVirtual-Paginação• Paraentenderasvantagens,considereoexemploanterior(endereçovirtualde32bits–páginade4kB)
• Usandotabeladepáginastradicional:• 1tabelade220entradas(1Mentradas)
• Usandotabeladepáginasem2níveis• 4tabelasde210entradascada(1Kentradas)
• Secadaentradadatab.depáginasocupa16bits• primeirocaso:220x24=16Mbitsp/armazenaratabeladepáginas
• segundocaso:4x210x24=64Kbitsp/armazenaratabelade2níveis
67
GerênciasdeMemóriaMemóriaVirtual-Paginação• Paginaçãodetrêsníveis
• Típicosdearquiteturasdeprocessadoresde64bits
68
GerênciasdeMemóriaMemóriaVirtual-Paginação• Espaçodeendereçamentovirtualpodeserexageradamentegrandeemmáquinasde64bits.• Páginasde4KB• 252entradasnatabela
• Secadaentradaocupa8B=>tabelade~30.000.000GB• Oarmazenamentodatabelatorna-seviávelseamesmaforinvertida,istoé,terotamanhodaquantidadedemolduras(memóriareal)enãodaquantidadedepáginas(memóriavirtual)
• Sememóriarealéde256Mbytes,epáginasde4KB:• Tem-se65536entradas
69
GerênciasdeMemóriaMemóriaVirtual-PaginaçãoTabelasdePáginasInvertidas• Umaentradapormolduradememóriareal• Cadaentradanatabelainforma
• Par:(PID,#páginavirtual)alocadonaquelamoldura• Entretanto
• Traduçãodevirtual/físicomaiscomplicada• Quandooprocessonendereçaapáginap
• pnãoservedeíndicedatabela• Todaatabeladeveserpesquisadaembuscadeumaentrada(p,n)
• Soluçãomuitolenta• Abuscaéfeitaparatodareferênciaàmemória
70
GerênciasdeMemóriaMemóriaVirtual-Paginação
71
GerênciasdeMemóriaMemóriaVirtual-Paginação• Aceleraçãopodeserobtida
• TLBparapáginasmaisreferenciadas• Indexaratabelaporhash
• UmafunçãohashquerecebeonúmerodapáginaeretornaumentreNvalorespossíveis,ondeNéaquantidadedemolduras(memóriainstalada).
• Páginascommesmohashserãoencadeadasemumalista
• Cadaentradadatabelaarmazenaumpar(página/quadro) 72
13
GerênciasdeMemóriaMemóriaVirtual-Paginação
73
GerênciasdeMemóriaMemóriaVirtual-PaginaçãoTLB–TranslationLookasideBuffer• ComodiminuironúmerodereferênciasàMPintroduzidopelomecanismodepaginação?
• Osprogramastendemafazerumgrandenúmerodereferênciasaummesmopequenoconjuntodepáginasvirtuais• Princípiodalocalidadetemporaleespacial
• Solução:equiparaMMUcomumaTLB• TambémchamadadeMemóriaAssociativa• Dispositivodehardwareimplementadocomumreduzidonúmerodeentradas
• Contémalgumasentradas(linhas)databeladepáginasdoprocessoemexecução
74
GerênciasdeMemóriaMemóriaVirtual-Paginação
75
GerênciadeMemóriaMemóriaVirtual-Paginação
76
Memória associativa (TLB) - De 64 a 4096 entradas
Exemplo de TLB • Loop acessando pag. 19, 20, 21 • Dados principais: pag. 129, 130, 141 • Pilha: 860, 861
GerênciadeMemóriaMemóriaVirtual-PaginaçãoHITRatio(TaxadeSucesso)• RazãodereferênciasàmemóriaquepodemsersatisfeitasapartirdaTLB
• ↑HitRatio=>↑performance• TempodeacessocomHIT(sucesso)àmemóriaviaTLB
THit=TTLB+TMEM
• TempodeacessocomMISS(insucesso)àmemóriaviaTLBTMiss=TTLB+TMEM+TMEM
• Tempomédiodeacesso=hr.THit+(1-hr).Tmiss
• hréoHitRatio
77
GerênciadeMemóriaMemóriaVirtual-PaginaçãoHITRatio(TaxadeSucesso)• Suponha:THit = 20ns ; TMiss= 39 ns; H.R. = 90%
Tempo médio de acesso = 0,9x20+0,1x39 = 21,9ns
78
14
GerênciadeMemóriaMemóriaVirtual-Paginação• AlgumasquestõesquesurgemcomrelaçãoàPaginação:• Ondearmazenaratabeladepáginas?• Qualaestruturadeumaentradanatabeladepáginas?
79
GerenciamentodeMemóriaMemóriaVirtual-Paginação• Estruturadeumatabeladepáginas:32bits(maiscomum)
80
Identifica a página real; Campo mais importante;
Número da Moldura de Página
GerenciamentodeMemóriaMemóriaVirtual-Paginação
81
Bit de Residência: Se valor igual 1, então entrada válida para uso; Se valor igual 0, então entrada inválida, pois página virtual correspondente não está na memória;
Número da Moldura de Página
• Estruturadeumatabeladepáginas:32bits(maiscomum)
GerenciamentodeMemóriaMemóriaVirtual-Paginação
82
Bits de Proteção: Indicam tipos de acessos permitidos:
1 bit à 0 – leitura/escrita 1 – leitura
3 bits à 0 – Leitura 1 – Escrita
2 - Execução
Número da Moldura de Página
• Estruturadeumatabeladepáginas:32bits(maiscomum)
GerenciamentodeMemóriaMemóriaVirtual-Paginação
83
Bit de Modificação (Bit M): Controla o uso da página; Se valor igual a 1, página foi escrita; página é copiada para o disco Se valor igual a 0, página não foi modificada; página não é copiada para o disco;
Número da Moldura de Página
• Estruturadeumatabeladepáginas:32bits(maiscomum)
GerenciamentodeMemóriaMemóriaVirtual-Paginação
84
Bit de Referência (Bit R): Controla o uso da página; Auxilia o SO na escolha da página que deve deixar a MP (RAM); Se valor igual a 1, página foi referenciada (leitura/escrita); Se valor igual a 0, página não referenciada;
Número da Moldura de Página
• Estruturadeumatabeladepáginas:32bits(maiscomum)
15
GerenciamentodeMemóriaMemóriaVirtual-Paginação
85
Bit de Cache: Necessário quando os dispositivos de entrada/saída são mapeados na memória e não em um endereçamento específico de E/S;
Número da Moldura de Página
• Estruturadeumatabeladepáginas:32bits(maiscomum)
GerênciadeMemóriaMemóriaVirtual-Paginação• AlgumasquestõesquesurgemcomrelaçãoàPaginação:• Ondearmazenaratabeladepáginas?• Qualaestruturadeumaentradanatabeladepáginas?
• Quantaspáginasreaisserãoalocadasaumprocesso?
86
GerenciamentodeMemóriaPaginação-AlocaçãodePáginasQuantaspáginasreaisserãoalocadasaumprocesso?• Duasestratégias:
• Alocaçãofixaouestática:cadaprocessotemumnúmeromáximodepáginasreais,definidoquandooprocessoécriado;• Olimitepodeserigualparatodososprocessos;• Vantagem:simplicidade;• Desvantagens:(i)númeromuitopequenodepáginasreaispodecausarmuitapaginação;(ii)númeromuitograndedepáginasreaiscausadesperdíciodememóriaprincipal.
87
GerenciamentodeMemóriaPaginação-AlocaçãodePáginas
Quantaspáginasreaisserãoalocadasaumprocesso?
• Alocaçãovariáveloudinâmica:númeromáximodepáginasreaisalocadasaoprocessovariadurantesuaexecução;• Vantagem:(i)processoscomelevadataxadepaginaçãopodemterseulimitedepáginasreaisampliado;(ii)processoscombaixataxadepaginaçãopodemterseulimitedepáginasreaisreduzido;
• Desvantagem:monitoramentoconstante.88
GerênciadeMemóriaMemóriaVirtual-Paginação• AlgumasquestõesquesurgemcomrelaçãoàPaginação:• Ondearmazenaratabeladepáginas?• Qualaestruturadeumaentradanatabeladepáginas?
• Quantaspáginasreaisserãoalocadasaumprocesso?• Quandoumapáginadevesercarregadaparaamemória?
89
GerenciamentodeMemóriaPaginação-BuscadePágina
Políticasdebuscadeterminamquandoumapáginadevesercarregadaparaamemória.• Paginaçãosimples:
• Todasaspáginasvirtuaisdoprocessosãocarregadasparaamemóriaprincipal;
• Assim,sempretodasaspáginassãoválidas.• Paginaçãopordemanda(DemandPaging):
• Apenasaspáginasefetivamenteacessadaspeloprocessosãocarregadasnamemóriaprincipal;
• QuaispáginasvirtuaisforamcarregadasàBitdecontrole(bitderesidência);
• Páginainválida.• Paginaçãoantecipada(AntecipatoryPaging):
• Carregaparaamemóriaprincipal,alémdapáginareferenciada,outraspáginasquepodemounãosernecessáriasparaoprocesso.
90
16
GerênciadeMemóriaMemóriaVirtual-Paginação• AlgumasquestõesquesurgemcomrelaçãoàPaginação:• Ondearmazenaratabeladepáginas?• Qualaestruturadeumaentradanatabeladepáginas?
• Quantaspáginasreaisserãoalocadasaumprocesso?• Quandoumapáginadevesercarregadaparaamemória?
• Comotrazerumapáginaparaamemória?91
GerenciamentodeMemóriaPaginação-BuscadePágina
• Páginainválida:MMUgeraumainterrupçãodeproteçãoeacionaosistemaoperacional;• Seapáginaestáforadoespaçodeendereçamentodoprocesso,oprocessoéabortado;
• Seapáginaaindanãofoicarregadanamemóriaprincipal,ocorreumafaltadepágina(pagefault).
92
GerenciamentodeMemóriaPaginação-BuscadePágina
• FaltadePágina:• Processoésuspensoeseudescritoréinseridoemumafilaespecial–filadosprocessosesperandoumapáginavirtual;
• Umapáginareallivredeveseralocada;• Apáginavirtualacessadadeveserlocalizadanodisco;• Operaçãodeleituradedisco,indicandooendereçodapáginavirtualnodiscoeoendereçodapáginarealalocada.
93
GerenciamentodeMemóriaPaginação-BuscadePágina
• Apósaleituradodisco:• Tabeladepáginasdoprocessoécorrigidaparaindicarqueapáginavirtualagoraestáválidaeestánapáginarealalocada;• Pager:carregapáginasespecificasdeumprocessododiscoparaamemóriaprincipal;
• Odescritordoprocessoéretiradodafilaespecialecolocadonafiladoprocessador.
94
GerênciadeMemóriaMemóriaVirtual-Paginação• AlgumasquestõesquesurgemcomrelaçãoàPaginação:• Ondearmazenaratabeladepáginas?• Qualaestruturadeumaentradanatabeladepáginas?
• Quantaspáginasreaisserãoalocadasaumprocesso?• Quandoumapáginadevesercarregadaparaamemória?
• Comotrazerumapáginaparaamemória?• Comoliberarespaçonamemória? 95
GerenciamentodeMemóriaPaginação-TrocadePáginasAliberaçãoéfeitapormeiodatrocadepágina.• PolíticadeSubstituiçãoLocal:páginasdosprópriosprocessossãoutilizadasnatroca;• Dificuldade:definirquantaspáginascadaprocessopodeutilizar;
• PolíticadeSubstituiçãoGlobal:páginasdetodososprocessossãoutilizadasnatroca;• Problema:processoscommenorprioridadepodemterumnúmeromuitoreduzidodepáginas,ecomisso,acontecemmuitasfaltasdepáginas; 96
17
GerenciamentodeMemóriaPaginação-TrocadePáginas
• a)Configuraçãoinicial.• b)Alocaçãolocal.• c)Alocaçãoglobal.
97
GerenciamentodeMemóriaTrocadePáginas
• Algoritmosdesubstituiçãolocalalocamumafraçãofixadememóriaparacadaprocesso;enquantoquealgoritmosdesubstituiçãoglobalalocammoldurasdepáginasentreosprocessosemexecução,variandoonúmerodepáginasnotempo;
98
GerenciamentodeMemóriaTrocadePáginas
99
A B C D E F G H
0 1 2 3 4 5 6 7
Memória Virtual
0 1 2 3 4 5 6 7
10 3 4
i i v v i i v i
Tabela de Páginas Simplificada
D G
Memória Principal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
C
Página Virtual
Página Real
GerenciamentodeMemóriaTrocadePáginas
• Setodasaspáginasestiveremocupadas,umapáginadeveserretirada:páginavítima;
• Exemplo:• DoisprocessosP1eP2,cadaumcom4páginasvirtuais;
• Memóriaprincipalcom6páginas.
100
GerenciamentodeMemóriaTrocadePáginas
101
0 1 2 3
A B C D
Memória Virtual P1
0 1 2 3
3 2 4
v v v i
Tabela de Páginas P2 Simplificada 0
1 2 3
E F G H
Memória Virtual P2
D A F EG B
Memória Principal 0 1 2 3 4 5
à P2 tenta acessar página 3! Falta de Página!
3 páginas de cada processo
0 1 2 3
1 5 0
v v i v
Tabela de Páginas P1 Simplificada
GerenciamentodeMemóriaTrocadePáginas
102
0 1 2 3
A B C D
Memória Virtual P1
0 1 2 3
3 2 4
v v i v
Tabela de Páginas P2 Simplificada 0
1 2 3
E F G H
Memória Virtual P2
0 1 2 3
1 5 0
v v i v
Tabela de Páginas P1 Simplificada
à Página 2 (virtual) é escolhida como vítima!
D A F EH B
Memória Principal 0 1 2 3 4 5
3 páginas de cada processo
18
GerenciamentodeMemóriaTrocadePáginas-Paginação
• Algoritmos:• Ótimo;• NRU;• FIFO;• SegundaChance;• Relógio;• LRU;• Workingset;• WSClock.
103
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoÓtimo:• Retiradamemóriaapáginaquetemmenoschancedeserreferenciada;• Praticamenteimpossíveldesesaber;• Impraticável;• Usadoemsimulaçõesparacomparaçãocomoutrosalgoritmos.
104
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoNotRecentlyUsedPageReplacement(NRU)àtrocaaspáginasnãoutilizadasrecentemente:• 02bitsassociadosacadapáginaàReM
• Classe0ànãoreferenciada,nãomodificada;• Classe1ànãoreferenciada,modificada;• Classe2àreferenciada,nãomodificada;• Classe3àreferenciada,modificada;
• ReMsãoatualizadosacadareferênciaàmemória.Umavezqueapáginafoilida,ovalordobitRserá
sempreiguala1atéqueoSOreinicialize-o105
GerenciamentodeMemóriaTrocadePáginas-Paginação
• NRU:• Periodicamente,obitRélimpoparadiferenciaraspáginasquenãoforamreferenciadasrecentemente;• Acadatickdorelógioouinterrupçãoderelógio;• Classe3àClasse1;
• Vantagens:fácildeentender,eficienteparaimplementarefornecebomdesempenho.
106
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoFirst-inFirst-outPageReplacement(FIFO)• SOmantémumalistasdaspáginascorrentesnamemória;• Apáginanoiníciodalistaéamaisantigaeapáginanofinaldalistaéamaisnova;
• Simples,maspodeserineficiente,poisumapáginaqueestáemusoconstantepodeserretirada;
• Poucoutilizado.
107
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmodaSegundaChance• FIFO+bitR;• Páginamaisvelhaécandidataempotencial;
SeobitR==0,entãopáginaéretiradadamemória,senão,R=0esedáumanovachanceàpáginacolocando-anofinaldalista.
108 A D C B
0 7 3 8 1ª página Página mais recente
B A D C
3 8 7 10 1ª página Página mais recente
Se página A com R==1; e falta de página em tempo 10; Então R=0 e página A vai para final da lista;
tempo
19
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmodoRelógio• Listacircularcomponteiroapontandoparaapáginamaisantiga
• AlgoritmoserepeteatéencontrarR=0;
109
Se R=0
- troca de página
- desloca o ponteiro
Se R=1
- R = 0
- desloca o ponteiro
- continua busca
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmodoRelógio
110
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoLeastRecentlyUsedPageReplacement(LRU)• Trocaapáginamenosreferenciada/modificadarecentemente;
• Altocusto• Listaencadeadacomaspáginasqueestãonamemória,comasmaisrecentementeutilizadasnoinícioeasmenosutilizadasnofinal;
• Alistadeveseratualizadaacadareferênciadamemória.
111
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoLeastRecentlyUsedPageReplacement(LRU)• Podeserimplementadotantoporhardwarequantoporsoftware:
• Hardware:MMUdevesuportaraimplementaçãoLRU;• Contadoremhardware(64bits)–containstruçõesexecutadas;• Apóscadareferênciaàmemória,ovalordocontadoréarmazenadona
entradadatabeladepáginasreferenteàpáginaacessada;• Quandoocorrefaltadepágina,oSOexaminatodososcontadoreseescolhe
apáginaquetemmenorvalor;• Tabeladepáginasarmazenaovalordessecontadorparasaberquantas
vezesapáginafoiusada.• Software:duasmaneiras
• NFU(Notfrequentlyused);• Aging(Envelhecimento); 112
GerenciamentodeMemóriaTrocadePáginas-Paginação• LRU–Hardware
• Matriznxnbits• Quandosefazumareferênciaàpáginak->
• Todososbitsdalinhakrecebemvalor1• Todososbitsdacolunakrecebemovalor0
113
GerenciamentodeMemóriaTrocadePáginas-Paginação
• Software:NRU• Paracadapáginaexisteumcontadoràiniciadocomzeroeincrementadoacadareferênciaàpagina;• Páginacommenorvalordocontadorécandidataatroca;
• Comoessealgoritmonãoseesquecedenada• Problema:poderetirarpáginasqueestãosendoreferenciadascomfrequência;• Compiladorcomváriospassos:passo1temmaistempodeexecuçãoqueosoutrospassosàpáginasdopasso1terãomaisreferênciasarmazenadas;
114
20
GerenciamentodeMemóriaTrocadePáginas-Paginação
• Software:Algoritmoaging• ModificaçãodoNRU,resolvendooproblemadescritoanteriormente;• Alémdesaberquantasvezesapáginafoireferenciada,tambémcontrolaquandoelafoireferenciada;
• Geralmente,8bitssãosuficientesparaocontroleseasinterrupçõesderelógio(clockticks)ocorremacada20ms(10-3);
115
GerenciamentodeMemóriaTrocadePáginas-Paginação
• Algoritmoaging
116
clock tick 0 1 0 1 0 1 1
10000000
10000000
00000000
10000000
00000000
10000000
0
1
2
3
4
5 a)
Bits R para páginas 0-5 clock tick 1 1 1 0 0 1 0
11000000
11000000
10000000
01000000
00000000
01000000 b)
clock tick 2 1 1 0 1 0 1
11100000
01100000
11000000
00100000
10000000
10100000 c)
clock tick 3 1 0 0 0 1 0
11110000
10110000
01100000
00100000
01000000
01010000 d)
clock tick 4 0 1 1 0 0 0
01111000
01011000
10110000
10001000
00100000
00101000 e)
Contadores
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoWorkingSet(WS):• Paginaçãopordemandaàpáginassãocarregadasnamemóriasomentequandosãonecessárias;
• Pré-paginaçãoàWorkingset• Conjuntodepáginasqueumprocessoestáefetivamenteutilizando(referenciando)emumdeterminadotempot.
117
w(k,t) WS
t1 t2 tempo
P1 P3 P4 P7 P8 P4
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoWorkingSet(WS):• Objetivoprincipal:reduzirafaltadepáginas
• Umprocessosóéexecutadoquandotodasaspáginasnecessáriasnotempotestãocarregadasnamemória;
• SOgerenciaquaispáginasestãonoWorkingSet;• Parasimplificaràoworkingsetpodeservistocomooconjuntodepáginasqueoprocessoreferenciouduranteosúltimostsegundosdetempo;
• UtilizabitReotempoderelógio(tempovirtual)daúltimavezqueapáginafoireferenciada;
118
GerenciamentodeMemóriaTrocadePáginas-Paginação
119
Tempo virtual atual (CVT): 2204 age = CVT – TLU (Ex.: 2204-2084 = 120) τ = múltiplos clock ticks
Bit R
2084 1
1213 0
1980 1
2003 1
2014 1
2020 1
2032 1
1620 0 Tabela de Páginas
Tempo do último Uso (TLU)
Percorrer as páginas examinando bit R; Se (R==1)* página foi referenciada; faz TLU da página igual ao CVT; Se (R==0 e age > τ) página não está no working set; remove a página; Se (R==0 e age <= τ) ** página está no working set; guarda página com maior age;
§ Algoritmo Working Set:
* Se todas as páginas estiverem com R=1, uma página é escolhida Randomicamente; ** Se todas as páginas estiverem no WS, a página mais velha com R=0 é escolhida;
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoWSClock:• Clock+WorkingSet;• Listacirculardepáginasformandoumanelacadapáginacarregadanamemória;
• UtilizabitReotempodaúltimavezqueapáginafoireferenciada;
• BitMutilizadoparaagendarescritaemdisco.
120
21
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoWSClock:
121
Tempo virtual atual: 2204
Tempo do último uso
2003 1
2084 1
1620 0
2032 1
1980 1
1213 0
2014 1
2020 1
Bit R
a)
2084 1
1620 0
2032 1
2003 1
1980 1
1213 0
2014 0
2020 1
b) R==1 R=0 e ponteiro avança
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoWSClock:
122
Tempo virtual atual: 2204
Tempo do último uso
2003 1
2084 1
1620 0
2032 1
1980 1
1213 0
2014 0
2020 1
Bit R
c)
2084 1
1620 0
2032 1
2003 1
1980 1
2204 1
2014 0
2020 1
d) Nova página R==0 e age>t
M==0 (não agenda escrita) à troca
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoWSClock:
123
Tempo virtual atual: 2204
2003 1
2084 1
1620 0
2032 1
1980 1
1213 0
2014 0
2020 1
c)
2084 0
2204 1
2032 1
2003 0
1980 0
1213 0
2014 0
2020 1
d)
Nova página
R==0 e age>t M==1 (agenda escrita e continua procura)
GerenciamentodeMemóriaTrocadePáginas-Paginação
• AlgoritmoWSClock:• SetodasestiveremcomM==1;entãoescrevepáginaatualnodisco,etrocaapágina;
• Melhordesempenhoàmenosacessosaodisco.
124
GerenciamentodeMemóriaTrocadePáginas-Paginação
• Algoritmosdesubstituiçãolocal:• WorkingSet;• WSClock;
• Algoritmosdesubstituiçãolocal/global:• Ótimo;• NRU;• FIFO;• SegundaChance;• LRU;• Relógio. 125
GerenciamentodeMemóriaTrocadePáginas-Paginação
126
Algoritmo ComentárioÓtimo Nãoimplementável,masútilcomoumpadrãodedesempenhoNRU MuitorudimentarFIFO PodedescartarpáginasimportantesSegundaChance AlgoritmoFIFObastantemelhoradoRelógio RealistaMRU ExcelentealgoritmoporémdifícildeserimplementadodemaneiraexataNFU AproximaçãobastanterudimentardoMRUEnvelhecimento AlgoritmobastanteeficientequeseaproximabemdoMRUConjuntodetrabalho ImplementaçãocaraWSClock Algoritmobomeeficiente
Resumo dos Algoritmos de Substituição de Páginas
22
GerenciamentodeMemóriaImplementaçãodaPaginação
Atéagora–somentecomoumapáginaéselecionadapararemoção.Masondeessapáginadescartadadamemóriaécolocada?• MemóriaSecundária–Disco
• Aáreadetroca(swaparea)égerenciadacomoumalistadeespaçosdisponíveis;
• Oendereçodaáreadetrocadecadaprocessoémantidonatabeladeprocessos;
• Cálculodoendereço:MMU;• PossibilidadeA-Assimqueoprocessoécriado,eleécopiadotodoparasuaáreadetrocanodisco,sendocarregadoparamemóriaquandonecessário;
• Áreadetrocadiferenteparadados,pilhaeprograma,poisáreadedadospodecrescereaáreadepilhacrescerácertamente.
127
GerenciamentodeMemóriaImplementaçãodaPaginação
• MemóriaSecundária–Disco• PossibilidadeB-Nadaéalocadoantecipadamente,espaçoéalocadoemdiscoquandoapáginaforenviadaparalá.Assim,processonamemóriaRAMnãofica“amarrado”aumaáreaespecífica.
128
GerenciamentodeMemóriaImplementaçãodaPaginação
129
Como fica o disco – memória secundária
Área de troca estática Área de troca dinâmica
GerenciamentodeMemóriaMemóriaVirtual-Segmentação
• Segmentação:Visãodoprogramador/compilador• Tabelasdesegmentoscomnlinhas,cadaqualapontandoparaumsegmentodememória;
• Váriosespaçosdeendereçamento;• Endereçorealàbase+deslocamento;• Alocaçãodesegmentossegueosalgoritmosjáestudados:• FIRST-FIT;• BEST-FIT;• NEXT-FIT;• WORST-FIT;• QUICK-FIT. 130
GerenciamentodeMemóriaMemóriaVirtual-Segmentação
• Segmentação:• Facilitaproteçãodosdados;• Facilitacompartilhamentodeprocedimentosedadosentreprocessos;
• MMUtambéméutilizadaparamapeamentoentreosendereçoslógicosefísicos;• Tabeladesegmentosinformaqualoendereçodamemóriafísicadosegmentoeseutamanho.
131
GerenciamentodeMemóriaMemóriaVirtual-Segmentação
• Segmentação:• Problemasencontradosàemborahajaespaçonamemória,nãoháespaçocontínuo:• Políticaderealocação:umoumaissegmentossãorealocadosparaabrirespaçocontínuo;
• Políticadecompactação:todososespaçossãocompactados;• Políticadebloqueio:filadeespera;• Políticadetroca:substituiçãodesegmentos;
• Semfragmentaçãointerna,comfragmentaçãoexterna.
132
23
GerenciamentodeMemóriaMemóriaVirtual-Segmentação
133
Pilha
Árvore de Parse
Livre
Constantes
Fonte Tabela
de Símbolos
Tarefa: Compilação
Espaço de Endereçamento Virtual
Tabela de
Símbolos Fonte
Constantes
Árvore de
Parser
0k
20k
0k 0k 0k 0k
12k
02k
16k
Pilha
12k
Segmentos (0-4)
GerenciamentodeMemóriaMemóriaVirtual-Segmentação
134
Editor
Segmento 0Dados
1
Segmento 1
Memória Lógica P1
Editor
Segmento 0Dados
2
Segmento 1
Memória Lógica P2
Limite Base
8850 90003
25286 43062
Tabela de Segmentos P2
01
Limite Base
4425 68348
25286 43062
Tabela de Segmentos P1
01 Editor
Dados 1
Dados 2
43062
68348
72773
90003
98553
Memória Física
GerenciamentodeMemóriaSegmentação-Paginada
• Espaçológicoéformadoporsegmentos• Cadasegmentoédivididoempáginaslógicas;• Cadasegmentopossuiumatabeladepáginasàmapearoendereçodepáginalógicadosegmentoemendereçodepáginafísica;
• Noendereçamento,atabeladesegmentosindica,paracadasegmento,ondesuarespectivatabeladepáginasestá;
135
GerenciamentodeMemóriaSegmentação-Paginada
136
s p d
Tabela de Segmentos
Tabela de Páginas Segmento 0
Tabela de Páginas Segmento 3
p.f d
GerenciamentodeMemóriaThrashing
• Thrashing(paginaçãoexcessiva)• Associadocomoproblemadedefiniçãodonúmerodepáginas/segmentosàtrocadepáginas/segmentoséumatarefacaraelenta;
• Seoprocessotiverumnúmerodepáginasmuitoreduzido,elepodeficarmuitotempoesperandopeloatendimentodeumafaltadepáginaàmuitosprocessosbloqueados.
137
GerenciamentodeMemóriaThrashing
• Evitaroproblema(paginação):• Taxamáximaaceitáveldetrocadepáginas;
• Suspenderalgunsprocessos,liberandopáginasfísicas(swapping);
• Riscodeaumentarotempoderespostadosprocessos.• Determinarperiodicamenteonúmerodeprocessosemexecuçãoealocarparacadaummesmonúmerodepáginas;• Problema:processosgrandesteriamomesmonúmerodepáginasdeprocessospequenos,causandopaginaçãoexcessiva.
138
24
GerenciamentodeMemóriaThrashing
• Possívelsolução:Númerodepáginasproporcionalaotamanhodoprocessoàalocaçãodinâmicaduranteaexecuçãodosprocessos;
• PFF(PageFaultFrequency):algoritmoinformaquandoaumentaroudiminuiraalocaçãodepáginasdeumprocesso,controlandootamanhodoconjuntodealocação;
139
GerenciamentodeMemóriaMemóriaVirtual
Programador deve saber da técnica? Não Sim
Espaços de endereçamento existentes 1 Vários
Espaço total de endereço pode exceder memória física?
Sim Sim
É possível distinguir procedimento de dados e protegê-los?
Não Sim 140
Consideração Segmentação Paginação
GerenciamentodeMemóriaMemóriaVirtual
Tabelas de tamanho variável podem ser acomodadas sem problemas?
Não Sim
Compartilhamento de procedimentos entre usuário é facilitado?
Não Sim
Por que? Para obter espaço de endereçamento maior sem aumentar memória física
Para permitir que programas e dados possam ser divididos em espaços de endereçamento logicamente independentes; compartilhamento e proteção 141
Consideração Segmentação Paginação