13. Résultats d’apprentissage
Après cette semaine, il faut pouvoir :
- expliquer pourquoi un partage de mémoire exige une synchronisation;
- reconnaître et reconstruire une condition de concurrence;
- définir une section critique et les propriétés d’une solution correcte;
- invalider le verrou logiciel naïf par une trace d’interruption;
- expliquer Peterson, son raisonnement et ses limites;
- comparer attente active et blocage;
- expliquer test-and-set, exchange et inversion de priorité;
- reconstruire le réveil perdu du producteur-consommateur;
- employer correctement sémaphores de comptage, sémaphores binaires et mutex;
- expliquer le triplet prédicat–mutex–variable de condition;
- utiliser une barrière pour séparer deux phases;
- choisir une primitive selon le besoin plutôt que par similitude syntaxique;
- décrire le cycle d’ajout, de compilation et de test d’un appel système Linux.