Você está na página 1de 7

GERNCIA DE ENTRADA E SADA

Uma das principais funes de um SO controlar os dispositivos de entrada e sada (E/S), fornecendo uma interface de uso adequada. Esse captulo mostra como o SO interage com os dispositivos de E/S, enviando comandos e capturando suas interrupes. A gerncia de E/S est intimamente relacionada com os aspectos de hardware de um computador. 5.1 Princpios bsicos de hardware

uma seqncia de bits. Os modems, alguns tipos de mouses 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 o dispositivo de E/S e a interface. O nmero de linhas corresponde normalmente ao nmero de bits que compem um byte (8 bits) ou palavra (n x 8 bits). As impressoras paralelas so exemplos tpicos desse tipo de dispositivo. Acesso aos registradores dos perifricos Conforme visto anteriormente, a UCP enxerga um perifrico atravs de um conjunto de registradores, os quais registram ordens, fornecem o estado de uma operao, e permitem a leitura (escrita) de dados do (no) perifrico. Esses registradores residem fisicamente no hardware da interface e podem ser acessados pela UCP atravs de duas tcnicas distintas: entrada e sada mapeada em espao de E/S ou entrada e sada mapeada em memria. A opo por uma das tcnica feita em tempo de projeto do computador. Na primeira (mapeamento em espao de E/S), o processador possui instrues de mquina prprias para operaes de E/S e estas instrues especificam registradores de perifricos. Nesse tipo de processador existem dois espaos de endereamento distintos: o espao normal, que corresponde memria principal e o espao de E/S, que corresponde aos registradores dos perifricos. Um conjunto de instrues (do estilo load, store, move) acessa a memria normal e outro conjunto (as instrues de E/S, do estilo in e out) acessa a memria de E/S. Enquanto a instruo move end,dado representa escrever dado na posio de memria end, a instruo out end,dado representa escrever dado no registrador de algum dispositivo. Observe que, numericamente, o valor de end pode ser o mesmo nos dois casos, o que faz a diferena a instruo empregada. No mapeamento em memria, o espao de endereamento nico (s existe uma memria), mas alguns endereos representam registradores de (controladores de) perifricos. Em tempo de projeto do computador, so reservados alguns endereos da memria principal para representar registradores de perifricos. Esses endereos no correspondero a palavras de memria, mas sim a registradores de dispositivos. Com essa tcnica, qualquer perifrico pode ser programado atravs de instrues de acesso memria do estilo mov end,dado. Se end um endereo correspondente a um controlador de dispositivo, o dado ser escrito no registrador do dispositivo (o valor de dado ser interpretado segundo a funo especfica desse registrador). Interao entre a UCP e os controladores de perifricos Independentemente do tipo de mapeamento utilizado, a interao entre a UCP e a interface (controlador), para realizar operaes de E/S, pode acontecer de trs maneiras diferentes: E/S programada, via interrupes e acesso direto memria (DMA). E/S programada Essa tcnica usada quando no h sistema de interrupo (nos computadores antigos era assim, hoje a tcnica s usada em mquinas simples). Com esta tcnica, toda interao entre a UCP e o controlador de responsabilidade do programador. O ciclo de funcionamento baseado no envio de um comando ao controlador e na espera de sua AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

Um perifrico (ou dispositivo de E/S) qualquer dispositivo conectado a um computador de forma a possibilitar a interao do computador com o mundo externo. Atualmente, existe uma grande variedade de dispositivos, desde aqueles desenvolvidos para permitir a comunicao do homem com o computador (teclado, mouse, monitor de vdeo, etc) at dispositivos que possibilitam a comunicao entre computadores (modems, placas de redes, etc), ou ainda aqueles destinados ao armazenamento de informaes (unidades de fita, disquetes, disco rgido, CD-ROM, etc). Apesar dessa diversidade, existe uma razovel padronizao na forma de acessar (acionar) esses perifricos. 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 conectado ao computador atravs de um componente de hardware denominado interface. Essa, por sua vez, interconectada aos barramentos internos do computador. Para tratar a diversidade, a complexidade, e as diferentes formas de operaes de cada perifrico, as interfaces empregam no seu projeto um outro componente, o controlador, que nada mais que um processador projetado especificamente para realizar uma funo, como, por exemplo, controlar um disco rgido. A UCP se comunica com o controlador atravs de um conjunto de registradores situados na interface. Tipicamente, so 3 registradores: registrador de dado, registrador de status e registrador de comando. Por exemplo, para escrever um dado em um dispositivo de sada, seriam realizadas as seguintes duas operaes: (1) UCP coloca o dado no registrador de dados, (2) UCP coloca comando write no registrador de comando. A partir da, o controlador comanda as aes do perifrico, de forma independente da UCP. No final das aes, o controlador coloca o resultado da operao (sucesso ou falha) no registrador de status e gera uma interrupo. O caso de no haver mecanismo de interrupo considerado adiante. A funo bsica de um controlador implementar um conjunto de comandos para o seu dispositivo. O controlador vai traduzir cada ordem colocada no registrador de comando numa seqncia especfica de acionamentos eletrnicos, eltricos e mecnicos que iro realizar a operao solicitada. Evidentemente, cada tipo de perifrico necessita de um controlador diferente. Contudo, apesar da grande variedade de dispositivos, no d para negar que existe uma boa padronizao na forma de conect-los ao computador e na forma de acion-los atravs da UCP. Os dispositivos de E/S, dependendo de sua interconexo fisica s interfaces, podem ser do tipo serial ou paralelo. Uma interface serial aquela em que existe apenas uma linha para transmitir dados. Nesse caso, um byte vai ser transferido como AMBIENTES OPERACIONAIS Prof. Simo Toscani p.1 Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.2

