Station MinuitPortail personnel de révision

IFT-2001 — Systèmes d’exploitationAutomne 2026

IFT-2001 / Automne 2026 / Threads

Mini-test — Threads

Exercices d’entraînement créés pour le portail. Aucun questionnaire officiel. Banque v1.

8 questions. Un point par réponse automatique correcte; aucun crédit partiel. Les autoévaluations sont comptées séparément. Les corrigés apparaissent après chaque réponse; ce mini-test sert à apprendre.

Toute la banque

Aucune tentative commencée.

1. Quel ensemble est propre à chaque thread, tout en restant dans le même espace d’adressage?

Compréhension · version 1

Hypothèses et règle de réponse
  • Modèle et API décrits par le maître S04; aucune commande, compilation ou manipulation VM attestée.

Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Votre réponse — question 1

Corrigé — question 1

Chaque thread a son contexte d’exécution. Code, globales/statiques, tas et fichiers ouverts sont communs au processus. Une pile propre n’est pas une frontière de protection : une adresse de cette pile peut être transmise à un autre thread, avec une durée de vie et une synchronisation à respecter.

Variantes : Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Revoir la matière — 2.2 Le thread comme flot d’exécution

2. Une boucle lance trois threads avec &i puis incrémente i. Propose une transmission correcte des numéros 0, 1 et 2 et justifie la durée de vie des objets.

Application · version 1

Hypothèses et règle de réponse
  • Modèle et API décrits par le maître S04; aucune commande, compilation ou manipulation VM attestée.

Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Votre réponse — question 2

Corrigé — question 2

Un tableau d’arguments distincts, initialisés avant chaque création et conservés jusqu’après les jointures, évite la réutilisation de la même variable. Chaque travailleur lit son élément. Le simple passage d’un pointeur ne copie pas l’objet pointé. La réponse reste autoévaluée par comparaison à la rubrique.

  • Préparer un élément distinct par travailleur, par exemple args[3], et transmettre &args[i].
  • Initialiser chaque élément avant sa création; ne pas le modifier concurremment pendant sa lecture.
  • Conserver le tableau vivant jusqu’à la fin des lectures, par exemple dans le créateur qui joint tous les travailleurs avant de quitter.
  • Expliquer que &i réutilise un objet mutable commun; ni un sleep ni une observation favorable ne garantit les valeurs.

Variantes : Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Revoir la matière — 4.2 Arguments stables

3. Quelle affirmation distingue correctement sortie, détachement, sommeil et jointure?

Compréhension · version 1

Hypothèses et règle de réponse
  • Modèle et API décrits par le maître S04; aucune commande, compilation ou manipulation VM attestée.

Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Votre réponse — question 3

Corrigé — question 3

La terminaison d’un travailleur ne termine pas les autres. Le détachement libère automatiquement ses ressources de terminaison et exclut la jointure. Un délai ne crée pas de dépendance de fin. Quitter le processus, notamment par retour de main ou exit, termine en revanche ses threads.

Variantes : Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Revoir la matière — 5.1 `pthread_join`Revoir la matière — 4.3 Attributs et terminaison

4. A et B sont créés, puis joints tous les deux avant de créer C. Chaque travailleur émet une lettre juste avant de terminer. Énumère les traces possibles et les garanties.

Application · version 1

Hypothèses et règle de réponse
  • Créations et jointures réussies; trois travailleurs joignables distincts.
  • Une lettre indivisible par travailleur, immédiatement observable sans tampon; aucune autre sortie ni signal.

Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Votre réponse — question 4

Corrigé — question 4

Les deux fins A et B précèdent la création de C; les lettres possibles sont ABC et BAC dans ce modèle. Joindre A avant B ne force pas A à finir en premier : B peut déjà être terminé lors de sa jointure. La rubrique juge les relations de précédence, sans prétendre corriger automatiquement le texte.

  • A et B peuvent démarrer et finir dans des ordres différents; ordre des create ne fixe pas celui des fins.
  • C commence après les deux terminaisons, car ses créations sont précédées des deux jointures réussies.
  • Les traces des trois lettres sont ABC et BAC, sans ordre imposé entre A et B.
  • Remplacer les jointures par sleep ne garantit plus cette précédence; aucun code universitaire exécuté.

Variantes : Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Revoir la matière — 5.3 Lire une trace correctement

5. Deux tâches indépendantes durent 4 s chacune. Que donne créer A, joindre A, créer B, joindre B?

Application · version 1

Hypothèses et règle de réponse
  • Deux cœurs disponibles; tâches CPU indépendantes, même durée de 4 s; coûts de création/jointure/commutation nuls.

Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Votre réponse — question 5

Corrigé — question 5

B ne peut être créé qu’après la fin de A : 4+4=8 s. Créer les deux avant de les joindre permettrait 4 s dans le modèle idéal annoncé. Le nombre de threads ou de cœurs ne rétablit pas une concurrence supprimée par le programme.

Variantes : Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Revoir la matière — 5.2 Préserver ou détruire la concurrence

6. Quelle comparaison des modèles est correcte?

Compréhension · version 1

Hypothèses et règle de réponse
  • Modèle et API décrits par le maître S04; aucune commande, compilation ou manipulation VM attestée.

Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Votre réponse — question 6

Corrigé — question 6

Dans M:1, une seule entité noyau limite le parallélisme interne et un appel bloquant peut immobiliser le groupe. 1:1 permet des blocages indépendants et le multicœur au coût de ressources noyau. M:N et deux niveaux sont des correspondances, sans nombre fixe de travailleurs ni ordre global garanti.

Variantes : Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Revoir la matière — 6.3 CorrespondancesRevoir la matière — 6.1 Gestion en espace utilisateurRevoir la matière — 6.2 Gestion par le noyau

7. Deux threads modifient une globale C ordinaire puis sont joints. Peut-on garantir le résultat attendu ou un intervalle numérique?

Application · version 1

Hypothèses et règle de réponse
  • Accès concurrents incompatibles non atomiques, sans mutex ni autre synchronisation des mises à jour; les joins sont après les créations.

Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Votre réponse — question 7

Corrigé — question 7

Join ne sérialise pas rétroactivement les opérations des travailleurs. Le modèle lecture/calcul/écriture montre une perte possible de mises à jour, mais ses bornes ne sont pas un contrat C. La précision ED15 et le prolongement S06 distinguent illustration pédagogique et comportement indéfini.

Variantes : Les hypothèses fixent le problème. Une reformulation équivalente suit la rubrique pour les réponses rédigées, qui restent autoévaluées. Les traces observées ne fixent pas l’ordre général.

Revoir la matière — 8.4 Exemple du compteur

8. Avec 85 % de travail parallélisable et quatre unités de calcul, quelle accélération idéale donne Amdahl? Arrondir à deux décimales.

Application · version 1

Hypothèses et règle de réponse
  • Taille de problème fixe; fraction P=0,85 du temps séquentiel; partage parfait sur N=4; aucun surcoût.

Point ou virgule décimale; arrondi à deux décimales, tolérance absolue 0,005. Fraction et unités restent celles annoncées; aucun calcul de code saisi.

Votre réponse — question 8

Tolérance absolue : 0.005. Virgule ou point accepté.

Corrigé — question 8

Sur une référence de 100 s : 15 s séquentielles + 85/4=21,25 s parallèles, soit 36,25 s. L’accélération vaut 100/36,25=80/29≈2,75862069, arrondie à 2,76. Ce gain théorique est inférieur à quatre et ne constitue pas une mesure réelle.

Variantes : Point ou virgule décimale; arrondi à deux décimales, tolérance absolue 0,005. Fraction et unités restent celles annoncées; aucun calcul de code saisi.

Revoir la matière — 9. Performance et loi d’Amdahl
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.