Una tubería es una técnica utilizada para la comunicación entre procesos . Una tubería es un mecanismo por el cual la salida de un proceso se dirige a la entrada de otro proceso. Por lo tanto, proporciona un flujo de datos unidireccional entre dos procesos relacionados.
Aunque se puede acceder a la canalización como un archivo ordinario , el sistema en realidad lo administra como una cola FIFO . Un archivo de canalización se crea mediante la llamada al sistema de canalización. Una tubería tiene un extremo de entrada y un extremo de salida. Uno puede escribir en una tubería desde el extremo de entrada y leer desde el extremo de salida. Un descriptor de tubería tiene una array que almacena dos punteros, un puntero es para su extremo de entrada y el otro puntero es para su extremo de salida.
Supongamos que dos procesos , el Proceso A y el Proceso B, necesitan comunicarse. En tal caso, es importante que el proceso que escribe, cierre su extremo de lectura de la tubería y el proceso que lee, cierre su extremo de escritura de una tubería. Esencialmente, para una comunicación del Proceso A al Proceso B, debería ocurrir lo siguiente.
- El proceso A debe mantener su extremo de escritura abierto y cerrar el extremo de lectura de la canalización.
- El proceso B debe mantener abierto su extremo de lectura y cerrar su extremo de escritura. Cuando se crea una tubería, se le asigna un tamaño fijo en bytes.
Cuando un proceso intenta escribir en la tubería, la solicitud de escritura se ejecuta inmediatamente si la tubería no está llena.
Sin embargo, si la tubería está llena, el proceso se bloquea hasta que cambia el estado de la tubería. De manera similar, un proceso de lectura se bloquea si intenta leer más bytes que están actualmente en la tubería; de lo contrario, se ejecuta el proceso de lectura. Solo un proceso puede acceder a una canalización a la vez.
Limitaciones :
- Como canal de comunicación, una tubería opera en una sola dirección.
- Las tuberías no pueden admitir la transmisión, es decir, enviar mensajes a múltiples procesos al mismo tiempo.
- El extremo de lectura de una tubería se lee de cualquier manera. No importa qué proceso esté conectado al extremo de escritura de la canalización. Por lo tanto, este es un modo de comunicación muy inseguro.
- Se requiere algo de plomería (cierre de extremos) para crear una tubería correctamente dirigida.
Publicación traducida automáticamente
Artículo escrito por harleenk_99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA