viernes, 10 de septiembre de 2010
Estructura de Software de E/S
Objetivos:
1. Independencia del dispositivo: posibilidad de no tener que modificar los programas para cada tipo de dispositivo. 2. Manejo de errores: es mejor tratar los errores cuanto más cerca del hardware. 3. Tipo de transferencias: hacer que las operaciones que son controladas por interrupción parezcan al programa controladas por él. 4. Tipos de dispositivos: gestionar los dispositivos no compartibles. Niveles del software de E/S
Niveles (Tanenbaum) Software de E/S a nivel de usuario Software de E/S independiente del dispositivo Software de E/S dependiente del dispositivo Manejadores de interrupciones HARDWARE Petición de E/S Respuesta de E/S Software de E/S a nivel de usuario
No forma parte del S. O.. Consiste en bibliotecas que se enlazan con los programas de usuario y a través de las cuales se realizan las llamadas al S. O..
Funciones:
1. colocar los parámetros en el lugar adecuado para realizar la petición a niveles inferiores. 2. interpretar la información que se recibe o se manda (formatear). 3. informar del error en caso de que se haya producido al realizar la operación de E/S. Software de E/S independiente del dispositivo Pertenece al S. O.. Cuando el nivel anterior realiza una petición a este se origina la ejecución de una rutina de este software de E/S.
Problemática de los dispositivos de E/S
1. Diferencia de velocidad: de los periféricos frente a la C. P. U. y entre
los propios dispositivos de E/S.
2. Unidad de transferencia: caracteres, palabras, bytes, bloques o
registros.
3. Representación de los datos: usar distintos códigos para un mismo
elemento de información en diferentes periféricos.
4. Operaciones permitidas: por ejemplo, existen periféricos que solo
realizan entradas y otros que solo realizan salidas, etc.
5. Condiciones de error: las causas por las que no se puede completar con
éxito una transferencia de datos depende del periférico que se utilice.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
Objetivos generales del software de E/S
1. Independencia del periférico. Aspectos a considerar:
a) Un programa debe de ser independiente del modelo del periférico de
un tipo determinado de periférico que le sea asignado.
b) Un programa sea independiente lo más posible, del tipo de periférico
empleado.
2. Eficiencia.
3. Tratamiento uniforme de los periféricos. Consecuencias:
a) Independencia del código de los caracteres: el sistema de E/S es el
responsable de reconocer los distintos códigos que usan los periféricos
y traducirlos a una representación interna uniforme, denominada
código interno de los caracteres, para los programas. Esta conversión
se realiza después de la entrada y antes de la salida.
Objetivos generales del software de E/S
ficheros) y no sobre físicos: el S. O. es el que asocia los streams con los
periféricos reales, guardando en una lista de descriptores de streams dicha
correspondencia.
c) El sistema de E/S se debe construir de forma que las características de los
periféricos estén ligadas a ellos, en vez de a las rutinas que los gestiona.
Esto se obtiene codificando dichas características en una tabla de
descriptores de periférico, de forma que los programas de gestión de los
periféricos obtienen de ellas la información necesaria. Entre otra:
Identificación del periférico, Instrucciones con las que actúa,
Punteros a las tablas para la traducción de los caracteres,
Estado actual (ocupado, libre o estropeado),
Proceso de usuario en curso.
Principios hardware de E/S
A. Tipos de dispositivos de E/S.
1. dispositivos de bloques: almacenan la información en bloques de
tamaño fijo.
2. dispositivos de caracteres: producen o aceptan flujos de caracteres
sin ninguna estructura de bloques.
B. Controladores de dispositivos: parte que controla al dispositivo.
Los controladores usan unos cuantos registros denominados puertos para
comunicarse con el procesador. A través de ellos se transfieren: comandos
u ordenes, que hacen que el controlador inicie determinadas operaciones
sobre el dispositivo; parámetros que indican como debe funcionar el
dispositivo; y datos, ya sean de escritura o de lectura según el sentido de la
operación.
Bibliografía
D. Patterson y J. Hennessy. Computer Organization and Design: The Hardware/Software
Interface. Morgan Kaufmann, 1994.
W. Stallings. Computer Organization and Architecture, 4• edición, Prentice-Hall, 1996
A. S. Tanenbaum. Structured Computer Organization, 4• edición, Prentice-Hall, 1999
Gestor de Entrada/Salida (E/S)
Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.
Este sistema proporciona un medio para tratar los archivos y dispositivos de manera uniforme, actuando como interfaz (debe ser independiente, sencilla y fácil de utilizar) entre los usuarios y los dispositivos de e/s que pueden ser manipulados por órdenes de alto nivel.
Dispositivos de E/S
Los principales dispositivos internos son los discos RAM, que usan una porción de memoria pre-asignada para almacenar los bloques. Tienen la ventaja de que el acceso es instantáneo (a la velocidad de la memoria central).
- Leíbles por humanos: apropiados para comunicarse con el usuario. Ej: Mouse, terminales de video, etc.
- Leíbles por la maquina: para comunicarse con el equipo electrónico. Ej; discos, sensores, drivers de cinta, etc.
- Comunicación: para comunicarse con drivers remotos. Ej: Líneas digitales, modems, etc.
- Velocidad de transmisión de datos
- SW, HW y políticas de apoyo de S.O. que requiere el dispositivo.
- Complejidad de control: Se refiere a la complejidad que requieren los dispositivos de I/O, Una impresora necesita una interface de control mas simple que un disco.
- Unidad de transferencia: puede ser como una cadena de bytes o caracteres o como largos bloques.
- Representación de los datos: Cada dispositivo utiliza distintos códigos de datos de programa, incluyendo diferentes código de caracteres y conversiones de paridad.
- Condiciones de error: Cada dispositivo difiere en naturaleza de error, como se reportan, las consecuencias, etc.
- Eficiencia: la mayoría de los dispositivos de I/O son extremadamente lentos comparados con la memoria principal y el procesador. Por esto se necesita la multiprogramación. Permite que algunos procesos esperen en las operaciones de I/O mientras otro se ejecuta. Sin embargo, se sigue malgastando tiempo de procesador. Para esto se puede utilizar Swapping, que trae procesos listos adicionales para mantener al procesador ocupado. Finalmente, el mejor esfuerzo de programa de diseño para mejorar la eficiencia de I/O fue el propio disco de I/O.
- Generalidad: se trata de manejar un numero de dispositivos de manera uniforme. Como es difícil alcanzar generalidad entre las distintas características de los dispositivos, se utiliza un mecanismo para el diseño de los dispositivos de I/O que se encarga de esconder la mayoría de los detalles de los dispositivos en el nivel mas bajo de rutinas para que los procesos y los niveles mas altos del SO vean a los dispositivos como funciones generales. Ej.: leer, cerrar, abrir, etc
- E/S programada: En el procesador se activa un comando de I/O, en representación de un proceso y hacia un modulo de I/O, luego ese proceso tiene tiempos de espera hasta que la operación se complete para proceder. Ejecuta cuatro tipos de comandos: control, verificación, lectura y escritura.
- E/S por interrupciones: Es igual que el anterior pero antes de terminar la operación o las instrucciones, el modulo de I/O envía una señal de interrupción. Se suspende el proceso y se prepara otro trabajo. Esto incrementa la eficiencia.
- Acceso directo a memoria (DMA): Controla el intercambio de datos entre la memoria principal y el modulo de I/O. El procesador envía una petición de transferencia de un bloque de datos a la DMA y se interrumpe solo cuando todo el bloque es transferido. El procesador solo se involucra al principio y al final del proceso.
El canal de E/S es una extensión del concepto de DMA. Un canal de E/S tiene la capacidad de ejecutar instrucciones de E/S, lo que le da un control total sobre las operaciones de E/S. En un sistema informático que conste de tales dispositivos, las instrucciones de E/S se almacenan en la memoria principal y serán ejecutadas por un procesador de propósito específico en el mismo canal de E/S. Así, la CPU inicia una transferencia de E/S ordenando al canal que ejecute un programa en la memoria. Los canales de E/S pueden realizar las transferencias de datos en serie o en paralelo.
- Canal selector: controla varios dispositivos y transfiere datos de estos dispositivos, uno por vez.
- Canal multiplexor: puede manejar la E/S con varios dispositivos al mismo tiempo.