表 34-1 に、プロセスに関連する用語を示します。
表 34-1 プロセスに関連する用語
用語 |
説明 |
---|---|
プロセス |
実行中のプログラムの実体 |
軽量プロセス (LWP) |
仮想 CPU または実行資源。LWP は、利用できる CPU 資源をスケジュールクラスと優先順位に基づいて使用するように、カーネルによってスケジュールされる。LWP には、メモリーに常駐する情報が入ったカーネルスレッドと、スワップ可能な情報が入った LWP が含まれる |
アプリケーションスレッド |
ユーザーのアドレス空間内で独立して実行できる別個のスタックを持った一連の命令。LWP の最上部で多重化できる |
1 つのプロセスは、複数の LWP と複数のアプリケーションスレッドで構成できます。カーネルはカーネルスレッド構造をスケジュールします。この構造は、SunOS 環境内をスケジュールする実体です。表 34-2 に各種プロセス構造体を示します。
表 34-2 プロセス構造体
構造体 |
説明 |
---|---|
proc |
プロセス全体に関連し、メインメモリーに常駐しなければならない情報が入っている |
kthread |
1 つの LWP に関連し、メインメモリーに常駐しなければならない情報が入っている |
user |
スワップ可能な、プロセス単位の情報が入っている |
klwp |
スワップ可能な、LWP プロセス単位の情報が入っている |
図 34-1 に、これらの構造体の関係を示します。
プロセス内のすべてのスレッドは、ほとんどのプロセス資源にアクセスできます。ほとんどすべてのプロセスの仮想メモリーが共有されます。あるスレッドが共有データを変更すると、その変更結果をプロセス内の他のスレッドが利用できます。
表 34-3 に、プロセスを管理するためのコマンドとその説明を示します。
表 34-3 プロセスを管理するためのコマンド
使用するコマンド |
目的 |
---|---|
ps(1)、 pgrep(1)、 prstat(1M) |
システム上のアクティブなプロセスの状態をチェックする。また、プロセスについての詳細な情報を表示する |
dispadmin(1M) |
デフォルトのスケジューリングポリシーをリストする |
priocntl(1) |
プロセスに優先順位クラスを割り当てて、プロセスの優先度を管理する |
nice(1) |
タイムシェアリングプロセスの優先度を変更する |
別の機能を使うと、プロセッサセットに関してプロセスグループを制御できます。プロセッサセットを使用するということは、プロセスグループを 1 つのプロセサだけではなく、プロセッサグループにバインドできるということです。システム管理者は、/usr/sbin/psrset コマンドを使用することにより、プロセッサセットの作成と管理を制御できます。詳細は、psrset(1M) のマニュアルページを参照してください。
プロセスを管理するためのコマンドの詳細は、第 35 章「プロセスの管理手順」を参照してください。