Capisco il concetto di blocchi, mutex e altre strutture di sincronizzazione, ma come vengono implementati? Sono forniti dal sistema operativo o queste strutture dipendono da speciali istruzioni CPU per la CPU MMU?Come sono implementate le strutture di mutex e lock?
risposta
Si consiglia di guardare a questi link, ma il principale è il test-and-set su Wikipedia: http://en.wikipedia.org/wiki/Test-and-set
È inoltre possibile guardare a questo brevetto: http://www.faqs.org/patents/app/20080222331
La maggior parte dei meccanismi di esclusione e sincronizzazione reciproca utilizzano operazioni atomiche dell'hardware, come altri hanno sottolineato. Tuttavia, è possibile implementare l'esclusione reciproca interamente nel software. Vedere Dekker's algorithm, e anche algoritmi correlati da Peterson e Lamport. Sebbene questi siano principalmente di interesse storico ora che l'atomica dell'hardware è onnipresente, ho lavorato su sistemi "interessanti" (ancora in produzione) in cui le tecniche software sono ancora necessarie.