GNU/Linux >> Linux の 問題 >  >> Linux

10 IPCS コマンドの例 (IPC の紹介付き)

IPC はプロセス間通信の略です。

この手法により、プロセスが相互に通信できるようになります。

各プロセスには独自のアドレス空間と固有のユーザー空間があるため、プロセスはどのように相互に通信するのでしょうか?

その答えは、メモリ全体にアクセスできる Linux オペレーティング システムの心臓部であるカーネルです。そのため、プロセス間の通信に使用できるスペースを割り当てるようにカーネルに要求できます。

プロセスは、両方のプロセスがアクセスできるファイルを持つことによって通信することもできます。プロセスはファイルを開き、ファイルを読み書きできますが、これには多くの I/O 操作が必要で、時間がかかります。

さまざまなタイプの IPCS

同じコンピュータ内または同じネットワーク内の別のコンピュータ内で、プロセスが別のプロセスと通信できるようにするさまざまな IPC があります。

  • パイプ – メッセージを交換することにより、プロセスが相互に通信する方法を提供します。名前付きパイプは、さまざまなコンピューター システムで実行されているプロセスがネットワーク経由で通信する方法を提供します。
  • 共有メモリ – プロセスは共有メモリで値を交換できます。 1 つのプロセスが、他のプロセスがアクセスできるメモリの一部を作成します。
  • メッセージ キュー – プロセスがデータを保存または取得するメモリ セグメントの構造化された順序付きリストです。
  • セマフォ – 同じリソースにアクセスしているプロセスの同期メカニズムを提供します。セマフォではデータは渡されません。共有リソースへのアクセスを調整するだけです。

10 IPCS コマンドの例

ipcs は、プロセス間通信に関する情報を一覧表示するために使用される UNIX / Linux コマンドです。 ipcs コマンドは、System V IPCS (メッセージ キュー、セマフォ、および共有メモリ) に関するレポートを提供します。

IPCS の例 1:すべての IPC 機能を一覧表示する

-a オプションを指定した ipcs コマンドは、現在のプロセスの読み取りアクセス権を持つすべての IPC 機能を一覧表示します。メッセージ キュー、セマフォ、および共有メモリに関する詳細を提供します。

# ipcs -a

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0xc616cc44 1056800768 oracle    660        4096       0
0x0103f577 323158020  root      664        966        1
0x0000270f 325713925  root      666        1          2

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x0103eefd 0          root      664        1
0x0103eefe 32769      root      664        1
0x4b0d4514 1094844418 oracle    660        204

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages
0x000005a4 32768      root       644        0            0

すべての IPC 施設には、IPC 施設を識別するために使用される一意のキーと識別子があります。

IPCS の例 2:すべてのメッセージ キューを一覧表示する

オプション -q を指定した ipcs は、現在のプロセスが読み取りアクセス権を持つメッセージ キューのみを一覧表示します。

$ ipcs -q

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages
0x000005a4 32768      root       644        0            0

IPCS の例 3. すべてのセマフォを一覧表示する

アクセス可能なセマフォを一覧表示するには、ipcs -s オプションを使用します。

# ipcs -s

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x0103eefd 0          root      664        1
0x0103eefe 32769      root      664        1
0x4b0d4514 1094844418 oracle    660        204

IPCS の例 4. すべての共有メモリを一覧表示する

ipcs コマンドの ipcs -m オプションを使用すると、共有メモリが一覧表示されます。

# ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0xc616cc44 1056800768 oracle    660        4096       0
0x0103f577 323158020  root      664        966        1
0x0000270f 325713925  root      666        1          2

IPCS の例 5. IPC 機能に関する詳細情報

ipcs -i オプションは、ipc 機能に関する詳細情報を提供します。

# ipcs -q -i 32768

Message Queue msqid=32768
uid=0   gid=0   cuid=0  cgid=0  mode=0644
cbytes=0        qbytes=65536    qnum=0  lspid=0 lrpid=0
send_time=Not set
rcv_time=Not set
change_time=Thu Aug  5 13:30:22 2010

