Click here to load reader

Capítulo 10: Sistemas I/O - di.ubi.pt operativos/teoricos/  · PDF fileOperating System Concepts 10.1 Silberschatz, Galvin and Gagne 2002 Capítulo 10: Sistemas I/O ... write-seek

  • View
    217

  • Download
    0

Embed Size (px)

Text of Capítulo 10: Sistemas I/O - di.ubi.pt operativos/teoricos/  · PDF fileOperating...

  • 1

    Silberschatz, Galvin and Gagne 2002 10.1 Operating System Concepts

    Captulo 10: Sistemas I/O

    Hardware de I/O

    Interface de I/O para aplicaes

    Subsistema I/O do kernel do sistema operativo

    Transformao de pedidos de I/O em operaes de

    hardware

    Streams

    Desempenho

    Sumrio:

    Silberschatz, Galvin and Gagne 2002 10.2 Operating System Concepts

    Hardware I/O

    Grande variedade de dispositivos I/O:

    Dispositivos de memria (discos e tapes)

    Dispositivos de transmisso (placas de rede e modems)

    Dipositivos de interface com seres humanos (ecr, teclado, rato)

    Outros dispositivos mais especializados

    Conceitos comuns de comunicao entre um dispositivo I/O e o computador:

    Porto (port)

    Barramento (bus)

    Controlador (para porto, barramento ou dispositivo)

    Estrutura tpica dum PCI bus

  • 2

    Silberschatz, Galvin and Gagne 2002 10.3 Operating System Concepts

    Hardware I/O (cont.):

    Every transfer is an output from one device and an input into another.

    Localizaes de alguns portos I/O

    de dispositivos de PCs

    Como que a CPU pode

    fornecer comandos e dados a

    um controlador para efectuar

    uma transferncia I/O?

    O controlador tem um ou mais

    registos para dados (registo

    data-in, registo data-out) e

    sinais de controlo (registo

    status e registo control)

    A CPU comunica com o

    controlador atravs da leitura

    e escrita de padres de bits

    nestes registos

    Duas formas de comunicao

    CPU-controlador:

    Instrues I/O directas

    (1 byte + endereo de porto

    I/O)

    Instrues I/O mapeadas em

    memria

    Silberschatz, Galvin and Gagne 2002 10.4 Operating System Concepts

    Hardware I/O:

    Comunicao CPU-Dispositivo I/O

    via Polling Espera Ocupada da CPU

    A interaco entre a CPU e um controlador faz-se por aperto de mo

    (handshaking). Assuma que so usados 2 bits (busy bit do registo status e

    ready bit do registo command do controlador) para coordenar a relao

    produtor-consumidor entre o controlador e a CPU:

    Determines state of device

    command-ready

    busy

    Error

    Busy-wait cycle to wait for I/O from device

  • 3

    Silberschatz, Galvin and Gagne 2002 10.5 Operating System Concepts

    Busy Wait

    A CPU l repetidamente o bit busy at que seja 0 (busy-wait cycle).

    A CPU activa o bit write a 1 no registo command e escreve um byte

    no registo data-out.

    A CPU activa o bit ready a 1 no registo command.

    Quando o controlador nota que o bit ready est a 1, it escreve o bit

    busy a 1.

    O controlador l o registo command e v o comando write. L o

    registo data-out para obter o byte, fazendo de seguida a I/O para o

    dispositivo.

    O controlador desactiva o bit ready a 0, assim como o bit error no

    registo status, para indicar que a transferncia foi bem sucedida,

    colocando depois o bit busy a 0 para indicar que a transferncia

    terminou.

    Silberschatz, Galvin and Gagne 2002 10.6 Operating System Concepts

    Hardware I/O: Comunicao CPU-Dispositivo

    I/O via Interrupes Durante I/O, interrupes so

    feitas por vrios dispositivos quando eles ficam prontos para servio.

    Estas interrupes significam que a sada de dados terminou, ou que a entrada de dados est disponvel, ou que uma falha foi detectada.

    O controlador interrompe a CPU atravs da emisso dum sinal na linha de pedido de interrupo;

    A CPU detecta a interrupo e despacha-a para o interrupt handler, que uma rotina

    A interrupt handler determina a causa da interrupo, faz o processamento necessrio (rotina de servio interrupo) e termina; ao terminar, a CPU volta ao estado anterior interrupo

    Ciclo I/O alimentado por interrupes

  • 4

    Silberschatz, Galvin and Gagne 2002 10.7 Operating System Concepts

    Hardware I/O: Tabela de eventos do processador Intel Pentium

    Mecanismo de interrupes tambm usado para excepes

    (p.ex. diviso por 0, acesso a endereo de memria protegida ou inexistente)

    A maior parte das CPUs tem agora duas linhas de interrupo:

    Linha de interrupo no-mascarvel, que reservada para eventos tais como erros de memria irrecuperveis

    Linha de interrupo mascarvel, que pode ser desligada pela CPU antes da execuo duma sequncia de instrues crticas que no podem serem interrompidas.

    Vector de interrupes para despachar cada interrupo para o handler correcto

    Baseado em prioridades

    Algumas no so mascarveis (os primeiros 32 eventos do Intel Pentium no so mascarveis e so usadas para sinalizao de erros)

    Silberschatz, Galvin and Gagne 2002 10.8 Operating System Concepts

    Hardware I/O:

    Acesso Directo Memria (DMA) Transferncia directa de dados entre dispositivos I/O e a memria sem

    participao da CPU

    Requer controlador DMA

  • 5

    Silberschatz, Galvin and Gagne 2002 10.9 Operating System Concepts

    Interface de I/O

    Interface I/O do kernel: conjunto de funes I/O independentes do hardware (p.ex. read, write, etc.)

    Device drivers: mdulos do kernel dependentes do hardware, cada um dos quais encapsula o funcionamento especfico de cada dispositivo (p.ex. rato, teclado, etc.).

    Vantagem: um novo perifrico pode ser ligado a um computador sem que a empresa vendedora do sistema operativo tenha que fornecer o cdigo de suporte do perifrico.

    Estrutura I/O do kernel

    Silberschatz, Galvin and Gagne 2002 10.10 Operating System Concepts

    Interface de I/O:

    Caractersticas dos dispositivos de I/O Dispositivos diferenciam-se de

    vrias maneiras:

    Character-stream ou block.

    Um dispositivo de caracteres

    transfere bytes um-a-um, ao

    passo que um dispositivo de

    blocos transfere um bloco de

    bytes como se fosse uma

    unidade.

    Sequenciais ou de acesso

    aleatrio

    Sncronos ou assncronos.

    Transferncia de dados feita

    com tempos de resposta

    previsveis ou no.

    Partilhveis ou dedicados.

    H partilha concorrente por

    vrios processos ou no.

    Velocidade de operao

    read-write, read only, ou

    write only

  • 6

    Silberschatz, Galvin and Gagne 2002 10.11 Operating System Concepts

    Interface de I/O:

    dispositivos de blocos e de caracteres Os dispositivos de blocos incluem

    os discos rgidos Interface bsica: read, write, seek

    Modos de acesso:

    Acesso de alto-nvel atravs de interface de sistema de ficheiros

    Acesso de baixo-nvel atravs array linear de blocos (raw I/O)

    Acesso a memory-mapped files colocadas no topo de block-device drivers possvel. Uma memory-mapped interface fornece acesso ao disco atravs dum array de bytes em memria principal.

    Os dispositivos de caracteres (stream character) incluem teclados, ratos e portos srie Interface bsica: get, put

    No topo da interface, possvel construir bibliotecas para edio de linhas (p.ex. Eliminar um carcter do input stream atravs de backspace).

    Silberschatz, Galvin and Gagne 2002 10.12 Operating System Concepts

    Interface de I/O:

    Dispositivos de rede Tm uma interface bastante

    diferente da interface read-

    write-seek usada pelos discos

    rgidos.

    Unix e Windows NT/9i/2000

    usam uma interface de sockets

    H a separao entre o

    protocolo de rede e o

    funcionamento da rede

    Inclui a funcionalidade select

    para manipular conjuntos de

    sockets

    Abordagens muito variadas

    (pipes, FIFOs, streams, queues,

    mailboxes)

    PCMCIA compatible Fax/Modem cards

    Ethernet Adapter Cards

    External Fax/Modems

  • 7

    Silberschatz, Galvin and Gagne 2002 10.13 Operating System Concepts

    Interface de I/O:

    Relgios (clocks) e temporizadores (timers)

    Fornecem trs funes bsicas para:

    Determinar tempo corrente

    Determinar tempo decorrido

    Activar um temporizador para despoletar uma operao numa dada altura

    Um programmable interval timer usado para suportar a segunda e terceira funes anteriores. Este mecanismo usado pelo escalonador para gerar uma interrupo que preempciona um processo no fim de esgotar o seu time-slice (algoritmo Round-Robin)

    A funo ioctl (UNIX) aborda aspectos de I/O tais como relgios e temporizadores.

    Silberschatz, Galvin and Gagne 2002 10.14 Operating System Concepts

    Interface de I/O:

    I/O bloqueante e I/O no-bloqueante

    Chamada bloqueante ao sistema - processo suspenso at que a operao I/O esteja completa

    Fcil de usar e compreender

    Insuficiente para algumas necessidades (p.ex. Interface grfica que recebe entrada de dados do teclado e do rato, e ao mesmo tempo processa e visualiza dados no ecr)

    Chamada no-bloqueante chamada I/O retorna o mais rapidamente possvel com um valor de retorno que indica o nmero de bytes transferidos (quer seja a totalidade dos dados pedidos, ou menos, ou mesmo menhuns)

    Interface com o utilizador, cpia de dados (buffered I/O)

    Implementada via multi-threading

    Chamada assncrona processo continua a correr enquanto I/O decorre

    Difcil de usar

    Subsistema I/O sinaliza processo quando a operao I/O est completa

  • 8

    Silberschatz, Galvin and Gagne 2002 10.15 Operating System Concepts

    Subsistema I/O do kernel: servios

    Escalonamento I/O

    O escalonamento dum conjunto de pedidos I/O requer a sua

Search related