next up previous
Next: 17 デーモンスレッド Up: 16 スレッドのスケジューリング Previous: 16.9 volatile

16.10 プリエンプション

スレッドに,プロセッサの割り当てが無くなることはプリエンプション (preemption)という. スケジューラは優先順序の高いスレッドが実行 可能になった場合や,タイムスライス処理などによって 他のスレッドにプロセッサを与える番であると決定することによって プリエンプションを行う. ここでのタイムスライス処理(time slicing)とは ひとつのスレッドが実行できる時間を制限するものである. 実行しているスレッドは,waitやsleep,I/Oなどに対する操作などのブロック操 作を行うか,プリエンプションがなされるまで実行を続ける. プリエンプションがいつ起こるかは仮想マシンに依存する.保証は全くなく, 優先順位が高いスレッドを実行させることが優先されるというおおよその期待し かない.効率のために,スケジューリングポリシーに影響を与えるためだ けに優先順位をつける. アルゴリズムの正しさをスレッドの優先順位に頼ったりしてはいけないという ことになっている.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日