• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Gerência de Memória: Memória Virtual
 

Gerência de Memória: Memória Virtual

on

  • 1,448 views

Descrever os benefícios de um sistema de memória virtual

Descrever os benefícios de um sistema de memória virtual

Explicar os conceitos de paginação sob demanda, algoritmos de substituição de páginas e alocação de quadros

Statistics

Views

Total Views
1,448
Views on SlideShare
1,448
Embed Views
0

Actions

Likes
0
Downloads
71
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Gerência de Memória: Memória Virtual Gerência de Memória: Memória Virtual Presentation Transcript

    • Sistemas Operacionais I Gerência de Memória: Memória Virtual Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
    • Objetivos  Descrever os benefícios de um sistema de memó ria virtual  Explicar os conceitos de paginaç ão sob demanda, algoritmos de substituiç ão de páginas e alocaç ão de quadros
    • Contextualização  Memó ria virtual: separação da memó ria ló gica do usuário da memó ria física.  Apenas uma parte do programa precisa estar na memó ria para execuç ão  Portanto, o espaç o de endereç amento ló gico pode ser muito maior que o espaç o de endereç amento físico  Permite que os espaç os de endereç amento sejam compartilhados por vários processos  Permite que a criaç ão de processos seja mais eficiente  Memó ria virtual pode ser implementada de duas formas:  Paginaç ão sob demanda  Segmentaç ão sob demanda
    • Memória virtual maior que a memória física ⇒
    • Espaço de endereçamento virtual
    • Biblioteca compartilhada utilizando memória virtual
    • Paginação sob demanda  Traz uma página para a memó ria apenas quando ela é necessária  Menos operações de E/S  Menor utilização de memó ria  Resposta mais rápida  Mais usuários/processos  Página é necessária ⇒ referenciada  Referência invalida ⇒ aborta execução  Fora da memó ria ⇒ página é carregada  Lazy swapper – nunca traz uma página para memó ria a menos que ela seja necessária  Um Swapper que liga com páginas é chamada paginador
    • Transferência de memória paginada para disco
    • Bit válido/inválido  Associa-se um bit de validade a cada entrada da tabela de paginaç ão  (v ⇒ na memó ria, i ⇒ fora da memó ria)  Inicialmente setado para I para todas as entradas  Durante a traduç ão de um endereç o, se o bit vale I ⇒ falta de página!
    • Tabela de paginação com algumas páginas fora da memória principal
    • Falta de página  A primeira referência a uma página fora da memó ria causa uma exceç ão: falta de página 1. O Sistema Operacional uma outra tabela para decidir se houve uma:  Referência inválida ⇒ aborta o processo  Apenas uma referência a uma página fora da memó ria 1. Obtém um quadro livre 2. Carrega a página no quadro 3. Reconfigura as tabelas 4. Seta o bit de validade para v 5. Re-executa a instruç ão que gerou a falta de página
    • Sequência de passos para tratar uma falta de página
    • Desempenho da paginação sob demanda  Taxa de falta de páginas 0 ≤ p ≤ 1.0  se p = 0 não háfalta de páginas  se p = 1, toda referência causa uma falta  Tempo efetivo de acesso (EAT) EAT = (1 – p) x tempo de acesso a memó ria + p (tempo para tratar falta de página + tempo de swap out + tempo de carga da página + tempo para reiniciar a execuç ão)
    • Exemplo de paginação sob demanda  Tempo de acesso à memó ria = 200 nanossegundos  Tempo médio para tratamento de uma falta de página = 8 milissegundos  EAT = (1 – p) x 200 + p (8 milissegundos) = (1 – p x 200 + p x 8,000,000 = 200 + p x 7,999,800  Se um acesso a cada 1.000 causa uma falta de página então EAT = 8.2 microssegundos. 40 vezes mais lento!!
    • Criação de Processos  O uso de memó ria virtual possibilita outros benefícios durante a criaç ão de um processo:  Copy-on-Write  Arquivos mapeados em memó ria (mais tarde)
    • Copy-on-Write  Copy-on-Write (COW) permite que processos pai e filho compartilhem inicialmente as mesmas páginas de memó ria  Uma página só é copiada quando algum dos processos realiza uma operaç ão de escrita  COW permite uma criaç ão mais eficiente de processo pois apenas páginas modificadas são copiadas
    • Antes do processo 1 modificar a página C
    • Após o processo 1 modificar a página C
    • O que acontece quando não há quadro livre?  Substituiç ão de página – encontra alguma página na memó ria mas que não esteja realmente em uso e a salva no disco (swap out)  algoritmo!  desempenho – queremos um algoritmo que resulte no menor número possível de faltas de página  Algumas páginas podem ser trazidas para a memó ria várias vezes
    • Substituição de página  Impede que haja uma super-alocaç ão de memó ria ao modificar a rotina de tratamento de falta de página para incluir a substituiç ão  Usa um bit de modificaç ão (dirty) para reduzir o tempo de transferência – apenas páginas modificadas precisam ser gravadas no disco  Substituiç ão de páginas completa a separaç ão entre memó ria ló gica e memó ria física – uma memó ria virtual muito grande pode conviver com uma memó ria física bem menor
    • Exemplo da necessidade uma substituição de página
    • Processo básico de substituição 1. Localize a página desejada no disco 2. Localize um quadro livre: - Se háum quadro livre, utilize-o - Se não hátal quadro, utilizar um algoritmo de substituiç ão para escolher um quadro vítima 3. Carregue a página desejada no quadro (recentemente) livre; atualize as tabelas de páginas e de quadros 4. Re-execute a instruç ão que causou a falta de página
    • Substituição de página
    • Algoritmos de substituição de páginas  Queremos a menor taxa possível de faltas de página  Avaliamos um algoritmo utilizando uma sequência de acessos a memó ria (sequência de referência) e contando a quantidade de faltas de páginas  Em nossos exemplos utilizaremos as seguintes sequências: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
    • Gráfico de faltas de páginas versus número de quadros
    • First-In-First-Out (FIFO)  Sequência de referência: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5  3 quadros (3 páginas na memó ria ao mesmo tempo)  4 quadros  Anomalia de Belady: mais quadros ⇒ mais faltas de página 1 2 3 1 2 3 4 1 2 5 3 4 9 faltas 1 2 3 1 2 3 5 1 2 4 5 10 faltas 44 3
    • FIFO ilustrando a Anomalia de Belady
    • Substituição FIFO
    • Algoritmo Ótimo  Substitui a página que não seráacessada pelo maior período de tempo  Exemplo com 4 quadros 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5  Como obter essa informação?  Útil para comparação com outros algoritmos 1 2 3 4 6 faltas 4 5
    • Algoritmo Ótimo
    • Menos Recentemente Usada (LRU)  Sequência de referência: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5  Implementação com contador  Cada página possui um contador que é atualizado com o valor do reló gio sempre que a página é referenciada  Quando uma página precisa ser substituída, consultar o contador para remover a que possuir o menor valor 5 2 4 3 1 2 3 4 1 2 5 4 1 2 5 3 1 2 4 3
    • Menos Recentemente Usada (LRU)
    • Menos Recentemente Usada (LRU)  Implementaç ão com pilha – mantem uma pilha duplamente encadeada com os números das páginas:  Página referenciada  Move a página para o topo  Não requer algoritmo de busca
    • LRU com a utilização de uma pilha
    • Aproximações do LRU  Bit de referência  Associar um bit a cada página, inicialmente = 0  Quando a página é referenciada, bit = 1  Substitui a página com bit = 0 (se existir alguma)  Não se conhece a ordem  Segunda chance  Requer um bit de referência  Substituiç ão do reló gio  Se a página a ser substituída (em sentido horário) tem bit = 1, então  Seta bit = 0  Deixa a página na memó ria  Repete o processo para a pró xima página (em sentido horário)
    • Algoritmo da Segunda Chance
    • Algoritmo de Contagem  Mantem um contado para o número de referências a cada página  Algoritmo LFU: substitui a página com o menor contador  Algoritmo MFU: substitui a página com o maior contador
    • Alocação de Quadros  Cada processo precisa de um número mínimo de quadros  Dois esquemas principais de alocaç ão  Alocaç ão fixa  Alocaç ão por prioridade
    • Alocação fixa  Alocaç ão igualitária: se há 100 quadros e 5 processos, alocar 20 quadros para cada um  Alocaç ão proporcional: quadros são alocados de acordo com o tamanho dos processos si = tamanho do processo pi S = si∑ m = número total de quadros ai = alocação para pi = si S × m 5964 137 127 564 137 10 127 10 64 2 1 2 ≈×= ≈×= = = = a a s s m i
    • Alocação por prioridade  Usa uma alocaç ão proporcional baseada na prioridade ao invés do tamanho  Se o processo Pi causa uma falta de página  Seleciona um de seus quadros para substituiç ão  Seleciona um quadro de um processo de menor prioridade para substituiç ão
    • Alocação global versus local  Substituiç ão global: o processo seleciona um quadro para substituiç ão de uma lista com todos os quadros de memó ria - um processo pode tomar um quadro de outro  Substituiç ão local: cada processo só seleciona para substituiç ão os seus pró prios quadros
    • Thrashing  Se um processo não tem páginas “suficiente” a taxa de falta de páginas pode ser muito alta. Isso leva a :  Baixa utilizaç ão da CPU  O Sistema Operacional conclui que precisa aumentar o grau de multi-programaç ão  Um novo processo é adicionado à memó ria  Thrashing ≡ um processo fica paralisado com operaç ões de swap in e swap out
    • Thrashing
    • Monitorando a taxa de faltas de página  Definimos uma taxa aceitável de faltas de página  Se a taxa atual é muito baixa o processo perde um quadro  Se a taxa atual é muito alta o processo ganha um quadro