Sistemas Operacionais

Documentos relacionados
Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

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

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

Gerência de memória III

Gerência de Memória. Paginação

Gerenciamento de Memória

Sistemas Operacionais

Sistemas Operacionais

Arquitetura de Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

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

Sistemas Operacionais: Memória Virtual

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

Organização e Arquitetura de Computadores I

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

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

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

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Swapping. Desvantagem:

AULA 14 - Memória Virtual

SSC0640 Sistemas Operacionais I

Memória virtual. Sistemas de Computação

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

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

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

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

Sistemas Operacionais. - Gerência de Memória -

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


Capítulo 6 Gerência de Memória 103

Sistemas Operacionais Memória Virtual

Sistemas Operacionais. - Gerência de Memória -

Segmentação de Memória

Sistemas de Entrada e Saída

Sistemas Opera r cionais Gerência de Memória

Gerenciamento de Memória

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 Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais

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

SISTEMAS OPERACIONAIS

Gestão de Memória. Espaço de Endereçamento

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

Sistemas Operacionais

Sistemas Operacionais

Arquitetura e Organização de Computadores

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Gerenciamento de Memória

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

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

LISTA DE EXERCÍCIOS 02

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

UNIX Gerência de Memória

Transcrição:

Introdução Memória virtual 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 22 Modelos de gerência de memória vistos até agora mapeiam todo o espaço lógico do processo no espaço físico (RAM) Consequências Tamanho do processo é limitado pela capacidade da memória real do sistema Limitação do grau de multiprogramação Desperdício de memória por alocação desnecessária Área de heap prevista, rotinas de tratamento de exceção (erros), rotinas pouco usadas ou usadas apenas em algumas fases, etc Se não há memória disponível, não se pode criar processos Swapping e memória virtual surgem como soluções 2 Swapping Memória virtual Abordagem para aliviar a limitação do grau de multiprogramação Consiste em fazer um rodízio de processos entre memória e disco Área de swap : área de disco onde processos são mantidos para liberar espaço em RAM para outros processos P i swap-out swap-in P k Escalonador de médio prazo é quem decide sobre os processos vítimas para irem ao disco: apto-suspenso bloqueado-suspenso Expande a memória através de uma área de espaço em disco Área de swap (arquivo ou partição) Memória total disponível = capacidade da RAM + tamanho da área de swa Objetivo é utilizar memória física de forma eficiente Carrega para a memória apenas os trechos do processo que são necessários para sua execução em determinado momento Permite executar um processo sem que ele esteja completamente na memória Possibilita a execução de processos maiores que a capacidade de RAM Aumenta 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 3 4

Localidade de referência Implementação de memória virtual Base de funcionamento da memória virtual Processo possui um subconjunto de páginas que são usados simultaneamente Localidade de referência Temporal: regiões de código e dados tendem a ser acessados novamente dentro de um período de tempo próximo Espacial: regiões de código e dados acessados tendem a ser próximas Exemplos: execução da instrução i+1 segue a execução da instrução i; laços for, while, do-while; acessos a elementos de vetores, etc Consequência: NÃO é necessário ter o processo inteiro carregado em memória, apenas os trechos necessários em um dado intervalo de tempo Possível estimar esses pedaços Emprega mecanismos de alocação de memória não contíguo Necessário suporte por hardware para a paginação, segmentação ou segmentação com paginação Necessário: Controlar o fluxo de páginas (ou segmentos) entre a RAM e a área de swap (memória secundária disco) Gerenciar áreas livres e ocupadas na RAM e no disco Mapeamento da memória lógica em memória física Substituição de páginas/segmentos ( rodízio ) Área de swap Dimensionamento Formatação específica ou mesma do sistema de arquivos 5 6 Vantagens e desvantagens de memória virtual Paginação por demanda Vantagens: Capacidade de executar programas maiores que o tamanho da RAM Reduz quantidade de operações de E/S por não carregar todo o processo em memória (carrega apenas páginas ou segmentos necessários) Aumenta grau de multiprogramação por reduzir a quantidade de memória necessária para um processo executar (só carrega o que realmente usa!!) Desvantagens: Desempenho: acesso a área de swap é mais lenta que acesso a RAM Aumento da memória física é sempre a melhor solução!! Implementação da memória virtual baseada em paginação Princípio básico Carregar e manter em memória apenas as páginas necessárias em determinado momento localidade de referência Processo fica parcialmente em memória Alocação de memória por demanda Em caso de falta de memória, executa um rodízio entre os trechos em memória e em disco n Processo RAM Apesar de usar a área de swap, osistema está paginando (page-in epage-out). Conceitualmente, swap é a movimentação do 0 processo inteiro... Page-out Área de swap Page-in... 8 7

