Gerência de Memória. Aspectos de Projeto

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

SSC0640 Sistemas Operacionais I

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

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

Substituição de Páginas

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Infra-Estrutura de Software IF677

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

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

Gerenciamento de Memória

Arquitetura de Sistemas Operacionais

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

GERENCIAMENTO DE MEMÓRIA

Sistemas Operacionais I 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

Capítulo 4 Gerenciamento de Memória

INE5412 Sistemas Operacionais I

Sistemas Operacionais

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

Organização de um Sistema Operativo

Sistemas Operacionais

Gerência de Memória. Algoritmos de Substituição de Páginas. (Aula 20)

Infra-Estrutura de Software

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

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

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

Memória virtual. Sistemas de Computação

Sistemas Operacionais

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

Sistemas Operacionais: Memória Virtual

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

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

Infra-Estrutura de Software

Sistemas Operacionais

Sistemas Operacionais

Swapping. Desvantagem:

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

Infra-Estrutura de Software

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

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

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

Administração de Memória

Sistemas Operacionais

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

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

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

Sistemas Operacionais Memória Virtual

Organização e Arquitetura de Computadores I

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

Gerenciamento de memória Memória Virtual

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Gerência de Processador

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

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT

Sistemas de Informação. Sistemas Operacionais

Sistemas Opera r cionais Gerência de Memória

Sistemas Operacionais

Sistemas de Computação. Gerenciamento de memória

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Exercícios de revisão V2

Gerenciamento de Memória

Sistemas Operacionais. Gerência de Memória

INE5412 Sistemas Operacionais I

Algoritmos de Gestão de Memória

Gerenciamento de memória

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Organização e Arquitetura de Computadores I

AULA 14 - Memória Virtual

Gerenciamento de Memória

Algoritmos de Gestão de Memória


Prof. Adriano Maranhão

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

Arquitetura e Organização de Computadores

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

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Introdução. Considerações:

Fundamentos de Sistemas Operacionais

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

Departamento de Engenharia Informática. Gestão de Memória. Parte II Algoritmos

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

Arquitetura e Organização de Computadores

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

Sistemas Operativos: Gestão de Memória

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

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

Organização e Arquitetura de Computadores I

Sistemas Operacionais. Escalonamento de processos

Gerenciamento de Memória

Memória Virtual. Adriano J. Holanda 1/3/2016

Modelação de algoritmos de substituição de páginas Anomalia Belady

INFRA-ESTRUTURA DE SOFTWARE. Gerência de Memória

Transcrição:

Gerência de Memória Aspectos de rojeto

olíticas de Busca de áginas de um rocesso Determina em que instante uma página deve ser trazida para memória principal O objetivo é minimizar o número de faltas de página aginação por demanda No modo mais puro de paginação, os processos são iniciados sem qualquer página na memória Quando a CU tenta buscar a a instrução, há um age fault, forçando o S.O. a carregar a página na M À medida que age faults vão ocorrendo, as demais páginas são carregadas ré-paginação (Denning, Working Set) Sistemas Operacionais

Working Set () O conjunto de páginas que um processo está atualmente usando é denominado Working Set (espaço de trabalho) Verifica-se que, para intervalos de tempo razoáveis, o espaço de trabalho de um processo mantém-se constante e menor que o seu espaço de endereçamento Se todo o Working Set está presente na memória, o processo será executado com poucas age Fault até passar para a próxima fase do programa, quando o Working Set é atualizado Ex: Compilador de dois passos Se vários processos tiverem menos páginas em memória que o seu espaço de trabalho o sistema pode entrar em colapso (trashing) 3 Sistemas Operacionais

Working Set () Como prevenir o Trashing? 4 Sistemas Operacionais

Working Set (3) w(k,t) k O Working Set = as páginas usadas (referenciadas) pelas k referências mais recentes à memória Ou aquelas usadas nos últimos τ segundos. A função w(k,t) [ou w(τ,t) ] retorna a quantidade de páginas do Working Set no instante t. 5 Sistemas Operacionais

Working Set (4) 6 Sistemas Operacionais

Working Set (5) Alocação fixa: cada processo recebe um número fixo de quadros em caso de falta de páginas, uma das residentes é trocada Alocação variável: número de páginas varia durante a execução do processo Utilização de valores máximo e mínimo de dimensão do espaço de trabalho para controlar a paginação Estes valores devem-se adaptar dinamicamente a cada aplicação 7 Sistemas Operacionais

Working Set (6) Nos sistemas time-sharing processos estão constantemente bloqueados Swapping Técnica para resolver problema de processos que aguardam por espaço livre adequado; rocessos não ficam mais na memória o tempo todo (são então suspensos). Um processo residente na memória é levado para o disco (Swapped-Out), dando lugar a outro; O processo Swapped-Out retorna à memória (Swapped-In), sem perceber o que ocorreu. Se paginação por demanda,, 5,... age faults cada vez que o processo é re-carregado na M rocesso fica lento, perda de tempo de CU 8 Sistemas Operacionais

Working Set (7) ré-paginação Carregar em memória as páginas do Working set do processo antes que o mesmo possa continuar sua execução Garantimos que ocorrerá menos age faults quando o processo for executado Como monitorar o Working set do processo de modo que ele esteja sempre atualizado? Se a página não foi referenciada nos n clock ticks consecutivos, sai do Working set 9 Sistemas Operacionais

Working Set (8) Sistemas Operacionais

Algoritmo WSClock () No WSClock (Working Set Clock), na troca de páginas só são avaliadas as páginas presentes em uma lista circular Cada entrada dessa lista possui os bits R e M, além de um timestamp (tempo da última referência) À medida que as páginas são carregadas em memória, elas são inseridas na lista circular O algoritmo é executado quando precisa-se liberar molduras Isto pode ocorrer quando ocorrem page faults no processo em questão ou mesmo em outros processos (política Global de alocação de molduras) Troca-se a primeira página (eventualmente, libera-se mais páginas) a partir da posição do ponteiro na lista que tenha R= e cuja idade supera τ Na verdade, verifica-se se a pag. está limpa (i.e. se ela ñ foi modificada). Caso ela tenha M=, é escalonada uma escrita dessa pag. no disco e pula-se p/ a próxima página da lista circular. Sistemas Operacionais

Sistemas Operacionais http://www.inf.ufes.br/~rgomes/so.htm Algoritmo WSClock ()

Resumo dos Algoritmos Ótimo Não é possivel(referência) NRU Fácil de implementar; ouco eficiente FIFO ode retirar páginas importantes Segunda Chance Melhorias ao FIFO Relógio Implementação eficiente do SC; Realista LRU NFU Aging Working Set WSClock Excelente, dificil de implementar (HW) Fraca aproximação do LRU Eficiente que se aproxima do LRU Dificil de implementar Boa eficiência 3 Sistemas Operacionais

Considerações no rojeto de Sistemas de aginação olítica de alocação: Local x Global Anomalia de Belady Controle de Carga Tamanho da página Espaços de Instruções e Dados Separados áginas compartilhadas 4 Sistemas Operacionais

olítica de alocação: Local x Global () O LRU deve considerar as páginas apenas do processo que gerou o age Fault, ou de todos os processos? 5 Sistemas Operacionais

olítica de alocação: Local x Global () olítica LOCAL Alocam uma fração fixa de memória para cada processo olítica GLOBAL Alocam molduras de páginas entre os processos em execução O número de molduras alocadas para cada processo varia no tempo Working set varia durante a execução de um processo Quando a política é local Há trashing quando o tamanho do WS aumenta Há desperdício quando o tamanho do WS diminui Algoritmos com política global são mais adequados Usa-se os bits de tempo da ultima referencia para monitorar o Working Set Não necessariamente evita o trashing -> o Working set pode variar de tamanho em questão de microssegundos (os bits de aging são alterados a cada interrupção de relógio) 6 Sistemas Operacionais

olítica de alocação: Local x Global (3) Outra abordagem determinar periodicamente o número de processos e dividir as molduras entre os mesmo.46 molduras ; processos =>.4 molduras / processo É justo? E se processos têm tamanho diferentes? Solução: Alocar para cada processo um número mínimo de páginas proporcional ao tamanho do processo Atualizar a alocação dinamicamente Algoritmo de alocação age Fault Frequency (FF) Informa quando aumentar ou diminuir a alocação de molduras para um processo Tenta manter a taxa de age Fault dentro de um intervalo aceitável Usa-se em combinação com algum algoritmo de substituição de página 7 Sistemas Operacionais

