O TEMPO DE ACESSO PARA LEITURA OU ESCRITA 

É FUNÇÃO DE 4 FATORES :
	O TEMPO DE SEEK - CILINDRO APROPRIADO
•	HISTORICAMENTE É O QUE MAIS INFLUENCIA O TEMPO DE ACESSO
•	TEM DIMINUÍDO AO LONGO DO TEMPO
•	NA ORDEM DE 3 A 5 ms ENTRE TRILHAS ADJACENTES
•	TEMPO MÉDIO DE 10 ms (CONSIDERA-SE 1/3 DAS TRILHAS)
ATRASO ROTACIONAL (LATÊNCIA) - SETOR APROPRIADO
•	TEMPO MÉDIO DE 4,16 ms (7200 rpm E ½ REVOLUÇÃO)
	TEMPO DE TRANSFERÊNCIA
•	BUFFER DA CONTROLADORA PARA BUFFER NA MEMÓRIA
TEMPO DE PROCESSAMENTO DO COMANDO (OVERHEAD - TEMPO RELATIVAMENTE INSIGNIFICANTE)
•	DETERMINAÇÃO DA LOCALIZAÇÃO FÍSICA
•	SINALIZAÇÃO PARA O BRAÇO
•	LEITURA/ESCRITA

TRATAMENTO DE INTERRUPÇÕES:

•	AS ROTINAS DE TRATAMENTO DE INTERRUPÇÕES DEVEM  SER ESCONDIDAS A FIM DE QUE APENAS UMA PEQUENA PARTE DO S.O. NECESSITE SABER DE SUA EXISTÊNCIA.

UMA MANEIRA SIMPLES PARA CONSEGUIR ESCONDER É:

•	CONSIDERAR UM DRIVER DE DISPOSITIVO

•	BLOQUEÁ-LO QUANDO O COMANDO DE I/O FOR INICIADO

•	QUANDO DA INTERRUPÇÃO, O TRATAMENTO É O DO DESBLOQUEIO DO DRIVER, USANDO SEMÁFOROS, MONITORES OU MENSAGENS.

TRATAMENTO DE INTERRUPÇÕES NO UNIX:

•	SALVAR O CONTEXTO DO PROCESSO EM EXECUÇÃO NA TABELA DE PROCESSOS (PCB)

•	HABILITAR A INTERRUPÇÃO

•	ENVIAR UMA MENSAGEM AO DRIVER

•	CHAMAR O ESCALONADOR, QUE ESCOLHE O DRIVER POR CAUSA DE SUA ALTA PRIORIDADE

PRIORIDADES PARA AS INTERRUPÇÕES

DEVIDO AO POSSÍVEL NÚMERO DE DISPOSITIVOS, QUANDO DO USO DE INTERRUPÇÕES, HÁ A NECESSIDADE DE ASSOCIAR A CADA DISPOSITIVO UMA PRIORIDADE DIFERENTE

UMA INTERRUPÇÃO PRIORITÁRIA, OCORRENDO AO MESMO TEMPO DE OUTRA MENOS PRIORITÁRIA, OU DURANTE O TRATAMENTO DE UMA INTERRUPÇÃO MENOS PRIORITÁRIA, SERÁ TRATADA PREFERENCIALMENTE

A CPU TEM UM REGISTRADOR COM O VALOR DA PRIORIDADE DA INTERRUPÇÃO SENDO TRATADA, PROCESSOR STATUS REGISTER (PSR)

INTERRUPÇÕES COM MENOR PRIORIDADE, QUE OCORRAM DURANTE O TRATAMENTO DE UMA OUTRA INTERRUPÇÃO, PERMANECEM PENDENTES

SE HOUVER NECESSIDADE, PODE-SE EMPILHAR INTERRUPÇÕES (PSR E PC) PARA POSTERIOR TRATAMENTO

VETOR DE INTERRUPÇÕES

CADA DISPOSITIVO TEM ASSOCIADA UMA ROTINA PARA TRATAMENTO DE SUA INTERRUPÇÃO (IRQ)

QUANDO DA OCORRÊNCIA DA INTERRUPÇÃO, O ENDEREÇO DA ROTINA DE TRATAMENTO APROPRIADA DEVE SER COLOCADA NO PC

O VETOR DE INTERRUPÇÕES, UMA ÁREA DEDICADA NA MEMÓRIA, É USADO PARA ARMAZENAR OS ENDEREÇOS DAS ROTINAS DE TRATAMENTO

