Revisão melhorar desempenho de caches



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

Gerenciamento de memória

Gerenciamento de memória

Arquitetura e Organização de Computadores

Memória cache. Prof. Francisco Adelton

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual

Arquitetura e Organização de Computadores

ARQUITETURA DE COMPUTADORES II

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Capítulo 4 Gerenciamento de Memória

Infraestrutura de Hardware. Memória Virtual

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerenciamento Básico B de Memória Aula 07

Problema: Solução: Vantagens da estruturação em Níveis: Introdução INTRODUÇÃO À ARQUITETURA DE COMPUTADORES. Introdução

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Organização de Computadores 1

Capítulo 4 Gerenciamento de Memória

armazenamento (escrita ou gravação (write)) recuperação (leitura (read))

Organização e Arquitetura de Computadores

Arquitetura de Computadores. Sistemas Operacionais IV

Sistemas Operacionais I

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Sistemas Operacionais

Sistemas Operacionais

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

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

SISTEMAS OPERACIONAIS

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

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

Introdução à Arquitetura de Computadores

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

Capítulo 4 Gerenciamento de Memória

Memória Cache. Prof. Leonardo Barreto Campos 1

Sistemas Operativos I

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Capítulo Sistemas de Memória Memória Virtual. Ch7b 1

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

Que abstrações são providas por um SO moderno? Processos

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8 th Edition

Programação de Sistemas

Introdução à Computação: Sistemas de Computação

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Nível do Sistema Operacional

Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do como ponto de partida.

Linguagem de Montagem 2. Operações e Operandos

Sistemas Operacionais

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

Processos. Estruturas de Controle

Arquitetura de Computadores I

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

Arquitetura dos Sistemas Operacionais

Sistema de Memórias de Computadores

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Sistemas Operacionais

Computador Digital Circuitos de um computador (Hardware)

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

4) Abaixo está representado o nó_i do arquivo SO.txt em um sistema UNIX.

Arquitetura de Sistemas Operacionais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Nível da Arquitetura do Conjunto das Instruções

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Arquitetura de Computadores Moderna

Linguagem de Montagem

Sistemas Operacionais

Exercícios Gerência de Memória

CONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO)

Gerenciamento de memória virtual no Kernel Linux conceitos básicos

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

AULA 13 - Gerência de Memória

2. NÍVEL DE SISTEMA OPERACIONAL

ARQUITETURA DE COMPUTADORES

Exercícios Gerência de Memória

Entradas/Saídas. Programação por espera activa Programação por interrupções

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Sistemas Operativos I

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

1. SINTAXE DA LINGUAGEM ASSEMBLY

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Prof. Bruno Calegaro

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

AULA 16 - Sistema de Arquivos

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

Arquitetura de Computadores - Revisão -

Sistemas Operacionais. Roteiro. Introdução. Marcos Laureano

Introdução à estrutura e funcionamento de um Sistema Informático

Capítulo 4 Gestão da memoria

ARQUITETURA DE COMPUTADORES

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas

Arquitetura de Computadores II

Transcrição:

Revisão melhorar desempenho de caches capacidade = tambloco numblocos associatividade = tambloco numconjuntos blocos/conjunto T méd acesso mem = T acerto + tx faltas x penalidade/falta Para melhorar o desempenho é necessário: reduzir a taxa de faltas parâmetros de projeto: número e tamanho dos blocos, associatividade cache de vítimas, stream buffers, busca antecipada otimização do código: agrupamento, troca de índices, fusão, blocagem reduzir a penalidade nas faltas hierarquia de caches priorizar faltas na leitura (critical word first, early restart) cache não-bloqueante reduzir o tempo de acerto caches simples e pequenas não traduzir endereço virtual para físico escritas em pipeline UFPR-CI312,CI702 2015-1 09 memória principal e virtual 1 Sistema de Memória Sistemas de memória Memória cache organização leitura escrita otimizações busca antecipada Memória Virtual endereçamento e proteção paginação TLB ou Translation Buffer excessões UFPR-CI312,CI702 2015-1 09 memória principal e virtual 2 Memória Virtual MV é uma técnica para gerenciar o recurso memória física; dá a ilusão de uma memória muito grande mem física; protege código e dados dos outros processos; permite execução de processos parcialmente carregados em memória somente as partes LRU do espaço de endereçamento são mantidas em memória, restante mantido em disco. Veja: Virtual Memory: Issues and Implementation, B L Jacob e T N Mudge, IEEE Computer, 31(6), jun1998, p33 43. Virtual Memory in Contemporary Microprocessors, B L Jacob e T N Mudge, IEEE Computer, 31(7), jul-aug1998, p60 75. UFPR-CI312,CI702 2015-1 09 memória principal e virtual 3

