Memória virtual 2

50
Geovane Pazine Filho Guilherme Augusto S. G. Loiola Inael Rodrigues de Oliveira Neto Jackeline Neves de Almeida Wilker de Jesus Machado

Transcript of Memória virtual 2

Page 1: Memória virtual 2

Geovane Pazine Filho

Guilherme Augusto S. G. Loiola

Inael Rodrigues de Oliveira Neto

Jackeline Neves de Almeida

Wilker de Jesus Machado

Page 2: Memória virtual 2

ALOCAÇÃO DE QUADROS

THRASHING

ARQUIVOS MAPEADOS NA MEMÓRIA

ALOCANDO MEMÓRIA DO KERNEL

OUTRAS CONSIDERAÇÕES

EXEMPLOS DE SISTEMA OPERACIONAL

PERGUNTAS E RESPOSTAS

Page 3: Memória virtual 2

Igual:◦ Todos recebem o mesmo número de quadros.

Proporcional:◦ Função em relação ao tamanho do processo define

o número de quadros.

Page 4: Memória virtual 2

Igual:◦ 93 quadros com tamanho de 1k cada

◦ 2 processos com tamanho 5k

Cada processo ficaria com 46 quadros e 1 quadroficaria como quadro livre.

◦ Caso ruim:

2 processos: 1 com tamanho de 10k e outro de 127k.

Page 5: Memória virtual 2

Proporcional:◦ Sendo Q o número de quadros para cada processo:

Q = (Si / Σ Si) x m Si é o tamanho do processo

m é a quantidade total de quadros

◦ 93 quadros com tamanho de 1k cada.

◦ 2 processos: 1 de 10k e outro de 127k.

Processo de 10k fica com 6 quadros

Processo de 127k fica com 86 quadros

Page 6: Memória virtual 2

Processos com maior prioridade recebemmais quadros.

Page 7: Memória virtual 2

Global:◦ Substituição de um quadro do conjunto de todos os

quadros.

Local:◦ Substituição de um quadro do seu próprio conjunto

de quadros.

Page 8: Memória virtual 2

Se quantidade de quadros alocados a um processo de baixa prioridade ficar abaixo da quantidade mínima exigida pela arquitetura do computador, precisamos suspender a execução desse processo.

Quantidade de quadros resulta em: processo

-Retiramos páginas restantes e liberamos quadros.

X

Page 9: Memória virtual 2

Quando não há quadros suficientes para darsuporte às páginas em uso ativo:

FALHA DE PÁGINA!!!

Então ele terá que:

SUBSTITUIR ALGUMA PÁGINA

Mas...

Page 10: Memória virtual 2

Todas as suas páginas estão em uso ativo!!! Então...

Ele precisa substituir uma página que será necessária novamente em seguida!

NOVA FALHA!!!

LOOP: SUBSTITUI & FALHA!!! = ALTA ATIVIDADE DE PÁGINA, que é o:

Page 11: Memória virtual 2

Definição:

O thrashing resulta em graves problemas de desempenho!

Paginação Execução

Page 12: Memória virtual 2

Observemos o exemplo baseado nos primeiros sistemas de paginação:

Utilização da CPU então grau de multiprogramação com um novo processo no sistema. Um algoritmo de substituição de página global é utilizado; ele substitui as páginas sem considerar o processo ao qual pertencem.

Quando o processo entra em nova fase de execução e precisa de mais quadros. Então começa as falhas e a remoção de quadros de outros processos. Mas esses outros processos também precisam dessas páginas, logo, novas falhas e novas remoções de quadros de outros processos.

Page 13: Memória virtual 2

Exemplo [cont]

Processos com falhas precisam usar o dispositivo de paginação para enviar e receber páginas. E a medida que são

enfileirados para o dispositivo de paginação, a fila de prontos se esvazia.

Processos Paginação e CPU esperam

Page 14: Memória virtual 2

O escalonador de CPU vê CPU e multiprogramação.O novo processo requisita mais quadros causando mais falhas de página e uma fila maior para o dispositivo de paginação.

CPU ainda mais e o escalonador tenta multiprogramação.

Acontecendo o THRASHING!

Falha de página e acesso à memória

Não realiza trabalho, pois os processos estão todos paginando.

Exemplo [cont]

Page 15: Memória virtual 2

Multiprogramação e a CPU ,até ser alcançado o máximo.

Multiprogramação ainda mais, thrashingentra em cena e a CPU bruscamente.

Para aumentar a utilização de CPU e acabar com o thrashing temos que o grau de multiprogramação.

Page 16: Memória virtual 2

