MANEJO DE DIPOSITIVOS ENTRADA / SALIDA

Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento no volátil de datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la UCP. Según 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 través de una red. Los dos tipos de dispositivos más importantes de esta clase son los módem, para comunicación vía red telefónica, 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 visión lógica 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 visión lógica se ofrece a los usuarios un mecanismo de abstracción que oculta todos los detalles relacionados con los dispositivos físicos, 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 fácil 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 físico sin que sea necesario remodelar el sistema de E/S del sistema operativo.

• Permitir la conexión de dispositivos nuevos de E/S, solventando de forma automática su instalación usando mecanismos del tipo plug&play.

Conexión de un dispositivo de E/S a una computadora En la siguiente figura se muestra el esquema general de conexión de periféricos a una computadora. En el modelo de un periférico se distinguen dos elementos:

• Periféricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a través de las unidades de entrada/salida. Son el componente mecánico que se conecta a la computadora.

• Controladores de dispositivos o unidades de E/S. Se encargan de hacer la transferencia de información entre la memoria principal y los periféricos. Son el componente electrónico a través del cual se conecta el dispositivo de E/S. Tienen una conexión al bus de la computadora y otra para el dispositivo (generalmente mediante cables internos o externos).

Para empezar una operación de E/S, la UCP tiene que escribir sobre los registros anteriores los datos de la operación a través de una dirección de E/S o de memoria asignada únicamente al controlador. Según se haga de una u otra forma, se distingue entre dispositivos conectados por puertos o proyectados en memoria. El modelo de dispositivos por puertos es clásico en las arquitecturas de Intel. En ellas, cuando se instala un dispositivo, a su controlador se le asigna un puerto de E/S, una interrupción hardware y un vector de interrupción. Para efectuar una operación de E/S la UCP ejecuta operaciones por o portout con la dirección de puerto del dispositivo y con parámetros para indicar qué registro se quiere manipular. Todas las operaciones de entrada/salida (pantalla gráfica, impresoras, ratón, discos, etc.) se realizan usando esas dos instrucciones de lenguaje máquina con los parámetros 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. El otro modelo de direccionamiento de E/S es el modelo proyectado en memoria. Este modelo, típico de las arquitecturas de Motorola, asigna a cada dispositivo de E/S un rango de direcciones de memoria a través de las cuales se escribe sobre los registros del controlador. En este modelo no hay instrucciones específicas de E/S, sino que las operaciones se llevan a cabo mediante instrucciones máquina de manejo de memoria, lo que permite gestionar un mapa único de direcciones de memoria. Sin embargo, para no tener conflictos con otros accesos a memoria y para optimizar las operaciones, se reserva una zona de memoria física para asignar las direcciones de E/S.

Los dispositivos de almacenamiento secundario y terciario manejan la información en unidades de tamaño 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 demás. Los dispositivos de bloque lo son porque el hardware fuerza la existencia de accesos de un tamaño determinado. Un disco, por ejemplo, se divide en sectores de 512 bytes o de 1 KB, siendo un sector la unidad mínima de transferencia que el controlador del disco puede manejar. Los dispositivos de caracteres, como los terminales, impresoras, tarjetas de red, módems, etcétera, no almacenan información en bloques de tamaño fijo. Gestionan flujos de caracteres de forma lineal y sin ningún tipo de estructura de bloque. Un teclado es un buen ejemplo de estos dispositivos. Está conectado a una UART (Universal Asvnchronous Receiver/Transmiter) que recibe un carácter del teclado cada vez que se pulsa una tecla. No es posible leer un bloque de teclas de un golpe o buscar dentro del dispositivo por ninguna unidad. Un terminal por línea serie también es un dispositivo de caracteres. Su controlador se limita a enviar al periférico el flujo de caracteres que debe representar en la pantalla y a recibir del mismo los caracteres tecleados por el usuario.

Un controlador de dispositivo (llamado normalmente controlador, o, en inglés, driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica cómo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podría usar el hardware.

Existen tantos tipos de controladores como tipos de periféricos, y es frecuente encontrar más de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. Por ejemplo, aparte de los oficiales (normalmente disponibles en la página web del fabricante), se pueden encontrar también los proporcionados por el sistema operativo, o también versiones no oficiales hechas por terceros. Estos controladores pueden ser genéricos (válidos para más de un modelo del mismo periférico) o específicos para cada modelo. También se distribuyen actualizaciones a nuevas versiones, que pueden dar un mejor funcionamiento. Normalmente son los fabricantes del hardware quienes escriben sus controladores, ya que conocen mejor el funcionamiento interno de cada aparato, pero también se encuentran controladores libres, por ejemplo en los sistemas operativos libres. En este caso, los creadores no son de la empresa fabricante, aunque a veces hay una cooperación con ellos, cosa que facilita el desarrollo. Si no la hay, el procedimiento necesita de ingeniería inversa y otros métodos difíciles o con riesgos legales.

Los controladores son muy variados, casi tanto como los dispositivos de E/S. Muchos de ellos, como los de disco, pueden controlar múltiples dispositivos. Otros, como los de canales de E/S, incluyen su propia UCP y bus para controlar la E/S por programa y evitar interrupciones en la UCP de la computadora. De cualquier forma, en los últimos años ha existido un esfuerzo importante de estandarización 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 común 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 misión es convertir los datos del formato interno del dispositivo a uno externo que se ofrezca a través de una interfaz de programación bien definida. Los controladores de dispositivo se suelen agrupar en alguna de las siguientes categorías o clases:

• Adaptadores de audio (tarjetas de sonido).

• Dispositivos de comunicación (infrarrojos, módems, etc).

• Dispositivos de visualización; pantallas (displays).

• Teclados.

• Ratón (“mouse” y otros señaladores gráficos).

• Dispositivos multimedia.

• Dispositivos de Red.

• Impresoras.

TECLADO

TECLADO

DISPOSITIVOS E/S

DISPOSITIVOS E/S

MOUSE

MOUSE

PC

PC

MONITOR

MONITOR

monolitic

monolitic