Вот тест и набор, написанные в программном обеспечении:
boolean TestAndSet(boolean *target) {
boolean rv = *target;
*target = TRUE;
return rv;
}
и
do {
while(TestAndSetLock(&lock))
; // do nothing
// critical section
lock = FALSE;
// remainder section
} while(TRUE);
Можем ли мы использовать этот механизм в процессорах, которые не поддерживают проверку и установку на аппаратном уровне? Если да, то как обеспечивается атомарность?