сравнить и поменять местами тест и установить - PullRequest
20 голосов
/ 07 сентября 2010

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

Ответы [ 2 ]

38 голосов
/ 07 сентября 2010

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

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

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

7 голосов
/ 18 октября 2016

Проверка и настройка работают с битом, сравнение и своп работают с 32-битным полем.

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

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

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

...