Sistemas Operacionais - Gestão de entrada/saída -...

Preview:

Citation preview

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

Recommended