Você está na página 1de 14

http://scam a.norbis.com .

br

rodrigoscam a@ yahoo.com .br

Entrada e Sada (I/O)


Princpios bsicos de hardware necessrio que algum tipo de mecanismo exista para que possamos informar problemas ao computador e recuperar uma sua soluo. Esse mecanismo constitui o que chamamos genericamente de dispositivos de Entrada e Sada (I/O). De acordo com o sentido do fluxo de dados entre o computador e o dispositivo, esses podem ser divididos em perifricos de entrada, perifricos de sada, ou ainda perifricos de entrada e sada. Um perifrico pode ser visto como qualquer dispositivo conectado a um computador de forma a possibilitar sua interao com o mundo externo. Os perifricos so conectados ao computador atravs de um componente de hardware denominado interface. Isso significa que os perifricos no esto conectados diretamente aos barramentos do computador. Dessa forma, as interfaces constituem um elemento chave para coordenao da transferncia de dados entre perifrico e o processador, ou entre perifrico e memria. As interfaces empregam no seu projeto um outro componente de hardware: o controlador. Um controlador nada mais que um processador projetado especificamente para realizar uma funo, como, por exemplo, controlar um disco rgido. Os dispositivos de I/O, dependendo de sua interconexo fsica s interfaces, podem ser do tipo serial ou paralelo. Essa caracterstica est relacionada maneira pela qual os dados so transferidos entre os dispositivos de I/O e as interfaces. Esse mecanismo baseado em um protocolo de transmisso constitudo por um conjunto de linhas de controle e linhas especficas para o envio e recepo de dados. Uma interface serial aquela que existem apenas uma linha para os dados. Nesse caso, podemos imaginar o protocolo de transferncia como uma forma de transformar um byte em uma seqncia de bits e vice-versa. Os modems, alguns tipos de mouse e impressoras so exemplos de dispositivos seriais. Uma interface paralela possui vrias linhas para os dados, permitindo assim que vrios bits sejam transferidos simultaneamente (em paralelo) entre os dispositivos de I/O e a interface. O nmero de linhas corresponde normalmente ao nmero de bits que compem um byte (8 bits), ou uma palavra (n x 8 bits). As impressoras paralelas so exemplos tpicos desse tipo de dispositivo. Mapeamento em espao de memria e em espao de entrada e sada O processador enxerga o controlador atravs de um conjunto de registradores internos ao controlador, os quais, entre outras tarefas, recebem ordens do processador, fornecem o estado de uma operao, ou permitem a leitura (escrita) de dados do perifrico. Esses

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

registradores residem fisicamente no hardware do controlador e so acessados pelo processador atravs do barramento de dados e de endereos. Para que esse mecanismo seja possvel os registradores internos do controlador devem estar associados a posies da memria. Ento, acessar um desses controladores consiste basicamente em realizar uma operao de escrita em memria, fornecendo o endereo correspondente a esse registrador e a ordem a ser executada como valor a ser escrito. Basicamente existem duas formas para a interpretao de um endereo, dependendo do tipo do processador e de como o sistema como um todo foi projetado nvel de hardware: entrada e sada mapeada em memria e entrada e sada mapeada em espao de entrada e sada. O mapeamento de entrada e sada em memria corresponde a definir, no momento do projeto do computador, uma zona de endereamento de memria na qual no existir fisicamente uma memria, mas sim dispositivos de I/ Dessa forma, o espao de endereamento do computador est dividido em dois, um no qual cada endereo corresponde uma posio de uma memria, e outro no qual os endereos (posies de memria) correspondero a registradores internos de controladores de diferentes dispositivos. J o mapeamento em espao de entrada e sada ocorre em um grande nmero de processadores, que possuem instrues especiais para a manipulao de entrada e sada. Nesse tipo de processador o que ocorre, na realidade, que, no projeto do prprio processador (no do computador), so definidos dois espaos de endereamento completamente distintos: Um espao de endereamento normal e outro dedicado a entrada e sada (I/O mapped). A distino entre os dois feita pelo emprego de instrues, ou seja, existe um conjunto de instrues para acesso da memria normal e um conjunto de instrues para acesso a memria de entrada e sada.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

