Как реализованы мьютексы и блокировки?

Я понимаю концепцию блокировок, мьютексов и других структур синхронизации, но как они реализованы? Предоставляются ли они ОС, или эти структуры зависят от специальных инструкций CPU для процессоров MMU?

Ответ 2

Большинство механизмов взаимного исключения и синхронизации используют аппаратные атомные операции, как указывали другие. Однако возможно полное взаимное исключение в программном обеспечении. См. алгоритм Деккера, а также связанные алгоритмы Peterson и Lamport. Хотя они в первую очередь представляют собой исторический интерес, поскольку аппаратная атомистика вездесуща, я работал над "интересными" системами (все еще в производстве), где по-прежнему необходимы программные средства.