Sistemas Operacionais

Documentos relacionados
Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Plano da aula. Substituição de Páginas. Alocação igualitária. Alocação de quadros. Lembrando: paginação sob demanda

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais I Memória Virtual

Gerência de Memória. Aspectos de Projeto

Sistemas de Computação. Memória virtual (cont.)

SSC0640 Sistemas Operacionais I

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger

Sistemas Operacionais: Memória Virtual

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Aula 15. Memória Virtual - Desempenho. 1.1 Contexto 1.2 Políticas de Reposição de Páginas 1.3 Working-Set 1.4 Trashing

Memoria Virtual (parte 2) Algoritmos de substituicao (cont)

Sistemas Operacionais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Arquitetura de Sistemas Operacionais

Substituição de Páginas

Sistemas Operacionais

Capítulo 9: Memória Virtual. Operating System Concepts 8 th Edition

Sistemas Operacionais. Gerência de Processador

Notas da Aula 20 - Fundamentos de Sistemas Operacionais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Gerenciamento de memória

Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

GERENCIAMENTO DE MEMÓRIA

Capítulo 4 Gerenciamento de Memória

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A

Gerência de Memória. Gerência de Memória Virtual. Gerência de Memória. Gerência de Memória. Gerência de Memória. Gerência de Memória 17/04/2017

Infra-Estrutura de Software IF677

Sistemas Operacionais

Memória virtual. Sistemas de Computação

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

Sistemas Operacionais

INE5412 Sistemas Operacionais I

Gerência de Recursos. Gerência do Processador

Sistemas Operacionais

Gerência de memória III

Capítulo 9: Memória Virtual. Operating System Concepts 8th Edition

Sistemas Operacionais

Infra-Estrutura de Software

SOP Sistemas Operacionais Módulo 04: Processo

Algoritmos de Substituição de Páginas. Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros

Sistemas Operacionais

Infra-Estrutura de Software

Administração de Memória

Sistemas Operacionais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

MEMÓRIA LÓGICA E FÍSICA (1)

INE5412 Sistemas Operacionais I

Gerência de Memória As A pe p cto t s d e d P rojeto t

Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

Memória Virtual. Paulo Sérgio Almeida. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Sistemas Operacionais. Prof. André Y. Kusumoto

Infra-Estrutura de Software

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Curso: Redes de Computadores

Gerenciamento de memória Memória Virtual

SSC0640 Sistemas Operacionais I

Gerenciamento de Memória

Organização de um Sistema Operativo

Swapping. Desvantagem:

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Sistemas Operacionais

Sistemas Operacionais Aula 7

Gerenciamento de Memória

Gerenciamento de Memória

Segmentação de Memória

Gerência de memória II

Capítulo 9: Memória Virtual. Operating System Concepts 8th Edition

SOP - TADS Escalonamento de Processos

Gerência da Memória. Adão de Melo Neto

Gerência de Memória Memória Virtual e Paginação

Sistemas de Informação. Sistemas Operacionais

LISTA DE EXERCICIOS 2

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

6 ESCALONAMENTO DE CPU

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos

Gerência de Memória Algoritmos de Substituição de Páginas

ICET CURSO: Ciência da Computação e Sistemas de Informação (Sistemas Operacionais Abertos) Estudos Disciplinares. Campus: Data: / / Nome: Questão 1:

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

Gerência do Processador. Adão de Melo Neto

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1

Sistemas Operacionais. Escalonamento de processos

Divisão da lacuna em espaços na base 2: Eficiente quanto à velocidade e Ineficiente quanto à fragmentação.

Gestão de Memória. Algoritmos de Gestão de Memória

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA

Sistemas Operacionais. Rômulo Silva de Oliveira Alexandre da Silva Carissimi Simão Sirineo Toscani

Transcrição:

Introdução Paginação por demanda Alocação de memória Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/ Aula 24 Taxa de falta de páginas depende da quantidade de quadros alocados (memória) Três zonas de operação: Pouca alocação, alta taxa de falta de páginas (subdimensionamento) Média alocação, taxa de falta de páginas aceitável ( zona de conforto ) Alta alocação, baixa taxa de falta de páginas (superdimensionamento) Não necessariamente um problema (SE sobra memória para processos) Não é trivial achar a zona de conforto Varia de processo a processo Um mesmo processo tem padrões diferentes de comportamento durante a sua execução. 2 Ultrapaginação (thrashing) Estratégias de substituição de páginas global e local Situação de subdimensionamento onde o(s) processo(s) tem menos quadros alocados que o necessário Gera falta de páginas Tratamento de page-fault implica em page-in e page-out Algoritmo de substituição, trocas de contexto, bloqueio de processo, etc... Operação em disco é lenta Situação perversa CPU tende a ficar ociosa e então sistema operacional aceita criação de mais processos (consumirão mais memória, agravando a falta de memória) Nem sempre CPU ociosa é sinônimo de thrashing, pois pode haver vários processos bloqueados em E/S poucos processos a executar (baixo grau de multiprogramação) Com múltiplos processos competindo por memória é possível considerar duas estratégias para substituição de páginas Substituição global A página vítima é selecionada entre todos os quadros e processos existentes Permite um processo roubar quadros de outros processos Problema: desempenho dependerá do comportamento de todos processos Substituição local Processo seleciona a página vítima apenas entre os quadros alocados a si Problema: pode haver páginas que não são frequentemente usadas em outros processos 3 4

