introduÇÃo À tecnologia da informaÇÃo entrada e saÍda · introduÇÃo À tecnologia da...

29
INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ENTRADA E SAÍDA PROFESSOR CARLOS MUNIZ

Upload: phamngoc

Post on 08-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

INTRODUÇÃO À TECNOLOGIA DA

INFORMAÇÃOENTRADA E SAÍDA

PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• ENTRADA/SAÍDA

Professor Carlos Muniz [email protected] 2

Uma das principais funções do sistema operacional é controlartodos os dispositivos de entrada/saída (E/S) do computador,emitindo comandos para os dispositivos, atendendo interrupçõese manipulando erros. O sistema operacional também proveruma interface entre os dispositivos e o resto do sistema, queseja simples e fácil de usar (se possível, a interface deve ser amesma para todos os dispositivos). O código de entrada/saídarepresenta uma fração significativa do total do sistemaoperacional.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• PRINCÍPIOS DO HARDWARE

Professor Carlos Muniz [email protected] 3

Diferentes profissionais vêem o hardware de E/S de diferentesmaneiras. Engenheiros eletrônicos vêem em termos de chips, fios,fontes de potência, motores e todos os outros componentesfísicos que constituem em conjunto o hardware. Programadoresvêem como a interface apresentada ao software, os comandosque o hardware aceita, as funções suportadas, e os erros quesão reportados. O nosso interesse aqui é restringir em como ohardware é programado, e não como ele trabalhainternamente.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• PRINCÍPIOS DO HARDWARE

Professor Carlos Muniz [email protected] 4

Dispositivos de E/S

Dispositivos de E/S podem ser divididos em duas grandes categorias:dispositivos de bloco e dispositivos de caracteres. Um dispositivo debloco armazena informações em blocos de tamanho fixo, cada um comseu próprio endereço. Tamanhos comuns de blocos estão na faixa de128 bytes a 1024 bytes. A propriedade essencial dos dispositivos debloco é a possibilidade de ler ou escrever cada blocoindependentemente de todos os demais. Em outras palavras, emqualquer instante, o programa pode ler ou escrever qualquer um dosblocos. Discos são dispositivos de bloco.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• PRINCÍPIOS DO HARDWARE

Professor Carlos Muniz [email protected] 5

O outro tipo de dispositivo de E/S, o de caracteres, libera ouaceita uma fila de caracteres sem definir nenhuma estrutura debloco. O dispositivo não é endereçável e não aceita operaçõesde busca. Terminais, impressoras e leitoras óticas são exemplosde dispositivos de caracteres.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 6

Unidades de E/S consistem tipicamente de componentesmecânicos e eletrônicos. É frequente a separação das duasporções para se obter um projeto mais geral e modular. Ocomponente eletrônico é chamado de controlador do dispositivo(device controller ou adapter). Em mini e microcomputadores,ele normalmente toma forma de um circuito impresso que podeser inserido no computador. O componente mecânico é odispositivo propriamente dito.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 7

A distinção entre dispositivo e controlador deve ser ressaltada,já que o sistema operacional vê o controlador, não o dispositivo.Normalmente, mini e microcomputadores usam um barramentoúnico (como na figura a seguir) para comunicação entre CPU eos controladores. Mainframes frequentemente usam um modelodiferente, no qual múltiplos barramentos e processadoresespecializados de E/S aliviam parte da carga da CPU.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 8

Um modelo para conexão da CPU, memória, controladores e dispositivos de E/S

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 9

A interface entre o controlador e o dispositivo é, via de regra,uma interface de baixo nível. O disco, por exemplo, pode serformatado com 8 setores de 512 bytes por trilha. O querealmente sai do driver, entretanto, é uma lista serial de bits,partindo com um preâmbulo, depois os 4096 bits no setor, efinalmente o checksum ou o código de correção de erro. Opreâmbulo é escrito quando o disco é formatado, e contém onúmero de cilindros e de setores, o tamanho do setor, e outrosdados.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 10

A tarefa do controlador é converter a lista serial de bits em umbloco de bytes e realizar alguma correção de erro necessária.O bloco de bytes é tipicamente montado, bit por bit, em umbuffer mantido no controlador. Após o checksum ter sidoverificado e o bloco declarado livre de erro, o mesmo podeentão ser copiado para a memória principal.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 11

