Pipeline
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 un administrador de tareas dándoles
diferente prioridad y capacidad de procesamiento, alternando entre este sistema
(“pipeline”) y los demás.
Aplicaciones de pipeline en informática
- Pipeline 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.
- 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 gestionando por el planificador junto con todos
los demás procesos que se ejecutan en la máquina.
Un aspecto importante además de este sistema,
además de las implementaciones, es el concepto de almacenamiento en búfer: por
ejemplo, un gran 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 búffer de la cola se llena, el programa
de envió 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.
Referencias
http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDF
No hay comentarios:
Publicar un comentario