Station MinuitPortail personnel de révision

IFT-2001 — Systèmes d’exploitationAutomne 2026

IFT-2001 / Automne 2026 / Synchronisation et ordonnancement

Entraînement — Synchronisation et ordonnancement

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

10 questions. Un point par réponse automatique correcte; aucun crédit partiel. Les autoévaluations sont comptées séparément.

Ouvrir le mini-test

Aucune tentative commencée.

1. Un sémaphore vaut 0. P1 exécute S1 puis post(s), avant même que P2 appelle wait(s); P2 fait ensuite S2. Que garantit ce protocole?

Compréhension · version 1

Hypothèses et règle de réponse
  • Modèle du maître S06; appels de synchronisation réussis.

Une seule réponse attendue selon les hypothèses énoncées.

Votre réponse — question 1

Corrigé — question 1

Le post conserve une autorisation jusqu’au wait. S2 suit S1 même si P2 commence plus tard. Cela ne rend pas leur exécution immédiatement consécutive et ne crée pas un mutex avec propriétaire.

Variantes : Une seule réponse attendue selon les hypothèses énoncées.

Revoir la matière — 2.1. Sémaphore : réserver une ressource ou imposer un ordre

2. Quelles affirmations sont garanties au retour réussi de pthread_cond_wait?

Compréhension · version 1

Hypothèses et règle de réponse
  • Modèle du maître S06; appels de synchronisation réussis.

Sélectionner exactement les deux garanties; aucun crédit partiel.

Votre réponse — question 2

Sélectionner toutes les réponses justes; l’ensemble doit être exact.

Corrigé — question 2

wait libère le mutex et attend atomiquement, puis le réacquiert avant de retourner. Le prédicat doit être retesté dans while : réveils spontanés ou ressource déjà reprise sont possibles. Un signal sans attenteur n’est pas un jeton conservé.

Variantes : Sélectionner exactement les deux garanties; aucun crédit partiel.

Revoir la matière — 2.6. Variable de condition : prédicat, mutex et attente atomique

3. Application SRT : A=(0,1,2,3), B=(8,4,9,5) pour P1 à P4. Quelle est l’attente moyenne?

Application · version 1

Hypothèses et règle de réponse
  • Un CPU, aucun coût de commutation ni E/S; besoins CPU connus, arrivées et besoins dans l’ordre P1 à P4.
  • Préemption si nouveau reste strictement plus court; aucun départage égal nécessaire.

6,5 ou 6.5; valeurs à ±0,001 de 6,5 acceptées. Aucun autre ordre SRT avec ces données.

Votre réponse — question 3

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

Corrigé — question 3

P1 0–1, P2 1–5, P4 5–10, P1 10–17, P3 17–26. F=(17,5,26,10), T=F−A=(17,4,24,7), W=T−B=(9,0,15,2). Somme W=26; moyenne=26/4=6,5. P1 a R=0 mais W=9.

Variantes : 6,5 ou 6.5; valeurs à ±0,001 de 6,5 acceptées. Aucun autre ordre SRT avec ces données.

Revoir la matière — 4.3. SRT : comparer les restes et préempter

4. Application Round Robin : P1=20, P2=3, P3=7 arrivent à 0 dans cet ordre; q=4. À quel instant P3 reçoit-il le CPU pour la première fois?

Application · version 1

Hypothèses et règle de réponse
  • Un CPU sans coût ni E/S; file initiale P1, P2, P3; quantum maximal 4.

7, 7.0 ou 7,0; valeur exacte. Aucune arrivée simultanée à une expiration à départager.

Votre réponse — question 4

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

Corrigé — question 4

P1 utilise 0–4. P2 termine après seulement trois unités, donc 4–7. P3 commence à 7 : son temps de première réponse vaut aussi 7 puisque A3=0. P2 ne garde pas une quatrième unité inutile. P3 finit à 18; 18 est sa fin, pas sa première réponse.

Variantes : 7, 7.0 ou 7,0; valeur exacte. Aucune arrivée simultanée à une expiration à départager.

Revoir la matière — 4.4. Round Robin : faire tourner une file avec un quantum

5. Scénario : le producteur écrit 1 dans un tampon d’une place, signale et sort du mutex. Il reprend avant le consommateur. Expliquez sa seconde itération puis la reprise après consommation.

Application · version 1

Hypothèses et règle de réponse
  • Tampon buf=0 libre; valeurs positives pour données; mutex commun et conditions condp/condc initialisés.
  • Patron while et opérations du §2.6; considérer le scénario où le producteur reprend en premier.

Toute formulation préservant les quatre garanties de la rubrique est recevable. D’autres entrelacements valides existent hors de cette trace imposée; aucune durée n’est exigée.

Votre réponse — question 5

Corrigé — question 5

La notification initiale n’oblige pas le consommateur à agir avant une nouvelle acquisition par le producteur. Le prédicat durable et la boucle sous mutex assurent la correction. La trace est possible; elle ne représente pas l’unique entrelacement.

  • Le producteur constate buf=1 sous mutex et attend dans while sur condp.
  • wait libère et attend atomiquement; le consommateur peut retirer 1, remettre buf=0 et signaler.
  • Le producteur doit être réordonnancé, réacquérir le mutex et retester avant d’écrire 2.
  • Le signal n’impose ni transfert immédiat de CPU/mutex ni mémorisation en l’absence d’attenteur.

