E/S En Windows
Enviado por lipe182 • 7 de Agosto de 2013 • 2.409 Palabras (10 Páginas) • 366 Visitas
El sistema de entrada/salida (E/S) de Windows es el que permite utilizar los dispositivos conectados al ordenador, protegiéndolos para que solo se pueda acceder a ellos a través de las funciones que proporciona el sistema operativo, y nunca puedan hacerlo directamente los programas del usuario.
De esta forma facilita el acceso a los mismos e independiza los programas de los dispositivos, ofreciendo además la seguridad en su uso cuando quieran acceder varios procesos a los mismos, y facilitar la escalabilidad del sistema al permitir añadir o quitar dispositivos o drivers sin necesidad de realizar cambios en los programas o el sistema.
Las operaciones de entrada y salida en Windows son síncronas, es decir, esperan hasta que finalice la operación del dispositivo.
En Windows, la mayoría de las operaciones de E/S son síncronas, es decir, el proceso esperará hasta que se haya completado la operación en el dispositivo hardware. Así es como funcionan las funciones de lectura o escritura habituales, ya que obligan a esperar al hilo hasta que el sistema les devuelva el control, lo que hará cuando haya terminado la operación, tanto si es correcta la terminación como con errores.
Windows también admite operaciones de E/S asíncronas, donde el hilo lanza la petición y sin esperar a que haya terminado, sigue con su ejecución, mientras el dispositivo hace la transferencia de los datos para atender la operación cursada. Esto favorece el rendimiento de los procesos, pero complica la gestión, ya que el proceso puede tener la necesidad de conocer cómo ha finalizado la operación y, por lo tanto tendrá que tener alguna forma de poder hacerlo, ya que no podrá acceder a los datos hasta que el dispositivo haya terminado de tratar la petición. Para poder trabajar en modo asíncrono con un dispositivo habrá que indicarlo a la hora de abrirlo para su uso (flag FILE_FLAG_OVERLAPPED). La forma de comprobar si una operación asíncrona ha terminado es por medio de la función HasOverlappedIo-Completed.
Otra característica importante de la gestión de la entrada/salida en Windows es la posibilidad de cargar y descargar los drivers en cualquier momento, ya sea en el arranque del sistema, o a lo largo de la sesión cuando lo desee el administrador o usuario, de esta forma sólo consumirán recursos cuando realmente se necesiten, mejorando así el rendimiento global del sistema.
Con las últimas versiones se soportan las técnicas de Plug and Play (PnP) que permite detectar cualquier dispositivo que se conecte al sistema, de manera que en ese momento se carga el driver correspondiente si no estuviera ya cargado previamente. También es importante resaltar que el gestor de E/S lleva a cabo la gestión de la energía o consumo eléctrico de los dispositivos, de forma que cuando están inactivos les permite entrar en estados de bajo consumo.
El sistema de E/S se compone de varios módulos especializados para lograr las funciones que hemos descrito en los párrafos anteriores. Los principales módulos son:
Componentes del sistema de E/S
* El gestor de E/S: hace que las aplicaciones de usuario y sistema se puedan conectar y usar dispositivos virtuales, lógicos, y físicos; y define la infraestructura que soporta los drivers de dispositivos. Este componente forma parte del sistema operativo.
* El driver de dispositivo: proporciona un interface de E/S para un determinado tipo de dispositivo. Los drivers reciben peticiones canalizadas a través del gestor de E/S y las dirigen al dispositivo concreto, e informan al gestor de que se ha completado la operación de E/S. Estos módulos los desarrolla cada fabricante del dispositivo que se quiere controlar, aunque Windows suele ofrecer los drivers de los dispositivos comunes que haya en el mercado, o drivers genéricos que pueden atender una gran mayoría de tipos diversos de dispositivos.
* El gestor de PnP: trabaja estrechamente con el de E/S y con el llamado driver de bus para realizar la asignación de recursos de hardware, así como para detectar y responder a la instalación y desinstalación de los dispositivos hardware según se conecten o desconecten del ordenador. El gestor de PnP y el driver de bus son responsables de cargar el driver de dispositivo cuando se detecta el dispositivo. Si el dispositivo detectado no tiene un driver asociado, este módulo Plug and Play llama a los servicios de instalación de dispositivos del gestor de PnP en modo usuario. Este componente, al igual que el gestor de E/S también forma parte del sistema operativo.
* El gestor de energía: facilita al sistema, así como a los drivers de dispositivo, los cambios de estado de consumo de energía eléctrica de acuerdo con la actividad del dispositivo.
* Windows Management Instrumentation (WMI): conjunto de rutinas que dan lugar al Windows Driver Model (WDM), permitiendo el desarrollo de nuevos drivers.
Vamos a dedicar este documento el gestor de E/S y al procesamiento de las operaciones de entrada y salida de datos, dejando para otros artículos la descripción de los drivers y cómo escribirlos.
Tratamiento de una operación de E/S
Una operación de entrada/salida empieza porque un hilo realiza una petición o llamada al sistema operativo. En este momento se producirá una interrupción en el sistema, y entrará a gestionar dicha petición el sistema operativo, sin que todavía tenga nada que ver con la gestión de E/S propiamente dicha. Una vez que el sistema ha analizado la petición y comprueba que se trata de la solicitud de un servicio de E/S, entonces llama al gestor de E/S que será el que estudie la petición y dirija la misma al driver adecuado para tratarla.
Las peticiones de E/S que realizan los hilos en Windows las hacen sobre ficheros virtuales, aunque la operación no tenga ninguna relación con lo que conocemos como un fichero, facilitando así el tratamiento de las operaciones que se vayan a realizar sobre los dispositivos, ya que desde el punto de vista del proceso es como si se tratase de ficheros.
La petición así cursada pasará por varios estados, que dependerán del tipo de dispositivo al que vayan dirigidas. También variará dependiendo de si la operación es asíncrona o síncrona.
Desde el punto de vista del tratamiento de las peticiones, el gestor de E/S actúa de forma asíncrona, es decir, lanza la operación y devuelve el control al sistema operativo.
Flujo del tratamiento de una petición de Entrad/salida
Cuando un hilo llama a un servicio de E/S, el gestor de E/S construye un paquete de petición de E/S o IRP (I/O Request Packet) para contener los datos de la operación necesarios para todos los pasos que necesite la operación a través del sistema de E/S. Después
...