IFT-2001 / Automne 2026 / Synchronisation et ordonnancement
Mini-test — Synchronisation et ordonnancement
Exercices d’entraînement créés pour le portail. Aucun questionnaire officiel. Banque v1.
6 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.
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.
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 ordre2. 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.
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 atomique3. 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.
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éempter4. 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.
Corrigé — question 4
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 atomique5. 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.
Corrigé — question 5
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 fork6. 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.
Corrigé — question 6
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 protectionRé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.