Я понимаю концепцию блокировок, мьютекса и других структур синхронизации, но как они реализованы? Предоставляются ли они операционной системой, или эти структуры зависят от специальных инструкций ЦПУ для MMU ЦП?
Возможно, вы захотите взглянуть на эти ссылки, но главная из них - «Тест и набор» в Википедии: http://en.wikipedia.org/wiki/Test-and-set
Как реализованы мьютексы?
Вы также можете посмотреть на этот патент: http://www.faqs.org/patents/app/20080222331
Большинство механизмов взаимного исключения и синхронизации используют аппаратные атомарные операции, как указывали другие. Тем не менее, возможно полностью реализовать взаимное исключение в программном обеспечении. См. Алгоритм Деккера , а также соответствующие алгоритмы Петерсон и Лампорт . Хотя они в первую очередь представляют исторический интерес, так как аппаратные атомы вездесущи, я работал над «интересными» системами (все еще работающими), где все еще необходимы программные технологии.