Você está na página 1de 34

Gerenciamento de Entrada e Sada Ciclo 6 AT1

Prof. Hermes Senger

Referncia: Tanenbaum Cap. 5 Silberschatz Cap. 13

Nota
O presente material foi elaborado com base no material didtico dos livros: Sistemas Operacionais com Java, 7 edio, de A. Silberschatz, P.B. Galvin e G. Gagne, Editora Campus, 2008, disponibilizado pela editora. Sistemas Operacionais Modernos, 2a edio, de A. Tanenbaum, Editora Pearson Prentice Hall, So Paulo, 2003, disponibilizado pela editora.

Subsistema de E/S
Hardware de E/S Interface de aplicao para E/S Subsistema de E/S do Kernel Tratamento de E/S Tratamento de requisies de E/S

Objetivos
Estudar a estrutura geral de um subsistema de E/S Compreender os princpios do tratamento de E/S e sua complexidade

Hardware de E/S
Varia muito de um sistema para outro.

O S.O. precisa acomodar essa variao de forma transparente ao usurio.

Controladores(as)
Tarefas da controladora:
vEnviar sinais de controle ao dispositivo v Converter fluxo serial de bits em bloco de bytes vExecutar correo de erros vTornar o bloco disponvel para ser copiado para a memria principal

Grande variedade de controladoras:


vAlgumas mais simples: controladora de porta serial chip que atua sobre os sinais de uma porta serial vOu mais complexas: por exemplo, controladora de discos SCSI
geralmente implementada como uma placa separada que conectada ao computador (possui processador, microcdigo, e uma memria privada) para processar mensagens do protocolo SCSI que bastante complexo

Tipicamente possui registradores de dados, de comando e de status que permitem a interao do processador

Estrutura tpica do barramento do PC


Barramentos possuem conjuntos de fios (vias) que transportam dados e sinais de controle, obedecendo a um protocolo (ex: PCI, SCSI, etc)

Hardware de E/S do Pentium

(figura copiada de intel.com)

Comunicao entre CPU e controladoras


A CPU se comunica com as controladoras atravs de trs arquiteturas bsicas
v Memory-mapped I/O: os registradores da controladora so mapeados no espao de endereamento de memria do processador
Ex: controladora de vdeo do PC (memria de vdeo)

v Portas de I/O com endereos especficos so usadas para implementar os registradores (de comandos, registradores de dados, e de status) vHbrido

Comunicao entre CPU e controladoras


Exemplo de instruo de E/S para arquitetura Memory-mapped I/O
MOV AX, [1000]
Obs.: 1000 seria um endereo de dispositivo mapeado em memria

Exemplo de instruo de E/S para arquitetura baseada em portas de I/O


IN AL, 3F8h
Obs.: 3F8h o endereo da porta serial

Endereos de algumas portas de I/O do PC


Faixa de endereos de I/O (hexa) 000-00F 020-021 200-20F 2F8-2FF 320-32F 378-37F 3D0-3DF 3F0-3F7 3F8-3FF Dispositivo Controladora de DMA Controladora de interupo Controladora de jogos Porta serial (secundria) Controladora de disco Porta paralela Controladora de vdeo Controladora de Floppy Porta serial (primria)

Portas de I/O tipicamente possuem 4 registradores: data-in, data-out, Status e control

E/S programada - Polling


Dispositivos de E/S precisam ser controlados. Ex.:
vEx: Determinar o estado (status) de um dispositivo
command-ready busy Error

H vrias trs maneiras bsicas de fazer isso Busy-wait ciclo de espera at que o dispositivo esteja pronto Ex: o pseudo-cdigo abaixo envia uma cadeia de caracteres para a impressora
copy_from_user(buffer, p, count); /* p um buffer do ncleo */ for(i=0; i < count; i ++) { /* executa o lao para cada caractere */ while(*printer_status_reg != READY); /* fica no lao at que status indique pronto */ *printer_data_register = p[i]; /* envia um caracter para a sada */ } return_to_user( );

E/S por Interrupes


