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

Contenido eliminado Contenido añadido
subcategoría para no mezclar los conceptos de sistemas operativos con la lista (categoría) de sistemas operativos
Melkart4k (discusión · contribs.)
Correcciones de estilo
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''' (''pipeline'', 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. Es común el uso de [[búfer de datos]] entre elementos consecutivos.
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.
 
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>
 
== ReferenciasImplementación ==
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.
{{listaref}}
 
Para mejorar el rendimiento, la mayoría de los sistemas operativos implementan las tuberías usando búferes, lo que permite al proceso proveedor generar más datos que lo que el proceso consumidor puede atender inmediatamente.
[[Categoría:Utilidades Unix SUS2008]]
 
Se pueden distinguir dos tipos de tuberías
 
'''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:Conceptos de sistemas operativos]]
[[Categoría:Ingeniería de software]]