O controlador para o terminal CRT (Catode Ray Tube) também trabalhacomo um dispositivo serial de bits e em baixo nível. Ele lê da memória o bytecontendo o símbolo a ser exibido, e gera os sinais usados na modulação dofeixe do CRT para causar a escrita na tela. O controlador também gera ossinais para o retrace horizontal após ter terminado de esquadrinhar a linha,como também, sinais para fazer o retrace vertical após a tela toda ter sidoesquadrinhada. Se não tivéssemos um controlador CRT, o sistema operacionalteria que gerar estes sinais diretamente no tubo. Com o controlador, osistema operacional inicia-o com poucos parâmetros, tais como o número decaracteres por linha e o número de linhas por tela, deixando o controladortomar conta do direcionador do feixe de raios catódicos.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 12

Cada controlador tem alguns poucos registradores que sãousados para comunicação com a CPU. Em alguns computadoresestes registradores são parte do espaço de endereçamentoregular. A tabela a seguir mostra os endereços de E/S e osvetores de interrupção alocados para alguns dos controladoresdo IBM PC. A atribuição de endereços de E/S para dispositivosé feita por um decodificador lógico associado ao controlador.Alguns IBM PC-compatíveis usam diferentes endereços de E/S.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 13

Exemplos de controladores, os seus endereços de E/S e seus vetores de interrupção no IBM PC

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• CONTROLADORES DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 14

O sistema operacional realiza E/S escrevendo comandos nosregistradores dos controladores. O controlador de disquete do IBM PC,por exemplo, aceita 15 diferentes comandos, tais como read, write,seek, format, e recalibrate. Muitos dos comandos têm parâmetros, osquais são também carregados nos registradores do controlador. Quandoum comando é aceito, a CPU pode abandonar o controlador e atendera outra tarefa. Quando completado, o controlador causa umainterrupção com o objetivo de permitir que o sistema operacional tome ocontrole da CPU e teste o resultado da operação. A CPU obtém oresultado e o status do dispositivo pela leitura de um ou mais bytes deinformação nos registradores do controlador.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• ACESSO DIRETO À MEMÓRIA (DMA)

Professor Carlos Muniz [email protected] 15

Muitos controladores, especialmente os que operam em blocos,suportam DMA. Vejamos primeiro como discos operam semDMA. Primeiro, o controlador lê serialmente o bloco (um ou maissetores) do dispositivo, bit a bit, até que este seja transferidopara o buffer interno do controlador. Depois, o controladorexecuta a operação de checksum para atestar que o bloco estálivre de erros. Esta operação é executada somente após o blocotodo ter sido transferido. Então, o controlador causa umainterrupção.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• ACESSO DIRETO À MEMÓRIA (DMA)

Professor Carlos Muniz [email protected] 16

Quando o sistema operacional reassume a CPU, ele pode ler obloco do buffer do controlador (byte a byte ou palavra apalavra) em uma operação cíclica, onde em cada ciclo um byteou palavra é transferido do controlador para a memória.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• ACESSO DIRETO À MEMÓRIA (DMA)

Professor Carlos Muniz [email protected] 17

Obviamente, o ciclo de transferência de bytes dos controladorespara a memória consome um tempo apreciável da CPU. DMAfoi criado para livrar a CPU desta tarefa. Quando utilizado, aCPU fornece duas informações ao controlador (além doendereço do bloco a ser lido): o endereço de memória paraonde o bloco deve ser copiado e o número de bytes a seremtransferidos (ver figura a seguir):

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• ACESSO DIRETO À MEMÓRIA (DMA)

Professor Carlos Muniz [email protected] 18

A transferência via DMA é processada sem intervenção da CPU

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• ACESSO DIRETO À MEMÓRIA (DMA)

Professor Carlos Muniz [email protected] 19

Após o controlador ter lido o bloco, efetuado o checksum e não terconstatado erros de leitura, o próprio controlador copia (viabarramento) o primeiro byte (ou palavra) para o endereço dememória suprido pela CPU quando da requisição da operação. Apartir daí, a cópia prossegue incrementado-se o endereço damemória e decrementado-se o contador do DMA (bytestransferidos), até que este se torne zero. Neste instante, ocontrolador causa uma interrupção. Quando o sistema operacionalreassume a CPU, nenhuma transferência necessita ser efetuadapois o buffer requisitado já se encontra em memória.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• MANIPULADORES DE INTERRUPÇÕES

Professor Carlos Muniz [email protected] 20

Interrupções são eventos complicados de se tratar. Elas devem serisoladas de modo que apenas uma pequena parte do sistemaoperacional as manipule. Um meio para isolá-las é bloquear osprocessos aguardando operações de E/S até que uma interrupçãoanuncie que a operação se completou.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• MANIPULADORES DE INTERRUPÇÕES

