fifo
TRANSCRIPT
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
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
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
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
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
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
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
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
FIFO
SAN CRSITOBAL DE LAS CASAS CHIAPAS A 3 DE FEBRERO DEL 2011
HUGO IVAN LOPEZ NAVARRO Página 9