• Nenhum resultado encontrado

11 gerencia memoria virtual

N/A
N/A
Protected

Academic year: 2021

Share "11 gerencia memoria virtual"

Copied!
40
0
0

Texto

(1)

Gerência de Memória Virtual

(2)

2  

Introdução  

•  Memória  virtual:  técnica  sofis:cada  e  

poderosa  de  gerência  de  memória,  onde  as   memórias  principal  e  secundária  são  

combinadas  dando  ao  usuário  a  ilusão  de   exis:r  uma  memória  muito  maior  que  a   capacidade  real  da  memória  principal.   •  Permite  um  número  maior  de  processos  

compar:lhando  a  memória  principal,  já  que   apenas  partes  de  cada  processo  estarão  

(3)

Espaço  de  Endereçamento          

Virtual    

•  O  conceito  de  memória  virtual  se  aproxima   muito  da  ideia  de  um  vetor.  

•  Quando  um  programa  faz  referência  a  um   elemento  do  vetor,  ão  há  preocupação  em   saber  a  posição  de  memória  daquele  dado.   •  Um  programa  no  ambiente  de  memória  

virtual  não  faz  referência  a  endereços  Psicos   de  memória,  mas  apenas  a  endereços  

virtuais.  

•  O  mecanismo  de  tradução  do  endereço  

(4)

4  

Espaço  de  Endereçamento          

Virtual    

(5)

Espaço  de  Endereçamento          

Virtual    

(6)

6  

Espaço  de  Endereçamento          

Virtual    

(7)

Mapeamento  

•  O  processador  apenas  executa  instruções  e   referencia  dados  residentes  no  espaço  de   endereçamento  real.  

•  Deve  exis:r  um  mecanismo  que  transforme   os  endereços  virtuais  em  reais  –  

Mapeamento.  

•  Nos  SOs  modernos,  a  tarefa  de  tradução  de   endereços  virtuais  é  realizada  por  hardware   juntamente  com  o  SO,  de  forma  a  não  

comprometer  seu  desempenho  e  torná-­‐lo   transparente  a  usuários  e  sua  aplicações.  

(8)

8  

(9)

Mapeamento  

•  O  disposi:vo  de  hardware  responsável  por   esta  tradução  é  conhecido  como  Unidade  de   Gerência  de  Memória  (Memory  Management  

Unity  –  MMU).  

•  A  MMU  sempre  é  acionada  quando  se  faz   referência  a  um  endereço  virtual.  

•  A  tabela  de  mapeamento  é  uma  estrutura  de   dados  existente  para  cada  processo.  

•  O  SO  u:liza  a  tabela  de  mapeamento  de  um   processo  em  execução  para  tradução  de  seus   endereços  virtuais.  

(10)

10  

(11)

Memória  Virtual  por  Paginação  

•  Técnica  de  gerência  de  memória  em  que  o   espaço  de  endereçamento  virtual  e  o  espaço   de  endereçamento  real  são  divididos  em  

blocos  de  mesmo  tamanho  chamado   páginas.  

•  Todo  o  mapeamento  de  endereço  virtual  em   real  é  realizado  através  de  tabelas  de  

páginas.  

•  Cada  processo  possui  possui  sua  própria   tabela  de  páginas.  Entrada  na  Tabela  de   Páginas  –  ETP.  

(12)

12  

(13)

Memória  Virtual  por  Paginação  

•  Tradução  de  

endereço  virtual:   vamos  ler  no  PLT,   página  179,  após  a   Fig.  10.6.  

(14)

14  

Memória  Virtual  por  Paginação  

•  Existe  um  bit  de   validade  que  

indica  se  uma   página  está  ou   não  na  memória   principal  –  valid  

(15)

Polí:cas  de  Busca  de  Páginas  

•  Determina  quando  uma  página  deve  ser   carregada  para  a  memória.  

•  Duas  polí:cas:  

–   Paginação  por  Demanda.   –  Paginação  Antecipada.  

•  Na  paginação  por  demanda,  as  páginas  dos   processos  são  transferidas  da  memória  

