Índice

Tuberías de comunicación

Una tubería (pipe en inglés) permite la comunicación entre dos procesos. La tubería se representa con una barra vertical (pulsar [Alt Gr] 1 en un teclado QWERTY) situada entre dos comandos Unix. El resultado del comando de la izquierda va a parar a la tubería, mientras que el comando de la derecha leerá los datos que hay en ella para tratarlos.

Las figuras 12 y 13 representan el mecanismo interno asociado a la tubería de comunicación.

images/02ri12.png

Figura 12: Mecanismo interno de la tubería de comunicación - Primera etapa

images/02ri13.png

Figura 13: Mecanismo interno de la tubería de comunicación - Segunda etapa

Sean cuales sean los comandos presentes a cada lado de la tubería, el shell de trabajo detecta el carácter | en la línea de comandos y creará un shell hijo (1) que, a su vez, hace lo mismo (2). El primer shell hijo (PID=205) disocia su salida estándar del terminal y la conecta a la entrada de la tubería (3). El segundo shell hijo (PID=206) disocia su entrada estándar del terminal y la conecta a la salida de la tubería (4).

Cada shell hijo se remplaza con su comando (5a y 5b). Cada comando empieza entonces a ejecutarse. Cuando el comando who escribe en su salida estándar, los mensajes van dentro de la tubería (6a). Paralelamente, el comando mail lee su entrada estándar (6b), lo que provoca la extracción de los datos contenidos en la tubería.

Algunos aspectos importantes ...