IFT-2001 / Automne 2026
Tests cumulatifs et révision ciblée
Composez votre test à partir des unités publiées de ce cours. Les notions correspondent aux objectifs des banques validées. Exercices d’entraînement créés pour le portail, distincts des évaluations officielles.
Recommandations locales
Pour chaque question actuelle, seule sa réponse la plus récente est retenue. Une erreur ou une autoévaluation invite à revoir la notion; une question sans résultat invite à l’explorer. Les anciennes versions restent dans l’historique. Chaque recommandation cite les tentatives utilisées.
Consulter les recommandations et leurs preuves
Aucune tentative commencée.
1. Quel couple illustre les deux perspectives complémentaires du SE?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 1
Le fichier est une abstraction de machine étendue; répartir le disque est une gestion de ressources. Une interface graphique ou un compilateur ne définit pas le SE. Les abstractions masquent les détails sans abolir les limites.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 3.2 Le SE comme machine étendueRevoir la matière — 3.3 Le SE comme gestionnaire de ressources2. Quel classement correspond au modèle du cours?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 2
Le noyau applique les frontières de protection. Shell, éditeurs et utilitaires sont des programmes système sans être nécessairement dans le noyau. Les applications utilisent ces services; l’interface graphique seule ne constitue pas le SE.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 3.4 Noyau, programmes système et applications3. Quelle liste reprend les huit familles de services introduites?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 3
La première liste contient les huit services. La deuxième énumère surtout des usages ou outils, et la troisième des ressources matérielles. La comptabilité mesure l’usage; elle se distingue de l’allocation qui répartit les ressources.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 4.1 Huit services essentiels4. Scénario : le système choisit le thread prêt de plus haute priorité, sauvegarde les registres courants puis restaure les siens. Où sont politique et mécanisme?
Introduction aux systèmes d’exploitation · Application · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 4
La politique décide qui recevra le CPU; le mécanisme sauvegarde et restaure l’état pour appliquer ce choix. Changer la règle de priorité ne demande pas de redéfinir l’opération matérielle de commutation.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 3.5 Politique et mécanisme5. Deux processus occupent des régions RAM distinctes et alternent sur un seul CPU. Quelle interprétation est correcte?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 5
La RAM est divisée en portions présentes simultanément : partage spatial. Le CPU est attribué successivement : partage temporel. Sauvegarde et restauration consomment du temps; alternance ne signifie pas parallélisme sur un CPU unique.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 5.1 Multiplexage spatialRevoir la matière — 5.2 Multiplexage temporel6. Un programme est stocké sur disque; son instance en cours attend une lecture disque. Quelle proposition convient?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 6
Le processus est l’instance d’exécution, avec code, données, espace d’adressage, registres et ressources. Prêt signifie admissible au CPU; bloqué signifie attente d’un événement. Ses threads partagent des ressources mais gardent leur contexte propre.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 4.2 Processus et threads7. Scénario : P et Q lisent tous deux l’adresse virtuelle 0x1000. Doivent-ils lire la même cellule RAM?
Introduction aux systèmes d’exploitation · Application · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 7
Les espaces d’adressage sont privés; la traduction dépend du processus. La pagination organise pages virtuelles et cadres physiques. Une page absente ou interdite provoque une exception, que le noyau traite; elle ne garantit ni présence en RAM ni accès autorisé.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 5.3 Mémoire virtuelleRevoir la matière — 4.3 Mémoire8. Scénario : une application affiche du texte avec printf. Expliquez le chemin possible jusqu’au périphérique et le retour, sans confondre API et appel système.
Introduction aux systèmes d’exploitation · Application · version 1
Hypothèses et règle de réponse
- Chemin conceptuel de S01 §6; sortie nécessitant un service protégé à un moment donné.
- On ne suppose ni écriture immédiate, ni nombre fixe d’appels write, ni commutation vers un autre processus.
Toute formulation couvrant la rubrique est recevable; comparaison et confirmation personnelles, sans correction automatique.
Corrigé — question 8
GUI et CLI servent aux humains; API et appels système servent aux logiciels. printf formate en espace utilisateur et peut utiliser write. Une entrée contrôlée vers le noyau permet validation et service via le pilote, puis retour. Le diagramme est conceptuel : pas un appel système obligatoire par printf, ni un changement de processus obligatoire à chaque transition.
- printf formate en espace utilisateur dans une bibliothèque.
- La bibliothèque peut déclencher write; toute fonction de bibliothèque ne fait pas un appel système et le tamponnage peut différer l’écriture.
- Une entrée contrôlée transfère au noyau, qui identifie et valide la demande.
- Le noyau/pilote dialogue avec le matériel; résultat ou erreur revient à l’application.
Variantes : Toute formulation couvrant la rubrique est recevable; comparaison et confirmation personnelles, sans correction automatique.
Revoir la matière — 6.2 De l'API au noyauRevoir la matière — 6.3 Exemple `printf` et `write`Revoir la matière — 6.1 Interfaces destinées aux humains et aux programmes9. Quel classement correspond aux catégories du maître?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 9
Créer ou attendre une exécution relève du contrôle de processus. Ouvrir ou lire un fichier relève des fichiers. Modifier les permissions relève de la protection. Les communications et la gestion de périphériques forment deux autres catégories; certaines opérations se ressemblent selon la ressource.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 6.4 Catégories d'appels système10. Scénario : un pilote chargé dynamiquement dans un noyau monolithique provoque une panne. L’équipe envisage de déplacer des services en espace utilisateur. Analysez le compromis et situez les autres architectures.
Introduction aux systèmes d’exploitation · Application · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Toute formulation couvrant la rubrique est recevable; comparaison et confirmation personnelles, sans correction automatique.
Corrigé — question 10
La modularité dynamique du noyau n’isole pas automatiquement le pilote. Déplacer un service en espace utilisateur peut contenir certaines fautes et faciliter test/remplacement, mais ajoute des échanges. Couches et hybride décrivent d’autres organisations; aucune étiquette ne garantit à elle seule fiabilité ou performance absolue.
- Un module reste privilégié; chargement dynamique ne signifie pas isolation d’un micro-noyau.
- Le monolithique permet des appels internes directs mais une faute peut compromettre le système.
- Le micro-noyau réduit le code privilégié et isole des services, au coût de messages/transitions et changements de contexte supplémentaires.
- Les couches structurent les dépendances avec coûts de traversée; l’hybride combine plusieurs modèles.
Variantes : Toute formulation couvrant la rubrique est recevable; comparaison et confirmation personnelles, sans correction automatique.
Revoir la matière — 7.2 Comparaison des architecturesRevoir la matière — 7.3 Micro-noyau contre noyau monolithique11. Que peut cacher l’instruction source A = A + 4 ?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 11
Le modèle pédagogique décompose lecture vers EAX, addition puis écriture. Une interruption peut survenir entre étapes. L’expression de haut niveau n’est pas une preuve d’atomicité. Ce modèle n’est pas une prédiction des instructions exactes d’un compilateur ni du résultat garanti d’une course C.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 8.1 Décomposition des instructions de haut niveau12. Quelle affirmation sur la pile est correcte?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 12
SP repère le sommet; appel et retour gèrent des cadres dans le modèle du cours. Corrompre l’adresse de retour ou une variable locale reste possible à l’intérieur d’un processus. La protection mémoire entre processus ne remplace pas la sûreté des accès internes.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 8.2 Pile d'exécution13. Un administrateur lance une application ordinaire. Quelle proposition est correcte dans le modèle décrit?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 13
Le privilège CPU appartient au contexte exécuté et aux instructions permises; l’identité administrateur relève des autorisations logicielles. Intel emploie typiquement anneau 0 pour le noyau et 3 pour les applications; les autres architectures ont d’autres modes. La validation reste nécessaire.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 8.3 Mode noyau et mode utilisateurRevoir la matière — 8.4 Anneaux Intel et autres architectures14. Quel lien historique et fonctionnel est cohérent?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 14
Le traitement par lots précède la multiprogrammation des années 1965–1980 dans la présentation. Avec plusieurs programmes, une attente d’E/S laisse progresser un autre. La coopération exige une cession volontaire; la préemption donne le contrôle au système. Protection et interruptions illustrent la coévolution matériel/logiciel.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 9.1 GénérationsRevoir la matière — 9.2 Coévolution matériel-logiciel15. Quel critère caractérise surtout un système temps réel dur?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle conceptuel du maître S01, état documentaire du 25 septembre 2026.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 15
Le temps réel dur dépend du respect des échéances. Un serveur privilégie notamment débit et disponibilité; le mobile énergie et thermique; l’embarqué une fonction spécialisée sous ressources limitées; le PC interaction et compatibilité; le multiprocesseur apporte du parallélisme et des besoins de coordination.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 9.3 Catégories de systèmes16. Quel usage du portail respecte les renseignements administratifs du maître S01?
Introduction aux systèmes d’exploitation · Compréhension · version 1
Hypothèses et règle de réponse
- Question de compréhension du document historique; aucun état officiel actuel ni accomplissement personnel n’est évalué.
Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Corrigé — question 16
Le maître reflète Brio au 25 septembre 2026; TP, dates et lieux ont pu changer. La présence d’une image VM ne prouve pas son démarrage. Le cours exige compilation/exécution dans sa VM et remise au portail; l’IA dépend des consignes de l’activité et doit être déclarée lorsqu’autorisée. Aucune lecture du site n’atteste une remise, un accommodement ou une présence.
Variantes : Une seule proposition répond à toutes les contraintes; choisir son sens exact.
Revoir la matière — 10.2 Évaluations actuellement publiéesRevoir la matière — 10.3 TP et environnement de correctionRevoir la matière — 10.4 Intégrité, IA et droit d'auteurRevoir la matière — 11.1 Machine virtuelleRevoir la matière — 11.4 Checklist d'actions17. Quel enchaînement distingue correctement les niveaux d’interface ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 17
GUI et CLI sont des interfaces humaines, API et bibliothèques des interfaces programmatiques. Un programme système fournit un outil. printf formate et peut tamponner; write demande un service au noyau. Une bibliothèque n’implique ni un syscall immédiat ni une correspondance un pour un.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 2.2 Interfaces complémentairesRevoir la matière — 2.3 Catégories d'appels système18. Une application demande une lecture protégée. Que garantit le chemin normal d’appel système ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 18
La transition donne accès au code privilégié selon une entrée contrôlée; elle ne supprime pas les validations. Autorisation du compte et mode CPU sont différents. Le même processus peut reprendre après le service; transition de mode et changement de processus ne sont pas synonymes.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 4.3 Mode utilisateur et mode noyauRevoir la matière — 9. Interruptions et appels système19. Quelle comparaison est conforme au modèle du maître ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 19
Un module de noyau reste souvent privilégié; son chargement dynamique ne prouve pas son isolation. Les couches clarifient les dépendances au prix de traversées; l’hybride combine plusieurs modèles. Aucune architecture ne garantit universellement sûreté ou performance.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 3.2 Architectures principales20. Une règle choisit P1 plutôt que P0, puis les registres de P1 sont restaurés. Comment classer ces deux opérations ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 20
La politique décide quel processus reçoit le CPU. La sauvegarde/restauration permet ce choix matériellement. On peut changer la règle de sélection sans abandonner le mécanisme de changement de contexte.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 3.1 Politique contre mécanismeRevoir la matière — 7. Ordonnancement et changement de contexte21. Quelle description permet une reprise correcte après interruption ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 21
Le PC repère la prochaine instruction et les registres les valeurs intermédiaires. Le cadre de pile garde les éléments de l’appel selon la convention employée. Charger, additionner et stocker peuvent être distincts; l’expression source ne prouve aucune atomicité.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 4.1 Une instruction de haut niveau n'est pas nécessairement atomiqueRevoir la matière — 4.2 Pile d'exécution22. Deux instances du même exécutable sont lancées. Quelle proposition est correcte ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 22
Code exécutable, instance active et PCB sont trois notions différentes. Le PCB décrit identité, état CPU, ordonnancement, mémoire et ressources; il ne se confond pas avec l’espace d’adressage utilisateur. Des optimisations physiques ne suppriment pas cette séparation logique.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 6.1 Programme contre processusRevoir la matière — 6.3 PCB23. Trace sur un cœur : P0 actif demande une E/S indisponible; P1 est choisi; l’E/S de P0 se termine pendant l’exécution de P1. Quel est alors l’état de P0 avant une nouvelle sélection ?
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- Un seul cœur; P0 se bloque réellement; P1 continue; aucune sélection de P0 n’a encore eu lieu.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 23
P0 passe actif → bloqué quand il attend l’E/S, puis bloqué → prêt à la fin de l’E/S. Prêt signifie attendre le CPU; bloqué signifie attendre un événement. Seule une sélection ultérieure lui permet prêt → actif; la préemption conduit actif → prêt.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 6.2 Cycle de vieRevoir la matière — 7. Ordonnancement et changement de contexte24. Trace fictive : P0 est préempté juste avant ADD, avec PC=ADD et EAX=7. P1 avait PC=SUITE et EAX=42. Décrivez la sauvegarde, l’exécution de P1 puis la reprise de P0 avant son ADD.
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- Un cœur, registres pédagogiques, aucune modification explicite des contextes sauvegardés; P0 redevient prêt.
- On observe les valeurs juste après restauration et avant la prochaine instruction.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 24
Les registres physiques sont réutilisés, mais les contextes logiques sont séparés. La valeur 42 de P1 ne devient pas celle de P0. À sa reprise avant ADD, P0 retrouve 7 et l’instruction interrompue. Ce modèle n’impose ni durée réelle, ni politique particulière, ni format de PCB d’un noyau courant.
- Sauvegarder PC=ADD et EAX=7 de P0 dans son contexte/PCB et mettre P0 prêt.
- Choisir P1 puis restaurer PC=SUITE et EAX=42 pour P1.
- Avant de revenir à P0, sauvegarder le contexte courant de P1; restaurer PC=ADD et EAX=7 de P0.
- La sauvegarde/restauration coûte du temps; elle ne réalise pas directement le travail applicatif et ne se confond pas avec un simple changement de mode.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 7. Ordonnancement et changement de contexteRevoir la matière — 6.3 PCBRevoir la matière — 4.1 Une instruction de haut niveau n'est pas nécessairement atomique25. Un fork réussi crée un fils de PID fictif 812. Quelles valeurs reçoit l’appel dans les deux branches ?
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- Un seul fork réussi; PID 812 fictif et positif; aucun deuxième fork.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 25
Les deux processus continuent après fork. Le père obtient le PID du fils et le fils obtient zéro. L’échec donne une valeur négative au processus appelant. Sans synchronisation, l’ordre dans lequel les branches s’exécutent reste non garanti.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 8.2 `fork()`26. Le fils de PID fictif 812 appelle exec avec succès, puis l’ancien code contient afficher("après exec"). Quel résultat est garanti ?
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- exec réussit; on parle de l’instruction dans l’ancien programme, pas d’un affichage similaire du nouveau.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 26
exec remplace l’image du processus courant sans créer un processus. Un succès ne retourne pas à l’ancien flot. Un retour indique normalement une erreur, que le programme doit traiter; les variantes p recherchent dans PATH, l et v distinguent liste et tableau d’arguments.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 8.3 `exec*()`27. Le fils affiche F puis termine. Le père affiche A, attend ce fils avec waitpid, puis affiche B. Donnez tous les ordres possibles des trois événements et expliquez la garantie.
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- fork et waitpid réussissent; un seul fils; waitpid vise ce fils sans option non bloquante.
- F, A et B sont des événements indivisibles observables sans effet de tampon; le fils termine après F; aucun autre affichage.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 27
Les contraintes sont A < B et F < B. Leurs deux linéarisations sont AFB et FAB. ABF viole l’attente du fils. Le tamponnage ou des erreurs changeraient le problème; ils sont explicitement exclus. Si le fils était déjà terminé, waitpid pourrait revenir immédiatement tout en conservant la garantie.
- A précède B dans le père.
- F précède la fin du fils, donc le retour de waitpid et B.
- Les deux ordres complets sont A F B et F A B; A et F n’ont pas d’ordre imposé.
- waitpid synchronise et récupère le statut; sleep ne garantit pas cette causalité et wait ne fusionne pas les espaces mémoire.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 8.4 `wait()` et `waitpid()`Revoir la matière — 8.2 `fork()`28. Quelle comparaison Unix/Windows est correcte dans le modèle décrit ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 28
Le modèle Unix du shell crée un fils puis y charge la commande. CreateProcess regroupe création et lancement de l’image; le créateur peut attendre et doit fermer les handles reçus. Ces interfaces n’ont pas un contrat identique malgré une finalité comparable.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 8.5 Comparaison avec WindowsRevoir la matière — 8.2 `fork()`Revoir la matière — 8.3 `exec*()`29. Dans un shell Linux, cwd=/home/etude/projet et fichier ordinaire initialement 640. On exécute chmod u+x ./outil. Quel chemin est ciblé et quels droits ordinaires résultent ?
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- ./outil existe, appartient à l’utilisateur; commande réussie; seuls les neuf bits ordinaires sont considérés, sans ACL ni bits spéciaux.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 29
Le chemin relatif ./outil part du répertoire courant. 640 vaut rw-r-----; u+x ajoute seulement le bit 1 au propriétaire : 740, rwxr-----. Propriété inchangée; chmod ne fait pas chown et n’exige pas ici sudo. Sur un répertoire, x signifie notamment traversée; vérifier les cibles avant toute commande destructive.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 10.2 Permissions et propriétéRevoir la matière — 10.1 Chemins, fichiers et répertoires30. Bash interactif, job control actif : le job %1 possède le PID fictif 812 et a été suspendu par Ctrl+Z. Quelle commande le reprend en arrière-plan sans le détacher ?
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- Le job %1 existe dans ce shell et reste suspendu; aucun autre terminal ne le gère.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 30
bg %1 reprend le job du shell en arrière-plan. %1 est un numéro de job, 812 un PID. fg le reprend au premier plan; disown le retire de la table sans constituer la même opération. Arrière-plan n’assure pas la survie à SIGHUP. ps est un instantané, top se rafraîchit; leurs PID ne sont pas les numéros de jobs.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 10.4 Jobs du shell et terminalRevoir la matière — 10.3 Observer les processus31. Quel ensemble d’effets est correct ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 31
kill est une interface d’envoi de signal. La réaction dépend du signal et des traitements permis; SIGTERM peut être traité ou ignoré, donc ne garantit pas une terminaison. SIGKILL ne permet pas au processus de faire son propre nettoyage; le noyau récupère néanmoins ses ressources. Ctrl+Z produit normalement SIGTSTP, distinct de SIGSTOP.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 11.2 SignauxRevoir la matière — 10.3 Observer les processusRevoir la matière — 10.4 Jobs du shell et terminal32. Une compilation cc -c hello.c réussit dans un dossier sans hello préexistant. Quelle conclusion est correcte ?
Interfaces, processus et Linux · Application · version 1
Hypothèses et règle de réponse
- hello.c est valide; compilateur disponible, options conventionnelles décrites dans le maître; commande terminée sans erreur.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 32
-c produit un objet sans lancer l’édition de liens. cc -o hello hello.o peut ensuite lier; cc -o hello hello.c peut compiler et lier en une commande. ./hello exécute le fichier du répertoire courant; compilation et exécution sont distinctes.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 11.1 Source, objet et exécutable33. Une récursion sans arrêt épuise la pile. Quelle interprétation du diagnostic est correcte ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S02; aucune commande exécutée par le portail.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 33
La pile et les cadres relient le modèle théorique à l’échec observable. ulimit -s modifie la limite du shell et ulimit -c autorise des tailles, sans garantir à lui seul un fichier local ni son nom. -g conserve les informations de débogage. Aucune profondeur numérique universelle, manipulation VM ou production de core n’est attestée.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 11.3 Récursion, pile et *core dump*Revoir la matière — 4.2 Pile d'exécution34. Quel usage des exigences TP1 du maître respecte leur date et les actions personnelles ?
Interfaces, processus et Linux · Compréhension · version 1
Hypothèses et règle de réponse
- Compréhension de documents historiques; aucune règle administrative actuelle ni action personnelle accomplie n’est affirmée.
Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Corrigé — question 34
Les quatre fichiers historiques sont rapport.pdf, plante.c, vader.c et user_management.sh, sans autre fichier. Le barème 36+28+16+20 fait 100 points; 4 % est le poids du TP. L’écart 23h55/23h59, le vendredi 9 octobre 2026, les mentions Automne 2025 et l’IA « À déterminer » restent datés du 2 octobre. Les manipulations, membres d’équipe et remise doivent être vérifiés personnellement; aucun score ne les valide.
Variantes : Le raisonnement prime sur les noms, PID ou valeurs fictives; les hypothèses fixent les garanties.
Revoir la matière — 12. TP1 : portée et obligationsRevoir la matière — 12.1 RépartitionRevoir la matière — 12.2 Livrables exactsRevoir la matière — 12.3 Incohérences à gérerRevoir la matière — 14. Actions personnelles35. Deux lancements du même programme existent. Quelle distinction est correcte ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 35
Le programme est passif; le processus est son instance active. Le PCB contient notamment PID, état, contexte et ressources, sans se confondre avec le code ou tout l’espace mémoire utilisateur. Partager un exécutable ne fusionne pas les identités.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 2.1 Programme contre processusRevoir la matière — 3.2 Bloc de contrôle de processus36. Où placer instructions, globale, allocation dynamique et cadre d’appel dans le modèle du maître ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 36
Les zones mappées complètent ce modèle. Pile et tas ont des durées de vie différentes. L’isolation logique protège les données et retours de fonction, mais des pages physiques peuvent être partagées sous contrôle sans autoriser des écritures arbitraires entre processus.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 2.2 Organisation logique de la mémoire37. P0 actif se bloque pour une E/S. P1 exécute; l’E/S de P0 finit sans nouvelle sélection. Quel état prend P0 ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Un cœur; attente réelle; P1 reste actif; aucun abandon ni terminaison de P0.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 37
La séquence est actif → bloqué → prêt; une sélection ultérieure permet prêt → actif. Fin d’événement et attribution du processeur sont distinctes. Une préemption produit actif → prêt; elle ne signifie pas attente d’E/S.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 3.1 Cycle de vie38. Une politique choisit P1 après la préemption de P0. Quelle opération permet la reprise correcte ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 38
Le choix est une politique, la sauvegarde/restauration un mécanisme. Compteur ordinal, pile et registres permettent la reprise. Le coût ne fait pas progresser directement les instructions applicatives; aucune durée universelle n’est donnée.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 3.3 Changement de contexteRevoir la matière — 3.2 Bloc de contrôle de processus39. Père PID 34, fils créé PID 35 : quelles valeurs pour (retour de fork, getpid) dans chaque branche ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Un fork réussi; PID illustratifs; le fils et le père continuent après l’appel.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 39
La variable de retour ne représente pas nécessairement l’identité de l’appelant. Le père reçoit le PID du fils, le fils zéro; getpid donne l’identité propre. La valeur de branche est fixée, l’ordre d’exécution ne l’est pas.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 5.1 `fork()`Revoir la matière — 5.2 Trace représentative40. P0 exécute deux appels fork successifs F1 puis F2 sans branche ni sortie entre eux. Chaque processus atteint chaque appel restant. Construisez l’arbre, comptez les processus et distinguez les créations des ordres d’affichage.
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Tous les fork réussissent; processus initial unique; aucun exec, signal ni fin avant le deuxième appel.
- Nommer P1 le fils créé par P0 en F1, P2 celui créé par P0 en F2, P3 celui créé par P1 en F2. Les noms désignent la parenté, pas l’ordre des PID.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 40
Le dédoublement est 1→2→4 sous ces hypothèses. Une trace possible effectue F1, F2 de P1 puis F2 de P0; l’inverse des deux F2 est possible. P1 peut donc créer P3 avant que P0 crée P2. Une branche, un échec ou un exec avant F2 change le comptage; les PID numériques ne sont pas imposés.
- Après F1 : P0 et P1; chacun atteint F2.
- P0 crée P2 en F2; P1 crée P3 en F2 : quatre processus finaux et trois créations.
- Arêtes : P0→P1, P0→P2, P1→P3. P2 et P3 commencent après leur propre F2 et ne refont pas F1.
- F1 de P0 précède les deux F2; les deux F2 ne sont pas ordonnés entre eux. L’arbre ne détermine aucun ordre global d’affichage.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 5.2 Trace représentativeRevoir la matière — 4. Création et parenté des processus41. Le fils PID 35 réussit exec puis l’ancien code contient afficher("ancien"). Quelle garantie ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- exec réussit; on distingue l’ancien programme du nouveau.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 41
exec charge une nouvelle image dans le processus courant et ne crée pas de PID. Le succès ne revient pas à l’ancien flot; un retour signale une erreur à traiter. Les variantes l/v reçoivent liste/tableau; p recherche dans PATH. Le nouveau programme peut ensuite créer d’autres processus, ce qui est distinct.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 5.3 `exec*()`42. Après fork, le père émet A puis waitpid(fils, sans WNOHANG), puis B. Le fils émet F, réussit exec; le nouveau programme émet E et termine. Donnez tous les ordres de A,F,E,B et expliquez l’absence de retour à l’ancien code.
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Un seul fils; fork, exec et waitpid réussissent; waitpid revient pour la terminaison visée, pas un arrêt.
- Événements indivisibles observables, sans tampon ni duplication de tampon; aucun autre événement ni signal.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 42
Contraintes A<B, F<E et E<B. Placer A avant F, entre F et E ou après E donne AFEB, FAEB, FEAB. Aucun ordre n’est garanti entre A et F, ni entre A et E. En cas d’exec échoué, d’attente interrompue ou non bloquante, les hypothèses changent. Le PID du fils reste identique à travers exec.
- F précède E : exec réussit et le nouveau programme émet E; l’ancien code après exec ne s’exécute pas.
- A précède B dans le père; E précède la fin du fils puis le retour de waitpid et B.
- Les trois ordres complets sont AFEB, FAEB et FEAB; B est toujours dernier.
- waitpid peut revenir immédiatement si le fils est déjà terminé; il récolte son statut sans fusionner les mémoires. sleep ne remplace pas cette dépendance.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 5.4 `wait()` et `waitpid()`Revoir la matière — 5.3 `exec*()`Revoir la matière — 5.2 Trace représentative43. x vaut 5 avant fork; le fils fait x+=15 puis termine. Le père attend sa fin et lit x. Quelle valeur et pourquoi ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- fork et attente réussissent; variable ordinaire privée; aucun mécanisme de partage explicite.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 43
Les pages peuvent d’abord être partagées physiquement et protégées. Une écriture demande une copie privée de la page concernée dans le modèle copy-on-write. Cela ne transforme pas les espaces en mémoire partagée; l’attente synchronise la fin sans transférer x.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 6. Mémoire après `fork` et copie sur écriture44. Un fils fini sans statut récolté et un fils vivant dont le père est mort : comment les distinguer ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 44
Le zombie garde une entrée minimale de statut après libération de ses ressources d’exécution, jusqu’à récolte. L’orphelin perd son père d’origine; adoption par un responsable, éventuellement subreaper, ne signifie pas arrêt. Les signaux ont des effets différents.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 7. Terminaison, zombies et orphelins45. Quelle comparaison respecte les contrats Unix et Windows décrits ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 45
Les finalités se recoupent, les interfaces diffèrent. CreateProcess reçoit notamment ligne de commande, environnement et répertoire. L’appelant gère les handles reçus. Un exec Unix réussi conserve l’identité du processus existant.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 5.5 Modèle Windows46. A vaut 3. Le programme a chargé A puis ajouté 4 dans EAX, mais pas encore stocké. Une interruption utilise EAX=666. Décrivez la reprise correcte et l’effet d’une sauvegarde incomplète.
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Modèle pédagogique x86 du maître; interruption juste avant le stockage; aucune autre modification de A.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 46
Le registre porte ici le résultat intermédiaire. Le gestionnaire doit préserver tout état utilisateur qu’il modifie, en complément de l’état minimal matériel. Le retour reprend la prochaine instruction avec les bonnes valeurs; sauvegarder uniquement l’adresse ne suffit pas. Le modèle ne prétend pas être une ABI universelle.
- EAX utilisateur vaut 7 avant l’interruption; A mémoire vaut encore 3.
- Le matériel sauvegarde un état minimal et entre par une porte contrôlée; le noyau complète la sauvegarde des registres nécessaires avant de les modifier.
- Après traitement, restaurer contexte, EAX=7, compteur ordinal et pile appropriés; reprendre le stockage écrit 7.
- Restaurer seulement PC/pile en laissant EAX=666 écrit incorrectement 666; les détails d’entrée dépendent de l’architecture.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 8.2 Exemple du registre corrompuRevoir la matière — 8.3 Séquence d'une interruptionRevoir la matière — 8.4 Privilèges47. Une interruption de périphérique est traitée, puis le même processus reprend. Est-ce possible ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 47
Le traitement d’un événement et le choix d’un processus sont distincts. L’ordonnanceur peut garder le même processus ou en choisir un autre. Un changement de mode ne constitue pas automatiquement un changement de processus.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 8.3 Séquence d'une interruption48. Sur un cœur, un programme boucle sans céder ni se bloquer. Quel mécanisme permet au système préemptif de reprendre le CPU ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 48
Le coopératif dépend de la cession, du blocage ou de la fin. Le préemptif dispose d’un événement matériel indépendant de la coopération. Sur un cœur, plusieurs tâches alternent; elles ne deviennent pas pour autant des instructions simultanées.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 9.1 Multiprogrammation49. Un processus monothread utilise 2 s de CPU et attend 3 s sans CPU; aucune autre durée. Quels temps CPU et réel ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Exemple simplifié séquentiel; attentes disjointes des 2 s CPU; tous coûts inclus dans ces durées.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 49
Le wall time mesure début à fin; le CPU time compte le travail effectif du processeur pour ce processus. Le calcul est 2+3=5. Le contexte monothread évite de généraliser cette comparaison à une somme des temps CPU de plusieurs threads parallèles.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 9.2 Temps CPU et temps réel50. Quelle chaîne représente une demande read depuis une bibliothèque ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 50
Bibliothèque, instruction d’entrée, répartiteur et routine de service sont des niveaux distincts. Le noyau vérifie pointeurs, tailles, descripteurs et autorisations. Une bibliothèque peut rester en espace utilisateur; la transition protégée ne rend pas la demande automatiquement valide.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 10.2 Mécanique généraleRevoir la matière — 10.1 API, bibliothèque et noyauRevoir la matière — 8.4 Privilèges51. Comment utiliser INT 0x80, sys_xxx et le navigateur Linux 2.6.32 du maître ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 51
Ces références enseignent un principe d’entrée et de répartition, avec numéros et registres propres à leur contexte. Elles ne prouvent pas une instruction ou numérotation actuelle universelle. Le portail conserve la datation et les réserves, sans inventer le contenu des sites historiques indisponibles.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 10.3 Exemple historique Linux x86Revoir la matière — 10.4 Références complémentaires52. Deux threads d’un même processus travaillent sur un seul cœur. Quelle description est correcte ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle pédagogique du maître S03; aucune commande exécutée ni manipulation réelle attestée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 52
Les flots peuvent progresser pendant la même période en alternant. Plusieurs unités matérielles seraient nécessaires au parallélisme effectif. Le partage facilite la communication mais impose de traiter la synchronisation; un serveur peut organiser travailleurs et acceptation sans gain universel garanti.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 11. Transition vers les threadsRevoir la matière — 11.1 Concurrence et parallélismeRevoir la matière — 11.2 Exemple du serveur53. cwd=/home/etu1/projet, fichier outil mode 640 appartenant à etu1. Quel effet de chmod u+x ./outil et quelle documentation pour cd ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Commande réussie; fichier ordinaire sans ACL ni bits spéciaux; Bash.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 53
u+x ajoute seulement le bit d’exécution du propriétaire : rw-r----- devient rwxr-----. Les chemins relatifs partent du cwd; les motifs sont développés par le shell. Pour un répertoire x permet la traversée. Les outils externes ont man/--help; Tab et nano appartiennent aux pratiques conservées.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 13.2 Exercices 1 à 7Revoir la matière — 12.3 Méthode de travailRevoir la matière — 13.1 Commandes de base54. On veut filtrer stdout de a vers b et capturer stdout+stderr de cmd dans journal.log en le remplaçant. Quel couple est correct ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Bash; redirections ouvertes avec succès; fichiers de l’exercice fictifs, aucune commande exécutée.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 54
Le tube transporte stdout; && dépend du succès et || de l’échec; ; exécute ensuite indépendamment. > remplace, >> ajoute, < choisit l’entrée. Les redirections se traitent de gauche à droite : > journal.log puis 2>&1 donne aux deux flux la destination fichier. L’ordre inverse laisse stderr sur l’ancienne stdout.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 14.3 OpérateursRevoir la matière — 14.2 Exercices 9 à 1455. Flux : Error 404 / Info ok / Error 404 / Error 404 / Error 500 / Error 404 (une ligne par élément). Que produit grep Error | uniq | sed "s/Error 4/Warning 4/" ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Entrée exactement donnée, dans cet ordre; substitution littérale indiquée; aucune ligne vide.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 55
grep retire Info ok et rend les trois premiers Error 404 adjacents; uniq les réduit à un, mais conserve le dernier séparé par Error 500. sed remplace Error 4 par Warning 4. Pour tailles TSV : awk extrait les champs, sort -n ordonne, head limite; find repère, du -sb mesure, sort -nr puis head choisit les gros fichiers. Avec noms arbitraires, préférer find -print0 et xargs -0 plutôt qu’un découpage naïf par espaces. Les erreurs mdkdir et port 8080 du solutionnaire restent signalées; le port retenu par l’atelier est 8000.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 14.2 Exercices 9 à 14Revoir la matière — 14.1 Outils de fluxRevoir la matière — 14.4 Incohérences du solutionnaire56. Bash : prefixe=log; sortie="${prefixe}-$1" avec argument a b reçu comme un seul argument. Quelles notions sont correctes ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Appel illustratif ./script.sh "a b"; pas d’exécution; aucune option particulière du shell.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 56
Affectation sans espaces, doubles guillemets pour expansion sans découpage de cette valeur, simples pour texte littéral. if, for, while et fonctions structurent les scripts; $? doit être capturé avant une autre commande. PATH cherche les exécutables dans l’ordre. La boucle Git de l’atelier est destructive et reste dans son dépôt artificiel; son succès final ne prouve pas sa robustesse.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 15.1 Syntaxe BashRevoir la matière — 15.3 Configuration du shellRevoir la matière — 15.4 Exercice 16 — retour Git automatisé57. Après lancement du serveur en arrière-plan, quel usage de $!, kill et trap EXIT est exact ?
Processus et appels système · Application · version 1
Hypothèses et règle de réponse
- Bash; lancement direct illustratif; le PID sauvegardé désigne encore le serveur de cet exercice; aucune commande réelle ni garantie de disponibilité serveur.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 57
Le maître dit que trap garantit le nettoyage : préciser la portée. Une sortie normale ou exit anticipé exécute l’action EXIT; SIGKILL ou une panne ne permet pas son exécution. kill demande un effet selon le signal; attendre et contrôler l’état peut être nécessaire. Un simple sleep ne prouve pas la disponibilité; curl et son code de retour fournissent le test prévu sur 8000. Ces explications ne certifient ni serveur lancé ni exercice réussi.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 15.2 Exercice 15 — test d'un serveurRevoir la matière — 15.5 Ce que vérifient les scripts de correctionRevoir la matière — 7. Terminaison, zombies et orphelins58. Quelle lecture des consignes historiques TP1 préserve les obligations personnelles ?
Processus et appels système · Compréhension · version 1
Hypothèses et règle de réponse
- État du maître vérifié le 2 octobre 2026; aucune consigne actuelle ni dépôt attesté.
Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Corrigé — question 58
Le poids historique est 4 %, équipe 1–4, barème 36+28+16+20=100. La limite prudente était vendredi 9 octobre 2026 à 23h55 plutôt que 23h59; mentions Automne 2025 et IA À déterminer restent datées. L’entraînement vérifie la compréhension des exigences; équipe, manipulations, rapport et dépôt restent des actions personnelles non scorées.
Variantes : Les hypothèses fixent le problème. Noms/PID fictifs peuvent changer sans modifier le raisonnement; les réponses rédigées suivent la rubrique et restent autoévaluées.
Revoir la matière — 16.2 Livrables exactsRevoir la matière — 16.1 Contenu évaluéRevoir la matière — 16.3 ContradictionsRevoir la matière — 18. Actions personnelles59. Quelle association décrit correctement un processus multithread?
Threads · 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.
Corrigé — question 59
Le processus regroupe mémoire et ressources; le TCB décrit le flot individuel, notamment registres, compteur ordinal, pile et état. Les threads du même processus ne disposent pas d’espaces d’adressage isolés.
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.1 Le processus comme conteneurRevoir la matière — 2.2 Le thread comme flot d’exécution60. Quel ensemble est propre à chaque thread, tout en restant dans le même espace d’adressage?
Threads · 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.
Corrigé — question 60
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écution61. Un seul cœur entrelace deux tâches. Un autre programme applique le même filtre à quatre quarts indépendants d’une image sur quatre cœurs. Comment les classer?
Threads · 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.
Corrigé — question 61
Concurrence décrit la progression sur une période commune; un cœur peut entrelacer les activités. Le filtrage identique de partitions indépendantes sur plusieurs cœurs est un parallélisme de données. Des traitements différents correspondraient à un parallélisme de tâches.
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 — 3.2 Concurrence et parallélisme62. Quelle lecture de pthread_create(&tid, NULL, travail, arg) et de son résultat est correcte?
Threads · 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.
Corrigé — question 62
Les quatre paramètres sont l’adresse de l’identifiant à remplir, les attributs, la routine void *(*)(void *) et son argument. Le code de retour signale le succès (0) ou une erreur; vérifier ce code avant d’utiliser tid. Le démarrage du travailleur n’attend pas le join.
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.1 Contrat de `pthread_create`63. 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.
Threads · 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.
Corrigé — question 63
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 stables64. Quelle affirmation distingue correctement sortie, détachement, sommeil et jointure?
Threads · 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.
Corrigé — question 64
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 terminaison65. 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.
Threads · 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.
Corrigé — question 65
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 correctement66. Deux tâches indépendantes durent 4 s chacune. Que donne créer A, joindre A, créer B, joindre B?
Threads · 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.
Corrigé — question 66
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 concurrence67. Quelle comparaison des modèles est correcte?
Threads · 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.
Corrigé — question 67
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 noyau68. Un pool de trois travailleurs reçoit dix tâches longues simultanément. Quel énoncé correspond à son rôle?
Threads · Application · version 1
Hypothèses et règle de réponse
- Trois travailleurs disponibles au départ; aucune tâche n’est terminée au moment de la répartition; file sans limite atteinte.
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.
Corrigé — question 68
Le pool sépare file de tâches et travailleurs réutilisés. Après affectation initiale, trois tâches occupent les travailleurs et sept restent en file. Leur durée et les ressources limitent le gain; agrandir sans mesure peut accroître contention, piles et changements de contexte.
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 — 7.2 Pools de threads69. Une boucle calcule a[i] à partir du nouveau a[i-1]. Une directive OpenMP parallel suffit-elle à la rendre correcte?
Threads · 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.
Corrigé — question 69
L’itération suivante dépend de la valeur produite par la précédente. Une directive ne change pas cette relation. Il faut préserver les dépendances ou transformer l’algorithme correctement; le nombre de threads ne remplace pas ce raisonnement.
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 — 7.3 OpenMP70. Quelle proposition distingue sûreté concurrente et réentrance?
Threads · 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.
Corrigé — question 70
La garantie thread-safe dépend du contrat d’usage et des objets partagés. Un mutex interne peut éviter une course entre threads mais poser problème lors d’une réentrée par signal. Une locale static persiste et est commune aux appels; un objet externe peut encore être partagé incorrectement même sans globale.
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.1 Fonction *thread-safe* et fonction réentrante71. A et B lisent tous deux N=7 avant d’insérer leur document. B écrit en case 7 et avance N, puis A utilise sa copie 7. Quel diagnostic est correct?
Threads · Application · version 1
Hypothèses et règle de réponse
- Modèle pédagogique d’opérations indivisibles du spouleur, sans exclusion; ne décrit pas une garantie du langage C en présence de data race.
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.
Corrigé — question 71
La réservation de case doit préserver un invariant sur les trois étapes. Protéger seulement l’incrément n’annule pas les deux choix de la même case. Les joins après créations attendent les fins sans protéger les mises à jour. Les bornes du compteur sont pédagogiques : des accès C ordinaires en course peuvent être indéfinis.
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.3 Exemple du spouleurRevoir la matière — 8.4 Exemple du compteur72. Deux threads modifient une globale C ordinaire puis sont joints. Peut-on garantir le résultat attendu ou un intervalle numérique?
Threads · 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.
Corrigé — question 72
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 compteur73. Avec 85 % de travail parallélisable et quatre unités de calcul, quelle accélération idéale donne Amdahl? Arrondir à deux décimales.
Threads · 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.
Corrigé — question 73
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’Amdahl74. Explique ce qu’il faut distinguer dans les activités fork/pthread et dans la chaîne mycall historique, sans prétendre les avoir exécutées.
Threads · 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.
Corrigé — question 74
Les exemples comparent identité, mémoire et précédences; la chaîne mycall relie utilisateur et noyau effectivement chargé. Une compilation seule ne prouve ni l’amorçage du bon noyau ni le succès du test. Les numéros du laboratoire sont liés à sa version. La rubrique évalue uniquement une explication, pas la réalisation des manipulations.
- Pour fork, distinguer retour père/fils, vrais PID, mémoire séparée et ordre partiel de wait; une faute mémoire ne fixe pas un ordre.
- Pour pthread, identifier create/join/exit et expliquer les ordres variables ou la fin précoce du processus sans joins.
- Relier numéro/table, prototype/implantation, compilation/intégration, noyau réellement chargé et test syscall; uname contrôle le noyau chargé.
- Garder 337/299, Ubuntu 10.04/Linux 2.6.32.24 comme historiques; VM restaurable et ancien noyau; aucune compilation, modification ou observation personnelle attestée.
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 — 10.2 `fork`, attente et faute mémoireRevoir la matière — 10.3 Exemples `pthread`Revoir la matière — 11.1 Chaîne complèteRevoir la matière — 11.2 Modifications décritesRevoir la matière — 11.3 Compilation, installation et vérificationRevoir la matière — 11.4 Risque et récupération75. Entrée : error 4, info, error 4, error 5, error 4. Après grep error puis uniq, quelle sortie et quel sens du statut Bash?
Threads · Application · version 1
Hypothèses et règle de réponse
- Chaque élément représente une ligne; grep conserve les lignes contenant error; uniq retire uniquement les répétitions adjacentes; aucune commande exécuté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.
Corrigé — question 75
Le filtrage rapproche les deux premières lignes error 4, qui sont dédupliquées. La dernière est séparée par error 5 et demeure. $? décrit la commande précédente, 0 au succès. Pour le TSV, garder une taille comme clé jusqu’au tri numérique puis retirer la colonne évite un tri sur les seuls noms; la composition ne prouve aucune exécution.
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 — 12.2 Exercices 9 à 12 : filtres et compositionRevoir la matière — 12.4 Exercices 13 et 14 : fichiers et tableauxRevoir la matière — 12.5 Script Bash et code de retour76. Même problème : 85 % parallélisable, huit unités, sans surcoût. Quelle accélération idéale? Arrondir à deux décimales.
Threads · Application · version 1
Hypothèses et règle de réponse
- Problème fixe; temps de référence 100 s; 15 s séquentielles; 85 s réparties parfaitement entre N=8.
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.
Corrigé — question 76
Le temps idéal est 15+85/8=25,625 s. 100/25,625=160/41≈3,90243902, donc 3,90. Doubler quatre vers huit unités ne double pas l’accélération : la fraction séquentielle reste 15 s.
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’Amdahl77. Avec P=0,85, quelle borne d’accélération idéale quand le nombre d’unités tend vers l’infini? Arrondir à deux décimales.
Threads · Application · version 1
Hypothèses et règle de réponse
- Problème fixe; 15 % intrinsèquement séquentiel; aucun surcoût; il s’agit d’une limite théorique, pas d’un gain mesuré.
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.
Corrigé — question 77
La partie parallèle tend vers zéro mais les 15 % séquentiels persistent. La limite est 1/0,15=20/3≈6,66666667, soit 6,67. Les coûts de création, synchronisation, déséquilibre, caches et mémoire peuvent encore réduire le gain réel.
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’Amdahl78. Deux threads partagent une file en mémoire. Un tube ou le simple partage de cette file assure-t-il son exclusion mutuelle?
Concurrence · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 78
Les threads disposent déjà de mémoire commune, mais leurs accès doivent préserver les invariants. Un canal de communication ne transforme pas automatiquement une séquence lire–modifier–écrire en opération atomique. Les processus peuvent également communiquer par mémoire partagée explicite ou tube.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 2.1 Processus et threads79. Dans un modèle lecture–calcul–écriture, A et B incrémentent une fois un compteur initialement nul. A lit 0, B lit 0, A écrit 1, B écrit 1. Quel résultat et quel diagnostic?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Chaque lecture et écriture du modèle est indivisible; chaque thread calcule ancienne valeur + 1.
- Modèle pédagogique seulement; aucune borne du langage C pour des accès ordinaires en course.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 79
Les deux calculs utilisent la même ancienne valeur 0; la seconde écriture de 1 remplace la première. Le compteur vaut 1 dans cette trace. Une exécution sérielle du modèle donnerait 2. Ces résultats illustratifs ne bornent pas une data race C, dont le comportement peut être indéfini.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 2.2 Définition d’une condition de concurrenceRevoir la matière — 2.3 Exemple du spouleur d’impression80. Un verrou empêche toute double entrée, mais peut laisser un demandeur attendre indéfiniment. Quelle conclusion est justifiée?
Concurrence · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 80
Exclusion mutuelle, progression, attente bornée et indépendance temporelle sont des exigences distinctes. Un algorithme peut exclure les doubles entrées tout en affamant un participant. Désactiver les interruptions locales ne suspend pas les autres cœurs et ne fournit pas une primitive générale en espace utilisateur.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 3. Section critique et critères de correctionRevoir la matière — 3.1 Désactiver les interruptions81. Le verrou est initialement 0. Chaque thread teste while(lock==1), puis écrit lock=1 avant sa section critique. Construis une trace qui viole l’exclusion et identifie la correction nécessaire.
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Modèle abstrait à lectures/écritures indivisibles, test séparé de l’affectation; deux participants.
- Le raisonnement ne présente pas ce fragment comme une implantation C concurrente correcte.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 81
La trace test A → test B → prise B → entrée B → prise A → entrée A laisse deux participants en section critique. Chacun a correctement observé un ancien état libre; le problème est la séparation du test et de la prise. La réponse rédigée reste autoévaluée, sans score automatique de correction.
- A lit 0 et franchit le test, puis est interrompu avant son affectation.
- B lit 0, écrit 1 et entre sans encore sortir.
- A reprend, écrit 1 et entre alors que B est encore en section critique.
- Le test et la prise doivent former une primitive atomique, ou employer un protocole prouvé; volatile ou sleep ne ferme pas cette fenêtre.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 3.2 Verrou logiciel naïf82. Peterson : critical[0]=critical[1]=1 et la dernière écriture de waiting vaut 1. Qui peut franchir sa boucle à cet instant?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Deux participants seulement; lectures/écritures atomiques et cohérence séquentielle du modèle.
- Boucle exacte : waiting == p && critical[1-p] == 1; aucun participant ne retire encore son indicateur.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 82
Pour p=0, waiting==0 est faux, donc P0 franchit la boucle. Pour p=1, les deux termes sont vrais et P1 attend. Lorsque P0 sort et met critical[0]=0, P1 peut avancer. Ce modèle n’autorise pas une transcription C avec des objets ordinaires en course; atomiques et ordre mémoire doivent être corrects.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 4.1 Solution de Peterson83. Un détenteur conserve un verrou pendant une E/S longue. Un demandeur boucle sur test-and-set. Quelle comparaison de l’attente est correcte?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 83
Attente active et état bloqué diffèrent. Un mutex peut combiner une courte phase de spin et le blocage selon son implantation. Une E/S longue rend la rotation coûteuse; si le détenteur ne peut pas être ordonnancé, tourner ne l’aide pas à libérer. Le choix dépend des durées, cœurs et politiques réels.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 4.3 Coût d’un verrou tournantRevoir la matière — 7.3 Mutex adaptatif et priorité84. Test-and-set ferme le test/prise séparé. Garantit-il aussi l’équité et résout-il l’inversion où H de haute priorité empêche L, détenteur, de reprendre sur un seul cœur?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Modèle à priorités strictes : H reste exécutable et tourne; L a besoin du même cœur pour libérer.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 84
Test-and-set protège la prise du verrou mais ne donne pas une politique d’admission équitable. Sous les hypothèses de priorité annoncées, H peut priver L de CPU et prolonger son propre retard. Un protocole d’héritage peut élever L; cette garantie doit être fournie par la primitive et sa configuration, pas supposée.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 4.2 Test-and-set et échange atomiqueRevoir la matière — 4.4 Inversion de priorité85. Le consommateur constate count=0 mais ne dort pas encore. Le producteur ajoute un élément et appelle wakeup. Déroule le réveil perdu et explique deux mécanismes qui ferment cette fenêtre.
Concurrence · Application · version 1
Hypothèses et règle de réponse
- sleep/wakeup naïfs : un wakeup sans dormeur n’est pas mémorisé.
- Aucune autre production ni réveil ultérieur dans la trace; modèles sans erreur ni annulation.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 85
La faute est la fenêtre entre test et sommeil. Un sémaphore garde la permission si le post précède le wait. Une condition s’appuie sur un prédicat persistant sous mutex et une libération/blocage atomique; son signal isolé ne garde pas de jeton. Les deux solutions ne rendent pas les garanties des primitives identiques.
- C constate 0 puis est interrompu avant sleep; P produit, count devient 1, et le réveil sans dormeur est perdu.
- C reprend et dort malgré un élément présent; aucun délai fixe ne garantit la correction.
- Un sémaphore full initialisé à 0 mémorise le post; le wait ultérieur consomme la permission.
- Une condition avec prédicat protégé par le même mutex utilise wait atomique et reteste dans while; la condition seule ne mémorise pas les signaux.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 5.2 Pourquoi `sleep`/`wakeup` ne suffit pas86. Quelle différence entre sémaphore de comptage, usage binaire et mutex est correcte?
Concurrence · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 86
Un sémaphore n’attribue pas la propriété d’un mutex : un autre thread peut effectuer post. POSIX sem_t reste un compteur; initialiser à 1 ne le borne pas magiquement à 1. L’usage binaire dépend du protocole qui évite les post excédentaires. Un mutex acquis doit être libéré par son propriétaire selon son contrat.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 6.2 Comptage, binaire et ordreRevoir la matière — 6.1 ModèleRevoir la matière — 7. Mutex Pthreads87. C revient avec succès de pthread_cond_wait(&cv,&m). Peut-il utiliser l’élément sans retester le prédicat?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 87
Wait libère atomiquement le mutex et attend, puis le réacquiert avant de retourner. Le retour n’affirme pas la vérité du prédicat. Un signal ne réserve pas la ressource et n’est pas mémorisé sans attenteur. Le prédicat se lit et se modifie sous le même mutex; la boucle le vérifie à nouveau.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 8. Variables de condition88. Trois travailleurs écrivent chacun leur case A[i], atteignent une barrière de compte 3, puis lisent toutes les cases. Que garantit le rendez-vous?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Même génération de barrière; chaque travailleur arrive exactement une fois; API réussie, cases distinctes pendant A.
- Aucune écriture suivante non synchronisée sur ces cases pendant leur lecture.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 88
La barrière attend les trois arrivées et sépare les phases avec synchronisation mémoire. PTHREAD_BARRIER_SERIAL_THREAD est retourné à un participant non spécifié; les autres reçoivent zéro. Elle ne sérialise pas les opérations de la phase B. Un mauvais compte ou un participant absent peut empêcher le rendez-vous.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 9. Barrières89. Choisis et justifie les mécanismes pour quatre besoins : trois connexions disponibles, invariant possédé par le thread, attente file non vide et fin collective d’une phase.
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 89
Le choix part de la garantie : stock de permissions, exclusion avec propriétaire, prédicat partagé ou rendez-vous collectif. Attente active et blocage sont des stratégies d’attente; une courte rotation peut exister sous un mutex. Une primitive ne prouve pas à elle seule l’équité ni la terminaison du programme. Réponse autoévaluée.
- Sémaphore de comptage initialisé à 3, avec une permission rendue pour chaque acquisition, représente les connexions.
- Mutex pour la région qui préserve un invariant et respecte la propriété acquisition/libération.
- Variable de condition + même mutex + prédicat !file_vide testé dans while; le signal n’est pas un jeton.
- Barrière de compte exact pour la frontière collective; elle n’assure ni exclusion de phase ni équité FIFO universelle.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 11. Choisir le bon mécanismeRevoir la matière — 6.2 Comptage, binaire et ordreRevoir la matière — 7. Mutex PthreadsRevoir la matière — 8. Variables de conditionRevoir la matière — 9. Barrières90. Après compilation d’un appel système pédagogique, le test indique « appel inexistant ». Quelle vérification est prioritaire?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 90
La chaîne doit rester cohérente : table et numéro de l’ABI, prototype/implantation, objet lié, paquets installés, noyau personnalisé démarré puis test syscall. uname -r identifie le noyau actif. Les commandes sont liées à la VM/version historique; le noyau générique reste une possibilité de retour. Aucune manipulation personnelle n’est certifiée.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 10.2 Enregistrer l’appelRevoir la matière — 10.1 Préparer l’environnementRevoir la matière — 10.3 Ajouter le code et construireRevoir la matière — 10.4 Tester et revenir en arrière91. Tampon vide : C prend mutex puis attend full=0 sans libérer mutex. P doit prendre ce même mutex avant d’insérer. Quel diagnostic et quel ordre correct?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Modèle des sémaphores sans erreur : full=0, empty=N>0, mutex=1; un producteur et un consommateur, aucun autre post.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 91
C conserve la structure verrouillée pendant qu’il attend l’élément que P ne peut pas insérer : les deux attendent. Le bon ordre est permission de ressource puis mutex; après modification, libérer mutex et poster la ressource opposée. Pour N=2 : empty=2, full=0, mutex=1 initialement. À repos après une insertion : empty=1, full=1, mutex=1; après retrait : 2/0/1.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 6.3 Producteur-consommateur corrigé92. Quelle proposition respecte les contrats POSIX de cycle de vie et d’erreurs?
Concurrence · Compréhension · version 1
Hypothèses et règle de réponse
- Modèle et API décrits par le maître S05; aucune VM, compilation ni manipulation personnelle attestée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 92
Un appel échoué ne se traite pas uniformément : sem_wait peut être interrompu avec EINTR; pthread_mutex_lock robuste peut acquérir en signalant EOWNERDEAD, puis l’état doit être réparé et déclaré cohérent. Réinitialiser un sémaphore actif ou détruire une primitive encore utilisée n’est pas un nettoyage valide. Lire sem_getvalue n’assure pas une acquisition.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 6.4 API POSIX des sémaphoresRevoir la matière — 7.1 Cycle de vieRevoir la matière — 7.2 Types de mutex93. Des milliers d’essais du compteur C ordinaire restent dans la borne du cours. Peut-on en faire une garantie après pthread_join?
Concurrence · Compréhension · version 1
Hypothèses et règle de réponse
- Accès concurrents incompatibles non atomiques, sans synchronisation entre les mises à jour; jointures après créations.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 93
Une observation ne prouve pas un invariant. La borne pédagogique n’est pas un contrat du langage C en présence de data race. Les jointures attendent les terminaisons mais n’excluent pas les accès concurrents qui les précèdent. Il faut une synchronisation des mises à jour ou des atomiques adaptées.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 2.2 Définition d’une condition de concurrence94. s vaut 0. P exécute S1 puis post(s), avant que C n’exécute wait(s) puis S2. Quelle garantie subsiste?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Un seul post et un seul wait réussis, aucun autre accès à s, pas d’annulation ni débordement.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 94
Post laisse une permission lorsque personne n’attend. Le wait ultérieur peut la consommer, sans perdre l’événement; si C arrivait plus tôt il attendrait ce post. C’est un ordre entre événements, pas une exclusion générale de toutes les opérations. Une condition signalée seule ne mémoriserait pas cette permission.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 6.2 Comptage, binaire et ordre95. C1 attend non-vide. P insère et signale sous mutex, puis libère. C2 obtient le mutex avant C1 et retire l’unique élément. C1 réacquiert ensuite. Que doit faire C1?
Concurrence · Application · version 1
Hypothèses et règle de réponse
- Même mutex protège toutes les lectures/modifications du prédicat; ordonnancement décrit possible, aucune FIFO annoncée.
Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Corrigé — question 95
Signal rend un attenteur éligible mais ne garantit pas qu’il réacquerra avant un autre consommateur. Après C2, count vaut 0; C1 reteste sous mutex et wait libère atomiquement ce mutex pour attendre. if sauterait ce retest et pourrait retirer d’une file vide. La sûreté n’implique pas une attente bornée sans hypothèses de progression.
Variantes : Les hypothèses fixent le modèle. Les traces sont possibles, sans FIFO ou vitesse supposée. Une reformulation équivalente est admise dans la rubrique des réponses rédigées, qui restent autoévaluées. Les modèles ne bornent pas une data race C.
Revoir la matière — 8. Variables de condition96. 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?
Synchronisation et ordonnancement · 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 96
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 ordre97. Quelles affirmations sont garanties au retour réussi de pthread_cond_wait?
Synchronisation et ordonnancement · 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 97
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 atomique98. Application SRT : A=(0,1,2,3), B=(8,4,9,5) pour P1 à P4. Quelle est l’attente moyenne?
Synchronisation et ordonnancement · 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 98
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éempter99. 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?
Synchronisation et ordonnancement · 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.
Corrigé — question 99
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 quantum100. 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.
Synchronisation et ordonnancement · 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 100
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 atomique101. value=5 avant fork. Le fils fait value+=15; le père attend le fils puis affiche value. Quelle valeur affiche le père?
Synchronisation et ordonnancement · 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 101
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 fork102. 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?
Synchronisation et ordonnancement · 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 102
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 protection103. 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.
Synchronisation et ordonnancement · 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é.
Corrigé — question 103
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 vie104. 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?
Synchronisation et ordonnancement · 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.
Corrigé — question 104
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ériode105. Trois threads exécutent A; barrière(3); B. Que garantit la barrière?
Synchronisation et ordonnancement · 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 105
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 phaseBanques hebdomadaires
- Semaine 1 — Introduction aux systèmes d’exploitation16 questions et mini-test
- Semaine 2 — Interfaces, processus et Linux18 questions et mini-test
- Semaine 3 — Processus et appels système24 questions et mini-test
- Semaine 4 — Threads19 questions et mini-test
- Semaine 5 — Concurrence18 questions et mini-test
- Semaine 6 — Synchronisation et ordonnancement10 questions et mini-test
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.