25
1/25 Sistemas Operacionais Gestão de entrada/saída - hardware Prof. Carlos Maziero DInf UFPR, Curitiba PR Abril de 2019

Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

1/25

Sistemas OperacionaisGestão de entrada/saída - hardware

Prof. Carlos Maziero

DInf UFPR, Curitiba PR

Abril de 2019

Page 2: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

2/25

Conteúdo

1 Dispositivos

2 Componentes

3 Barramentos

4 Interface

5 Endereçamento

6 Interrupções

Page 3: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 4: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 5: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 6: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 7: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 8: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 9: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 10: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 11: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

11/25

Interface de acesso

CPU

data-in

às demais partes do hardware do dispositivo

data-out status control

device controller

Page 12: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 13: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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)

Page 14: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

...

Page 15: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 16: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 17: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 18: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 19: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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)

Page 20: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 21: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 22: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 23: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interaçã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

Page 24: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

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

Page 25: Sistemas Operacionais - Gestão de entrada/saída - hardwarewiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-1… · 3/25 Dispositivos de entrada/saída Interação

25/25

PIC - Programmable Interrupt Controller

CPU

controlstatusdata

ports

diskcontroller

ports

networkcontroller

ports

touchscreencontroller

ports

USBcontroller

ports

interruptcontroller

...

IRq

IRq

IRq

IRq

IRq