I/O programada Na tcnica de acesso a dispositivos de entrada e sada programado, toda interao entre o processador e o controlador de responsabilidade exclusiva do programador. O ciclo de funcionamento baseado no envio de um comando ao controlador e na espera de uma realizao. Por exemplo, o processador envia um comando de leitura ao controlador e, em seguida, pode ler continuamente o registrador de estado para verificar se o dado solicitado j est disponvel; em caso afirmativo, o processador efetua a leitura. O problema desse mtodo que as operaes de I/O so muito lentas se comparando com operaes de clculo. Utilizar continuamente o processador para verificar o andamento de uma operao de entrada e sada representa um desperdcio muito grande de tempo de clculo. Uma soluo paliativa inserir operaes de clculo entre verificaes sucessivas do estado da operao de entrada e sada. Esse procedimento de verificar periodicamente o estado de uma operao de entrada e sada denominado polling. O emprego do polling reduz o problema desperdcio de tempo do processador, mas introduz um outro problema: determinar a freqncia de sua realizao. Se a freqncia de polling for muito alta, pode significar desperdcio de tempo, principalmente se o dispositivo for realmente lento. Por outro lado, efetuar o polling com uma freqncia baixa pode acarretar esperas desnecessrias por parte do dispositivo de entrada e sada, ou ainda, perda de informaes. O ideal seria que o dispositivo I/O chamasse a ateno do processador logo que o dado estivesse disponvel. Isso possvel graas ao mecanismo de interrupes. Mecanismo de Interrupes o mecanismo baseado na gerao de um sinal ao processador sempre que ocorre um determinado evento externo ao processador. Ao receber esse sinal, o processador pra momentaneamente o que est fazendo para executar uma rotina interrompida sem que ela perceba essa interrupo. O emprego de interrupes implica numa srie de detalhes tanto de software quanto de hardware. Para isso temos o controlador de interrupes. Entre suas funes esto: (a) identificar a fonte de interrupo a fim de executar, para cada uma delas, um procedimento especfico. (b)privilegiar o atendimento de uma interrupo em relao a outra (prioridades). Ou ainda, (c) selecionar quais interrupes sero atendidas(mascaramento). As interrupes podem ser ativadas por hardware ou software. Como j dissemos, no processo de hardware um evento externo faz com que um sinal seja gerado ao processador. O processador para a

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

atividade em andamento para realizar uma rotina especfica(o tratador) e depois retorna sua posio original. J uma interrupo de software provocada pela execuo de uma instruo especfica. H ainda uma terceira interrupo, que a interrupo interna do processador, que gerada quando ocorre um erro interno no processador. Acesso direto Memria Para a transferncia de dados, uma soluo transferir diretamente os dados da interface (controlador) para a memria. Esse mecanismo conhecido como acesso direto memria (DMA Direct Memory Access). A tcnica de DMA baseia-se no emprego de um hardware especial, o controlador de DMA, para realizar a transferncia de dados entre um dispositivo de entrada e sada e a memria. O controlador de DMA possui internamente uma srie de registradores utilizados pelo processador para programar a transferncia de dados. Para que ocorra uma transferncia por DMA necessrio que, em primeiro lugar, o processador inicialize o controlador de DMA fornecendo informaes como quantidade de dados a transferir (tamanho do bloco) a origem e o destino desses blocos, e ainda qual o sentido da transferncia, se memria para dispositivo ou vice-versa. Aps essa programao, o processador dispara a execuo de DMA, iniciando a transferncia. Enquanto o controlador de DMA efetua a transferncia, o processador pode dedicar-se a outra tarefa. Ao trmino da transferncia, o controlador de DMA sinaliza o processador atravs de uma interrupo de hardware. Princpios Bsicos de I/O O objetivo primeiro do subsistema de entrada e sada tentar padronizar ao mximo as rotinas de acesso aos perifricos de forma a reduzir o nmero de rotinas de entrada e sada. Tal caracterstica permite, ao mesmo tempo, a incluso de novos dispositivos sem necessidade de alterar a interface de programao com o usurio final. Para atingir esse objetivo, o subsistema de entrada e sada normalmente organizado em uma estrutura de 4 camadas, onde a camada i fornece uma abstrao de mais alto nvel camada i+1 das funes de entrada e sada. Essa abstrao obtida atravs de uma interface de programao padro que engloba uma srie de operaes comuns e necessrias a todos os dispositivos.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

