システムインタフェース

プロセスの状態変移

厳しい実時間制約を持つアプリケーションは、プロセスがスワップされたり二次メモリにページアウトされたりしないようにする必要がある場合があります。UNIX のプロセスの状態と状態間の変移の概要を図 4-3 に示します。

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

Graphic

有効なプロセスは、通常、上記の図の 5 つの状態のうちの 1 つにあります。矢印は状態が変わる方向を示します。

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

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

実時間プロセスの性能とその他のプロセスの性能の兼ね合いは、ローカルなニーズによって異なります。システムによっては、必要な実時間応答を保証するためにプロセスのロッキングが必要な場合もあります。