Variantes : Toute formulation préservant les quatre garanties de la rubrique est recevable. D’autres entrelacements valides existent hors de cette trace imposée; aucune durée n’est exigée.

Revoir la matière — 2.6. Variable de condition : prédicat, mutex et attente atomique

6. value=5 avant fork. Le fils fait value+=15; le père attend le fils puis affiche value. Quelle valeur affiche le père?

Compréhension · version 1

Hypothèses et règle de réponse
  • fork et wait réussissent; variable ordinaire, aucune mémoire partagée explicite; seul le père réalise l’affichage demandé.

Une seule réponse attendue selon les hypothèses énoncées.

Votre réponse — question 6

Corrigé — question 6

Le fils a sa copie à 20. Le père conserve 5 dans son espace d’adressage. wait impose une dépendance de fin sans fusionner les variables ordinaires.

Variantes : Une seule réponse attendue selon les hypothèses énoncées.

Revoir la matière — 6.5. Question 2 : attendre ne fusionne pas la mémoire de fork

7. Deux threads font chacun 100000 mises à jour non protégées glob=glob+pas, avec pas=+1 et −1. Le principal les joint. Que peut-on garantir?

Compréhension · version 1

Hypothèses et règle de réponse
  • Modèle du maître S06; appels de synchronisation réussis.

Une seule réponse attendue selon les hypothèses énoncées.

Votre réponse — question 7

Corrigé — question 7

Les joins attendent les fins, ils ne rendent pas les mises à jour atomiques. Le spinlock seulement déclaré n’est pas utilisé. La course sur les accès ordinaires en C interdit de promettre zéro ou même un intervalle numérique universel; une trace pédagogique ne fournit pas une garantie du langage.

Variantes : Une seule réponse attendue selon les hypothèses énoncées.

Revoir la matière — 6.6. Question 3 : graphe de threads et compteur sans protection

8. Application : le principal crée T1 puis T2, puis fait join(T1), join(T2). Donnez deux ordres de fin possibles et expliquez pourquoi le second join ne force pas T1 à finir avant T2.

Application · version 1

Hypothèses et règle de réponse
  • Les deux créations réussissent et précèdent les deux joins; travailleurs indépendants qui finissent, sans autre synchronisation.

Accepter les deux ordres de fin, avec une justification des dépendances. Aucune durée ni ordre unique des instructions intermédiaires n’est demandé.

Votre réponse — question 8

Corrigé — question 8

T2 peut finir pendant que le principal attend T1; join(T2) trouvera alors un thread déjà terminé. T1 peut aussi finir en premier. L’ordre de création ne fixe ni l’ordre des fins ni celui des messages des travailleurs.

  • Les deux ordres de fin T1→T2 et T2→T1 sont possibles.
  • Les créations suivent leur ordre dans le principal, mais les travailleurs peuvent progresser concurremment.
  • join(T1) retarde le principal, pas T2; l’affichage suivant les deux joins attend les deux fins.

Variantes : Accepter les deux ordres de fin, avec une justification des dépendances. Aucune durée ni ordre unique des instructions intermédiaires n’est demandé.

Revoir la matière — 6.3. ExempleThreads1/2 : ordre de création, join et durée de vie

9. Complément publié : dans le modèle CFS idéal, période 15 ms et poids PA=1024, PB=526, PC=272, quelle tranche reçoit PB, arrondie à deux décimales?

Compréhension · version 1

Hypothèses et règle de réponse
  • Trois tâches prêtes, partage idéal pondéré du §5.8, sans groupes.
  • Partie 2 publiée au constat du 14 octobre : son enseignement oral intégral et sa présence intégrale à l’intra ne sont pas établis.

4,33 ou 4.33 ms; tolérance absolue ±0,005 ms, accepte également la valeur non arrondie. 4,34 est incorrect.

Votre réponse — question 9

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

Corrigé — question 9

Somme des poids=1822. PB reçoit 15×526/1822=4,330406… ms, soit 4,33 ms. La valeur 4,34 de la diapositive est corrigée dans le maître. Nice n’est pas un poids. Ce calcul idéal n’impose pas une séquence réelle du noyau.

Variantes : 4,33 ou 4.33 ms; tolérance absolue ±0,005 ms, accepte également la valeur non arrondie. 4,34 est incorrect.

Revoir la matière — 5.8. Calcul pondéré sur une période

10. Trois threads exécutent A; barrière(3); B. Que garantit la barrière?

Compréhension · version 1

Hypothèses et règle de réponse
  • Modèle du maître S06; appels de synchronisation réussis.

Une seule réponse attendue selon les hypothèses énoncées.

Votre réponse — question 10

Corrigé — question 10

Aucun B ne commence avant les trois arrivées à la barrière après A. Les accès dans A et B peuvent toujours se concurrencer : une barrière n’est pas un mutex. Un participant manquant peut bloquer les autres.

Variantes : Une seule réponse attendue selon les hypothèses énoncées.

Revoir la matière — 2.5. Barrière : attendre la fin collective d’une phase
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.