Multicœur et synchronisation
Dans quelle situation le spinlock est-il le moins adapté ?
- ALorsque le verrou est détenu longtemps et que les threads en attente gaspillent du CPU
- BLorsque le verrou n’est détenu que quelques dizaines de nanosecondes
- CDans un traitement du noyau de l’OS qui ne peut pas s’endormir
Afficher la réponse et l'explication
Réponse : A. Lorsque le verrou est détenu longtemps et que les threads en attente gaspillent du CPU
Un thread qui attend un spinlock continue d’utiliser le CPU jusqu’à la libération. Si le verrou est détenu longtemps, tout ce temps CPU est gaspillé et gêne l’exécution des autres threads. En particulier, avec un seul cœur, le verrou ne se libère que si le thread détenteur s’exécute ; l’attente dure donc jusqu’à la fin du quantum de temps. Pour les attentes longues, on utilise un mutex qui attend en dormant ; il existe aussi des méthodes qui tournent brièvement avant de s’endormir.
Continuer : 9 autres questions sur Multicœur et synchronisation