オプション -i を -q とともに使用すると、特定のメッセージ キューに関する情報が提供されます。オプション -i を -s とともに使用すると、セマフォの詳細が提供されます。オプション -i に -m を指定すると、共有メモリに関する詳細が表示されます。

IPCS の例 6。IPC 機能の制限を一覧表示

ipcs -l オプションは、各 ipc 機能のシステム制限を示します。

# ipcs -m -l

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 67108864
max total shared memory (kbytes) = 17179869184
min seg size (bytes) = 1

上記のコマンドは、共有メモリの制限を示します。 -l を -q および -s と組み合わせて、メッセージ キューとセマフォの制限をそれぞれ表示できます。

単一のオプション -l は、3 つの IPC 機能すべてに制限を与えます。

# ipcs -l

IPCS の例 7. IPC 機能の作成者と所有者の詳細を一覧表示する

ipcs -c オプションは、作成者のユーザー ID とグループ ID、および所有者のユーザー ID とグループ ID をリストします。このオプションを -m、-s、および -q と組み合わせて、特定の IPC 機能の作成者の詳細を表示できます。

# ipcs -m -c

------ Shared Memory Segment Creators/Owners --------
shmid      perms      cuid       cgid       uid        gid
1056800768 660        oracle     oinstall   oracle     oinstall
323158020  664        root       root       root       root
325713925  666        root       root       root       root

IPCS の例 8. 最近 IPC 機能にアクセスしたプロセス ID

ipcs -p オプションは、作成者 ID と、対応する ipc 機能に最近アクセスしたプロセス ID を表示します。

# ipcs -m -p

------ Shared Memory Creator/Last-op --------
shmid      owner      cpid       lpid
1056800768 oracle     16764      5389
323158020  root       2354       2354
325713925  root       20666      20668

-p は、-m、-s、または -q と組み合わせることもできます。

IPCS の例 9. 最終アクセス時間

ipcs -t オプションは、各 ipc ファシリティでの最後の操作時刻を表示します。このオプションを -m、-s、または -q と組み合わせて、特定のタイプの ipc 機能を出力することもできます。メッセージ キューの場合、-t オプションは最後に送信および受信した時刻を表示し、共有メモリの場合は最後にアタッチされた (メモリの一部) およびデタッチされたタイムスタンプを表示し、セマフォの場合は最後の操作と変更された時刻の詳細を表示します。

# ipcs -s -t

------ Semaphore Operation/Change Times --------
semid    owner      last-op                    last-changed
0        root        Thu Aug  5 12:46:52 2010   Tue Jul 13 10:39:41 2010
32769    root        Thu Aug  5 11:59:10 2010   Tue Jul 13 10:39:41 2010
1094844418 oracle      Thu Aug  5 13:52:59 2010   Thu Aug  5 13:52:59 2010

IPCS 例 10. 現在の使用状況

-u コマンドを指定した ipcs は、すべての IPC 機能の現在の使用状況を表示します。このオプションを特定のオプションと組み合わせて、特定の IPC 施設のステータスを表示できます。

# ipcs -u

------ Shared Memory Status --------
segments allocated 30
pages allocated 102
pages resident  77
pages swapped   0
Swap performance: 0 attempts     0 successes

------ Semaphore Status --------
used arrays = 49
allocated semaphores = 252

------ Messages: Status --------
allocated queues = 1
used headers = 0
used space = 0 bytes

Linux
  1. 例を含むLinuxTeeコマンド

  2. 例を含むLinuxヘッドコマンド

  3. LinuxでのJQコマンドと例

  1. 例を含むNohupコマンド

  2. 例で説明されたLinuxの無料コマンド

  3. Linux での ipcs コマンドの例

  1. 例を含むwcLinuxコマンド

  2. Linuxのソートコマンドと例

  3. Linuxでのエコーコマンド(例付き)