Семафор (программирование): различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
м →Семафоры в Linux: уточнение |
м уточнение, источники |
||
Строка 992:
==== В архитектуре ARM ====
В архитектуре [[ARM (архитектура)|ARMv7]] для синхронизации памяти между процессорами используются так называемые локальный и глобальный эксклюзивные мониторы, представляющие собой автоматы состояний, контролирующие атомарный доступ к ячейкам памяти{{sfn|ARM|loc=1.2.1 LDREX and STREX|p=4}}{{sfn|ARM|loc=1.2.2 Exclusive monitors|p=5}}. Атомарное чтение ячейки памяти может осуществляться с помощью инструкции <code>LDREX</code>{{sfn|ARM|loc=1.2.1 LDREX and STREX, LDREX|p=4}}, а атомарная запись — через инструкцию <code>STREX</code>, которая также возвращает флаг успеха операции
Для уменьшения значения семафора необходимо дождаться, пока его счётчик не станет больше нуля. Ожидание может быть реализовано разными способами:
|