Сравнивать и свопировать vs test и устанавливать

Может ли кто-нибудь объяснить мне работу и различия вышеперечисленных операций в многопоточности?

+18
источник поделиться
2 ответа

test-and-set изменяет содержимое ячейки памяти и возвращает ее старое значение как одну атомную операцию.

compare-and-swap атомно сравнивает содержимое ячейки памяти с заданным значением и , только если они являются одинаковыми, изменяет содержимое этой ячейки памяти на заданное новое значение.

Разница выделена жирным шрифтом.

+32
источник

Тест и набор работают на бит, сравнение и своп работает в 32-битном поле.

Система z/TPF выступает за использование команды test и set (TS), потому что часто индикаторы блокировки являются битами, которые настроены для управления доступом к критическим областям системного кода. Команда test и set (TS) требует меньше регистров, чем команда сравнения и свопинга (CS), и требует меньше времени выполнения, потому что нужно установить только один байт.

и я нашел эти материалы: http://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html

вы можете узнать больше о TSL с книгой под названием "Современная операционная система, глава 2"...

+4
источник

Посмотрите другие вопросы по меткам или Задайте вопрос