機能/プロセスを考慮し、
void task_fun(void)
{
while(1)
}
このプロセスが通常の PC OS で実行される場合、喜んで永遠に実行されます。しかし、携帯電話では、HW ウォッチドッグの期限が切れてシステムがリセットされるため、電話全体が数分で確実にクラッシュします。PC では、このプロセスが期限切れになると、規定のタイム スライスがスケジュールされ、新しい実行可能なプロセスが実行されるようにスケジュールされます。
私の疑問は、RTOS に同じ戦略を適用できないのはなぜですか? このようなスケジューリング ポリシーが RTOS に実装されている場合、どのようなパフォーマンス制限が発生しますか?
もう 1 つの疑問はschedule()
、PC OS ( Ubuntu ) と Linux カーネルも実行している電話の両方の機能をチェックしたことです。どちらもほぼ同じであることがわかりました。ウォッチドッグのハンドリングは、電話のどこで行われますか? 私の仮定では、プロセスを実行する前にウォッチドッグを開始するのはスケジューラーです。誰かがコードのどこでそれが行われているかを教えてもらえますか?