Você está na página 1de 13

20/09/2021

Gerência de Memória:
Memória
Virtual
Sistemas Operacionais Abertos e Mobile
Prof. Leandro Fernandes

Memória Virtual

• Técnica que permite a execução de processos sem que eles estejam completamente
carregados na memória.
• Objetivo: utilizar a memória física de forma eficiente
• Carregar para a memória apenas os trechos do processo que serão necessários a sua execução
em um determinado momento.
• Possibilita a execução de processos maiores do que a RAM; e
• Aumenta o grau de multiprogramação

• Princípio básico:
• Localidade de referência
• Memória total disponível = capacidade da RAM + tamanho da área de swap

1
20/09/2021

Localidade de Referência

• TEMPORAL: regiões de código e dados tendem a ser novamente


acessados em um intervalo de tempo próximo.
• Ex: blocos de comandos de repetição
• ESPACIAL: regiões de código e dados que são acessados costumam ser
próximas entre referências.
• Ex: instruções sequenciais, dados em vetores
• Como consequência, é possível que um processo possa executar com
apenas alguns trechos carregados em memória em um dado intervalo
de tempo.

Implementação de Memória Virtual

• Emprega mecanismos de alocação de memória não contigua.


• Exige suporte de hardware para paginação, segmentação ou segmentação com
paginação.
• Para o seu funcionamento, é necessário:
• Controlar o fluxo de páginas (ou segmentos) entre a RAM e área de swap.
• Gerenciar áreas livres e ocupadas
• Mapeamento do endereçamento lógico para o endereçamento físico
• Substituição de páginas/segmentos (trocas)
• Área de troca na memória secundária (swap).
• Dimensionamento; e
• Definir uma formatação específica ou utilizar a mesma do sistema de arquivos.

2
20/09/2021

Políticas de paginação

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


• PAGINAÇÃO SIMPLES:
• Todas as páginas virtuais do processo são carregadas para a memória principal;
• Assim, sempre todas as páginas são válidas.
• PAGINAÇÃO POR DEMANDA – DEMAND PAGING:
• Apenas as páginas efetivamente acessadas pelo processo são carregadas na memória
principal;
• Quais páginas virtuais foram carregadas: Bit de controle (bit de residência);
• Página inválida.
• PAGINAÇÃO ANTECIPADA – ANTECIPATORY PAGING:
• Carrega para a memória principal, além da página referenciada, outras páginas que
podem ou não ser necessárias para o processo.

Paginação por
Demanda

3
20/09/2021

Paginação por Demanda

• Implementação de memória virtual usando paginação.


• Carregar e manter em memória apenas as páginas necessárias em um
dado momento → localidade de referência.
Processo
• Processo fica parcialmente na memória. n

• Em caso de falta de memória, realiza-se a troca


RAM 0 Área de
de páginas entre a memória física e o disco. swap

Apesar de usar a área de swap, o sistema está paginando Page-out


(page-in e page-out). Conceitualmente o processo de ....
swapping é a movimentação de processos inteiros. Page-in

Questões relativas a paginação por demanda

• Gerenciamento de quadros e páginas


• Manter a informação sobre frames livres e ocupados (bit map)
• Localização das páginas: memória, área swap ou não criada?
• Quando e onde carregar uma página?
• Desempenho
• Algoritmos para alocação de memória
• Quanto de memória é necessário alocar na criação de um processo?
• Quanto de memória é usado durante a execução do processo?
• Algoritmos de substituição
• Qual página deve deixar a memória para dar lugar a uma nova página?

4
20/09/2021

Localização das Páginas

• Uma referencia de memória sempre está associada a uma página.


• Situações possíveis:
• Página está carregada na memória (página presente)
• Página está na área de swap (página ausente)
• Página não está na memória e nem no swap (página ausente e não alocada)
• Uma página não alocada corresponde a uma entrada inválida na tabela de páginas
• Modificações nas entradas da Tabela de Páginas:
• Inclusão de novos bits de gerenciamento: bit de presente/ausente; bit de
modificação; bits de referência* ou informação de acesso*, etc.
• Frame associado a página ou local de armazenamento no disco.
(*) utilizados pelos algoritmos de substituição de páginas

Página Inválida

