Você está na página 1de 12

1

6 - Gerncia de Dispositivos

6.1 Introduo

A gerncia de dispositivos de entrada/sada uma das principais e mais


complexas funes do sistema operacional. Sua implementao estruturada
atravs de camadas de um modelo semelhante ao apresentado para o sistema
operacional, utilizando o conceito de mquina de nveis. As camadas de mais
baixo nvel escondem caractersticas das camadas superiores, oferecendo uma
interface simples e confivel ao usurio e suas aplicaes.

Processo

Operaes de E/ S
Modo Usurio

Sistema Independente
SOFTWARE

de Arquivos do dispositivo
(a)

Subsistema de E/ S
Modo Kernel

Device Drivers

Dependente
do dispositivo
(b)
HARDWARE

Controladores

Dispositivos de E/ S

Figura 6.1 Gerncia de Dispositivos


2

A diversidade de 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 sistemas de arquivo 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 de dados, tipos de operaes e demais detalhes de cada um
dos perifricos 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, onde o primeiro grupo
visualiza os diversos tipos de dispositivos do sistema de um modo nico,
enquanto o segundo especfico para cada dispositivo. A maior parte das
camadas trabalha de forma independente do dispositivo.

6.2 Acesso ao Subsistema de Entrada e Sada

O sistema possui um conjunto de rotinas que possibilita a comunicao


com qualquer dispositivo que possa ser conectado ao computador. Esse
conjunto de rotinas, denominando 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.
As operaes de E/S devem ser realizadas atravs de system calls que
chamam as rotinas de E/S do kernel do sistema operacional. Dessa forma,
possvel escrever um programa que manipule arquivos, estejam eles em
disquetes, discos rgidos ou qualquer outro dispositivo, sem ter que alterar o
cdigo para cada tipo de dispositivo. As system calls responsveis por essa
comunicao so denominadas system calls de entrada/sada.
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
atravs de passagem de parmetros, como caminho para o arquivo e tipo de
operao (leitura ou escrita). O relacionamento entre o comando e a system
call criado na gerao do cdigo executvel do programa, ou seja, pelo
compilador.
3

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.

Aplicao

Comandos
de E/ S Bibliotecas

System calls de E/ S

Rotinas de E/ S

Device driver s

Dispositivos de E/ S

Figura 6.2 Operaes de Entrada/Sada

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 desta forma. Uma operao
dita assncrona quando o processo que realizou a operao no aguarda pelo
seu trmino e continua pronto para ser executado. Neste caso, o sistema deve
4

oferecer algum mecanismo de sinalizao que avise ao processo que a


operao foi terminada, como uma interrupo por exemplo.

6.3 Subsistema de Entrada e Sada

O subsistema de entrada e sada responsvel por realizar as funes


comuns a todos os tipos de dispositivos, ficando os aspectos especficos de
cada perifrico como responsabilidade dos 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
repassa-la para os nveis superiores, sem o conhecimento do contedo da
informao.
Normalmente, o tratamento de erros nas operaes de E/S realizado
pelas camadas mais prximas ao hardware.
Todos os dispositivos de E/S so controlados, com o objetivo de obter o
maior compartilhamento possvel entre os diversos usurios de forma segura e
confivel. Alguns dispositivos como os discos, podem ser compartilhados,
simultaneamente, entre os diversos usurios, sendo o sistema operacional
responsvel pela integridade dos dados acessados. Outros como as
impressoras, devem ter acesso exclusivo, e o sistema operacional deve
controlar o 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 solicita a realizao de uma operao de E/S, verificado se o seu
processo possui permisso para realizar a 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.
Uma das principais funes do subsistema de E/S criar uma interface
padronizada com os device drivers. Sempre que um novo dispositivo
5

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.

6.4 Device Drivers

O device driver ou apenas driver tem como funo implementar a


comunicao do subsistema de E/S com os dispositivos, atravs 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 em comandos especficos para aquele dispositivo
em questo. Cada driver manipula somente um tipo de dispositivo ou grupos de
dispositivos semelhantes.

Processo

Sub sistema de E/ S

Driver de Dr iver d e Driver de


Impressora Disco Fita

Figura 6.3 Device Drivers


