GNU/Linux >> Tutoriels Linux >  >> Linux

10 exemples de commandes IPCS (avec introduction IPC)

IPC signifie communication inter-processus.

Cette technique permet aux processus de communiquer entre eux.

Étant donné que chaque processus a son propre espace d'adressage et un espace utilisateur unique, comment les processus communiquent-ils entre eux ?

La réponse est Kernel, le cœur du système d'exploitation Linux qui a accès à toute la mémoire. Nous pouvons donc demander au noyau d'allouer l'espace qui peut être utilisé pour communiquer entre les processus.

Le processus peut également communiquer en ayant un fichier accessible aux deux processus. Les processus peuvent ouvrir et lire/écrire le fichier, ce qui nécessite beaucoup d'opérations d'E/S qui prennent du temps.

Différents types d'IPCS

Il existe différents IPC qui permettent à un processus de communiquer avec un autre processus, soit sur le même ordinateur, soit sur un ordinateur différent du même réseau.

  • Tuyaux – Permet aux processus de communiquer entre eux en échangeant des messages. Les canaux nommés permettent aux processus exécutés sur différents systèmes informatiques de communiquer sur le réseau.
  • Mémoire partagée – Les processus peuvent échanger des valeurs dans la mémoire partagée. Un processus créera une portion de mémoire à laquelle un autre processus peut accéder.
  • File d'attente des messages – Il s'agit d'une liste structurée et ordonnée de segments de mémoire où les processus stockent ou récupèrent des données.
  • Sémaphores – Fournit un mécanisme de synchronisation pour les processus qui accèdent à la même ressource. Aucune donnée n'est transmise avec un sémaphore ; il coordonne simplement l'accès aux ressources partagées.

10 Exemple de commande IPCS

ipcs est une commande UNIX/Linux, qui permet de lister les informations sur la communication inter-processus. La commande ipcs fournit un rapport sur System V IPCS (Message queue, Semaphore, and Shared memory).

Exemple 1 IPCS :répertorier toutes les installations IPC

La commande ipcs avec l'option -a répertorie toutes les fonctionnalités IPC qui ont un accès en lecture pour le processus en cours. Il fournit des détails sur la file d'attente des messages, le sémaphore et la mémoire partagée.

# 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

Toutes les installations IPC ont une clé et un identifiant uniques, qui sont utilisés pour identifier une installation IPC.

Exemple 2 d'IPCS :répertorier toutes les files d'attente de messages

ipcs avec l'option -q, répertorie uniquement les files d'attente de messages pour lesquelles le processus actuel a un accès en lecture.

$ ipcs -q

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

Exemple 3 d'IPCS. Lister tous les sémaphores

L'option ipcs -s permet de lister les sémaphores accessibles.

# ipcs -s

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

Exemple IPCS 4. Lister toute la mémoire partagée

L'option ipcs -m avec la commande ipcs répertorie les mémoires partagées.

# 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

Exemple 5 d'IPCS. Informations détaillées sur une installation IPC

L'option ipcs -i fournit des informations détaillées sur une installation 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'option -i avec -q fournit des informations sur une file d'attente de messages particulière. L'option -i avec -s fournit des détails sur le sémaphore. L'option -i avec -m fournit des détails sur une mémoire partagée.

Exemple 6 d'IPCS. Répertorie les limites de l'installation IPC

L'option ipcs -l donne les limites du système pour chaque installation 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

La commande ci-dessus donne les limites de la mémoire partagée. -l peut être combiné avec -q et -s pour afficher respectivement les limites de la file d'attente des messages et des sémaphores.

L'option unique -l donne les limites pour les trois installations IPC.

# ipcs -l

Exemple 7 d'IPCS. Liste des informations sur le créateur et le propriétaire d'une installation IPC

ipcs -c option répertorie l'ID utilisateur et l'ID de groupe du créateur et l'ID utilisateur et l'ID de groupe du propriétaire. Cette option peut être combinée avec -m, -s et -q pour afficher les détails du créateur pour une installation IPC spécifique.

# 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

Exemple 8 d'IPCS. ID de processus ayant récemment accédé à l'installation IPC

L'option ipcs -p affiche l'identifiant du créateur et l'identifiant du processus qui a accédé très récemment à la fonction ipc correspondante.

# 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 peut également être combiné avec -m,-s ou -q.

Exemple IPCS 9. Heure du dernier accès

L'option ipcs -t affiche l'heure de la dernière opération dans chaque installation ipc. Cette option peut également être combinée avec -m, -s ou -q pour imprimer pour un type spécifique d'installation ipc. Pour la file d'attente de messages, l'option -t affiche la dernière heure d'envoi et de réception, pour la mémoire partagée, elle affiche la dernière connexion (partie de mémoire) et l'horodatage détaché et pour le sémaphore, elle affiche la dernière opération et les détails de l'heure modifiée.

# 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

Exemple IPCS 10. État de l'utilisation actuelle

ipcs avec la commande -u affiche l'utilisation actuelle pour toutes les installations IPC. Cette option peut être combinée avec une option spécifique pour afficher l'état d'une installation IPC particulière.

# 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. Commande Linux Tee avec exemples

  2. Commande principale Linux avec exemples

  3. Commande Nohup avec exemples

  4. Commande JQ sous Linux avec exemples

  5. Exemples de commandes ipcs sous Linux

Commande Linux ip avec exemples

Commande Netcat (nc) avec exemples

Commande Tr sous Linux avec des exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande d'historique avec exemples