• A MMU gera uma interrupção de proteção e aciona o sistema


operacional;
• Se a página está fora do espaço de endereçamento do processo, o processo é
abortado;
• Se a página ainda não foi carregada na memória principal, ocorre uma falta de
página (page fault).

10

5
20/09/2021

Falta de Página

• O processo é suspenso e seu descritor é inserido em uma fila especial


– fila dos processos esperando uma página virtual;
• Uma página real livre deve ser alocada;
• A página virtual acessada deve ser localizada no disco;
• Operação de leitura de disco, indicando o endereço da página virtual
no disco e o endereço da página real alocada.

11

• Se ausente ou inválida, uma interrupção aciona o S.O.


Sequência de que deve alocar um quadro e carregar a página.
• Após isso, a Tabela de Páginas do processo é atualizada,
operações do indicando que a página é válida e está no frame;

carregamento • Então, o descritor do processo é retirado da fila especial


e colocado na fila do processador (escalonamento).

Processo S.O.

Tabela de Páginas Área de swap ou


... RAM imagem do executável
mov ax, m fn
...
i

....

O bit de presença indica que a página f2


não está carregada na memória (ausente f1
f0
ou inválida), produzindo uma INTR

12

6
20/09/2021

Políticas de
substituição

13

Políticas de substituição

• A liberação é feita por meio de troca de páginas.


• O objetivo é escolher como página vítima aquela que provavelmente
não será referenciada em um futuro próximo.
• POLÍTICA DE SUBSTITUIÇÃO LOCAL:
• apenas páginas dos próprios processos são utilizadas na troca;
• POLÍTICA DE SUBSTITUIÇÃO GLOBAL:
• páginas de todos os processos são utilizadas na troca.

14

7
20/09/2021

Considerações: Local e Global

• Algoritmos de substituição local: dificuldade para se definir a


quantidade de páginas cada processo pode utilizar.
• Algoritmo de substituição global: processos com menor prioridade
podem ter um número muito reduzido de páginas e, com isso,
acontecem muitas faltas de páginas.
• Algoritmos de substituição local alocam uma fração fixa de memória
para cada processo; enquanto que algoritmos de substituição global
alocam molduras de páginas entre os processos em execução, variando
o número de páginas no tempo.

15

• Ótimo;
• NRU;
• FIFO;
Algoritmos para • Segunda Chance;
• Relógio;
Troca de Páginas: • LRU;
• Working Set;
• WSClock.

16

8
20/09/2021

Algoritmos de substituição

• ÓTIMO • NOT RECENTLY USED PAGE REPLACEMENT


(NRU)
• Retira da memória a página que • Troca as páginas não utilizadas
tem menos chance de ser recentemente.
• 02 bits, R e M, associados a cada página
referenciada. • Classe 0: não referenciada, não modificada;
• Praticamente impossível de se saber; • Classe 1: não referenciada, modificada;
• Impraticável; • Classe 2: referenciada, não modificada;
• Classe 3: referenciada, modificada
• Usado em simulações para • R e M são atualizados a cada referência à
comparação com outros memória.
algoritmos. • Periodicamente, o bit R é limpo para
diferenciar as páginas que não foram
referenciadas recentemente;
• Classe 3 → Classe 1

17

Algoritmos de substituição

• FIRST-IN FIRST-OUT PAGE • SEGUNDA CHANCE


REPLACEMENT (FIFO) • FIFO + bit R;
• S.O. mantém uma listas das • Página mais velha é candidata em
páginas correntes na memória; potencial.
• A página no início da lista é a mais • Funcionamento:
antiga e a página no final da lista é a • Se o bit R == 0, então a página é
mais nova. retirada da memória;
• Simples, mas pode ser ineficiente, • Senão, R = 0 e dá-se uma nova chance
pois uma página que está em uso a página colocando-a no final da lista.
constante pode ser retirada;
• Pouco utilizado.

18

9
20/09/2021

Algoritmos de substituição

• RELÓGIO • LEAST RECENTLY USED PAGE


