El documento describe los dispositivos de entrada y salida y los controladores de dispositivos. Explica que los controladores de dispositivo se encargan de controlar los dispositivos y transferir datos entre ellos y la memoria principal. También describe los dos tipos principales de dispositivos, de bloque y de caracteres, y las funciones de los controladores de dispositivo como iniciar y terminar operaciones de entrada y salida, y sincronizar la velocidad del procesador con la del dispositivo.
1. I N S T I T U T O T E C N O L O G I C O D E C O M I T A N
Profesor:
Ing. Rafael Ramos
Ingeniería en Sistemas Computacionales 7° Semestre
Integrantes del Equipo
Hugo Aureliano Alfaro Ortega
Abraham Moreno Moreno
Alejandro Toalá Espinosa
Bulmaro Vazquez Vazquez
2. 4.1 DISPOSITIVOS Y MANEJADORES DE DISPOSITIVOS (DEVICE
DRIVERS)
Device Driver
Un driver es un software formado por un conjunto de rutinas y tablas que, instalados, forman
parte del S.O. y sirven para ejecutar y controlar todas las operaciones de E/S que se
realizan sobre el periférico conectado a la computadora y que controla dicho Driver. Es un
conjunto de programas que provee la interfase entre el Sistema Operativo y un dado tipo de
dispositivo periférico.
En términos generales, el trabajo de un driver es aceptar pedidos abstractos del software
independiente de dispositivo que esta por encima de él y controlar que se ejecute.
Existen dos tipos de device driver:
* Dispositivos de bloque:
Es aquel que almacena la información en bloques de tamaño fijo, cada uno con su propia
dirección. Los tamaños comunes de los bloques van desde 128 bytes hasta 1024 bytes. La
propiedad esencial es que en todo momento el programa puede leer o escribir en cualquiera
de los bloques. Los discos, por ejemplo, son dispositivos de bloque.
* Dispositivos de carácter:
Estos dispositivos envían o reciben un flujo de caracteres, sin sujetarse a una estructura de
bloques. No se pueden utilizar direcciones ni tienen una operación de búsqueda. Las
terminales, impresoras de línea, cintas de papel, tarjetas perforadas, interfaces de una red,
ratones, y muchos otros dispositivos no parecidos a los discos son dispositivos de carácter.
3. 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
comunicación 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
(ratón, teclado, etc.) como para salida (impresoras, pantalla, etc.).
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.
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. 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.
4. 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. 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 port out 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 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.
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
5. 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 o unidad de E/S se encarga de controlar uno o más
dispositivos del mismo tipo y de intercambiar información entre ellos y la memoria principal o
unidad central de proceso de la computadora. El controlador debe encargarse además de
sincronizar la velocidad del procesador con la del periférico y de detectar los posibles errores
que se produzcan en el acceso a los periféricos..
La información entre los controladores de dispositivo y la unidad central de proceso o
memoria principal se puede transferir mediante un programa que ejecuta continuamente y lee
o escribe los datos del (al) controlador. Con esta técnica, que se denomina E/S programada,
la transferencia de información entre un periférico y el procesador se realiza mediante la
ejecución de una instrucción de E/S. Con esta técnica, es el procesador el responsable de
extraer o enviar datos entre el procesador y el controlador de dispositivo, lo que provoca que
el procesador tenga que esperar mientras se realiza la transferencia entre el periférico y el
controlador. Dado que los periféricos son sensiblemente más lentos que el procesador, éste
deberá esperar una gran cantidad de tiempo hasta que se complete la operación de E/S. En
este caso no existe ningún tipo de concurrencia entre la E/S y el procesador ya que éste
debe esperar a que finalice la operación. Aunque esta técnica es muy antigua, ya que
proviene del tiempo en que los controladores no tenían interrupciones, actualmente los
canales de E/S y algunos multiprocesadores usan esta técnica para evitar que lleguen a la
6. UCP de la computadora muchas interrupciones de E/S. En ambos casos, la técnica es la
misma: dedicar una UCP especial para la E/S. La forma de hacerlo es muestrear
continuamente los registros de estado de los controladores para ver si están disponibles y,
en ese caso, leer o escribir los registros. Imagine un canal de E/S al que hay conectados
múltiples buses de E/S que, a su vez, tienen múltiples dispositivos de E/S. Si la UCP quiere
escribir en uno de ellos, debe mirar su registro de estado hasta que los bits indiquen que no
está ocupado. Cuando esto ocurra, escribirá un bloque en los registros del controlador y
esperará hasta que los bits de estado indiquen que está disponible. Imagine que quiere leer
de otro controlador, deberá esperar a que los bits de estado le indiquen que está disponible,
programar la operación y esperar a que se indique que los datos están disponibles.
Evidentemente, incluso aunque la UCP esté controlando varios dispositivos de E/S, siempre
existe pérdida de ciclos debido a la existencia de las esperas. Sin embargo, existen
situaciones en que esto no es así.
Hay que recalcar que el controlador al ser una parte crítica del sistema operativo, el fallo de
un controlador puede ser más grave que otros errores de software, pudiendo bloquear el
ordenador o incluso dañar 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 sólo hay que monitorizar el programa, sino también el propio dispositivo.
7. 4.2 MECANISMOS Y FUNCIONES DE LOS MANEJADORES DE
DISPOSITIVOS (DEVICE DRIVERS).
Los manejadores de dispositivos tienen la función de comenzar las operaciones de E/S en un
dispositivo y procesar la terminación de una solicitud de E/S.
El sistema de archivos básico trata con bloques de datos que son los que se intercambian
con los discos o cintas. Ubica estos bloques en el almacenamiento secundario o en el
intermedio en memoria principal. Este sistema normalmente se considera parte del SO.
El supervisor básico de E/s se responsabiliza de iniciar y terminar la E/s con archivos,
Selecciona el dispositivo donde se realizará la E/S, según el archivo seleccionado. Planifica
los accesos a disco y cinta, asigna los buffers de E/S y reserva la memoria secundaria. Es
parte del SO.
La E/S lógica tiene la función de permitir a los usuarios y aplicaciones acceder a los registros.
El método de acceso es el nivel mas cercano al usuario, proporcionando una interfaz entre
las aplicaciones y los archivos.
Los usuarios y las aplicaciones tratan con registros y la E/S se realiza de a bloques. Los
registros deben bloquearse para la salida, y desbloquearse en la lectura. Para manejar la E/S
con bloques deben proveerse las funciones para ello: por ejemplo, se debe gestionar el
almacenamiento secundario (asignación de bloques libres de memoria secundaria a los
archivos, gestionar el espacio libre, manejar la solicitud de bloques individuales. Todo esto
debe organizarse optimizando el rendimiento.
8. Funciones de los manejadores de dispositivos
Funciones generalmente realizadas por el software independiente del dispositivo:
• Interfaz uniforme para los manejadores de dispositivos.
• Nombres de los dispositivos.
• Protección del dispositivo.
• Proporcionar un tamaño de bloque independiente del dispositivo.
• Uso de buffer.
• Asignación de espacio en los dispositivos por bloques.
• Asignación y liberación de los dispositivos de uso exclusivo.
• Informe de errores.
Las funciones básicas del software independiente del dispositivo son:
• Efectuar las funciones de e / s comunes a todos los dispositivos.
• Proporcionar una interfaz uniforme del software a nivel usuario.
El software independiente del dispositivo asocia los nombres simbólicos de los dispositivos
con el nombre adecuado.
Un nombre de dispositivo determina de manera única el nodo-i de un archivo especial:
• Este nodo-i contiene el número principal del dispositivo, que se utiliza para localizar el
manejador apropiado.
• El nodo-i contiene también el número secundario de dispositivo, que se transfiere
como parámetro al manejador para determinar la unidad por leer o escribir.
El software independiente del dispositivo debe:
9. • Ocultar a los niveles superiores los diferentes tamaños de sector de los distintos
discos.
• Proporcionar un tamaño uniforme de los bloques, por ej.: considerar varios sectores
físicos como un solo bloque lógico.