Podemos limitar os efeitos do thrashingusando um algoritmo de substituição local.

Assim um processo que iniciou thrashing não poderá roubar quadros de outro.

Page 17: Memória virtual 2

Fornecer a um processo quantos quadros ele precisar é uma forma de impedir o thrashing.

Modelo de localidade – quanto quadros um processo está usando?

Page 18: Memória virtual 2

Baseado na suposição de localidade;

examina referências mais recentes;

evita thrashing e mantém o alto grau de multiprogramação;

O conjunto de trabalho (WS) é formado pelas páginas nas referências de páginas mais recentes;

A propriedade mais importante em WS é o seu tamanho.

Podemos calcular o tamanho de WS de cada processo (WSSi). Se o total da demanda de quadros (D = ∑WSSi) for maior que o total de quadros, ocorrerá thrashing, porque alguns quadros não terão quadros suficientes (processo i precisa de WSSi quadros);

O SO pode monitorar o conjunto de páginas de cada processo e alocar o número suficiente de quadros para o seu conjunto de trabalho. Se D > quadros disponíveis, um processo deverá ser suspenso e suas páginas são descarregadas e alocadas a outros processos.

Page 19: Memória virtual 2

ajuda no controle de thrashing;

alta taxa de falta de página - processo precisa de mais quadros;

baixa taxa de falta de página - talvez processo com número excessivo de quadros.

Page 20: Memória virtual 2
Page 21: Memória virtual 2

E/S de arquivos mapeados na memória permite que acessos sejam tratados como acesso a rotinas de memória pelo mapeamento de blocos do disco em páginas na memória

Um arquivo é lido inicialmente usando paginação sob demanda. Uma porção do arquivo é lida do sistema de arquivos em páginas físicas. Leituras e escritas subseqüentes de/para o arquivo são tratados como acessos a memória comuns.

Simplifica o acesso a arquivos tratando E/S através da memória ao invés do uso de chamadas de sistemas read() write()

Também permite que vários processos mapeiem o mesmo arquivo através do compartilhamento de páginas na memória

Page 22: Memória virtual 2
Page 23: Memória virtual 2

E/S mapeada na memória Intervalos de endereços de memórias são

separados e mapeados para registradores de dispositivos.

As leituras e escritas nesses endereços de memória fazem com que os dados sejam transferidos de e para os registradores de dispositivo.

Esse método é apropriado para dispositivos que possuem tempos de resposta curtos, como controladores de vídeo.

Page 24: Memória virtual 2

Buddy System• Alocação da memória a partir desegmentos de tamanho fixo• Memória alocada de tamanho 2n– Uma requisição é arredondada para um

tamanho 2n– Quando um tamanho menor deve ser

alocado, um segmento maior é dividido na metade.

• Continua até que o tamanho adequado seja obtido Buddy

Page 25: Memória virtual 2
Page 26: Memória virtual 2

• Estratégia alternativa:• Slab: uma ou mais páginas físicamente contíguas• Cache: um ou mais Slabs• Cache única para cada estrutura de dados do kernel

– Cada cache é preenchida com dados do kernel – instâncias das estruturas de dados

• Quando uma cache é criada, os objetos preenchidos são marcados como livres

• Quando as estruturas são utilizadas, os objetos são marcados como usados

• Se uma slab está cheio, um novo slab é utilizado– Se nenhum slab está disponível, criar um novo slab

• Benéficios: sem fragmentação, requisição de memória é satisfeita rapidamente

Page 27: Memória virtual 2
Page 28: Memória virtual 2

As principais decisões tomadas para um

sistema de página são as seleções de um

algoritmo de substituição e uma política de

alocação, discutidas anteriormente. Existem

também muitas outras considerações, e

discutiremos algumas delas.

Page 29: Memória virtual 2

Para reduzir o alto nível de paginas ausentes que ocorrem na inicialização do processo.

Pré-paginar todas ou algumas páginas que o processo irá precisar, antes de serem referenciadas.

Mas se páginas pré-paginadas não são usadas, E/S e memória foram desperdiçados.

Assuma que s páginas são pré-paginadas e x delas são usadas Se o custo de s * x falta páginas evitados > ou < que o

custo da pré-paginação s * (1- x) páginas desnecessárias? x próximo de zero ⇒ perdas na pré-paginação

Page 30: Memória virtual 2

Escolha do tamanho da página deve levar em

consideração:

fragmentação

tamanho da tabela

sobrecarga de E/S

localidade

Page 31: Memória virtual 2

Alcance da TLB – A quantidade de memória acessível a partir da TLB.

