web-dev-qa-db-ja.com

「Windowsはリアルタイムオペレーティングシステムではありません」とはどういう意味ですか?

LatencyMon と呼ばれるアプリケーションに遭遇しました。これは明らかにレイテンシの監視を行っています。

プロセッサーにかける負荷が大きくなるほど、システムの応答性が低下し、潜在性が高まることを常に理解しています。ただし、LatencyMonページの2番目のセクションでは、最初の文に「Windowsはリアルタイムオペレーティングシステムではありません」(RTOS)と記載されています。それは私に考えさせられました。つまり、これはLinux、Unix、Mac OS Xなどの他のオペレーティングシステムと何が違うのですか?

「リアルタイム」のオペレーティングシステムはありますか?それとも、あなたに彼らの製品を購入させるための単なるマーケティング計画ですか?

編集:

また、RTOSの例はありますか?

19
Chad Harrison

Wikipediaには実際には驚くほど豊富な情報があります。

リアルタイムオペレーティングシステム(RTOS)は、リアルタイムのアプリケーション要求に対応することを目的としたオペレーティングシステム(OS)です。

RTOSの主な特徴は、アプリケーションのタスクを受け入れて完了するのにかかる時間に関する一貫性のレベルです。変動性はジッターです。ハードリアルタイムオペレーティングシステムは、ソフトリアルタイムオペレーティングシステムよりもジッター。主な設計目標は、高スループットではなく、ソフトまたはハードパフォーマンスカテゴリの保証です。RTOSこれは、通常または一般的に期限に間に合わせることができます。ソフトリアルタイムOSですが、確定的に締切に間に合う場合、ハードリアルタイムOSです。

RTOSには、スケジューリングのための高度なアルゴリズムがあります。スケジューラの柔軟性により、プロセス優先順位のより広いコンピュータシステムオーケストレーションが可能になりますが、リアルタイムOSは、より狭い範囲のアプリケーションセット専用です。キーリアルタイムOSの要因は、最小限の割り込みレイテンシと最小限のスレッドスイッチングレイテンシです。リアルタイムOSは、一定の時間内に実行できる作業量よりも、どれだけ迅速にまたはどの程度予測可能に応答できるかを重視しています。

多くのワークロードでは効率が悪いため、これは実際にはほとんどのオペレーティングシステムでは実行できません。主要なコンシューマーオペレーティングシステムは、現在(または私の知る限りでは)リアルタイムではありません。残念ながら、それは時々非リアルタイム環境の事物が他の事柄を待たなければならないことを意味します。これは、一般的に、何かが妥当な時間内に収まらない場合にのみ問題になります。

現在最もよく知られ、最も広く導入されているリアルタイムオペレーティングシステムは次のとおりです。

LynxOS
OSE
QNX
RTLinux
VxWorks
Windows CE

包括的なリストについては、 リアルタイムオペレーティングシステムのリスト を参照してください。

21
Shinrai

リアルタイムオペレーティングシステムは、組み込みシステムによく使用されます。組み込みシステムでは、ガイダンスやシステムモニタリングなどを担当する場合があります。リアルタイムシステム(およびそれを非リアルタイムシステムと区別するもの)について覚えておくべき重要な点はリアルタイムシステムでは、回答が遅れた場合です。それは間違っています。ブレーキをかけるのではなく、Excelで一連の数値を合計すること(操作が遅れても実際の影響はない)を考えると、これがどのように機能するかを簡単に確認できます。車内(遅延が壊滅的となる可能性がある場合)。

19
Scott C Wilson

基本的に、RTOSは、特定の(通常は低い)時間枠でIRQ(割り込み要求)を処理できることを保証できます。標準のオペレーティングシステムにはそのような保証はありません。

最近のほとんどのシステムでは、ほとんどのデバイスがIRQを生成できます。これにより、CPUの動作が停止(つまり、中断)され、割り込みサービスプログラムが実行されます。このサービスプログラムは、デバイスが必要とするすべてのことを実行する、つまり、デバイスからRAMにデータを取得し、デバイスに次に何をすべきかを指示する、などです。

X86では、CPUにIRQラインが1つしかないため、割り込みを受信すると、CPUが割り込みソースを確認して再度有効にするまで、以降の割り込みは自動的に無効になります(NMI、RESET、SMIを除く)。したがって、標準のi386/AMD64 Windowsでの適切なデバイスドライバーは、この状態で最小限の処理を行い、割り込みを再度有効にして、後で完全に処理を延期してもかまいません(システムはCPUごとに技術的に1つの割り込みしか処理できないため)一度にコア)。よくわかりませんが、Linuxでも同じことができると思います。それにもかかわらず、割り込みが処理される時間についての確約はありません。

ディスク、キーボード、NICなどのほとんどのPCデバイスでは、IRQのサービスにわずかな遅延がある場合、パフォーマンスの低下以外に問題はありません。これは、デバイスが何もバッファリングせず、PCが実際に着信データストリームに対応する必要がある、オーディオやビデオ入力などのデバイスの場合はさらに問題になる可能性があります。

10
LawrenceC