リアルタイムという用語は非常に柔軟です。「ハード リアルタイム」とは、数十マイクロ秒で「正しく動作する」か「正しく動作しない」かの違いを意味する傾向があります。すべての「リアルタイム」システムがそのようなリアルタイム性を必要とするわけではありません。
私はかつて、携帯電話用の無線基地局で働いていました。ボード上のデバイスの 1 つに、約 2 ミリ秒ごとに発生する割り込みがありました。正しい操作 (呼び出しを失わない) のために、割り込みを処理する必要がありました。つまり、割り込み内で作業を行い、ハードウェア レジスタに新しい値を 100 マイクロ秒以内に書き込む必要がありました。160 マイクロ秒後に割り込みが行われなかった場合、システムは再起動します。これは、特にプロセッサが数十 MHz で実行されていたため、「ハード リアルタイム」です。
ビデオ プレーヤーを作成する場合、数ミリ秒単位のリアルタイムが必要です。
「表示株価」は、おそらく 100 ミリ秒の範囲内になる可能性があります。
Web サーバーの場合、大きな問題なく 1 ~ 2 秒以内に応答することはおそらく許容されます。
また、「X よりも悪い場合は失敗を意味する」という違いがあります (上記の 100 マイクロ秒または切断された通話の場合のように、数週間に 1 回以上発生する場合は悪いことです。年に数回でも、実際には問題があります)修正する必要があります)。これを「ハードリアルタイム」と呼びます。
しかし、他のシステムでは、締め切りに間に合わないということは、「ああ、もう一度やり直さなければならない」または「ビデオのフレームが少しちらついた」ことを意味します。これを「ソフトリアルタイム」と呼びます。
最新のハードウェアの多くは、「ハード リアルタイム」(10 秒または 100 マイクロ秒の範囲) を困難にします。これは、グラフィックス プロセッサがプロセッサのメモリへのアクセスを単純に停止するか、プロセッサが熱くなるとstopclk
ピンが 100 マイクロ秒引き抜かれるからです。 ...
Linux や Windows などの最新の OS のほとんどは、実際には「ハード リアルタイム」であることを意図していません。これらの OS の一部には、100 マイクロ秒を超える割り込みを無効にするコードのセクションがあります。
最新のハードウェアを備えた主流の最新の OS から、優れた "ソフト リアルタイム" (つまり、締め切りに間に合わなくても、失敗ではなく、わずかな煩わしさに過ぎない) をほぼ確実に得ることができます。システムをハード リアルタイムにするには、おそらく OS の変更または専用のリアルタイム OS (およびおそらく適切な特殊なハードウェア) のいずれかが必要になるでしょう。
しかし、そのようなハード リアルタイムを必要とするものは世界でもほんのわずかです。多くの場合、ハード リアルタイムの要件はハードウェアによって処理されます。たとえば、上記で説明した次世代の無線基地局は、より賢いハードウェアを備えていたため、次の 2 時間以内に新しい値を与える必要がありました。数ミリ秒で完了し、「数十マイクロ秒で完了するための狂ったラッシュ」はありませんでした。最新の携帯電話では、GSM または UMTS プロトコルは主に専用の DSP (デジタル シグナル プロセッサ) によって処理されます。
「ハード リアルタイム」要件とは、特定の期限 (または一連の期限) を守れない場合、たとえ期限を守れなかったことが 1 回だけであっても、システムが実際に機能していない場合です。ただし、システムが異なれば、締め切りが迫っている実際の時間に対するシステムの感度も異なります (Jerry Coffin が言及しているように)。ハードリアルタイムシステムのリアルタイム要件を処理する上で、市販の汎用 OS が完全に適切であるケースを見つけることはほぼ確実に可能です。また、特殊なシステムがなければ、このような厳しいリアルタイム要件を満たすことができないケースが他にもあることは間違いありません。
OS からミリ秒未満の保証が必要な場合は、デスクトップ Windows や Linux は適していません。これは実際には、OS とスケジューラの設計の全体的な哲学にかかっており、ハード リアルタイム OS を構築するには、ロックや、あるスレッドが別のスレッドをブロックしたり、実行をブロックしたりする可能性などについて、多くのことを考慮する必要があります。
あなたの質問に当てはまる答えは1つではないと思います。はい、確かに、厳しいリアルタイム要件を持つシステムでスレッドプールを使用できます。OSでこれに対する特定のサポートがない限り、おそらくミリ秒未満で実行することはできません。また、スレッドプール自体の一部ではない、最も優先度の高いリアルタイム動作を処理するために、専用のスレッドとプロセスが必要になる場合があります。
これがあなたの答えに「はい」または「いいえ」と言っていない場合は申し訳ありませんが、OSの実際の動作を調査し、それがどのような保証を提供できるかを確認する必要があると思います(最悪の場合)。また、最悪のシナリオとは何かを決定する必要があります。また、締め切りに間に合わなかった場合に何が起こるかを決定する必要があります。(多くの) 人が死んでいる (飛行機が空から落ちてくる) か、何百万ドルもの損失を被る銀行員がいる場合は、緑色です。交差点で 2 方向のライトが同時に点灯しますか、それともスピーカーから悪い音がしますか?