Arquitectura pipeline

Post on 08-Jun-2015

3.963 views 0 download

Transcript of Arquitectura pipeline

Arquitectura Pipeline

Daniel Alonso MoranJosé Alejandro Mendoza Morales

INTRODUCCION

Es un término perteneciente a la ingeniería de software, y consiste en una cadena de

elementos de procesamiento ordenados de tal manera que la salida de cada elemento es

la entrada del siguiente.

Suena complicado pero no lo es; el nombre quiere decir en español "tuberías", y el

sistema es básicamente como el agua que circula por cañerías o tubos. En este caso el

agua vendría a ser la información o los procesos.

La arquitectura en pipeline consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la

anterior, con almacenamiento temporal de datos o buffering entre los procesos.

El pipeline es común verlo en sistemas operativos multitarea ya que ejecutan una

serie de procesos de manera simultánea, los cuales son ejecutados luego de manera

secuencial mediante una administrador de tareas dándoles diferente prioridad y

capacidad de procesamiento, alternando entre este sistema ("pipeline“) y los demás.

Aplicaciones de pipelines en informática

1. Pipelines gráficos, se encuentran en la mayoría de las tarjetas gráficas, el cual consiste en múltiples unidades

aritméticas o CPU completas, el cual implementan variados escenarios de operaciones típicas , por ejemplo,

cálculos de luz y colores, la proyección de perspectiva, etc.

2. Pipelines de software o tuberías, consiste en múltiples procesos ordenados de tal forma que el flujo de salida de un proceso alimenta la entrada del siguiente proceso. Por ejemplo, los pipelines de Unix(permite conectar procesos,

permitiendo que la salida estándar de un proceso de alimentación sea la entrada estándar de otro proceso).

Implementación tipo Unix

En la mayoría de los sistemas tipo Unix, los procesos de este sistema se inician al

mismo tiempo, con sus corrientes conectados bien planeados, y gestionado

por el planificador junto con todos los demás procesos que se ejecutan en la

máquina. 

Un aspecto importante de este sistema , además de las implementaciones, es el

concepto de almacenamiento en búfer : por ejemplo, un programa que envía datos

puede producir 5.000 bytes por segundo , y un programa de recepción sólo puede ser capaz de aceptar 100 bytes por segundo,

pero los datos no se pierden.

Cuando el programa de recepción está listo para leer los datos, el sistema operativo

envía sus datos de la cola, a continuación, elimina los datos de la cola. 

Si el buffer de la cola se llena, el programa de envío se suspende (se bloquea) hasta

que el programa de recepción ha tenido la oportunidad de leer algunos datos y hacer espacio en el búfer. En Linux, el tamaño del

búfer es de 65536 bytes.

Gracias por su atención