差分

移動先: 案内検索

カーネルの構造と機能

239 バイト追加, 2010年4月12日 (月) 03:47
/* プロセス管理 */
ここではプロセスという言葉をつかっていますが、タスクやスレッドという言葉もあります。ある処理の計算資源と処理の流れをすべて含めて呼ぶ時はタスクです。計算資源は共有していてる複数あるいは単数の処理の流れのことをスレッドと呼びます。ですから1つのタスクで複数のスレッドを持つことができます。1つのタスクに対し、1つのスレッドだけの場合、これをUNIXの伝統的な呼び方であるプロセスと呼びます。1タスク・1スレッドが伝統的な意味でのUNIXのプロセスと同等の意味を持ちます。ここではプロセスという言葉をつかっていますが、タスクやスレッドという言葉もあります。ある処理の計算資源と処理の流れをすべて含めて呼ぶ時はタスクです。計算資源は共有し、さらにCPU資源を個別に割り当てられている複数あるいは単数の処理の流れのことをスレッドと呼びます。ですから1つのタスクで複数のスレッドを持つことができます。1つのタスクに対し、1つのスレッドだけの場合、UNIXの伝統的なプロセスと同等であり、呼び方もプロセスと呼んでかまいません。  ;補足: CPU(演算装置)資源は、プログラムが実行するのに必要な計算資源の中の1つにしか過ぎません。また1つの計算資源の中に複数のCPU資源を持つことが可能です。
UNIXは最初からスレッドを持っていたわけではありません。80年代に入ってから色々な組織がスレッドの実装を試みました。Brown Univ.のブラウンスレッド、サンマイクロシステムズのLWP (Lightweiht Process)、DECのCMA スレッド、CMUのCスレッドパッケージがあります。各々互換性はありません。紆余曲折あり、現在ではPOSIX仕様のスレッドであるpthreads(7)が主流になっています。
===== スケジュリングの種類 =====
プロセスのスケジュリングでは、Linuxの場合、 システムコールsched_setscheduler(2)を使い、プロセスのスケジュリングの方法を指定することができます。
匿名利用者