Sistemas Operacionais

Documentos relacionados
Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Microprocessadores. Memórias

Aula 09. Gerenciamento de Memória Virtual Paginação. Capítulo 10 PLT Pág Gerenciamento de Memória Virtual

Infraestrutura de Hardware. Memória Virtual

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Cap. 10 Gerência de Memória Virtual 1

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

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Sistemas Processadores e Periféricos Aula 9 - Revisão

Sistemas Operacionais

Introdução à Informática. Alexandre Meslin

Capítulo 8: Gerenciamento de Memória

Engenharia de Software II

SISTEMAS DISTRIBUÍDOS

Arquitetura e Organização de Computadores

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Inteligência Artificial

Unidade 1: O Computador

Sistemas Operacionais. Rodrigo Rubira Branco

Arquitetura de Computadores. Sistemas Operacionais IV

Aula 03. Processadores. Prof. Ricardo Palma

Tabelas Hash. Aleardo Manacero Jr.

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Informática I. Aula Aula 19-20/06/06 1

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Sistemas Operativos. Gestão de memória. Rui Maranhão

Sistemas Operacionais. Rodrigo Rubira Branco

ARQUITETURA DE COMPUTADORES II

Structural Patterns - Proxy

AULA 13 - Gerência de Memória

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS

Sistemas Distribuídos

Organização de Computadores 1

Emparelhamentos Bilineares Sobre Curvas

Lista de Exercícios 1

Organização de Computadores 1

Fundamentos de Arquitetura e Organização de Computadores

Deswik.Sched. Sequenciamento por Gráfico de Gantt

Aula 10: Escalonamento da CPU

Atividade de Treinamento. Documentando Programas no SPDSW. HI Tecnologia Indústria e Comércio Ltda. Documento de acesso Público

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Visão geral do sistema de memória de computadores

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Oganização e Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Banco de Dados I. Prof. Edson Thizon

Fundamentos de Teste de Software

Arquitetura de referência de Streaming sob demanda para desktop (ODDS) DELL

Memórias Cache. Memória

Gestão de Memória. DCC/FCUP Fernando Silva Sistemas de Operação 1

Desenvolvimento de Software

Controlador de DMA. Gustavo G. Parma

Gerenciamento de Memória Minix 3.1.7

Deadlocks. Sistemas Operacionais - Professor Machado

Arquitetura e Organização de Computadores I

Exercício. Exercício

Gerenciamento Básico B de Memória Aula 07

CATEGORIA 2 INICIATIVAS DE INOVAÇÃO

Sistemas Computacionais e Hardware. Disciplina: Informática Prof. Higor Morais

QUESTIONAMENTO ACERCA DO EDITAL DO PREGÃO ELETRÔNICO AA Nº 03/ BNDES

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Sistemas Operativos I

Avaliando e Compreendendo o Desempenho. Capítulo 4

ARQUITETURA DE COMPUTADORES

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

LIXO ELETRÔNICO: origens e reaproveitamento

Gerenciamento de memória

Veeam Endpoint Backup FREE

Organização e Arquitetura de Computadores

Princípios e Conceitos de Desenho de Software. Projeto de Sistemas de Software Prof. Rodrigo Ribeiro

CATÁLOGO DE APLICAÇÕES Rateio CC Contas a Pagar

Linux e Computação Científica

Arquitecturas de Software Enunciado de Projecto

Ministério da Educação Universidade Tecnológica Federal do Paraná Campus Pato Branco Departamento de Projetos e Obras MEMORIAL DESCRITIVO

Sistemas Operacionais

Rateio por Despesas por Contas Contábeis

Dynamic Voltage Scaling in Multitier Web Servers with End-to-End Delay Control

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Instruções para o cadastramento da Operação de Transporte e geração do Código Identificador da Operação de Transporte CIOT.

Curso de Engenharia de Produção. Organização do Trabalho na Produção

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

Memória cache. Prof. Francisco Adelton

Série Rações Semanais Xpath e XSLT Rogério Araújo

Sistemas Operacionais

Prof. Daniela Barreiro Claro

Arquitetura e Organização de Computadores

Transcrição:

Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Introdução Problema Memória principal pode não comportar todos os processos ativos Solução Emprego de memória virtual Memória virtual Esquema de armazenamento no qual a memória secundária é endereçado como parte da memória principal

Mapeamento

Mapeamento Processador Apenas executa/opera no espaço de endereçamento virtual Deve existir mecanismo que transforme os endereços virtuais em reais. Mapeamento Permite tradução um endereço do espaço virtual para espaço real. Sistemas modernos Tarefa de tradução de endereços virtuais é realizada por Hardware + sistema operacional Não deve comprometer desempenho Deve ser transparente a usuários e suas aplicações.

Mapeamento Tradução Unidade de gerência de memória (Memory Management Unit - MMU) em HW Acionado sempre que se faz referência a um endereço virtual Depois de traduzido Endereço real pode ser utilizado para o acesso à memória principal. Cada processo tem o seu espaço de endereçamento Responsabilidade do mecanismo de tradução Manter tabelas de mapeamento exclusivas para cada processo Relacionar os endereços virtuais do processo às posições na memória real

Mapeamento

Mapeamento A tabela de mapeamento Estrutura de dados existente para cada processo. Quando um determinado processo está sendo executado Tradução dos endereços baseado na tabela de mapeamento do processo Se um outro processo vai ser executado Sistema deve passar a referenciar a tabela do novo processo. A troca de tabelas de mapeamento é realizada através de um registrador Indica a posição inicial da tabela corrente Da mudança de contexto Registrador é atualizado com o endereço da nova tabela

Mapeamento Tabelas mapeiam blocos de dados Tamanho determina o número de entradas existentes nas tabelas de mapeamento. Quanto maior o bloco Menos entradas existem nas tabelas de mapeamento Menor o tamanho das tabelas de mapeamento Técnicas empregadas pelos sistemas operacionais Paginação Segmentação Segmentação com paginação

Memória Virtual por Paginação A memória virtual por paginação Blocos de mesmo tamanho nos espaços de endereçamento Virtual (memória secundária) Páginas virtuais Real (memória principal) Páginas reais / quadros Tabela de página Individual a cada processo possui Cada página virtual do processo Presente na tabela (entrada na tabela de páginas - ETP) Contém informações de mapeamento Permitem ao sistema localizar a página real correspondente

Memória Virtual por Paginação

Memória Virtual por Paginação Além da informação sobre a localização da página virtual Bit de validade (valid bit) Indica se uma página está ou não na memória principal. Zero indica página virtual não presente na memória principal Um indica a página está localizada na memória. Bit verificado sempre quando de uma requisição Ausência de um página na MP acarreta uma falha (page fault) Sistema transfere a página da memória secundária para a principal Realizando uma operação de E/S conhecida como paginação.

Memória Virtual por Paginação Número de page faults gerado por um processo depende de: Como o programa foi desenvolvido Qual a política de gerência de memória implementada O overhead (sobrecarga) gerado pelo mecanismo de paginação Inerente à gerência de memória virtual Excesso de operações de E/S pode comprometer o desempenho

Memória Virtual por Paginação Quando ocorre um page fault Processo em questão passa do estado de execução para espera Aguarda até que a página seja transferida para a memória principal. Na troca de contexto Tabela de mapeamento é salva Informações do novo processo escalonado são restauradas. Após a transferência da página para a memória principal Processo é recolocado na fila de processos no estado de pronto Quando reescalonado poderá continuar sua execução.

Memória Virtual por Paginação

MMU Gerência de Memória Virtual Políticas de Busca de Páginas Permite a execução de um programa sem que seu código esteja completamente residente na memória principal Política de busca determina quando uma página deve ser carregada. Estratégias para este propósito Paginação por demanda Paginação antecipada. Paginação por demanda Páginas transferidas da memória secundária para a principal quando referenciadas. É possível que partes não executadas do programa nunca sejam carregadas Paginação antecipada Além da página referenciada, carrega páginas que podem ou não ser necessárias Permite economia de tempo, mas pode causar perda de tempo e desperdiçar memória

