Вы находитесь на странице: 1из 4

4.

3 ESTRUCTURA DE DATOS PARA MANEJO DE DISPOSITIVOS


FUENTE: http://www.mitecnologico.com/Main/EstructurasDeDatosParaManejoDeDispositivos

Qu es una estructura? Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniera correcta para su fcil actualizacin y para que puedan cumplir su funcin correctamente. La estructura es generalmente modular, cada modulo cumple una funcin determinada e interacta con los dems mdulos.

Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operacin de E/S, el sistema operativo prepara dicha operacin y bloquea al proceso hasta que se recibe una interrupcin del controlador del dispositivo indicando que la operacin est completa. Las peticiones se procesan de forma estructurada en las siguientes capas: Manejadores de interrupcin. Manejadores de dispositivos o drivers. Software de E/S independiente de los dispositivos. Este software est formado por la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques y el servidor de archivos. Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de usuario. El sistema operativo estructura el software de gestin de E/S de esta forma para ofrecer a los usuarios una serie de servicios de E/S independientes de los dispositivos. Esta independencia implica que deben emplearse los mismos servicios y operaciones de E/S para leer datos de un disquete, de un disco duro, de un CD-ROM o de un teclado. Manejadores de interrupcin Los manejadores de interrupcin se encargan de tratar las interrupciones que generan los controla dores de dispositivos una vez que stos estn listos para la transferencia de datos o bien han ledo o escrito los datos de memoria principal en caso de acceso directo a memoria. Para tratar dicha interrupcin se ejecuta el correspondiente manejador de interrupcin cuyo efecto es el de salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecucin de un proceso (que no tiene por qu ser el interrumpido).

Los manejadores de interrupcin suelen hacer algo ms que comunicar el evento al manejador de dispositivo. Cuando una interrupcin ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de informacin a transferir es muy pequea, caso del teclado, sera muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupcin registra la ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulacin de caracteres en un buffer del teclado. La notificacin al manejador se hace nicamente cada cierto nmero de ocurrencias del evento, en el caso del reloj, o activando unflag que indica que hay datos en el buffer del teclado. Manejadores de dispositivos Cada dispositivo de E/S, o cada clase de dispositivos, tiene un manejador asociado en el sistema operativo. Dicho manejador incluye: cdigo independiente del dispositivo para proporcionar al nivel superior del sistema operativo una interfaz de alto nivel y el cdigo dependiente del dispositivo necesario para programar el controlador del dispositivo a travs de sus registros y datos. La tarea de un manejador de dispositivo es aceptar peticiones en formato abstracto, de la parte del cdigo de E/S independiente del dispositivo, traducir dichas peticiones a trminos que entienda el controlador, enviar al mismo las rdenes adecuadas en la secuencia correcta y esperar a que se cumplan. La siguiente figura muestra un diagrama de flujo con las operaciones de un manejador. Todos los manejadores tienen una lista de peticiones pendientes por dispositivo donde se encolan las peticiones que llegan de niveles superiores. El manejador explora la lista de peticiones, extrae una peticin pendiente y ordena su ejecucin. La poltica de extraccin de peticiones de la lista es dependiente de manejador y puede ser FIFO. Una vez enviada la peticin al controlador, el manejador se bloquea o no, dependiendo de la velocidad del dispositivo. Para los lentos (discos) se bloquea esperando una interrupcin. Para los rpidos (pantalla, discos RAM, etctera) responde inmediatamente. Despus de recibir el fin de operacin, controla la existencia de errores y devuelve al nivel superior el estado de terminacin de la operacin. Si tiene operaciones pendientes en la cola de peticiones, atiende a la siguiente, en caso de que le toque ejecutar despus de la operacin de E/S. En caso contrario se bloquea. Software de E/S independiente del dispositivo La mayor parte del sistema de E/S es software independiente de dispositivo. Este nivel incluye el sistema de archivos y el de gestin de red, el gestor de bloques, la cache