Drivers de dispositivo

A camada drivers de dispositivo (device drivers) composta por um conjunto de mdulos de software cada um implementado para fornecer os mecanismos de acesso a um dispositivo de entrada e sada especfico. O principal objetivo dos drivers de dispositivos um dispositivo de entrada e sada especfico. O objetivo principal dos drivers de dispositivos esconder as diferenas entre os vrios dispositivos de entrada e sada, fornecendo camada superior uma viso uniforme desses dispositivos atravs de uma interface de programao nica. Ela responsvel por implementar as rotinas necessrias ao acesso e gerncia de um dispositivo especfico. nesse nvel que o software de I/O realiza a programao de registradores internos de controladores que compem a interface fsica dos dispositivos e implementa os respectivos tratadores de interrupo. Assim, cada tipo de dispositivo requer um driver apropriado. Essa camada fornece uma abstrao a mais genrica possvel para a camada superior, a de I/O independente do dispositivo. Para atender o requisito de fornecer uma viso uniforme, os dispositivos de entrada e sada so classificados em: orientados a bloco e orientados a caractere. Em um dispositivo orientado a bloco (block devices), o armazenamento de informaes e sua transferncia entre o perifrico e o sistema so realizados atravs de blocos de dados de tamanho fixo. As unidades de disco so o exemplo mais comum de dispositivos orientados a bloco. Os dispositivos orientados a caractere (character devices), realizam transferncias byte a byte, a partir de um fluxo de caracteres

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

sem necessidade de considerar uma estrutura qualquer. As portas seriais so exemplos de character devices. Existe ainda um outro tipo de dispositivo, denominado pseudodispositivo (pseudo-devices) que na realidade no corresponde a nenhum perifrico fsico. Ele apenas uma abstrao empregada para adicionar funcionalidades ao SO, explorando a interface padronizada j existente. dessa forma que o Unix permite o acesso memria principal (ramdisk) como se fosse um disco. I/O independente do dispositivo A camada de software de I/O independente do dispositivo implementa procedimentos e funes gerais a todos os dispositivos de entrada e sada. Os principais servios sob responsabilidade dessa camada so: Escalonamento de I/O Denominao (insero de nome lgico ao dispositivo) Buferizao Cache de dados Alocao e liberao Direitos de acesso Tratamento de erros Entrada e sada nvel de usurio A viso que um usurio possui dos dispositivos de I/O de um sistema fornecida por uma interface de programao associada as bibliotecas de entrada e sada, ou aos aplicativos de desenvolvimento.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

Dispositivos perifricos tpicos Discos Rgidos Os discos rgidos so dispositivos de armazenamento destinados a grandes quantidades de dados. Fisicamente, um disco rgido pode ser visto como composto por dois grandes blocos. O primeiro bloco um conjunto de discos metlicos (ao ou alumnio) superpostos e dispostos em alturas diferentes com auxlio de um eixo central. As duas superfcies de cada um desses discos so recobertas por uma pelcula magntica na qual os dados so gravados. No momento de acesso ao disco, essa estrutura mantida em uma rotao constante. O segundo bloco uma estrutura mecnica que suporta um conjunto de cabeotes, um para cada superfcie de disco. Essa estrutura capaz de realizar movimentos de vai-vem de maneira que os cabeotes possam ser deslocados da borda do disco at o centro. Do ponto de vista da organizao lgica, cada superfcie de um disco dividida em circunferncias concntricas denominadas trilhas. Cada trilha, por sua vez, subdividida radialmente em unidades chamadas setores. Em geral todos os setores tem o mesmo tamanho, o qual varia entre 512 e 4096 bytes (o mais comum 512). O setor constitui a unidade mnima de leitura e gravao em um disco. O conjunto de trilhas de todas as superfcies do disco que ficam exatamente mesma distncia do eixo central forma o cilindro. As abstraes cilindro, trilha e setor so utilizadas para designar a organizao lgica da unidade de disco.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