realizao. Por exemplo, o processador envia um comando de leitura ao controlador e, em seguida, fica testando continuamente (em busy loop) 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 E/S so muito lentas em comparao com as operaes de clculo. Utilizar continuamente o processador para verificar o andamento de uma operao de E/S representa um desperdcio muito grande de tempo de clculo. Uma soluo paliativa inserir operaes de clculo entre as verificaes sucessivas do estado da operao de E/S. Esse procedimento de verificar periodicamente o estado de uma operao de E/S denominado de polling. O emprego de polling reduz o desperdcio de tempo do processador, mas introduz um outro problema: determinar a freqncia de sua realizao. Se a freqncia muito alta, h desperdcio de tempo, principalmente se o dispositivo realmente lento. Por outro lado, efetuar o polling com uma freqncia baixa pode acarretar esperas desnecessrias por parte do dispositivo de E/S, ou ainda, o que pior, perda de informaes (este problema existe nas interfaces de comunicao que possuem buffers de tamanho limitado para a recepo de dados: a no leitura dos dados recebidos em um certo perodo de tempo pode acarretar perdas por sobre-escrita). O ideal seria que o dispositivo de E/S sinalizasse o processador logo que o dado estivesse disponvel. Comunicao via interrupo O uso do mecanismo de interrupo elimina a necessidade de polling em operaes de E/S. Nesse caso tem-se E/S via interrupes (interrupt driven I/O). Nessa situao, o processador responsvel via software apenas por iniciar uma operao de E/S enviando comandos interface (controlador). Aps, o processador passa a executar outra tarefa, e o controlador, a operao de E/S. Quando a operao de E/S termina, o controlador interrompe o processador, provocando a execuo do tratador de interrupo, o qual ir acionar o driver do dispositivo. Acesso Direto Memria O emprego de interrupes resolve o problema de determinar o momento exato em que um dispositivo de E/S necessita da ateno do processador, entretanto no auxilia na execuo de outra tarefa bastante importante em operaes de E/S: a transferncia de dados. Para a maioria dos perifricos, o processador responsvel pela leitura de dados na interface e por sua transferncia memria, ou pela leitura na memria e transferncia para a interface. Quando o volume de dados importante, esse procedimento torna-se ineficiente, pois, alm de envolver o processador, essa transferncia representa dois movimentos de dados: um da interface ao processador, e outro do processador memria. Uma soluo para isso transferir diretamente os dados da interface para a memria, o que conseguido por um mecanismo conhecido como 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 e a memria. Para tanto, o controlador de DMA possui a capacidade de acessar diretamente a memria, AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

sendo ento conectado fisicamente ao barramento de dados e de endereos do computador. O controlador de DMA possui internamente uma srie de registradores utilizados pela UCP para programar a transferncia de dados. Tipicamente, tem um par de registradores para o armazenamento dos endereos fonte e destino da transferncia, um registrador que determina quantos bytes devem ser transferidos, um registrador de comando e um de estado. Aps acionar o DMA, o processador pode se dedicar a outra tarefa. No trmino da transferncia, o controlador de DMA sinaliza o processador atravs de uma interrupo de hardware. A tcnica de DMA mais eficiente que as discutidas anteriormente quando a operao de E/S envolve a leitura (ou escrita) de muitos dados, como, por exemplo, uma leitura de disco ou a recepo de uma mensagem em uma rede local. importante observar que tanto o controlador de DMA quanto o processador competem para acessar memria (no esquea que o processador est executando outras tarefas, o que envolve sem dvida acessos memria). Essa disputa pelo acesso memria coordenada pelo que se denomina arbitramento do barramento. Como o mecanismo de acesso memria passa a ser compartilhado, o processador (durante o funcionamento do DMA) ir executar a uma velocidade menor que a normal. Mesmo assim, esse mtodo ser ainda mais eficiente do que usar diretamente o processador para realizar a transferncia via software. 5.2 Princpios bsicos de software de entrada e sada