Tipos de loci em memória endereço linguagem de máquina ISA CPU endereço virtual end efetivo mapeam ender endereço físico mem física Endereço de linguagem de máquina como especificado pelo montador/compilador Endereço virtual = endereço efetivo nas buscas e LDs,STs conj de instruções especifica tradução dos endereços gerados pelo montador para endereços usados pelo ligador Endereço físico sistema operacional especifica mapeamento de endereço virtual para o endereço de uma posição na memória física UFPR-CI312,CI702 2015-1 09 memória principal e virtual 4 Processos e Espaço de Endereçamento Um espaço de endereçamento (EdE) é o conjunto de endereços que pode ser referenciado por um processo o EdE é tipicamente organizado em 4 segmentos lógicos: texto instruções e constantes dados dados inicializados e dados não-inicializados (BSS) heap dados alocados dinamicamente com malloc() pilha pilha de funções e registros de ativação proteção do EdE: processo referencia fora dos limites segmentation fault mas pilha e heap crescem sob demanda processo tenta executar dados/pilha protection violation EdEs disjuntos promovem proteção como detecta violação de privilégio ou de segmento? BSS = block started by symbol UFPR-CI312,CI702 2015-1 09 memória principal e virtual 5 Carga de Programas com Memória Virtual Memória Virtual (MV) simplifica carga de programas: programas ligados para executar a partir de 0x0040.0000 (MIPS) são carregados em endereço físico programador considera espaço de endereçamento (EdE) plano (flat) de 0x0000.0000 a 0xffff.ffff pointers de 32 bits memória física e SO suportam vários destes EdEs simultaneamente UFPR-CI312,CI702 2015-1 09 memória principal e virtual 6

Espaço de Endereçamento três modelos Primeiro Modelo (até 1960) arquitetura provê espaço de endereçamento contínuo e que se extende de 0x0000.0000 a 0xffff.ffff programa deve ser carregado sempre no endereço físico inicial memória pode conter somente um programa em execução Segundo Modelo (até 1972 - pré IBM 370) EdE contínuo, se EdE > que memória física deve usar overlays Registrador de tradução para fazer relocação do programa programa pode ser carregado em qualquer endereço físico mais de um programa carregado em memória para execução Terceiro Modelo (após 1972 - IBM 370, idéia de [Kilburn1962]) EdE > que memória física, tradução de ender transparente muitos programas carregados na memória UFPR-CI312,CI702 2015-1 09 memória principal e virtual 7 Endereços Absolutos No início da década de 50, computador da moda era o EDSAC, e endereço virtual endereço na memória física Só um programa executa na máquina, com acesso irrestrito a todos seus recursos (RAM+E/S) Endereços no programa dependem de onde o programa está carregado na memória física É fácil escrever sub-rotinas com código independente de posição para o MIPS? Como? UFPR-CI312,CI702 2015-1 09 memória principal e virtual 8 Tradução Dinâmica de Endereços Motivação: operações de E/S nas máquinas antigas eram lentas e processador era envolvido em todas as transferências (polling) Produtividade maior se dois ou mais programas compartilham CPU + memória e executam concorrentemente multiprogramação Programas independentes de posição: facilitam a programação e gerenciamento da memória é necessário um registrador base para relocação na carga Proteção: programas independentes não podem afetar-se acidentalmente é necessário um registrador limite UFPR-CI312,CI702 2015-1 09 memória principal e virtual 9

Tradução com Registradores Base e Limite processador load X reg limite reg ender efetivo topo do segmto + violação de limite? end físico memória principal segmento corrente X reg base ender físico da base Registradores base e limite são visíveis somente quando processador executa em modo supervisor. Este não é o modelo de memória do MIPS UFPR-CI312,CI702 2015-1 09 memória principal e virtual 10 Áreas Separadas para Programa e Dados espaço de endereçam ld X reg limite reg ender efetivo reg base + violação de limite? memória principal X segm dados PC reg limite reg ender efetivo reg base + violação de limite? segm código add m vantagens nesta separação? UFPR-CI312,CI702 2015-1 09 memória principal e virtual 11 Fragmentação da Memória Programas com segmentos de tamanho fixo devem ser acomodados na memória que está disponível à medida que programas entram e saem do sistema memória fica com buracos onde estavam os programas fragmentação externa desperdício de espaço De quando em quando, programas devem ser re-locados/movidos para abrir espaço compactação esta operação é muito dispendiosa!!! SO (uh?) da Microsoft TM obriga usuários a fazer compactação de disco, um problema que foi resolvido (não pela primeira vez) no Unics, em 1979. That IS innovation TM. UFPR-CI312,CI702 2015-1 09 memória principal e virtual 12

