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.  プロセススケジューラ

5.  近傍性グループ API

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

7.  プロセス間通信

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

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

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

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

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

リアルタイムアプリケーションの基本的な規則

応答時間を低下させる要因

同期入出力呼び出し

割り込みサービス

共有ライブラリ

優先順位の逆転

スティッキロック

ランナウェイリアルタイムプロセス

非同期入出力の動作

リアルタイムファイル

リアルタイムスケジューラ

ディスパッチ応答時間

スケジューリングクラス

ディスパッチ待ち行列

プロセスのディスパッチ

プロセスの横取り

カーネル優先順位の逆転

ユーザー優先順位の逆転

スケジューリングを制御するインタフェース呼び出し

priocntl の使用法

その他のインタフェース呼び出し

スケジューリングを制御するユーティリティー

priocntl(1)

dispadmin(1M)

スケジューリングの構成

ディスパッチャーパラメータテーブル

config_rt_dptbl の再構成

メモリーのロック

ページのロック

ページのロック解除

全ページのロック

スティッキロックの復元

高性能入出力

POSIX 非同期入出力

Solaris 非同期入出力

通知 (SIGIO)

aioread の使用法

aiowrite の使用法

aiocancel の使用法

aiowait の使用法

poll() の使用法

poll ドライバの使用法

close の使用法

同期入出力

同期モード

ファイルの同期

プロセス間通信

シグナルの処理

パイプ、名前付きパイプ、およびメッセージ待ち行列

セマフォーの使用法

共有メモリー

非同期ネットワーク通信

ネットワーキングのモード

タイミング機能

タイムスタンプインタフェース

インターバルタイマーインタフェース

13.  Solaris ABI と ABI ツール

A.  UNIX ドメインソケット

索引

プロセス間通信

このセクションでは、リアルタイム処理と関連する、SunOS インタフェースについて説明します。また、シグナル、パイプ、FIFO、メッセージ待ち行列、共有メモリー、ファイルマッピング、およびセマフォーについても説明します。プロセス間通信に役立つライブラリ、インタフェース、およびルーチンについては、第 7 章プロセス間通信を参照してください。

シグナルの処理

次のように、送信側は sigqueue(3RT) を使用して、少量の情報とともにシグナルをターゲットプロセスに送信します。

以降に発生する保留状態のシグナルも待ち行列に入るので、ターゲットプロセスは指定されたシグナルの SA_SIGINFO ビットを設定する必要があります。詳細は、sigaction(2) のマニュアルページを参照してください。

ターゲットプロセスは通常、シグナルを非同期的に受信します。シグナルを同期的に受信するには、シグナルをブロックして、sigwaitinfo(3RT) または sigtimedwait(3RT) を呼び出します。詳細は、sigprocmask(2) のマニュアルページを参照してください。この手順によって、シグナルは同期的に受信されるようになります。このとき、sigqueue(3RT) の呼び出し側が送信した値は siginfo_t 引数の si_value メンバーに格納されます。シグナルのブロックを解除しておくと、シグナルは siginfo_t 引数の si_value に格納された値とともに、sigaction(2) によって指定されたシグナルハンドラに配信されます。

あるプロセスが送信できるシグナルの数は関連する値で指定されており、残りは送信されないままになります。sigqueue(3RT) を最初に呼び出したとき、{SIGQUEUE_MAX} 個のシグナルが入る記憶情報域が割り当てられます。次に、sigqueue(3RT) を呼び出すと、ターゲットプロセスの待ち行列にシグナルが正常に入るか、制限時間内で失敗します。

パイプ、名前付きパイプ、およびメッセージ待ち行列

パイプ、名前付きパイプ、およびメッセージ待ち行列は、文字入出力デバイスと同様に動作します。ただし、これらのインタフェースは接続には異なる方法を使用します。パイプについての詳細は、「プロセス間のパイプ」を参照してください。名前付きパイプについての詳細は、「名前付きパイプ」を参照してください。メッセージ待ち行列についての詳細は、「System V メッセージ」および 「POSIX メッセージ」を参照してください。

セマフォーの使用法

セマフォーも System V と POSIX の両方のスタイルで提供されます。詳細は、「System V セマフォー」および 「POSIX セマフォー」を参照してください。

この章で前述した手法によって優先順位の逆転を明示的に回避しない限り、セマフォーを使用すると、優先順位の逆転が発生する場合があるので注意してください。

共有メモリー

プロセスがもっとも高速に通信する方法は、メモリーの共有セグメントを直接使用する方法です。3 つ以上のプロセスが同時に共有メモリーに読み書きしようとすると、メモリーの内容が正確でなくなる可能性があります。これは、共有メモリーを使用する場合のもっとも大きな問題です。