sistemas operacionais - gestão de entrada/saída -...
TRANSCRIPT
1/25
Sistemas OperacionaisGestão de entrada/saída - hardware
Prof. Carlos Maziero
DInf UFPR, Curitiba PR
Abril de 2019
2/25
Conteúdo
1 Dispositivos
2 Componentes
3 Barramentos
4 Interface
5 Endereçamento
6 Interrupções
3/25
Dispositivos de entrada/saída
Interação com o usuário
mouse, teclado, tela, joystick, alto-falantes
Escrita/leitura de dados
discos rígidos, DVD-ROMs, pen-drives
Comunicação com outros computadores
redes LAN, WLAN, Bluetooth, celular
4/25
Dispositivos de entrada/saída
tela de toque
botões
alto-falante
microfone
rede wifi
rede bluetooth
GPS
giroscópio
bússola
tela LCD
câmeras
sensor de bateria
cartão SIM
rede celular
cartão SD
leitor biométrico
porta USB
led
5/25
Componentes de um dispositivo de E/S
Sensor: converte grandeza física em sinal elétrico
Amplificador: aumenta e limpa o sinal elétrico
Conversor AD: transforma o sinal em informação digital
Bu�er: armazena dados coletados e/ou enviados
Controlador de barramento: permite acesso da CPU
Conversor DA: converte dados em sinais elétricos
Transdutor: converte sinais elétricos em ações externas
Microcontrolador: gerencia o hardware do dispositivo
Firmware: código executado pelo controlador
6/25
E/S
conversoranalógico-
digital
sensor
sinal analógico
conversordigital-
analógico
atuador
sinal digital
buffer
controlador de barramento
dados 0100101001001010
buffer
entradade dados
amplificador amplificador
CPU
controlador de dispositivo
mic
roco
ntr
ola
dor
firmware
informação
controle
saídade dados
7/25
BarramentosBarramento: via de comunicação:
interliga CPU, memória e dispositivos
parte do chipset da placa-mãe
North-bridge: componentes rápidos
CPU e RAM
Portas AGP e PCI-express
South-bridge: componentes lentos
PCI, USB, SATA
BIOS, legacy controllers
8/25
Barramentos em um PC típico
processor
PCI Express bus
AGP port
SATA PCI USBkeyboard parallel floppymouse
LPC bus
North bridge(memory
controller hub)
South bridge(I/O controller
hub)Super I/O controller
serial
standard PC ports standard buses
RAM RAM
onboard ethernet
onboard audio
power management
real-time clock
BIOS
Front Side BUS
DDRchannels
9/25
Velocidades de transferência de dados
Dispositivo velocidadeTeclado 10 B/s
Mouse ótico 100 B/s
Interface paralela padrão 125 KB/s
Interface de áudio digital S/PDIF 384 KB/s
Interface de rede Fast Ethernet 11.6 MB/s
Chave ou disco USB 2.0 60 MB/s
Interface de rede Gigabit Ethernet 116 MB/s
Disco rígido SATA 2 300 MB/s
Interface gráfica high-end 4.2 GB/s
10/25
Interface de acesso
tipo de porta direção funçãoentrada dev → CPU receber dados do dispositivo
saída CPU → dev enviar dados ao dispositivo
status dev → CPUconsultar o estado do disposi-tivo; verificar status de umaoperação
controle CPU → devenviar comandos ao disposi-tivo; modificar configuraçãodo dispositivo
11/25
Interface de acesso
CPU
data-in
às demais partes do hardware do dispositivo
data-out status control
device controller
12/25
Exemplo: porta paralela (SPP)
P0 (data port): porta de saída (e de entrada), 8 bits
P1 (status port), 8 bits
0 reservado
1 reservado
2 nIRQ: se 0, gerou uma interrupção
3 error: há um erro interno na impressora
4 select: a impressora está pronta (online)
5 paper_out: falta papel na impressora
6 ack: se 0, dado foi recebido
7 busy: controlador está ocupado
13/25
Exemplo: porta paralela
P2 (control port):
0 strobe: há um dado em P0
1 auto_lf: line feed a cada carriage return
2 reset: a impressora deve ser reiniciada
3 select: a impressora está selecionada para uso
4 enable_IRQ: permite gerar interrupções
5 bidirectional: ativa modo bidirecional
6 reservado
7 reservado
P3 a P7: usadas nos modos estendidos (EPP e ECP)
14/25
Funcionamento da porta paralela
0
1
P1.busy = 1
gera pulsoem P1.ack
P1.busy = 0
gera IRqP2.enable_IRq?
0
1
aguarda umnovo dado
informa queo controladorestá ocupado
lê o dado naporta de entrada
gera IRqavisandoconclusão
informa queo controlador
está livre
informa queo dado foirecebido
lê P0
ack
P2.strobe?
usa o dadointernamente
...
15/25
Endereçamento
Como acessar os registradores da interface do dispositivo?
Entrada/saída mapeada em portas
Entrada/saída mapeada em memória
Canais de entrada/saída
16/25
Entrada/saída mapeada em portas
Registradores acessados por instruções específicas
Na família Intel: “IN reg port” e “OUT port reg”
in $0x60, %al // lê caractere do teclado em AL
I/O address space separado da memória principal
Usa um sinal IO/M no barramento de controle
17/25
Tabela de endereços de portas (típico)
Dispositivo Endereçosteclado e mouse PS/2 0060h e 0064h
barramento IDE primário 0170h a 0177h
barramento IDE secundário 01F0h a 01F7h
relógio de tempo real 0070h e 0071h
porta serial COM1 02F8h a 02FFh
porta paralela LPT1 0378h a 037Fh
No Linux, consultar arquivo /proc/ioports
18/25
Entrada/saída mapeada em memória
Registradores dos dispositivos mapeados em endereços dememória
Podem ser usadas as mesmas instruções de acesso à memória
Usado em PCs para dispositivos de rede, áudio e vídeo
No Linux, consultar arquivo /proc/iomem
19/25
Canais de entrada/saída
Uso de um hardware independente com processador dedicado
Deixa o processador principal livre para outras tarefas
Adotada em sistemas de grande porte (mainframes)
Usada em periféricos de alto desempenho (GPU vídeo)
20/25
Interrupções
Os registradores servem para as interações iniciadas pela CPU
Como fazer para interações iniciadas pelo controlador?
Requisição de interrupção (IRQ - Interrupt Request):
notifica o processador sobre algum evento importante
sinal elétrico veiculado através do barramento de controle
Cada interrupção está associada a um número inteiro
Execução é desviada para uma rotina de tratamento
21/25
Roteiro de uma interrupção
programaem
execução
rotina detratamento deinterrupção
CPU
2: uma tecla é pressionada
3: o controlador gerauma interrupção (IRq)
buffer
keyboard controller
ports
buffer
4: a execução é desviada
5: dados do controladortransferidos para a memória
6: retorno aofluxo anterior
1: execuçãonormal
22/25
Roteiro de uma interrupção
1 A CPU está executando um programa
2 O usuário aciona uma tecla do teclado
3 o controlador gera uma interrupção
4 A CPU recebe a interrupção e desvia sua execuçãopara uma rotina de tratamento da interrupção
5 A rotina interage com o controlador do tecladopara buscar os dados do bu�er
6 A rotina conclui e o programa anterior retoma a execução
23/25
Interrupções típicas
Dispositivo Interrupçãoteclado 1
mouse PS/2 12
barramento IDE primário 14
barramento IDE secundário 15
relógio de tempo real 8
porta serial COM1 4
porta paralela LPT1 7
No Linux, consultar arquivo /proc/interrupts
24/25
Exceções
Exceção Descrição0 divide error
3 breakpoint
5 bound range exception
6 invalid opcode
11 segment not present
12 stack fault
13 general protection
14 page fault
16 floating point error
25/25
PIC - Programmable Interrupt Controller
CPU
controlstatusdata
ports
diskcontroller
ports
networkcontroller
ports
touchscreencontroller
ports
USBcontroller
ports
interruptcontroller
...
IRq
IRq
IRq
IRq
IRq