Anda di halaman 1dari 20

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 1/20 ________________________________________________________________________________________________________

PROCESSAMENTO DE ENTRADA E SADA (E/S)

Proporcionar recursos de E/S uma das tarefas mais complexas de qualquer Sistema Operacional. Os usurios querem expressar o desejo de executar operaes de E/S, de forma mais simples possvel. Por exemplo: ... Var Arq1, Arq2: T; ... Read(Arq1, y); ... Write(Arq2, y); ...

Dessa forma, as rotinas Read e Write, no caso, escondem do usurio todos os detalhes dos dispositivos de E/S, disponveis no sistema, tais como: se Arq1 arquivo de disco rgido ou flexvel, ou se o teclado, ou se fita magntica, etc; se Arq2 uma impressora, ou se disco, etc. Nesse caso, as operaes de E/S so oferecidas por uma biblioteca, a qual dever contar com o suporte do Sistema Operacional, o qual o responsvel maior do gerenciamento das E/S do sistema. Para tanto, o Sistema Operacional deve prover a interface entre a E/S a nvel de usurio (ou nvel lgico) e a E/S a nvel fsico.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 2/20 ________________________________________________________________________________________________________

E/S a nvel fsico trata dos detalhes especficos de cada dispositivo, enquanto que as E/S a nvel lgico visa esconder esses detalhes do usurio; ou seja elas encapsulam as operaes a nvel fsico, oferecendo operaes bem mais abstratas.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 3/20 ________________________________________________________________________________________________________

Note neste exemplo que o dado (caractere) lido armazenado em um buffer, o qual passado para a rotina de E/S lgico, o qual deve interpretar o contedo segundo as pretenses especificadas pelo usurio atravs de parmetros (no caso o tipo da varivel). Uma pergunta. Por que se escreveu: Esperar a digitao ...; em vez de: Ler um caractere; ??? Porque deseja-se passar para Buffer o caractere digitado. Assim, a operao Esperar est na realidade expressando as regras de sincronizao do problema do produtor versus consumidor, no caso especfico de se poder produzir um dado de cada vez. Isso preciso para compatibilizar as diferentes velocidades de processamento entre a UCP (que executa as rotinas de E/S) e o dispositivo (no caso, o teclado). notrio, ento, que as diferentes velocidades de processamento dos diversos dispositivos de E/S e a das UCPs, tornam mais complexas a tarefa de gerenci-los. Ilustrando essa diferena de velocidade. UCP de 100MHz Winchester de 10ms. 100mhz ----> ciclo = 1/100 = 0,01ms = 10ns Vamos supor que na mdia, o tempo para execuo de uma instruo seja de 10 ciclos, ou seja 100ns = 0,1ms. O tempo de acesso a um dado do winchester de aproximadamente 10ms (ignorando os detalhes de interpretao, armazenamento, etc.).

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 4/20 ________________________________________________________________________________________________________

Dessa forma, enquanto lido um dado do winchester, possvel executar 100 instrues. (observao: preciso verificar se o dado um byte, ou palavra, ou 1 setor, ou etc.) Assim, enquanto um processo est solicitando a leitura de dados de um arquivo, por exemplo, muito do tempo da UCP ser gasto em ficar questionando se um dado ficou disponibilizado, para poder ser armazenado em uma posio bem definida da memria, para que a rotina de E/S lgica possa interpret-lo, coerentemente com as pretenses do usurio. Para evitar esse gasto, interessante alocar 1 processador para cuidar da ativao da leitura (no caso), e da espera pela disponibilizao do dado para o seu armazenamento em local apropriado (INTERFACE OU PLACA DE CONTROLE). Quando o dado ficar disponibilizado, este processador deve avisar a UCP que a sua tarefa terminou e que ele est disponvel para executar qualquer uma de suas operaes, basta solicitar.

Isso permite (como j visto) a multiprogramao do sistema.

Vamos a seguir estudar esses processadores ou placas de controle ou interfaces, como tambm os softwares que forem necessrios para o processamento de E/S.

DISPOSITIVOS E CONTROLADORES DE E/S As operaes de E/S envolvem vrios componentes como: a UCP, a memria, e os dispositivos externos como: impressora, unidades de disco e terminais, por exemplo. Vamos em primeiro lugar, ver como conect-los, para permitir que eles se comuniquem.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 5/20 ________________________________________________________________________________________________________

Barramento:

Controladores Normalmente, os dispositivos no so conectados diretamente no barramento. Em vez disso eles so conectados por meio de controladores de dispositivos. Os controladores em geral podem comunicar-se com vrios dispositivos. Eles podem transferir dados para dispositivos e retardar operaes at os dispositivos estejam prontos. A necessidade de um controlar para simplificar a arquitetura do sistema. Alm disso, existe a razo econmica; pois um controlador pode controlar vrios dispositivos eliminando-se a redundncia de componentes eletrnicos. Os controladores podem ser: No inteligentes; e Inteligentes.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 6/20 ________________________________________________________________________________________________________

Os no inteligentes so aqueles que oferecem apenas as operaes bsicas de controle do dispositivo. J os inteligentes, podem ser planejados para formar blocos de dados, detectar e corrigir erros, etc. Tcnicas de projetos visam colocar essas funes em VLSI.

Controladores de Dispositivos Escrever software para controlar dispositivos requer muita ateno a detalhes, como conhecer as especificaes tcnicas deles. A maioria dos programadores no nem um pouco interessados em se preocuparem com isso. Na verdade eles nem precisam desde que se crie dispositivos lgicos.

Dispositivos Lgicos Program P; Var Arquivo: T; ... Read(Arquivo, x); ...

Dispositivo Lgico

Arquivo pode ser: arquivo de disco; memria; impressora; etc.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 7/20 ________________________________________________________________________________________________________

obvio que alguns componentes devem se preocupar com aqueles detalhes. Os componentes que devem tratar de detalhes dos dispositivos, so comumente denominados de drivers. Esses drivers muitas vezes fazem parte do ncleo do Sistema Operacional (residente; porque so solicitados com muita freqncia). Algumas vezes existem na forma instalvel. Essa ltima forma, permite que os programadores escrevam seus prprios drivers. Tipicamente, o Sistema Operacional mantm uma tabela na qual cada entrada corresponde a um driver. Por exemplo: nome teclado winchester impressora ponteiro .... ... ... atributos .... ... ...

A questo : como os drivers se encaixam no esquema geral de processamento de E/S?

Nveis de Processamento de E/S Em geral o processamento de E/S tem vrios nveis de abstraes. A saber: a nvel de solicitao feita pelo programa de usurio: comandos de E/S disponibilizados aos usurios por meio de bibliotecas da linguagem de programao, por exemplo. ( Read(a, b); WriteLn; ).

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 8/20 ________________________________________________________________________________________________________

a nvel de Sistema Operacional / Linguagem de Programao: os comandos de E/S (rotinas de E/S) determinam qual dispositivo fsico deve ser acionado para efetuar a transferncia de dados (do meio externo para o computador ou vice versa), se este dispositivo apropriado, programar o dispositivo para efetuar a transferncia de dados, etc. Por exemplo: Write(sada, a, b); (* onde sada impressora *) a nvel de programao do dispositivo: rotinas que implementam aquelas operaes solicitadas no nvel superior, ou seja: operaes de programar o dispositivo, ativar o dispositivo, etc. Por exemplo: rotinas para programao da impressora. a nvel fsico de transferncia de dados: operaes de transferncia de dados propriamente dito. Por exemplo: a impressora imprimindo os dados.

Ilustrando:

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 9/20 ________________________________________________________________________________________________________

Por que estruturar assim?. (desenvolvimento de projeto top down ou bottom up). Pela principal facilidade percebida na estruturao hierrquica: a portabilidade; Normalmente, as rotinas a nvel de programao de dispositivo, so denominadas de drivers (controladores). Os drivers executam funes que so dependentes do sistema por meio das quais podem-se controlar as aes do dispositivo. Exemplo:

Ultimamente, muitas funes de drivers esto sendo transferidas para o hardware do controlador.

Funes de um Driver As responsabilidades de um driver so, de um modo geral: se preparar para E/S: o que envolve verificar o estado do dispositivo, aloc-lo e iniciar a transferncia de dados;

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 10/20 ________________________________________________________________________________________________________

finalizar a operao de E/S: o que envolve verificar o resultado da operao (terminada ou abortada) e responder adequadamente. Algumas das funes de um driver so: Verificao do estado do dispositivo: verificar se o dispositivo est ou no operacional; Emisso de comandos especficos para o dispositivo: programar o dispositivo para leitura ou escrita de dados; Verificao de erro de transmisso (e, algumas vezes, correo): rudos eltricos ou conexes defeituosos podem causar erros de transmisso. Assim, importante que existe mecanismo que os detecte e os acuse, ou detecte-os e corrija-os. Outros erros so: fim da fita magntica; tentativa de gravao em disco protegido; etc. Verificao de ociosidade: verificar se o dispositivo est ou no ocupado; Bufferizao de dados: normalmente so usados buffers para a reteno dos dados lidos do meio externo ou para serem emitidos para o meio externo, por questo de facilitar o controle do fluxo dos mesmos; Escalonamento de E/S do dispositivo: em alguns casos, o driver pode escalonar as solicitaes de E/S de maneira a otimizar o uso do dispositivo; por exemplo, para otimizar o movimento da cabea do disco. Clculo do endereo de disco; Determinao de blocos defeituosos;