Professor Carlos Muniz [email protected] 21

Quando a interrupção acontece, a rotina de tratamento daquelainterrupção libera o processo bloqueado. Em alguns sistemas isto éconseguido fazendo-se um UP sobre um semáforo. Em outros, elefará um SIGNAL sobre a variável de condição no monitor. E aindaem outros, uma mensagem é enviada ao processo bloqueado. Emtodos os casos, o efeito da interrupção é que o processo queestava previamente bloqueado deverá agora estar habilitadopara execução.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 22

Todo o código dependente do dispositivo se concentra no driver dodispositivo. Cada driver manipula um dispositivo ou uma classe dedispositivos intimamente relacionados.Observamos que cada controlador de dispositivos tem registradorespara receber comandos. O driver do dispositivo envia estescomandos e testa se foram carregados propriamente. Destamaneira, o driver é a parte do sistema operacional que conheceestes registradores e para que são utilizados. O driver reconhecesetores, trilhas, cilindros, cabeças de leitura/escrita, motor, fator deentrelaçamento e todos os mecanismos que fazem um disco operarpropriamente.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 23

Em termos gerais, a função de um driver é aceitar requisiçõesabstratas de um software de mais alto nível, e providenciarpara que o pedido seja atendido. Uma típica requisição é lerum bloco. Se o driver está desocupado no momento, arequisição é aceita, sendo processada imediatamente. Caso odriver esteja processando uma requisição, esta normalmenteentra em uma fila de requisições pendentes.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 24

Todo o código dependente do dispositivo se concentra no driver dodispositivo. Cada driver manipula um dispositivo ou uma classe dedispositivos intimamente relacionados.Observamos que cada controlador de dispositivos tem registradorespara receber comandos. O driver do dispositivo envia estes comandose testa se foram carregados propriamente. Desta maneira, o driver éa parte do sistema operacional que conhece estes registradores epara que são utilizados. O driver reconhece setores, trilhas, cilindros,cabeças de leitura/escrita, motor, fator de entrelaçamento e todos osmecanismos que fazem um disco operar propriamente.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 25

Em termos gerais, a função de um driver é aceitar requisiçõesabstratas de um software de mais alto nível, e providenciar para queo pedido seja atendido. Uma típica requisição é ler um bloco. Se odriver está desocupado no momento, a requisição é aceita, sendoprocessada imediatamente. Caso o driver esteja processando umarequisição, esta normalmente entra em uma fila de requisiçõespendentes.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 26

O primeiro passo é transcrever os termos abstratos da requisiçãopara ações concretas. Para um disk driver, por exemplo, isto significainformar onde o bloco se encontra no disco, verificar se o motor dodrive está girando, determinar se o braço está posicionado no cilindroapropriado, e assim por diante. Em poucas palavras, o driver devedecidir quais operações do controlador são requeridas e em quesequência.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 27

Uma vez determinado quais comandos emitir ao controlador, o driverinicia a emissão escrevendo nos registradores do controlador dodispositivo. Alguns controladores podem manusear somente umcomando por vez. Outros controladores aceitam uma lista decomandos, os quais são processados sem a ajuda do sistemaoperacional.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 28

Após o comando ou comandos terem sido emitidos, podem ocorrerduas situações. Em muitos casos o device driver deve esperar até queo controlador execute as operações requisitadas. Se estas operaçõesforem lentas (envolvendo movimentos mecânicos, por exemplo), odriver bloqueia até que as operações se completem. Em outros casos,entretanto, as operações são rápidas, situação esta em que o drivernão precisa ser bloqueado. Como um exemplo dessa situação, odeslocamento da tela em terminais (incluindo o IBM PC) requerapenas escrita de uns poucos bytes nos registradores do controlador.Nenhum movimento mecânico é necessário e a operação toda pode secompletar em alguns poucos microsegundos.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ENTRADA E SAÍDA

• DRIVERS DE DISPOSITIVOS

Professor Carlos Muniz [email protected] 29

Neste ponto, após a operação ter sido completada, o driver deveverificar a ocorrência de erros. Se tudo estiver correto, ele passa osdados (o bloco lido, por exemplo) para a próxima camada dosoftware de E/S. Finalmente, ele retorna alguma informação de statusde erros. Se alguma requisição está na fila, uma delas pode agoraser selecionada e iniciada. Caso contrário, o driver fica aguardandoa próxima requisição.