PIPES (Tuberias)

Un pipe (tubería) es un mecanismo de comunicación entre procesos en un sistema operativo que permite la transferencia de datos de un proceso a otro. En términos generales, un pipe es un canal unidireccional a través del cual se pueden enviar datos desde un proceso emisor a un proceso receptor.

Tipos de Pipes principales

  1. Pipe anónimo (Anonymous Pipe): También conocido como pipe sin nombre, se utiliza para la comunicación entre procesos relacionados, como un proceso padre y un proceso hijo. Se crea utilizando la llamada al sistema específica del sistema operativo correspondiente, como pipe() en Unix.
  2. Pipe con nombre (Named Pipe o FIFO): A diferencia del pipe anónimo, un named pipe o FIFO es un tipo de archivo especial en el sistema de archivos que actúa como un pipe. Puede ser utilizado por procesos independientes que se ejecutan en diferentes momentos para comunicarse entre sí. Se crea utilizando el comando mkfifo en Unix.

Creacion de un pipe

**os.pipe()**

Nota: “unnamed” o anónimo sirve para comunicar procesos relacionados, mientras que named puede comunicarse con procesos no relacionados.

IPC

Inter-process communication (comunicación de dos procesos en si, si lo llevo a PIPE es la salida de uno con otro).

Son los mecanismos y técnicas utilizados por los procesos en un sistema operativo para comunicarse y compartir información entre sí. El IPC permite que los procesos se comuniquen y coordinen sus actividades, incluso si se ejecutan de forma independiente.

Notas de ejercitacion en clase

# Defino extremos del pipe
**r, w = os.pipe()**

Si uso un fork voy a tener un r, w en el hijo tambien.

**ls proc*/*61487/fd # -l** para ver donde esta el fd y romper el bucle de un hijo que no puede leer el archivo w
**echo
“string” ls
proc*/*61487/fd/4**
# para sobrescribir el w y que lea el hijo

Pipe puede conectar procesos relacionados

FIFO

FIFO (First-In-First-Out) es un tipo de tubería (pipe) especial utilizada en sistemas operativos y programación para la comunicación entre procesos. Especificamente nos permite conectar procesos que no están relacionados. Una FIFO actúa como un buffer o almacén temporal en el cual los datos se transmiten en el orden en el que se ingresan. Los datos que se escriben primero en la FIFO también se leen primero, siguiendo el principio de "primero en entrar, primero en salir".