O documento discute os sistemas de entrada e saída em computadores, incluindo os principais tipos de dispositivos, como funcionam os controladores e interrupções, e como os sistemas operacionais gerenciam a comunicação entre hardware e software.
2. Visão Geral
Princípios de Hardware
Dispositivos de E/S
Estrutura Típica do Barramento de um PC
Controladores de Dispositivos
Interrupções
Acesso Direto à Memória
Eduardo Nicola F. Zagari
2
Sistemas Operacionais -Entrada e Saída
3. Dispositivos podem variar de diversas maneiras:
Transf. por caractere (terminal) ou por bloco deles (disco)
O acesso aos dados armazenados pode ser seqüencial (modem)
ou aleatório (CD-ROM)
Os dados podem ser transferidos de forma síncrona (fita) ou
assíncrona (teclado)
Os dispositivos podem ser restritos a um único processo (fi-ta) ou
compartilhados simultaneamente por vários (teclado)
O acesso pode ser apenas para leitura (CD-ROM), apenas para
escrita (CRT) ou para leitura e escrita (disco)
A velocidade de acesso pode variar muito (freqüentemente, estes
dispositivos são os mais lentos de um sistema computacional)
Eduardo Nicola F. Zagari
3
Sistemas Operacionais -Entrada e Saída
4. Principais objetivos:
estabelecer uma interface que seja a mais simples possível para
que as aplicações possam controlar as distintas características dos
dispositivos de entrada/saída
otimizar a entrada/saída para obtenção de um maior paralelismo,
tendo em vista que tais dispositivos são em geral componentes
críticos para o desempenho
Enfim,
Controlar todos os dispositivos de entrada/saída (E/S) do computador,
emitindo comandos para os dispositivos,
atendendo interrupções e manipulando erros.
Eduardo Nicola F. Zagari
4
Sistemas Operacionais -Entrada e Saída
5. Estruturação em camadas de HW e SW, a fim de prover uma
interface simples e confiável para o usuário e suas aplicações.
Desta forma, as camadas inferiores escondem das superiores os
diversos detalhes (características) de cada periférico e suas
diferenças (velocidade de operação, unidade de transferência,
representação de dados, tipos de operação etc).
Eduardo Nicola F. Zagari
5
Sistemas Operacionais -Entrada e Saída
6. Processos
Operações de E/S Independente do
dispositivo
Software
Subsistema de E/S
Device Drivers
Manipuladores
de Interrupção
Controladores Dependente do
Hardware
dispositivo
Dispositivos
Eduardo Nicola F. Zagari
6
Sistemas Operacionais -Entrada e Saída
7. Responsáveis pela comunicação entre o computador e o mundo
externo.
Muitos tipos de dispositivos são usados em computadores,
como:
dispositivos de armazenamento (discos, fitas)
dispositivos de transmissão (placas de rede, modems)
dispositivos de interface com usuários (tela, teclado, mouse)
A transferência de dados, realizada por intermédio dos
controladores, pode ser através de blocos de informações ou
palavra a palavra.
Eduardo Nicola F. Zagari
7
Sistemas Operacionais -Entrada e Saída
8. São classificados em:
Dispositivos de blocos:
armazenam informações em blocos de tamanho fixo
(normalmente entre 128 e 4096 bytes)
cada bloco possui seu próprio endereço
é possível ler ou escrever cada bloco independentemente
(acessando o bloco pelo seu endereço)
Podem ser:
– Acesso Direto: p. ex., disco magnético
– Acesso Seqüencial: p. ex., fita magnética
Eduardo Nicola F. Zagari
8
Sistemas Operacionais -Entrada e Saída
9. Dispositivos de caracteres:
enviam ou recebem uma seqüência de caracteres sem estar
estruturada no formato de blocos
seqüência de caracteres não é endereçável (não são possíveis
operações de acesso aos dados)
Exemplos:
– terminais, impressoras, interfaces de rede e leitoras óticas
Existem exceções:
p. ex., relógios (não são endereçáveis e nem geram ou aceitam
filas de caracteres): tudo o que fazem é gerar interrupções em
intervalos de tempo regulares
Eduardo Nicola F. Zagari
9
Sistemas Operacionais -Entrada e Saída
10. A comunicação de um dispositivo com o sistema computacional
é feita através do envio de sinais (cabo ou ar) num ponto de
conexão chamado de porta.
O meio usado por um ou mais dispositivos para conexão com o
computador é chamado de barramento.
Para cada barramento, é definido um protocolo que especifica
um conjunto de mensagens que podem ser enviadas pelos fios.
Eduardo Nicola F. Zagari
10
Sistemas Operacionais -Entrada e Saída
11. disco
barramento SCSI
monitor processador
disco
memória
cache disco
Controlador de Controlador
memória disco
terminal gráfico de memória
Controlador SCSI
Barramento PCI
Controlador Interface do
de disco IDE barramento de expansão teclado
disco disco barramento de expansão
disco disco porta paralela porta serial
Eduardo Nicola F. Zagari
11
Sistemas Operacionais -Entrada e Saída
12. Unidades de E/S consistem tipicamente de
Componentes mecânicos (o dispositivo propriamente dito)
Componentes eletrônicos (o controlador)
Tal diferença deve ser ressaltada, uma vez que o SO vê o
controlador e não o dispositivo
Normalmente, mini e microcomputadores usam um barramento
único para comunicação entre CPU e os controladores (através de
device drivers)
Mainframes freqüentemente usam um modelo diferente, no qual
múltiplos barramentos e computadores especializados de E/S
(canais de E/S) aliviam parte da carga da CPU
Eduardo Nicola F. Zagari
12
Sistemas Operacionais -Entrada e Saída
13. Como o processador envia comandos e dados a um controlador
para que seja feita uma transf. de dados?
O controlador possui memória e registradores próprios para armazenar
dados e sinais de controle, de forma a executar instruções enviadas
pelo device driver
O SO realiza E/S, escrevendo comandos e seus parâmetros nestes
registradores dos controladores.
As instruções de E/S especiais podem ser usadas para especificar
a transferência de um byte ou palavra para uma porta de E/S, que
tem um determinado endereço
A instrução de E/S faz com que o dispositivo apropriado seja
selecionado de acordo com o sinal transmitido no barramento e que
os bits sejam então transferidos para um registrador ou a partir de
um registrador do disp.
Eduardo Nicola F. Zagari
13
Sistemas Operacionais -Entrada e Saída
14. Uma alternativa à operação de E/S, é que o controlador forneça
suporte à E/S mapeada em memória. Nesse caso, os
registradores do controlador correspondem à determinados
endereços no espaço de endereçamento do processador. As
operações de E/S são, então, executas usando-se instruções
normais de transferência de dados, que correspondem a ler ou
escrever valores nos registradores do dispositivo.
Alguns sistemas usam ambas as técnicas, como é o caso dos
PCs: um controlador de terminal gráfico tem portas de E/S para
operações básicas, mas uma região grande de memória é usada
para mapeamento do conteúdo de telas.
Eduardo Nicola F. Zagari
14
Sistemas Operacionais -Entrada e Saída
15. Um exemplo: Controlador de Terminal Gráfico
trabalha como um dispositivo serial de bits e em baixo nível, ou
seja, lê da memória o byte contendo o caractere a ser exibido e
gera os sinais usados na modulação do feixe do CRT para causar a
escrita na tela
o controlador também gera os sinais para o feixe CRT fazer o
retraço horizontal após ele ter terminado de esquadrinhar a linha,
bem como, sinais para fazer o retraço vertical após a tela toda ter
sido esquadrinhada;
Eduardo Nicola F. Zagari
15
Sistemas Operacionais -Entrada e Saída
16. Retraço Horizontal
Retraço Ve
Eduardo Nicola F. Zagari
16
Sistemas Operacionais -Entrada e Saída
17. O problema da Espera em Ciclo (CPU x Controlador):
Controlador usa bit ocupado no registrador de status
CPU usa bit processar no registrador de controle
Suponha que a CPU escreva dados em uma porta, comunicando-se
com o controlador, da seguinte forma:
CPU lê repetidamente o bit ocupado
CPU liga o bit escrever no reg. de controle e armazena
saída no reg. de saída de dados
CPU liga bit processar
Quando controlador nota bit processar ligado, ele liga bit
ocupado
Eduardo Nicola F. Zagari
17
Sistemas Operacionais -Entrada e Saída
18. Controlador lê registrador de controle e realiza a operação de
escrita no dispositivo
Controlador desliga bit processar, desliga o bit erro no
registrador de status (operação com sucesso) e desliga bit
ocupado (operação terminada).
Problema: No passo 1, CPU faz espera em ciclo
Se tempos da CPU e do controlador forem diferentes...
...CPU deve ser alocada à realização de outras tarefas
Problema: p.ex., dados chegando a uma porta serial, teclado etc
Solução: exec instr/testa/exec instr/testa...(ineficiente)
Então, como avisar à CPU que o controlador está ocioso?
Mecanismo de Interrupções
Eduardo Nicola F. Zagari
18
Sistemas Operacionais -Entrada e Saída
19. Quando um comando é aceito, a CPU é liberada pelo SO para outra
tarefa.
Não é necessário que a CPU fique testando repetidamente se o
dispositivo já está pronto, o que seria muito ineficiente. Isto é
possível, através do mecanismo de interrupções.
Quando o comando termina de ser executado, o controlador causa
uma interrupção, fazendo o SO tomar controle da CPU e testar o
resultado da operação.
A CPU obtém o resultado lendo um ou mais bytes nos registradores
de saída de dados do controlador
Eduardo Nicola F. Zagari
19
Sistemas Operacionais -Entrada e Saída
20. As interrupções são muito usadas em SOs modernos para o tratamento de
eventos assíncronos (p. ex., um controlador ficar pronto para operações de
E/S, falhas de hardware ou chamadas a rotinas do sistema), desviando o
controle para rot. do núcleo.
Funcionamento:
O hardware da CPU tem um fio chamado de linha de requisição de
interrupções, que é testado pela CPU depois da execução de cada
instrução
Quando a CPU detecta que um controlador enviou um sinal na linha de
requisição de interrupções (provocou uma interrupção), ela armazena
alguns poucos valores referentes ao seu estado na pilha do processo
(PC, SP etc) e desvia para uma rotina de tratamento de interrupções
em um determinado endereço de memória.
Eduardo Nicola F. Zagari
20
Sistemas Operacionais -Entrada e Saída
21. O tratador de interrupções realiza (trata) o processamento
necessário e executa uma instrução de retorno da interrupção, que
faz a CPU retornar ao estado anterior à interrupção.
Recursos mais complexos:
Desabilitação de interrupções (em fases críticas)
CPU usa 2 linhas de requisição de interrupções:
– uma para requisições que não podem ser desabilitadas
(erros de memória irrecuperáveis, p.ex.)
– outra para aquelas que podem ser desabilitadas (os
dispositivos fazem suas requisições por estas linhas)
Eduardo Nicola F. Zagari
21
Sistemas Operacionais -Entrada e Saída
22. Vetor de Interrupções
Cada interrupção gera um endereço que, na maioria das
arquiteturas, é usado como um índice em uma tabela (vetor de
interrupções), que contém endereços de memória das rotinas de
tratamento de interrupção
Eduardo Nicola F. Zagari
22
Sistemas Operacionais -Entrada e Saída
23. Níveis de prioridade de interrupções
Esse sistema permite à CPU protelar o tratamento de
interrupções de baixa prioridade sem desabilitar todas as
interrupções e possibilita que o controle da execução de uma
interrupção seja interrompido e transferido para uma interrupção
de alta prioridade.
Exemplos de situações que geram interrupções:
– Operações de E/S
– Tratamento de exceções (div. por zero, end. proteg.)
– Mecanismo de paginação
– Chamadas a rotinas do núcleo (system calls)
– Gerenciamento do fluxo de execução do núcleo (per-mite
que trabalhos urgentes sejam tratados primeiro)
Eduardo Nicola F. Zagari
23
Sistemas Operacionais -Entrada e Saída
24. Operação de leitura em disco sem suporte à DMA:
Device Driver executa operação de E/S gravando comando no
registrador do controlador
Controlador lê o bloco do dispositivo, bit a bit, para seu buffer
interno
Controlador executa verificação de erros (checksum)
Controlador causa interrupção
SO reassume CPU e lê o bloco do buffer do controlador para a
memória byte a byte (chamado de E/S programada)
» Isto consome um tempo apreciável da CPU
» Solução: usar DMA (Direct Memory Access)
Eduardo Nicola F. Zagari
24
Sistemas Operacionais -Entrada e Saída
25. Controladores que suportam DMA:
CPU (SO) fornece, além do endereço do bloco a ser lido:
endereço de memória para onde o bloco deve ser copiado
número de bytes a serem transferidos
Controlador lê bloco
Controlador efetua checksum
Controlador de DMA copia, via barramento, byte a byte, as
informações do buffer para a memória principal
Controlador causa interrupção
SO reassume CPU com os dados já disponíveis ao processo que
os solicitou
Eduardo Nicola F. Zagari
25
Sistemas Operacionais -Entrada e Saída
26. processador
memória
cache
DMA/barramento/
barramento entre
controlador de memória
memória e CPU
interrupções
Barramento PCI
Controlador
de disco IDE
Sinais:
disco disco Requisição de DMA
Confirmação de DMA
disco disco
Eduardo Nicola F. Zagari
26
Sistemas Operacionais -Entrada e Saída
27. Por que o controlador puro não armazena diretamente os bytes na
memória, tão logo ele os obtenha? Isto é, por que usar um buffer
interno?
Diferença de velocidade ⇒ vários acessos ao barramento
Ainda há um problema: enquanto controlador faz transferência de
dados de/para a memória, próximo setor passa por debaixo da
cabeça do disco
Solução: intercalação
7 0 7 0 5 0
6 1 3 4 2 3
5 2 6 1 7 6
4 3 2 5 4 1
Sem Intercalação Intercalação Simples Intercalação Dupla
Eduardo Nicola F. Zagari
27
Sistemas Operacionais -Entrada e Saída