Sei sulla pagina 1di 7

Gerncia de Dispositivos

Caro aluno, Esta a stima aula. Seu contedo a Gerncia de Dispositivos em Sistemas Operacionais. Este captulo contm os conceitos bsicos para o entendimento de como funcionam a entrada e sada dos dispositivos no Sistema Operacional. Bom estudo!

1.1.

Introduo

A gerncia de dispositivos de entrada/sada uma das principais e mais complexas funes de um sistema operacional. Sua implementao estruturada por meio de camadas, em um modelo semelhante ao apresentado para o sistema operacional como um todo. As camadas de mais baixo nvel escondem caractersticas dos dispositivos das camadas superiores, oferecendo uma interface simples e confivel. Observe na figura a seguir o modo como se estrutura e funciona essa atividade de gerenciamento.

Processo

Modo Usurio

Operaes de E/ S

SOFTWARE

Sistema de Arquivos

Independente do dispositivo (a)

Modo Kernel

Subsistema de E/ S

Device Drivers Dependente do dispositivo (b)

HARDWARE

Controladores

Dispositivos de E/ S

Figura 01: Gerncia de dispositivos


Fonte: Machado e Maia, 2004. Adaptao.

A diversidade dos dispositivos de E/S exige que o sistema operacional implemente uma camada, chamada de subsistema de E/S, com a funo de isolar a complexidade dos dispositivos da camada de sistema de arquivos e da aplicao. Dessa forma, possvel ao sistema operacional ser flexvel, permitindo a comunicao dos processos com qualquer tipo de perifrico. Aspectos como velocidade de operao, unidade de transferncia, representao dos dados, tipos de operaes e demais detalhes de cada perifrico so tratados pela camada de device driver, oferecendo uma interface uniforme entre o subsistema de E/S e todos os dispositivos. As camadas so divididas em dois grupos: o primeiro visualiza os diversos tipos de dispositivos do sistema de um modo nico (Figura 01), enquanto o segundo especfico para cada dispositivo (Figura 01). A maior parte das camadas trabalha de forma independente do dispositivo.

1.2.

Acesso ao subsistema de entrada e sada


O sistema operacional deve tornar as operaes de E/S o mais simples possvel para o usurio e para as aplicaes. A fim de que isso acontea, o sistema possui um conjunto de rotinas que possibilita a comunicao com qualquer dispositivo que possa ser conectado ao computador. Esse conjunto de rotinas, denominado rotinas de entrada/sada faz parte do subsistema de E/S e permite ao usurio realizar operaes de E/S, sem se preocupar com detalhes do dispositivo que est sendo acessado. Nesse caso, quando um usurio cria um arquivo em disco, no lhe interessa como a formatao do disco, nem em que trilha ou setor o arquivo ser gravado.

As operaes de E/S devem ser realizadas por meio de system calls (chamadas de sistemas) que chamam as rotinas de E/S do ncleo do sistema operacional. Dessa forma, possvel escrever um programa que manipule arquivos, estejam eles em disquetes, discos rgidos ou fita magntica, sem ter que alterar o cdigo para cada tipo de dispositivo. As system calls responsveis por essa comunicao so denominadas system calls de E/S. A maneira mais simples de se ter acesso a um dispositivo por meio de comandos de leitura/gravao e chamadas a bibliotecas de rotinas oferecidas por linguagens de alto nvel, como Pascal ou C. A comunicao entre os comandos de E/S, oferecidos pelas linguagens de programao de alto nvel e as system calls de E/S feita simplesmente por meio de passagem de parmetros. O relacionamento entre o comando e a system call criado na gerao do cdigo executvel do programa. Uma outra forma de acessar um dispositivo pelo system call diretamente do cdigo em alto nvel. A maioria dos sistemas operacionais disponibiliza esta facilidade. Um dos objetivos principais das system calls de E/S simplificar a interface entre as aplicaes e os dispositivos. Com isso, elimina-se a necessidade de duplicao de rotinas idnticas nos diversos aplicativos, alm de esconder do programador caractersticas especficas associadas programao de cada dispositivo. A Figura 02 ilustra a comunicao entre aplicao e dispositivos de maneira simplificada.