E/S Programada E/S fsica programada, os dados so transferidos base de 1 caractere por vez. Abordagem muito comum para drivers de terminais, teclado e muitas impressoras; normalmente para dispositivos lentos.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 11/20 ________________________________________________________________________________________________________

Os passos bsicos para o driver de leitura so: instruir o controlador para ler um dado; esperar que este dado chegue no buffer do controlador; sinalizar o trmino da operao; Os passos bsicos para o driver de escrita so: colocar o dado a ser impresso no buffer do controlador; instruir o controlador para imprimi-lo; esperar o trmino da operao; sinalizar este fato;

E/S Mapeada na Memria Dentro do espao de endereamento do computador so alocados os registradores de cada controlador de dispositivo.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 12/20 ________________________________________________________________________________________________________

Exemplo de um driver para impresso de 1 caractere, escrito em pseudo Assembler: ... MOV 3AF2H, Caractere MOV 3AF0H, Com_Escrita Ciclo MOV AX, 3AF1H AND AX, 0001H CMP AX, 0 JZ Ciclo ...

/* Colocar no Buffer do registrador o /* caractere a ser impresso e /* comandar a sua impresso /* Ler registrador de estado para AX /* Selecionar o bit que indica o /* trmino da operao /* Se este bit est igual a zero, ento /* no acabou a operao. Caso /* contrrio, sim.

Vantagens: no precisa de instrues especiais de E/S, porque o endereo de cada registrador corresponde ao endereo de uma clula (palavra) de memria. Desvantagens: maior dificuldade para proteo, como tambm o custo seria muito alto, porque as clulas correspondentes aos registradores de controladores de dispositivos, devero ser protegidos contra acessos no privilegiados (veja Gerenciamento de Memria).

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 13/20 ________________________________________________________________________________________________________

E/S Acionada por Interrupo O objetivo de E/S acionada por interrupo evitar a espera ocupada (busy wait). Assim fazendo, a UCP em vez de ficar executando aquele trecho de programa que fica verificando se a operao solicitada ao dispositivo terminou, pode-se atribuir a ele tarefas produtivas. Para tanto, a idia a seguinte: O driver inicia a operao da mesma maneira que o exemplo acima (as duas primeiras instrues). Porm, agora, em vez de ficar verificando o trmino da operao, ele libera a UCP, para que esta possa executar outras tarefas. Quando a operao de E/S terminar, o controlador manda um sinal para a UCP para que esta suspenda o que ela estava fazendo, e v executar a rotina associada a este sinal de interrupo. No caso, a continuao daquele driver (veja Multiprogramao).

ACESSO DIRETO MEMRIA permitir que dados externos passem do dispositivo para a memria e vice versa, sem a necessidade de que a UCP fique gerenciando isso. Isso significa que o driver fica mais simples, pelo menos a primeira vista, pois j no precisava ficar verificando o trmino da operao (interrupo) e, agora, no precisa cuidar de ficar colocando os dados no buffer da controladora (no caso de sada) e no precisa ficar cuidando da transferncia dos dados do buffer para a memria (no caso de entrada). claro que deve existir algum hardware que execute aquelas tarefas. Um hardware que pode ser programado para entrada ou sada para ir pegando os dados do

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 14/20 ________________________________________________________________________________________________________

dispositivo associado e ir colocando-os para a memria, no caso de leitura, e no caso de sada, ir pegando os dados da memria e ir solicitando ao dispositivo a sua impresso, ou gravao, ou etc.

Esse hardware chamado de DMA (Direct Acess Memory).

As funes de um driver para um DMA so as seguintes, de um modo geral: a operao a ser executada (entrada ou sada); o endereo de memria que ele deve iniciar o acesso; o nmero de caracteres a transferir o dispositivo envolvido Logo que o DMA recebe essas informaes, ele inicia a sua operao de transferncia de dados da memria para o dispositivo (sada) ou vice-versa (entrada).

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 15/20 ________________________________________________________________________________________________________

Para a transferncia de cada dado (1 caractere, por exemplo), ele solicita permisso de acesso memria UCP (isso chamado de ROUBO de CICLO), para evitar conflito, pois este est constantemente acessando a memria durante a execuo de um programa. Ao final da transferncia de todos os dados, o DMA sinaliza o Sistema de Interrupo para que este avise a UCP sobre o trmino da operao.

Concluso: com DMA, a UCP ficar cedendo 1 ciclo seu a cada dado a ser transferido (cujo tempo muitssimo menor do que o tempo necessrio para tratar o prembulo e o final de uma rotina de tratamento de interrupo) e tratar apenas uma interrupo. Dessa forma o paralelismo entre E/S e a UCP grande e, consequentemente, obtmse um desempenho maior do sistema como um todo.

Processadores de E/S

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 16/20 ________________________________________________________________________________________________________

O objetivo permitir que as operaes de E/S sejam feitas de forma independente da UCP; ou seja as operaes de E/S possam ser executadas em paralelo com as funes da UCP (uma espcie de multiprocessamento). Para tanto, o controlador deve estar sob o controle de um processador com caractersticas semelhantes a de uma UCP, no sentido de que ele capaz de entender e executar de forma automtica, um determinado conjunto de instrues (repertrio de instrues). Como a funo deste tipo de processador executar operaes de E/S, as instrues de seu repertrio so mais comumente chamados de comandos de E/S (I/O Commands - IOCs). Como a funo desse processador servir de canal por onde os dados podem fluir sem necessidade de interferncia da UCP, ele tambm denominado de CANAL.

Assim, os IOCs, so tambm denominados de palavras de comando do canal (channel commands words). Por meio do IOCs o processador programado para executar toda a tarefa de transferncia de dados; acionar o dispositivo, verificar o estado deste, etc. Especificamente, um processador de E/S pode emitir comandos que ativam um controlador de dispositivo e detectam seu estado. O programa que o processador de E/S executa para controlar um dispositivo chamado de IOP - Input/Output Program, ou um programa de canal. Os IOPs podem residir na memria principal ou em uma memria separada associada ao processador de E/S.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 17/20 ________________________________________________________________________________________________________

Usando-se processadores de E/S, agora, em vez da controladora avisar a UCP do trmino da tarefa solicitada (via Sistema de Interrupo, por exemplo), ela avisa o processador que a est gerenciando.

Assim, agora, quem fica ocioso entre a solicitao de uma E/S e o trmino do atendimento, o processador de E/S. Para economizar isso, um processador de E/S poderia cuidar de vrios dispositivos de E/S. Comandos do Processador de E/S Posicionar: posicionar a cabea da leitora/escrita do disco na trilha especificada. Escrever: transferir dados da memria para o controlador, que por sua vez os transfere para o dispositivo apropriado. Ler: transferir dados do dispositivo para o processador de E/S. Pular para a Prxima Linha ou Avanar para a Prxima Pgina: emitir comandos de pula para a prxima linha ou avanar uma pgina, para a controladora. Posicionar no Incio: rebobinar uma fita magntica. Verificar Estado: comando para detectar o estado de um controlador ou dispositivo, para verificar se eles esto prontos para receberem comandos. Comando de E/S da UCP Iniciar E/S: fazer com que o processador de E/S inicie a execuo de um programa de E/S. Halt: fazer com que o processador de E/S suspenda a execuo do programa de E/S.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 18/20 ________________________________________________________________________________________________________

Processando uma Solicitao de E/S 1. Programa de usurio em execuo, executa a chamada de uma rotina de E/S (suponhamos de Entrada); 2. A rotina chamada colocada em execuo (essa rotina do tipo independente de dispositivo);

3. A rotina seleciona o driver que deve dirigir o dispositivo desejado pelo usurio e solicita a sua execuo;

4. Esse driver define o programa de E/S que o processador de E/S deve executar e emite o Start I/O (SIO);

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 19/20 ________________________________________________________________________________________________________

5. O processador de E/S executa o programa de E/S que est na memria; 6. Este programa instrui o processador para emitir os devidos comandos para a controladora comandar o dispositivo que de fato acessar os dados.

7. O dispositivo l os dados e passa-os para a controladora em reposta ao comando de leitura desta;

8. Os dados so armazenados no buffer do processador de E/S; 9. Processador de E/S executa comandos que transferem dados deste buffer para o do Sistema Operacional;

10. As rotinas do Sistema Operacional movem os dados de seu buffer para a memria do usurio e notifica o respectivo programa do usurio de que a E/S foi completada.

SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SADA - 20/20 ________________________________________________________________________________________________________

Anda mungkin juga menyukai