Station MinuitPortail personnel de révision

IFT-2001 — Systèmes d’exploitationAutomne 2026

Semaine 4 — Threads

6. Threads utilisateur, noyau et modèles hybrides

LECTURE 09 / 194 repèresSynthèse avec omissions acceptées

6. Threads utilisateur, noyau et modèles hybrides

6.1 Gestion en espace utilisateur

Une bibliothèque du processus conserve les TCB et choisit le prochain thread. Le noyau voit le processus ou un ensemble plus petit d’entités exécutables, mais pas nécessairement chaque travailleur.

Avantages :

  • création et commutation rapides;
  • absence de transition noyau pour plusieurs opérations;
  • politique d’ordonnancement adaptée à l’application;
  • possibilité d’offrir des threads au-dessus d’un noyau moins riche.

Limites :

  • un appel système bloquant peut immobiliser tous les threads utilisateur associés à la même entité noyau;
  • le noyau ne peut pas préempter individuellement ce qu’il ne connaît pas;
  • le rendement peut dépendre d’une coopération volontaire;
  • un modèle plusieurs-à-un ne peut pas employer plusieurs cœurs pour les threads du même processus.

6.2 Gestion par le noyau

Le noyau connaît chaque thread, conserve son TCB, le préempte et l’ordonnance indépendamment. Si un thread bloque, un autre thread du processus peut progresser. Plusieurs travailleurs peuvent être placés sur plusieurs cœurs.

Cette visibilité exige davantage de structures noyau et d’appels système. Le coût par opération est supérieur à celui d’une commutation purement utilisateur. Dans l’environnement présenté au cours, les pthread se comportent comme des threads noyau; cette implantation ne doit pas être généralisée à toute bibliothèque ou tout système historique.

6.3 Correspondances

Tableau 1 — Modèle · Correspondance · Blocage · Multicœur interne · Coût et contrôle
Modèle Correspondance Blocage Multicœur interne Coût et contrôle
Plusieurs-à-un Plusieurs threads utilisateur → un thread noyau Peut bloquer tout le groupe Non Très léger côté utilisateur, contrôle applicatif élevé
Un-à-un Un thread utilisateur → un thread noyau Indépendant Oui Plus de ressources noyau; limite possible sur le nombre de threads
Plusieurs-à-plusieurs Plusieurs threads utilisateur → plusieurs threads noyau Réparti entre les entités noyau Oui Flexible, mais implantation complexe
Deux niveaux Plusieurs-à-plusieurs avec liaison facultative Comme M:N, avec garanties ciblées Oui Certains threads peuvent être attachés à un thread noyau précis

Le modèle à deux niveaux convient lorsqu’une activité particulière exige une progression ou une politique plus prévisible, tandis que les autres restent multiplexées.

Retour au sommaire de l’unitéHaut de page
Récupérer manuellement les données locales

Copier séparément les données ci-dessous dans des fichiers texte avant de fermer la page ou de modifier le stockage. Une valeur illisible ou incompatible reste en place. Aucun effacement ni rétablissement écrasant n’est effectué automatiquement. L’export/import JSON est disponible sur la page Progression du cours. Cette récupération séparée reste utile pour une valeur brute ou un conflit.

Clé de ce cours : . Format v1 porté par cette clé; dates UTC et identifiants durables.

Si l’accès est refusé, la valeur persistée peut rester inaccessible. Réautoriser le stockage dans le navigateur puis rouvrir ce cours permet de la relire. Une réinitialisation exige une décision explicite après récupération; aucune commande de suppression n’est proposée ici. Les données restent sur cette origine et cet appareil, sans transfert automatique.