fifo

10
FIFO FIFO FIFO, acrónimo inglés de First In, First Out (primero en entrar, primero en salir), es un concepto utilizado en estructuras de datos,contabilidad de costes y teoría de colas. Tiene un sinónimo, FCFS, acrónimo inglés de First Come First Served (primero en llegar, primero en ser servido). Guarda analogía 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. FIFO se utiliza en estructuras de datos para implementar colas. La implementación puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignación dinámica de memoria. Si se implementa mediante vectores el número máximo de elementos que puede almacenar está limitado al que se haya establecido en el código del programa antes de la compilación (colaestática) o durante su ejecución (cola pseudoestática ó dinámica). Sea cual sea la opción elegida, el número de elementos que podrá almacenar la cola quedará determinado durante toda la ejecución del programa. Así, el sistema debe reservar el tamaño de memoria necesario para acoger todos los datos, sea cual sea el número de elementos usados. En algunas aplicaciones, esto supone un problema ya que puede desconocerse el número de elementos a contener en la cola. La sencilla solución de reservar más 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 asignación dinámica de memoria, el número máximo no está declarado en tiempo de compilación sino en tiempo de ejecución, es decir, se reserva memoria a medida que se necesite expandir el tamaño de la cola (adaptándose al tamaño necesario en cada momento HUGO IVAN LOPEZ NAVARRO Página 1

Upload: hugo-navarro

Post on 30-Jun-2015

1.113 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: FIFO

FIFO

FIFO

FIFO, acrónimo inglés de First In, First Out (primero en entrar, primero

en salir), es un concepto utilizado en estructuras de

datos,contabilidad de costes y teoría de colas. Tiene un

sinónimo, FCFS, acrónimo inglés de First Come First Served (primero

en llegar, primero en ser servido).

Guarda analogía 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.

FIFO se utiliza en estructuras de datos para implementar colas. La

implementación puede efectuarse con ayuda de arrays o vectores, o

bien mediante el uso de punteros y asignación dinámica de memoria.

Si se implementa mediante vectores el número máximo de elementos

que puede almacenar está limitado al que se haya establecido en el

código del programa antes de la compilación (colaestática) o durante

su ejecución (cola pseudoestática ó dinámica). Sea cual sea la opción

elegida, el número de elementos que podrá almacenar la cola

quedará determinado durante toda la ejecución del programa. Así, el

sistema debe reservar el tamaño de memoria necesario para acoger

todos los datos, sea cual sea el número de elementos usados.

En algunas aplicaciones, esto supone un problema ya que puede

desconocerse el número de elementos a contener en la cola. La

sencilla solución de reservar más 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 asignación dinámica de memoria, el

número máximo no está declarado en tiempo de compilación sino en

tiempo de ejecución, es decir, se reserva memoria a medida que se

necesite expandir el tamaño de la cola (adaptándose al tamaño

necesario en cada momento en función 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 exploración "en anchura" de

un árbol binario de búsqueda. Otro uso típico de las colas, es la

gestión de descargas de una aplicación P2P.

FIFO full/empty (lleno/vacío)

HUGO IVAN LOPEZ NAVARRO Página 1

Page 2: FIFO

FIFO

En hardware, un FIFO se usa para propósitos de sincronización.

Comportándose como una cola circular y, por lo tanto, contiene dos

punteros:

1. Puntero de Lectura / Registro de Dirección de Lectura

2. Puntero de Escritura / Registro de Dirección de Escritura

Las direcciones de lectura y escritura están ambas inicialmente en la

primera ubicación de la memoria y la cola FIFO está Vacía.

FIFO Vacía

Cuando el registro de dirección de lectura alcanza al registro de

dirección de escritura, la cola FIFO dispara la señal o

bandera Vacío.

FIFO Llena

Cuando el registro de dirección de escritura alcanza al registro

de dirección de lectura, la cola FIFO dispara la señal o

bandera Lleno.

LIFO

El término LIFO es el acrónimo inglés de Last In First Out (último en entrar, primero en salir). Puede tener distintos significados según el contexto:

El término LIFO se utiliza en estructuras de datos y teoría de colas.

Guarda analogía con una pila de platos, en la que los platos van

poniéndose uno sobre el otro, y si se quiere sacar uno, se

saca primero el último que se puso.

LIFO es el algoritmo utilizado para implementar pilas.

EJEMPLOS:

PILA: Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidad y ordenación implícita de la propia estructura.

SISTEMA DECIMAL.

HUGO IVAN LOPEZ NAVARRO Página 2

Page 3: FIFO

FIFO

El sistema decimal es un sistema de graduación posicional en el que

las cantidades se representan utilizando como base el número diez,

por lo que se compone de

diez cifras diferentes: cero (0); uno (1); dos (2); tres (3); cuatro (4); ci

nco (5); seis (6); siete (7); ocho (8) y nueve(9). Este conjunto de

símbolos se denomina números árabes, y es de origen hindú.

Es el sistema de posición usado habitualmente en todo el mundo

(excepto ciertas culturas) y en todas las áreas que requieren de un

sistema de numeración. Sin embargo hay ciertas técnicas, como por

ejemplo en la informática, donde se utilizan sistemas de numeración

adaptados al método de trabajo como el binario o el hexadecimal.

También pueden existir en algunos idiomas vestigios del uso de otros

sistemas de numeración, como el quinario, el duodecimal y

el vigesimal. Por ejemplo, cuando se cuentan artículos por docenas, o

cuando se emplean palabras especiales para designar ciertos

números (en francés, por ejemplo, el número 80 se expresa «quatre-

vingt», "cuatro veintenas" en español).

Según los antropólogos, el origen del sistema decimal está en los diez

dedos que tenemos los humanos en las manos, los cuales siempre

nos han servido de base para contar.

El sistema decimal es un sistema de numeración posicional, por lo

que el valor del dígito depende de su posición dentro del número. Así:

Los números decimales se pueden representar en la recta real.

SISTEMA BINARIO

El sistema binario, en matemáticas e informática, es un sistema de

numeración en el que los números se representan utilizando

solamente las cifras cero y uno (0 y 1). Es el que se utiliza en

las computadoras, debido a que trabajan internamente con dos

niveles devoltaje, por lo que su sistema de numeración natural es el

sistema binario (encendido 1, apagado 0).

APLICACIÓN.

En 1937, Claude Shannon realizó su tesis doctoral en el MIT, en la

cual implementaba el Álgebra de Boole y aritmética binaria

HUGO IVAN LOPEZ NAVARRO Página 3

Page 4: FIFO

FIFO

utilizandorelés y conmutadores por primera vez en la historia.

Titulada Un Análisis Simbólico de Circuitos Conmutadores y Relés, la

tesis de Shannon básicamente fundó el diseño práctico de circuitos

digitales.

En noviembre de 1937, George Stibitz, trabajando por aquel entonces

en los Laboratorios Bell, construyó una computadora basada en relés

—a la cual apodó "Modelo K" (porque la construyó en una cocina, en

inglés "kitchen")— que utilizaba la suma binaria para realizar los

cálculos. Los Laboratorios Bell autorizaron un completo programa de

investigación a finales de 1938, con Stibitz al mando. El 8 de

enero de1940 terminaron el diseño de una "Calculadora de Números

Complejos", la cual era capaz de realizar cálculos con números

complejos. En una demostración en la conferencia de la Sociedad

Americana de Matemáticas, el 11 de

septiembre de 1940, Stibitz logró enviar comandos de manera remota

a la Calculadora de Números Complejos a través de la línea telefónica

mediante un teletipo. Fue la primera máquina computadora utilizada

de manera remota a través de la línea de teléfono. Algunos

participantes de la conferencia que presenciaron la demostración

fueron John Von Neumann, John Mauchly y Norbert Wiener, quien

escribió acerca de dicho suceso en sus diferentes tipos de memorias

en la cual alcanzó diferentes logros.

REPRESENTACION.

Un número binario puede ser representado por cualquier secuencia

de bits (dígitos binarios), que suelen representar cualquier

mecanismo capaz de estar en dos estados mutuamente excluyentes.

Las siguientes secuencias de símbolos podrían ser interpretadas

como el mismo valor numérico binario:

1 0 1 0 0 1 1 0 1 0| - | - - | | - | -x o x o o x x o x oy n y n n y y n y n

El valor numérico representado en cada caso depende del valor

asignado a cada símbolo. En una computadora, los valores numéricos

pueden representar dos voltajes diferentes; también pueden indicar

HUGO IVAN LOPEZ NAVARRO Página 4

Page 5: FIFO

FIFO

polaridades magnéticas sobre un disco magnético. Un "positivo", "sí",

o "sobre el estado" no es necesariamente el equivalente al valor

numérico de uno; esto depende de la nomenclatura usada.

De acuerdo con la representación más habitual, que es usando

números árabes, los números binarios comúnmente son escritos

usando los símbolos 0 y 1. Los números binarios se escriben a

menudo con subíndices, prefijos o sufijos para indicar su base. Las

notaciones siguientes son equivalentes:

100101 binario (declaración explícita de formato)

100101b (un sufijo que indica formato binario)

100101B (un sufijo que indica formato binario)

bin 100101 (un prefijo que indica formato binario)

1001012 (un subíndice que indica base 2 (binaria) notación)

 %100101 (un prefijo que indica formato binario)

0b100101 (un prefijo que indica formato binario, común en

lenguajes de programación)

SISTEMA OCTAL

El sistema numérico en base 8 se llama octal y utiliza los dígitos 0 a

7.

Por ejemplo, el número 74 (en decimal) es 1001010 (en binario), lo

agruparíamos como 1 / 001 / 010, de tal forma que obtengamos una

serie de números en binario de 3 dígitos cada uno (para fragmentar el

número se comienza desde el primero por la derecha y se parte de 3

en 3), después obtenemos el número en decimal de cada uno de los

números en binario obtenidos: 1=1, 001=1 y 010=2. De modo que el

número decimal 74 en octal es 112.

Hay que hacer notar que antes de poder pasar un número a octal es

necesario pasar por el binario. Para llegar al resultado de 74 en octal

se sigue esta serie: decimal -> binario -> octal.

En informática, a veces se utiliza la numeración octal en vez de

la hexadecimal. Tiene la ventaja de que no requiere utilizar otros

símbolos diferentes de los dígitos. Sin embargo, para trabajar

con bytes o conjuntos de ellos, asumiendo que un byte es

una palabra de 8 bits, suele ser más cómodo el sistema hexadecimal,

HUGO IVAN LOPEZ NAVARRO Página 5

Page 6: FIFO

FIFO

por cuanto todo byte así definido es completamente representable

por dos dígitos hexadecimales.

Es posible que la numeración octal se usara en el pasado en lugar

del decimal, por ejemplo, para contar los espacios interdigitales o los

dedos distintos de los pulgares.

SISTEMA HEXADECIMAL

El sistema Hexadecimal (no confundir con sistema sexagesimal), a

veces abreviado comoHex, es el sistema de numeración de

base 16 —empleando por tanto 16 símbolos—. Su uso actual está

muy vinculado a la informática y ciencias de la computación, pues

loscomputadores suelen utilizar el byte u octeto como unidad básica

de memoria; y, debido a que un byte representa 28 valores posibles, y

esto puede representarse

como  , que, según

elteorema general de la numeración posicional, equivale al número

en base 16 10016, dos dígitos hexadecimales corresponden

exactamente —permiten representar la misma línea de enteros— a

un byte.

En principio dado que el sistema usual de numeración es de

base decimal y, por ello, sólo se dispone de diez dígitos, se adoptó la

convención de usar las seis primeras letras del alfabeto latino para

suplir los dígitos que nos faltan. El conjunto de símbolos sería, por

tanto, el siguiente:

S = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

Se debe notar que A = 10, B = 11, C = 12, D = 13, E = 14 y F =

15. En ocasiones se emplean letras minúsculas en lugar de

mayúsculas. Como en cualquier sistema de numeración

posicional, el valor numérico de cada dígito es alterado

dependiendo de su posición en la cadena de dígitos, quedando

multiplicado por una cierta potencia de la base del sistema, que

en este caso es 16. Por ejemplo: 3E0A16 = 3×163 + E×162 +

0×161 + A×160 = 3×4096 + 14×256 + 0×16 + 10×1 = 15882.

El sistema hexadecimal actual fue introducido en el ámbito de la

computación por primera vez por IBM en 1963. Una

HUGO IVAN LOPEZ NAVARRO Página 6

Page 7: FIFO

FIFO

representación anterior, con 0–9 y u–z, fue usada en 1956 por la

computadora Bendix G-15.

SISTEMA OCTAL.

El sistema numérico en base 8 se llama octal y utiliza los dígitos 0 a

7.

Por ejemplo, el número 74 (en decimal) es 1001010 (en binario), lo

agruparíamos como 1 / 001 / 010, de tal forma que obtengamos una

serie de números en binario de 3 dígitos cada uno (para fragmentar el

número se comienza desde el primero por la derecha y se parte de 3

en 3), después obtenemos el número en decimal de cada uno de los

números en binario obtenidos: 1=1, 001=1 y 010=2. De modo que el

número decimal 74 en octal es 112.

Hay que hacer notar que antes de poder pasar un número a octal es

necesario pasar por el binario. Para llegar al resultado de 74 en octal

se sigue esta serie: decimal -> binario -> octal.

En informática, a veces se utiliza la numeración octal en vez de

la hexadecimal. Tiene la ventaja de que no requiere utilizar otros

símbolos diferentes de los dígitos. Sin embargo, para trabajar

con bytes o conjuntos de ellos, asumiendo que un byte es

una palabra de 8 bits, suele ser más cómodo el sistema hexadecimal,

por cuanto todo byte así definido es completamente representable

por dos dígitos hexadecimales.

Es posible que la numeración octal se usara en el pasado en lugar

del decimal, por ejemplo, para contar los espacios interdigitales o los

dedos distintos de los pulgares.

HUGO IVAN LOPEZ NAVARRO Página 7

Page 8: FIFO

FIFO

UNIVERSIDAD MESOAMERICANA

MATERIA: TALLER DE INFORAMTICA 6

IMPARTICA: ING FRANCISCO JAVIER GUZMAN

PRESENTA: HUGO IVAN LOPEZ NAVARRO

DEL 6 SEMETRE DE LA LIC. EN INFORMATICA.

TRABAJO:

SISTEMAS FIFO, LIFO,

DECIMAL, OCTAL,

HEXADECIMAL.

HUGO IVAN LOPEZ NAVARRO Página 8

Page 9: FIFO

FIFO

SAN CRSITOBAL DE LAS CASAS CHIAPAS A 3 DE FEBRERO DEL 2011

HUGO IVAN LOPEZ NAVARRO Página 9