• Uma lista circular com ponteiro REPLACEMENT (LRU)
apontando para a página mais • Troca a página menos referenciada
antiga; ou modificada recentemente;
• Algoritmo repete até encontrar • Alto custo.
uma página com R = 0. • Lista encadeada com as páginas que
• Funcionamento: estão na memória, sendo que as mais
• Se R == 0 então troca de página e recentemente utilizadas no início e as
desloca o ponteiro; menos utilizadas no final;
• Se R == 1 então R = 0, desloca o • A lista deve ser atualizada a cada
ponteiro e continua a busca. referência da memória.

19

Algorit. LEAST RECENTLY USED PAGE REPLACEMENT (LRU)

• Pode ser implementado tanto por hardware quanto por software.


• Hardware: MMU deve suportar a implementação LRU;
• Contador em hardware (64 bits), que conta instruções executadas;
• Após cada referência à memória, o valor do contador é armazenado na entrada da
tabela de páginas referente a página acessada;
• Quando ocorre falta de página, o S.O. examina todos os contadores e escolhe a página
que tem menor valor;
• Tabela de páginas armazena o valor desse contador para saber quantas vezes a página
foi usada.
• Software: fundamentalmente de duas maneiras
• NFU (Not frequently used);
• Aging (Envelhecimento);

20

10
20/09/2021

Algoritmos de substituição

• NOT FREQUENTLY USED (NFU) • AGING


• Para cada página existe um • Modificação do NFU resolvendo o
contador, iniciado com zero e problema descrito anteriormente.
incrementado a cada referência. • Além de saber quantas vezes a
• Página com menor valor do página foi referenciada, também
contador é candidata a troca. controla quando ela foi
• Como esse algoritmo não se referenciada.
esquece de nada, há um problema: • Geralmente, 8 bits são suficientes
pode retirar páginas que estão para o controle se as interrupções
sendo referenciadas com de relógio (clock ticks) ocorrem a
frequência. cada 20 ms (10-3).

21

Algoritmos de substituição

• WORKING SET (WS) • WSCLOCK


• Paginação por demanda: páginas são • Relógio + WS
carregadas na memória somente • Lista circular de páginas formando um
quando são necessárias; anel a cada página carregada na
• Pré-paginação – Working set memória.
• Conjunto de páginas que um processo • Utiliza bit R e o tempo da última vez
está efetivamente referenciando em ao que a página foi referenciada;
longo das últimas t unidades de tempo.
• Objetivo: reduzir a falta de páginas.
• O bit M é utilizado para agendar
escrita em disco.
• S.O. gerencia quais páginas estão WS
• Se todas estiverem com M==1; então
• Utiliza bit R e o tempo de relógio escreve página atual no disco, e troca a
(tempo virtual) da última vez que a página;
página foi referenciada;

22

11
20/09/2021

Resumo dos algoritmos de Substituição

Algoritmo Comentário
Ótimo Não implementável, mas útil como um padrão de desempenho
NRU Muito rudimentar
FIFO Pode descartar páginas importantes
Segunda Chance Algoritmo FIFO bastante melhorado
Relógio Realista
MRU Excelente algoritmo, porém difícil de ser implementado da maneira exata
NFU Aproximação bastante rudimentar do MRU
Envelhecimento Aproximação bastante eficiente que se aproxima bem do MRU
Working Set Implementação cara
WSClock Algoritmo bom e eficiente.

23

Resumo dos algoritmos de Substituição

Algoritmos Locais Algoritmos Globais


• Working Set; • Ótimo
• WSClock. • NRU;
• FIFO;
• Segunda Chance;
• LRU;
• Relógio.

24

12
20/09/2021

Onde a página retirada é colocada?

• A área de troca (swap) é gerenciada como uma lista de espaços disponíveis.


• O endereço da área de troca é mantido na tabela de processos.
• Cálculo do endereço: MMU
• Possibilidade A: Assim que o processo é criado, ele é copiado todo para sua
área de troca no disco, sendo carregado para memória quando necessário;
• Área de troca diferente para dados, pilha e programa, pois área de dados pode crescer
e área de pilha crescerá certamente.
• Possibilidade B: Nada é alocado antecipadamente. O espaço em disco é
alocado quando a página for enviada para lá. Assim, processo na memória
RAM não fica “amarrado” a uma área específica.

25

Como fica o disco

Área de troca estática Área de troca dinâmica

26

13

Você também pode gostar