Vous êtes sur la page 1sur 9

Unidad 4 Administracin de entradas y salidas

4.1 Dispositivos y Manejadores de Dispositivos

Todos los dispositivos de E/S se pueden agrupar en tres grandes grupos:

Dispositivos de interfaz de usuario. Se llama as a los dispositivos que permiten


la comunicacin entre los usuarios y la computadora. Dentro de este grupo se incluyen
todos los dispositivos que sirven para proporcionar interfaz con el usuario, tanto para
entrada (ratn, teclado, etc.) como para salida (impresoras, pantalla, etc.). Existen
perifricos menos habituales, pero ms sofisticados, tales como un escner, lectores de
huella digital, lectores de cinta magntica, instrumentos musicales digitales (MIDI),
etc.

Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento no


voltil de datos y memoria. Su funcin primordial es abastecer de datos y
almacenamiento a los programas que se ejecutan en la UCP. Segn su capacidad y la
inmediatez con que se puede acceder a los datos almacenados en estos dispositivos,
se pueden dividir en almacenamiento secundario (discos y disquetes) y terciario
(cintas)

Dispositivos de comunicaciones. Permiten conectar a la computadora con otras


computadoras a travs de una red. Los dos tipos de dispositivos ms importantes de
esta clase son los mdem, para comunicacin va red telefnica, y las tarjetas de
interfaz a la red, para conectar la computadora a una red de rea local.
El sistema de E/S es la parte del sistema operativo que se ocupa de facilitar el manejo
de los dispositivos de E/S ofreciendo una visin lgica simplificada de los mismos que
pueda ser usada por otros componentes del sistema operativo (como el sistema de
archivos) o incluso por el usuario. Mediante esta visin lgica se ofrece a los usuarios
un mecanismo de abstraccin que oculta todos los detalles relacionados con los
dispositivos fsicos, as como del funcionamiento real de los mismos. El sistema
operativo debe controlar el funcionamiento de todos los dispositivos de E/S para
alcanzar los siguientes objetivos:

Facilitar el manejo de los dispositivos de E/S. Para ello debe ofrecer una interfaz
entre los dispositivos y el resto del sistema que sea sencilla y fcil de utilizar.
Optimizar la E/S del sistema, proporcionando mecanismos de incremento de
prestaciones donde sea necesario.
Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivo
fsico sin que sea necesario remodelar el sistema de E/S del sistema operativo.
Permitir la conexin de dispositivos nuevos de E/S, solventando de forma automtica
su instalacin usando mecanismos del tipo plug&play.
Conexin de un dispositivo de E/S a una computadora En la siguiente figura se muestra
el esquema general de conexin de perifricos a una computadora. En el modelo de un
perifrico se distinguen dos elementos:
Perifricos o dispositivos de E/S. Elementos que se conectan a la unidad central de
proceso a travs de las unidades de entrada/salida. Son el componente mecnico que
se conecta a la computadora.
Controladores de dispositivos o unidades de E/S. Se encargan de hacer la
transferencia de informacin entre la memoria principal y los perifricos. Son el
componente electrnico a travs del cual se conecta el dispositivo de E/S. Tienen una
conexin al bus de la computadora y otra para el dispositivo (generalmente mediante
cables internos o externos).
Para empezar una operacin de E/S, la UCP tiene que escribir sobre los registros
anteriores los datos de la operacin a travs de una direccin de E/S o de memoria
asignada nicamente al controlador. Segn se haga de una u otra forma, se distingue
entre dispositivos conectados por puertos o proyectados en memoria.

Todas las operaciones de entrada/salida (pantalla grfica, impresoras, ratn, discos,


etc.) se realizan usando esas dos instrucciones de lenguaje mquina con los
parmetros adecuados. El problema de este tipo de direccionamiento es que exige
conocer las direcciones de E/S y programar las instrucciones especiales de E/S, lo que
es significativamente distinto del modelo de memoria de la computadora.

Los dispositivos de almacenamiento secundario y terciario manejan la informacin en