Paginação Extensão do mecanismo de segmentação: usar um conjunto de registradores base-limite {texto,bss,heap,pilha} para cada processo ativo Custo razoável para uns poucos processos Se memória é recurso escasso fragmentação é problema sério...a system has been devised to make the core drum combination to appear to the programmer as a single level store, the requisite transfers taking place automatically [Kilburn1962] core = memória principal, drum = memória secundária paginação sob demanda: memória física contém conjunto com páginas ativas de cada processo; mantém em memória o working set referência à página que não está em memória provoca sua carga UFPR-CI312,CI702 2015-1 09 memória principal e virtual 13 Paginação (cont) Espaço de endereçamento dividido em páginas de 4-8 Kbytes Tabela de Páginas mapeia endereços virtuais em endereços físicos EV 4Gb 31 número de página virtual 11 0 deslocamento mapeamento id EF 64Mb a 64Gb 35 25 11 0 número de página física deslocamento indexa uma página indexa na página 1) Quais as vantagens das páginas de tamanho fixo? 2) Quais as vantagens da indireção através da tabela de páginas? UFPR-CI312,CI702 2015-1 09 memória principal e virtual 14 Paginação (cont) endereço virtual processador tabela de páginas memória física endereço físico swap swap = área de troca UFPR-CI312,CI702 2015-1 09 memória principal e virtual 15

Tabela de Páginas (i) Qual o tamanho da tabela de páginas? TP é uma função; qual o seu domínio? qual a sua imagem? qual o tipo da função? { injetora sobrejetora bijetora } UFPR-CI312,CI702 2015-1 09 memória principal e virtual 16 Tabela de Páginas (ii) Qual o tamanho da tabela de páginas? TP = 2 ( pointer / página ) = 2 32 12 = 2 20 = 4M elementos UFPR-CI312,CI702 2015-1 09 memória principal e virtual 17 Tabela de Páginas (iii) Quantas tabelas de páginas são necessárias? UFPR-CI312,CI702 2015-1 09 memória principal e virtual 18

Tabela de Páginas (iv) Quantas tabelas de páginas são necessárias? #TPs #processos UFPR-CI312,CI702 2015-1 09 memória principal e virtual 19 Tabela de Páginas (v) Qual o tamanho da tabela de páginas? 2 ( pointer / página ) Quantas tabelas de páginas são necessárias? #TPs #procs O espaço necessário para as tabelas de páginas é proporcional a: espaço de endereçamento núm de processos espaço necessário é grande! grande demais para manter em registradores (muitas páginas) Alocar TP em registradores especiais, só para o usuário corrente pode não ser factível para TPs grandes Alocar TP na memória principal necessita uma referência para buscar endereço base da página e... outra para acessar o dado/instrução dobra o número de referências à memória encontraremos a salvação na próxima aula... UFPR-CI312,CI702 2015-1 09 memória principal e virtual 20 Paginação Sob Demanda detalhes Paginação reduz fragmentação externa (buracos entre segmentos) Problema: acomodar programa com EdE grande em memória pequena? usar overlays programador deve controlar quais trechos de código/dados estão residentes em RAM eeeeca! programação com overlays é complicada! usada em embarcados Paginação sob demanda: uma página da memória secundária é trazida para a memória primária sempre que for (implicitamente) requisitada pelo processador Atlas, descrito em [Kilburn62] UFPR-CI312,CI702 2015-1 09 memória principal e virtual 21

