Diferencia entre revisiones de «Tubería (informática)»

Contenido eliminado Contenido añadido
sugerencia de fusión en Tubería (informática)
sugerencia de fusión desde Tubería nombrada
Línea 1:
{{fusionar endesde|Tubería (informática)nombrada}}
[[Image:Pipe and broken bar.svg|thumb|Tubería y barra partida.]]
En [[ingeniería de software]], una '''tubería nombrada''' ('''''named pipe''''' en [[idioma inglés|inglés]]), también llamada [[FIFO]] por su comportamiento, es una extensión del concepto tradicional de [[Pipes|tuberías]] utilizado en los [[Sistemas operativos]] [[POSIX]], y es uno de los métodos de [[Comunicación entre procesos]] (IPC). Este concepto también se encuentra en [[Windows]], si bien implementado con otra semántica.
 
En [[informática]], una '''tubería''' (''pipe'', cauce o '|') consiste en una cadena de [[Proceso (informática)|procesos]] conectados de forma tal que la salida de cada elemento de la cadena es la entrada del próximo. Permiten la comunicación y sincronización entre procesos.
Una [[Pipes|tubería (pipe)]] tradicional no tiene "nombre" porque existe anónimamente mientras se está ejecutando el [[Proceso (informática)|proceso]]. Una named Pipe es creada explícitamente por un comando del [[sistema operativo]] y persiste a posteriori de la finalización del [[Proceso (informática)|proceso]] y debe ser borrada una vez que no va a seguir siendo utilizada.
Es común el uso de [[buffer de datos]] entre elementos consecutivos.
 
La comunicación por medio de tuberías se basa en la interacción '''productor/consumidor''', los procesos productores (aquellos que envían datos) se comunican con los procesos consumidores (que reciben datos) siguiendo un orden [[FIFO]]. Una vez que el proceso consumidor recibe un dato, éste se elimina de la tubería.
En [[Unix]] la orden para crear tuberías nombradas es <code>mkfifo</code>.<ref>{{cita web
| url = https://www.gnu.org/software/coreutils/manual/html_node/mkfifo-invocation.html
| obra = gnu.org
| título = 12.4 mkfifo: Make FIFOs (named pipes)
| idioma = inglés
| fechaacceso = 16 de junio de 2014 }}</ref>
 
Las tuberías (''pipes'') están implementadas en forma muy eficiente en los [[sistemas operativos]] [[multitarea]], iniciando todos los procesos al mismo tiempo, y atendiendo automáticamente los requerimientos de lectura de datos para cada proceso cuando los datos son escritos por el proceso anterior. De esta manera el planificador de corto plazo va a dar el uso de la [[CPU]] a cada proceso a medida que pueda ejecutarse minimizando los tiempos muertos.
== Referencias ==
{{listaref}}
 
Para mejorar el rendimiento, la mayoría de los sistemas operativos implementan las tuberías usando [[buffer de datos|buffers]], lo que permite al proceso proveedor generar más datos que lo que el proceso consumidor puede atender inmediatamente.
[[Categoría:Utilidades Unix SUS2008]]
 
[[Categoría:Sistemas operativos]]
Podemos distinguir dos tipos de tuberías:
[[Categoría:Ingeniería de software]]
; Tubería sin nombre: Las tuberías sin nombre tienen asociado un fichero en [[memoria principal]], por lo tanto, son temporales y se eliminan cuando no están siendo usados ni por productores ni por consumidores. Permiten la comunicación entre el proceso que crea un cauce y procesos hijos tras la creación de la tubería.
;[[Tubería nombrada|Tubería con nombre]]: Su diferencia respecto a las tuberías sin nombre radica en que el cauce se crea en el [[sistema de archivos]], y por lo tanto no tienen carácter temporal. Se manejan mediante [[llamadas al sistema]] (''open'', ''close'', ''read'' y ''write'') como el resto de ficheros del sistema. Permiten la comunicación entre los procesos que usen dicha tubería, aunque no exista una conexión jerárquica entre ellos.
 
 
==Véase también==
* [[Arquitectura en pipeline (informática)]]
* [[Pleca]]
 
[[Categoría:Programación]]
[[Categoría:SistemasConceptos de sistemas operativos]]