>спин-блокировкиНехорошая калька. Либо "spin-lock" как в оригинале, либо идите выдумывайте, как благозвучнее слово spin перевести, особенно учитывая, что в оригинале оно ни к селу ни к городу употреблено, а лучше было бы loop-lock с полностью калькированным переводом как "цикл-блокировка", что также не благозвучно.
А теперь вопрос опеннетчикам. Неужели вендоры процессоров не могли придумать инструкцию, которая заменяет активное ожидание в спинлоке путём исполнения команд проверки адреса в памяти на изменения на делегирование оного специальному модулю в процессоре, который будет делать то же самое, но не загружая конвейер и предсказатель ветвлений хламом? То есть спец. инструкция "остаёмся на той же инструкции, ждём нуля по такому-то адресу в памяти, когда дождались - переходим к следующей инструкции". При попадании на неё ядро включает блок спинлоков, занося в него адрес ячейки, которую надо наблюдать. При переключении контекста блок спинлоков сбрасывается. Блок спинлоков соответствено следит за кешем 1 и 3 уровня, и при записи / чтении в кэш по нужным адресам делает прьверки и будит ядро. Таким образом с одной стороны ядро не потребляет энергии во время спинлоков, а с другой это не прерывание, требующее переключерия контекста, поэтому так же быстро, как и спинлок. Даже быстрее - спинлок выполняет инструкции, то есть латентность будет по латентности инструкций в цикле, а такой механизм даст латентность по срабатыванию блока слежения за спинлоками.