Рассмотрим функцию / процесс,
void task_fun (void)
{
пока (1)
}
Если бы этот процесс запускался в обычной ОС ПК, он бы успешно работал вечно. Но на мобильном телефоне это наверняка приведет к сбою всего телефона за считанные минуты, так как сторожевой таймер HW истечет и сбросит систему.
На ПК этот процесс по истечении установленного отрезка времени будет запланирован, и будет запланирован запуск нового выполняемого процесса.
Я сомневаюсь, почему мы не можем применить ту же стратегию к RTOS? В чем заключается ограничение производительности, если такая политика планирования реализована в ОСРВ?
Еще одно сомнение в том, что я проверил функцию schedule ()
как на моем ПК (Ubuntu), так и на моем телефоне, который также работает ядро Linux. Я обнаружил, что они оба почти одинаковы. Где на моем телефоне выполняется контрольная передача? Я предполагаю, что планировщик - это тот, кто запускает сторожевой таймер перед запуском процесса. Может ли кто-нибудь указать мне, где в коде это делается?