olítica de alocação: Local x Global (4) Se maior do que A, taxa muito alta Deve-se alocar mais molduras Se menor do que B, taxa muito baixa Algumas molduras podem ser eliminadas 8 Sistemas Operacionais

Anomalia de Belady () Intuitivamente, quanto maior o número de molduras, menor será o número de age Faults Nem sempre isso será verdadeiro! Belady et al. descobriram um contra-exemplo para o algoritmo FIFO Suponha que as páginas sejam referenciadas nesta ordem: 3 4 3 4 Qual será o número de age Faults em um FIFO alocando 3 molduras para o processo? E 4 molduras? Belady et al definiram um modelo ( Modelo de ilha ) para mostrar se algoritmos apresentam a anomalia 9 Sistemas Operacionais

Sistemas Operacionais Anomalia de Belady () 3 4 3 4 3 3 3 4 4 4 4 3 4 3 4 ágina mais nova ágina mais velha 3 4 3 4 3 3 3 4 3 4 3 4 3 4 3 ágina mais nova ágina mais velha 4 3 9 age Faults age Faults

Controle de Carga Mesmo com paginação, swaping é ainda necessário Determina o número de processos residentes em M (escalonador de médio prazo) oucos processos, possibilidade de processador vazio; Muitos processos, possibilidade de trashing Regra dos 5% de utilização do dispositivo de paginação (acionado por age fault) Swapping é usado para reduzir demanda potencial por memória, em vez de reivindicar blocos para uso imediato Sistemas Operacionais

Tamanho de áginas () ágina de pequeno tamanho tempo curto para transferência de página entre disco e memória muitas páginas de diferentes programas podem estar residentes em memória menor fragmentação interna exige tabelas de páginas muito grandes, que ocupam espaço em memória mais adequada para instruções ágina de grande tamanho Tabelas de páginas pequenas Transferência de 64 páginas de 5 B pode ser mais lenta do que a transferência de 4 páginas de 8KB Tempo longo para transferência de uma página entre disco e memória Mais adequada para dados (gráficos exigem páginas muito grandes) Sistemas Operacionais

Tamanho de áginas () Custo adicional devido à paginação s : tamanho médio dos processos p: tamanho da página em bytes e: tamanho de cada entrada da tabela de páginas s. e -> tamanho aproximado da tabela de páginas p p -> memória desperdiçada na última página do processo custo adicional = s.e + p p Derivando em relação a p: o tamanho ótimo será: p=.s.e 3 Sistemas Operacionais

Tamanho de áginas (3) Solução de compromisso: permitir páginas de tamanhos diversos para código e dados Tamanhos de páginas variam muito, de 64 bytes a 4 Mbytes entium (... x86 ) permite selecionar página de 4 K ou 4 Mbytes Motorola MC88 páginas de 4 Kbytes para programas de usuário páginas de 5 Kbytes para programas do sistema, que devem residir sempre em memória 64 bits: páginas de 4kb, Mb and Gb ARM: 4kb, 64kb, e Mb 4 Sistemas Operacionais

Tamanho de áginas (4) 5 Sistemas Operacionais

Espaços de Instruções e Dados Separados Duplica o espaço de endereçamento disponível Uma tabela de páginas para cada espaço de endereçamento 6 Sistemas Operacionais

áginas Compartilhadas () Dois processos compartilhando o mesmo programa, compartilham a sua tabela de páginas Mesmo não havendo dois espaços de endereçamento (Código e Dado) é possível compartilhar páginas, mas o mecanismo não é tão direto Usando tabelas invertidas o mecanismo é mais complicado ainda... 7 Sistemas Operacionais

áginas Compartilhadas () Compartilhamento SEM separação de espaços de endereçamento 8 Sistemas Operacionais

áginas Compartilhadas (3) Código Reentrante Código que não modifica a si próprio, ou seja, ele nunca é modificado durante a execução Dois ou mais processos podem executar o mesmo código simultaneamente Exemplo: Editor de texto com código reentrante de 5 K e área de dados de 5 K 4 usuários utilizando o editor em um ambiente de tempo compartilhado, seriam necessários K x 4 = 8 K Se o código executável for compartilhado, serão consumidos apenas (5 K x 4 ) + 5 K = 5 K 9 Sistemas Operacionais

Referências A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 4a. Edição, Editora rentice-hall, 6. Seções 4.4.8 a 4.8., 4.5 e 4.6 3 Sistemas Operacionais