1. Dispositivos de bloque
2. Dispositivos de carácter
Las principales características de los dispositivos de bloque son:
- La información se almacena en bloques de tamaño fijo.
- Cada bloque tiene su propia dirección.
- Los tamaños más comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes.
- Se puede leer o escribir en un bloque de forma independiente de los demás, en cualquier momento.
- Un ejemplo típico de dispositivos de bloque son los discos.
Las principales características de los dispositivos de carácter son:
-La información se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques.
- No se pueden utilizar direcciones.
- No tienen una operación de búsqueda.
- Unos ejemplos típicos de dispositivos de carácter son las impresoras de línea, terminales, interfaces de una red, ratones, etc.
Manejadores de Dispositivos
Todo el código que depende de los dispositivos aparece en los manejadores de dispositivos.
Cada controlador posee uno o más registros de dispositivos:
- Se utilizan para darle los comandos.
- Los manejadores de dispositivos proveen estos comandos y verifican su ejecución adecuada.
La labor de un manejador de dispositivos es la de:
- Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo.
- Verificar la ejecución de dichas solicitudes.
Si al recibir una solicitud el manejador esta ocupado con otra
solicitud, agregara la nueva solicitud a una cola de solicitudes
pendientes.
La solicitud de e / s, por ej. para un disco, se debe traducir de términos abstractos a términos concretos:
La solicitud de e / s, por ej. para un disco, se debe traducir de términos abstractos a términos concretos:
- El manejador de disco debe:
- Estimar el lugar donde se encuentra en realidad el bloque solicitado.
- Verificar si el motor de la unidad funciona.
- Verificar si el brazo esta colocado en el cilindro adecuado, etc.
- Resumiendo: debe decidir cuales son las operaciones necesarias del controlador y su orden.
- Envía los comandos al controlador al escribir en los registros de dispositivo del mismo.
- Frecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo; una interrupción lo libera de este bloqueo.
- Al finalizar la operación debe verificar los errores.
- Si todo esta o.k. transferirá los datos al software independiente del dispositivo.
- Regresa información de estado sobre los errores a quien lo llamo.
- Inicia otra solicitud pendiente o queda en espera.
Mecanismos y funciones de los manejadores de dispositivos: device drivers
El controlador es el
componente más importante desde el punto de vista del sistema operativo, ya que
constituye la interfaz del dispositivo con el bus de la computadora y es el
componente que se ve desde la CPU. El Sistema Operativo generalmente trabaja
con el controlador y no con el dispositivo.
Tecnicas de E/S
E/S programada: El procesador emite
una orden de E/S de parte de un proceso a un modulo de E/S; el proceso espera
entonces a que termine la operación, antes de seguir.
E/S dirigida por
interrupciones: El procesador emite una orden de E/S de parte de un proceso, continua
la ejecución de las instrucciones siguientes y el modulo de E/S lo interrumpe
cuan do completa su trabajo. Las instrucciones siguientes pueden ser del mismo
proceso, si no es necesario para este esperar la terminación de E/S. en otro
caso, el proceso se suspende a la espera de la interrupción, mientras se
realiza otro trabajo.
Acceso Directo a la
Memoria (DMA): unmodulo de DMA controla el intercambio de datos entre la
memoria principal y un modulo de E/S. El procesador envía una petición de
transferencia de un bloque de datos al modulo DMA y se interrumpe solo cuando
se ha transferido el bloque entero.
En la mayoría de los sistemas
informáticos, el DMA es la forma dominante de transferencia ofrecida por el
sistema operativo.
Sin interrupciones
|
Con interrupciones
|
|
Transferencia de
E/S a memoria a través del procesador
|
E/S programada
|
E/S dirigida por
interrupciones
|
Transferencia de
E/S directa a memoria
|
Acceso directo a
memoria (DMA)
|
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.
A medida que han
evolucionado los sistemas informáticos, se ha producido tendencia crecientes en
la complejidad y sofisticación de cada componente individual. En ninguno de los
puntos es mas evidente que en la función deE/S. la etapa de su evolución puede
resumirse como lo siguiente:
1.- El procesador
controla directamente los dispositivos periféricos.
2.- Se añade un
controlador o modulo de E/S. El procesador utiliza E/S programada sin
interrupciones.
3.- Se añade un
controlador o modulo. Pero empleándose interrupciones.
4.- El modulo de E/S
recibe el control directo de la memoria, a través de DMA, Ahora puede mover un
bloque de datos a la memoria o desde la misma sin que intervenga el procesador.
5.- se mejora el
modulo de E/S hasta llegar a ser un procesador separado con un conjunto de
instrucciones especializadas para E/S.
6.- El modulo de E/S
posee su propia memoria local y es, de hecho un computador independiente.
A medida que sigue la evolución, una
mayor parte de la funciones de E/S se realiza sin la participación del
procesador. El procesador central se libera cada vez más de las tareas
relacionadas con la E/S, mejorando así el rendimiento.
Estructuras de datos para manejo de dispositivos
¿Qué es una estructura?
Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente. La estructura es generalmente modular, cada modulo cumple una función determinada e interactúa con los demás módulos.
Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente. La estructura es generalmente modular, cada modulo cumple una función determinada e interactúa con los demás módulos.
Estructura simple
El sistema MS-DOS es, sin duda, el mejor sistema operativo para microcomputadoras. Sin embargo, sus interfaces y niveles de funcionalidad no están bien definidos. Los programas de aplicación pueden acceder a operaciones básicas de entrada / salida para escribir directamente en pantalla o discos. Este libre acceso, hace que el sistema sea vulnerable, ya que un programa de aplicación puede eliminar por completo un disco rígido por alguna falla. Además este sistema, también esta limitado al hardware sobre el que corre.
Otra estructura simple es la utilizada por la versión original de UNIX, esta consiste de dos partes separadas, el kernel y los programas de sistemas . El kernel fue posteriormente separado en manejadores (drivers) de dispositivos y una serie de interfaces. El kernel provee el sistema de archivos, la programación de CPU, el administrador de memoria y otras funciones del sistema operativo que responden a las llamadas del sistema enunciadas anteriormente.
El sistema MS-DOS es, sin duda, el mejor sistema operativo para microcomputadoras. Sin embargo, sus interfaces y niveles de funcionalidad no están bien definidos. Los programas de aplicación pueden acceder a operaciones básicas de entrada / salida para escribir directamente en pantalla o discos. Este libre acceso, hace que el sistema sea vulnerable, ya que un programa de aplicación puede eliminar por completo un disco rígido por alguna falla. Además este sistema, también esta limitado al hardware sobre el que corre.
Otra estructura simple es la utilizada por la versión original de UNIX, esta consiste de dos partes separadas, el kernel y los programas de sistemas . El kernel fue posteriormente separado en manejadores (drivers) de dispositivos y una serie de interfaces. El kernel provee el sistema de archivos, la programación de CPU, el administrador de memoria y otras funciones del sistema operativo que responden a las llamadas del sistema enunciadas anteriormente.
Estructura por capas (layers)
Las nuevas versiones de UNIX se diseñaron para hardware mas avanzado. Para dar mayor soporte al hardware, los sistemas operativos se dividieron en pequeñas partes. Ahora los sistemas operativos tienen mayor control sobre el hardware y las aplicaciones que se ejecutan sobre este.
La modularizacion de un sistema se puede presentar de varias formas, la mas utilizada es la de capas, la cual consiste en dividir al sistema operativo en un numero de capas. La capa de menor nivel es el hardware y la de mayor nivel es la interfaz con el usuario.
La principal ventaja es que cada capa cumple con una serie de funciones y servicios que brinda a las otras capas, esto permite una mejor organización del sistema operativo y una depuración mas fácil de este.
Cada capa se implementa solo utilizando las operaciones provistas por la capa de nivel inferior. Una capa no necesita saber como se implementan estas funciones, solo necesita saber que operaciones puede realizar.
Las nuevas versiones de UNIX se diseñaron para hardware mas avanzado. Para dar mayor soporte al hardware, los sistemas operativos se dividieron en pequeñas partes. Ahora los sistemas operativos tienen mayor control sobre el hardware y las aplicaciones que se ejecutan sobre este.
La modularizacion de un sistema se puede presentar de varias formas, la mas utilizada es la de capas, la cual consiste en dividir al sistema operativo en un numero de capas. La capa de menor nivel es el hardware y la de mayor nivel es la interfaz con el usuario.
La principal ventaja es que cada capa cumple con una serie de funciones y servicios que brinda a las otras capas, esto permite una mejor organización del sistema operativo y una depuración mas fácil de este.
Cada capa se implementa solo utilizando las operaciones provistas por la capa de nivel inferior. Una capa no necesita saber como se implementan estas funciones, solo necesita saber que operaciones puede realizar.
Operaciones de Entrada /salida
Funciones que realizan:
Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida:
- Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.
- Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
- Sincronización y coordinación de las operaciones.
Esta ultima función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes).
Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida:
- Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.
- Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
- Sincronización y coordinación de las operaciones.
Esta ultima función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes).
Se define una transferencia elemental de información como la
transmisión de una sola unidad de información (normalmente un byte) entre el
procesador y el periférico o viceversa. Para efectuar una transferencia
elemental de información son precisas las siguientes funciones:
- Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
- Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionara las líneas de control necesarias.
- Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
- Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionara las líneas de control necesarias.
Definiremos una operación de E/S como el conjunto de acciones
necesarias para la transferencia de un conjunto de datos (es decir, una
transferencia completa de datos). Para
la realización de una operación de E/S se deben efectuar las
siguientes funciones:
- Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU y el periférico.
- Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
- Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
- Conversión de códigos , conversión serie/paralelo, etc.
- Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU y el periférico.
- Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
- Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
- Conversión de códigos , conversión serie/paralelo, etc.
No hay comentarios:
Publicar un comentario