LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Ну не знаю. А мне кажутся приоритеты удобными. Например, микроконтроллер управляет какой-то железкой. А ещё выдаёт информацию о состоянии этой железки по USB. А ещё когда делать нечего уходит в сон для экономии энергии.

Как это реализовать при использовании приоритетов? Максимальный приоритет у процесса руления железкой. Приоритет пониже у процесса работы с USB. И самый низкий приоритет у бесконечного цикла отправки МК в спящий режим.

Соответственно, если что в первую очередь отвалится USB-телеметрия, а железка будет продолжать корректно работать. Более того, это «если что» может быть штатным режимом. Пользователь может запрашивать телеметрию с любой частотой, но если железка потребует внимание, то не все запросы обработаются, но пользователь это как-нибудь переживёт (а железка нет). Также юзер не заметит отставания телеметрии на несколько миллисекунд, а железка задержку управляющего сигнала - заметит.

А когда делать нечего автоматически активируется idle-процесс и отправляет систему в спячку. Любое прерывание пробуждает МК и если обработчик разбудит какой-нибудь процесс, то МК будет бодрствовать, пока не закончит обработку (ведь любой процесс полностью вытеснит idle).

Исходная версия KivApple, :

Ну не знаю. А мне кажутся приоритеты удобными. Например, микроконтроллер управляет какой-то железкой. А ещё выдаёт информацию о состоянии этой железки по USB. А ещё когда делать нечего уходит в сон для экономии энергии.

Как это реализовать при использовании приоритетов? Максимальный приоритет у процесса руления железкой. Приоритет пониже у процесса работы с USB. И самый низкий приоритет у бесконечного цикла отправки МК в спящий режим.

Соответственно, если что в первую очередь отвалится USB-телеметрия, а железка будет продолжать корректно работать. Более того, это «если что» может быть штатным режимом. Пользователь может запрашивать телеметрию с любой частотой, но если железка потребует внимание, то не все запросы обработаются, но пользователь это как-нибудь переживёт (а железка нет).

А когда делать нечего автоматически активируется idle-процесс и отправляет систему в спячку. Любое прерывание пробуждает МК и если обработчик разбудит какой-нибудь процесс, то МК будет бодрствовать, пока не закончит обработку (ведь любой процесс полностью вытеснит idle).