Как реализуются структуры мьютекса и блокировки? - PullRequest
17 голосов
/ 13 ноября 2009

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

Ответы [ 2 ]

7 голосов
/ 13 ноября 2009

Возможно, вы захотите взглянуть на эти ссылки, но главная из них - «Тест и набор» в Википедии: http://en.wikipedia.org/wiki/Test-and-set

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

Вы также можете посмотреть на этот патент: http://www.faqs.org/patents/app/20080222331

5 голосов
/ 13 ноября 2009

Большинство механизмов взаимного исключения и синхронизации используют аппаратные атомарные операции, как указывали другие. Тем не менее, возможно полностью реализовать взаимное исключение в программном обеспечении. См. Алгоритм Деккера , а также соответствующие алгоритмы Петерсон и Лампорт . Хотя они в первую очередь представляют исторический интерес, так как аппаратные атомы вездесущи, я работал над «интересными» системами (все еще работающими), где все еще необходимы программные технологии.

...