SISTEMA DE ENTRADA E SAÍDA (E/S)

FUNÇÕES EM UM S.O.

UMA DAS PRINCIPAIS FUNÇÕES EM UM S.O. É O CONTROLE DOS DISPOSITIVOS PERIFÉRICOS DE ENTRADA E SAÍDA, ATRAVÉS DO:

•	ENVIO DE COMANDOS AOS DISPOSITIVOS PERIFÉRICOS,

•	TRATAMENTO DE INTERRUPÇÕES,

•	MANIPULAÇÃO DE ERROS,

•	PROVISÃO AO USUÁRIO DE UMA INTERFACE SIMPLES E FÁCIL DE USAR, E

•	PROVISÃO UMA INTERFACE ÚNICA PARA TODO TIPO DE  DISPOSITIVOS PERIFÉRICOS.

A PARTE RELATIVA À E/S REPRESENTA UMA FRAÇÃO SIGNIFICATIVA DO CÓDIGO DE UM S.O.

SOFTWARE ENVOLVIDO COM E/S

A ORGANIZAÇÃO DO SOFTWARE ENVOLVIDO COM E/S COMO UMA SÉRIE DE CAMADAS PERMITE QUE:

•	AS PARTICULARIDADES DO HARDWARE FIQUEM ESCONDIDAS NAS CAMADAS MAIS BAIXAS

•	O USUÁRIO VEJA UMA INTERFACE SIMPLES, PADRONIZADA E LIMPA NA CAMADA SUPERIOR.

SOFTWARE AO NÍVEL DO USUÁRIO

SOFTWARE INDEPENDENTE DE DISPOSITIVOS

ACIONADORES DE DISPOSITIVOS ("DRIVERS")

TRATAMENTO DE INTERRUPÇÕES

HARDWARE

DRIVERS DE DISPOSITIVOS

TODO O CÓDIGO QUE DEPENDE OU DO QUAL DEPENDA O DISPOSITIVO FAZ PARTE DO DRIVER

NORMALMENTE EXISTE UM DRIVER POR TIPO DE DISPOSITIVO

O DRIVER É A ROTINA ENCARREGADA DA COMUNICAÇÃO COM A CONTROLADORA (COMANDOS E RESULTADOS)

O DRIVER É A ÚNICA PARTE DO S.O. QUE SABE QUANTOS REGISTRADORES (I/O PORTS) EXISTEM NA CONTROLADORA E PARA QUE SERVEM (TEM ACESSO A ELES)

EXISTEM PADRÕES QUE SIMPLIFICAM UM DRIVER, TRANSFERINDO ALGUM CONTROLE PARA A CONTROLADORA DO DISPOSITIVO

TIPOS DE I/O PORTS:

•	MAPEADOS EM MEMÓRIA - ENDEREÇOS DA MEMÓRIA PRINCIPAL SÃO RESERVADOS PARA OS REGISTRADORES

•	MAPEADOS EM I/O - ESPAÇO DE ENDEREÇAMENTO SEPARADO E ESPECÍFICO PARA OS REGISTRADORES (INSTRUÇÕES ESPECÍFICAS)

O DRIVER RECEBE REQUISIÇÕES PARA OPERAÇÕES DE E/S DO NÍVEL ANTERIOR, UMA DE CADA VEZ.

NO CASO DE MULTIPROGRAMAÇÃO, SE O DRIVER ESTÁ REALIZANDO UMA OPERAÇÃO, AS REQUISIÇÕES QUE CHEGAM SÃO COLOCADAS EM UMA ESTRUTURA DE REQUISIÇÕES PENDENTES

CADA REQUISIÇÃO DÁ ORIGEM A UMA OU MAIS OPERAÇÕES DE E/S, EM UMA DETERMINADA SEQÜÊNCIA, ATRAVÉS DA INICIALIZAÇÃO DE COMANDOS E INFORMAÇÕES NOS REGISTRADORES DA CONTROLADORA

INTERFACES DE E/S	

A INTEROPERAÇÃO ENTRE CPU E CONTROLADORA PODE SE REALIZAR ATRAVÉS DE:

•	POLLING - A CPU CONTINUAMENTE PERGUNTA À CONTROLADORA SE ESTA JÁ COMPLETOU O SERVIÇO

•	INTERRUPÇÃO - A CONTROLADORA AVISA ATRAVÉS DE INTERRUPÇÃO QUANDO NECESSITA A ATENÇÃO DA CPU

(LINHAS NO BARRAMENTO USADAS PARA INTERRUPÇÕES DE HARDWARE)

IRQ - INTERRUPT REQUEST 

IAK - INTERRUPT ACKNOWLEDGE 

CONTROLADORA

ALGUMAS CONTROLADORAS PODEM EXECUTAR VÁRIAS OPERAÇÕES SIMULTANEAMENTE

A OPERAÇÃO NA CONTROLADORA PODE DEMORAR OU NÃO:

•	CASO NÃO DEMORE, O DRIVER PODE ENVIAR UM NOVO COMANDO

•	CASO DEMORE, 

•	SE POLLING, O DRIVER DEVE, DE TEMPOS EM TEMPOS, VERIFICAR OS REGISTRADORES DE STATUS

•	SE INTERRUPÇÃO, O DRIVER PODE SER BLOQUEADO ATÉ O MOMENTO DA INTERRUPÇÃO

É INTERESSANTE PARA QUE A CPU REALIZE OUTRAS TAREFAS. 

QUANDO DO TÉRMINO DA OPERAÇÃO, O DRIVER VERIFICA A OCORRÊNCIA DE ERROS, SE NÃO OCORRERAM O RESULTADO É ENCAMINHADO AO CHAMADOR: A INFORMAÇÃO DE STATUS É RETORNADA

EM CASO DE ALGUNS ERROS, O DRIVER FAZ O TRATAMENTO

NO CASO DE EXISTÊNCIA DE REQUISIÇÕES PENDENTES, UMA PRÓXIMA REQUISIÇÃO É ESCOLHIDA E ENCAMINHADA

Exercícios

1.	Qual é o nível de contenção que dispositivos de E/S impõem à CPU? Quantifique.
2.	Apresente, ao menos, três idéias que podem ajudar no problema de contenção da questão anterior.
3.	Um driver consegue ao mesmo tempo receber requisições da camada independente de dispositivo e iniciar uma operação junto à controladora. Uma vez iniciada a operação na controladora, o driver se bloqueia. Como é possível para uma mesma rotina estar bloqueada e ao mesmo tempo recebendo requisições? Comente sobre os mecanismos conhecidos que permitem esse "paralelismo".
4.	Um driver recebe uma requisição de cada vez. Ao mesmo tempo, o driver aciona a controladora com os valores correspondentes de uma requisição. Se a controladora realiza a operação rapidamente, o driver “escolhe” outra requisição para ser atendida. Explique onde e como essa escolha ocorre.
5.	De que maneiras um padrão pode simplificar um driver? Essa simplificação tem qual custo-benefício?