JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
プログラミングインタフェースガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  メモリーと CPU の管理

2.  リモート共有メモリー API (Solaris クラスタ用)

3.  セッション記述プロトコル API

4.  プロセススケジューラ

スケジューラの概要

タイムシェアリングクラス

システムクラス

リアルタイムクラス

対話型クラス (IA クラス)

公平共有クラス

固定優先順位クラス

コマンドとインタフェース

priocntl の使用法

priocntl インタフェース

その他のインタフェースとの関係

カーネルプロセス

forkexec の使用法

nice の使用法

init(1M)

スケジューリングとシステム性能

プロセスの状態変移

5.  近傍性グループ API

6.  入出力インタフェース

7.  プロセス間通信

8.  ソケットインタフェース

9.  XTI と TLI を使用したプログラミング

10.  パケットフィルタリングフック

11.  トランスポート選択と名前からアドレスへのマッピング

12.  リアルタイムプログラミングと管理

13.  Solaris ABI と ABI ツール

A.  UNIX ドメインソケット

索引

コマンドとインタフェース

次の図に、デフォルトのプロセス優先順位を示します。

図 4-1 プロセス優先順位 (プログラマから見た場合)

image:リアルタイムスレッドの優先順位はシステムスレッドよりも高い。システムスレッドの優先順位はタイムシェアリングスレッドよりも高い。各クラスは個々の実行待ち行列を持ちます。

プロセス優先順位が意味を持つのは、スケジューリングクラスについてだけです。プロセス優先順位を指定するには、クラスとクラス固有の優先順位の値を指定します。クラスとクラス固有の値は、システムによってグローバル優先順位に割り当てられ、この値を使用してプロセスがスケジューリングされます。

優先順位は、システム管理者から見た場合とユーザーまたはプログラマから見た場合とで異なります。スケジューリングクラスを構成する場合、システム管理者はグローバル優先順位を直接取り扱います。システムでは、ユーザーが指定した優先順位は、このグローバル優先順位に割り当てられます。優先順位の詳細は、『Oracle Solaris の管理: 基本管理』を参照してください。

ps(1) コマンドで -cel オプションを指定すると、動作中のすべてのプロセスのグローバル優先順位が表示されます。priocntl(1) コマンドを指定した場合、ユーザーとプログラマが使用するクラス固有の優先順位が表示されます。

priocntl(1) コマンド、priocntl(2) インタフェース、および priocntlset(2) インタフェースは、プロセスのスケジューリングパラメータを設定または取得するために使用されます。優先順位を設定するときには、これらのコマンドおよびインタフェースいずれの場合でも、次の同じ手順に従います。

  1. ターゲットプロセスを指定する。

  2. そのプロセスに希望するスケジューリングパラメータを指定する。

  3. プロセスにパラメータを設定するコマンドまたはインタフェースを実行する。

プロセス ID は UNIX プロセスの基本設定項目です。詳細は、Intro(2) を参照してください。クラス ID はプロセスのスケジューリングクラスです。priocntl(2) は、タイムシェアリングクラスと実時間クラスだけに有効で、システムクラスには使用できません。

priocntl の使用法

priocntl(1) ユーティリティーは、プロセスをスケジューリングする際に、次の 4 つの制御インタフェースを実行します。

priocntl -l

構成情報を表示します

priocntl -d

プロセスのスケジューリングパラメータを表示します

priocntl -s

プロセスのスケジューリングパラメータを設定します

priocntl -e

指定したスケジューリングパラメータでコマンドを実行します

次に、priocntl(1) を使用したいくつかの例を示します。

priocntl(1) には、nice(1) のインタフェースが含まれます。nice は、タイムシェアリングプロセスについてだけ有効で、数値が大きいほど優先順位が低くなります。前述の例は、nice(1) を使用してインクリメントを 10 に設定するのと同じです。

$ nice -10 make bigprog

priocntl インタフェース

priocntl(2) は、1 つのプロセスまたは 1 組のプロセスのスケジューリングパラメータを管理します。priocntl(2) 呼び出しにより管理できるのは、LWP、単独のプロセス、またはプロセスのグループです。プロセスのグループは、親プロセス、プロセスグループ、セッション、ユーザー、グループ、クラス、または動作中のすべてのプロセスによって識別できます。詳細は、priocntl のマニュアルページを参照してください。

クラス ID を指定した場合、PC_GETCLINFO コマンドはスケジューリングクラス名とパラメータを取得します。このコマンドを使用すると、構成するクラスを想定しないプログラムを作成できます。

PC_SETXPARMS コマンドは、一組のプロセスのスケジューリングクラスとパラメータを設定します。idtypeid の入力引数は、変更するプロセスを指定します。