Problema da alocação de memória e desempenho Alocação estática igualitária Questão: Quanto alocar de memória para um processo? Objetivo da alocação de memória é dimensionar adequadamente a memória necessária a um processo Superdimensionamento reduz o grau de multiprogramação Subdimensionamento leva a ultrapaginação (thrashing) Importante estimar a quantidade mínima de quadros Duas estratégias Alocação estática Alocação variável Divide-se os quadros disponíveis entre os processos q quadros na RAM para n processos n é o grau de multiprogramação (máximo permitido) Quantidade de quadros para o processo i: a i = q/n Pode-se usar o valor do resto da divisão como quadros pertencente a um conjunto de quadros livres (buffer ou poll de livres) Problema é tratar diferentes da mesma forma 5 6 Alocação estática proporcional Exemplo de aplicação e estratégias de alocação estática Reconhece que processos têm requisitos diferentes de memória A alocação é feita proporcionalmente ao tamanho do processo s i : memória virtual do processo i S: total de memória virtual requisitada pelos processos q: número de quadros disponíveis na RAM a i : número de quadros alocados para o processo i Problema é a variação do grau de multiprogramação Estratégia igualitária 93 quadros livres e cinco processos Cada processo ganha 18 quadros (93 div 5=18) e 3 quadros (93 mod 5) vão para o buffer de quadros livres Estratégia proporcional 62 quadros livres e dois processos (um de 10 páginas e outro de 127 páginas) Cálculo das páginas alocadas para cada processo Processo 1: (10/137)x62 = 4,525, então 4 páginas Processo 2: (127/137)x62 = 57,475, então 57 páginas 1 página para pool de quadros livres 7 8

Questões Estratégia variável Tamanho do processo é o melhor critério? Com alocação igualitária ou proporcional, processos de prioridades diferentes são tratados da mesma forma Deveria ser considerada a prioridade do processo? Alocação proporcional usando a prioridade do processo no cálculo mais memória para que processo de maior prioridade execute mais rápido Qual o critério mais adequado? Na realidade, o melhor seria uma combinação de tamanho e prioridade Em caso de falta de página, o que fazer? Executar algoritmo de substituição de páginas entre aquelas alocadas para o processo política de substituição local Processos recebem memória de acordo com sua demanda Pode receber mais quadros OU liberar quadros não (pouco) usados Questão: em caso de necessidade, de onde se obter quadro? Se há quadros livres: é só alocar Se NÃO há quadros livres é necessário executar substituição de páginas Politica global: pega quadro de qualquer processo Política local: pega quadro apenas dentre aqueles alocados a si 9 10 Prevenção da ultrapaginação (thrashing) Modelo de conjunto de trabalho (working set) Objetivo é fornecer os quadros necessários a um processo Tentar achar a zona de conforto Estratégia Examinar quantos quadros (páginas) um processo está usando Modelo de localidade: conjunto de páginas usadas ativamente juntas Duas situações: Aumentar a localidade: alocar mais quadros, Se necessário, suspender um processo e liberar os quadros que usava Diminuir a localidade: liberar quadros (páginas) não mais necessários Dois métodos Modelo do conjunto de trabalho (working set) Frequência de falta de página Objetivo: definir quantos quadros um processo deve ter em memória para manter um bom desempenho fortemente baseado na localidade de referência Definição: Conjunto de páginas usadas nas últimas referências a páginas (working set ) é uma constante do sistema (projeto) WSS i é o working set size do processo P i (quantidade de página do working set) Propriedade mais importante para alocação = 10 unidades (referências)...2 6 1 5 7 7 7 7 5 1 6 2 3 4 1 2 3 4 4 4 3 4 3 4 4 4 1 3 2 3 4... WS={1, 2, 5, 6, 7} t 1 WS={ 3,4} t 2 11 12

Modelo de localidade e working set Princípio de funcionamento Pico Demanda por novas páginas O WS está sendo alterado Taxa de falta de páginas Relação direta entre o WS e a taxa de falta de páginas Execução é formada por picos e vales de page-faults Estabilidade O WS já está carregado na memória 13 Alocador garante o WS na memória OU o processo é suspenso Quantidade de quadros alocados para P i tem apenas duas possibilidades: Idêntica a cardinalidade do working set (WS) Zero Estratégia tende a evitar o subdimensionamento, portanto previne thrashing. Por processo é mantido Alloc i : quantidade de quadros (q) alocado ao processo i Zero, se suspenso OU WSS, se está no escalonador de curto prazo WSS i : cardinalidade do WS do processo i 14 Regulando o grau de multiprogramação Exemplo de working set Premissas básicas WSS i é a quantidade total de quadros necessários em um dado instante O objetivo é manter WSS i q (q = quantidade de quadros) Thrashing ocorre quando WSS i > q Funcionamento: Se WSS g (q - WSS i ), então autoriza a entrada do processo g no escalonador de curto prazo Se WSS i > q então deve-se baixar o grau de multiprogramação Suspende um ou mais processos para evitar essa situação Realização de swap (processo vítima inteiro para o disco) Função do escalonador do médio prazo Para P i : 100 200 300 400 alloc i : WSS i ; se houver quadros disponíveis alloc i : 0; se não tem quadros disponíveis (remove os já alocados swap-out) Supondo RAM com 60 quadros 100 200 300 400 WSS alloc WSS alloc WSS alloc WSS alloc P 1 14 14 12 12 14 14 13 13 P 2 20 20 24 24 11 11 25 25 P 3 18 18 19 19 20 20 18 18 P 4 10 0 10 0 10 10 12 0 52 55 55 swap-in swap-out t 56 15 16

