Station MinuitPortail personnel de révision

IFT-2001 — Systèmes d’exploitationAutomne 2026

Semaine 4 — Threads

1. Fil directeur

LECTURE 04 / 191 repèreSynthèse avec omissions acceptées

1. Fil directeur

La semaine 04 déplace l’unité d’exécution du processus vers le thread. Le processus demeure le conteneur de l’espace d’adressage et des ressources; plusieurs threads peuvent toutefois porter chacun leur propre contexte CPU à l’intérieur de ce même conteneur. Le partage direct du code, du tas, des globales et des fichiers rend les communications moins coûteuses qu’entre processus, mais élimine une partie de l’isolation qui protégeait les participants les uns des autres.

La progression suit quatre questions.

  1. Que possède un thread? Une pile, des registres, un compteur ordinal, un identifiant et un état d’ordonnancement.
  2. Comment le programmer? L’API POSIX crée des travailleurs avec pthread_create et exprime une dépendance de terminaison avec pthread_join.
  3. Qui gère les threads? Une bibliothèque utilisateur, le noyau ou une combinaison des deux peut conserver les TCB et prendre les décisions d’ordonnancement.
  4. Quel est le coût du partage? Les accès non coordonnés aux données mutables produisent des conditions de concurrence. Les pools et OpenMP simplifient la gestion, mais ne rendent pas automatiquement le programme sûr.

Le cours 07 termine le module Threads puis amorce le module Concurrence. Les exemples du spouleur et du compteur partagé montrent pourquoi la simple création de threads ne suffit pas : il faut aussi définir la propriété des données et protéger les sections critiques.

Les activités pratiques ajoutent deux perspectives. Une courte activité fait comparer fork et pthread, tandis qu’un laboratoire historique fait parcourir toute la chaîne d’un appel système. L’enregistrement du vendredi poursuit plutôt les commandes Unix, les pipelines et Bash; il est inclus parce qu’il appartient officiellement à la semaine, sans être présenté comme une extension théorique des threads.

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.