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

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

  • 1.
    Sistemas Operacionais I Gerênciade 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
  • 2.
    Objetivos  Descrever osbenefí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
  • 3.
    Contextualização  Memó riavirtual: 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
  • 4.
    Memória virtual maiorque a memória física ⇒
  • 5.
  • 6.
  • 7.
    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
  • 8.
    Transferência de memóriapaginada para disco
  • 9.
    Bit válido/inválido  Associa-seum 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!
  • 10.
    Tabela de paginaçãocom algumas páginas fora da memória principal
  • 11.
    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
  • 12.
    Sequência de passospara tratar uma falta de página
  • 13.
    Desempenho da paginaçãosob 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)
  • 14.
    Exemplo de paginaçãosob 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!!
  • 15.
    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)
  • 16.
    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
  • 17.
    Antes do processo1 modificar a página C
  • 18.
    Após o processo1 modificar a página C
  • 19.
    O que acontecequando 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
  • 20.
    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
  • 21.
    Exemplo da necessidadeuma substituição de página
  • 22.
    Processo básico desubstituiçã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
  • 23.
  • 24.
    Algoritmos de substituiçãode 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
  • 25.
    Gráfico de faltasde páginas versus número de quadros
  • 26.
    First-In-First-Out (FIFO)  Sequênciade 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
  • 27.
    FIFO ilustrando aAnomalia de Belady
  • 28.
  • 29.
    Algoritmo Ótimo  Substituia 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
  • 30.
  • 31.
    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
  • 32.
  • 33.
    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
  • 34.
    LRU com autilização de uma pilha
  • 35.
    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)
  • 36.
  • 37.
    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
  • 38.
    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
  • 39.
    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
  • 40.
    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
  • 41.
    Alocação global versuslocal  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
  • 42.
    Thrashing  Se umprocesso 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
  • 43.
  • 44.
    Monitorando a taxade 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