Семафор (программирование): различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Строка 998:
* цикл активного ожидания в случае легковесного семафора, при котором периодически проверяется значение счётчика{{sfn|ARM|loc=1.3.1 Power-saving features|p=9}} с помощью инструкции <code>LDREX</code>;
* блокировка с переводом процессора в энергосберегающий режим ожидания с помощью инструкций ожидания прерывания <code>WFI</code> или ожидания события <code>WFE</code>{{sfn|ARM|loc=1.3.3 Implementing a semaphore|p=4|quote=WAIT_FOR_UPDATE and SIGNAL_UPDATE are described in Power-saving features on page 1-9|p=14}}{{sfn|ARM|loc=1.3.1 Power-saving features|p=9—12}};
* переключение контекста на исполнение другой задачи вместо блокировки процессора<ref name{{sfn|ARM|loc="arm_sync_primitives"1.3.1 />Power-saving features, Rescheduling as a power-saving feature|p=11}}.
 
На уровне многозадачной операционной системы может использоваться комбинация перечисленных способов для обеспечения максимальной загрузки процессоров с переходом в энергосберегающий режим во время простоев.