Aplicao

Comandos de E/ S

Bibliotecas

System calls de E/ S

Rotinas de E/ S

Device drivers

Dispositivos de E/ S

Figura 02: Operaes de entrada/sada


Fonte: Machado e Maia, 2004. Adaptao.

As operaes de E/S podem ser classificadas conforme o seu sincronismo. Uma operao dita sncrona, quando o processo que realizou a operao fica aguardando no estado de espera pelo seu trmino. A maioria dos comandos das linguagens de alto nvel funciona dessa forma. Uma operao dita assncrona quando o processo que realizou a operao no aguarda pelo seu trmino e continua pronto para ser executado. Nesse caso, o sistema deve oferecer algum mecanismo de sinalizao que avise ao processo que a operao foi terminada.

1.3.

Subsistema de Entrada e Sada


O subsistema de entrada e sada responsvel pela realizao das funes comuns a todos os tipos de dispositivos, ficando os aspectos especficos de cada perifrico como responsabilidade dos device drivers. Dessa forma, o subsistema de E/S a parte do sistema operacional que oferece uma interface uniforme com as camadas superiores.

Cada dispositivo trabalha com unidades de informao de tamanhos diferentes, como caracteres ou blocos. O subsistema de E/S responsvel por criar uma unidade lgica de transferncia independente do dispositivo e repass-la para os nveis superiores, sem o conhecimento do contedo da informao. No caso de a camada superior ser o sistema de arquivos, essa informao poder ser interpretada como um registro lgico de um arquivo, devendo obedecer a uma certa organizao e a um mtodo de acesso estabelecidos. Normalmente, o tratamento de erros nas operaes de E/S realizado pelas camadas mais prximas ao hardware. Existem, porm, certos erros que podem ser tratados e reportados de maneira uniforme pelo sistema de arquivos, independentemente do dispositivo. Erros como a gravao em dispositivos de entrada, leitura em dispositivos de sada e operaes em dispositivos inexistentes podem ser tratados nesse nvel.

Todos os dispositivos de E/S so controlados, com o objetivo de se obter, de forma segura e confivel, o maior compartilhamento possvel entre os diversos usurios. Alguns dispositivos, como os discos, podem ser compartilhados, simultaneamente, entre diversos usurios, sendo o sistema operacional responsvel pela integridade dos dados acessados. Outros, como as impressoras, devem ter acesso exclusivo, e o sistema deve controlar seu compartilhamento de forma organizada. O subsistema de E/S responsvel tambm por implementar todo um mecanismo de proteo de acesso aos dispositivos. No momento em que o usurio realiza uma operao de E/S, verificado se o seu processo possui permisso para realizar tal operao. A bufferizao outra tarefa realizada por esse subsistema. Essa tcnica permite reduzir o nmero de operaes de E/S, utilizando uma rea de memria intermediria chamada de buffer . Por exemplo, quando um dado lido do disco, o sistema traz para a rea de buffer no s o dado solicitado, mas um bloco de dados. Caso haja uma solicitao de leitura de um novo dado que pertena ao bloco anteriormente lido, no existe a necessidade de uma nova operao de E/S, melhorando, dessa forma, a eficincia do sistema. Uma das principais funes do subsistema de E/S criar uma interface padronizada com os device drivers). Sempre que um novo dispositivo instalado no computador, necessrio que um novo driver seja adicionado ao sistema. O subsistema de E/S deve oferecer uma interface padronizada que permita a incluso de novos drivers sem a necessidade de alterao da camada de subsistema de E/S.

1.4.

Device Drivers
O device driver, ou somente driver, tem como funo implementar a comunicao do subsistema de E/S com os dispositivos, por meio de controladores. Enquanto o subsistema de E/S trata de funes ligadas a todos os dispositivos, os drivers tratam apenas dos seus aspectos particulares.

