GNU/Linux >> LINUX-Kenntnisse >  >> Linux

10 IPCS-Befehlsbeispiele (mit IPC-Einführung)

IPC steht für Interprozesskommunikation.

Diese Technik ermöglicht es den Prozessen, miteinander zu kommunizieren.

Da jeder Prozess seinen eigenen Adressraum und eindeutigen Benutzerraum hat, wie kommunizieren die Prozesse miteinander?

Die Antwort ist Kernel, das Herzstück des Linux-Betriebssystems, das Zugriff auf den gesamten Speicher hat. So können wir den Kernel auffordern, den Speicherplatz zuzuweisen, der für die Kommunikation zwischen Prozessen verwendet werden kann.

Der Prozess kann auch kommunizieren, indem er eine Datei hat, auf die beide Prozesse zugreifen können. Prozesse können die Datei öffnen und lesen/schreiben, was viele E/A-Operationen erfordert, die Zeit in Anspruch nehmen.

Verschiedene Arten von IPCS

Es gibt verschiedene IPCs, die es einem Prozess ermöglichen, mit anderen Prozessen zu kommunizieren, entweder auf demselben Computer oder auf verschiedenen Computern im selben Netzwerk.

  • Rohre – Bietet Prozessen die Möglichkeit, durch den Austausch von Nachrichten miteinander zu kommunizieren. Named Pipes bieten Prozessen, die auf verschiedenen Computersystemen laufen, die Möglichkeit, über das Netzwerk zu kommunizieren.
  • Gemeinsamer Speicher – Prozesse können im Shared Memory Werte austauschen. Ein Prozess erstellt einen Teil des Speichers, auf den andere Prozesse zugreifen können.
  • Nachrichtenwarteschlange – Es ist eine strukturierte und geordnete Liste von Speichersegmenten, in denen Prozesse Daten speichern oder abrufen.
  • Semaphoren – Bietet einen Synchronisierungsmechanismus für Prozesse, die auf dieselbe Ressource zugreifen. Bei einem Semaphor werden keine Daten übergeben; es koordiniert einfach den Zugriff auf gemeinsam genutzte Ressourcen.

10 IPCS-Befehlsbeispiel

ipcs ist ein UNIX/Linux-Befehl, der verwendet wird, um die Informationen über die Kommunikation zwischen Prozessen aufzulisten

IPC-Beispiel 1:Alle IPC-Einrichtungen auflisten

Der Befehl ipcs mit der Option -a listet alle IPC-Einrichtungen auf, die für den aktuellen Prozess Lesezugriff haben. Es liefert Details über Message Queue, Semaphor und Shared Memory.

# 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

Alle IPC-Einrichtungen haben eindeutige Schlüssel und Kennungen, die zur Identifizierung einer IPC-Einrichtung verwendet werden.

IPCS-Beispiel 2:Alle Nachrichtenwarteschlangen auflisten

ipcs mit Option -q listet nur Nachrichtenwarteschlangen auf, für die der aktuelle Prozess Lesezugriff hat.

$ ipcs -q

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

IPCS-Beispiel 3. Alle Semaphoren auflisten

Die Option ipcs -s wird verwendet, um die zugänglichen Semaphoren aufzulisten.

# 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-Beispiel 4. Alle gemeinsam genutzten Speicher auflisten

Die Option ipcs -m mit dem Befehl ipcs listet die gemeinsam genutzten Erinnerungen auf.

# 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-Beispiel 5. Detaillierte Informationen über eine IPC-Einrichtung

Die Option ipcs -i liefert detaillierte Informationen über eine IPC-Einrichtung.

# 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

Option -i mit -q liefert Informationen über eine bestimmte Nachrichtenwarteschlange. Option -i mit -s liefert Semaphor-Details. Option -i mit -m liefert Details zu einem Shared Memory.

IPCS-Beispiel 6. Listet die Grenzwerte für die IPC-Einrichtung auf

Die Option ipcs -l gibt die Systemgrenzen für jede IPC-Einrichtung an.

# 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

Der obige Befehl gibt die Grenzen für gemeinsam genutzten Speicher an. -l kann mit -q und -s kombiniert werden, um die Grenzwerte für Nachrichtenwarteschlangen bzw. Semaphoren anzuzeigen.

Die einzelne Option -l gibt die Grenzen für alle drei IPC-Einrichtungen an.

# ipcs -l

IPCS-Beispiel 7. Ersteller- und Eigentümerdetails für die IPC-Einrichtung auflisten

Die Option ipcs -c listet Benutzer-ID und Gruppen-ID des Erstellers sowie Benutzer-ID und Gruppen-ID des Eigentümers auf. Diese Option kann mit -m, -s und -q kombiniert werden, um die Erstellerdetails für bestimmte IPC-Einrichtungen anzuzeigen.

# 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-Beispiel 8. Prozess-IDs, die kürzlich auf die IPC-Einrichtung zugegriffen haben

Die Option ipcs -p zeigt die Ersteller-ID und die Prozess-ID an, die vor kurzem auf die entsprechende IPC-Einrichtung zugegriffen haben.

# 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 kann auch mit -m, -s oder -q kombiniert werden.

IPCS-Beispiel 9. Zeit des letzten Zugriffs

Die Option ipcs -t zeigt die letzte Betriebszeit in jeder IPC-Einrichtung an. Diese Option kann auch mit -m, -s oder -q kombiniert werden, um für einen bestimmten Typ von IPC-Einrichtung zu drucken. Für die Nachrichtenwarteschlange zeigt die Option -t die zuletzt gesendete und empfangene Zeit an, für den gemeinsam genutzten Speicher zeigt sie den zuletzt angeschlossenen (Teil des Speichers) und den getrennten Zeitstempel an und für die Semaphore zeigt sie die letzte Operation und geänderte Zeitdetails an.

# 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-Beispiel 10. Status der aktuellen Nutzung

ipcs mit dem Befehl -u zeigt die aktuelle Nutzung für alle IPC-Einrichtungen an. Diese Option kann mit einer spezifischen Option kombiniert werden, um den Status für eine bestimmte IPC-Einrichtung anzuzeigen.

# 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. Linux Tee-Befehl mit Beispielen

  2. Linux-Kopfbefehl mit Beispielen

  3. Nohup-Befehl mit Beispielen

  4. Freier Befehl in Linux mit Beispielen erklärt

  5. ipcs-Befehlsbeispiele unter Linux

Linux-IP-Befehl mit Beispielen

Netcat (nc) Befehl mit Beispielen

Tr-Befehl in Linux mit Beispielen

15 Linux-PS-Befehl mit Beispielen

Linux-CD-Befehl mit Beispielen

Verlaufsbefehl mit Beispielen