stringtranslate.com

Tubería anónima

En informática , una tubería anónima es un canal de comunicación FIFO simplex que puede usarse para la comunicación entre procesos unidireccional (IPC). Una implementación a menudo se integra en el subsistema IO de archivos del sistema operativo . Normalmente, un programa principal abre tuberías anónimas y crea un nuevo proceso que hereda los otros extremos de las tuberías, o crea varios procesos nuevos y los organiza en una tubería .

La comunicación full-duplex (bidireccional) normalmente requiere dos canales anónimos.

Las canalizaciones son compatibles con los sistemas operativos más populares, desde Unix y DOS en adelante, y se crean utilizando el |carácter " " en muchos shells.

Unix

Los pipelines son una parte importante de muchas aplicaciones Unix tradicionales y su soporte está bien integrado en la mayoría de los sistemas operativos tipo Unix . Las tuberías se crean mediante la pipe llamada al sistema , que crea una nueva tubería y devuelve un par de descriptores de archivos que hacen referencia a los extremos de lectura y escritura de la tubería. Muchos programas tradicionales de Unix están diseñados como filtros para trabajar con tuberías.

Microsoft Windows

Como muchas otras instalaciones de IO e IPC de dispositivos en la API de Windows , las canalizaciones anónimas se crean y configuran con funciones API que son específicas de la instalación de IO. En este caso, CreatePipese utiliza para crear una tubería anónima con identificadores separados para los extremos de lectura y escritura de la tubería. Las operaciones de lectura y escritura de IO en la tubería se realizan con las funciones API de instalación de IO estándar ReadFiley WriteFile.

En Microsoft Windows , las lecturas y escrituras en canalizaciones anónimas siempre se bloquean. [1] En otras palabras, una lectura de una tubería vacía hará que el hilo de llamada espere hasta que al menos un byte esté disponible o se reciba un final de archivo como resultado del cierre del identificador de escritura de la tubería. Del mismo modo, una escritura en una tubería llena hará que el subproceso que realiza la llamada espere hasta que haya espacio disponible para almacenar los datos que se están escribiendo. Las lecturas pueden regresar con menos bytes que los solicitados (también llamado lectura corta ).

Los nuevos procesos pueden heredar identificadores de canalizaciones anónimas en el proceso de creación.

Ver también

Referencias

Notas

  1. ^ "Operaciones de tuberías anónimas". MSDN . Consultado el 27 de febrero de 2010 . Las canalizaciones anónimas no admiten operaciones de lectura y escritura asincrónicas (superpuestas).