A definio de trilhas e setores em um disco chama-se formatao fsica e um procedimento realizado no fabricante. A controladora de disco tambm outro pedao do hardware. Devido a restries fsicas na construo de discos rgidos, ela ajuda em um problema: A tecnologia atualmente disponvel nos permite apenas empilhar 8 discos, o que daria no mximo 16 cabeas de leitura e escrita. Entretanto, ao analisarmos as especificaes de um disco real de, por exemplo, 4.1 Gb, encontramos 255 cabeas, 63 setores de 512 bytes e 525 cilindros. O que ocorre que esses valores so divises lgicas dispostas e gerenciadas pela controladora sobre 8 discos fsicos, o que justifica em certa parte os nmeros quebrados. Nesse caso, as cabeas correspondem ao nmero de superfcies gravveis, e os cilindros, aos nmeros de trilhas. Dessa forma, a capacidade total do disco obtida multiplicando-se cabeas x cilindros x setores x tamanho_do_setor (255 x 525 x 63 x 512 = 4318272000 bytes). Outros termos bastante associados aos discos rgidos so formatao lgica e parties. A formatao lgica consiste em gravar informaes no disco de forma que os arquivos possam ser escritos, lidos e localizados pelo SO. Por sua vez, o conceito de partio est associado capacidade de dividir logicamente um disco em vrios outros discos.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

Tempo de acesso Para realizar um acesso ao HD, necessrio posicionar o cabeote de leitura e escrita sob um determinado setor e trilha onde o dado ser lido ou escrito. Isto feito com um tempo de acesso. O tempo de acesso assim dividido: Seek time tempo necessrio para deslocar o cabeote de leitura e escrita at o cilindro correspondente trilha a ser acessada. Latency time tempo necessrio, uma vez o cabeote j na trilha correta para o setor a ser lido, ou escrito, se posicionar sob o cabeote de leitura e escrita no incio do setor a ser lido (ou escrito). Esse tempo tambm denominado de atraso rotacional (rotacional delay). Transfer time Corresponde ao tempo necessrio transferncia dos dados, isso , leitura ou a escrita dos dados

t access = tseek + tlatency + ttransfer

Entrelaamento Outro fator relacionado com a reduo do tempo de acesso a um disco o entrelaamento (interleaving). muito comum o acesso a vrios setores contguos em uma trilha de disco. Suponha que se deseja ler os setores 4 e 5 de uma determinada trilha. Devido rotao do disco, o cabeote de leitura e escrita provavelmente no se encontra mais no incio do setor 5. Ser necessrio esperar que o disco d uma volta completa (tempo de latncia) para ento efetuar a leitura do setor 5.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

A forma usual para evitar esse problema realizar um entrelaamento dos setores. Essa tcnica numera os setores no mais de forma contgua, mas sim com um espao entre eles. O disco 2 da figura abaixo possui um fator de entrelaamento igual a 2. Isso significa que entre o setor k e o setor k+1, existem dois outros setores. Podemos considerar que o disco 1 dessa mesma figura possui um fator de entrelaamento igual a zero. Com um entrelaamento de 2, os setores 4 e 5 agora esto distantes, e aps o cabeote sair do setor 4 ele passa antes pelos setores 15 e 10. Dessa forma, ganha-se tempo e a transferncia dos dados relativos ao setor 4 pode ser concluda, e o processador tem a a chance de mandar o comando de leitura do setor 5 antes que o cabeote passe sobre o incio do mesmo.