Ex: pseudo-cdigo abaixo envia uma cadeia de caracteres para a impressora usando E/S orientada interrupo

a)

Cdigo executado quando feita a chamada ao sistema para impresso

b)

Rotina de tratamento de interrupo

E/S por Interrupes


O dispositivo avisa a CPU que est pronto
v envia um sinal Interrupt-request em um pino especfico

A CPU salva o estado de execuo corrente O vetor de interrupo despacha a interrupo ao tratador apropriado (interrupt handler)
vCada posio do vetor contm o endereo de um tratador especfico para uma interrupo vIsso pode ser feito com base em prioridades vCertas interrupes podem ser adiadas ou at mesmo ignoradas

O interrupt handler recebe e trata a interrupo Esse mesmo mecanismo tambm usado para excees (exceptions)

E/S por Interrupes


H 2 tipos bsicos de interrupes:
v Mascarvel (maskable): o seu atendimento pode ser ignorado ou atrasado
Ex: O S.O. pode desabilitar interrupo antes de executar algum trecho de cdigo crtico usada por controladores de dispositivos para requisitar servio (ex: impressora avisa que est pronta)

v No-mascarvel (nonmaskable): reservada para eventos tais como erros de memria irrecuperveis

Computadores modernos necessitam de um controlador de interrupes

Vetor de eventos do Intel Pentium

No-mascarveis

Dispositivos (mascarveis)

Acesso Direto Memria


DMA Direct Memory Access
v um processador de uso especfico, encarregado de fazer grandes transferncias de dados vTambm chamado de controlador de DMA

Utilizado para evitar a E/S programada no caso de grandes transferncias Transfere dados diretamente entre um controlador de dispositivo e a memria
v Libera o processador para outras tarefas (melhora a eficincia do sistema)

Operao de transferncia por DMA

Nesse caso, a CPU recebe uma nica interrupo gerada pelo DMA, avisando que a transferncia foi concluda

Questo de projeto:
Como fazer para no ter de reescrever o SO inteiro cada vez que um novo dispositivo acrescentado? Como tratar tantos dispositivos to diferentes de uma forma (quase) uniforme?
vUse os princpios da Eng. de SW ...
Abstrao Encapsulamento E algumas camadas ...

API de E/S
(Obviamente) As aplicaes no interagem diretamente com os dispositivos, cujas caractersticas podem variar em diversas dimenses:
vOrientados a stream de caractere ou bloco vAcesso sequencial ou randmico vCompartilhvel ou dedicado vVelocidade de operao vSomente leitura, somente escrita ou leitura/escrita

Chamadas ao sistema de E/S encapsulam comportamentos dos dispositivos A camada dos device-drivers esconde do kernel as diferenas entre controladoras de E/S

Estrutura de I/O tpica do kernel

Caractersticas dos dispositivos de I/O


Atributo Modo de transferncia Mtodo de acesso Compartilhamento Velocidade Variao caracter bloco sncrono assncrono dedicado compartilhado latncia seek time taxa de transferncia delay entre operaes somente leitura somente escrita leitura-escrita CD-ROM grfico disco Exemplo terminal disco fita teclado fita teclado

Direo de I/O

Dispositivos orientados a bloco vs. orientados a caracter


Drives de disco so orientados a bloco
vComandos tpicos: read, write, seek vE/S bruta: exibe o disco como uma sequncia linear de blocos vPodem oferecer arquivos mapeados em memria

Disp. Orientados a caracter incluem o teclado, mouse, porta serial


vComandos tpicos: get, put vBibliotecas podem ser montadas logo acima para permitir edio de linhas

Dispositivos de Rede
So muito diferentes dos dispositivos de bloco e de caracter, e por isso tm sua prpria interface Unix e Windows NT/9x/2000 implementam a interface socket
vSeparao entre o protocolo de rede e a operao da rede vInclui a funcionalidade select:
select permite testar (fazer polling) se chegou um pacote p/qq socket ou se algum socket possui pacote disponvel p/envio

Abordagens variam bastante (pipes, FIFOs, streams, queues, mailboxes)

E/S Bloqueante vs No-bloqueante


Bloqueante: o processo suspenso at que a E/S seja completada
vFcil de usar e de entender seu funcionamento vInadequada em muitos casos

No-bloqueante: chamada no bloqueia a execuo da aplicao


v retorna imediatamente, com qq quantidade de dados que estejam disponveis retorna um contador de bytes lidos vEx: uma aplicao que l comandos do usurio enquanto exibe outras informaes na tela (multi-threading)

E/S Assncrona processo no bloqueado, executa enquanto a E/S executada


vSubsistema de E/S avisa o processo quando a operao completou vDifcil de usar

E/S Bloqueante vs No-bloqueante

Sncrona"

Assncrona"

Operaes do subsistema de E/S


Escalonamento: frequentemente, o subsistema de E/S escolhe a ordem em que as requisies devem ser executadas por cada dispositivo.
vCritrios: Justia, melhor desempenho, etc vEx: escalonamento da cabea de leitura/escrita do disco

Operaes do subsistema de E/S


Buferizao: armazenamento temporrio de dados em memria enquanto estes so transferidos de entre dois dispositivos
vOu entre aplicao e dispositivo vPermite acomodar melhor as diferenas de velocidade
Ex: Programa que l registros do disco e envia dados para impressora

vPermite acomodar melhor as diferenas de tamanho de transferncias.


Ex: Redes com protocolos diferentes (MTUs)

vPermite manter a semntica de cpia


Ex: Gravao de uma cadeia de caracteres que foi modificada em seguida

Operaes do subsistema de E/S


Caching: consiste em guardar uma cpia dos dados em uma memria rpida
vMelhora o desempenho vCache somente uma cpia o item sempre reside em outro lugar

Spooling: armazena temporariamente a sada de um dispositivo


vtil nos casos em que o dispositivo s pode servir a uma requisio por vez v Ex: spool de impresso

Operaes do subsistema de E/S


Reserva de dispositivo: h casos em que no possvel multiplexar o acesso a um dispositivo
vEx: fita vNesse caso, o subsistema de E/S fornece primitivas para alocao e liberao de dispositivos vCertifique-se de que foram liberados no final da operao ...

Tratamento de erros
Operaes podem estar sujeitas a falhas.
vFalhas podem ser permanentes ou transientes (isto , passageiras ) vExemplos: Erro de leitura de disco, dispositivo indisponvel, falhas de escrita

Se possvel, o subsistema deve tentar mascarar a falha isto , tomar alguma providncia
vEx: tentar uma nova leitura

No pior caso, o sistema deve retornar um cdigo de erro para avisar ao usurio/aplicao
vEx: varivel errno do UNIX

Logs de erros de sistema tambm podem ser gerados para esclarecer sobre erros ocorridos

Proteo de E/S
Processos de usurio podem (de forma proposital ou acidental) prejudicar a execuo normal de um sistema, emitindo instrues ilegais de E/S
vAssim, todas as instrues de E/S devem ser definidas como privilegiadas vToda E/S deve ser feita atravs de chamadas ao sistema (system calls)
Tanto a E/S mapeada em memria quanto o acesso a portas de E/S devem ser protegidos

O ciclo de vida de uma requisio de E/S


Requisio de E/S (system call) chamada ao sistema j pode ser atendida ? no subsistema de E/S do kernel processo usurio E/S terminada, dados disponveis( se entrada) ou sada completada retorna da chamada ao sistema sim

Transfere dados (se necessrio) ao processo, retorna cdigo de sucesso ou de erro

Envia requisio de E/S para o driver de dispositivo e bloqueia o processo se necessrio Processa requisio, envia comandos para controladora

subsistema de E/S do kernel

driver de dispositivo

Determina qual E/S terminou, indica mudana de estado ao subsistema de E/S Recebe interrupo, guarda dados no buffer do dispositivo, envia sinal para desbloquear o driver E/S completada gera interrupo

tratador de interrupo controladora de dispositivo

monitora dispositivo e envia interrompe qdo E/S terminar

Fim

Você também pode gostar