リアルタイムのオペレーティングシステムを必要とするソリューションを開発する場合、QNXやVxWorksなどのオペレーティングシステムはLinuxよりもどのような利点がありますか?
言い換えると、これらのオペレーティングシステムは、リアルタイムの組み込み用途向けに特別に設計されているため、リアルタイムの使用に合わせて調整できるより一般的なシステムであるLinuxとは対照的に、いつ( Linuxの代わりにこれらのオペレーティングシステムの1つを使用するには?
一部の組み込みシステムは、(a)困難なリアルタイム要件を満たす必要がありますが、(b)ハードウェアが非常に限られているため、これらの要件を満たすことがさらに困難になります。
ハードウェアを変更できない場合は、Linuxを除外し、代わりに何かを使用せざるを得ない状況がいくつかあります。
私はリアルタイムの作業をまったく行っていないので、これを塩の粒と一緒に服用してください...
「リアルタイム」には、ハードリアルタイムとソフトリアルタイムの2つのカテゴリがあると聞いています。
「ソフトリアルタイム」とは、非公式に「できるだけ早く実行する」ことを意味します。最近のCPU上のLinuxは、この種のことに適していると思います。
「ハードリアルタイム」とは、非公式に「必要な時間枠内で実行する」ことを意味します。ウィンドウは非常に小さく、ミリ秒かそれ以上になることがあります。巡航ミサイルや衛星ロケットの飛行制御システムは、標準的な例のようです。産業用プロセス制御システムでもこれが必要になる場合があります。 Stuxnetワームは、この種の制御を行うシステムを妨害しているようです。
後者の状況ではRTOSを使用します。RTOSは、多くの場合、それほど多くの命令またはクロックティックなどでは割り込みを配信しないことを保証します。
もう1つの考慮事項は、RTOSは、制限なしにスタックスペースを消費しないように設計、テスト、および/または「提供」されていることです。これは、特定の最小量のメモリ内に存在でき、「 OOM Killer」は存在しない可能性があるため、存在しません。初期のFORTRANのいくつかの間抜けな機能は、このタイプの要件に由来します。FORTRANIIプログラムをコンパイルすると、必要なスタックとヒープの量が正確にわかります。再帰できず、動的に割り当てることができなかったためです。
現実的には、2番目の考慮事項(保証された最大メモリ消費量)は、一部の安全性が重要なアプリケーションでは、「0.001秒の保証された割り込み待ち時間」よりも重要な場合があります。
私はまた、サポートの言い回しのいちじくの葉の選択プロセスを取り除くことを想像するでしょう、あなたはエンジニアがRTOSを選択することがわかるでしょう。