Está en la página 1de 3

First in, first out

First in, first out


FIFO, acrnimo ingls de First In, First Out (primero en entrar, primero en salir), es un concepto utilizado en estructuras de datos, contabilidad de costes y teora de colas. Tiene un sinnimo, FCFS, acrnimo ingls de First Come First Served (primero en llegar, primero en ser servido). Guarda analoga con las personas que esperan en una cola y van siendo atendidas en el orden en que llegaron, es decir, que la primera persona que entra es la primera persona que sale.

Informtica
FIFO se utiliza en estructuras de datos para implementar colas. La implementacin puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignacin dinmica de memoria. Si se implementa mediante vectores el nmero mximo de elementos que puede almacenar est limitado al que se haya establecido en el cdigo del programa antes de la compilacin (cola esttica) o durante su ejecucin (cola pseudoesttica dinmica). Sea cual sea la opcin Esquema de funcionamiento de una cola FIFO. elegida, el nmero de elementos que podr almacenar la cola quedar determinado durante toda la ejecucin del programa. As, el sistema debe reservar el tamao de memoria necesario para acoger todos los datos, sea cual sea el nmero de elementos usados. En algunas aplicaciones, esto supone un problema ya que puede desconocerse el nmero de elementos a contener en la cola. La sencilla solucin de reservar ms memoria de la que se supone que se necesitar, puede conducir a un despilfarro de la memoria (la cola puede est llena, aprovechando toda la memoria reservada; o bien, nunca terminar de llenarse, ocupando recursos innecesarios en memoria). Sin embargo, si se usa asignacin dinmica de memoria, el nmero mximo no est declarado en tiempo de compilacin sino en tiempo de ejecucin, es decir, se reserva memoria a medida que se necesite expandir el tamao de la cola (adaptndose al tamao necesario en cada momento en funcin de los elementos que hay en la cola), haciendo un mejor uso de la memoria disponible. Uno de los usos de las colas es la exploracin "en anchura" de un rbol binario de bsqueda. Otro uso tpico de las colas, es la gestin de descargas de una aplicacin P2P.

Contabilidad
En contabilidad FIFO es un mtodo para registrar el valor de un inventario. Su uso es apropiado cuando se cuenta con varios lotes de un mismo producto. Este mtodo presume que el primer producto ingresado en el almacn ser el primero en salir por efectos del inventario.

Electrnica
Los FIFOs se usan comnmente en circuitos de electrnica para almacenaje y hacer control de flujo. Hablando de hardware un FIFO consiste bsicamente en un conjunto de punteros de lectura/escritura, almacenamiento y lgica de control. El almacenamiento puede ser SRAM, flip-flops, latches o cualquier otra forma adecuada de almacenamiento. Para FIFOs de un tamao importante se usa usualmente una SRAM de doble puerto, donde uno de los puertos se usa para la escritura y el otro para la lectura. Un FIFO sincrnico maneja el mismo reloj (clock) tanto para las lecturas como para las escrituras. Un FIFO asicrnico es aquel que utiliza diferentes relojes (clocks) uno para lectura y otro para la escritura. Cuando se habla de FIFOs asincrnicos se introduce el tema de la meta-estabilidad. Una implementacin comn de un FIFO asincrnico usa un Cdigo Gray (o cualquier cdigo de unidad de distancia) para los punteros de lectura y escritura de modo de

First in, first out asegurarse una generacin de banderas (flags) segura/estable. Otra nota adicional respecto de la generacin de banderas es que uno debe necesariamente usar punteros aritmticos para generar banderas para implementaciones asincrnicas de FIFO. Por otro lado, uno puede usar tanto un acercamiento "leaky bucket" o punteros aritmticos para generar banderas en una implementacin FIFO sincrnica. Como ejemplo de banderas de estado FIFO, se pueden enumerar: full (lleno), empty (vaco), almost full (casi lleno) o almost empty (casi vaco).

FIFO full/empty (lleno/vaco)


En hardware, un FIFO se usa para propsitos de sincronizacin. Comportndose como una cola circular y, por lo tanto, contiene dos punteros: 1. Puntero de Lectura / Registro de Direccin de Lectura 2. Puntero de Escritura / Registro de Direccin de Escritura Las direcciones de lectura y escritura estn ambas inicialmente en la primera ubicacin de la memoria y la cola FIFO est Vaca. FIFO Vaca Cuando el registro de direccin de lectura alcanza al registro de direccin de escritura, la cola FIFO dispara la seal o bandera Vaco. FIFO Llena Cuando el registro de direccin de escritura alcanza al registro de direccin de lectura, la cola FIFO dispara la seal o bandera Lleno.sisas parsero

Vase tambin
LIFO FIFO y LIFO (contabilidad)

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


First in, first out Fuente: http://es.wikipedia.org/w/index.php?oldid=44655218 Contribuyentes: AchedDamiman, Adrian gonzalez, Banfield, Barcex, Digigalos, Dortega, Emijrp, Farisori, Flix Adame, Gauldock, GermanX, Gngora, Jesuja, Jkbw, Juandiegocano, KnightRider, Kved, L30nc1t0, LordT, Manuel Trujillo Berges, Mary dream, Matdrodes, Mirkovich, Mister, Mortadelo2005, Murdockcrc, Mushii, NaSz, Odvn, Rsg, Rumpelstiltskin, Sabbut, Sapientisimo, Sir Magician, Template namespace initialisation script, Vitorres, 45 ediciones annimas

Fuentes de imagen, Licencias y contribuyentes


Archivo:Fifo.PNG Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Fifo.PNG Licencia: Public Domain Contribuyentes: Gauldock

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

También podría gustarte