Problemas com working set Definição e manutenção do working set Estimativa do valor de = valor pequeno: não abrange toda a localidade do processo Induz ao thrashing = valor grande: abrange várias localidades = : abrange todo o programa Reduz o grau de multiprogramação Custo da implementação em tempo de processamento Working set é recalculado a cada referência Para reduzir o custo emprega-se aproximações baseadas no bit de referência e em data de acesso (time stamp) A cada referências ou t: se (bit_r == 1) então bit_r = 0; tempo_acesso = tempo_atual; senão t_off = tempo_atual - tempo_acesso; se (t_off > t_max ) Remove página do WS; Decrementa WSS i t 0 referências t 1 t 2 Efeitos colaterais Processos bloqueados tem bit r em zero e acabam por perder páginas no cálculo do WS (momento da reavaliação) Tratamento de page-fault logo após reavaliação do WS acham bit r em zero Pode levar a substituição indevida de páginas 17 18 Método de frequência de falta de páginas (PFF*) Método da frequência de falta de páginas Objetivo é manter uma quantidade adequada de páginas em memória Em relação ao working set muda a forma de estimar o conjunto de páginas Método mais direto: fornece a quantidade, não controla as páginas em si Estratégia: U Acionado sempre que houver falta de página Controla o tamanho do conjunto de alocação com base em um limite superior e inferior de taxa de falta de páginas Taxa alta: processo necessita de mais quadros Taxa baixa: processo pode liberar quadros Se não há páginas livres para alocar, então um, ou mais processos, devem ser suspensos *Page Fault Frequency - PFF L Min Máx Quantidade de quadros (working set) Se (FFP > U AND há quadros livres) aloca quadros (aumenta WS) Se (FFP < L) libera quadros (diminui WS) Se (FFP > U AND não há quadros livres suspende processo (libera todos quadros) 19 20

Estudo de caso: Linux Algoritmo de substituição e balanceamento de listas Os quadros são mantidos em três listas (estados) Livres: não alocados a um processo Ativos: alocados e usados por um processo Inativos: alocados a processados, mas não em uso Sujos: necessário fazer page-out Limpos: já sofreram o page-out ou associados a páginas não modificadas Em caso de falta de página Se está na lista de inativos é só passar para lista de ativos Se não está alocada quadro da lista de livres Efetua um algoritmo de substituição e balanceamento de listas Listas são mantidas em função da quantidade de quadros Livres: há uma definição de quantidade mínima (depende da RAM disponível) Lista ativos e inativos são mantidas na proporção 2/3 e 1/3, respectivamente Emprega algoritmo do relógio baseado no bit de referência (R) Quadros da lista de inativo para lista de livres (analisa a partir do final da lista*) R= 0: passa da lista de inativo para livre R=1: R=0 e passa para frente da lista de inativo Para passar quadros da lista de ativos (final da lista) para inativos R = 0: passa da lista de ativo para inativo R = 1: reseta bit de referência e passa para frente da lista de ativos Quando página de quadro inativo é acessada passa lista de ativo *lista organizada por antiguidade: mais recentes na frente 21 22 Estudo de caso: Windows Leituras complementares Baseado em uma noção de working set Define tamanhos mínimo e máximo de acordo com tamanho da RAM Em caso de falta de página Avalia quantidade de memória livre no sistema, o working set size (WSS) do processo, os valores mínimo e máximo do working set SE o WSS é menor que o valor máximo e existe memória livre, aloca novo quadro, SE NÃO substitui uma página do processo (substituição local) Emprega algoritmo do relógio (2ª chance) Gerenciador de working set Ativado periodicamente para ajustar working set dos processos Se memória livre está abaixo de um valor de teto, busca páginas não acessadas nos processos que tem WSS maior que o mínimo A. Tanenbaum. Modernos (3 a edição), Pearson Brasil, 2010. Capítulo 3: seção 3.5 A. Silberchatz, P. Galvin;. (7 a edição). Campus, 2008. Capítulo 9: seção 9.5 e 9.9 R. Oliveira, A. Carissimi, S. Toscani;. Editora Bookman 4 a edição, 2010 Capítulo 7 (seções 7.2 e 7.3) 23 24