Alcance da TLB = (Tamanho da TLB) X (Tamanho da Página).

Idealmente, o conjunto-de-trabalho de cada processo é armazenado na TLB. Em caso contrário existirá um alto grau de páginas ausentes.

Aumentar o tamanho da página. Isso pode causar um aumento na fragmentação uma vez que nem todas as aplicações necessitam de páginas de tamanho grande.

Fornecer vários tamanhos de página. Isso possibilita aos aplicativos que necessitam de páginas maiores a oportunidade de usá-las sem aumentar a fragmentação. a maneira de aumento

Page 32: Memória virtual 2

Problema com tabela de páginas é o seu tamanho

Tabela de páginas invertida surge como uma solução Uma tabela de páginas para todo o sistema (não mais por

processo) Uma entrada para cada frame Endereço lógico da página e a qual processo pertence

Endereço lógico é formado por <process_id, página, deslocamento>

Cada entrada da tabela possui <process_id; página>

Tabela é pesquisada e retorna, se presente, o índice i associado a entrada Cada índice corresponde a um frame

Page 33: Memória virtual 2
Page 34: Memória virtual 2

Estrutura de programa

Int[128,128] data; Cada linha é armazenada em uma página Programa 1

for (j = 0; j <128; j++)for (i = 0; i < 128; i++)

data[i,j] = 0;128 x 128 = 16,384 páginas ausentes

Programa 2

for (i = 0; i < 128; i++)for (j = 0; j < 128; j++)

data[i,j] = 0;128 páginas ausentes

Page 35: Memória virtual 2

E/S Interlock – Páginas algumas vezes devem ser travadas (lock) na memória.

Considere E/S. Páginas que são usadas para copiar um arquivo de um dispositivo devem ser travadas para não serem selecionadas para despejo por um algoritmo de substituição de página

Page 36: Memória virtual 2
Page 37: Memória virtual 2

Paginação com demanda com clustering;

O clustering trata de falhas trazendo a página que falta com várias outras páginas após a página que falta;

Quando um processo é criado ele recebe um mínimo e um máximo de conjunto de trabalho;

Page 38: Memória virtual 2

O conjunto mínimo de trabalho é quantidade mínima de página que o processo tem garantias de ter na memória(50);

Se houver memória disponível, o processo pode receber tantas páginas quanto seu conjunto máximo de trabalho (345);

O gerenciador de memória virtual mantém um lista de quadro de páginas livres;

Page 39: Memória virtual 2

Thread incorre em uma falha de página, ◦ o kernel atribui uma página à thread;

É imperativo que o kernel mantenha uma quantidade suficiente de memória livre à disposição.

Page 40: Memória virtual 2

Versões recentes do kernel do Solarisfornecem melhorias do algoritmo de paginação.

Uma melhoria é a paginação por prioridade.

Page 41: Memória virtual 2

Se tivermos 85 quadros com tamanho 1k cada e 2 processos trabalhando, 1 com tamanho 5k e outro de tamanho 10k.

◦ Quantos quadros cada processo ficaria com o metodo Fixo Igual? E no método Fixo Proporcional?

Page 42: Memória virtual 2

Fixo Igual:◦ 85/2 = 2*42 + 1

Portanto cada processo ficaria com 42 quadros e 1 quadro ficaria livre.

Fixo Proporcional:◦ (5/15)*85 = 28

◦ (10/15)*85 = 56

Portanto, o processo de tamanho 5k ficaria com 28 quadros e o de 10k com 56 e 1 quadro ficaria livre.

Page 43: Memória virtual 2

O que causa thrashing?

Page 44: Memória virtual 2

Ocorrência de paginação excessiva (realocação de quadros) e baixa execução.

Resultando em graves problemas de desempenho!

Page 45: Memória virtual 2

Sistema buddy permite alocação de memória de tamanho variável?

Page 46: Memória virtual 2

Não

Page 47: Memória virtual 2

Quanto a E/S mapeada na memória, este método é apropriado para quais tipos de dispositivos?

Page 48: Memória virtual 2

R: Dispositivos que possuem tempos de resposta curtos, como controladores de vídeo.

Page 49: Memória virtual 2

Se a memória estiver abaixo do limite é utilizado CORTE AUTOMÁTICO DO CONJUNTO DE TRABALHO para restaurar o valor do limite; Como funciona o corte automático?

Page 50: Memória virtual 2

R: Se um processo recebeu mais páginas do que o seu mínimo o GMV removerá as páginas até atingir seu mínimo. Se o processo está no seu mínimo, pode receber páginas da lista de quadros livres se tiver memória livre.