Download - Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

Transcript
Page 1: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 1Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Sistemas Operacionais IMemória Virtual

Antônio Augusto FröhlichGeovani Ricardo Wiedenhoft

[email protected]://www.lisha.ufsc.br/~grw

May 6, 2008

Page 2: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 2Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Motivação Limitação do espaço físico

Programas aumentam + do que o espaço físico

Armazenar todos espaços lógicos de um programa em espaços físicos

Armazenar todos os programas em espaços físicos

:(

Page 3: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 3Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Motivação Técnica Simples – sem trocas/paginação

● Monoprogramação – 1 programa/vez

Page 4: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 4Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Motivação

Page 5: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 5Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Motivação Técnica Simples – sem trocas/paginação

● Monoprogramação – 1 programa/vez

● Multiprogramação – partições fixas na memória

Page 6: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 6Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Motivação

Page 7: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 7Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Motivação Problemas:

● Programa limitado pelo tamanho do espaço físico● Desperdício de memória – manter código ñ utilizado

(Rotinas de tratamento de erro)● Programas ficam na memória até o término – prejudica 

programas que estão ativos e necessitam executar

Economia de memória caso o programa utilize apenas a memória necessária

Page 8: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 8Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping Algoritmo:

● Carregar cada processo inteiro – Swap in

● Executar temporariamente

● Devolver o processo para o disco – Swap out

Page 9: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 9Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping

Page 10: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 10Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping Tamanhos e números da partições da memória 

variam dinamicamente

Otimiza a utilização da memória

Problemas:● Lacunas entre alocações – Compactação de memória● Tamanho de memória que deve ser alocado?

●Mover processo para outra espaço físico●Trocar processos para o disco●Alocar um espaço extra

Page 11: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 11Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping

Page 12: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 12Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping – Gerenc. de Memória – Mapas de Bits Memória dividida em unidades de alocação Tamanho da unidade Menor unidade – Maior mapa de bits Maior unidade pode desperdiçar memória 0 – Livre  |  1 – Ocupado Problema:

● Desempenho na busca de um espaço livre no mapa(0s consecutivos)

● Processo lento apesar de ser uma técnica simples

Page 13: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 13Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping – Gerenc. de Memória – Listas Encadeadas Lista de segmentos alocados e livres Segmento

● processo (P) ou lacuna (H), ● endereço de início, ● comprimento e ● ponteiro para próxima entrada

Lista ordenada pelos endereços Processos liberados – lacunas vizinhas podem 

ser agrupadas Algoritmos de localização

Page 14: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 14Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping – Gerenc. de Memória – Listas Encadeadas Algoritmos de localização – 1 lista ordenada por 

endereço● Primeiro ajuste

●Rápido, pesquisa o mínimo possível● Próximo ajuste

●Pesquisa começa do ponto em que parou da última pesquisa● Melhor ajuste

●Pesquisa a menor lacuna necessária, para ñ dividir lacunas●Mais lento●Tende a a gerar lacunas minúsculas e inúteis

● Pior ajuste●Pega a maior lacuna disponível

Page 15: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 15Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping – Gerenc. de Memória – Listas Encadeadas Algoritmos de localização – listas separadas 

(processos e lacunas) ordenada por tamanho● Otimização na alocação● Melhor ajuste semelhante a primeiro ajuste● Próximo ajuste sem sentidol● Ajuste rápido

●Possui listas separadas para alguns tamanhos comuns

● Problema: Verificar se lacunas vizinhas podem ser agrupadas é extremamente lentoCaso ñ ocorram os agrupamentos – a memória rapidamente estará fragmentada em lacunas pequenas

Page 16: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 16Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Swapping – Gerenc. de Memória

Page 17: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 17Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Memória Virtual Execução de um processo sem que ele esteja 

completamente na memória Permite alocar + memória do que o tamanho da 

memória física Manter em memória apenas os 

segmentos/páginas necessários USER: Memória contínua e inacabável SO + Hardware: Mapeamento do endereço virtual 

para o endereço físico

Page 18: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 18Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Memória Virtual

Page 19: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 19Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Memória Virtual ­ Vantagens Aumenta o grau de multiprogramação Aumenta a utilização da CPU Reduz o sobrecusto de Swap – operações de E/S Capacidade de executar programas maiores que 

a capacidade disponível da memória Sem desperdício de memória

Page 20: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 20Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Memória Virtual ­ Implementação Hardware deve suportar paginação e/ou 

segmentação SO deve controlar o fluxo de páginas/segmentos 

entre a memória secundária e a principal Necessidade de gerenciar

● Áreas livres e ocupadas● Mapeamento entre a memória virtual e física● Busca de páginas/segmentos “faltantes” ● Substituição de páginas/segmentos

Partição de swap● Área destinada a armazenar páginas/segmentos● Organizado diferente do sist. de arq. – otimizar acesso

Page 21: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 21Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Memória Virtual Busca de páginas faltantes

● Paginação por demanda

● Paginação antecipada●Sistema tenta prevê a utilização da página e faz uma busca 

antecipada – antes dela ser referenciada●Princípio da localidade – probabilidade que acessos a 

instruções e a dados sejam limitados a um trecho●Ex: Execução da instrução i+1 segue a exec. da instr. i●Ex: Laços for, while, do­while●Acessos a elementos de vetores

Page 22: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 22Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Paginação por Demanda Forma mais comum de implementação de 

memória virtual

Similar a paginação com Swapping● Invés de ser realizado o swap­in e swap­out de um 

processo, se realiza o swap­in e swap­out de uma página (page­in/out)

Carrega uma página para a memória somente quando ela é necessária (página é referenciada)

Page 23: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 23Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Paginação por Demanda Uma referência está sempre associada a uma 

página● Página presente na memória● Não presente na memória  (page­fault)

Necessita conhecimento de quais páginas estão na memória principal e quais estão no disco● Bit válido/inválido associado a cada entrada na tabela 

de páginas MMU gera uma exceção (page­fault) sempre que 

uma página ausente é acessada

Page 24: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 24Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Paginação por Demanda Reduz operações de E/S

● Carrega apenas a(s) página(s) necessária(s)

Reduz a quantidade de memória por processo

Aumenta o grau de multiprogramação

Page 25: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 25Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Paginação por Demanda

Page 26: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 26Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Desempenho da Paginação por Demanda Fórmula:

p – taxa de falta de páginas

EX: tempo de acesso = 100ns       tempo page_fault  = 25ms = 25.000.000ns       p = 1/1000te = (1­p).100 + p.25000000te = 100 + 24999900.pte = 25us (250 . t_acesso)

tefetivo=1−p⋅t acessop⋅t pagefault

Page 27: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 27Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Desempenho da Paginação por Demanda Exemplo:

Objetivo de aumetar no máximo em 10% o tempo de acesso

110 = 100 + p . 2500000010   = 25000000.p p = 0.0000004

1 page fault a cada 250000 acessos Melhorar o desempenho

● Diminuir a taxa de falta de páginas● Acelerar procedimentos de leitura de disco

●Procedimento de swap

Page 28: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 28Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Política de Carga de Páginas Carrega uma página para uma moldura 2 situações

● Moldura livre: carrega página na moldura● Não existe moldura livre:

●Libera espaço – transfere página da memória para o disco (área de swap) – page­out

●Política de substituição para seleção da página “vítima” Otimizações:

● Carregar mais de uma página para a memória● Nem toda página necessita page­out

●Páginas não modificadas●Páginas read­only ­ código

Page 29: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 29Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Política de Localização Localiza na memória real as páginas de um 

processo

Hardware de paginação/segmentação do processador – MMU● Transparente sob o ponto de vista do SO

Page 30: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 30Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Política de Substituição de Páginas na Memória Possibilidade de todas as molduras da memória 

fisíca estarem ocupadas Utilizado para liberar uma moldura ­ atender a 

falta de página Reponsável pela escolha de uma página “vítima”

● Determinar a página menos necessária Algoritmo ótimo ­ Página que vai demorar mais 

para ser acessada  Algoritmos

● First­come­first­served (FCFS)● Least Recently Used (LRU)● Baseado em contadores

Page 31: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 31Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Bits Auxiliares Auxiliar os mecanismos de substituição de 

páginas Bit de sujeira (dirty bit)

● Modificada ou não durante a execução do processo● Páginas não alteradas não necessitam de paga­out

Bit de referência (reference bit)● Página acessada dentro de um intervalo de tempo

Bit de tranca (lock bit)● Bloqueia página para não ser selecionada como 

“vítima”

Page 32: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 32Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Política de Substituição de Páginas na Memória Todas as molduras da memória ocupadas Liberar espaço ­ atender a falta de página Reponsável pela escolha de uma página “vítima”

● Determinar a página menos necessária Critérios dos algoritmos

● Minimizar falhas de páginas● Minimizar E/S

Ex: Algoritmo ótimo● First­come­first­served (FCFS)● Least Recently Used (LRU)● Baseado em contadores

Page 33: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 33Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Bits Auxiliares Bit de sujeira (dirty bit)

● Modificada ou não durante a execução do processo● Páginas não alteradas não necessitam de paga­out

Bit de referência (reference bit)● Página acessada dentro de um intervalo de tempo

Bit de tranca (lock bit)● Bloqueia página para não ser selecionada como 

“vítima”

Page 34: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 34Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo Ótimo Página que vai demorar mais para ser acessada  Número de instruções executadas antes da 

página ser referenciada Adiar a falha de página Não implementável

● Necessita conhecimento do futuro Através de simulação

● Objetivo: avaliar algoritmos

Page 35: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 35Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo Ótimo

Page 36: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 36Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo FIFO Página Primeira a Entrar, Primeira a Sair First­Come First­Served (FCFS)

Substitui a página que está mais tempo na memória

Alocação através de um buffer circular – fila FIFO

Desvantagem: Página substituída pode ser utilizada logo em seguida

Page 37: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 37Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo FIFO

Page 38: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 38Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo FIFO Aumentar memória não significa diminuir número 

de falha de página

Page 39: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 39Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo NRU (Not Recently Used) Bit de referência Bit de modificação Início do processo – bits configurados para 0 Cada interrupção do relógio – bit de referência =0 Dividido em 4 categorias

● Classe 0: ñ­referenciada, ñ­modificada● Classe 1: ñ­referenciada, modificada● Classe 2: referenciada, ñ­modificada● Classe 3: referenciada, modificada

Melhor remover página modificada e ñ­referenciada no período de um tique de relógio

Page 40: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 40Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo LRU Least Recently Used Usa o passado recente para aproximar o futuro 

próximo Substitui a página que não tem sido usada pelo 

maior período de tempo● Princípio da localidade – menor probabilidade de ser 

acessada em um futuro próximo

Desvantagem: Cada página deve ter a “data” da última referência● Overhead – atualização e seleção● Outras: Suporte em Hardware

Page 41: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 41Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo LRU

Page 42: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 42Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo NFU Not Frequently Used Contador associado a cada página Cada interrupção ­ soma o valor do bit de 

referencia Falha de página é selecionada a página com o 

contador menor

Desvantagem: Algoritmo não esquece de nada

Page 43: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 43Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo da Idade Modificação no algoritmo NFU Contador é deslocado 1 bit à direita antes de o bit 

de referencia ser adicionado O bit de referencia é adicionado ao bit mais à 

esquerda em vez de ao bit mais à direita

Page 44: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 44Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo de Segunda Chance Modificação de FIFO Verifica o bit de referência

● Bit 0 – substitui a página● Bit 1 – atribui 0 e coloca no final da fila de substituição

Impede a substituição de uma página intensamente utilizada

Desvantagem: Move páginas na lista desnecessariamente

Page 45: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 45Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo do Relógio Melhoria do algoritmo de segunda chance ­ 

implementação

Utiliza uma lista circular com um ponteiro para a página mais antiga

Verifica o bit de referência● Bit 0 –Substitui a página, ponteiro avança uma posição● Bit 1 –Atribui 0, avança o ponteiro e testa novamente

Page 46: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 46Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmo do Relógio

Page 47: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 47Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Política de Alocação de Molduras Como alocar molduras na presença de “n” 

processos?

De onde alocar?● Alocação Local● Alocação Global

Quanto alocar para cada processo?

Mínimo necessário?

Page 48: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 48Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Alocação Local Define o número de molduras que cada processo 

deve dispor

Na falta de páginas a substituição ocorre entre as próprias páginas do processo que gerou a falta

Desvantagem: Definição do número de páginas● Processo necessecita mais molduras – ocorre mais 

falhas de páginas● Processo ñ necessita – desperdício de memória● Impede a utilização de molduras disponíveis 

pertencentes a outros processos

Page 49: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 49Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Alocação Global Lista única de gerência de molduras para todos 

os processos Processo pode receber uma moldura de outro

Desvantagem: Conjunto de molduras ocupadas de um processo depende do comportamento de outros● Processo de maior prioridade pode recuperar molduras 

de um processo de menor prioridade

Método mais utilizado

Page 50: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 50Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Algoritmos de Alocação Quantas molduras serão alocadas para cada 

processo?

Alocação igualitária

Alocação proporcional

Alocação por Freqüência de falha de página

Page 51: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 51Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Alocação Igualitária Divide as m molduras entre os n processos

● Cada processo recebe m/n molduras● Molduras restantes são utilizadas em casos de falhas 

de páginas● Periodicamente é verificado o número de processos 

para ajustar a divisão

Problema: Processos possuem necessidades diferentes● ex: Processo de 10K e de 300K necessitam de 

números de molduras diferentes

Page 52: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 52Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Alocação Proporcional Alocação proporcional ao tamanho do processo

Alocação reajustada conforme o número de processos

ex: Processo de 300K recebe 30 vezes mais molduras do que o de 10K

Verificar o mínimo de molduras para o processo executar

Page 53: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 53Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Alocação Mínima de Molduras Processo necessita de uma alocação mínima 

para executar● Dependente de arquitetura● Definido pelo conjundo de instruções da máquina● Caso contrário, processo não pode executar

Quanto menos o número de molduras alocadas maior é a taxa de falha de páginas● Queda de desempenho do sistema

Page 54: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 54Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Alocação por Freqüência de Falha de Página Para certos algoritmos, taxa de falhas diminui à 

medida que mais páginas são alocadas Taxa de falhas acima de um valor

● Processo recebe mais molduras Taxa de falhas abaixo de um valor

● Memória de mais para o processo● Molduras são retiradas

Algoritmo mantem a taxa de falhas dentro de limites aceitáveis

Controle de carga – processo pode ser removido

Page 55: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 55Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Thrashing Tratamento de falta de página é caro em tempo

● Grande impacto no desempenho do sistema

Processo está em Thrashing quando ele gasta a maior parte do seu tempo de execução no processo de paginação

Efeito congelamento● Alocação local – congelamento do processo● Alocação global – congelamento do sistema

Page 56: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 56Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Conseqüências do Thrashing Baixa utilização da CPU para exec. de processos● SO pode avaliar que está faltando processos prontos 

para execução e permitir a criação de novos Adição de novos processos necessita mais 

molduras – agrava a situação Multiprogramação pode comprometer o 

desempenho do sistema Solução: Suspender alguns processos 

temporariamente Prevenção: Processo deve ter o conjunto de 

molduras que atenda sua demanda: conjunto funcional – páginas atuais de execução

Page 57: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 57Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Considerações Finais Tamanho da página

● Grande ●Menos falta de páginas●Menos E/S●Menor tabela de páginas

● Pequena●Menor fragmentação interna – Menor Desperdício de memória

Em determinados sistemas os programadores podem acessar diretamente o mapa de memória● Compartilhamento de memória● Passagens de mensagens de alto desempenho● Memória compatilhada distribuída

Page 58: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 58Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Exercício Acessos: 1 0 3 2 0 4 0 2 1 4 3 2 4 1 2 0 1 2 0 1

Número de falhas de páginas???ÓtimoFIFOLRU

Page 59: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 59Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Solução

Page 60: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 60Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Solução

Page 61: Sistemas Operacionais I Memória Virtual · Memória dividida em unidades de alocação ... memória Alocação através de um buffer circular – fila FIFO

May 6, 2008 61Antônio Augusto Fröhlich (http://www.lisha.ufsc.br)

Solução