Escalonamento de disco Vejamos agora as formas de escalonamento de um disco rgido: FCFS(First come first served) o algoritmo de escalonamento mais simples. Nesse caso, as solicitaes de acesso ao disco so realizados na ordem em que os pedidos so feitos. SSTF(Shortest seek time first) A fila de pedidos reordenada para atender as solicitaes de forma a minimizar o movimento do cabeote de leitura e escrita entre os cilindros. Novos pedidos so ordenados em relao posio atual do cabeote de leitura e escrita, privilegiando assim o acesso aos cilindros que esto mais prximos a essa posio. A grande desvantagem desse algoritmo que ele pode levar um pedido de acesso postergao indefinida. SCAN uma variao do SSTF, isto em visa atender os pedidos que esto mais prximos atual posio da cabea de leitura e

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

escrita. O algoritmo SCAN diferencia-se do SSTF por estipular uma direo preferencial para o movimento do cabeote (varredura). Novos pedidos que surgem no sentido da varredura so atendidos na prpria varredura; novos pedidos em sentido contrrio devero esperar a prxima varredura para serem lidos. Por ser parecido com o mecanismo de um elevador, tambm chamamos esse algoritmo de algoritmo do elevador. C-SCAN (circular SCAN) O algoritmo SCAN, imediatamente aps inverter a varredura, inicia o atendimento privilegiando os pedidos correspondentes aos cilindros recm-servidos por conseqncia os pedidos dos cilindros do outro extremo da varredura feitos anteriormente devem esperar. O algoritmo CSCAN uma variao do SCAN com o objetivo de acabar com esse privilgio. Nesse caso, por exemplo, quando a varredura atinge o cilindro mais externo, o cabeote de leitura e escrita reposicionado no cilindro mais externo onde ele reinicia a varredura.

Considerando a existncia de todos esses algoritmos de escalonamento, podemos nos perguntar qual deles o melhor. Na realidade, no existe resposta definitiva. Muitos fatores contribuem para o desempenho de um ou outro algoritmo de escalonamento de disco, entre eles o nmero de pedidos (carga), e a organizao dos prprios arquivos e da estrutura de diretrios no disco. Por essa razo, para facilitar a adequao do algoritmo de escalonamento de disco a um sistema especfico, este mdulo escrito como um mdulo a parte do sistema operacional. Outras tecnologias de disco, como floppys e zips, funcionam obedecendo os mesmos princpios e organizao dos discos rgidos. Entretanto, o escalonamento de disco normalmente fixo e do tipo FCFS. Estrutura RAID (Redundant Array of Independent Disks) A estrutura RAID se prope a solucionar problemas associados com o armazenamento de grandes quantidades de dados. Ela associada sempre backups. O princpio bsico de uma estrutura RAID combinar vrios discos rgidos fsicos em uma estrutura lgica de discos de forma a aumentar a confiabilidade e o desempenho dos discos. Como o prprio nome nos leva a imaginar, o conjunto de discos (array) armazena informaes de forma redundante (redundant), permitindo assim a recuperao de dados em caso de falha fsica de um disco. Eis os nveis de RAID:

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

RAID 0 - Nesse nvel, os dados a serem escritos so divididos entre os diferentes discos fsicos que compem o disco RAID sem considerar nenhum mecanismo para o controle ou correo de erros. Esse procedimento de escrever (e depois acessar) dados em paralelo em diferentes discos denomina-se stripping. RAID 1 Esse nvel conhecido como espelhamento (mirroring). Aqui um dado escrito simultaneamente em um disco primrio e em um disco secundrio de cpia. RAID 2/3/4 Os dados so armazenados em diferentes discos, utilizando-se stripping, mas ao mesmo tempo, para cacda strit, calculada uma paridade. A paridade ento gravada em um disco fsico parte pertencente ao array. Em caso de falha em um dos discos, a informao contida nos demais discos, mais a informao da paridade, suficiente para a reconstruo dos dados armazenados no disco que apresentou problemas. A diferena entre os nveis 2, 3 e 4 est na forma pela qual a paridade calculada: paridade a bit (RAID 2), paridade a byte (RAID 3) e paridade de bloco (RAID 4). RAID 5 Esse nvel similar ao nvel de RAID 3, isto , os dados so divididos entre os diferentes discos e, para cada strip, calculada a paridade. A diferena reside no fato de que essa informao de paridade no mais concentrada em um nico disco, mas sim distribuda entre os diferentes discos.

