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 ドメインソケット

索引

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

スケジューラは、プロセスをいつどのくらいの時間実行するかを決定します。したがって、スケジューラの動作はシステム性能に大きな影響を与えます。

デフォルトでは、ユーザープロセスはすべてタイムシェアリングプロセスです。priocntl(2) 呼び出しによってのみ、プロセスのクラスが変更できます。

リアルタイムプロセス優先順位は、どのタイムシェアリングプロセスよりも優先順位が高くなっています。リアルタイムプロセスが実行可能である間、タイムシェアリングプロセスやシステムプロセスは実行できません。CPU の制御に失敗することがあるリアルタイムアプリケーションは、その他のユーザーや重要なカーネルハウスキーピングを完全にロックアウトする可能性があります。

プロセスのクラスと優先順位を制御する以外に、リアルタイムアプリケーションは、性能に影響するほかの要因も制御する必要があります。性能にもっとも影響する要因は、CPU、プライマリメモリー量、入出力スループットです。これらの要因は相互に複雑に関連しています。sar(1) コマンドには、すべての性能要因を表示するオプションがあります。

プロセスの状態変移

リアルタイム制約が厳しいアプリケーションは、プロセスがスワップされたりセカンダリメモリーにページアウトされたりしないようにする必要があります。次の図では、UNIX のプロセスの状態と状態間の変移の概要を示します。

図 4-2 プロセス状態の変移図

image: 実行中のプロセスは、実行可能またはメモリー内で休眠状態の場合、メモリーに横取りされます。メモリー内のプロセスはスワップされます。

動作中のプロセスは、通常、上記の図の 5 つのうち 1 つの状態にあります。矢印は、プロセスの状態の変化を示します。

プロセスが再度実行可能になった場合、ページングとスワップの両方により、遅延が発生します。タイミング要求が厳しいプロセスにとっては、この遅延は受け入れられないものです。

リアルタイムプロセスにすれば、プロセスの一部がページングされることがあってもスワップはされないため、スワップによる遅延を避けることができます。プログラムは、テキストとデータをプライマリメモリー内にロックして、ページングとスワップを避けることができます。詳細は、memcntl(2) のマニュアルページを参照してください。ロックできる量はメモリー構成によって制限されます。また、ロックが多すぎると、テキストやデータをメモリー内にロックしていないプロセスが大幅に遅れる可能性があります。

リアルタイムプロセスの性能とその他のプロセスとの性能の兼ね合いは、ローカルな必要性によって異なります。システムによっては、必要なリアルタイム応答を保証するためにプロセスのロックが必要な場合もあります。


注 - リアルタイムアプリケーションの応答時間については、「ディスパッチ応答時間」を参照してください。