Paginação Sob Demanda (cont) Memória primária atua como cache para memória secundária páginas grandes amortizam custo da carga (penalidade por falta) reduzir taxa de faltas é imprescindível mapeamento totalmente associativo via Tabela de Páginas tratamento de faltas em software algoritmos mais sofisticados escrita necessariamente preguiçosa porque latência 10 5 ciclos UFPR-CI312,CI702 2015-1 09 memória principal e virtual 22 DRAM como Cache de Disco (mem 2ária) Se página virtual não está em memória física, deve ser copiada da memória secundária (swap em disco) alguma página deve ser ejetada para abrir espaço localidade recomenda: vítima é a que foi usada no passado mais distante (LRU) Exemplo: 11, 10, 12, 9, 11, 7, 11, 13 LRU c.r.a 13? 11? Escrita é preguiçosa: páginas somente de leitura (código) são substituídas páginas com atualizações são marcadas modificadas e, antes de substituídas, mem. 2ária deve ser atualizada UFPR-CI312,CI702 2015-1 09 memória principal e virtual 23 Cache vs Paginação sob Demanda CPU cache mem principal CPU mem principal mem secundária cache paginação linha na cache quadro (frame) bloco na cache 32-64 bytes página 4-8K bytes faltas na cache 1-20% faltas de página <0.001% acerto na cache 1 ciclo acerto na TP = T DRAM falta na cache 10 2 ciclos falta de página 10 5 ciclos falta tratada em HW falta tratada espec em SW UFPR-CI312,CI702 2015-1 09 memória principal e virtual 24

Sistemas Modernos de Memória Virtual Proteção e privacidade vários usuários cada um com seu espaço de endereçamento privativo tabela de páginas espaço de endereçamento mapeamento partes do espaço de endereçamento podem ser explicitamente compartilhadas paginação sob demanda capacidade de executar programas maiores que a memória física melhor utilização dos recursos uso compartilhado da memória elimina fragmentação externa com fragmentação interna da última página do segm. lógico custo: tradução de endereço a cada referência à memória UFPR-CI312,CI702 2015-1 09 memória principal e virtual 25 Tradução de Endereços e Proteção número de página virtual deslocamento sist/usuário? leit/escr? execução? proteção mapeamento número de pág física deslocamento cada referência a dado ou instrução necessita de tradução e verificação de proteção proteção obtida com nível de indireção através da TP um bom sistema de memória virtual deve ser rápido e usar espaço eficientemente privilegia o caso comum UFPR-CI312,CI702 2015-1 09 memória principal e virtual 26 Tabela de Páginas EV 31 11 número de página virtual deslocamento 0 20 RTP 32 32 + válido 1 Tabela de Páginas 3 16 27 11 EF número de pág física deslocamento 0 UFPR-CI312,CI702 2015-1 09 memória principal e virtual 27

Tabela de Páginas Linear Registrador de Tabela de Páginas (RTP) aponta para início da Tabela de Páginas do processo A cada troca de contexto o SO atualiza o RTP para que este aponte a tabela de páginas do processo que entra Cada elemento da tabela de páginas contém: npf npd número da página física residente em memória número da página em disco (se página foi movida para disco) D/M/U página em Disco / mapeada em Memória / Unmapped stat bits de status e proteção/uso: Used, Mod, RO, RW, EX 31 12 11 7 6 2 1 0 npf/npd U M RO WR EX padding D/M/U UFPR-CI312,CI702 2015-1 09 memória principal e virtual 28 Tamanho da TP linear Com endereços de 32 bits, páginas de 4 Kbytes, 4 bytes/elemento: 2 20 elementos = 4 Mbytes por processo >4 Gbytes de swap para conter espaço de endereço completo Páginas maiores! mais fragmentação interna penalidade por falta maior última página meio vazia tempo para ler do disco Processadores de 64 bits mesmo páginas de 1 Mbyte implicam em tabelas com 2 44 elementos de 8 bytes ( 35 TBytes) Há salvação? Como? UFPR-CI312,CI702 2015-1 09 memória principal e virtual 29 Tabela de Páginas Hierárquica EV 31 21 11 0 p1 índice no nível 1 p2 índice no nível 2 desl p2 desl Raiz da TP corrente RTP p1 TP nível1 pág em mem física TP nível 2 pág inexistente (não foi mapeada) pág em mem secundária (swap) páginas UFPR-CI312,CI702 2015-1 09 memória principal e virtual 30

Tabela de Páginas Hierárquica exemplo 31 Ender Virtual 0x03c0.3200 21 11 p1=0x00f p2=0x003 índice no nível 1 Raiz da TP RTP índice no nível 2 00f p1 desl=0x200 0 003 p2 0x14c38 200 desl Ender Físico 0x14c3.8200 TP nível1 TP nível 2 UFPR-CI312,CI702 2015-1 09 memória principal e virtual 31 Resumo memória física e virtual Memória Virtual Divide memória em páginas para melhorar utilização Nível de indireção para obter proteção TP grande tabela de página hierárquica (multi-nível) UFPR-CI312,CI702 2015-1 09 memória principal e virtual 32