GNU/Linux >> Linux Esercitazione >  >> Linux

10 Esempi di comandi IPCS (con introduzione IPC)

IPC sta per Comunicazione tra processi.

Questa tecnica consente ai processi di comunicare tra loro.

Poiché ogni processo ha il proprio spazio di indirizzi e uno spazio utente univoco, in che modo il processo comunica tra loro?

La risposta è Kernel, il cuore del sistema operativo Linux che ha accesso a tutta la memoria. Quindi possiamo richiedere al kernel di allocare lo spazio che può essere utilizzato per comunicare tra i processi.

Il processo può anche comunicare avendo un file accessibile a entrambi i processi. I processi possono aprire e leggere/scrivere il file, il che richiede molte operazioni di I/O che richiedono tempo.

Diversi tipi di IPCS

Esistono vari IPC che consentono a un processo di comunicare con altri processi, sullo stesso computer o su computer diversi nella stessa rete.

  • Tubi – Fornisce un modo per i processi di comunicare tra loro attraverso lo scambio di messaggi. Le named pipe forniscono un modo per i processi in esecuzione su diversi sistemi di computer per comunicare sulla rete.
  • Memoria condivisa – I processi possono scambiare valori nella memoria condivisa. Un processo creerà una porzione di memoria a cui può accedere un altro processo.
  • Coda messaggi – È un elenco strutturato e ordinato di segmenti di memoria in cui i processi archiviano o recuperano dati.
  • Semafori – Fornisce un meccanismo di sincronizzazione per i processi che accedono alla stessa risorsa. Nessun dato viene passato con un semaforo; coordina semplicemente l'accesso alle risorse condivise.

10 Esempio di comando IPCS

ipcs è un comando UNIX/Linux, che viene utilizzato per elencare le informazioni sulla comunicazione tra processi Il comando ipcs fornisce un report su System V IPCS (Coda messaggi, Semaforo e Memoria condivisa).

Esempio IPCS 1:elenca tutte le strutture IPC

Il comando ipcs con l'opzione -a elenca tutte le strutture IPC che hanno accesso in lettura per il processo corrente. Fornisce dettagli su coda messaggi, semaforo e memoria condivisa.

# 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

Tutta la struttura IPC ha una chiave e un identificatore univoci, che vengono utilizzati per identificare una struttura IPC.

Esempio 2 IPCS:elenca tutta la coda dei messaggi

ipcs con l'opzione -q, elenca solo le code di messaggi per le quali il processo corrente ha accesso in lettura.

$ ipcs -q

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

Esempio IPCS 3. Elenca tutti i semafori

L'opzione ipcs -s viene utilizzata per elencare i semafori accessibili.

# ipcs -s

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

Esempio IPCS 4. Elenca tutta la memoria condivisa

l'opzione ipcs -m con il comando ipcs elenca le memorie condivise.

# 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

Esempio IPCS 5. Informazioni dettagliate su una struttura IPC

l'opzione ipcs -i fornisce informazioni dettagliate su una struttura 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

L'opzione -i con -q fornisce informazioni su una particolare coda di messaggi. L'opzione -i con -s fornisce i dettagli del semaforo. L'opzione -i con -m fornisce dettagli su una memoria condivisa.

Esempio IPCS 6. Elenca i limiti per la struttura IPC

l'opzione ipcs -l fornisce i limiti di sistema per ciascuna funzione 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

Il comando precedente fornisce i limiti per la memoria condivisa. -l può essere combinato con -q e -s per visualizzare rispettivamente i limiti per la coda dei messaggi e i semafori.

Un'unica opzione -l fornisce i limiti per tutte e tre le strutture IPC.

# ipcs -l

Esempio IPCS 7. Elenca i dettagli del creatore e del proprietario per la struttura IPC

l'opzione ipcs -c elenca l'id utente e l'id gruppo del creatore e l'id utente e l'id gruppo del proprietario. Questa opzione può essere combinata con -m, -s e -q per visualizzare i dettagli del creatore per una specifica struttura 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

Esempio IPCS 8. ID di processo che hanno effettuato l'accesso alla struttura IPC di recente

L'opzione ipcs -p mostra l'ID del creatore e l'ID del processo che ha avuto accesso alla funzione ipc corrispondente molto di recente.

# 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 può anche essere combinato con -m,-s o -q.

Esempio IPCS 9. Ora dell'ultimo accesso

L'opzione ipcs -t visualizza l'ultima ora di funzionamento in ciascuna struttura ipc. Questa opzione può anche essere combinata con -m, -s o -q per stampare per un tipo specifico di struttura ipc. Per la coda dei messaggi, l'opzione -t mostra l'ultima ora di invio e ricezione, per la memoria condivisa mostra l'ultimo allegato (porzione di memoria) e il timestamp scollegato e per il semaforo mostra l'ultima operazione e i dettagli dell'ora modificati.

# 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

Esempio IPCS 10. Stato dell'utilizzo corrente

ipcs con il comando -u visualizza l'utilizzo corrente per tutta la struttura IPC. Questa opzione può essere combinata con un'opzione specifica per visualizzare lo stato di una particolare struttura 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. Comando Tee Linux con esempi

  2. Comando testa di Linux con esempi

  3. Comando Nohup con esempi

  4. Comando JQ in Linux con esempi

  5. Il comando gratuito in Linux spiegato con esempi

Comando IP Linux con esempi

Comando Netcat (nc) con esempi

Comando Tr in Linux con esempi

15 Comando Linux ps con esempi

Comando CD Linux con esempi

Comando della cronologia con esempi