Entrada e Saída Tipos e Características de Dispositivos Dispositivos, Interfaces com CPU e com Sist Operacional Modelo de dispositivo Espaços de endereçamento e hierarquia de barramentos Modos de acesso por programa,, ADM E/S e hierarquia de Arquitetura do Sistema de E/S Desempenho e projeto Discos UFPR Bacharelado em Ciência da Computação 1 Computador com programa armazenado inicia: main: BSS: heap: mem código dados ender dados PC r0 r1 r2 operandos pilha: UFPR Bacharelado em Ciência da Computação 2 Organização de um periférico registrador de status registrador de controle registrador de leitura de dados 0 1 2 ender registrador de escrita de dados 3 dados staus controle entrada saída estado do periférico: dados prontos, erro, interr pendente modo de operação, comandos, formatação dos dados leitura pelo escrito pelo UFPR Bacharelado em Ciência da Computação 3
Organização de um periférico (ii) typedef struct Perif { int status ; int controle ; char leit ; char escr ; } Perif; / modelo de periférico Perifcontrole = MODO DE OPERACAO ; Perifescr = c ; / envia um caracter / recebe bloco de caracteres do periférico for (i=0; i < TAM; i++) { while (Perifstatus!= PRONTO) { }; / busy wait recebidos[i] = Perifleit; } UFPR Bacharelado em Ciência da Computação 4 Espaços de Endereçamento (i) Periféricos mapeados em espaço disjunto (Intel x86) sinal do barramento indica se referência é E/S ou necessita instruções especiais para efetuar operações de E/S operações de E/S com instruções específicas in e out Periféricos mapeados como faixa do espaço de endereçamento reservada para E/S endereço diferencia E/S de operações de E/S com instruções comuns lw e sw UFPR Bacharelado em Ciência da Computação 5 Espaços de Endereçamento (ii) E/S em espaço de endereçam disjunto Periféricos mapeados como CPU barram E/S perif-0 CPU barram E/S decodificador perif-0 E/S perif-1 perifs mem perif-1 ender ender perif-2 perif-2 perif-3 endereços: 0000-EFFF - mem FFF0-FFFF - perifs perif-3 UFPR Bacharelado em Ciência da Computação 6
Classes de Periféricos Lentos e Preguiçosos: teclado 10 caracteres por segundo mouse 30 caracteres por segundo Rápidos e Gulosos: disco rígido 512 bytes em 01ms ( 4 Mbytes/s) interface de rede rápida 1 Mbytes em 01ms ( 100 Mbytes/s) controlador de vídeo 30 Kbytes em 1ms ( 30 Mbytes/s) Tratamento diferente para as duas classes: periféricos lentos podem esperar; periféricos rápidos devem ser prontamente atendidos; tratamento de grandes volumes é mais complexo que o de caracteres individuais + detalhes em SO UFPR Bacharelado em Ciência da Computação 7 Hierarquia de Barramentos (i) barr de cache ponte barramento de E/S rede Ponte separa lógica- e eletricamente barr de do barr de E/S Este slide e os seguintes mostram a interligação entre e periféricos com barramentos Máquinas modernas empregam ligações seriais que equivalem, conceitualmente, a um barramento UFPR Bacharelado em Ciência da Computação 8 Hierarquia de Barramentos (ii) cache Ta 1c barramento de ponte interface de rede barramento de E/S 500 V 4000 Mbyte/s Ta 60ns 10 V 1000 MByte/s Ta > 100ns Ta = tempo de acesso V = vazão UFPR Bacharelado em Ciência da Computação 9
Entrada e Saída Programada (i) Transferências entre periférico e executadas por programa, palavra a palavra dispositivos lentos e/ou poucos dados for (i=0; i < TAM; i++) M[i] = Perifdados; 1 ld r1, DADOS(rP) 2 st r1, 0(rM) 1- leitura ponte rede cache 2- escrita barramento de E/S UFPR Bacharelado em Ciência da Computação 10 Entrada e Saída Programada (ii) Eficiente para mensagens pequenas espera ocupada não faz trabalho útil, só efetua cópias entre periféricos e for (i=0; i < TAM; i++) { while (Perifstatus!= PRONTO) { }; / busy wait M[i] = Perifdados; } UFPR Bacharelado em Ciência da Computação 11 Eficiência de E/S Programada Periférico endereçado como E/S recepção: periférico leituras na velocidade do barramento de E/S escritas na velocidade da (fila de escrita cheia) transmissão: periférico leituras na velocidade da (faltas na cache) escritas na velocidade do barramento de E/S Periférico endereçado como acessos desviam cache: referências na velocidade da acessos através da cache: após ler registradores do periférico, invalidar bloco na cache (consistência com ) Geralmente, acessos de E/S desviam a cache por problemas de consistência entre o conteúdo dos registradores de status e as cópias na cache que são caducas UFPR Bacharelado em Ciência da Computação 12
E/S por Interrupção (i) CPU programa registrador de controle com operação a ser efetuada pelo periférico; quando operação completa, periférico interrompe CPU Enquanto periférico não está pronto fica livre para efetuar outras tarefas CPU interr-0 interr-1 interr-2 interr-3 barram E/S perif-0 perif-1 perif-2 perif-3 UFPR Bacharelado em Ciência da Computação 13 E/S por Interrupção (ii) Quando detecta, salta para função que trata do evento sinalizado pela Após tratar evento, busca instrução que teria sido executada, não fosse a processo interr() UFPR Bacharelado em Ciência da Computação 14 E/S por Interrupção (iii) Operações numa função de tratamento de interrupções: desabilita novas interrupções de prioridade < esta salva registradores habilita interrupções efetua tratamento do evento causador recompõe registradores habilita demais interrupções retorna código do tratador deve ser reentrante tratador de pode ser interrompido de prioridade esta UFPR Bacharelado em Ciência da Computação 15
Acesso Direto à Memória (i) CPU programa periférico e controlador de ADM; c-adm efetua transferências entre periférico e ; quando transferência completa, c-adm interrompe CPU ADM é bom para grandes volumes de dados 4-1- programa perif 2- programa ADM ponte 3- cópia rede cache barramento de E/S UFPR Bacharelado em Ciência da Computação 16 Acesso Direto à Memória (ii) fluxo de dados ender em Armaz mem ender do periférico tamanho controlador ADM inicialização pela CPU: ADM mem = &(Armaz[0]); ADM perif = (Interf[rxREDE]); ADM tam = Interftam; transfer pelo c-adm: for ( ; ADM tam > 0; ADM tam-- ) (ADM mem)++ = ADM perif; /* interrompe */ UFPR Bacharelado em Ciência da Computação 17 Acesso Direto à Memória (iii) cabeçalho N Rede cabeçalho N Transporte informação N Transporte mensagem completa cabeçalho N Rede informação N Transporte cabeçalho N Transporte Eficiente para mensagens grandes canais de E/S Se controlador de ADM suporta dispersão e coleta, scatter-gather porções de msgns distribuídas por vários armazenadores UFPR Bacharelado em Ciência da Computação 18
revisão: E/S e Computação E/S concorre com computação de maneiras complexas req de E/S req de E/S usuário SO E/S P 1 P 2 P 3 P 1 pronto pronto T tarefa = T cpu + T E/S T concorr UFPR Bacharelado em Ciência da Computação 19 Desempenho de Caches e E/S Operações de E/S são: movimentação entre periféricos e modificação e/ou inspeção simples (checksum) efetuadas em modo supervisor (pelo Sistema Operacional) Operações de E/S tem pouca localidade: cópias e movimentação de dados escalonamento de processos (interrupções, threads) envolvimento do SO em cada operação de E/S UFPR Bacharelado em Ciência da Computação 20 E/S e Caches (ii) P-1 P-2 interr() driver() inicia operação E/S troca de contexto troca de contexto completa operação E/S UFPR Bacharelado em Ciência da Computação 21
E/S e Caches (iii) P-1 P-2 interr() driver() Caches tem pouca eficácia para E/S por causa da baixa localidade e interferência do SO: inicia operação E/S troca de contexto troca de contexto completa operação E/S interrupções causam poluição (expurgam blocos úteis) escalonamento do causa poluição cópias enchem fila de escrita e bloqueiam troca de contexto invalida conteúdo da cache operações nas filas de dispositivos causam re-escalonamento UFPR Bacharelado em Ciência da Computação 22 resumo Sistemas de E/S T tarefa = T cpu + T ES T concorr Hierarquia de barramentos desempenho desemp(cpu-cache) desemp(cache-mem) desemp(e/s) Espaço de endereçamento: como vs como E/S Processamento de E/S por programa por acesso direto a canais de E/S (c-adm programáveis) UFPR Bacharelado em Ciência da Computação 23