Je comprends le concept des serrures, mutex et autres structures de synchronisation, mais comment sont-ils mis en œuvre? Sont-ils fournis par le système d'exploitation, ou ces structures dépendent-elles des instructions spéciales de la CPU pour la MMU des CPU?Comment les structures mutex et lock sont-elles implémentées?
Répondre
Vous voudrez peut-être regarder ces liens, mais le principal est le test-and-set sur Wikipédia: http://en.wikipedia.org/wiki/Test-and-set
Vous pouvez également consulter ce brevet: http://www.faqs.org/patents/app/20080222331
La plupart des mécanismes d'exclusion mutuelle et de synchronisation utilisent des opérations atomiques matérielles, comme d'autres l'ont souligné. Cependant, il est possible d'implémenter l'exclusion mutuelle entièrement dans un logiciel. Voir Dekker's algorithm, et également des algorithmes connexes par Peterson et Lamport. Bien que ceux-ci soient principalement d'intérêt historique maintenant que les atomics matériels sont omniprésents, j'ai travaillé sur des systèmes "intéressants" (toujours en production) où des techniques logicielles sont encore nécessaires.