Compartir a través de


Contexto de subproceso de controlador

Como se muestra en la figura Procesamiento de IRP en controladores en capas , un sistema de archivos es un controlador de dos partes:

  1. Un controlador del sistema de archivos (FSD), que se ejecuta en el contexto de un subproceso en modo de usuario que llama a un servicio del sistema de E/S.

    El administrador de E/S envía el IRP correspondiente al FSD. Si el FSD configura una rutina de finalización para un IRP, su rutina de finalización no se llama necesariamente en el contexto del subproceso original de modo usuario.

  2. Un conjunto de subprocesos del sistema de archivos y, posiblemente, un FSP (proceso del sistema de archivos)

    Un FSD puede crear un conjunto de subprocesos del sistema dedicados al controlador, pero la mayoría de los FSD usan subprocesos de trabajo del sistema para realizar el trabajo sin poner en marcha subprocesos en modo de usuario que realizan solicitudes de E/S. Cualquier FSD puede configurar su propio espacio de direcciones de proceso en el que se ejecutan sus subprocesos dedicados al controlador, pero los FSD proporcionados por el sistema evitan esta práctica para conservar la memoria del sistema.

Los sistemas de archivos suelen usar subprocesos de trabajo del sistema para configurar y administrar colas de trabajo internas de IRP que envían a uno o varios controladores de nivel inferior, posiblemente para diferentes dispositivos.

Aunque el controlador de nivel más bajo que se muestra en la figura Procesamiento de IRP en controladores en capas procesa cada IRP en fases a través de un conjunto de rutinas discretas proporcionadas por controladores, no usa subprocesos del sistema como lo hace el sistema de archivos. Un controlador de nivel inferior no necesita su propio contexto de subproceso a menos que la configuración de su dispositivo para E/S sea un proceso tan prolongado que tenga un efecto notable en el rendimiento del sistema. Pocos controladores de nivel inferior o intermedio necesitan configurar sus propios subprocesos del sistema dedicados al controlador o al dispositivo, y aquellos que lo hacen sufren una penalización de rendimiento debido a los cambios de contexto a sus subprocesos.

La mayoría de los controladores en modo kernel, como el controlador de dispositivo físico en la figura Procesamiento de IRPs en controladores en capas, se ejecutan en un contexto de subproceso arbitrario: el de cualquier subproceso que esté activo cuando se les llama para procesar un IRP. Por lo tanto, los controladores suelen mantener el estado sobre sus operaciones de E/S y los dispositivos que gestionan en una parte definida por el controlador dentro de sus objetos de dispositivo, llamada extensión de dispositivo.