SlideShare una empresa de Scribd logo
1 de 10
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
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.
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.
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
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
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.
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.
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:
• 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.
Dispositivos de E/S y controladores

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Arquitectura del microprocesador
Arquitectura del microprocesadorArquitectura del microprocesador
Arquitectura del microprocesador
 
PCI.pdf
PCI.pdfPCI.pdf
PCI.pdf
 
Diagrama de bloque procesador intel
Diagrama de bloque procesador intelDiagrama de bloque procesador intel
Diagrama de bloque procesador intel
 
DMA presentation [By- Digvijay]
DMA presentation [By- Digvijay]DMA presentation [By- Digvijay]
DMA presentation [By- Digvijay]
 
Memory Reference Instructions
Memory Reference InstructionsMemory Reference Instructions
Memory Reference Instructions
 
Hardware y software
Hardware y softwareHardware y software
Hardware y software
 
Chapter 7 memory & i/o
Chapter 7  memory & i/oChapter 7  memory & i/o
Chapter 7 memory & i/o
 

Similar a Dispositivos de E/S y controladores

Similar a Dispositivos de E/S y controladores (20)

Entrada y Salida de un S.O
Entrada y Salida de un S.OEntrada y Salida de un S.O
Entrada y Salida de un S.O
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
R
RR
R
 
Gestión de entradas y salidas
Gestión de entradas y salidasGestión de entradas y salidas
Gestión de entradas y salidas
 
Organización de entrada y salida (E/S)
Organización de entrada y salida (E/S)Organización de entrada y salida (E/S)
Organización de entrada y salida (E/S)
 
Lenguaje de máquina
Lenguaje de máquinaLenguaje de máquina
Lenguaje de máquina
 
Gestion de Entrada y Salida
Gestion de Entrada y SalidaGestion de Entrada y Salida
Gestion de Entrada y Salida
 
Gestion de Entradas y Salidas
Gestion de Entradas y SalidasGestion de Entradas y Salidas
Gestion de Entradas y Salidas
 
Entrada salida
Entrada salidaEntrada salida
Entrada salida
 
Sistemas Operativos.ppt
Sistemas Operativos.pptSistemas Operativos.ppt
Sistemas Operativos.ppt
 
Sistema de entrada-salida
Sistema de entrada-salidaSistema de entrada-salida
Sistema de entrada-salida
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
 
Administracion e s
Administracion e sAdministracion e s
Administracion e s
 
Administracion de entrada y salida
Administracion de entrada y salidaAdministracion de entrada y salida
Administracion de entrada y salida
 
Organización de Entrada y Salida
Organización de Entrada y SalidaOrganización de Entrada y Salida
Organización de Entrada y Salida
 
4.2 mecanismos y_funciones_de_los_manejadores_de_dispositivos
4.2 mecanismos y_funciones_de_los_manejadores_de_dispositivos4.2 mecanismos y_funciones_de_los_manejadores_de_dispositivos
4.2 mecanismos y_funciones_de_los_manejadores_de_dispositivos
 
Sistemas de entrada y salida
Sistemas de entrada y salidaSistemas de entrada y salida
Sistemas de entrada y salida
 
Sistema E S
Sistema E SSistema E S
Sistema E S
 
Hardware
HardwareHardware
Hardware
 

Más de beymarlopez

Unidad 3 memoria_real
Unidad 3 memoria_realUnidad 3 memoria_real
Unidad 3 memoria_realbeymarlopez
 
4.4 operaciones de_es
4.4 operaciones de_es4.4 operaciones de_es
4.4 operaciones de_esbeymarlopez
 
4.3 ed para_el_manejo_de_dispositovos
4.3 ed para_el_manejo_de_dispositovos4.3 ed para_el_manejo_de_dispositovos
4.3 ed para_el_manejo_de_dispositovosbeymarlopez
 
3.3 organizacion de_la_memoria_virtual
3.3 organizacion de_la_memoria_virtual3.3 organizacion de_la_memoria_virtual
3.3 organizacion de_la_memoria_virtualbeymarlopez
 
3.1 politica y_filosofia
3.1 politica y_filosofia3.1 politica y_filosofia
3.1 politica y_filosofiabeymarlopez
 
2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moisesbeymarlopez
 
2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moisesbeymarlopez
 
2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moisesbeymarlopez
 

Más de beymarlopez (8)

Unidad 3 memoria_real
Unidad 3 memoria_realUnidad 3 memoria_real
Unidad 3 memoria_real
 
4.4 operaciones de_es
4.4 operaciones de_es4.4 operaciones de_es
4.4 operaciones de_es
 
4.3 ed para_el_manejo_de_dispositovos
4.3 ed para_el_manejo_de_dispositovos4.3 ed para_el_manejo_de_dispositovos
4.3 ed para_el_manejo_de_dispositovos
 
3.3 organizacion de_la_memoria_virtual
3.3 organizacion de_la_memoria_virtual3.3 organizacion de_la_memoria_virtual
3.3 organizacion de_la_memoria_virtual
 
3.1 politica y_filosofia
3.1 politica y_filosofia3.1 politica y_filosofia
3.1 politica y_filosofia
 
2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises
 
2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises
 
2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises2.1 2.2 2.3_gabriel_y_moises
2.1 2.2 2.3_gabriel_y_moises
 

Dispositivos de E/S y controladores

  • 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.