ThreadX は RTOS と見なされます。RTOS の一般的な定義と要件は知っていますが、ThreadX を RTOS と呼ぶことができる理由、または OS のどの機能によってリアルタイム対応が可能になるのかを明らかにするのに役立つ人はいますか?
ありがとう〜
ThreadX は RTOS と見なされます。RTOS の一般的な定義と要件は知っていますが、ThreadX を RTOS と呼ぶことができる理由、または OS のどの機能によってリアルタイム対応が可能になるのかを明らかにするのに役立つ人はいますか?
ありがとう〜
プログラマーがリアルタイム オペレーティング システムについて話すとき、多くの場合、複数のプロセスまたはスレッドの管理に関連する機能について言及します: ミューテックス、セマフォ、プロセス間 (またはスレッド間) 通信など。
ただし、実際の定義は、特定の操作が常に既知の決定論的時間 (つまり、相対時間ではなく秒単位) 内で発生することをシステムが保証する必要があるということです。Linux も Windows も真のリアルタイムではありません。Linux や Windows コンピューターは非常に高速なので、ほとんどの場合、実行したいことは十分な速さで実行されますが、常に最大時間内に実行されるという保証はありません。医療機器や巨大な工場設備を制御するソフトウェア システムを構築している場合、「すぐに」または「通常は十分な速さで」ではなく、x ミリ秒で何かを停止または開始する必要があります。
実際には、便利で重要なシステムでこの保証を提供するには、多くの場合、プリエンプティブ マルチタスク、複数のスレッド、および通常言及されているすべての機能が必要になるため、それらのない RTOS を見つけるのは難しいでしょう。ただし、RTOS の特徴はその名の通り、実際の時間内に物事が起こることを知ることができるということです。
特定の質問については、ThreadX Web サイトから:
ThreadX is deteriminstic. A high priority thread starts responding to
an external event on the order of the time it takes to perform a
highly optimized ThreadX context switch.
- Boot time: 300 cycles
- Context switch time: <100 cycles
- Semaphore get: 30 cycles
つまり、応答時間は決定論的です。これは、RTOS で最も重要なことの 1 つです。
threadx では、スレッドが優先されます。オペレーティング システムはハードウェア割り込みタイマーによって駆動され、スケジューラはスレッドが優先順位に従って正しくスケジュールされるようにします。
たとえば、スレッド A (高優先度) がセマフォで待機中で、スレッド B (低優先度) が実行中の場合、セマフォが使用可能になるとすぐにスレッド B が中断され、スレッド A が開始されます。
Threadx には、コンテキストの切り替え時間を最適化するための他の多くの機能があります。たとえば、各スレッドには独自のスタックがあります。
詳細については、これを取得する必要があります: http://www.amazon.com/Real-Time-Embedded-Multithreading-Using-ThreadX/dp/1578201349/ref=sr_1_2?s=books&ie=UTF8&qid=1390859108&sr=1-2&keywords=リアルタイム+スレッドx