O controle necessrio para implementao de uma configurao RAID pode ser realizado em hardware ou em software. Quando implementado por hardware a capacidade de stripping, clculo de paridade, e da escrita simultnea em discos provida pela prpria controladora de disco. Nesse caso, nenhuma interveno especial do SO necessria.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

Para o caso de RAID implementado por software, essas informaes devem ser fornecidas pelo prprio SO, isto , os dados a serem escritos so particionados pelo SO, e as diferentes fatias de dados so enviadas aos discos um por um. Vdeo No modo texto o vdeo organizado em uma matriz de caracteres, as posies da memria de vdeo correspondem a caracteres e a seus atributos. No modo grfico, a matriz organizada em pixels; cada pixel tem associada uma srie de posies de memria correspondentes as suas cores. A memria de vdeo da placa determina sua resoluo (nmero de linhas e colunas da matriz) e o nmero de cores de cada pixel. A capacidade de resoluo e nmero de cores determina o tipo da controladora (EGA, VGA, SVGA, etc). Teclado O princpio de operao do teclado bastante simples: gerar um smbolo para cada tecla pressionada. Quando uma tecla pressionada, o teclado identifica a linha e a coluna associadas a essa tecla e gera um cdigo que denominado de scan code (cdigo de varredura). Para cada tecla, existem, na realidade, dois cdigos, um para identificar o pressionador da tecla e outro para sinalizar que a tecla foi liberada. Algumas teclas, ou seqncias de teclas (CTRL-ALT, etc) geram mais de um cdigo. O pressionar de uma tecla gera ainda uma interrupo de hardware e, por conseuencia, a execuo de um tratador de interrupes especfico para o teclado. O tratador de interrupo, nesse caso, l registros internos especficos da interface do teclado para recuperar o scan code da tecla pressionada. Com base no scan code, o tratador de interrupes consulta uma tabela interna, substituindo o scan code pelo cdigo ASCII correspondente tecla pressionada. O cdigo ASCII da tecla , em seguida, armazenado em uma regio especial da memria (buffer de teclado) de onde recuperado por chamadas de SO. Ns podemos ver essa interao como uma relao do tipo produtor-consumidor, na qual o tratador de interrupes de teclado produz cdigos ASCII e armazena-os em uma fila. Posteriormente, outro processo o Sistema operacional consome o contedo dessa fila, realizando assim a leitura dos caracteres pressionados. As primitivas para consumo de caracteres so disponibilizadas ao usurio final atravs de rotinas de bibliotecas, como, por exemplo, getc() na linguagem C. Sob um certo ponto de vista, no se pode dissociar a entrada e sada de dados, j que ns usurios queremos visualizar os caracteres que digitamos na tela de nosso computador. Esse procedimento de ler dados do teclado e escreve-los na tela denomina-se ecoamento.

http://scam a.norbis.com .br

rodrigoscam a@ yahoo.com .br

Rede Uma placa de rede constituda por um hardware que transforma os sinais digitais em sinais analgicos segundo sua tecnologia. Ela tambm possui internamente uma capacidade de memria (buffers) na qual dados a serem transmitidos, ou recebidos, so armazenados. A placa de rede trabalha sob um certo aspecto orientada a eventos. Um evento o final da transmisso. A ocorrncia desse evento interpretada como disponibilidade para nova transmisso. Outro evento a recepo de uma mensagem. Nesse caso, a mensagem deve ser lida. Essa descrio, entretanto, extremamente simplista. O software de rede bastante complexo e envolve muitas abstraes, e ento ele organizado em camadas.

Você também pode gostar