top of page

UNIDAD 3 - Entrada Y Salida

3.1 Principios del Hardware de E/S


Distintas personas analizan de varias maneras el hardware de E/S. Los ingenieros eléctricos lo hacen en términos de los chips, cables, fuentes de poder, motores y demás componentes físicos que conforman el hardware. Los programadores se fijan en la interfaz que se presenta el software (los comandos que acepta el hardware, las funciones que realiza y los errores que puede informar). Nos interesaremos por la programación de los dispositivos de E/S, no por su diseño, construcción o mantenimiento; así nuestro interés estará restringido a la forma de programar el hardware y no a su funcionamiento interno. Sin embargo, es frecuente que la programación de muchos dispositivos de E/S esté íntimamente ligada a su operación interna.



3.2 Dispositivos de E/S


Los dispositivos de E/S se pueden dividir de manera general en dos categorías: dispositivos de bloque y dispositivos de caracter. Un dispositivo 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 de un dispositivo de bloque es la posibilidad de leer o escribir en un bloque de forma independiente de los demás. En otras palabras, en todo momento, el programa puede leer o escribir en cualquiera de los bloques. Los discos son dispositivos de bloque. Vista de cerca, no está bien definida la frontera entre los dispositivos que se manejan mediante direcciones de bloques y los que no. Todos coinciden en que un disco es un dispositivo que trabaja mediante direcciones de bloques, puesto que no importa dónde se encuentre el brazo, siempre es posible buscar otro cilindro y después esperar hasta que el bloque necesario rote debajo de la cabeza. Consideremos ahora una cinta magnética con bloques de 1 k byte. Si la unidad de cinta recibe un comando para la lectura del bloque N, siempre puede rebobinar la cinta e ir hacia adelante hasta llegar a dicho bloque. Esta operación es análoga al proceso de búsqueda en un disco, excepto que tarda más tiempo. Además, podría ser posible reescribir un bloque a mitad de la cinta. Incluso en caso de que las cintas se pudieran utilizar como dispositivos de bloque, eso dificulta la distinción, pues por lo general no se emplea de esa forma. El otro tipo de dispositivo de E/S es el dispositivo de caracter. Un dispositivo de caracter envía o recibe 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 la línea, cintas de papel, tarjetas perforadas, interfaces de una red, ratones (para apuntar hacia la pantalla), ratas (para experimentos psicológicos de laboratorios) y muchos otros dispositivos no parecidos a los discos son dispositivos de caracter. Este esquema de clasificación no es perfecto. Algunos dispositivos no se ajustan a él. Por ejemplo, los relojes no tienen direcciones por medio de bloques. Tampoco generan o aceptan flujos de caracteres. Lo único que hacen es provocar interrupciones a intervalos bien definidos. Las pantallas mapeadas a memoria tampoco se ajustan al modelo. Aun así, el modelo de dispositivo de bloque y de carácter es lo bastante general para ser utilizado como base para trabajar el software de sistemas operativos en forma independiente del dispositivo de E/S. El sistema de archivos, por ejemplo, solo trabaja con dispositivos de bloque abstractos y encarga la parte que depende del dispositivo a un software de menor nivel, llamado manejador de dispositivo.


3.3 Controlador de dispositivo.


• Llamado normalmente controlador (en inglés, device driver) es un programa informático que permite al sistema operativointeractuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Es una pieza esencial, sin la cual no se podría usar el hardware.


3.4 Acceso directo a memoria (DMA).



• El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU) principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.

3.5 Estructura del subsistema de entrada/salida.



Conjunto de módulos  software del sistema operativo que manejan los  dispositivos de entrada/salida con la finalidad de:  Soportar sus especificidades, Manejarlos de forma eficiente y segura, Proporcionar una disciplina de manejo de uso uniforme, Lograr un grado alto de Independencia de los  programas en el uso los dispositivo de entrada/salida.

3.6 Elementos.



3.7 Gestores de interrupciones. Manejadores de dispositivo. Llamadas al sistema para entrada/salida Ejemplos de UNÍX y Windows NT.



Una interrupción consiste en la detención de la ejecución de un programa por la CPU, para ejecutar otro, y así sucesivamente hasta volver a ejecutar el primero de los progrmas detenidos. Los procesos multitarea multiusuario se han visto muy favorecidos por la creación de las interrupciones.



Manejadores de dispositivos.

El manejo de entrada/salida en UNIX



                  • En UNIX es posible ejecutar llamadas al sistema de entrada/salida de dos formas: síncrona y asíncrona. El modo síncrono es el modo normal de trabajo y consiste en hacer peticiones de lectura o escritura que hacen que el originador tenga que esperar a que el sistema le responda, es decir, que le de los datos deseados. A veces se requiere que un mismo proceso sea capaz de supervisar el estado de varios dispositivos y tomar ciertas decisiones dependiendo de si existen datos o no. En este caso se requiere una forma de trabajo asíncrona. Para este tipo de situaciones existen las llamadas a las rutinas 'select' y 'poll' que permiten saber el estado de un conjunto de descriptores.



El manejo de entrada/salida en Windows NT

                   • En Windows NT el manejador de las entradas y salidas debe ser considerado más bien como un despachador de las entradas y salidas al sistema, puesto que este módulo establece la comunicación entre los subsistemas protegidos y los controladores de dispositivos por otro lado.



Cuando cualquier aplicación solicita un servicio de entrada/salida, el manejador de entradas/salidas convierte la solicitud en un IRP (I/O request packet) e identifica el manejador de dispositivos adecuado para llevar acabo la requisición hecha por el proceso. Cada uno de los manejadores de dispositivos recibe el paquete de datos y lo procesa mandando el resultado hacia el manejador de entradas y salidas o si es necesario mandando su resultado al siguiente manejador de dispositivos para que procese su resultado, teniendo como destino final, el paquete de datos, el manejador de entradas y salidas. Después de que una requisición ha sido pasada a un manejador de dispositivos éste es responsable del control de las mismas a través de sistemas de colas.

3.8 Técnicas fundamentales.


3.9 Buffering. Spooling.



El SPOOL (Simultaneous Perifherical Operation On-Line) es una técnica que permite que las entradas y las salidas de un proceso tengan un paso intermedio en dispositivos de gran capacidad de almacenamiento. Esto permite que el computador trabaje con un proceso en concreto mientras los diferentes periféricos van sacando e incorporando información, de manera más lenta, al mismo tiempo. El ejemplo típico es el spool de impresora: un proceso puede obtener una gran cantidad de información en poco tiempo, y en cambio estos resultados pueden necesitar mucho tiempo para ser impresos. Otro caso muy corriente es el de trabajar con un procesador de textos y hacer una impresión de un documento relativamente largo. Si no se utiliza el spool, tanto el computador como el usuario no podrán hacer nada hasta que se termine de imprimir.

• Buffering. En la veces la velocidad de los periféricos no se adapta a la velocidad del procesador, porque los periféricos son lentos o porque el proceso trabaja a ráfagas. Es decir, que necesita conjuntos de información para procesar de golpe. Para solucionar este problema y que ni los periféricos ni el procesador se deban esperar mutuamente, el sistema operativo utiliza una memoria intermedia llamada buffer. La función de esta memoria es amortiguar las diferencias de velocidad.



3.10 Planificación de peticiones a discos.



Los algoritmos de planificación de peticiones de lectura y escritura a discos se encargan de registrar dichas peticiones y de responderlas en un tiempo razonable. Los algoritmos más comunes para esta tarea son:



                • Primero en llegar, primero en ser servido (FIFO)
                • Primero el más cercano a la posición actual
                • Por exploración (algoritmo del elevador)
                • Por exploración circular

bottom of page