Saltar al contenido principal

Capítulo 2.10 - Comunicación Inter-Proceso

Objetivos de Aprendizaje​

Al final de este capítulo, usted será capaz de:

  • Comprender los mecanismos de comunicación inter-proceso (IPC)
  • Utilizar señales para comunicarse
  • Comprender los pipes y redirecciones
  • Utilizar sockets para la comunicación en red

¿Qué es IPC?​

IPC (Inter-Process Communication) se refiere a los mecanismos que permiten a los procesos comunicarse y sincronizar sus acciones.


Señales​

Las señales son notificaciones asíncronas enviadas a un proceso.

Señales comunes:

  • SIGTERM (15): Terminación elegante
  • SIGKILL (9): Terminación forzada (no puede ser ignorada)
  • SIGSTOP (19): Suspender
  • SIGCONT (18): Reanudar
  • SIGHUP (1): Recargar configuración
  • SIGINT (2): Interrupción (Ctrl+C)
# Enviar una señal
kill -SIGTERM PID
kill -15 PID
kill -9 PID # Forzar

# Ver señales disponibles
kill -l

# Ignorar una señal (en un script)
trap '' SIGINT

Pipes​

Los pipes permiten redirigir la salida de un proceso a la entrada de otro.

Pipes Anónimos​

# Pipe simple
commande1 | commande2

# Ejemplo
ps aux | grep apache
cat fichier.txt | sort | uniq

Named Pipes (FIFO)​

# Crear un named pipe
mkfifo mon_pipe

# Proceso 1 escribe
echo "Hello" > mon_pipe

# Proceso 2 lee
cat < mon_pipe

Redirecciones​

Las redirecciones permiten controlar la entrada/salida:

# Redirección de salida
commande > fichier # Sobrescribir
commande >> fichier # Añadir

# Redirección de error
commande 2> erreur.log
commande 2>&1 # Error a salida

# Redirección de entrada
commande < fichier

# Here document
commande << EOF
ligne 1
ligne 2
EOF

Sockets​

Los sockets permiten la comunicación en red entre procesos.

Sockets Unix (Local)​

# Crear un socket Unix
nc -lU /tmp/mon_socket

# Conectarse
nc -U /tmp/mon_socket

Sockets TCP/IP (Red)​

# Servidor
nc -l 8080

# Cliente
nc localhost 8080

Memoria Compartida​

La memoria compartida permite que varios procesos accedan a la misma zona de memoria.

Ventajas:

  • Comunicación rápida
  • Sin copia de datos
  • Eficiente para grandes cantidades

Herramientas:

  • shmget, shmat (System V)
  • /dev/shm (tmpfs)

Message Queues​

Las message queues permiten el envío de mensajes estructurados entre procesos.

Características:

  • Mensajes tipados
  • Cola de espera
  • Persistencia opcional

Comandos:

# Ver las message queues
ipcs -q

# Eliminar
ipcrm -q ID

Semáforos​

Los semáforos permiten la sincronización entre procesos.

Uso:

  • Control de acceso a un recurso
  • Evitar condiciones de carrera
  • Coordinación entre procesos

Ejemplos Prácticos​

Pipeline Complejo​

# Encontrar los 10 procesos que más CPU usan
ps aux --sort=-%cpu | head -11 | tail -10

# Contar las líneas en varios archivos
cat *.txt | wc -l

# Filtrar y formatear
grep ERROR /var/log/app.log | awk '{print $1, $2}' | sort

Comunicación con Señales​

# Script que maneja señales
#!/bin/bash
trap 'echo "Señal recibida, limpiando..."; exit' SIGTERM SIGINT

while true; do
echo "Trabajo en curso..."
sleep 1
done

Resumen​

En este capítulo, usted ha aprendido:

IPC: Mecanismos de comunicación inter-proceso
Señales: Notificaciones asíncronas (SIGTERM, SIGKILL, etc.)
Pipes: Redirección de salida/entrada (|, >, <)
Sockets: Comunicación en red (Unix, TCP/IP)
Memoria Compartida: Acceso a memoria común
Message Queues: Mensajes estructurados
Semáforos: Sincronización


Próximos Pasos​

Módulo 3: Sistema de Archivos
Módulo 4: Gestión de Procesos


Capítulo creado el: Diciembre 2024