Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma...

24
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” Gerenciamento de Memória Recurso importante; Tendência atual do software Lei de Parkinson: “Os programas se expandem para preencher a memória disponível para eles” (adaptação); Hierarquia de memória: Cache; Principal; Disco; 2 Gerenciamento de Memória Idealmente os programadores querem uma memória que seja: Grande Rápida Não Volátil Baixo custo Infelizmente a tecnologia atual não comporta tais memórias A maioria dos computadores utiliza Hierarquia de Memórias que combina: Uma pequena quantidade de memória cache, volátil, muito rápida e de alto custo Uma grande memória principal (RAM), volátil, com centenas de MB ou poucos GB, de velocidade e custo médios Uma memória secundária, não volátil em disco, com gigabytes (ou terabytes), velocidade e custo baixos 3 Gerenciamento de Memória Hierarquia de Memória Cache Pequena quantidade k bytes Alto custo por byte Muito rápida Volátil Memória Principal Quantidade intermediária M bytes Custo médio por byte Velocidade média Volátil Disco Grande quantidade – G bytes Baixo custo por byte Lenta Não volátil 4 Hierarquia de Memó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

Transcript of Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma...

Page 1: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 2: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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.

Page 3: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 4: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 5: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 6: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 7: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 8: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 9: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 10: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 11: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 12: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 13: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 14: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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)

Page 15: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 16: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 17: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 18: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 19: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 20: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 21: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 22: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 23: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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

Page 24: Gerenciamento de Memória · 2019. 9. 24. · 6 Gerenciamento de memória com Mapas de Bits (a) Uma parte da memória com 5 processos e 3 buracos • As regiões em branco (1 no bitmap)

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