Os drivers tm como funo receber comandos gerais sobre acessos aos dispositivos e traduzi-los para comandos especficos, que podero ser executados pelos controladores. Cada device driver manipula somente um tipo de dispositivo ou grupo de dispositivos semelhantes. Normalmente, um sistema possui diferentes drivers, como drivers para disco, fita magntica, rede e vdeo. J houve situao em que voc j tentou utilizar algum dispositivo (como impressora, scanner, webcam, placa de vdeo ou de rede, etc.) e no conseguiu porque o device driver no estava instalado?

Processo

Subsistema de E/ S

Driver de Impressora

Driver de Disco

Driver de Fita

Figura 03: Device drivers


Fonte: Machado e Maia, 2004. Adaptao.

O driver est integrado diretamente s funes do controlador, sendo o componente do sistema que reconhece as caractersticas particulares do funcionamento de cada dispositivo de E/S, como nmero de registradores do controlador, funcionamento e comandos do dispositivo. Sua funo principal receber comandos abstratos do subsistema de E/S e traduzi-los para comandos que o controlador possa entender e executar. Alm disso, o driver pode realizar outras funes, como a inicializao do dispositivo e seu gerenciamento. Por exemplo, na leitura sncrona de um dado em disco, o driver recebe a solicitao de leitura de um determinado bloco e informa ao controlador o disco, cilindro, trilha e setor em que o bloco se localiza, iniciando, dessa forma, a operao (Figura). Enquanto se realiza a leitura, o processo que solicitou a operao colocado no estado de espera at que o controlador avise a UCP do trmino da operao atravs de uma interrupo que, por sua vez, ativa novamente o device driver. Aps verificar a inexistncia de erros, o device driver transfere as informaes para a camada superior. Com os dados disponveis, o processo pode ser retirado do estado de espera e retornar ao estado de pronto para continuar seu processamento.

Rotina de E/ S

Ler bloco n

Driver de Disco

Ler setor x

Controlador de Disco

Discos

Figura 04: Driver de disco


Fonte: Machado e Maia, 2004. Adaptao.

Os device drivers fazem parte do ncleo do sistema operacional, sendo escritos geralmente em linguagem Assembly. Como os drivers so cdigos reentrantes que executam em modo kernel, qualquer erro de programao pode comprometer por completo o funcionamento do sistema. Por isso, um device driver deve ser cuidadosamente desenvolvido e testado.

Devido ao alto grau de dependncia entre os drivers e o restante do ncleo do sistema, os fabricantes desenvolvem, para um mesmo dispositivo, diferentes device drivers, um para cada sistema operacional. Sempre que um novo dispositivo instalado, o driver do dispositivo deve ser adicionado ao ncleo do sistema. Nos sistemas mais antigos, a incluso de um novo driver significava a recompilao do kernel, uma operao complexa e que exigia a reinicializao do sistema. Atualmente, alguns sistemas permitem a fcil instalao de novos drivers, sem a necessidade de reinicializao.

Atividades
1. 2. 3. 4. 5. 6. Explique o modelo de camadas aplicado na gerncia de dispositivos. Qual a principal finalidade das rotinas de E/S? Quais as diferentes formas de um programa chamar rotinas de E/S? Quais as principais funes do subsistema de E/S? Qual a principal funo de um device driver? Por que o sistema de E/S deve criar uma interface padronizada com os device drivers?
[1]MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007. [2]SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos de Sistemas Operacionais. 6.ed. LTC, 2004. [3]TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed. Pearson Brasil, 2007. [4]OLIVEIRA, R.S., CARISSIMI, A.S., TOSCANI, S.S. Sistemas Operacionais. 3.ed. Sagra-Luzzato. 2004. [5]SIMES, SERGIO NERY. Sistemas Operacionais I.1 ed. CEFETES, 2008.

___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

Potrebbero piacerti anche