"なぜこれを知る必要があるのですか?"とのコメントをお寄せください:これは私が興味があったパズルだけであり、実用的な理由で行う必要はありません。プロセス/スレッドのスケジューリング量子を実験的に決定する方法は?
典型的なPOSIXシステム[1]では、CPUバインドプロセスのスケジューリング量子[2]を決定するために実験をどのように設計しますか?
[1]:ではなく、あなたがシステムコールや/ procのインターフェイスを介してこの情報を照会することができます1
[2]:「スケジューリング量子」プロセスは、上で動作する時間の量として定義されますCPUが予定された時間が終わる前にブロッキングまたは降伏することなく、OSが別のプロセスを実行できるようにします。
優先度の高いプロセスは、通常、すぐに実行されます(そうでない場合、優先度が高くなることはありません)。おそらくあなたの最後の段落で、あなたは「...予定時刻が終わり、OSが別の優先順位の高いプロセスを実行する前に」と言うことを意味しました。 –
@ JeremyFriesner私は、典型的なシステムでは、タイムスライスの有効期限が切れるまでプロセスを先取りしないと考えました。私は間違っていますか? LinuxやFreeBSDではどのように動作しますか?それにかかわらず、私は質問を編集しました。 –
通常、プロセスは(a)その量子が期限切れになり(同じ優先度を持つ別のプロセスが実行可能な状態)、(b)優先度の高い別のプロセスが実行可能になるまで実行されます。 (代わりに、優先度の低いプロセスが実行されているため、すぐに実行できる優先度の高いプロセスが実行されていない、優先度の逆転と呼ばれ、スケジューラの設計者が回避しようとしているもの) –