Здравствуйте, Философ, Вы писали:
S>>Речь о lock-free алгоритмах, где нету никаких примитивов синхроиназии, используются cas инструкции,
S>>т.е. атомарные.
Ф>Вот кто-нибудь бы ещё в мануалы к процессорам заглядывал, например в интеловский, где английским по белому написано про эти инструкции, что чтобы они были атомарными, нужно использовать LOCK prefix — оно lock на шину выставляет.
Ф>Вот, например CMPXCHG
Ф>Ф>This instruction can be used with a LOCK prefix to allow the instruction to be executed atomically. To simplify the
Ф>interface to the processor’s bus, the destination operand receives a write cycle without regard to the result of the
Ф>comparison. The destination operand is written back if the comparison fails; otherwise, the source operand is
Ф>written into the destination. (The processor never produces a locked read without also producing a locked write.)
Благодарю, но это уже детали реализации. Я имел в виду под примитивами структуры данных, которые находятся в памяти,
типа мьюетксов\семафоров\мониторов и чего только не. Соотв. из-за них всяческие задержки при переключении контекстов
и т.п., что в эпоху многоядерности не очень чтобы очень. Сделали free-lock, точнее, наверное, переоткрыли.
Цитата выше хороша, но это делати реализации этих самых free-lock инструкций.