unidades de tamao fijo, denominadas bloques, por lo que a su vez se denominan
dispositivos de bloques. Estos bloques se pueden direccionar de manera independiente,
lo que permite leer o escribir un bloque con independencia de los dems. Los
dispositivos de bloque lo son porque el hardware fuerza la existencia de accesos de un
tamao determinado. Un disco, por ejemplo, se divide en sectores de 512 bytes o de 1
KB, siendo un sector la unidad mnima de transferencia que el controlador del disco
puede manejar.

Un controlador de dispositivo (llamado normalmente controlador, o, en ingls, driver)


es un programa informtico que permite al sistema operativo interactuar con un
perifrico, haciendo una abstraccin del hardware y proporcionando una interfaz
-posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de
instrucciones que le indica cmo debe controlar y comunicarse con un dispositivo en
particular. Por tanto, es una pieza esencial, sin la cual no se podra usar el hardware.

De cualquier forma, en los ltimos aos ha existido un esfuerzo importante de


estandarizacin de los dispositivos, lo que permite usar un mismo controlador para
dispositivos de distintos fabricantes. Un buen ejemplo lo constituyen los dispositivos
SCSI (Srna Il? Computer Svstern interftice), cuyos controladores ofrecen una interfaz
comn independientemente de que se trate de un disco, una cinta, un CD-ROM, etc.
Otro buen ejemplo son los controladores IDE (In tegrated Drive Electronics), que
suelen usarse para conectar los discos en todas las computadoras personales.
En cualquier caso, y sea como sea el controlador, su misin es convertir los datos del
formato interno del dispositivo a uno externo que se ofrezca a travs de una interfaz
de programacin bien definida. Los controladores de dispositivo se suelen agrupar en
alguna de las siguientes categoras o clases:
Adaptadores de audio (tarjetas de sonido).
Dispositivos de comunicacin (infrarrojos, mdems, etc).
Dispositivos de visualizacin; pantallas (displays).
Teclados.
Ratn (mouse y otros sealadores grficos).
Dispositivos multimedia.
Dispositivos de Red.
Impresoras.
Almacenamiento

4.2 Mecanismos Funciones Manejadores Dispositivos

El controlador es el componente ms importante desde el punto de vista del sistema


operativo, ya que constituye la interfaz del dispositivo con el bus de la computadora y
es el componente que se ve desde la UCP. El S. O. generalmente trabaja con el
controlador y no con el dispositivo. Los modelos ms frecuentes de comunicacin entre
la cpu y los controladores son: -
Para la mayora de las micro y mini computadoras: Modelo de bus del sistema.
Para la mayora de los mainframes: Modelo de varios buses y computadoras
especializadas en e/s llamadas canales de e/s.

El registro de datos sirve para el intercambio de datos. En l ir el controlador


cargando los datos ledos y de l ir extrayendo los datos para su escritura en el
perifrico. Un bit del registro de estado sirve para indicar que el controlador puede
transferir una palabra. En las operaciones de lectura esto significa que ha cargado en el
registro de datos un nuevo valor, mientras que en las de escritura significa que
necesita un nuevo dato. Otros bits de este registro sirven para que el controlador
indique los problemas que ha encontrado en la ejecucin de la ltima operacin de E/S.

El registro de control sirve para indicarle al controlador las operaciones que ha de


realizar. Los distintos bits de este registro indican distintas acciones que ha de realizar
el perifrico. Para empezar una operacin de E/S, la UCP tiene que escribir sobre los
registros anteriores los datos de la operacin a travs de una direccin de E/S o de
memoria asignada nicamente al controlador.

Este modelo vale tanto para los terminales o la pantalla como para los discos. Las
caractersticas del controlador son muy importantes, ya que definen el aspecto del
perifrico para el sistema operativo. Atendiendo a las caractersticas del hardware de
los dispositivos, se pueden observar los siguientes aspectos distintivos:
Direccin de E/S. En general hay dos modelos de direccionamiento de E/S, los que
usan puertos y los que proyectan los registros en memoria.
Unidad de transferencia. Los dispositivos suelen usar unidades de transferencia de
tamao fijo. Hay dos modelos clsicos de dispositivos: de caracteres y de bloques.
Interaccin computadora-controlador. La computadora tiene que interaccionar con la
computadora para realizar las operaciones de E/S y saber cundo terminan.
Un controlador de dispositivo o unidad de E/S se encarga de controlar uno o ms
dispositivos del mismo tipo y de intercambiar informacin entre ellos y la memoria
principal o unidad central de proceso de la computadora.

El controlador debe encargarse adems de sincronizar la velocidad del procesador con


la del perifrico y de detectar los posibles errores que se produzcan en el acceso a los
perifricos. En el caso de un controlador de disco, ste debe encargarse de convertir
un flujo de bits procedente del disco a un bloque de bytes detectando y corrigiendo, si
es posible, los errores que se produzcan en esta transferencia.

Hay que recalcar que el controlador al ser una parte crtica del sistema operativo, el
fallo de un controlador puede ser ms grave que otros errores de software, pudiendo
bloquear el ordenador o incluso daar el hardware. Debido a que el hardware es
(necesariamente) indeterminista, encontrar y solucionar un fallo en un controlador es
una tarea complicada ya que no slo hay que monitorizar el programa, sino tambin el
propio dispositivo.

4.3 Estructuras de Datos para Manejo de Dispositivos

Los procesos de usuario emiten


peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una
operacin de E/S, el sistema operativo prepara dicha operacin y bloquea al proceso
hasta que se recibe una interrupcin del controlador del dispositivo indicando que la
operacin est completa. Las peticiones se procesan de forma estructurada en las
siguientes capas:
Manejadores de interrupcin.
Manejadores de dispositivos o drivers.
Software de EIS independiente de los dispositivos. Este software est formado por la
parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques y el
servidor de archivos.
Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de
usuario.
El sistema operativo estructura el software de gestin de E/S de esta forma para
ofrecer a los usuarios una serie de servicios de E/S independientes de los dispositivos.
Esta independencia implica que deben emplearse los mismos servicios y operaciones
de E/S para leer datos de un disquete, de un disco duro, de un CD-ROM o de un
teclado.
Manejadores de interrupcin
Los manejadores de interrupcin se encargan de tratar las interrupciones que generan
los controla dores de dispositivos una vez que stos estn listos para la transferencia
de datos o bien han ledo o escrito los datos de memoria principal en caso de acceso
directo a memoria. Para tratar dicha interrupcin se ejecuta el correspondiente
manejador de interrupcin cuyo efecto es el de salvar los registros, comunicar el
evento al manejador del dispositivo y restaurar la ejecucin de un proceso (que no
tiene por qu ser el interrumpido).
Los manejadores de interrupcin suelen hacer algo ms que comunicar el evento al
manejador de dispositivo. Cuando una interrupcin ocurre muy frecuentemente, caso
del reloj, o cuando la cantidad de informacin a transferir es muy pequea, caso del
teclado, sera muy costoso comunicar siempre el evento al manejador de dispositivo
asociado.

Software de E/S independiente del dispositivo


La mayor parte del sistema de E/S es software independiente de dispositivo. Este nivel
incluye el sistema de archivos y el de gestin de red, el gestor de bloques, la cache de
bloques y una parte de los manejadores de dispositivo. La principal funcin de esta
capa de software es ejecutar las funciones de E/S que son comunes a todos los
dispositivos a travs de una interfaz uniforme.
Internamente, en este nivel se proporciona acceso a nivel de bloques o caracteres,
almacenamiento intermedio, gestin de los dispositivos, planificacin de la E/S y
control de errores.

Para optimizar la E/S y para armonizar las peticiones de usuario, que pueden ser de
cualquier tamao, con los bloques que maneja el sistema de archivos, el software de
E/S proporciona almacenamiento intermedio en memoria del sistema operativo. Esta
facilidad se usa para tres cosas:

Optimizar la E/S evitando accesos a los dispositivos.


Ocultar las diferencias de velocidad con que cada dispositivo y usuario manejan los
datos.
Facilitar la implementacin de la semntica de comparticin, al existir una copia nica
de los datos en memoria.

