Tuberias

Páginas: 8 (1787 palabras) Publicado: 23 de mayo de 2012
Tuberías
En informática, una tubería consiste en una cadena de procesos conectados de forma tal que la salida de cada elemento de la cadena es la entrada del próximo. Es común el uso de buffer de datos entre elementos consecutivos.
Las tuberías están implementadas en forma muy eficiente en los sistemas operativos multitarea, iniciando todos los procesos al mismo tiempo, y atendiendoautomá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.
Para mejorar el rendimiento, la mayoría de los sistemas operativos implementan las tuberías usando buffers, lo que permite alproceso proveedor generar más datos que lo que el proceso consumidor puede atender inmediatamente.
Las tuberías sin nombre se crean con la llamada pipe y sólo el proceso que hace la llamada y sus descendientes pueden utilizarla; tiene la siguiente declaración:
#include
int pipe(int fildes [2]);
Si llamada funciona correctamente, devolverá el valor 0 y creará una tubería sin nombre; en casocontrario, devolverá -1 y en error estará el código del error producido. La tubería creada podrá ser manejada a través del array fildes. Los dos elementos de fildes se comportan como dos descriptores de fichero y los vamos a usar para escribir en la tubería y leer de ella.
Al escribir en fildes[1] estamos escribiendo datos en la tubería y al leer fildes[0] extraeremos datos de ella. Naturalmente,fildes[1] se comporta como un fichero de sólo escritura y fildes[0] como un fichero de sólo lectura.
Como el núcleo trata la tubería igual que a un fichero del sistema, al crearla debe asignarle un nodo-i. También le asigna un par de descriptores de fichero -fildes[0] y fildes[1]- y reserva las correspondientes entradas en la tabla de ficheros del sistema y en la tabla de descriptores del proceso.Todo esto facilita el manejo de la tubería, ya que al recibir el mismo tratamiento que un fichero, podremos leer y escribir en ella con las llamadas read y write que empleamos para los ficheros ordinarios, los directorios y los ficheros especiales.
Los descriptores de fichero se heredan de padres a hijos tras la llamada a fork o a exec. Así, para que se comuniquen padre e hijo mediante unatubería, la abriremos en el padre y tanto padre como hijo podrán compartirla.
La sincronización entre los accesos de escritura y lectura la lleva a cabo el núcleo, de tal manera que las llamadas a read para sacar datos de la tubería no devolverán el control hasta que no haya datos escritos por otro proceso mediante la correspondiente llamada a write. También es el núcleo el encargado de gestionar latubería para dotarla de una disciplina de acceso en hilera y, así, el proceso sacará los datos en el mismo orden en que los escribía el proceso emisor.
Los datos escritos en la tubería se gestionan en la memoria intermedia sin que lleguen al disco, por lo que al producirse la transferencia a través de memoria, las tuberías constituyen un mecanismo de comunicación mucho más rápido que el uso deficheros ordinarios. El tamaño de una tubería, es decir, el bloque de datos más grande que podemos escribir en ella, depende del sistema, pero se garantiza que será inferior a 4.096 bytes.
Cuando la tubería está llena, las llamadas a write quedan bloqueadas hasta que no se saquen suficientes datos de la tubería como para escribir el bloque deseado.

Esquema de envío de mensajes mediante tuberías sinnombre:



Tuberías con nombre
Por medio de las tuberías sin nombre podemos comunicar procesos relacionados entre sí ya que el proceso que crea la tubería y sus descendientes tienen acceso a la misma. Para los procesos que no guardan ninguna relación de parentesco, no sirven los canales abiertos mediante tuberías sin nombre. Para comunicar este tipo de procesos tenemos que recurrir a las...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • tuberia
  • tuberias
  • tuberias
  • tuberias
  • tuberias
  • Tuberias
  • Tuberias
  • Tuberias

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS