Universidad Nacional Experimental
de los Llanos Occidentales
“Ezequiel Zamora
Sistemas Operativos
ADMINISTRACIÓN DE ENTRADA Y SALIDA
Modulo IV
Dispositivos y manejadores de
dispositivos (device drivers)
Dispositivos:
son componentes físicos o virtuales que se utilizan para ingresar, procesar, almacenar o comunicar información en un sistema
informático. Estos pueden incluir hardware como teclados, ratones, impresoras, discos duros, tarjetas de red, cámaras, etc. También
pueden ser dispositivos virtuales, como controladores de pantalla o impresoras virtuales.
Manejadores de Dispositivos(Device Drivers):
• Los manejadores de dispositivos, o controladores de dispositivos (device drivers en inglés), son programas de software que
permiten la comunicación entre el sistema operativo y un dispositivo hardware específico. Estos controladores actúan como
intermediarios, facilitando la interacción entre el hardware y el software del sistema operativo.
• Cuando un dispositivo se conecta al sistema, el sistema operativo carga automáticamente el controlador correspondiente, que se
encarga de traducir las solicitudes del software del sistema operativo a comandos que el dispositivo pueda entender. De esta
manera, los manejadores de dispositivos permiten que los programas de software se comuniquen de manera eficiente con el
hardware sin tener que preocuparse por los detalles específicos de cómo funciona cada dispositivo.
Mecanismos y funciones de los manejadores de
dispositivos (device drivers).
Manejo de Interrupciones:
Gestión de Recursos:
Los manejadores de dispositivos gestionan interrupciones
Controlan el acceso y el uso de los recursos del
generadas por los dispositivos hardware. Cuando un
hardware, asignando y liberando recursos según sea
dispositivo necesita la atención del sistema operativo, genera
necesario. Por ejemplo, asignan direcciones de
una interrupción, y el manejador de dispositivos
memoria, canales de interrupción y otros recursos
correspondiente maneja esa interrupción, permitiendo que el
importantes para el funcionamiento del dispositivo.
sistema operativo responda de manera adecuada.
Traducción de Abstracciones:
Los manejadores de dispositivos traducen las Configuración Inicial:
solicitudes generadas por el software del sistema Realizan la configuración inicial de los dispositivos cuando
operativo a comandos específicos del hardware. Estos son detectados o conectados al sistema. Esto puede incluir la
actúan como una capa de abstracción, permitiendo que inicialización de registros, la asignación de memoria y la
el software se comunique con los dispositivos sin configuración de parámetros necesarios para el
necesidad de conocer los detalles internos de su funcionamiento adecuado del dispositivo.
funcionamiento.
Mecanismos y funciones de los manejadores de
dispositivos (device drivers).
Comunicación con el Dispositivo: Manejo de Errores:
Establecen y mantienen la comunicación bidireccional Los manejadores de dispositivos son responsables de
entre el software y el hardware. Proporcionan una manejar errores que puedan ocurrir durante la
interfaz estandarizada para que los programas del comunicación con el dispositivo. Pueden informar al
sistema operativo y las aplicaciones puedan enviar sistema operativo y a las aplicaciones sobre eventos de
comandos y recibir datos del dispositivo. error y tomar medidas correctivas cuando sea posible.
Actualizaciones y Parches: Buffers y Colas de Datos:
Los desarrolladores pueden proporcionar Muchos manejadores de dispositivos utilizan buffers o
actualizaciones de controladores para mejorar el colas para almacenar temporalmente datos que se
rendimiento, corregir errores o agregar nuevas envían o reciben. Estos buffers ayudan a gestionar la
características. Los manejadores de dispositivos deben transferencia eficiente de datos entre el dispositivo y la
ser capaces de ser actualizados sin requerir cambios memoria del sistema.
significativos en el sistema operativo o las aplicaciones.
Estructuras de datos
Administración de para manejo de
Memoria
dispositivos
1. Tabla de Descriptores de Dispositivos
2. Cola de Operaciones del Dispositivo (Device
(Device Descriptor Table):
Operation Queue):
Esta tabla contiene información sobre todos los
Es una cola que contiene las operaciones
dispositivos conectados al sistema. Cada entrada
pendientes para un dispositivo específico. Estas
en la tabla corresponde a un dispositivo específico
operaciones pueden incluir lecturas, escrituras, y
e incluye detalles como la dirección de memoria
otras solicitudes del sistema operativo o de las
base, interrupciones asociadas, estado de energía,
aplicaciones.
y otros parámetros de configuración.
3. Estructuras de Control de Dispositivos (Device 4. Buffers de Datos:
Control Structures): Los buffers se utilizan para almacenar
Estas estructuras almacenan información detallada sobre
temporalmente datos que se envían o reciben entre
el estado y configuración actual de un dispositivo
el sistema operativo y el dispositivo. Pueden ser
específico. Pueden incluir registros de configuración,
utilizados para almacenar datos en espera de ser
información sobre interrupciones, y otros parámetros
importantes para el funcionamiento del dispositivo. procesados o transmitidos.
Estructuras de datos para manejo de
dispositivos
5. Tablas de Mapeo de Memoria (Memory Mapping 6. Estructuras de Control de Interrupciones
Tables): (Interrupt Control Structures):
Algunos dispositivos pueden mapear su memoria Estas estructuras almacenan información sobre las
directamente al espacio de direcciones del sistema interrupciones generadas por el dispositivo y cómo
operativo. Las tablas de mapeo de memoria registran deben ser manejadas por el sistema operativo.
cómo se asigna la memoria del dispositivo en el Pueden incluir rutinas de manejo de interrupciones,
espacio de direcciones del sistema. máscaras de interrupciones, y otros detalles.
7. Tablas de Configuración de Recursos (Resource 8. Estructuras de Energía (Power Management
Configuration Tables): Structures):
Contienen información sobre los recursos asignados a En el contexto de la gestión de energía, se pueden
un dispositivo, como direcciones de memoria, puertos utilizar estructuras para registrar el estado de energía
de E/S, y canales de interrupción. Ayudan a gestionar actual del dispositivo y los comandos de gestión de
los recursos del sistema de manera eficiente. energía.
Estructuras de datos para manejo de
dispositivos
Estas estructuras de datos pueden implementarse utilizando diversas formas, como arrays, listas enlazadas, o estructuras más
complejas dependiendo de los requisitos específicos del sistema operativo y del hardware. La elección de la estructura de datos
suele depender de factores como la eficiencia, la complejidad de las operaciones que se deben realizar y la flexibilidad necesaria
para gestionar diferentes tipos de dispositivos.
Operaciones de Entrada /Salida
Todos los dispositivos de E/S se pueden agrupar en tres 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. 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.
Operaciones de Entrada /Salida
Lectura (Input): Síncrona (Synchronous):
En una operación de lectura, los datos Las operaciones de entrada/salida
se transfieren desde un dispositivo síncronas requieren que el programa espere
periférico a la memoria principal del hasta que se complete la operación antes
sistema. Un ejemplo común es la lectura de continuar con la ejecución. Este enfoque
de datos desde un teclado, un mouse, o es común en operaciones de E/S que son
un dispositivo de almacenamiento. críticas para el flujo de ejecución del
programa.
Bloqueante (Blocking):
Escritura (Output):
Una operación de entrada/salida bloqueante implica que el
En una operación de escritura, los datos se transfieren desde la
proceso que la realiza espera hasta que la operación se haya
completado antes de continuar con otras tareas. Esto puede
memoria principal del sistema a un dispositivo periférico. Por
ocurrir, por ejemplo, cuando se está esperando la entrada del ejemplo, escribir datos en una pantalla, guardar información en
usuario. un disco o enviar datos a una impresora.
Operaciones de Entrada /Salida
Asíncrona (Asynchronous): Interrupciones (Interrupt-Driven I/O):
En operaciones de entrada/salida asíncronas, el Las operaciones de E/S pueden ser gestionadas mediante
programa puede iniciar la operación y continuar interrupciones. Cuando un dispositivo está listo para transferir
ejecutándose sin esperar su finalización. Se datos, genera una interrupción, y el control se transfiere al
proporciona algún mecanismo (como callbacks o manejador de interrupciones correspondiente que se encarga de
notificaciones) para manejar la finalización de la la operación de E/S.
operación en un momento posterior.
Acceso Directo a Memoria (DMA - Direct Memory Access):
En lugar de que la CPU controle directamente la transferencia de
datos entre un dispositivo y la memoria, un controlador DMA
puede encargarse de esta tarea, permitiendo que la CPU se
libere para realizar otras operaciones mientras la transferencia de
datos está en progreso.