El sistema de E/S mantiene buffers en distintos componentes. Por ejemplo, en la parte


del manejador del teclado independiente del dispositivo existe un buffer para
almacenar los caracteres que teclea el usuario hasta que se pueden entregar a los
niveles superiores. Si se usa una lnea serie para leer datos de un sistema remoto y
almacenarlos en el disco, se puede usar un buffer para guardar temporalmente los
datos hasta que tengan una cierta entidad y sea rentable escribirlos a disco. Si se est
leyendo o escribiendo un archivo, se guardan copias de los bloques en memoria para
no tener que acceder al disco si se vuelven a leer.
La gestin de los dispositivos agrupa a su vez tres servicios: nombrado, proteccin y
control de acceso.

El nombrado permite traducir los nombres de usuario a identificadores del sistema. Por
ejemplo, en UNIX, cada dispositivo tiene un nombre (p. ej.: /dev/cdrom) que se
traduce en un nico identificador interno (o nodo-i), que a su vez se traduce en un
nico nmero de dispositivo principal (clase de dispositivo) y secundario (elemento de
la clase).

Una de las funciones principales del sistema de E/S es la planificacin de la E/S de los
distintos componentes. Para ello se usan colas de peticiones para cada clase de
dispositivo, de las que se extraen las peticiones de cada dispositivo en particular. Cada
una de estas colas se ordena siguiendo una poltica de planificacin, que puede ser
distinta en cada nivel. Imagine el caso de LINUX, donde existe una cola global de
peticiones de E/S, ordenadas en orden FIFO, para los discos instalados. Cuando un
manejador de disco queda libre, busca la cola global para ver si hay peticiones para l
y, si existen, las traslada a su cola de peticiones particular ordenadas segn la poltica
SCAN, por ejemplo. Este mecanismo permite optimizar la E/S al conceder a cada
mecanismo la importancia que, ajuicio de los diseadores del sistema operativo, se
merece. En el caso de Windows NT, por ejemplo, el ratn es el dispositivo de E/S ms
prioritario del sistema. La razn que hay detrs de esta poltica es conseguir un
sistema muy interactivo.

4.4 Operaciones de Entrada Salida

Tanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse


de la transferencia de datos una vez que sabe que hay datos disponibles en el
controlador. Una mejora importante para incrementar la concurrencia entre la UCP y la
E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la
transferencia de datos, liberando de este trabajo a la UCP, e interrumpir a la UCP slo
cuando haya terminado la operacin completa de EIS. Esta tcnica se denomina acceso
directo a memoria (DMA, Direct Memory Access).

Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga


directamente de transferir los datos entre el perifrico y la memoria principal, sin
requerir intervencin alguna por parte del procesador. Esta tcnica funciona de la
siguiente manera: cuando el procesador desea que se imprima un bloque de datos,
enva una orden al controlador indicndole la siguiente informacin:
Tipo de operacin: lectura o escritura.
Perifrico involucrado en la operacin.
La direccin de memoria desde la que se va a leer o a la que va a escribir
directamente con el controlador de dispositivo (direccin).
El nmero de bytes a transferir (contador).
Donde el campo Operacin corresponde al cdigo de operacin de las instrucciones
mquina normales. Especifica la operacin que debe realizar la CCW. La unidad de
control decodifica este campo y enva las seales adecuadas de control al dispositivo.
Existen varias operaciones, las ms importantes son las siguientes:

Lectura: el canal transfiere a memoria principal un bloque de palabras de tamao


especificado en el campo n de palabras, en orden ascendente de direcciones,
empezando en la direccin especificada en el campo direccin del dato.
Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se
transfieren en el mismo orden que en la operacin de lectura.
Control: se utiliza esta orden para enviar instrucciones especficas al dispositivo de
E/S, como rebobinar una cinta magntica, etc.
Bifurcacin: cumple en el programa de canal la misma funcin que una instruccin de
salto en un programa normal. El canal ejecuta las CCW en secuencia, salvo cuando
aparece una CCW de este tipo, que utiliza el campo direccin del dato como la
direccin de la siguiente CCW a ejecutar.
Flags: Los bits de este campo indican lo siguiente:
CC (Encadenamiento de comando): cuando este bit est a 1, indica al canal que la
siguiente CCW especifica una nueva operacin de E/S que debe realizarse con el
mismo dispositivo. El canal ejecuta primero la operacin de E/S especificada en la CCW
que tiene a 1 el flag CC. Despus ejecuta la siguiente sobre el mismo dispositivo.
Desde el punto de vista del dispositivo, las dos operaciones resultantes de la primera y
segunda CCW aparecen como dos comandos de E/S separados.