O VALOR DA IRQ É USADO COMO ÍNDICE PARA ACESSAR O ENDEREÇO DA RESPECTIVA ROTINA DE TRATAMENTO

CONTROLE DE INTERRUPÇÕES

EXISTEM BASICAMENTE TRÊS NÍVEIS DE CONTROLE DE INTERRUPÇÕES PELA CPU:

•	NÍVEL GLOBAL DO SISTEMA - ONDE TODAS AS INTERRUPÇÕES PODEM SER HABILITADAS (EI - ENABLE INTERRUPT) OU DESABILITADAS (DI- DISABLE INTERRUPT)

•	CONTROLE SELETIVO DE INTERRUPÇÕES - PODE-SE MASCARAR ALGUMAS INTERRUPÇÕES COMO HABILITADAS, ALGUMAS COMO DESABILITADAS

•	NÍVEL INDIVIDUAL DE CONTROLE DE INTERRUPÇÕES - CADA DISPOSITIVO TEM COMO SER HABILITADO OU DESABILITADO

ALGUMAS CONTROLADORAS, ESPECIALMENTE AQUELAS PARA DISPOSITIVOS DE BLOCOS, SUPORTAM DMA DIRECT MEMORY ACCESS.

FUNCIONAMENTO SEM DMA

a)	VERIFICAÇÃO DA VALIDADE DO ENDEREÇAMENTO (CHS)

b)	LEITURA DE UM BLOCO (UM OU MAIS SETORES) BIT A BIT

c)	COMPOSIÇÃO DOS BYTES NO BUFFER INTERNO

d)	CÁLCULO DO DÍGITO DE CONTROLE PARA VERIFICAR ERROS DE LEITURA

e)	INTERRUPÇÃO DA CPU

f)	NO TRATAMENTO, O S.O., LÊ O BUFFER DA CONTROLADORA, 1, 2 OU 4 BYTES POR VEZ, E OS ARMAZENA NA MEMÓRIA

A LEITURA DE UM BYTE POR VEZ CONSOME MUITO TEMPO DA CPU

O DMA PRETENDE LIBERAR A CPU DESTE TIPO DE TRABALHO

FUNCIONAMENTO COM DMA

ALÉM DAS INFORMAÇÕES DE ENDEREÇAMENTO DO DISCO SÃO PASSADOS:

•	O ENDEREÇO DE MEMÓRIA ONDE O BLOCO DEVE SER COLOCADO 

•	O NÚMERO DE BYTES A TRANSFERIR

REALIZAM-SE AS TAREFAS DE VALIDAÇÃO DO ENDEREÇAMENTO (a), LEITURA (b), COMPOSIÇÃO (c), ALÉM DO CÁLCULO DO DÍGITO DE CONTROLE (d).

O DMA TRANSFERE UM BYTE/PALAVRA PARA A MEMÓRIA EM UM LOOP ATÉ TODOS OS DADOS SEREM TRANSFERIDOS

A CONTROLADORA INTERROMPE A CPU

Exercícios

1.	Um disquete contém 40 cilindros. O tempo de seek é de 6 mseg entre dois cilindros adjacentes. Em média dois blocos logicamente consecutivos permanecem separados por 13 cilindros, se nenhuma medida especial for tomada durante a criação do arquivo. Caso o sistema operacional tente manter os blocos juntos, estes ficam separados em média por 2 cilindros. Qual é o tempo médio para a leitura de 100 blocos nos dois casos, considerando o atraso rotacional médio de 10 mseg e o tempo de transferência de um bloco de 5 mseg?
2.	Qual seria o valor do atraso rotacional caso o motor girasse a 7200 rpm?
3.	Interrupções são indispensáveis para a realização de operações de E/S? Justifique sua resposta.
4.	Porque é importante habilitar e desabilitar interrupções?
5.	Se um processador utiliza prioridades para as interrupções, mas não conta com uma pilha para as interrupções menos prioritárias, qual poderia ser a estratégia que impediria a perda da interrupção?
6.	O que é um vetor de interrupções (para que serve, o que contém, onde está, quando é manipulado)? Este vetor pode ser atualizado?
7.	Considerando a existência dos sinais IRQ e IAK, como seria possível tratar várias interrupções simultâneas, se não existisse o registrador PSR?
8.	Qual é a função de uma DMA?
9.	Porque uma controladora não faz o serviço do DMA?