Compartir a través de


Contexto del subproceso del controlador

Como se muestra en la figura Procesamiento de IRP en controladores superpuestas , 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, no se llama necesariamente a su rutina de finalización en el contexto del subproceso en modo de usuario original.

  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 crear subprocesos en modo de usuario que realicen solicitudes de E/S. Cualquier FSD podría 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 Procesar IRP en controladores superpuestas procesa cada IRP en fases a través de un conjunto de rutinas discretas proporcionadas por controladores, no usa subprocesos del sistema como 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 intermedios o de nivel más bajo deben configurar sus propios subprocesos de sistema dedicados al controlador o dedicados al dispositivo, y aquellos que pagan una penalización de rendimiento causada por los conmutadores de contexto a sus subprocesos.

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