Sistemas operacionais Dispositivos de entrada e saída Dispositivos de entrada e saída Periféricos: Um periférico pode ser visto como qualquer dispositivo conectado a um computador de forma a possibilitar sua interação com o mundo externo. Dispositivos de entrada e saída Periféricos: De acordo com o sentido do fluxo de dados entre o computador e o dispositivo, esses podem ser divididos em periféricos de entrada, periféricos de saída, ou ainda periféricos de entrada e saída. Dispositivos de entrada e saída Periféricos: Os periféricos são conectados ao computador através de um componente de hardware denominado interface. As interfaces constituem um elemento chave para coordenação da transferência de dados entre periférico e o processador, ou entre periférico e memória. Dispositivos de entrada e saída Periféricos: As interfaces empregam no seu projeto um outro componente de hardware: o controlador. Um controlador nada mais é que um processador projetado especificamente para realizar uma função, como, por exemplo, controlar um disco rígido. Dispositivos de entrada e saída Periféricos: Os dispositivos de I/O, dependendo de sua interconexão física às interfaces, podem ser do tipo serial ou paralelo. Essa característica está relacionada à maneira pela qual os dados são transferidos entre os dispositivos de I/O e as interfaces Dispositivos de entrada e saída Periféricos: Uma interface serial é aquela que existem apenas uma linha para os dados. Os dados podem trafegar em dois sentidos, mas em apenas um sentido por vez! Dispositivos de entrada e saída Periféricos: Uma interface paralela possui várias linhas para os dados, permitindo assim que vários bits sejam transferidos simultaneamente (em paralelo) entre os dispositivos de I/O e a interface. Dispositivos de entrada e saída Periféricos: Dispositivos de E/S são dispositivos de hardware bastante variados: Orientados a caracteres ou a blocos Síncronos ou não Compartilhados ou não Velocidades diferentes Dispositivos de entrada e saída O Sistema Operacional deve gerenciar os dispositivos de I/O e ainda abstrair o acesso a todos esses periféricos de E/S para o usuário final. Independência de dispositivos São dispositivos lentos O Sis. Op. deve ser eficiente ao usá-los. Dispositivos de entrada e saída Organização da gerência de I/O Dispositivos de entrada e saída Cada driver Hardware. encapsula as características do dispositivo de Conversa com o controlador do dispositivo; É a parte mais específica do Sis. Op. Acompanha o hardware quando da sua aquisição ou vem nativamente no sistema operacional. Em geral existe uma versão de driver para cada sistema operacional específico. Poder seguir um padrão (e.g. SCSI, USB...) Dispositivos de entrada e saída Tipos de drivers/dispositivos. Orientados a blocos Acessa-se blocos de bytes de uma vez; Cada bloco deve ter um endereço; Exemplos: disco, discos removíveis Dispositivos de entrada e saída Tipos de drivers/dispositivos. Dispositivos orientados à rede O tempo de acesso à rede é ainda diferente do tempo de uso de outros devices usuais. Por isso, costuma-se definir uma interface específica para devices orientados a rede. A interface típica é o socket Dispositivos de entrada e saída Tipos de drivers/dispositivos. Dispositivos orientados à rede Pode-se criar um socket, abri-lo e fechá- lo; Quando aberto, pode-se: Se conectar no socket (connect); Ouvir no socket até alguma coisa chegar (listen); Escrever no socket (write) Pode-se ouvir vários sockets e selecionar (select) uma ação apropriada ao socket de onde veio a informação. Dispositivos de entrada e saída Tipos de drivers/dispositivos. Dispositivos orientados à rede Existem vários protocolos de rede suportados pelos sockets: Fluxo confiável de bytes (pipe); Fluxo confiável de pacotes; Fluxo não confiável; Dispositivos de entrada e saída Outras formas de classificar: Compartilháveis ou não: possibilidade de ser acesso por vários processos no mesmo tempo. Tela vs. Impressora. Seqüencial ou randômico Mouse vs. disco Acessível em leitura só, ou em escrita só, ou em escrita/leitura. Mapeado na memória / usa registradores Dispositivos de entrada e saída O subsistema de E/S Basicamente, ele define interfaces padronizadas em cima dos drivers, para serem usadas pelo núcleo. Possibilita o acesso a vários dispositivos, independente de suas peculiaridades. Exemplos: interface Ethernet para a rede: Define um endereço IP, um endereço de roteamento (gateway), um prazo máximo de atendimento... Independente da placa de rede específica! Interface do Mouse: Vai tratar eventos tais como ‘clic’ ou movimentação. Independente do tipo de mouse! Dispositivos de entrada e saída Funções típicas e genéricas da interface Buffer e Caches Tratamento de erros Escalonamento de dispositivo Compartilhamento e controle de acesso Mais funções “backdoor” Dispositivos de entrada e saída Tratamento de erros O Sistema Operacional deve identificar: O tipo de erro Transiente/permanente SW / HW Qual dispositivo é à origem do erro Deve retornar o identificador do erro para o usuário. Deve logar o erro. Dispositivos de entrada e saída Bufferização Buffer não é cache! Buffer = área de armazenamento temporário de dados. Útil para: Ajustar tamanho de dados - Byte vs. Pacotes Ajustar velocidades entre dispositivos Possibilitar o assincronismo Mas cache é um buffer orientado ao desempenho! Dispositivos de entrada e saída Bufferização Problemas básicos: Manutenção da coerência entre o buffer e os dados originais. tamanho do buffer; O que fazer quando estoura o buffer? Aumentar o buffer... Usar um outro buffer... Usar vários outros buffers Sistema de buffers circulares.