secundária  para  a  principal  apenas  quando   são  referenciadas.  Leva  somente  as  páginas   necessárias  para  a  memória  principal.  

(16)

16  

Polí:cas  de  Busca  de  Páginas  

•  Na  paginação  antecipada,  o  sistema  carrega   para  a  memória  principal,  além  da  página   referenciada,  outras  páginas  que  podem  ou   não  ser  necessárias  ao  processo  ao  longo  do   seu  processamento.  Caso  o  processo  não  

precise  das  páginas  carregadas  

antecipadamente,  o  sistema  terá  perdido   tempo  e  ocupado  memória  principal  sem   necessidade.  

(17)

Polí:cas  de  Alocação  de  Páginas  

•  Determina  quantos  frames  cada  processo   pode  manter  na  memória  principal.  

•  Duas  alterna:vas:  

–  Alocação  Fixa.  

–  Alocação  Variável.  

•  Na  alocação  fixa,  cada  processo  tem  um   número  máximo  de  frames  que  pode  ser   u:lizado  durante  a  execução  do  programa.  

–  Se  o  máximo  de  frames  não  for  suficiente:   elevado  número  de  page  faults.  

(18)

18  

Polí:cas  de  Alocação  de  Páginas  

•  Na  alocação  variável,  o  número  máximo  de   páginas  alocadas  ao  processo  pode  variar  

durante  sua  execução  em  função  de  sua  taxa   de  paginação  e  de  ocupação  da  memória  

principal.  

(19)

Polí:cas  de  Subs:tuição  de  Páginas  

•  Quando  um  processo  a:nge  o  seu  limite  de   alocação  de  frames  e  necessita  alocar  novas   páginas  na  memória  principal,  o  SO  deve  

selecionar,  dentre  aquelas  alocadas,  qual   deverá  ser  liberada.  

•  Uma  página  real,  quando  liberada  de  um   processo,  está  livre  para  ser  u:lizada  por   qualquer  outro  processo.  

•  Deve-­‐se  considerar  sempre  se  uma  página  foi   ou  não  modificada  antes  de  liberá-­‐la,  caso  

(20)

20  

Polí:cas  de  Subs:tuição  de  Páginas  

•  O  SO  grava  na  memória  secundária  antes  de   descartá-­‐la,  para  uso  em  futuras  referências   –  page  out.  

•  Sempre  que  uma  página  modificada  for  

novamente  referenciada  ocorrerá  um  page  

in,  carregando-­‐a  para  a  memória  principal  a  

(21)
(22)

22  

Polí:cas  de  Subs:tuição  de  Páginas  

•  A  polí:ca  de  subs:tuição  deve  ser  definida   como:  

–  Local.  

–  Global.  

•  Na  polí:ca  local,  apenas  as  páginas  do   processo  que  gerou  o  page  fault  são   candidatas  a  realocação.  

•  Na  polí:ca  global,  todas  as  páginas  alocadas   na  memória  principal  são  candidatas  à  

subs:tuição,  independente  do  processo  que   gerou  o  page  fault.  

(23)

Polí:cas  de  Subs:tuição  de  Páginas  

•  Na  polí:ca  de  alocação  fixa,  somente  pode-­‐ se  adotar  a  polí:ca  de  subs:tuição  local.  

•  A  polí:ca  de  alocação  variável  permite  uma   polí:ca  de  subs:tuição  tanto  local  quanto   global.  

(24)

24  

Algoritmos  de  Subs:tuição  de  

Páginas  

•  O  maior  problema  na  gerência  de  memória   virtual  por  paginação  não  é  decidir  quais   páginas  carregar  para  a  memória  principal,   mas  quais  liberar.  

•  Estes  algoritmos  têm  o  obje:vo  de  selecionar   os  frames  que  tenham  as  menores  chances   de  serem  referenciados  em  um  futuro  

próximo.  

•  Caso  contrário,  o  frame  poderia  retornar   diversas  vezes  para  a  memória  principal.  

(25)

Algoritmos  de  Subs:tuição  de  

Páginas  

•  Ó:mo.  