de bloques y una parte de los manejadores de dispositivo. La principal funcin de esta capa de software es ejecutar las funciones de E/S que son comunes a todos los dispositivos a travs de una interfaz uniforme. Internamente, en este nivel se proporciona acceso a nivel de bloques o caracteres, almacenamiento intermedio, gestin de los dispositivos, planificacin de la E/S y control de errores. El tamao de acceso a nivel de bloques se hace usando tamaos de bloque de acceso comunes para todo un sistema de archivos, lo que permite ocultar que cada dispositivo puede tener distinto tamao de sector y distinta geometra. Estos detalles quedan ocultos por la capa de software in dependiente de dispositivo que ofrece una interfaz sobre la base de bloques lgicos del sistema de archivos. Lo mismo ocurre con los dispositivos de caracteres, algunos de los cuales trabajan con un carcter cada vez, como el teclado, mientras otros trabajan con flujos de caracteres, como el modem o las redes. Para optimizar la E/S y para armonizar las peticiones de usuario, que pueden ser de cualquier tamao, con los bloques que maneja el sistema de archivos, el software de E/S proporciona almacenamiento intermedio en memoria del sistema operativo. Esta facilidad se usa para tres cosas: Optimizar la E/S evitando accesos a los dispositivos. Ocultar las diferencias de velocidad con que cada dispositivo y usuario manejan los datos. Facilitar la implementacin de la semntica de comparticin, al existir una copia nica de los datos en memoria. El sistema de E/S mantiene buffers en distintos componentes. Por ejemplo, en la parte del manejador del teclado independiente del dispositivo existe un buffer para almacenar los caracteres que teclea el usuario hasta que se pueden entregar a los niveles superiores. Si se usa una lnea serie para leer datos de un sistema remoto y almacenarlos en el disco, se puede usar un buffer para guardar temporalmente los datos hasta que tengan una cierta entidad y sea rentable escribirlos a disco. Si se est leyendo o escribiendo un archivo, se guardan copias de los bloques en memoria para no tener que acceder al disco si se vuelven a leer. La gestin de los dispositivos agrupa a su vez tres servicios: nombrado, proteccin y control de acceso.

El nombrado permite traducir los nombres de usuario a identificadores del sistema. Por ejemplo, en UNIX, cada dispositivo tiene un nombre (p. ej.: /dev/cdrom) que se traduce en un nico identificador interno (o nodo-i), que a su vez se traduce en un nico nmero de dispositivo principal (clase de dispositivo) y secundario (elemento de la clase). Cada dispositivo tiene asociada una informacin de proteccin (en UNIX mediante 3 bits para dueo, grupo y mundo) y este nivel de software asegura que los requisitos de proteccin se cumplen. Adems proporciona control de acceso para que un dispositivo dedicado, como una impresora, sea accedido por un nico usuario cada vez. Una de las funciones principales del sistema de E/S es la planificacin de la E/S de los distintos componentes. Para ello se usan colas de peticiones para cada clase de dispositivo, de las que se extraen las peticiones de cada dispositivo en particular. Cada una de estas colas se ordena siguiendo una poltica de planificacin, que puede ser distinta en cada nivel. Imagine el caso de LINUX, donde existe una cola global de peticiones de E/S, ordenadas en orden FIFO, para los discos instalados. Cuando un manejador de disco queda libre, busca la cola global para ver si hay peticiones para l y, si existen, las traslada a su cola de peticiones particular ordenadas segn la poltica SCAN, por ejemplo. Este mecanismo permite optimizar la E/S al conceder a cada mecanismo la importancia que, ajuicio de los diseadores del sistema operativo, se merece. En el caso de Windows NT, por ejemplo, el ratn es el dispositivo de E/S ms prioritario del sistema. La razn que hay detrs de esta poltica es conseguir un sistema muy interactivo. En otros sistemas, como UNIX, las operaciones de disco son ms prioritarias que las del ratn para poder desbloquear rpidamente a los procesos que esperan por la E/S. Sea cual sea el criterio de planificacin, todos los sistemas de E/S planifican las actividades en varios lugares. Por ltimo, este nivel proporciona gestin de errores para aquellos casos que el manejador de dispositivo no puede solucionar. Un error transitorio de lectura de un bloque se resuelve en el manejador reintentando su lectura. Un error permanente de lectura no puede ser resuelto y debe ser comunicado al usuario para que tome las medidas adecuadas. En general, todos los sistemas operativos incluyen alguna forma de control de errores internos y de notificacin al exterior en caso de que esos errores no se puedan resolver. Imagine, por ejemplo, que una aplicacin quiere leer de un dispositivo que no existe. El sistema de E/S ver que el dispositivo no est y lo notificar a los niveles superiores hasta que el error llegue a la aplicacin. Sin embargo, es importante resaltar que los sistemas operativos son cada vez ms robustos y cada vez incluyen ms control y reparacin de errores, para lo cual usan mtodos de paridad, checksums, cdigos correctores de error, etc. Adems, la informacin que proporcionan cuando hay un error es cada vez mayor.

Вам также может понравиться