CD (Encadenamiento de datos): una CCW con el bit CD a 1, indica al canal que la


siguiente CCW contiene una nueva direccin del dato y un nuevo n de palabras. stos
deben utilizarse para transferir un segundo bloque de datos hacia o desde el dispositivo
de E/S, mediante la orden especificada por la CCW actual. Cuando el canal termina la
transferencia de datos especificada en la CCW con el bit CD a 1, no corta la conexin
con el dispositivo de E/S, contina la transferencia utilizando la direccin y el n de
palabras de la siguiente CCW.
SKIP (Salto): este bit, cuando est a 1, hace que el programa de canal salte un
nmero de palabras igual al especificado en el campo n de palabras. Cuando se utiliza
con la orden de lectura, este flag hace que los datos se lean del dispositivo sin que se
transfieran a la memoria principal.

PCI (Interrupcin controlada por programa): el canal produce una interrupcin cuando
ejecuta una CCW con el flag PCI a 1. Si esta CCW va precedida por otra CCW con
encadenamiento de comandos, la interrupcin se genera despus de que hayan
concluido todas las transferencias de datos.

Una vez emitida la orden, el procesador contina realizando otro trabajo sin necesidad
de transferir el bloque de datos. Es el propio controlador el que se encarga de
transferir el bloque de datos del perifrico a memoria. La transferencia se realiza
palabra a palabra. Cuando el controlador ha completado la transferencia, genera una
interrupcin que activa la rutina de tratamiento correspondiente, de tal manera que se
sepa que la operacin ha concluido.
Utilizando acceso directo a memoria el procesador nicamente se ve involucrado al
inicio y al final de la transferencia.

Los pasos a seguir en una operacin de E/S con DMA son los siguientes:

1. Programacin de la operacin de E/S. Se indica al controlador la operacin, los datos


a transferir y la direccin de memoria sobre la que se efectuar la operacin.
2. El controlador contesta aceptando la peticin de E/S.
3. El controlador le ordena al dispositivo que lea (para operacin de lectura) una cierta
cantidad de datos desde una posicin determinada del dispositivo a su memoria
interna. 7.3.
4. Cuando los datos estn listos, el controlador los copia a la posicin de memoria que
tiene en sus registros, incrementa dicha posicin de memoria y decrementa el
contador de datospendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer.
6. Cuando el registro de contador est a cero, el controlador interrumpe a la UCP para
in dicar que la operacin de DMA ha terminado.

Inicio y control de los programas de canal


Hemos visto como se utilizan los programas de canal para realizar operaciones de E/S.
Estos programas residen en la memoria principal del computador y se ejecutan en el
canal. Vamos a examinar ahora la forma en que la CPU inicia y supervisa las
operaciones de E/S, es decir, el programa de canal. En el IBM S/370 existen cuatro
instrucciones mquina que la CPU puede utilizar para estos fines. Son las siguientes:

START I/O Inicia una operacin de E/S. El campo de direccin de la instruccin


seemplea para especificar el canal y el dispositivo de E/S que participa en la operacin.
HALT I/O Finaliza la operacin del canal.
TEST CHANNEL Prueba el estado del canal.
TEST I/O Prueba el estado del canal, el subcanal y el dispositivo de E/S.
Una operacin de E/S se inicia con la instruccin START I/O. La ubicacin del programa
de canal en la memoria principal viene definida en la palabra de direccin de canal
(CAW: Channel A ddress word), que siempre est almacenada en la posicin 72 de la
memoria principal.

Vous aimerez peut-être aussi