Freigeben über


Einführung in Threadobjekte

Ein Benutzermodus-Threadobjekt stellt einen Ausführungspfad innerhalb des aktuellen Prozesses dar. Jedes Benutzermodusthreadobjekt wird mithilfe eines eingebetteten Kernelmodus-Threadobjekts implementiert.

Ein Threadobjekt im Kernelmodus ist ein instance eines vom Kernel definierten Dispatcherobjekttyps. Der Thread, den es darstellt, ist die grundlegende, planbare Entität im Betriebssystem.

Ein Threadobjekt:

  • Wird zur Ausführung durch den Kernel verteilt.

  • Verfügt jederzeit über die folgenden Eigenschaften:

    • Dispatchstatus

    • priority

    • context

    • Ausführungsmodus (Kernel oder Benutzer)

    • Affinität

  • Gehört einem Prozessobjekt, kann sich aber an den Adressraum eines anderen Prozesses anfügen.

In der Regel werden die meisten Treiber im Kontext des derzeit ausgeführten Threads ausgeführt, d. h. in einem beliebigen Threadkontext. Während ein Dateisystemtreiber einen unabhängigen Prozess für seine eigenen gerätededizierten Threads erstellen kann, vermeiden Dateisysteme in der Regel die Einrichtung eines vom Treiber erstellten Prozesses und Threads, um Systemspeicher zu sparen und den Mehraufwand durch Kontextwechsel zu vermeiden.

FSs (und andere Treiber) können gerätededizierte Threads (Systemprozess) einrichten, und/oder FSs können Systemarbeitsthreads verwenden, wenn sie einen treiberspezifischen Threadkontext benötigen, in dem ausgeführt werden soll. Treiber verwenden die PsXxx-Routinen im Kernelmodus, um Prozesse und/oder dedizierte Gerätethreads zu erstellen. FSs rufen ExXxx-Routinen auf, um Systemworkerthreads zu verwenden.