redes
O subsistema de entrada e saída de um sistema operacional é um software bastante complexo, devido à diversidade de periférico encontrados atualmente, existe uma grande variedade de dispositivos, sendo alguns deles: placas de rede com protocolo, tecnologias e velocidades; discos rígidos do tipo SCSI, IDE, EIDE, ZIP, floppies, etc.
O objetivo primário do subsistema de entrada e saída é tentar padronizar ao máximo as rotinas de acesso aos periféricos de forma a reduzir o número de rotinas de entrada e saída, tal característica permite, ao mesmo tempo, a inclusão de novos dispositivos sem necessitar de alterar a interface de programação com o usuário final.
Em boa parte dos sistemas operacionais, o software de E/S é dividido em quatro camadas, cada uma das camadas possui funções e interfaces bem definidas, para as camadas adjacentes.
*Tratadores de interrupção:
-É a parte de mais baixo nível do tratamento de E/S (Escrita em linguagem assembly);
-Executa sempre que um dispositivo gera uma interrupção, normalmente, ao final do seu trabalho, o tratador de interrupção põe em execução o driver do dispositivo;
-Por estar muito “próximo” do hardware, seu trabalho envolve diversas questões de baixo nível, e está longe de ser literal.
*Drivers de dispositivos:
-Um único driver pode controlar vários discos SATA, no entanto, uma placa de som e uma de rede serão certamente controlados por drivers distintos;
-Drivers normalmente são escritos por terceiros e seus bugs são a maior causa de “crashs” dos SOs.
*Software de E/S independente de dispositivo:
-Esta terceira camada, entre outras funções, tenta oferecer aos programas de usuário uma interface única e independente do dispositivo que está sendo acessado;
-Disponibilização de buffers para leitura e escrita em dispositivos;
-Disponibilização de relatórios de erros ocorridos nos dispositivos;
-Alocação e liberação de dispositivos dedicados. Ex: