GNU/Linux >> Znalost Linux >  >> Linux

10 příkladů příkazů IPCS (s úvodem IPC)

IPC je zkratka pro Inter-process Communication.

Tato technika umožňuje procesům vzájemně komunikovat.

Protože každý proces má svůj vlastní adresní prostor a jedinečný uživatelský prostor, jak mezi sebou proces komunikuje?

Odpovědí je jádro, srdce operačního systému Linux, které má přístup k celé paměti. Můžeme tedy požádat jádro, aby přidělilo prostor, který lze použít ke komunikaci mezi procesy.

Proces může také komunikovat tak, že má soubor přístupný oběma procesům. Procesy mohou otevřít a číst/zapisovat soubor, což vyžaduje mnoho I/O operací, které spotřebovávají čas.

Různé typy IPCS

Existují různé IPC, které umožňují procesu komunikovat s jinými procesy, buď na stejném počítači, nebo na jiném počítači ve stejné síti.

  • Trubky – Poskytuje způsob, jak mohou procesy mezi sebou komunikovat výměnou zpráv. Pojmenované kanály poskytují způsob, jakým mohou procesy běžící na různých počítačových systémech komunikovat přes síť.
  • Sdílená paměť – Procesy si mohou vyměňovat hodnoty ve sdílené paměti. Jeden proces vytvoří část paměti, ke které má jiný proces přístup.
  • Fronta zpráv – Jedná se o strukturovaný a uspořádaný seznam paměťových segmentů, kde procesy ukládají nebo načítají data.
  • Semafory – Poskytuje mechanismus synchronizace pro procesy, které přistupují ke stejnému prostředku. Se semaforem se nepředávají žádná data; jednoduše koordinuje přístup ke sdíleným zdrojům.

10 příkladů příkazu IPCS

ipcs je příkaz UNIX/Linux, který se používá k výpisu informací o meziprocesové komunikaci. Příkaz ipcs poskytuje zprávu o IPCS systému V (fronta zpráv, semafor a sdílená paměť).

Příklad IPCS 1:Seznam všech zařízení IPC

Příkaz ipcs s volbou -a uvádí všechna zařízení IPC, která má pro aktuální proces přístup pro čtení. Poskytuje podrobnosti o frontě zpráv, semaforu a sdílené paměti.

# 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

Veškeré zařízení IPC má jedinečný klíč a identifikátor, který se používá k identifikaci zařízení IPC.

Příklad IPCS 2:Seznam všech front zpráv

ipcs s volbou -q, uvádí pouze fronty zpráv, pro které má aktuální proces přístup pro čtení.

$ ipcs -q

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

Příklad IPCS 3. Seznam všech semaforů

Volba ipcs -s se používá k výpisu dostupných semaforů.

# ipcs -s

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

Příklad IPCS 4. Seznam všech sdílených pamětí

Volba ipcs -m s příkazem ipcs uvádí sdílené paměti.

# 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

Příklad IPCS 5. Podrobné informace o zařízení IPC

Volba ipcs -i poskytuje podrobné informace o zařízení 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

Volba -i s -q poskytuje informace o konkrétní frontě zpráv. Volba -i s -s ​​poskytuje podrobnosti o semaforu. Volba -i s -m poskytuje podrobnosti o sdílené paměti.

Příklad IPCS 6. Uvádí limity pro zařízení IPC

Volba ipcs -l udává systémové limity pro každé zařízení 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

Výše uvedený příkaz udává limity pro sdílenou paměť. -l lze kombinovat s -q a -s pro zobrazení limitů pro frontu zpráv a semafory.

Jediná možnost -l udává limity pro všechna tři zařízení IPC.

# ipcs -l

Příklad IPCS 7. Seznam podrobností o tvůrci a vlastníkovi pro zařízení IPC

Volba ipcs -c uvádí ID uživatele a ID skupiny tvůrce a ID uživatele a ID skupiny vlastníka. Tuto volbu lze kombinovat s -m, -s a -q pro zobrazení podrobností o tvůrci pro konkrétní zařízení 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

Příklad IPCS 8. ID procesů, které nedávno přistoupily k zařízení IPC

Volba ipcs -p zobrazí ID tvůrce a ID procesu, který nedávno přistoupil k odpovídajícímu zařízení ipc.

# 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 lze také kombinovat s -m,-s nebo -q.

Příklad IPCS 9. Čas posledního přístupu

Volba ipcs -t zobrazuje čas poslední operace v každém zařízení ipc. Tuto volbu lze také kombinovat s -m, -s nebo -q pro tisk pro konkrétní typ zařízení ipc. Pro frontu zpráv volba -t zobrazuje čas posledního odeslání a příjmu, pro sdílenou paměť zobrazuje poslední připojení (část paměti) a odpojené časové razítko a pro semafor zobrazuje poslední operaci a podrobnosti o změně času.

# 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

Příklad IPCS 10. Stav aktuálního použití

Příkaz ipcs s -u zobrazí aktuální využití všech zařízení IPC. Tato možnost může být kombinována se specifickou možností zobrazení stavu pro konkrétní zařízení 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. Příkaz linuxové hlavy s příklady

  2. Příkaz Nohup s příklady

  3. Free Command v Linuxu vysvětleno s příklady

  1. Linux Tee Command s příklady

  2. JQ Command v Linuxu s příklady

  3. Příklady příkazů ipcs v Linuxu

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. Echo Command v Linuxu (s příklady)