C'è stata una buona dose di ricerca sugli algoritmi di mutua esclusione, ad esempio molti di questi sono presentati in libri di testo classici come The Art of Multiprocessor Programming , in cui un intero capitolo è dedicato a loro.
Mi chiedo quali sono le situazioni pratiche in cui si potrebbero aver bisogno di questi algoritmi durante la progettazione di un sistema concorrente, piuttosto che usare primitive di sincronizzazione fornite dal linguaggio e dal sistema operativo tipico (diciamo, fornite dalla libreria pthread)?
Mi vengono in mente molti casi speciali in cui immagino che le primitive standard non siano specificamente calibrate per loro, ad esempio "un lettore frequente e uno scrittore poco frequente", o viceversa, o "esattamente un'operazione di scrittura, molti lettori", ecc. - alcuni degli algoritmi di mutua esclusione da manuale sono significativamente migliori nella pratica in tali situazioni?
Per dirla in breve: quali algoritmi di mutua esclusione sono di rilevanza pratica per un ingegnere che dispone già di una libreria di primitivi di concorrenza tipica del linguaggio?