Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software de entrada/saída, Vitor Neis da Silva - Coggle Diagram
Software de entrada/saída
Introdução
O sistema operacional é responsável por oferecer acesso aos dispositivos de entrada/saída às aplicações e, em consequência, aos usuários do sistema
Arquitetura de software de entrada/saída
Para simplificar o uso e a gerência dos dispositivos de entrada/saída, o código do sistema operacional é estruturado em camadas, que levam da interação direta com o hardware (como o acesso às portas de entrada/saída, interrupções e operações de DMA) às interfaces de acesso abstratas e genéricas oferecidas às aplicações, como arquivos e sockets de rede.
Classes de dispositivos
Para simplificar a construção de aplicações e das camadas mais elevadas do próprio sistema operacional, os dispositivos de entrada/saída são geralmente agrupados em classes ou famílias com características similares, para os quais uma interface genérica pode ser definida
Dispositivos orientados a blocos
são aqueles dispositivos em que as operações de entrada ou saída de dados são feitas usando blocos de bytes de tamanho fixo
Dispositivos de rede
estes dispositivos permitem enviar e receber mensagens entre processos e computadores distintos.
Dispositivos orientados a caracteres
são aqueles cujas transferências de dados são sempre feitas byte por byte, em sequência.
Dispositivos gráficos
permitem a renderização de texto e gráficos em terminais de vídeo.
Drivers de dispositivos
Um driver de dispositivo, ou simplesmente driver, é um componente do sistema operacional responsável por interagir com um controlador de dispositivo
Funções de tratamento de eventos
estas funções são ativadas quando uma requisição de interrupção é gerada pelo dispositivo
Funções de entrada/saída
responsáveis pela transferência de dados entre o dispositivo e o sistema operacional
Funções de gerência
responsáveis pela gestão do dispositivo e do próprio driver. Além de funções para coordenar a inicialização e finalização do driver e do dispositivo, geralmente são fornecidas funções para configurar o dispositivo, para desligar ou colocar em espera o dispositivo quando este não for usado, e para tratar erros no dispositivo
Estratégias de interação
Cada driver deve interagir com seu respectivos dispositivo de entrada/saída para realizar as operações desejadas, através das portas de seu controlador.
Interação controlada por eventos
Uma forma mais eficiente de interagir com dispositivos de entrada/saída consiste em efetuar a requisição da operação desejada e suspender o fluxo de execução corrente, liberando o processador para tratar outras tarefas.
Acesso direto à memória
Na maioria das vezes, o tratamento de operações de entrada/saída é uma
operação lenta, pois os dispositivos periféricos são mais lentos que o processador.
Interação controlada por programa
A estratégia de entrada/saída mais simples, usada com alguns tipos de dispositivos, é a interação controlada por programa, também chamada varredura, polling ou PIO – Programmed I/O
Tratamento de interrupções
Na maioria das vezes, o tratamento de operações de entrada/saída é uma operação lenta, pois os dispositivos periféricos são mais lentos que o processador.Durante a execução de uma rotina de tratamento de interrupção, é usual inibir novas interrupções, para evitar a execução aninhada de tratadores de interrupção, o que tornaria o código dos drivers (e do núcleo) bem mais complexo e suscetível a erros.
Vitor Neis da Silva