–  Seleciona  para  subs:tuição  uma  página  que  não   será  referenciada  no  futuro  ou  aquela  que  levará   o  maior  intervalo  de  tempo  para  ser  novamente   u:lizada.  

•  Aleatório.  

–  Não  u:liza  critério  algum  de  seleção.  

•  FIFO  (First-­‐In-­‐First-­‐Out).  

–  A  página  que  primeiro  foi  u:lizada  será  a  

primeira  a  ser  escolhida,  ou  seja,  o  algoritmo   escolhe  a  página  que  está  a  mais  tempo  na  

(26)

26  

Algoritmos  de  Subs:tuição  de  

Páginas  

•  LFU  (Least-­‐Frequently-­‐Used).  

–  Seleciona  a  página  menos  referenciada,  ou  seja,   o  frame  menos  u:lizado.  

•  LRU  (Least-­‐Recently-­‐Used).  

–  Seleciona  a  página  que  está  a  mais  tempo  sem   ser  referenciada.  

•  NRU  (Not-­‐Recently-­‐Used).  

–  É  semelhante  ao  LRU,  porém  com  menor   sofis:cação.  

–  U:liza  um  Bit  de  Referência  (BR)  que  indica  se  a   página  foi  u:lizada  recentemente.  

(27)

Algoritmos  de  Subs:tuição  de  

Páginas  

•  FIFO  com  buffer  de  páginas.  

–  Combina  uma  lista  de  páginas  alocadas  (LPA)   com  uma  lista  de  páginas  livres  (LPL).  

–  LPA  organiza  as  páginas  alocadas  há  mais  tempo   no  início  da  lista,  enquanto  as  mais  recentes  

ficam  no  final.  

–  LPL  organiza  todos  os  frames  livres  da  memória   principal,  sendo  que  as  páginas  livres  há  mais  

tempo  estão  no  início  e  as  mais  recentes  no  final.   –  Sempre  que  um  processo  necessita  alocar  uma  

nova  página,  o  SO  seleciona  a  primeira  da  LPL,   colocando-­‐a  no  final  da  LPA.  

(28)

28  

Algoritmos  de  Subs:tuição  de  

Páginas  

•  FIFO  com  buffer  de  páginas.  

–  Caso  seja  necessário  subs:tuição  de  página,  é   selecionado  o  frame  a  mais  tempo  em  uso,  ou   seja,  o  primeiro  da  LPA.  

(29)

Algoritmos  de  Subs:tuição  de  

Páginas  

•  FIFO  Circular.  

–  Usa  como  base  a  FIFO,  porém  com  as  páginas   alocadas  na  memória  principal  estão  em  uma   estrutura  de  lista  circular.  

–  Existe  um  ponteiro  que  guarda  a  posição  da   página  mais  an:ga.  

–  Cada  página  também  possui  um  BR.  

–  Quando  é  necessário  subs:tuir,  o  SO  verifica  se  o   frame  apontado  tem  o  BR  igual  a  0,  se  sim,  a  

página  é  selecionada  para  descarte.  

–  Caso  o  BR  seja  igual  a  1,  o  bit  é  desligado  e  o   ponteiro  incrementado.  

(30)

30  

Algoritmos  de  Subs:tuição  de  

Páginas  

(31)

Tamanho  da  Página  

•  O  tamanho  da  página  está  associado  à  

arquitetura  do  hardware  e  varia  de  acordo   com  o  processador.  

•  O  tamanho  da  página  tem  impacto  direto   sobre  o  número  de  entradas  na  tabela  de   páginas  e,  consequentemente,  no  tamanho   da  tabela  e  no  espaço  ocupado  na  memória   principal.  

•  O  que  é  melhor,  páginas  grandes  ou   pequenas?  

(32)

32  

Memória  Virtual  por  Segmentação  

•  Técnica  de  gerência  de  memória  onde  o  

espaço  de  endereçamento  virtual  é  dividido   em  blocos  de  tamanhos  diferentes  chamados   segmentos.  

•  Um  programa  é  dividido  logicamente  em   sub-­‐ro:nas  e  estruturas  de  dados,  que  são   alocadas  em  segmentos  na  memória  

