Station MinuitPortail personnel de révision

IFT-2001 — Systèmes d’exploitationAutomne 2026

Semaine 3 — Processus et appels système

11. Transition vers les threads

LECTURE 14 / 233 repèresSynthèse avec omissions acceptées

11. Transition vers les threads

Le cours 05 amorce le module suivant. Un thread est un flot d'exécution à l'intérieur d'un processus. Un processus peut contenir un ou plusieurs threads.

Quatre configurations servent de repères : un processus à un thread, plusieurs processus à un thread chacun, un processus multithread et plusieurs processus multithreads. Elles séparent deux choix : isolation par processus et multiplicité des flots d'exécution dans chaque processus.

Les threads d'un même processus partagent :

  • code;
  • données globales;
  • tas;
  • plusieurs ressources ouvertes;
  • espace d'adressage général.

Chaque thread possède cependant :

  • compteur ordinal;
  • registres;
  • pile;
  • état d'ordonnancement;
  • identifiant et métadonnées de contrôle.

Une pile privée est nécessaire pour que chaque thread ait ses propres appels, paramètres et variables locales. Le partage rend la communication efficace, mais introduit les accès concurrents : deux threads peuvent modifier le même objet. Les mécanismes de synchronisation seront étudiés plus tard.

11.1 Concurrence et parallélisme

La concurrence signifie que plusieurs tâches progressent pendant une même période. Le parallélisme signifie qu'elles exécutent réellement des instructions au même instant sur plusieurs unités matérielles. Un système monocœur peut être concurrent sans être parallèle.

11.2 Exemple du serveur

Un thread accepte les nouvelles connexions tandis que des threads de travail traitent les requêtes. Une requête lente ne bloque donc pas nécessairement l'acceptation des autres. Les architectures possibles comprennent un thread par demande, un bassin fixe de travailleurs ou une file de tâches.

Le nombre de threads n'assure pas à lui seul une accélération. Le gain dépend des cœurs, des attentes, des portions séquentielles, de la contention et du coût de synchronisation.

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.