ESQUEMAS DE CONEXIÓN Y MANEJO DE DISPOSITIVOS


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.

En la conexión de un dispositivo de E/S a una computadora 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).

 El sistema operativo inicia operaciones de E/S cuando se lo solicite un proceso, pero se desconoce cuándo termina, puesto que dependerá de la velocidad del hardware de E/S, de su tecnología y de otros aspectos físicos. Para conocer el momento de terminación de la operación hay dos métodos, independientemente del tipo de conexión utilizada:

Ø  Polling: Consiste en comprobar constantemente el estado del dispositivo. Tiene el inconveniente de ocupar el procesador un tiempo indeseado.

Ø  Interrupciones: El procesador continua ejecutando otros procesos y solo cuando el dispositivo concluye la operación llama la atención del procesador, interrumpiéndole para que tenga conocimiento del hecho, y además que pueda realizar las gestiones derivadas de dicha interrupción.


Los dispositivos complejos se conectan al ordenador a través de un controlador o adaptador, el cual contiene el estado del dispositivo, le controla y realiza la transferencia de datos. Cada controlador puede manejar varios dispositivos del mismo tipo y modelo.

Los controladores son tarjetas hardware que se conectan al ordenador a través del bus, y que tienen un conector para poder conectar el dispositivo al ordenador. Estas tarjetas adaptan los niveles de señal al bus del ordenador, y traduce las instrucciones que se envían al dispositivo o dispositivos que controlan.

Cada controlador tiene unos registros como vía de comunicación entre el procesador y los dispositivos controlados, conociéndose como registros del dispositivo o registros de E/S.

Estos registros tienen 4 misiones:

1. Informar del estado de dispositivo.
2. Transferir instrucciones al dispositivo.
3. Recibir datos desde el dispositivo.
4. Enviar datos al dispositivo.

El sistema operativo realizara las operaciones de E/S usando comandos específicos que entiende el controlador, y que recibe a través de estos registros. Cuando el controlador acepta un comando, el procesador no volverá a ocuparse de la operación de E/S hasta que reciba una interrupción indicándole que ha terminado el servicio solicitado. Gracias a los registros, el Sistema Operativo podrá conocer si la operación se realizó correctamente o no, si el dispositivo está apagado o tiene algún error hardware.

Buffering y Spooling

Con el fin de agilizar las operaciones de entrada y salida y descarga al procesador de estos trabajos, permitiendo que se pueda ejecutar los procesos simultáneamente con el trabajo de los periféricos, se diseñaron dos técnicas para conseguirlo, fueron el Buffering y Spooling.

Buffering

A veces la velocidad de los periféricos no se adapta a la velocidad del procesador, porque los periféricos son lentos o porque el proceso trabaja a ráfagas. Es decir, que necesita conjuntos de información para procesar de golpe. Para solucionar este problema y que ni los periféricos ni el procesador se deban esperar mutuamente, el sistema operativo utiliza una memoria intermedia llamada buffer. La función de esta memoria es amortiguar las diferencias de velocidad.

Cuando tenemos un buffer, el periférico produce información y el proceso la consume. El periférico sólo debe ponerse de acuerdo con el buffer y únicamente habrá problemas cuando el buffer este lleno. Por otro lado, el procesador sólo consumirá información del buffer y sólo deberá esperar cuando el buffer este vacío.

Spooling

El SPOOL (SimultaneousPerifhericalOperation On-Line) es una técnica que permite que las entradas y las salidas de un proceso tengan un paso intermedio en dispositivos de gran capacidad de almacenamiento. Esto permite que el computador trabaje con un proceso en concreto mientras los diferentes periféricos van sacando e incorporando información, de manera más lenta, al mismo tiempo. El ejemplo típico es el spool de impresora: un proceso puede obtener una gran cantidad de información en poco tiempo, y en cambio estos resultados pueden necesitar mucho tiempo para ser impresos. Otro caso muy corriente es el de trabajar con un procesador de textos y hacer una impresión de un documento relativamente largo. Si no se utiliza el spool, tanto el computador como el usuario no podrán hacer nada hasta que se termine de imprimir.

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 port 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 asig nar 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.

 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.

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 (SrnaIl? ComputerSvsterninterftice), 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 (Integrated 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


No hay comentarios:

Publicar un comentario