Title: Entrada/Sa
1Entrada/Saída
- Princípios do hardware de E/S
- Princípios do software de E/S
- Camadas do software de E/S
- Relógios
- Gerenciamento de energia
2Princípios do Hardware de E/S
- Diversidade de dispositivos
- Tipos básicos de dispositivos
- Arquitetura de E/S
- Introdução aos barramentos
- Controladores de dispositivos
- Comunicação SO (CPU) Controlador
- Controle de interrupção
3A Importância de E/S
- Tipos de processo
- orientado à CPU (CPU-bound)
- orientado à E/S (I/O-bound)
4Princípios do Hardware de E/S Diversidade
125MB/s 1Gb/s, Observe a diferença de Bytes (B)
e bits (b)
- Taxas de dados típicas de dispositivos, redes e
barramentos
5Tipos básicos de dispositivos
- Caracter transferem bytes um a um. Ex.terminal
- Bloco transferem bytes em bloco. Ex. disco
- Sequencial. Tem acesso em ordem fixa. Ex. modem
- Acesso randômico Ordem pode ser alterada. Ex
CD-ROM - Síncrono Tem tempo de resposta previsível. Ex.
fita - Assíncrono Tempo de resposta imprevisível. Ex.
teclado - Compartilhável pode ser usado por vários
processos ao mesmo tempo. Ex. teclado - Dedicado. Só pode ser usado por um processo por
vez. Ex. Impressora - Read-write, read only e write-only disco, cdrom,
video
6Princípios do Hardware de E/S
- Diversidade de dispositivos
- Tipos básicos de dispositivos
- Arquitetura de E/S
- Introdução aos barramentos
- Controladores de dispositivos
- Comunicação SO (CPU) Controlador
- Controle de interrupção
7Arquitetura de Entrada/Saída
- Portas (ports)
- Comunicação ponto a ponto
- Ex Porta serial e paralela
- Barramentos (bus)
- Conjunto de condutores elétricos e com um
protocolo rígido que define como mensagens
trafegam sobre esses condutores - Permite a comunicação entre vários componentes
- Protocolo é um conjunto de regras que definem
como as comunicações no barramento serão
efetuadas
8Arquitetura de E/S
- Controladores
- Hw que controla uma porta, barramento ou
dispositivo(s)Ex Controlador da porta serial
Controlador SCSI (Small Computer System
Interface) Controlador de disco - Device Drivers
- Partes do S.O. que fornecem uma interface de
acesso uniforme para cada dispositivo - Traduz as chamadas de alto nível (usuário) para o
dispositivo específico - Conversão de dados
- Detecção e correção de erros
9Introdução aos BarramentosComparação
ISA EISA VLBUS PCI
Ano 1984 1987 1992 1993
Dispositivos Vários Vários 2 4
Largura (bytes) 2 (16 bits) 4 (32 bits) 4 (32 bits) 4 a 8 (32 a 64 bits)
Frequência (MHz) 8,3 8,3 CPU 33 a 66
Taxa (MB/s) 7,9 31,8 127,2 a 508,6
Obs. Restrito ao 80486 Dados e end. multiplexados
EISA - Extended Industry Standard
Architecture PCI - Peripheral Component
Interconnect VLBUS (ou VLB) - VESA (Video
Electronics Standards Association) Local Bus
10Barramento PCI Peripheral Component Interconnect
Cache
Bridge/ Cont. de memória
DRAM
Controlador de Vídeo
AGP
PCI bus
slots
Controlador EIDE
Bridge para o ISA ou EISA
LAN
Controlador SCSI
EISA bus ou ISA bus
EIDE - Enhanced Integrated Drive Electronics
ISA ou EISA slots
11Barramentos
- Dispositivos
- Ativos ou Mestres - dispositivos que controlam o
protocolo de acesso ao barramento para leitura ou
escrita de dados - Passivos ou Escravos - dispositivos que
simplesmente obedecem a requisição do mestre - Exemplo
- CPU ordena que o controlador de disco leia ou
escreva um bloco de dados - ? A CPU é o mestre e o controlador de disco é o
escravo
12Princípios do Hardware de E/S
- Diversidade de dispositivos
- Tipos básicos de dispositivos
- Arquitetura de E/S
- Introdução aos barramentos
- Controladores de dispositivos
- Comunicação SO (CPU) Controlador
- Controle de interrupção
13Controladores de Dispositivos
- Componentes de dispositivos de E/S
- mecânico
- eletrônico
- O componente eletrônico é o controlador do
dispositivo - pode ser capaz de tratar múltiplos dispositivos
- Tarefas do controlador
- converter fluxo serial de bits em blocos de bytes
- executar toda correção de erro necessária
- tornar o bloco disponível para ser copiado para a
memória principal
14Comunicação S.O.(CPU) ControladorDiagrama de
um controlador
Interface para barramento do sistema
Interface para dispositivo externo
Registrador de dados
Dados Status Controle
Linhas de Dados
Status/Registrador de Controle
Linhas de Endereço Linhas de Controle
Dados Status Controle
Lógica de E/S
15Comunicação S.O.(CPU) - Controlador
Como a CPU acessa a informação?
- E/S isolada
- Através de instruções especiais de E/S
- Especifica a leitura/escrita de dados numa porta
de E/S - E/S mapeada em memória
- Através de instruções de leitura/escrita na
memória - Híbrido (ex. IBM-PC)
- E/S mapeada em memória memória de vídeo
- E/S isolada dispositivos em geral
16Comunicação S.O.(CPU) Controlador
- Espaços de memória e E/S separados - E/S isolada
- E/S mapeada na memória
- Híbrido
17Comunicação S.O.(CPU) ControladorE/S mapeada
na memória
- (a) Arquitetura com barramento único
- (b) Arquitetura com barramento duplo (dual)
18Comunicação S.O.(CPU) - Controlador
Como a CPU sabe que o dispositivo já executou o
comando?
- E/S Programada
- CPU lê constantemente o status do controlador e
verifica se já acabou (Polling ou Busy-waiting) - Espera até o fim da operação
- E/S por Interrupção
- CPU é interrompida pelo módulo de E/S e ocorre
transferência de dados - CPU continua a executar outras operações
- E/S por DMA - Acesso Direto à Memória
- Quando necessário, o controlador de E/S solicita
ao controlador de DMA a transferência de dados
de/para a memória - Nesta fase de transferência não há envolvimento
da CPU - Ao fim da transferência, a CPU é interrompida e
informada da transação
19Comunicação S.O.(CPU) ControladorExemplo de
comunicação com dispositivo
CPU
Ok, obrigado.
Chefe, enviei os contratos que estavam sobre sua
mesa. (Ao fim da transferência, a CPU é
interrompida e informada da transação)
Barramento
E/S
20E/S Programada (1)
- Passos da impressão de uma cadeia de caracteres
21E/S Programada (2)
count
- Escrita de uma cadeia de caracteres para a
impressora usando E/S programada
22E/S Orientada à Interrupção
- Escrita de uma cadeia de caracteres para a
impressora usando E/S orientada à interrupção - Código executado quando é feita a chamada ao
sistema para impressão - Rotina de tratamento de interrupção
23E/S Usando DMA(Acesso Direto à Memória)
- Impressão de uma cadeia de caracteres usando DMA
- Código executado quando é feita a chamada ao
sistema para impressão - Rotina de tratamento de interrupção
24Acesso Direto à Memória (DMA)
- Operação de uma transferência com DMA
25Interrupções Revisão
- Como ocorre uma interrupção conexões entre
dispositivos e controlador de interrupção usam
linhas de interrupção no barramento em vez de
fios dedicados
26Controlador de InterrupçãoO 8259A do IBM-PC
INT
INTA
IRQ0 IRQ1 IRQ2IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 .........
RD
Controlador de Interrupções
CPU
WR
CS
DADOS
- Sinais de controle
- IRQx - Interrupt request x
- INT (Interrupt) - Houve interrupção
- INTA (Int. Acknowledge) - Interrupção recebida
- RD (Read) - Leitura
- WR (Write) - Escrita
- CS (Chip select) - Seleção do chip do controlador
27Controlador de InterrupçãoO 8259A do IBM-PC
- Mecanismo de Interrupção
- Dispositivo I/O ativa IRQx
- 8259A ativa INT para a CPU
- CPU ativa INTA pedindo identificação do
dispositivo que gerou a interrupção - 8259A envia dado (vetor de interrupção
identificando o dispositivo) - Se houver mais de um, 8259A realiza arbitragem
- CPU usa o vetor para executar a rotina apropriada
para aquele dispositivo - O sistema operacional deve estabelecer níveis de
prioridade para os dispositivos
28Para Enfatizar A Importância da Interrupção
29Motivação
- Para controlar entrada e saída de dados, não é
interessante que a CPU tenha que ficar
continuamente monitorando o status de
dispositivos como discos ou teclados - O mecanismo de interrupções permite que o
hardware "chame a atenção" da CPU quando há algo
a ser feito
30Interrupções de Hardware
- Interrupções geradas por algum dispositivo
externo à CPU, como teclado ou controlador de
disco, são chamadas de interrupções de hardware
ou assíncronas ocorrem independentemente das
instruções que a CPU está executando - Quando ocorre uma interrupção, a CPU interrompe o
processamento do programa em execução e executa
um pedaço de código (tipicamente parte do sistema
operacional) chamado de tratador de interrupção - não há qualquer comunicação entre o programa
interrompido e o tratador (parâmetros ou retorno) - em muitos casos, após a execução do tratador, a
CPU volta a executar o programa interrompido
Execução do Programa P
Execução do Tratador de Interrupção
Retomada de P
Interrupção
31Interrupção de Relógio(Um tipo de Interrupção de
HW)
- Permite ao sistema operacional atribuir quotas de
tempos de execução (quantum ou time slice
fatias de tempo) para cada um dos processos em um
sistema com multiprogramação - A cada interrupção do relógio, o tratador
verifica se a fatia de tempo do processo em
execução já se esgotou e, se for esse o caso,
suspende-o e aciona o escalonador para que esse
escolha outro processo para colocar em execução
32Interrupções Síncronas ou Traps
- Traps ocorrem em consequência da instrução sendo
executada no programa em execução - Algumas são geradas pelo hardware, para indicar
por exemplo overflow em operações aritméticas ou
acesso a regiões de memória não permitidas - Essas são situações em que o programa não teria
como prosseguir - O hardware sinaliza uma interrupção para passar o
controle para o tratador da interrupção (no SO),
que tipicamente termina a execução do programa
33Traps (cont.)
- Traps também podem ser geradas explicitamente por
instruções do programa - Essa é uma forma do programa acionar o sistema
operacional, por exemplo para requisitar um
serviço de entrada ou saída - Um programa não pode "chamar" uma rotina do
sistema operacional, já que o SO é um processo a
parte, com seu próprio espaço de endereçamento... - Através do mecanismo de interrupção de software,
um processo qualquer pode ativar um tratador que
pode "encaminhar" uma chamada ao sistema
operacional - Como as interrupções síncronas ocorrem em função
da instrução que está sendo executada (ex. READ),
nesse caso o programa passa algum parâmetro para
o tratador
34Interrupções
- Assíncronas (hardware)
- geradas por algum dispositivo externo à CPU
- ocorrem independentemente das instruções que a
CPU está executando - não há qualquer comunicação entre o programa
interrompido e o tratador - Exs. interrupção de relógio, teclado
- Síncronas (traps)
- Geradas pelo no programa em execução, em
consequência da instrução sendo executada - Algumas são geradas pelo hardware em situações em
que o programa não teria como prosseguir - Como as interrupções síncronas ocorrem em função
da instrução que está sendo executada, nesse caso
o programa passa algum parâmetro para o tratador - Exs. READ, overflow em operações aritméticas ou
acesso a regiões de memória não permitidas
35Interrupção Suporte de HW
- Tipicamente, o hardware detecta que ocorreu uma
interrupção, - aguarda o final da execução da instrução corrente
e aciona o tratador, - antes salvando o contexto de execução do processo
interrompido - Para que a execução do processo possa ser
reiniciada mais tarde, é necessário salvar o
program counter (PC) e outros registradores de
status - Os registradores com dados do programa devem ser
salvos pelo próprio tratador (ou seja, por
software), que em geral os utiliza - Para isso, existe uma pilha independente
associada ao tratamento de interrupções
CPU HW
Execução do Programa P - SW
Execução do Tratador de Interrupção (SO - SW)
Retomada de P
Interrupção
36Entrada/Saída
- Princípios do hardware de E/S
- Princípios do software de E/S
- Camadas do software de E/S
- Gerenciamento de energia
37Princípios do Software de E/SObjetivos do
Software de E/S (1)
- Independência de dispositivo
- Programas podem acessar qualquer dispositivo de
E/S sem especificar previamente qual (disquete,
disco rígido ou CD-ROM) - Nomeação uniforme
- Nome de um arquivo ou dispositivo pode ser uma
cadeia de caracteres ou um número inteiro que é
independente do dispositivo - Tratamento de erro
- Trata o mais próximo possível do hardware
38Objetivos do Software de E/S (2)
- Transferências Síncronas vs. Assíncronas
- transferências bloqueantes vs. orientadas a
interrupção - utilização de buffer para armazenamento
temporário - dados provenientes de um dispositivo muitas vezes
não podem ser armazenados diretamente em seu
destino final buffer, broker, - Dispositivos Compartilháveis vs. Dedicados
- discos são compartilháveis
- unidades de fita não são
39Entrada/Saída
- Princípios do hardware de E/S
- Princípios do software de E/S
- Independência de dispositivo
- Nomeação uniforme
- Tratamento de erro o mais próximo possível do
hardware - transferências bloqueantes vs. não-bloqueantes
mas orientadas a interrupção - Dispositivos compartilháveis vs. dedicados
- Camadas do software de E/S
- Gerenciamento de energia
40Camadas do Software de E/S
- Camadas do sistema de software de E/S
41Camadas do Software de E/S Tratadores de
Interrupção (1)
- As interrupções devem ser escondidas
(transparentes) o máximo possível - uma forma de fazer isso é bloqueando o driver que
iniciou uma operação de E/S até que uma
interrupção notifique que a E/S foi completada - Rotina de tratamento de interrupção cumpre sua
tarefa - e então desbloqueia o driver que a chamou
42Camadas do Software de E/S Tratadores de
Interrupção (2)
- Passos que devem ser executados em software
- salva registradores que ainda não foram salvos
pelo hardware de interrupção - estabelece contexto para rotina de tratamento de
interrupção - estabelece uma pilha para a rotina de tratamento
de interrupção - sinaliza o controlador de interrupção, reabilita
as interrupções - copia os registradores de onde eles foram salvos
- executa rotina de tratamento de interrupção
- escolhe o próximo processo a executar
- estabelece o contexto para o próximo processo a
executar - carrega os registradores do novo processo
- começa a executar o novo processo
43Camadas Drivers dos Dispositivos
- Posição lógica dos drivers dos dispositivos
- A comunicação entre os drivers e os controladores
de dispositivos é feita por meio do barramento
44Camadas Software de E/S Independente de
Dispositivo (1)
- Funções do software de E/S independente de
dipositivo
Interface uniforme para os drivers dos dispositivos
Armazenamento em buffer
Relatório de erros
Alocação e liberação de dispositivos dedicados
Fornecimento de tamanho de bloco independente de dispositivo
45Camadas Software de E/S Independente de
Dispositivo (2)
- (a) Sem uma interface-padrão do driver
- (b) Com uma interface-padrão do driver
46Camadas Software de E/S Independente de
Dispositivo (3)
- Entrada sem utilização de buffer
- Utilização de buffer no espaço do usuário
- Utilização de buffer no núcleo seguido de cópia
para o espaço do usuário - Utilização de buffer duplo no núcleo (ex.
tolerância a falha)
47Camadas Software de E/S Independente de
Dispositivo (4)
- A operação em rede pode envolver muitas cópias de
um pacote
48Camadas Software de E/S no Espaço do Usuário
- Camadas do sistema de E/S e as principais
funções de cada camada
49Entrada/Saída
- Princípios do hardware de E/S
- Princípios do software de E/S
- Camadas do software de E/S
- Gerenciamento de energia
50Gerenciamento de Energia (1)
- Consumo de energia de várias partes de um laptop
51Gerenciamento de Energia (2)
- Execução em velocidade máxima do relógio
- Cortando a voltagem pela metade
- corta a velocidade do relógio também pela metade,
- consumo de energia cai para 4 vezes menos
52Gerenciamento de Energia (3) Impactos na
Entrada/Saída
- Dizer aos programas para usar menos energia
- pode significar experiências mais pobres para o
usuário - Exemplos
- muda de saída colorida para preto e branco
- reconhecimento de fala com vocabulário reduzido
- menos resolução ou detalhe em uma imagem
53Entrada/Saída
- Princípios do hardware de E/S
- Princípios do software de E/S
- Camadas do software de E/S
- Gerenciamento de energia
54Como o processador enxerga a memória e os
demais dispositivos ou como o processador se
comunica com o seu exterior
- Um processador é capaz de realizar operações
como - Ler um dado da memória
- Escrever um dado na memória
- Receber (ler) um dado de dispositivos de E/S
- Enviar (escrever) dados para dispositivos de E/S
- Nas operações de acesso à memória, o processador
escreve e lê dados, praticamente sem
intermediários - Nos acessos a dispositivos de E/S, existem
circuitos intermediários, que são as interfaces
55Cada dispositivo de E/S possui a sua própria
interface Diversidade
Dispositivo Interface
Monitor Placa de vídeo
Teclado Interface de teclado
Alto falante Interface de alto falante
Impressora Interface paralela ou USB
Mouse Interface serial, PS/2 ou USB
Disco rígido IDE Interface IDE
Disco rígido SCSI Interface SCSI
Joystick Interface para jogos ou USB
Scanner Placa de interface de scanner, paralela ou USB
Câmera digital Interface serial, paralela ou USB
Para controlar um dispositivo de E/S, o
processador precisa realizar acessos de leitura e
escrita na sua interface
56E/S programada
- O processador controla o transporte dos dados
entre a memória e a interface
57E/S por Acesso Direto a Memória
- O processador fica momentaneamente desabilitado
enquanto o controlador de DMA assume o controle
dos barramentos e faz as transferências - A grande vantagem do DMA é que o processador não
precisa se ocupar diretamente da operação de
recepção e transmissão de cada byte, ficando
livre para executar outros processamentos - Normalmente as interfaces que utilizam DMA,
utilizam também uma interrupção para avisar o
processador sobre o término da transferência do
número de bytes pré-programado
58Arquitetura de Entrada/Saída
- Portas (ports)
- Comunicação ponto a ponto
- Barramentos (bus)
- Permite a comunicação entre vários componentes
- Controladores
- Hw que controla uma porta, barramento ou
dispositivo(s) - Device Drivers
- Partes do S.O. que fornecem uma interface de
acesso uniforme para cada dispositivo
59Princípios do software de E/S
- Independência de dispositivo
- Nomeação uniforme
- Tratamento de erro o mais próximo possível do
hardware - Transferências bloqueantes vs. não-bloqueantes
mas orientadas a interrupção - Dispositivos compartilháveis vs. dedicados
60Camadas do Software de E/S