6

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 o nmero de registradores do
controlador, funcionamento e comandos especficos. Sua funo principal
receber os 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.

Ler bloco n Ler setor x


Rotina Driver Controlador
de E/ S de Disco de Disco

Discos

Figura 6.4 Driver de Disco

Os drivers fazem parte do ncleo do sistema operacional, sendo escritos


geralmente em assembly. Como os drivers so cdigos reentrantes que
executam em modo kernel, qualquer erro de programao pode comprometer o
funcionamento do sistema. Por isso, um driver deve ser cuidadosamente
desenvolvido e testado.
7

Figura 6.5 Gerenciador de Dispositivos do Windows 7

Devido ao alto grau de dependncia entre os drivers e o restante do


kernel do sistema, os fabricantes desenvolvem, para um mesmo dispositivo,
diferentes drivers, uma para cada arquitetura de processador (32 ou 64bits),
um para cada sistema operacional, inclusive para verses diferentes. Sempre
que um novo dispositivo instalado, o driver do dispositivo deve ser adicionado
ao kernel do sistema. Nos sistemas mais antigos, a incluso de um novo driver
significava a recompilao do kernel, uma operao complexa que exigia a
reinicializao do sistema. Atualmente, os sistemas operacionais permitem a
fcil instalao de novos drivers, sendo os drivers carregados dinamicamente,
sem a necessidade de reinicializao, alguns sistemas permitem at mesmo a
instalao fsica de dispositivos com o computador ligado (HOT SWAP ou HOT
PLUG).
8

6.5 Controladores

Os controladores so componentes de hardware responsveis por


manipular diretamente os dispositivos de E/S. O sistema operacional, mais
exatamente o driver, comunica-se com os dispositivos atravs dos
controladores. Em geral, o controlador pode ser uma placa independente
conectada a um slot do computador ou implementada diretamente na placa-
me.

Memria
Principal
UCP

Controlador Controlador Controlador


de de de
Impressora Disco Fita

Impressora Disco Fita


Figura 6.6 Processador, Memria e Controladores

O controlador possui memria e registradores prprios utilizados na


execuo de instrues enviadas pelo driver. Essas instrues, de baixo nvel,
so responsveis pela comunicao entre o controlador e o dispositivo de E/S.
Em operaes de leitura, o controlador deve armazenar em seu buffer interno
uma seqncia de bits provenientes do dispositivo at formar um bloco. Aps
verificar a ocorrncia de erros, o bloco pode ser transferido para um buffer de
E/S na memria principal. A transferncia do bloco do buffer interno do
controlador para o buffer de E/S na memria principal pode ser realizada pelo
9

processador ou por um controlador de DMA. O uso da tcnica de DMA evita


que o processador fique ocupado com a transferncia do bloco para a
memria. O controlador de DMA um dispositivo de hardware que pode fazer
parte do computador ou pode ser um dispositivo independente.

UCP
1

2 Controlador
de
Disco
Buffer de E/ S 4 Buffer

Registradores

Memria
Principal
Controlador
de DMA
3

Disco
Figura 6.7 Tcnica de DMA

Alguns controladores, particularmente os de discos, implementam


tcnicas de cache semelhante s implementadas pelos sistemas de arquivos,
na tentativa de melhorar o desempenho das operaes de E/S. Normalmente,
o controlador avisa ao sistema operacional do trmino de uma operao de
gravao, quando os dados no buffer do controlador so gravados no disco
(write-through caching). O controlador tambm pode ser configurado para
avisar do trmino da gravao, mesmo quando os dados ainda se encontram
no buffer do controlador e a operao de gravao no disco no foi realizada
(write-back caching). Desta forma possvel obter ganhos considerveis de
desempenho.
10

6.6 Dispositivos de Entrada e Sada

Os dispositivos de entrada e sada so utilizados para permitir a


