差分

移動先: 案内検索

プロセス管理

831 バイト追加, 2007年10月25日 (木) 11:52
/* スケジュリング */
プロセスにCPU資源をどのように与えるかの順番を決めるスケジュール (schedule)ことを行うことがスケジュリング(scheduling)です。それを司るのがスケジュラ(scheduler)です。
 
スケジュリングの方式にはポリシーと呼ばれる、いくつかの方式があります。
 
* FIFO : 最初に入ったプロセスが終了するまでそのプロセスが専有する方式。最初に入ったものが最初に出るなのでFirst-In-First-Out / FIFOと呼ばれる。
 
* RR : ラウンドロビン( Round Robin: 一定の間隔で順繰りに回ってくる)でプロセスが割り当てられる方式。
 
* 独自優先順位: 実行に使用した時間の違いなどにより優先順位をつけるなどし、その優先順位に従って割り当てる方式。(Linuxデフォルト)
 
* バッチ: (たとえば大量の処理をしても)プライオリティの変化をつけない。尚、当然ながらタイムシェアリングシステムにおいてのバッチという意味である。
Linuxの基本はUNIXの流れであるラウンドロビンと優先順位をミックスしたものですが、Linuxではラウンドロビンとしてプロセスが待機しているキューの並べ変えの時の順位だけではなく、タイムスライスの値も変化させています。Linux Linuxの基本はUNIXの流れであるラウンドロビンと優先順位をミックスしたものです。優先順位によってタスク待ちの優先順位の高いキューにセットされます。またそれだけでもなくタイムスライスの値も変化させています。Linux 2.6.22の場合、タイムスライスは平均100msですが内部では最小5msから最大800msまで変化させることが可能です。22の場合、タイムスライスは平均100msですが内部では最小5msから最大800msまで内部で動的に変化させています。現在のLinux 2.6系におけるスケジュラーは以前2.4系で使われていたスケジュラーからみると画期的に性能がいいO(1)スケジュラ(Order one scheduler)ですが、ここに至るまでにいろいろなスケジュラの提案がありました。今後もある意味オペレーティングシステムの心臓部ともいえるスケジュラーが色々な要件を満たすため、あるいはさらなる効率化のために変更される可能性はあります。あちらこちらの腕利きのカーネルハッカーが新しい提案をどんどん提案してくるようなことは過去の隠されたコードによって開発されていた時代にはありえなかったことです。      ;補足: カーネルを読む限りそうなのだが、どのような
=== プライオリティ ===
匿名利用者