★ À maîtriser
📌 Dans le problème lecteurs-écrivains, plusieurs lecteurs peuvent accéder simultanément à la donnée, tandis qu’un écrivain doit y accéder seul, sans lecteur ni autre écrivain.
Avec la priorité aux lecteurs, un écrivain n’accède à la donnée que lorsqu’aucun lecteur n’est en train de lire.
Sans protection, nbrl++ et le test if (nbrl == 1) ne sont pas atomiques et plusieurs lecteurs peuvent ainsi fausser le compte des lecteurs.
Smut, initialisé à 1, protège la variable nbrl ; Se, également initialisé à 1, exclut les écrivains pendant que le groupe des lecteurs accède à la donnée.
🔄 La synchronisation du groupe des lecteurs suit ces étapes :
Compléments
Le premier lecteur ferme la porte aux écrivains ; le dernier la rouvre.
★ À maîtriser
📌 Une condition POSIX est un outil spécialisé dans l’attente d’événement, tandis qu’un sémaphore peut aussi servir à l’exclusion mutuelle ou au comptage de ressources.
📌 Un réveil perdu survient lorsqu’un signal de condition est émis sans thread en attente et n’est pas mémorisé, tandis qu’un réveil trompeur survient lorsque le thread réveillé reprend après que la condition justifiant son réveil a cessé d’être vraie.
Compléments
Réveil perdu : le signal disparaît ; réveil trompeur : la condition a changé.
★ À maîtriser
📌 La condition d’attente doit être testée dans une boucle while autour de pthread_cond_wait, et non dans un simple if, afin de la retester après le réveil.
Compléments
L’API POSIX des conditions comprend :
Il n’existe pas de fonction pthread_cond_trywait, car une condition POSIX sert uniquement à attendre un événement et non à tenter l’obtention d’une ressource sans bloquer.
Verrouiller, tester en boucle, attendre, retester.
★ À maîtriser
Compléments
★ À maîtriser
📌 L’attente passive demande au système de mettre l’activité en pause, tandis que l’attente active vérifie une condition en boucle sur le processeur.
Compléments
📌 Parmi pthread_cond_broadcast, pthread_spin_lock, sem_trywait et sleep, pthread_cond_broadcast reste légitime dans certains usages, tandis que les trois autres sont à éviter par défaut.
Passive : le système endort ; active : le processeur vérifie en boucle.
★ À maîtriser
Compléments
Un seul processus peut s’interbloquer en exécutant deux fois P(r1) sur le même sémaphore binaire sans exécuter V(r1) entre les deux appels.
Un interblocage peut survenir avec une barrière si A détient un mutex en attendant la barrière et si B ne peut pas atteindre cette barrière parce qu’il attend le même mutex.
L’interblocage peut survenir avec tout mécanisme provoquant une attente conditionnelle, notamment les sémaphores, les mutex, les barrières et les conditions.
★ À maîtriser
📌 Selon les conditions de Coffman, Elphick et Shoshani (1971), un interblocage se produit si et seulement si l’exclusion mutuelle, la conservation et attente, l’absence de réquisition et l’attente circulaire sont simultanément réunies.
Compléments
ECNA : Exclusion, Conservation, Non-réquisition, Attente circulaire.
★ À maîtriser
📌 Tout interblocage implique un cycle dans le graphe d’allocation, mais un cycle n’implique pas nécessairement un interblocage lorsque les ressources ont plusieurs exemplaires.
Compléments
Interblocage implique cycle ; cycle implique interblocage seulement si chaque ressource a un exemplaire.
| Contexte | Exclusion mutuelle | Attente d’événement |
|---|---|---|
| Threads | Mutex | Condition |
| Processus | Sémaphore | Sémaphore |
| Signaux | Masquage | sigsuspend |
| Situation | Relation |
|---|---|
| Interblocage | Implique toujours un cycle |
| Cycle avec ressources à exemplaires uniques | Implique un interblocage |
| Cycle avec ressources à plusieurs exemplaires | N’implique pas nécessairement un interblocage |
Teste tes connaissances sur Synchronisation et interblocages avec 23 questions à choix multiples et corrections détaillées.
1. Dans les primitives P/V ou les mutex étudiés, que signifie l’absence de réquisition ?
2. Dans un graphe d’allocation de ressources, que signifie un arc R → P ?
Mémorisez les concepts clés de Synchronisation et interblocages avec 55 flashcards interactives.
Dans le problème lecteurs-écrivains, combien de lecteurs peuvent accéder simultanément à la donnée ?
Plusieurs lecteurs.
Dans le problème lecteurs-écrivains, quand un écrivain peut-il accéder à la donnée ?
Seul, sans lecteur ni autre écrivain.
Avec la priorité aux lecteurs, à quelle condition un écrivain accède-t-il à la donnée ?
Lorsqu’aucun lecteur n’est en train de lire.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches