Multicœur et synchronisation

Quelle est la caractéristique d’un verrou lecteurs-rédacteurs (reader-writer lock) ?

  1. AUn nombre quelconque de threads rédacteurs peut entrer simultanément, mais un seul thread lecteur
  2. BUn nombre quelconque de threads qui ne font que lire peut entrer simultanément, mais un seul thread rédacteur, et dans ce cas personne d’autre ne peut entrer
  3. CUn seul thread peut entrer, que ce soit pour lire ou pour écrire
Afficher la réponse et l'explication

Réponse : B. Un nombre quelconque de threads qui ne font que lire peut entrer simultanément, mais un seul thread rédacteur, et dans ce cas personne d’autre ne peut entrer

Des lectures simultanées ne corrompent pas les données ; le verrou lecteurs-rédacteurs autorise donc l’exécution simultanée des lecteurs et n’impose l’exclusivité qu’aux rédacteurs. Il améliore le parallélisme pour des données souvent lues et rarement modifiées, comme une table de configuration. Cependant, si les lecteurs se succèdent sans interruption, un rédacteur peut ne jamais entrer ; certaines implémentations donnent donc la priorité aux rédacteurs.

S'entraîner sur ce thème Retour au thème

Autres questions sur Multicœur et synchronisation

  1. Quelle est l’utilisation la plus appropriée d’un sémaphore à compteur ?
  2. Quelle est la différence entre cohérence de cache et modèle de cohérence mémoire ?
  3. Quel est le principe de la mémoire transactionnelle matérielle ?
  4. Lors d’une attente « jusqu’à ce que la file ne soit plus vide » avec une variable de condition, pourquoi revérifier la condition après le réveil avec une instruction while plutôt qu’avec une instruction if ?
  5. Deux cœurs possèdent chacun dans leur cache une copie de la variable x. Après une écriture de x par le cœur 0, quel problème peut survenir lors de la lecture de x par le cœur 1 en l’absence de mécanisme de cohérence de cache ?

Comparatifs sur ce thème