Non Fondamentalement, il existe deux méthodes de base de la mise en œuvre multithreading dans un système d'exploitation:
1) préemptif Multitâche
Avec multi-tâches préemptif vous pouvez usw source d'interruption pour déclencher votre commutateur de tâche. La plupart du temps, on fait une commutation de tâches à l'intérieur de la minuterie au cas où une tâche de longue durée est exécutée et qu'aucun autre événement matériel n'est survenu. Dans le cas où d'autres événements matériels se sont produits, on pourrait également faire un changement de tâche pour bloquer les threads avec une priorité plus élevée pour permettre la gestion des événements matériels.
2) Coopérative multitâche
Dans multitâche coopératif du système d'exploitation threads commutateurs à chaque fois qu'un appel de système est exécuté. Cela peut être soit un appel système spécial qui permet à une application de déclencher explicitement un changement de tâche (comme le rendement utilisé dans les premiers systèmes multitâches comme Windows 3.11, Mac OS classique, etc.). On peut également mettre en œuvre un multitâche coopératif complètement en mode utilisateur. Aujourd'hui, la plupart des systèmes d'exploitation adoptent une approche hybride: ils réagissent aux événements matériels (au cas où un thread en cours d'exécution n'appelle jamais les routines système et qu'aucune autre E/S ne se produit, il peut être le temporisateur). une manière coopérative chaque fois que les applications exécutent des appels système ou des bibliothèques fournies par le système d'appel.