O subsistema de E/S de um SO um software bastante complexo devido principalmente diversidade de perifricos que ele deve tratar. Mesmo dentro de uma mesma classe de dispositivos, existe uma grande variedade, como por exemplo, placas de rede com protocolos, tecnologias e velocidades diferentes, ou ainda discos magnticos do tipo SCSI, IDE, EIDE, ZIP, CD-ROM, etc. O objetivo primeiro do subsistema de E/S padronizar ao mximo a forma de acesso aos perifricos. Para atingir esse objetivo, o subsistema de E/S normalmente organizado em uma estrutura de quatro camadas, onde cada camada fornece funes (servios) camada superior. A Figura 5.1 apresenta essa estrutura. A camada mais inferior composta pelo hardware dos dispositivos de E/S. A interface que ela apresenta camada imediatamente superior (drivers de dispositivos) composta pelos mecanismos apresentados na Seo 5.1. Em resumo, o hardware interage com os drivers atravs das interfaces fsicas (paralelas ou seriais) e seus controladores e pelo emprego de interrupes e DMA. A seguir, estudaremos o software de E/S. Drivers de dispositivo A camada inferior de software drivers de dispositivos (device drivers) composta por um conjunto de mdulos, cada um responsvel por implementar o acesso a um dispositivo especfico. O principal objetivo dos drivers esconder as diferenas entre os vrios dispositivos de E/S, fornecendo camada superior uma viso uniforme desses dispositivos atravs de uma interface de programao nica. A camada de drivers responsvel por implementar as rotinas necessrias ao acesso e gerncia de cada dispositivo. nesse nvel que o software de E/S realiza a programao de registradores internos de controladores que compem a interface fsica AMBIENTES OPERACIONAIS Prof. Simo Toscani p.4 Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.3

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 E/S independente do dispositivo.

E/S nvel de usurio Software Sistema operacional

funcionamento do sistema como um todo. As funes genricas so implementadas atravs de estruturas que representam classes de dispositivos e operaes associadas. Internamente, essas estruturas possuem ponteiros para descritores que especializam as operaes. Por exemplo, pode-se ter uma funo genrica read cujo primeiro argumento indica o dispositivo a ser usado. Essa operao genrica vai ser mapeada para uma seqncia de operaes compatveis com o dispositivo em questo, pois ler de um teclado diferente de ler de um disco. Alguns servios sob responsabilidade desta camada so: Escalonamento de E/S: Usado em dispositivos compartilhados por vrios processos (por exemplo, discos magnticos) para melhorar o desempenho dos mesmos. Buferizao: Um exemplo tpico de buferizao ocorre em protocolos de comunicao; o usurio pode desejar enviar, digamos, 64 Kbytes, mas a interface de rede pode enviar apenas seqncias mximas de 4 Kbytes. Nesse caso, necessrio armazenar a requisio do usurio e envi-la em blocos de 4 kbytes. Cache de dados: Consiste em armazenar na memria os blocos de dados freqentemente acessados. Um exemplo so as caches de disco (esse mecanismo ser apresentado quando estudarmos sistemas de arquivos). Alocao de dispositivo: Muitos dispositivos admitem, no mximo, um usurio por vez. Esse controle normalmente efetuado atravs da tcnica de spooling, que consiste em seqencializar os pedidos de acesso e atend-los um a um. Os pedidos so registrados em uma fila especial (spool), a qual acessada por um processo especial do SO (daemon), o qual atende as requisies de E/S. A gerncia de impressora um exemplo clssico do emprego de spool. Direitos de acesso: Nem todos os usurios podem acessar os dispositivos da mesma forma e cabe ao SO garantir essa proteo. O sistema UNIX, por exemplo, emprega os bits de permisso de acesso a arquivos (rwx - leitura, escrita e execuo) para selecionar o tipo de operao que um determinado usurio, ou grupo de usurios, pode efetuar sobre um dispositivo particular. Tratamento de erros: O software de E/S deve ser capaz de tratar erros, informando camada superior o sucesso ou o fracasso de uma operao. Erros transientes como impossibilidade de transmisso por overflow em buffers podem implicar apenas uma nova tentativa e no no trmino do processo requisitante. Entrada e sada nvel de usurio O usurio v os perifricos atravs dos aplicativos e das linguagens de programao que ele utiliza. No caso de um editor de textos, por exemplo, as operaes de leitura e escrita dos registros do arquivo editado ficam invisveis, sendo feitas automaticamente pelo aplicativo. No caso de uma linguagem de programao, o usurio escreve comandos de E/S de alto nvel (por exemplo, a funo printf() da linguagem C para realizar sada formatada de dados), os quais so traduzidos para um cdigo que contm chamadas para AMBIENTES OPERACIONAIS Prof. Simo Toscani p.6 Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