Questões para implementação Localização das páginas Gerenciamento de páginas e quadros Manutenção da informação de quadros livres (bit map) Localização das páginas (memória, área de swap ou ainda não foi criada)? Quando (e de onde) carregar uma página? Desempenho da paginação por demanda 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 ou processo deve deixar a RAM para liberar espaço? Uma referência de memória está sempre associada a uma página Páginas válidas e páginas inválidas Situações possíveis Página está carregada na memória (página válida) Página está na área de swap (página inválida) Página não está na memória, nem no swap (página inválida não alocada) Comportamento típico das áreas dinâmicas (pilha e heap) Modificações na tabela de página Inclusão de novos bits de gerenciamento Endereço do quadro ou do local de armazenamento no disco 9 10 Entrada da tabela de página e memória virtual Carregamento de páginas Informações necessárias para localizar a página na memória, se ela estiver carregada na RAM (quadro q) área de swap, se ela não está carregada na RAM (endereço bloco de disco) Bits de gerência Compartilhamento: se a página é compartilhada com outros processos Proteção: se a página é de leitura ou leitura e escrita Validade: se mapeia (ou não) para um endereço válido para o processo Presença: se a página está carregada na memória Modificação (dirty bit): se a página em memória foi modificada Referência: se a página em memória foi referenciada em passado recente Necessários à implementação da paginação por demanda (memória virtual) Quando carregar uma página? Na inicialização de processos Mínimo teórico: página da função main() e página para pilha Por demanda A medida que o processo executa e precisa páginas que não estão na memória De onde carregar a página? Área de swap (código, dados, heap e pilha) Do próprio executável (áreas read-only como o código) 11 12

Falta de páginas (page fault) Esquema geral da paginação por demanda Ocorre quando a página necessária a execução não está na memória Necessário buscar página no disco OU mapear no espaço de endereçamento (se ainda não existe nova alocação) p é a probabilidade de acontecer um page fault (0 p 1) p=0, todas as referências NÃO provocam faltas de página p=1, todas as referências resultam faltas de página Tratador de faltas de páginas Acionado por uma interrupção de hardware de falta de páginas Executa a leitura de página faltante (swap ou executável) ou cria nova página Reinicia a execução do processo Sequência de eventos mov ax,m Sisop 1 2 i RAM 6 F n Área de swap ou imagem executável Tabela de página 4 5 F 0 3 Páginas associadas ao núcleo do sistema operacional são pinadas na memória, isso é, NUNCA vão provocar falta de página. 13 14 Ordem de grandeza da duração de tarefas Tempo de acesso efetivo à memória Acionamento do sistema operacional (trap) 1 a 100 us Determinar se a interrupção foi por falta de página 1 a 100 us Tempo de acesso (leitura) de uma página para memória Cerca de 8 ms (melhor caso) Depende do disco e da fila de requisição de E/S Tempo de acesso à memória percebido por um processo Tempo consumido pela MMU para a tradução Inclui o hit/miss ratio na TLB e eventuais tempo de acesso tabela de página em memória) Tempo consumido pela gerência de memória virtual Considera as operações page-in, page-out, substituição de página e tempo de bloqueio) Valor médio Baseado na probabilidade da entrada estar na TLB e a página estar na memória 15 16

Tempo efetivo de acesso considerando TLB Desempenho da paginação por demanda (aproximação) Mais precisamente: Depende da taxa de falta de páginas (p) Pode ser aproximado por: Tempo médio de acesso a tabelas e dado Onde: pr 1 : probabilidade da página estar em memória pr 2 : probabilidade da entrada da página estar na TLB (hit ratio) t mem : tempo de acesso a memória t TLB : tempo de acesso a TLB t TPF : tempo de tratamento de page fault onde: t acesso é tempo médio para acessar página na memória t page_fault é o tempo médio para o tratamento da falta de páginas e acessar a posição de memória que a provocou p é a probabilidade de taxa de falta de páginas (0 p 1.0) 17 18 Exemplo: desempenho da paginação por demanda Desempenho da paginação por demanda Exemplo 1: tempo acesso: 200 ns tempo page fault: 8 ms t e =(1-p) * 200 ns + p * 8000000ns t e = (200 + 7999800 x p) ns Se p=1/1000 t e 8,2 us (40 vezes t acesso ) Exemplo 2: degradação inferior a 10% no tempo de acesso (< 220ns) 220 (1-p)*200 + p*8000000 20 = 7999800p p 0.00000025 (1 page fault a cerca de cada 400.000 acessos) Depende de dois fatores De apresentar baixa taxa de faltas de páginas Número de vezes que há cargas de páginas Manter em memória um conjunto adequado de páginas Diminuir o tempo de acesso ao disco Tempo gasto para carregar as páginas 19 20

Otimizações para o swap Copy-on-write Procedimentos de swap-in e swap-out Páginas não modificadas podem ser sobrescritas (economiza swap-out) Selecionar páginas menos útil para swap-out Algoritmos de substituição Partição de swap com formatação específica Partição = divisão de um disco físico em discos lógicos diferentes Organiza os dados no disco de forma diferente do sistema de arquivos convencional possibilitando um acesso mais rápido Na criação (fork) não é necessário criar a cópia do pai, basta criar uma tabela de páginas para o filho idêntica a do pai Ação copy-on-write Se um dos processos, pai ou filho, modificar a página, cria-se a cópia Páginas não modificadas podem ser compartilhadas Deve-se marcar essas páginas para não liberar elas em caso de término de um dos processos (pai ou filho) 21 Silberschatz, A.; Galvin, P; Gagne, G. Operating System Concepts, 9th ed. 2013 22 Leituras complementares A. Tanenbaum. Modernos (3 a edição), Pearson Brasil, 2010. Capítulo 3: (seções 3.4, 3.7) A. Silberchatz, P. Galvin;. (7 a edição). Campus, 2008. Capítulo 9 (seções 9.1 e 9.2) R. Oliveira, A. Carissimi, S. Toscani;. Editora Bookman 4 a edição, 2010 Capítulo 7 (seção 7.1) 23