Solaris 8 オペレーティング環境の概要

ユーザーレベル優先順位の継承

リアルタイム (RT) アプリケーションは、リアルタイムスケジューリングクラス内で一度に複数のスレッドを実行できます。たとえば、優先度の低い RT スレッドが相互排除ロックを取得後、優先度の高い RT スレッドがそのロックを要求できます。この場合、優先度の高いスレッドは、優先度の低いスレッドが相互排除ロックの処理を終えてロックを解放するのを待つ必要があります。この状態を「優先順位の逆転」と言います。

RT スレッド機能は、優先度の低いスレッドがロックを解放するまで、優先順位の高いスレッドが優先度の低いスレッドにその優先順位を「貸し与える」ことを許可する POSIX インタフェースを実装しています。このインタフェースは、以前のリリースではダミー化されていました。

優先順位の継承または優先順位の上限ロックを使用する RT スレッドは、PTHREAD_SCOPE_SYSTEM スケジューリングスコープ (または結合スレッド) を使用する必要があります。非結合スレッドは PTHREAD_SCOPE_PROCESS スケジューリングを使用しており、リアルタイムアプリケーションには不向きです。

詳細は、『マルチスレッドのプログラミング』を参照してください。