E/S independente do dispositivo Interface padro para drivers de dispositivos (API) driver SCSI driver EIDE driver floppy driver rede driver teclado

Hardware

Figura 5.1 Estrutura em camadas do subsistema de E/S. Para fornecer esta viso uniforme, os dispositivos de E/S so classificados em duas grandes categorias, de acordo com a unidade de transferncia de dados, que pode ser bloco ou caractere (byte). Em um dispositivo orientado a bloco (block devices), o armazenamento de dados e a transferncia so realizados atravs de blocos de tamanho fixo. Tipicamente, o tamanho de um bloco varia entre 512 bytes e 32 kbytes. As unidades de disco so o exemplo mais comum de dispositivos orientados a bloco. Os dispositivos orientados a caractere (character devices) realizam as transferncias byte a byte, a partir de um fluxo de caracteres, sem necessidade de considerar uma estrutura qualquer. As portas seriais so exemplos de dispositivos orientados a caractere. Essa classificao, entretanto, no completamente adequada, pois nem todos os dispositivos de E/S podem ser enquadrados em um desses dois grupos. Os temporizadores (relgios) e monitores de vdeo so exemplos de dispositivos que no se enquadram em nenhuma dessas categorias. Existe ainda um outro tipo de dispositivo denominado pseudo-dispositivo (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 para o tratamento de dispositivos. dessa forma, por exemplo, que o sistema UNIX permite o acesso memria principal como se fosse um disco (ramdisk), ou ainda o emprego do dispositivo nulo (/dev/null) para descartar dados. E/S independente do dispositivo Pode-se dizer que a camada dos drivers a camada dependente dos dispositivos, j que nela esto as funes diretamente ligadas ao hardware dos dispositivos. A camada acima usa apenas a interface abstrata ou virtual (padronizada e mais amigvel) provida pelos drivers e, como tal, pode ser considerada independente de dispositivo. A camada independente de dispositivo implementa funes genricas (no sentido de valer para qualquer dispositivo) e servios gerais de E/S, importantes para o AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.5

rotinas de uma biblioteca de E/S. O fabricante do compilador responsvel por fornecer uma biblioteca de E/S para cada sistema em que seu compilador v ser utilizado. As funes dessa biblioteca contm as chamadas para o SO. As bibliotecas so fornecidas na forma de um mdulo objeto (relocvel), o qual ligado com o programa do usurio para compor o executvel. importante notar que as bibliotecas de E/S no fazem parte do SO, pois elas so associadas s linguagens de programao e/ou aos aplicativos de desenvolvimento. 5.3 Dispositivos perifricos tpicos

Existem atualmente uma grande gama de dispositivos perifricos que possibilitam a comunicao do homem com o computador e entre computadores. A seguir sero abordados apenas os dispositivos mais importantes e/ou comuns em computadores (disco, vdeo, teclado e rede). Na perspectiva do SO, o perifrico mais importante o disco magntico, principalmente o disco rgido. Ele desempenha um papel fundamental em diversos aspectos do SO, servindo para desde o simples armazenamento de dados at a implementao de mecanismos complexos como a memria virtual. Discos rgidos Os discos rgidos so dispositivos capazes de armazenar grande volume de dados. O atual estado tecnolgico permite a construo de discos magnticos de vrios gigabytes a um baixo custo, sendo encontrados em qualquer computador de uso pessoal. A unidade de disco (ver figura 5.2) contm um conjunto de discos metlicos (ao ou alumnio) superpostos, que giram em torno de um eixo central (spindle). A tecnologia atual permite superpor at 8 discos. As duas superfcies de cada disco so recobertas por uma pelcula magntica na qual os dados so gravados. O eixo gira a uma rotao constante (3600 rpm, por exemplo). Os cabeotes de leitura/gravao (um para cada superfcie de disco) realizam movimentos de vai-e-vem e podem se deslocar desde a borda do disco at o centro. Graas ao movimento de rotao dos discos e ao movimento retilneo dos cabeotes, toda a superfcie de cada disco pode ser alcanada por seu respectivo cabeote. Cada superfcie dividida em circunferncias concntricas denominadas trilhas (tracks), as quais so divididas radialmente em unidades chamadas setores (sectors). Todos os setores tem o mesmo tamanho, o qual varia entre 512 a 4096 bytes (sendo mais comum 512). O setor constitui a unidade mnima de leitura e gravao em um disco. O conjunto de trilhas de todas as superfcies que ficam exatamente mesma distncia do eixo central forma o cilindro (cylinder). A definio das trilhas e setores de um disco chama-se formatao fsica e um procedimento realizado pelo fabricante. fcil observar que, sendo divises radiais do disco, os setores correspondentes s trilhas mais externas so mais longos que os setores de trilhas mais internas. Como, em princpio, os setores armazenam a mesma quantidade de dados, a densidade de gravao nos setores externos menor que no setores internos.

Figura 5.2 - Organizao fsica do disco magntico. Para acessar dados no disco, necessrio informar, ao controlador, o cilindro, a superfcie e o setor a ser acessado. Esse mtodo de acesso denominado CHS (Cylinder, Head, Sector). Outra maneira consiste em enxergar o disco como um conjunto de blocos, formados por um ou mais setores. Neste caso, informado o nmero do bloco a acessar e este convertido no endereo fsico CHS (cilindro, superfcie, setor) por um procedimento que se denomina de LBA (Linear Block Addressing). Outros termos bastante comuns associados a discos rgidos so formatao lgica e parties. Ambos os conceitos esto mais relacionados com o sistema de arquivos do que com o disco propriamente dito. A formatao lgica consiste em gravar informaes no disco de forma que 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. Tempo de acesso Para realizar um acesso a um disco rgido, necessrio posicionar o cabeote de leitura/escrita no setor onde o dado ser lido ou escrito. Considerando a organizao de um disco, esse procedimento de posicionamento implica um certo tempo: o tempo de acesso. Esse tempo formado por trs parcelas:

access

= t seek + t latency + t transfer

Seek time (tseek): o tempo necessrio para deslocar os cabeotes at o cilindro onde est a trilha a ser acessada; a seleo da trilha (cabeote) feita eletrnicamente, em tempo zero. Latency time (tlatency): o tempo necessrio para o cabeote se posicionar no incio do setor a ser lido ou escrito. Esse tempo tambm denominado de atraso rotacional (rotational delay). AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada


(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.7

p.8

Transfer time (ttransfer): o tempo necessrio para realizar a transferncia dos dados (leitura ou a escrita dos dados). O tempo predominante o tempo de seek. Por essa razo, alguns discos antigos possuam um sistema com cabeotes fixos, um para cada trilha do disco. 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 do disco. Suponha que se deseja ler os setores 4 e 5 de uma determinada trilha. O SO envia ao controlador de disco o comando para ler o setor 4. Aps o seek apropriado, o cabeote passa sobre o setor 4, e a transferncia ocorre. Quando o cabeote sai do setor 4, os dados so transferidos do buffer do controlador para a memria, provocando uma interrupo no processador para informar o trmino da leitura do setor 4. Nesse momento, o processador (via SO) envia um novo comando de leitura, dessa vez para o setor 5. Um novo seek no ser necessrio, pois o cabeote j se encontra sobre o cilindro desejado. Entretanto, devido rotao do disco, o cabeote 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. A forma usual para evitar esse problema realizar um entrelaamento dos setores (interleaving). Essa tcnica numera os setores no mais de forma contgua mas sim com um espao entre eles. O disco 2 da Figura 5.3 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 nessa figura possui um fator de entrelaamento igual a zero. Voltando ao exemplo no qual os setores 4 e 5 so lidos, mas agora considerando um entrelaamento de 2, aps o cabeote sair do setor 4, ele passa sobre os setores 15 e 10 antes de chegar no incio do setor 5. Desta forma, quando o processador mandar o comando de leitura do setor 5, este no ter passado ainda sob o cabeote. O melhor fator de entrelaamento para uma determinado disco depende da velocidade do processador, do barramento, do controlador e da velocidade de rotao do disco.
Disco 1 Fator de entrelaamento = 0 15 14 13 12 11 10 9 8 7 6 5 0 1 2 3 4 4 9 14 3 8 13 2 7 15 10 Disco 2 Fator de entrelaamento = 2 5 0 11 6 1 12

multiprogramado. Uma operao de E/S em disco envolve uma chamada de sistema e a especificao de uma srie de parmetros: tipo de operao (leitura ou escrita), nmero de bytes a serem transferidos, endereo de memria (buffer) e endereo no disco. No caso de um sistema multiprogramado, pode-se ter vrios processos realizando simultaneamente pedidos desse tipo e sendo bloqueados at que a operao seja realizada. O problema do escalonador do disco consiste em ordenar e atender os pedidos de E/S, de forma a realizar um bom atendimento, buscando minimizar o tempo em que processos permanecem bloqueados. O tempo necessrio a uma operao de E/S em disco tem como principal componente o tempo de seek. Nos algoritmos de escalonamento apresentados a seguir, todos eles, com exceo do FCFS (ou FIFO), se preocupam em atender os pedidos de forma a minimizar o tempo mdio de seek. FCFS (First Come First Served): o algoritmo de escalonamento mais simples. As solicitaes de acesso so atendidas na ordem em que os pedidos so feitos. SSTF (Shortest Seek Time First): O prximo pedido a ser atendido aquele que se refere ao cilindro mais prximo do cilindro atual (isto , aquele que envolve a menor movimentao do brao do disco). Novos pedidos so ordenados em relao ao cilindro atual, usando uma lista duplamente encadeada. Como sempre selecionado o pedido correspondente ao cilindro mais prximo, pode ocorrer postergao indefinida (starvation) de um pedido que refere um cilindro distante. SCAN: Esse algoritmo uma variao do SSTF. Ele se diferencia por estipular um sentido preferencial para o movimento do cabeote, como por exemplo, do cilindro mais externo para o mais interno. O algoritmo SCAN opera da seguinte maneira: enquanto restam pedidos no sentido corrente, o brao do disco continua se movendo nesse sentido, atendendo os pedidos (correspondentes aos cilindros) mais prximos; se no h mais pedido no sentido corrente (possivelmente porque o fim da superfcie foi atingido), ento o disco inverte o sentido do brao e se inicia uma varredura no sentido inverso. O comportamento do algoritmo SCAN similar ao de um elevador (por isso ele tambm denominado algoritmo do elevador). Sua vantagem eliminar a possibilidade de starvation. C-SCAN (Circular SCAN): Neste algoritmo os pedidos so atendidos em um s sentido da varredura, por exemplo, do cilindro mais externo para o mais interno. O C-SCAN elimina o seguinte defeito do algoritmo SCAN: imediatamente aps inverter a varredura, o SCAN privilegia os pedidos correspondentes aos cilindros recm servidos e, por conseqncia, os pedidos dos cilindros do outro extremo da varredura mais antigos devem esperar. Muitos fatores influem no desempenho de um algoritmo de escalonamento de disco, entre eles o nmero de pedidos (carga), a organizao dos arquivos e a estrutura de diretrios do disco. Por essa razo, para facilitar a adequao do algoritmo de escalonamento a um sistema especfico, este componente um mdulo a parte do SO. Para discos que no apresentam carga de trabalho elevada (por exemplo, CD-ROM e ZIP disk), o algoritmo de escalonamento do tipo FCFS. AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

Figura 5.3 - Trilha com 16 setores e diferentes fatores de entrelaamento. Escalonamento de disco Como se sabe, uma das principais funes do SO gerenciar os recursos do sistema de forma eficaz. Por outro lado, o disco rgido um dos principais recursos de um sistema AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.9

p.10

Vdeo O funcionamento desse dispositivo pode ser melhor entendido considerando as unidades de vdeo antigas. Os primeiros terminais de vdeo eram formados por um teclado e um monitor cuja tela era organizada em uma matriz composta por 40 linhas e 80 colunas, na qual cada elemento correspondia a um caractere. Os caracteres, por sua vez, eram armazenados em uma memria de vdeo, cujas posies correspondiam a elementos dessa matriz. Na realidade, a cada elemento da matriz eram associados dois bytes: um que correspondia ao cdigo ASCII do caractere, e outro ao atributo (fundo invertido, piscando, etc). Devido a essa caracterstica, esse tipo de terminal denominado de memria mapeada. Alguns desses terminais ainda eram ditos inteligentes, pois eram capazes de aceitar seqncias de comandos como movimentar e posicionar o cursor, limpar a tela, executar rolamento de tela (scroll). Internamente, o terminal possuia um controlador de vdeo e um controlador de comunicao serial. Embora hoje em dia a realidade seja outra, o princpio continua o mesmo. A diferena dos vdeos atuais est em dois pontos. O primeiro que o controlador de vdeo integrado na placa me do computador, ou interconectado diretamente no barramento do computador atravs de uma interface de vdeo. Isto aumenta consideravelmente a interao entre vdeo, processador e outros dispositivos de E/S. O segundo a adio de capacidades grficas aos vdeos. Os vdeos continuam com a mesma estrutura de seus ancestrais, isto , o vdeo ainda visto como uma matriz de linhas e de colunas, entretanto essa matriz pode ser acessada de dois modos diferentes: texto ou grfico. No modo texto, o vdeo organizado em uma matriz de caracteres e as posies da memria de video correspondem a caracteres e seus atributos. No modo grfico, a matriz organizada em pixels; cada pixel tem associada uma srie de posies de memria correspondentes a suas cores. A memria de vdeo determina a 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 do controlador (EGA, VGA, SVGA, etc). O driver de terminal (vdeo) continua com a mesma funo bsica do incio da era dos terminais: programar o controlador de vdeo. Essa programao consiste essencialmente em determinar a memria de vdeo disponvel, o modo de operao (texto ou grfico), freqncias para a varredura horizontal e vertical, etc. Os ambientes grficos X-windows, gnome, KDE, etc., constituem uma aplicao que intercepta e processa as informaes provenientes do driver de teclado e do mouse. Esses ambientes constrem imagens na memria de vdeo e enviam comandos para o controlador de vdeo de forma a termos a realimentao visual que estamos acostumados a ver. As placas aceleradoras e 3D, bastante em moda atualmente, tambm seguem esse mesmo princpio. A diferena est no fato de que o controlador de vdeo mais potente e realiza por hardware uma srie de funes bastante comuns em efeitos de animaes e de desenho. No caso especfico de uma placa 3D, existe um potente processador grfico capaz de efetuar operaes de visualizao como perspectiva, iluminao, etc., bastando apenas, para isso que a aplicao fornea um comando. Teclado O teclado o principal perifrico de entrada, utilizado na interao direta dos usurios com o computador. O princpio de operao do teclado bastante simples: gerar um smbolo para cada tecla pressionada. Mecanicamente, um teclado pode ser visto como AMBIENTES OPERACIONAIS Prof. Simo Toscani p.11 Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

uma matriz de i linhas e j colunas as quais entram em contato quando uma tecla pressionada. A cada elemento i,j da matriz corresponde um caractere (tecla). Quando uma tecla pressionada, o teclado identifica a linha e a coluna associadas a essa tecla e gera um cdigo denominado scan code (cdigo de varredura), o qual colocado no registrador de dados da interface do teclado. Alm disso, gera uma interrupo o que ocasiona a execuo do tratador de interrupes do teclado. O tratador l o registrador de dados para recuperar o scan code da tecla pressionada. Com base no scan code, o tratador consulta uma tabela interna, substituindo o scan code pelo cdigo ASCII correspondente tecla pressionada. O cdigo ASCII, em seguida, armazenado em uma regio especial da memria (buffer de teclado) de onde poder ser recuperado por chamadas do SO. A leitura de caracteres disponibilizada ao usurio final atravs de rotinas de biblioteca do tipo getc(), da linguagem C. Alguns detalhes foram omitidos na descrio acima, pois nosso objetivo dar apenas uma viso geral do funcionamento do teclado. Na verdade, para cada tecla, so geradas duas interrupes (com scan code diferentes), uma para indicar o pressionar da tecla e outra para sinalizar que a tecla foi liberada. Lembre que a tecla shift, por exemplo, fica pressionada enquanto se digita uma letra maiscula. Ns, usurios, queremos visualizar os caracteres que digitamos na tela de nosso computador. Esse procedimento de ler dados do teclado e escrev-los na tela denominase ecoamento. Outra caracterstica bastante comum na utilizao de computadores a possibilidade de abrir vrias janelas. Nesse caso, os caracteres digitados devem ser direcionados janela correta. Esse direcionamento feito atravs do conceito de janela ativa e da interao entre o driver de teclado e o driver de vdeo sobre o buffer de teclado. Rede Uma rede pode ser genericamente definida como um conjunto de computadores interconectados de forma a compartilhar recursos comuns: discos, impressoras, arquivos, etc. A forma mais simples de rede uma rede ponto a ponto, na qual dois computadores podem ser interligados diretamente atravs de suas interfaces paralelas e seriais padres. Entretanto, o que se convenciona denominar de rede supe o emprego de um hardware especial a interface de rede que prov a interconexo de vrias mquinas segundo uma tecnologia especfica. A tecnologia empregada pelo hardware da interface, ethernet ou ATM, por exemplo, determina como fisicamente os dados sero transmitidos, a velocidade de transmisso, a capacidade de transmitir e receber ao mesmo tempo (full duplex), entre outras. Independente da tecnologia e dos aspectos fsicos ligados transmisso/recepo, o software de gerenciamento deve tratar de problemas similares. 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 os dados a serem transmitidos, ou recebidos, so armazenados. Algumas placas de rede possuem um processador dedicado a essa funo (o controlador de rede). 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 AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada
(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.12

abstraes; por isso, normalmente ele organizado em camadas (voc j deve ter ouvido falar no modelo OSI/ISO). Para apresentar um pouco o grau de dificuldade e os problemas a serem gerenciados por um software de rede, vamos examinar o caminho seguido por uma mensagem. Vamos considerar que um processo A quer enviar uma mensagem para um processo B em uma mquina remota. A quantidade de bytes dessa mensagem pode ser maior que a quantidade mxima permitida fisicamente para transmisso. Essa quantidade depende da tecnologia de rede empregada. Cada tipo de rede suporta o que se denomina de MTU (Maximum Transfer Unit). Se nossa mensagem maior que o MTU, ela deve ser dividida em pedaos (pacotes) de tamanho mximo igual a MTU. A primeira tarefa do software do lado remetente realizar essa quebra da mensagem original. Esse processo denomina-se fragmentao. Ao final da transmisso de cada pacote, uma interrupo gerada pela placa de rede para sinalizar esse evento e indicar que ela est pronta para enviar outro pacote. No outro extremo, a mquina do processo B, recebe os pacotes. Para cada pacote recebido gerada uma interrupo. Esta interrupo tem por objetivo transferir este pacote para um buffer maior e reconstruir com os pacotes a mensagem original. Aqui surge outro problema. Como o driver de rede identifica que estes dados so para o processo B e no para um outro processo C? Pior ainda, como ele no mistura estes pacotes? Uma soluo criar canais lgicos entre os processos. Desta forma o software de rede antes de comear a enviar/receber dados deve estabelecer uma conexo (canal lgico) entre os dois processos que desejam comunicar. Este canal lgico identificar ento os pares. O driver de rede estando consciente dos canais poder redirecionar os pacotes recebidos para um, ou para outro canal. Esse cenrio, entretanto, simplificado, pois ele no considera a ocorrncia de erros. Os pacotes podem ser perdidos, ou por erros de transmisso no meio fsico, ou por falta de espao no buffer do destinatrio. Pacotes podem ainda ser invertidos, isto , o pacote i+1 pode chegar antes do pacote i. Isto pode ocorrer quando, devido a um erro, um pacote i retransmitido, enquanto o i+1 foi recebido corretamente, ou ainda quando o pacote i+1 utiliza um caminho mais curto que o pacote i (roteamento). O destinatrio deve ento ser responsvel por contar e por sinalizar ao remetente a perda de pacotes. Ele deve ainda ser capaz de ordenar os pacotes recebidos. Todos esses procedimentos e muitos outros so gerenciados pelo que se denomina de protocolo. Um exemplo bastante conhecido de protocolos a famlia TCP/IP, pois toda a Internet est baseada nessa famlia. Os problemas mencionados acima, entre outros, so tratados pela implementao de protocolos, os quais so organizados em nveis (camadas). No nvel mais baixo, esto as placas de rede; no mais alto, a aplicao do usurio.

Exerccios
1) Mostre como a tcnica de interleaving (entrelaamento) utilizada em discos e para que ela serve. 2) Descreva o funcionamento da otimizao de seek em acesso a disco quando o algoritmo SSTF (shortest seek time first - menor seek primeiro) utilizado. 4) Descreva o funcionamento da otimizao de seek em acesso a disco quando o algoritmo SCAN (elevador) utilizado. 5) Considere que um disco tenha 100 cilindros (numerados de 0 a 99), que o brao do disco esteja posicionado no cilindro 0 (mais externo), que o tempo atual seja 0, que uma operao de E/S demore (10+d) u.t. (unidades de tempo), onde d a distncia percorrida pelo brao1 e que ocorra a seqncia de pedidos de acesso mostrada abaixo. (a) Preencha a segunda coluna com o tempo no qual ser atendido cada pedido, considerando o algoritmo SSTF; (b) Preencha a terceira coluna com o tempo no qual ser atendido cada pedido, considerando o algoritmo SCAN.
tempo 0 10 15 25 30 35 45 55 Pedido cilindro 30 20 50 40 35 30 10 70 Atendimento SSTF 0 40 Atendimento SCAN 0 40

40 50

A distncia entre os cilindros a e b dada por |b-a|.

AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada


(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.13

AMBIENTES OPERACIONAIS Prof. Simo Toscani Gerncia de Entrada e Sada


(Do livro Sistemas Operacionais, Oliveira R., Carissimi A. e Toscani S., Ed. Sagra-Luzzatto, 2004)

p.14

Você também pode gostar