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
pipe() en Unix.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".