Introduzione agli oggetti thread

Un oggetto thread in modalità utente rappresenta un percorso di esecuzione all'interno del processo corrente. Ogni oggetto thread in modalità utente viene implementato tramite l'uso di un oggetto thread in modalità kernel incorporato.

Un oggetto thread in modalità kernel è un'istanza di un tipo di oggetto dispatcher definito dal kernel. Il thread che rappresenta è l'entità pianificabile di base nel sistema operativo.

Oggetto thread:

  • Viene inviato per l'esecuzione dal kernel.

  • Le proprietà seguenti sono disponibili in qualsiasi momento:

    • stato di invio

    • priority

    • context

    • Modalità di esecuzione (kernel o utente)

    • Affinità

  • È "di proprietà" di un oggetto processo, ma può collegarsi allo spazio indirizzi di un altro processo.

In genere, la maggior parte dei driver viene eseguita nel contesto del thread attualmente in esecuzione, ovvero in un contesto di thread arbitrario. Anche se un driver di file system può creare un processo indipendente per i propri thread dedicati ai dispositivi, i file system in genere evitano di configurare un processo e thread creati dal driver per risparmiare memoria di sistema e per evitare il sovraccarico dei commutatori di contesto.

I gruppi di sicurezza di rete (e altri driver) possono configurare thread dedicati al dispositivo (system-process) e/o FSs possono usare thread di lavoro di sistema se necessitano di un contesto di thread specifico del driver in cui eseguire. I driver usano le routine PsXxx in modalità kernel per creare processi e/o thread dedicati ai dispositivi. I gruppi di sicurezza di dominio chiamano routine ExXxx per usare i thread di lavoro di sistema.