Políticas de Alocação de Páginas A política de alocação de páginas Determina quantos frames cada processo pode manter na memória principal. Alternativas de alocação Fixa Processo tem um número máximo de frames que pode ser utilizado Caso o número de páginas reais seja insuficiente Página do processo deve ser descartada Variável Número máximo de páginas pode variar durante sua execução Emprega sua taxa de paginação e da ocupação da memória principal

Translate Lookaside Buffer (TLB) Gerência de memória virtual Mapeamento implica em pelo menos dois acessos à memória principal à tabela de páginas à própria página. Maioria das aplicações Referencia um número reduzido de frames na memória principal Princípio da localidade Temporal e espacial Uma pequena fração da tabela de mapeamento é realmente necessária.

Translate Lookaside Buffer (TLB) Translation Lookaside Buffer (TLB) Permite mapear endereços virtuais em endereços físicos Pode não requer acesso à tabela de páginas Traduções prévias podem estar armazenadas na TLB Funciona como uma memória cache Foco está na resposta a endereços virtuais previamente buscados e traduzidos Mantendo apenas as traduções dos endereços virtuais das páginas mais recentemente referenciadas Utiliza o esquema de mapeamento associativo

Translate Lookaside Buffer (TLB) Tradução de um endereço virtual Verifica primeiro o TLB Caso o endereço virtual (tag) esteja na cache Endereço físico é utilizado Eliminando o acesso à tabela de mapeamento (TLB hit). Caso o endereço não esteja na cache Tabela de mapeamento deve ser consultada (TLB miss). Se a página estiver na memória principal Tradução do endereço virtual é colocada no TLB Endereço é traduzido. Caso contrário Ocorre um page fault A página é carregada para a memória A tabela de mapeamento é atualizada Informação é carregada para a TLB.

Translate Lookaside Buffer (TLB) ENDEREÇO LÓGICO TABELA DE PÁGINAS TLB MISS TLB Envia dado para a CPU PAGE FAULT PAGE HIT TLB HIT MEMÓRIA CACHE CACHE HIT CACHE MISS CPU Disco MISS MEMÓRIA PRINCIPAL HIT

Swapping em Memória Virtual A técnica de swapping Pode ser aplicada em sistemas com memória virtual Permite aumentar o número de processos que compartilham a memória principal Aumenta o grau de multiprogramação do sistema. Empregando quando Existem novos processos para serem executados Não há memória principal livre suficiente para alocação Sistema utiliza o swapping Selecionando um ou mais processos para saírem da memória Oferecer espaço para novos processos. Depois de escolhidos Sistema retira os processos da memória principal para a secundária (swap out) Páginas ou segmentos gravados em um arquivo de swap (swap file)

Swapping em Memória Virtual

Swapping em Memória Virtual Políticas que podem ser aplicadas na escolha dos processos Principalmente escolhe considerando o estado do processo e sua prioridade. Com base no estado dos processos Seleciona, inicialmente, os processos que estão no estado de espera. Seleção pode ser refinada em função do tipo de espera de cada processo. Com base na prioridade É possível que não existam processos suficientes no estado de espera para atender as necessidades de memória do sistema. Escolhe os processos no estado de pronto com menor prioridade

Swapping em Memória Virtual O arquivo de swap Compartilhado por todos os processos que estão sendo executados no ambiente. Quando um processo é criado Sistema reserva um espaço no arquivo de swap para o processo. Quando um processo é eliminado Sistema libera a área alocada.

Thrashing Thrashing Excessiva transferência blocos entre a memória principal e a secundária. Na memória virtual por paginação Thrashing ocorre em dois níveis No próprio processo Excessiva paginação ocorre devido ao elevado número de page faults Processo passa mais tempo esperando por páginas do que executado No sistema Processos competindo por memória principal que espaço disponível Solução o Reduzir o número de páginas de cada processo na memória

Thrashing Desempenho da máquina Começa a diminuir a partir de um determinado número de processos ativos Característica dinâmica que depende: Da arquitetura da máquina Do tamanho da MP Do número de processos ativos Do tipo de processos que estão ativos (io-bound, cpu-bound) Taxa de utilização do processador cai exponencialmente quando em trashing