GNU/Linux >> Tutoriales Linux >  >> Linux

10 ejemplos de comandos IPCS (con introducción IPC)

IPC significa Comunicación entre procesos.

Esta técnica permite que los procesos se comuniquen entre sí.

Dado que cada proceso tiene su propio espacio de direcciones y un espacio de usuario único, ¿cómo se comunican los procesos entre sí?

La respuesta es Kernel, el corazón del sistema operativo Linux que tiene acceso a toda la memoria. Entonces podemos solicitar al kernel que asigne el espacio que se puede usar para comunicarse entre procesos.

El proceso también se puede comunicar al tener un archivo accesible para ambos procesos. Los procesos pueden abrir y leer/escribir el archivo, lo que requiere muchas operaciones de E/S que consumen tiempo.

Diferentes tipos de IPCS

Hay varios IPC que permiten que un proceso se comunique con otros procesos, ya sea en la misma computadora o en una computadora diferente en la misma red.

  • Tubos – Proporciona una forma para que los procesos se comuniquen entre sí mediante el intercambio de mensajes. Las canalizaciones con nombre proporcionan una forma para que los procesos que se ejecutan en diferentes sistemas informáticos se comuniquen a través de la red.
  • Memoria compartida – Los procesos pueden intercambiar valores en la memoria compartida. Un proceso creará una parte de la memoria a la que puede acceder otro proceso.
  • Cola de mensajes – Es una lista estructurada y ordenada de segmentos de memoria donde los procesos almacenan o recuperan datos.
  • Semáforos – Proporciona un mecanismo de sincronización para los procesos que acceden al mismo recurso. No se pasan datos con un semáforo; simplemente coordina el acceso a los recursos compartidos.

10 Ejemplo de comando IPCS

ipcs es un comando de UNIX/Linux, que se utiliza para enumerar la información sobre la comunicación entre procesos. El comando ipcs proporciona un informe sobre System V IPCS (cola de mensajes, semáforo y memoria compartida).

Ejemplo 1 de IPCS:Enumere todas las instalaciones de IPC

El comando ipcs con la opción -a enumera todas las instalaciones de IPC que tienen acceso de lectura para el proceso actual. Proporciona detalles sobre la cola de mensajes, el semáforo y la memoria compartida.

# 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

Todas las instalaciones de IPC tienen una clave e identificador únicos, que se utilizan para identificar una instalación de IPC.

Ejemplo 2 de IPCS:enumerar toda la cola de mensajes

ipcs con la opción -q, enumera solo las colas de mensajes para las que el proceso actual tiene acceso de lectura.

$ ipcs -q

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

Ejemplo 3 de IPCS. Listar todos los semáforos

La opción ipcs -s se usa para listar los semáforos accesibles.

# ipcs -s

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

Ejemplo 4 de IPCS. Listar toda la memoria compartida

La opción ipcs -m con el comando ipcs enumera las memorias compartidas.

# 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

Ejemplo 5 de IPCS. Información detallada sobre una instalación de PCI

La opción ipcs -i proporciona información detallada sobre una instalación de 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

La opción -i con -q proporciona información sobre una cola de mensajes en particular. La opción -i con -s proporciona detalles del semáforo. La opción -i con -m proporciona detalles sobre una memoria compartida.

Ejemplo 6 de IPCS. Lista los límites para la instalación de IPC

La opción ipcs -l proporciona los límites del sistema para cada instalación de 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

El comando anterior da los límites para la memoria compartida. -l se puede combinar con -q y -s para ver los límites de la cola de mensajes y los semáforos respectivamente.

La opción única -l proporciona los límites para las tres instalaciones de IPC.

# ipcs -l

Ejemplo 7 de IPCS. Lista de detalles del creador y del propietario para la instalación de IPC

La opción ipcs -c enumera el ID de usuario y el ID de grupo del creador y el ID de usuario y el ID de grupo del propietario. Esta opción se puede combinar con -m, -s y -q para ver los detalles del creador para una instalación de IPC específica.

# 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

Ejemplo 8 de IPCS. Identificadores de proceso que accedieron a la instalación de IPC recientemente

La opción ipcs -p muestra la identificación del creador y la identificación del proceso que accedió a la función ipc correspondiente muy recientemente.

# 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 también se puede combinar con -m, -s o -q.

Ejemplo 9 de IPCS. Hora del último acceso

La opción ipcs -t muestra la hora de la última operación en cada instalación de ipc. Esta opción también se puede combinar con -m, -s o -q para imprimir para un tipo específico de instalación de ipc. Para la cola de mensajes, la opción -t muestra la última hora de envío y recepción, para la memoria compartida muestra la última conexión (parte de la memoria) y la marca de tiempo separada y para el semáforo muestra la última operación y los detalles de la hora cambiada.

# 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 Ejemplo 10. Estado de uso actual

ipcs con el comando -u muestra el uso actual de todas las instalaciones de IPC. Esta opción se puede combinar con una opción específica para mostrar el estado de una instalación de IPC en particular.

# 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 Linux Tee con ejemplos

  2. Comando de cabeza de Linux con ejemplos

  3. Comando JQ en Linux con ejemplos

  4. Comando libre en Linux explicado con ejemplos

  5. Ejemplos de comandos ipcs en Linux

Comando ip de Linux con ejemplos

Comando Netcat (nc) con ejemplos

Comando Tr en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de historial con ejemplos