miércoles, 14 de mayo de 2014

Dispositivos de Entrada y Salida



 Modulos de entrada y salida   
  • Bus de datos: de 8, 16, 32 ´o 64 bits dependiendo del modelo (64 bits para los Pentiums de ultima generación). El número de bits se usa, en general, para determinar el tamaño(size) del procesador. 
  • Bus de direcciones: para poder conectar la CPU con la memoria y con los dispositivos de entrada/salida.  
  • Bus de control: para enviar señales que determinan cómo se comunica el CPU con el resto del sistema (por ejemplo, las líneas de lectura (read) y escritura (write) especifican qué es lo que se está haciendo en la memoria).


Una de las funciones principales de un sistema operativo consiste en controlar todos los dispositivos de entrada y salida de la computadora. Este debe emitir comandos a los dispositivos, capturar interrupciones y manejar errores.
También debe proporcionar una interfaz entre los dispositivos y el resto del sistema que sea simple y fácil de utilizar.  El código de e/s representa una fracción significativa del sistema operativo en su totalidad.
Los dispositivos de E/S se pueden clasificar en dos categorías: dispositivos de bloque y dispositivos de caracteres.

Dispositivos de bloque 

Es aquel dispositivo que almacena información en bloques de tamaño fijo, cada uno con su dirección, los tamaños comunes de bloques vas de 128 bytes a 1024 bytes. 
La propiedad esencial de un dispositivo de bloque es que es posible leer o escribir cada bloque de forma independiente de los demás, es decir que el programa en cualquier momento puede  leer o escribir en cualquiera de los bloques.
Es un dispositivo de bloque por que no importa donde este el brazo del lector, siempre es posible buscar otro cilindro y esperar a que el bloque requerido se encuentre debajo de la cabeza. Ahora si se considera una cinta magnética que contenga bloques de 1K bytes.
Disco Si la unidad de cinta le da un comando de leer el bloque N, esta siempre puede regresar la cinta y adelantarla asta que encuentre el bloque N. 
 
Dispositivos de caracter

Este envía y recibe  un flujo de caracteres, sin sujetarse a una estructura de bloques. No se puede utilizar direcciones ni tienen una operación de búsqueda. 
Las terminales, impresoras de línea, cintas de papel, tarjetas perforadoras, interfaces de una red, ratones y los otros dispositivos no parecidos a los discos son dispositivos de carácter.

 

 Interrupciones

En la E/S programada el procesador tiene que esperar un tiempo considerable a que el  módulo de E/S esté preparado para realizar la operación. El procesador espera comprobando  repetidamente el estado del módulo de E/S, degradándose significativamente el rendimiento de la  CPU. Para evitar este inconveniente se introdujo el sistema de interrupciones en los procesadores.  Básicamente una interrupción viene determinada por la ocurrencia de una señal externa que  provoca la bifurcación a una dirección especifica de memoria, interrumpiendo momentáneamente  la ejecución del programa.
En el caso de la entrada/salida por interrupciones, es el dispositivo quien establece el momento en que se realiza la transferencia de los datos, avisando a la CPU de que ha ocurrido un evento (por ejemplo, que el usuario haya presionado una tecla). En este punto, debemos aclarar que en la familia 80x86 existen tres tipos de interrupciones, que a veces producen confusión por la nomenclatura empleada en diversos textos:
1. Las traps o interrupciones software son interrupciones invocadas por el usuario desde programa. En este caso, la CPU pasa a ejecutar el manejado de trap asociado (su rutina de atención a la interrupción o ISR2).
2. Las excepciones son traps generadas automaticamente en respuesta a alguna condición excepcional producida al intentar ejecutar una instrucción: división por cero, codigo de
operación ilegal. . . También en este caso se ejecuta la ISR asociada, decidiendo, en su caso, que hacer con la situación anómala.
3. Las interrupciones hardware, a las que llamaremos simplemente “interrupciones”, se basan en un evento hardware externo a la CPU y no relacionado con la secuencia de instrucciones que se este ejecutando en ese momento. Son las que un ingeniero electrónico mas intuitivamente relacionarıa con el termino “interrupción”, y con las que vamos a tratar en este proyecto.
Para cada tipo de interrupción, por tanto, se puede instalar una rutina de atención o servicio de interrupción. Cuando la CPU recibe notificación de la interrupción detiene el programa en ejecución, ejecuta la ISR (es decir, sirve al dispositivo haciendo que cese su petición de interrupción (si es necesario, se accede al controlador de interrupciones para hacer lo mismo)) y finalmente devuelve el control al programa, restaurando su estado anterior.