プロジェクトへのログインが成功するたびに、ログインプロセスを含む新しい「タスク」が作成されます。タスクは、時間をかけて行われる一連の作業を表すプロセスです。また、タスクは「作業負荷のコンポーネント」と考えることもできます。各タスクには、自動的にタスク ID が割り当てられます。
各プロセスは 1 つのタスクのメンバーであり、各タスクは 1 つのプロジェクトに関連付けられています。
図 2-1 プロジェクトとタスクのツリー
シグナル送信のようなプロセスグループ上のすべての操作も、タスクでサポートされています。タスクを「プロセッサセット」に結合して、スケジューリングの優先順位とクラスを設定することにより、タスク内の現在のプロセスとそれに続くすべてのプロセスを変更することもできます。
プロジェクトへの参加が発生するたびに、タスクが作成されます。タスクは、次のアクション、コマンド、および関数によって作成されます。
login
cron
newtask
setproject
su
次のいずれかの方法で、最終的なタスクを作成できます。これ以降は、新しいタスクを作成しようとすると失敗します。
newtask コマンドに –F オプションを付けて実行します。
project ネームサービスデータベースで、プロジェクトに task.final 属性を設定します。setproject によってそのプロジェクト内に作成されるすべてのタスクに、TASK_FINAL フラグが設定されます。
詳細は、login(1)、newtask(1)、cron(1M)、su(1M)、および setproject(3PROJECT) のマニュアルページを参照してください。
拡張アカウンティング機能は、プロセスのアカウンティングデータを提供できます。データはタスクレベルで集計されます。