(33)
(34)

34  

Memória  Virtual  por  Segmentação  

•  Enquanto  da  técnica  de  paginação,  o  

programa  é  dividido  em  páginas  de  tamanho   fixo,  sem  qualquer  ligação  com  sua  estrutura,   na  segmentação,  existe  uma  relação  entre  a   lógica  do  programa  e  sua  alocação  na  

memória  principal.  

•  O  espaço  de  endereçamento  virtual  de  um   processo  possui  um  número  máximo  de  

segmentos  que  podem  exis:r,  onde  cada  

segmento  pode  variar  de  tamanho  dentro  de   um  limite.  

(35)

Memória  Virtual  por  Segmentação  

•  O  mecanismo  de   mapeamento  é  

semelhante  do  de   paginação.  

•  ETS  –  Entrada  na   Tabela  de  

(36)

36  

Memória  Virtual  por  Segmentação  

•  Vantagem:  facilidade  para  lidar  com   estruturas  de  dados  dinâmicas.  Na   paginação,  aumentar  uma  estrutura  

dinâmica  implica  alocar  novas  páginas.  

•  O  SO  mantém  uma  tabela  com  áreas  livres  e   ocupadas  da  memória.    

•  Quando  um  novo  segmento  é  referenciado,  o   SO  seleciona  um  espaço  livre  suficiente  (best-­‐

fit,  worst-­‐fir  ou  first-­‐fit).  

•  Enquanto  na  paginação  ocorre  fragmentação   interna,  na  segmentação,  ocorre  a  externa.  

(37)

Memória  Virtual  por  Segmentação  

Caracterís@ca   Paginação   Segmentação  

Tamanho  de  blocos  de  memória   Iguais   Diferentes  

Proteção   Complexa   Mais  simples  

Compar:lhamento   Complexo   Mais  simples  

Estrutura  de  dados  dinâmicas   Complexo   Mais  simples  

Fragmentação  interna   Pode  exis:r   Não  existe  

Fragmentação  externa   Não  existe   Pode  exis:r  

Programação  modular   Dispensável   Indispensável  

(38)

38  

Memória  Virtual  por  Segmentação  

com  Paginação  

•  Técnica  de  gerência  de  memória  na  qual  o   espaço  de  endereçamento  é  dividido  em   segmentos  e,  por  sua  vez,  cada  segmento   dividido  em  páginas.  

•  Tem  o  obje:vo  de  oferecer  as  vantagens   tanto  da  técnica  de  paginação  quanto  da   técnica  de  segmentação.  

(39)

Memória  Virtual  por  Segmentação  

com  Paginação  

(40)

40  

Referências

Documentos relacionados

A partir dos prontuários dos pacientes usuários de próteses totais duplas instaladas entre 1987 e 1997 na Disciplina de Prótese Total da Faculdade de Odonto- logia de

Visando garantir a idoneidade da promoção, no caso de apresentação de mais de (i) 02 (duas) notas/cupons fiscais e/ou comprovantes de compras emitidos para a mesma pessoa, pela

Os fanclipes e os inúmeros videoclipes feitos pelos fãs (recombinando imagens, ressignificando sonoridades) parecem ser a premissa para a criação neste período amplamente

Explica 2 aspetos relativos à importância dos transportes marítimos e aéreos de modo completo, dois para um dos tópicos ou um para cada

A raiz de possíveis divergências pode resi- dir na maior ou menor ênfase que se atribua a cada uma das três dimensões propostas por Toledo (1994), as quais compõem, em

I. Ética é a ciência normativa dos comportamentos humanos, sendo definida através de leis específicas, de acordo com o interesse das pessoas. O fim almejado pela ética

Para poderem obter proteção para a Bordetella bronchiseptica, os cães não vacinados devem receber uma dose, no mínimo, 72 horas antes do período previsível de risco (ver também

No cap´ıtulo 1, introduzimos a teoria b´ asica necess´ aria ao desenvolvimento do assunto apresentando os conceitos de espa¸co projetivo, variedades, curvas racionais normais e