SO-09 Entrada e Saída: Hardware

9,453 views
9,200 views

Published on

Sistemas de Entrada e Saída. Visão Geral. Princípios de Hardware (Sistemas Operacionais)

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,453
On SlideShare
0
From Embeds
0
Number of Embeds
54
Actions
Shares
0
Downloads
374
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SO-09 Entrada e Saída: Hardware

  1. 1. Sistemas de Entrada/Saída Princípios de Hardware
  2. 2.   Visão Geral   Princípios de Hardware   Dispositivos de E/S   Estrutura Típica do Barramento de um PC   Controladores de Dispositivos   Interrupções   Acesso Direto à Memória Eduardo Nicola F. Zagari 2 Sistemas Operacionais -Entrada e Saída
  3. 3.   Dispositivos podem variar de diversas maneiras:   Transf. por caractere (terminal) ou por bloco deles (disco)   O acesso aos dados armazenados pode ser seqüencial (modem) ou aleatório (CD-ROM)   Os dados podem ser transferidos de forma síncrona (fita) ou assíncrona (teclado)   Os dispositivos podem ser restritos a um único processo (fi-ta) ou compartilhados simultaneamente por vários (teclado)   O acesso pode ser apenas para leitura (CD-ROM), apenas para escrita (CRT) ou para leitura e escrita (disco)   A velocidade de acesso pode variar muito (freqüentemente, estes dispositivos são os mais lentos de um sistema computacional) Eduardo Nicola F. Zagari 3 Sistemas Operacionais -Entrada e Saída
  4. 4.   Principais objetivos:   estabelecer uma interface que seja a mais simples possível para que as aplicações possam controlar as distintas características dos dispositivos de entrada/saída   otimizar a entrada/saída para obtenção de um maior paralelismo, tendo em vista que tais dispositivos são em geral componentes críticos para o desempenho   Enfim, Controlar todos os dispositivos de entrada/saída (E/S) do computador, emitindo comandos para os dispositivos, atendendo interrupções e manipulando erros. Eduardo Nicola F. Zagari 4 Sistemas Operacionais -Entrada e Saída
  5. 5.   Estruturação em camadas de HW e SW, a fim de prover uma interface simples e confiável para o usuário e suas aplicações.   Desta forma, as camadas inferiores escondem das superiores os diversos detalhes (características) de cada periférico e suas diferenças (velocidade de operação, unidade de transferência, representação de dados, tipos de operação etc). Eduardo Nicola F. Zagari 5 Sistemas Operacionais -Entrada e Saída
  6. 6. Processos Operações de E/S Independente do dispositivo Software Subsistema de E/S Device Drivers Manipuladores de Interrupção Controladores Dependente do Hardware dispositivo Dispositivos Eduardo Nicola F. Zagari 6 Sistemas Operacionais -Entrada e Saída
  7. 7.   Responsáveis pela comunicação entre o computador e o mundo externo.   Muitos tipos de dispositivos são usados em computadores, como:   dispositivos de armazenamento (discos, fitas)   dispositivos de transmissão (placas de rede, modems)   dispositivos de interface com usuários (tela, teclado, mouse)   A transferência de dados, realizada por intermédio dos controladores, pode ser através de blocos de informações ou palavra a palavra. Eduardo Nicola F. Zagari 7 Sistemas Operacionais -Entrada e Saída
  8. 8.   São classificados em:   Dispositivos de blocos:  armazenam informações em blocos de tamanho fixo (normalmente entre 128 e 4096 bytes)  cada bloco possui seu próprio endereço  é possível ler ou escrever cada bloco independentemente (acessando o bloco pelo seu endereço)  Podem ser: –  Acesso Direto: p. ex., disco magnético –  Acesso Seqüencial: p. ex., fita magnética Eduardo Nicola F. Zagari 8 Sistemas Operacionais -Entrada e Saída
  9. 9.   Dispositivos de caracteres:  enviam ou recebem uma seqüência de caracteres sem estar estruturada no formato de blocos  seqüência de caracteres não é endereçável (não são possíveis operações de acesso aos dados)  Exemplos: –  terminais, impressoras, interfaces de rede e leitoras óticas   Existem exceções:  p. ex., relógios (não são endereçáveis e nem geram ou aceitam filas de caracteres): tudo o que fazem é gerar interrupções em intervalos de tempo regulares Eduardo Nicola F. Zagari 9 Sistemas Operacionais -Entrada e Saída
  10. 10.   A comunicação de um dispositivo com o sistema computacional é feita através do envio de sinais (cabo ou ar) num ponto de conexão chamado de porta.   O meio usado por um ou mais dispositivos para conexão com o computador é chamado de barramento.   Para cada barramento, é definido um protocolo que especifica um conjunto de mensagens que podem ser enviadas pelos fios. Eduardo Nicola F. Zagari 10 Sistemas Operacionais -Entrada e Saída
  11. 11. disco barramento SCSI monitor processador disco memória cache disco Controlador de Controlador memória disco terminal gráfico de memória Controlador SCSI Barramento PCI Controlador Interface do de disco IDE barramento de expansão teclado disco disco barramento de expansão disco disco porta paralela porta serial Eduardo Nicola F. Zagari 11 Sistemas Operacionais -Entrada e Saída
  12. 12.   Unidades de E/S consistem tipicamente de   Componentes mecânicos (o dispositivo propriamente dito)   Componentes eletrônicos (o controlador)   Tal diferença deve ser ressaltada, uma vez que o SO vê o controlador e não o dispositivo   Normalmente, mini e microcomputadores usam um barramento único para comunicação entre CPU e os controladores (através de device drivers)   Mainframes freqüentemente usam um modelo diferente, no qual múltiplos barramentos e computadores especializados de E/S (canais de E/S) aliviam parte da carga da CPU Eduardo Nicola F. Zagari 12 Sistemas Operacionais -Entrada e Saída
  13. 13.   Como o processador envia comandos e dados a um controlador para que seja feita uma transf. de dados?   O controlador possui memória e registradores próprios para armazenar dados e sinais de controle, de forma a executar instruções enviadas pelo device driver   O SO realiza E/S, escrevendo comandos e seus parâmetros nestes registradores dos controladores.  As instruções de E/S especiais podem ser usadas para especificar a transferência de um byte ou palavra para uma porta de E/S, que tem um determinado endereço  A instrução de E/S faz com que o dispositivo apropriado seja selecionado de acordo com o sinal transmitido no barramento e que os bits sejam então transferidos para um registrador ou a partir de um registrador do disp. Eduardo Nicola F. Zagari 13 Sistemas Operacionais -Entrada e Saída
  14. 14.  Uma alternativa à operação de E/S, é que o controlador forneça suporte à E/S mapeada em memória. Nesse caso, os registradores do controlador correspondem à determinados endereços no espaço de endereçamento do processador. As operações de E/S são, então, executas usando-se instruções normais de transferência de dados, que correspondem a ler ou escrever valores nos registradores do dispositivo.  Alguns sistemas usam ambas as técnicas, como é o caso dos PCs: um controlador de terminal gráfico tem portas de E/S para operações básicas, mas uma região grande de memória é usada para mapeamento do conteúdo de telas. Eduardo Nicola F. Zagari 14 Sistemas Operacionais -Entrada e Saída
  15. 15.   Um exemplo: Controlador de Terminal Gráfico   trabalha como um dispositivo serial de bits e em baixo nível, ou seja, lê da memória o byte contendo o caractere a ser exibido e gera os sinais usados na modulação do feixe do CRT para causar a escrita na tela   o controlador também gera os sinais para o feixe CRT fazer o retraço horizontal após ele ter terminado de esquadrinhar a linha, bem como, sinais para fazer o retraço vertical após a tela toda ter sido esquadrinhada; Eduardo Nicola F. Zagari 15 Sistemas Operacionais -Entrada e Saída
  16. 16. Retraço Horizontal Retraço Ve Eduardo Nicola F. Zagari 16 Sistemas Operacionais -Entrada e Saída
  17. 17.   O problema da Espera em Ciclo (CPU x Controlador):   Controlador usa bit ocupado no registrador de status   CPU usa bit processar no registrador de controle   Suponha que a CPU escreva dados em uma porta, comunicando-se com o controlador, da seguinte forma:  CPU lê repetidamente o bit ocupado  CPU liga o bit escrever no reg. de controle e armazena saída no reg. de saída de dados  CPU liga bit processar  Quando controlador nota bit processar ligado, ele liga bit ocupado Eduardo Nicola F. Zagari 17 Sistemas Operacionais -Entrada e Saída
  18. 18.  Controlador lê registrador de controle e realiza a operação de escrita no dispositivo  Controlador desliga bit processar, desliga o bit erro no registrador de status (operação com sucesso) e desliga bit ocupado (operação terminada).   Problema: No passo 1, CPU faz espera em ciclo  Se tempos da CPU e do controlador forem diferentes...  ...CPU deve ser alocada à realização de outras tarefas   Problema: p.ex., dados chegando a uma porta serial, teclado etc  Solução: exec instr/testa/exec instr/testa...(ineficiente)  Então, como avisar à CPU que o controlador está ocioso? Mecanismo de Interrupções Eduardo Nicola F. Zagari 18 Sistemas Operacionais -Entrada e Saída
  19. 19.   Quando um comando é aceito, a CPU é liberada pelo SO para outra tarefa.  Não é necessário que a CPU fique testando repetidamente se o dispositivo já está pronto, o que seria muito ineficiente. Isto é possível, através do mecanismo de interrupções.   Quando o comando termina de ser executado, o controlador causa uma interrupção, fazendo o SO tomar controle da CPU e testar o resultado da operação.   A CPU obtém o resultado lendo um ou mais bytes nos registradores de saída de dados do controlador Eduardo Nicola F. Zagari 19 Sistemas Operacionais -Entrada e Saída
  20. 20.   As interrupções são muito usadas em SOs modernos para o tratamento de eventos assíncronos (p. ex., um controlador ficar pronto para operações de E/S, falhas de hardware ou chamadas a rotinas do sistema), desviando o controle para rot. do núcleo.   Funcionamento:   O hardware da CPU tem um fio chamado de linha de requisição de interrupções, que é testado pela CPU depois da execução de cada instrução   Quando a CPU detecta que um controlador enviou um sinal na linha de requisição de interrupções (provocou uma interrupção), ela armazena alguns poucos valores referentes ao seu estado na pilha do processo (PC, SP etc) e desvia para uma rotina de tratamento de interrupções em um determinado endereço de memória. Eduardo Nicola F. Zagari 20 Sistemas Operacionais -Entrada e Saída
  21. 21.   O tratador de interrupções realiza (trata) o processamento necessário e executa uma instrução de retorno da interrupção, que faz a CPU retornar ao estado anterior à interrupção.   Recursos mais complexos:   Desabilitação de interrupções (em fases críticas)  CPU usa 2 linhas de requisição de interrupções: –  uma para requisições que não podem ser desabilitadas (erros de memória irrecuperáveis, p.ex.) –  outra para aquelas que podem ser desabilitadas (os dispositivos fazem suas requisições por estas linhas) Eduardo Nicola F. Zagari 21 Sistemas Operacionais -Entrada e Saída
  22. 22.   Vetor de Interrupções  Cada interrupção gera um endereço que, na maioria das arquiteturas, é usado como um índice em uma tabela (vetor de interrupções), que contém endereços de memória das rotinas de tratamento de interrupção Eduardo Nicola F. Zagari 22 Sistemas Operacionais -Entrada e Saída
  23. 23.   Níveis de prioridade de interrupções  Esse sistema permite à CPU protelar o tratamento de interrupções de baixa prioridade sem desabilitar todas as interrupções e possibilita que o controle da execução de uma interrupção seja interrompido e transferido para uma interrupção de alta prioridade.  Exemplos de situações que geram interrupções: –  Operações de E/S –  Tratamento de exceções (div. por zero, end. proteg.) –  Mecanismo de paginação –  Chamadas a rotinas do núcleo (system calls) –  Gerenciamento do fluxo de execução do núcleo (per-mite que trabalhos urgentes sejam tratados primeiro) Eduardo Nicola F. Zagari 23 Sistemas Operacionais -Entrada e Saída
  24. 24.   Operação de leitura em disco sem suporte à DMA:   Device Driver executa operação de E/S gravando comando no registrador do controlador   Controlador lê o bloco do dispositivo, bit a bit, para seu buffer interno   Controlador executa verificação de erros (checksum)   Controlador causa interrupção   SO reassume CPU e lê o bloco do buffer do controlador para a memória byte a byte (chamado de E/S programada) »  Isto consome um tempo apreciável da CPU »  Solução: usar DMA (Direct Memory Access) Eduardo Nicola F. Zagari 24 Sistemas Operacionais -Entrada e Saída
  25. 25.   Controladores que suportam DMA:   CPU (SO) fornece, além do endereço do bloco a ser lido:  endereço de memória para onde o bloco deve ser copiado  número de bytes a serem transferidos   Controlador lê bloco   Controlador efetua checksum   Controlador de DMA copia, via barramento, byte a byte, as informações do buffer para a memória principal   Controlador causa interrupção   SO reassume CPU com os dados já disponíveis ao processo que os solicitou Eduardo Nicola F. Zagari 25 Sistemas Operacionais -Entrada e Saída
  26. 26. processador memória cache DMA/barramento/ barramento entre controlador de memória memória e CPU interrupções Barramento PCI Controlador de disco IDE Sinais: disco disco Requisição de DMA Confirmação de DMA disco disco Eduardo Nicola F. Zagari 26 Sistemas Operacionais -Entrada e Saída
  27. 27.   Por que o controlador puro não armazena diretamente os bytes na memória, tão logo ele os obtenha? Isto é, por que usar um buffer interno?   Diferença de velocidade ⇒ vários acessos ao barramento   Ainda há um problema: enquanto controlador faz transferência de dados de/para a memória, próximo setor passa por debaixo da cabeça do disco   Solução: intercalação 7 0 7 0 5 0 6 1 3 4 2 3 5 2 6 1 7 6 4 3 2 5 4 1 Sem Intercalação Intercalação Simples Intercalação Dupla Eduardo Nicola F. Zagari 27 Sistemas Operacionais -Entrada e Saída

×