comunicao entre o sistema computacional e o mundo externo. Os
dispositivos de E/S podem ser classificados como de entrada de dados, como
CDROM, DVD, teclado e mouse, ou de sada de dados, como impressoras e
monitores. Tambm possvel que um dispositivo realize tanto entrada como
sada de dados, como placas de som, de rede, HDs, monitor touchscreen.
A transferncia de dados pode ocorrer atravs de blocos de informao
ou caracteres, por meio de controladores dos dispositivos. Em funo da forma
com que os dados so armazenados, os dispositivos de E/S podem ser
classificados em duas categorias: dispositivos estruturados e dispositivos no-
estruturados. Os dispositivos estruturados (block devices) caracterizam-se
por armazenar informaes em blocos de tamanho fixo, possuindo cada qual
um endereo que pode ser lido ou gravado de forma independente dos demais.
Os dispositivos estruturados classificam-se em dispositivos de acesso
direto e seqencial, em funo da forma com que os blocos so acessados.
Um dispositivo classificado como de acesso direto quando um bloco pode
ser recuperado diretamente atravs de um endereo. O HD o um exemplo de
dispositivo de acesso direto. Um dispositivo do tipo de acesso seqencial
quando, para se acessar um bloco, o dispositivo deve percorrer
sequencialmente os demais blocos at encontr-los. A fita magntica um
exemplo deste tipo de dispositivo.
Os dispositivos no-estruturados (character devices) so aqueles
que enviam ou recebem uma seqncia de caracteres sem estar estruturada
no formato de um bloco. Desse modo, a seqncia de caracteres no
enderevel, no permitindo operaes de acesso direto ao dado. Dispositivos
como terminais, impressoras e interfaces de rede so exemplos de dispositivos
no-estruturados.
11

6.7 Gerncia de Dispositivos no Windows

O Windows oferece centenas de APIs relacionadas gerncia de E/S,


sendo a maior parte ligada ao subsistema grfico, chamado Graphics Device
Interface (GDI). O GDI um conjunto de rotinas que permite a uma aplicao
manipular dispositivos grficos, como monitores e impressoras, independente
do dispositivo fsico, funcionando como uma interface entre a aplicao e os
drivers dos dispositivos. O GDI oferece funes de gerenciamento de janelas,
menus, caixas de dilogo, cores, desenhos, textos, bitmaps, cones e clipboard.
O sistema oferece suporte a operaes de E/S assncronas. O trmino
da operao pode ser sinalizado ao thread utilizando um dos diversos
mecanismos de sincronizao disponveis no sistema.
O gerente de E/S (I/O Manager) responsvel por receber pedidos de
operaes de E/S e repass-los aos drivers. Cada solicitao de E/S
representada por uma estrutura de dados chamada I/O Request Packet (IRP),
que permite o controle de como a operao de E/S ser processada.
Os drivers no Windows so desenvolvidos a partir de um padro
chamado Windows Driver Model (WDM). O WDM define diversas
caractersticas e funes que um drivers deve oferecer para ser homologado
pela Microsoft, como suporte a plug-and-play e a mltiplos processadores,
gerncia de energia e interface com os objetos do sistema operacional.
O Windows trabalha com diferentes tipos de drivers para implementar
diversas funes, como a emulao de aplicaes MS-DOS (virtual drivers),
interface com o subsistema grfico GDI (display e printer drivers),
implementao de sistemas de arquivos (file system drivers), funes de
filtragem (filter drivers) e o controle de dispositivos de E/S (hardware drivers).
As operaes de compresso, criptografia e tolerncia a falhas de discos
so implementadas atravs de drivers especficos acima dos drivers ligados
aos dispositivos de E/S. Os sistemas de arquivos NTFS e FAT tambm so
implementados atravs de drivers especiais que recebem solicitaes do
gerente de E/S e as repassam para os drivers de disco correspondentes.
12

6.8 Gerncia de Dispositivos no Unix

A gerncia de entrada/sada no Unix foi desenvolvida de forma integrada


ao sistema de arquivos. O acesso aos dispositivos de E/S feito atravs de
arquivos especiais, localizados no diretrio /dev.
Os arquivos especiais podem ser acessados da mesma forma que
qualquer outro arquivo, utilizando simplesmente as system calls de leitura e
gravao. Isso permite enviar o mesmo dado para diferentes dispositivos de
sada. Dessa forma, as system calls de E/S podem manipular qualquer tipo de
dispositivo de maneira uniforme.
As verses mais recentes do Unix e o Linux permitem que os drivers
possam ser acoplados ao ncleo com sistema em funcionamento, sem a
necessidade de gerar um novo kernel e reinicializar o sistema.

Você também pode gostar