You are on page 1of 471

Arquitectura de von Neumann

Memory

Control
Unit

Arithmetic
Logic
Unit
Accumulator

Input

Output

Diagrama de la arquitectura Von Neumann.


Diagrama de la arquitectura Von Neumann.

de botella Von Neumann y muchas veces limita el rendimiento del sistema.[3]


El diseo de una arquitectura Von Neumann es ms simple que la arquitectura Harvard ms moderna, que tambin es un sistema de programa almacenado, pero tiene
un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma,
y otro conjunto de direcciones y buses de datos para ir a
buscar instrucciones.
Un computador digital de programa almacenado es una
que mantiene sus instrucciones de programa, as como sus
datos, en memoria de acceso aleatorio (RAM) de lecturaescritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados
por programas de la dcada de 1940, como la Colossus
y la ENIAC, que fueron programadas por ajustando interruptores e insertando parches, conduciendo datos de la
ruta y para controlar las seales entre las distintas unidades funcionales. En la gran mayora de las computadoras
modernas, se utiliza la misma memoria tanto para datos
como para instrucciones de programa, y la distincin entre Von Neumann vs. Harvard se aplica a la arquitectura
de memoria cach, pero no a la memoria principal.

Diagrama de la arquitectura Von Neumann.

La arquitectura Von Neumann, tambin conocida como modelo de Von Neumann o arquitectura Princeton, es una arquitectura de computadoras basada en
la descrita en 1945 por el matemtico y fsico John
von Neumann y otros, en el primer borrador de un informe sobre el EDVAC.[1] Este describe una arquitectura de diseo para un computador digital electrnico
con partes que constan de una unidad de procesamiento que contiene una unidad aritmtico lgica y registros
del procesador, una unidad de control que contiene un
registro de instrucciones y un contador de programa, una
memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de
entrada y salida.[1][2] El signicado ha evolucionado hasta ser cualquier computador de programa almacenado en 1 Historia
el cual no pueden ocurrir una extraccin de instruccin
y una operacin de datos al mismo tiempo, ya que com- Las primeras mquinas de computacin tenan prograparten un bus en comn. Esto se conoce como el cuello mas jos. Algunos equipos muy simples siguen utilizan1

DESARROLLO DEL CONCEPTO DE PROGRAMA ALMACENADO

do este diseo, ya sea por motivos de simplicacin o de


formacin. Por ejemplo, una calculadora de escritorio es
(en principio) una computadora de programa jo. En ella,
se pueden hacer matemticas bsicas, pero no puede ser
utilizada como procesador de texto o consola de juegos.
Cambiar el programa de una mquina de programa jo
requiere re cablear, reestructurar, o re disear la mquina. Las primeras computadoras no eran tanto programadas ya que fueron diseadas."Reprogramar cuando
era posible, era un proceso laborioso que comenzaba con
diagramas de ujo y notas de papel, seguido de diseos
detallados de ingeniera y luego el muchas veces arduo
proceso de recablear fsicamente y reconstruir la mquina. Poda tomar hasta tres semanas preparar un programa
de ENIAC y conseguir que funcionara.[4]
Esa situacin cambi con la propuesta de la computadora con programa almacenado. Una computadora de
programa almacenado incluye, por diseo, un conjunto
de instrucciones y puede almacenar en la memoria un
conjunto de instrucciones (un programa) que detalla la
computacin.
Un diseo de programa almacenado tambin permite un
cdigo mutante. Una primera motivacin para una instalacin de este tipo fue la necesidad de que un programa
incremente o modique de otro modo la porcin de direccin de instrucciones, lo cual, en los primeros diseos,
tena que hacerse manualmente. Esto lleg a ser menos
importante cuando los registros ndice y modos de direccionamiento se convirtieron en caractersticas habituales
de la arquitectura de la mquina. Otro uso fue para incrustar datos frecuentemente usados en el ujo de instrucciones utilizando direccionamiento inmediato. El cdigo mutante ha cado en gran parte en desuso, ya que
suele ser difcil de entender y de depurar, adems de ser
ineciente, en favor de los regmenes de los modernos
procesadores pipelines y del almacenamiento en cach.
A gran escala, la capacidad para tratar a las instrucciones
de la misma forma que si fueran datos es lo que hacen los
ensambladores, compiladores, enlazadores, cargadores, y
otras posibles herramientas automticas de programacin. Se puede escribir programas que escriban programas. En una escala menor, las intensivas operaciones repetitivas de E/S como los primeros manipuladores de
imgenes BitBLT o los sombreadores de pxeles y vrtices
en los grcos 3D modernos, se consideraron inecaces
al funcionar sin necesidad de hardware personalizado. Estas operaciones podran acelerarse en los procesadores de
propsito general con tecnologa de compilacin mosca ("compilacin en tiempo de ejecucin"), por ejemplo, programas de cdigo generado, una forma de cdigo
automodicable que ha mantenido popularidad.
Hay algunas desventajas para el diseo de Von Neumann.
Aparte del cuello de botella de Von Neumann descripto
a continuacin, las modicaciones del programa pueden
ser muy perjudiciales, ya sea por accidente o por diseo.
En algunos diseos simples de computadora con progra-

ma almacenado, un programa que no funcione correctamente puede daarse, daar a otros programas, o inclusive al sistema operativo, lo que puede dar lugar a un
desplome o crash de la computadora. Normalmente, la
proteccin de memoria y otras formas de control de acceso pueden proteger tanto de modicaciones accidentales
como de programas maliciosos.

2 Desarrollo del concepto de programa almacenado


El matemtico Alan Turing, quien haba sido alertado de
un problema de lgica matemtica por las lecciones de
Max Newman en la Universidad de Cambridge, escribi un artculo en 1936 titulado On Computable Numbers,
with an Application to the Entscheidungsproblem, que fue
publicado en los Proceedings of the London Mathematical Society.[5] En l describa una mquina hipottica
que llam mquina computadora universal, y que ahora es conocida como la "Mquina de Turing universal".
La mquina hipottica tena un almacenamiento innito (memoria en la terminologa actual) que contena tanto las instrucciones como los datos. John Von Neumann
conoci a Turing cuando ejerca de profesor sustituto en
Cambridge en 1935 y tambin durante el ao PhD que
Turing pas en la Institute for Advanced Study en Princeton, Nueva Jersey durante 1936-37. Cundo supo del
artculo de 1936 de Turing no est claro.
En 1936, Konrad Zuse tambin anticip en dos solicitudes de patente que instrucciones de la mquina podan ser
almacenadas en el mismo almacenamiento utilizado para
los datos.[6]
Independientemente, J. Presper Eckert y John Mauchly,
quienes estaban desarrollando el ENIAC en la Escuela
Moore de Ingeniera Elctrica en la Universidad de
Pennsylvania, escribieron sobre el concepto de programa
almacenado en diciembre de 1943. En enero de 1944,
mientras diseaba una nueva mquina, EDVAC, Eckert escribi que se almacenaran datos y programas
en un nuevo dispositivo de memoria direccionable, una
memoria de lnea de retardo. sta fue la primera vez que
se propuso la construccin de un prctico programa almacenado. Por esas fechas, no tenan conocimiento del
trabajo de Turing.
Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los lamos, el cual
requera ingentes cantidades de clculos. Esto le condujo
al proyecto ENIAC, en verano de 1944. All se incorpor
a los debates sobre el diseo de un ordenador con programas almacenados, el EDVAC. Como parte del grupo,
se ofreci voluntario a escribir una descripcin de l. El
trmino von Neumann architecture surgi del primer
artculo de von Neumann: First Draft of a Report on the
EDVAC, fechado el 30 de junio de 1945, el cual inclua
ideas de Eckert y Mauchly. Estaba inconcluso cuando su

3
compaero Herman Goldstine lo hizo circular con slo el
nombre de von Neumann escrito en l, para consternacin
de Eckert y Mauchly. El artculo fue ledo por docenas de
compaeros de trabajo de Von Neumann en Amrica y
Europa, e inuenci la siguiente hornada de diseos de
computadoras.

arquitectura von Neumann. En la publicacin de 1953


Faster than Thought: A Symposium on Digital Computing
Machines (Ms rpido que el pensamiento: Un Simposio sobre Mquinas informticas digitales -editado por
BV Bowden-), una seccin en el captulo sobre Computers in America (Computadoras en Amrica) dice lo
[10]
Por lo tanto, Von Neumann no se encontraba solo en el siguiente:
desarrollo de la idea de la arquitectura de programa alLa Mquina del Instituto de Estudios
macenado, y Jack Copeland considera que es histricaAvanzados,
Princeton
mente inapropiado referirse a las computadoras electrnicas digitales de programa almacenado como 'mquinas
En 1945, el profesor J. von Neumann, que
de von Neumann'".[7] Su colega del colegio Los lamos,
en
ese
entonces trabajaba en la Escuela MooStan Frankel dijo de las consideraciones de von Neumann
re
de
Ingeniera
en Filadela, donde se haba
con respecto a las ideas de Turing:
construido el ENIAC, emitido en nombre de
un grupo de sus compaeros de trabajo un inS que en o alrededor de 1943 o '44 von
forme sobre el diseo lgico de las compuNeumann era muy consciente de la importantadoras digitales. El informe contena una procia fundamental del papel de 1936 de Turing...
puesta bastante detallada para el diseo de la
Von Neumann me introdujo a ese papel y en su
mquina que, desde entonces, se conoce coinsistencia lo estudi con cuidado. Muchas permo la EDVAC (computadora de retardo variasonas han aclamado a von Neumann como el
ble discreta). Esta mquina ha sido recientepadre de la computadora (en el sentido momente completada en Amrica, pero el inforderno del trmino), pero estoy seguro de que
me von Neumann inspir la construccin de la
nunca habra hecho que el propio error. l bien
EDSAC (calculadora automtica de almacenapodra haberse llamado tal vez la partera, pemiento electrnico de retardo) en Cambridge
ro con rmeza enfatiz para m, y para otros,
(vase pgina 130).
que estoy seguro, que la concepcin fundamental se debe a Turingen la medida en que no
En 1947, Burks, Goldstine y Von Neuanticipado por Babbage... Por supuesto, tanto
mann, publicaron un informe en el que descriTuring como von Neumann tambin hicieron
ben el diseo de otro tipo de mquina (una mimportantes contribuciones a la reduccin a la
quina paralela en este momento) que debera
prctica de estos conceptos, pero yo no conser muy rpida, capaz de hacer 20 000 operasiderara esto como comparable en importanciones por segundo. Sealaron que el problema
cia con la introduccin y explicacin del conpersistente en la construccin de tal mquina
cepto de una computadora capaz de almacenar
estaba en el desarrollo de una memoria adeen su memoria su programa de actividades y
cuada, todos los contenidos de los cuales fuede modicar ese programa en el curso de estas
ron instantneamente accesibles, y al principio
actividades[8]
se sugiri el uso de un tubo especial llamado
Selectron que haba sido inventado por los laEn el mismo momento en que el informe Primer Borraboratorios de Princeton de la RCA. Estos tudor fue distribuido, Turing desarroll un informe tcnibos son caros y difciles para fabricar, as Von
co detallado, Proposed Electronic Calculator, que descriNeumman decidi construir una mquina babe en detalle la ingeniera y la programacin, su idea de
sada en la memoria de Williams. Esa mquina
una mquina que fue llamada la Automatic Computing
que se complet en junio de 1952 en Princeton
Engine (ACE).[9] Present ste al Laboratorio Nacional
se ha conocido como MANIAC I. El diseo de
de Fsica Britnico el 19 de febrero de 1946. A pesar de
esta mquina que ha sido inspirado de una doque Turing saba por su experiencia de guerra en el Parcena o ms de mquinas que estn actualmente
que Bletchley que su propuesta era factible, el secretismo
en construccin en Amrica.
mantenido durante muchas dcadas acerca de los ordenadores Colossus le impidi manifestarlo. Se produjeron En el mismo libro, los dos primeros prrafos de un capvarias implementaciones del diseo ACE de forma exito- tulo sobre ACE dicen lo siguiente:[11]
sa.
Los trabajos tanto de von Neumann como de Turing,
describan computadoras de programas almacenados, pero al ser anterior el artculo de von Neumann, consigui
mayor circulacin y repercusin, as que la arquitectura de computadoras que esboz adquiri el nombre de

Clculo automtico en el laboratorio nacional de fsica


Uno de los equipos digitales ms modernos que incorpora novedades y mejoras en la

5 PRIMERAS COMPUTADORAS BASADAS EN ARQUITECTURA VON NEUMANN


tcnica de la computacin electrnica ha sido
demostrado en el Laboratorio Nacional de Fsica, Teddington, donde ha sido diseado y construido por un pequeo equipo de matemticos
e ingenieros electrnicos investigadores sobre
el personal del laboratorio, asistido por ingenieros de produccin de la compaa elctrica
inglesa. El equipo construido hasta ahora en el
laboratorio es solo el modelo piloto de muchas
instalaciones muy grandes que se va a conocer como el motor de clculo automtico, pero
aunque es relativamente pequeo en volumen
y contiene solo 800 vlvulas termoinicas, es
una mquina de clculo muy rpido y verstil.
Los conceptos bsicos y principios abstractos de la computacin por una mquina fueron formuladas por el Dr A. M. Turing, en un
papel1 ledo ante la Sociedad Matemtica de
Londres en 1936, pero el trabajo en dichas mquinas en el Reino Unido se retras por la guerra. En 1945, se hizo una revisin al problema
en el laboratorio nacional de Fsica por el profesor J. R. Womersley. Se le adjunt al Dr. Turing un pequeo equipo de especialistas, y en
1947 la planicacin preliminar fue lo sucientemente avanzada como para justicar el establecimiento del grupo especial ya mencionado.
En abril de 1948, estos ltimos pasaron a estar en la seccin de electrnica del laboratorio,
bajo el cargo del Sr. F. M. Colebrook.

Denicin formal

Las computadoras son mquinas de arquitectura von


Neumann cuando:
1. Tanto los programas como los datos se almacenan en
una memoria en comn. Esto hace posible la ejecucin de comandos de la misma forma que los datos.

4 Estructura clsica de las mquinas von Neumann


Una mquina Von Neumann, al igual que prcticamente
todos los computadores modernos de uso general, consta
de cuatro componentes principales:
1. Dispositivo de operacin (DO), que ejecuta instrucciones de un conjunto especicado, llamado sistema (conjunto) de instrucciones, sobre porciones
de informacin almacenada, separada de la memoria del dispositivo operativo (aunque en la arquitectura moderna el dispositivo operativo consume ms
memoria -generalmente del banco de registros-), en
la que los operandos son almacenados directamente
en el proceso de clculo, en un tiempo relativamente
corto
2. Unidad de control (UC), que organiza la implementacin consistente de algoritmos de decodicacin de instrucciones que provienen de la memoria
del dispositivo, responde a situaciones de emergencia y realiza funciones de direccin general de todos
los nodos de computacin. Por lo general, el DO y
la UC conforman una estructura llamada CPU. Cabe sealar que el requisito es consistente, el orden
de la memoria (el orden del cambio de direccin en
el contador de programa) es fundamental a la hora
de la ejecucin de la instruccin. Por lo general, la
arquitectura que no se adhiere a este principio no se
considera von Neumann
3. Memoria del dispositivo un conjunto de celdas
con identicadores nicos (direcciones), que contienen instrucciones y datos.
4. Dispositivo de E/S (DES), que permite la comunicacin con el mundo exterior de los computadores,
son otros dispositivos que reciben los resultados y
que le transmiten la informacin al computador para su procesamiento.

2. Cada celda de memoria de la mquina se identica


con un nmero nico, llamado direccin.

5 Primeras computadoras basadas


en arquitectura von Neumann

3. Las diferentes partes de la informacin (los comandos y los datos) tienen diferente modos de uso, pero
la estructura no se representa en memoria de manera
codicada.

La primera saga se basaba en un diseo que fue utilizado


por muchas universidades y empresas para construir sus
computadoras.[12] Entre estas, solo ILLIAC y ORDVAC
tenan un conjunto de instrucciones compatible.

4. Cada programa se ejecuta de forma secuencial que,


en el caso de que no haya instrucciones especiales,
comienza con la primera instruccin. Para cambiar
esta secuencia se utiliza el comando de control de
transferencia.

Mquina Experimental de Pequea Escala de Mnchester (SSEM), apodada Baby (Universidad de


Mnchester, Inglaterra) hizo su primera ejecucin
exitosa de un programa almacenado el 21 de junio
de 1948.

5
EDSAC (Universidad de Cambridge, Inglaterra) fue
el primer computador electrnico prctico de programa almacenado (mayo de 1949)
Manchester Mark I (Universidad de Mnchester, Inglaterra) Desarrollado a partir de la SSEM (junio de
1949)
CSIRAC (Consejo de Investigacin Cientca e Industrial) Australia (noviembre de 1949)
EDVAC (Laboratorio de Investigacin Balstica,
Laboratorio de Informtica de Aberdeen Proving
Ground, 1951)
ORDVAC (U-Illinois) en Aberdeen Proving
Ground, Maryland (completado en noviembre de
1951)[13]
IAS machine en Princeton University (enero 1952)
MANIAC I en Laboratorio Cientco Los lamos
(marzo de 1952)
ILLIAC en la Universidad de Illinois, (septiembre
de 1952)
AVIDAC en Laboratorios Argonne National (1953)
ORACLE en Laboratorio Nacional de Oak Ridge
(junio de 1953)
JOHNNIAC en RAND Corporation (enero de
1954)
BESK en Estocolmo (1953)
BESM-1 en Mosc (1952)

ledas desde una cinta de papel debido a su memoria


limitada.[15]
La Manchester SSEM (la beb) fue la primera
computadora completamente electrnica que ejecutaba un programa almacenado. Se corri un programa de factoraje durante 52 minutos el 21 junio de
1948, despus de ejecutar un simple programa de
divisin y un programa para demostrar que dos nmeros eran primos entre s.
La ENIAC fue modicada para funcionar como un
computador primitivo con programa almacenado de
solo lectura (usando la tabla de funciones de programa ROM) y se demostr como tal el 16 de septiembre de 1948, ejecutando un programa de Adele
Goldstine para von Neumann.
La BINAC corri algunos programas de prueba en
febrero, marzo y abril de 1949, aunque no se termin
hasta septiembre de 1949.
La Manchester Mark I desarrollada basada en el proyecto SSEM. En abril de 1949, con el n de para
ejecutar programas, se hizo disponible una versin
intermedia de la Mark 1, pero no se termin hasta
octubre de 1949.
La EDSAC corri su primer programa el 6 de mayo
de 1949.
La EDVAC fue presentada en agosto de 1949, pero tuvo problemas que la mantena de su puesta en
funcionamiento regular hasta 1951.

DASK en Dinamarca (1955)

La CSIR Mark I corri su primer programa en noviembre de 1949.

PERM en Mnich (1956?)

La SEAC fue demostrada en abril de 1950.

SILLIAC en Sdney (1956)

La Pilot ACE corri su primer programa el 10 de


mayo 1950 y fue demostrada en diciembre de 1950

WEIZAC en Rehovoth (1955)

La SWAC se complet en julio de 1950.

Primeras computadoras de programa almacenado

La Computadora Whirlwind se complet en diciembre de 1950 y estuvo en uso real en abril de 1951.
La ERA 1101 (ms tarde la ERA 1101/UNIVAC
1101 comercial) se instal en diciembre de 1950.

La informacin de la fecha en la siguiente cronologa es


difcil de establecer en el orden correcto. Algunas fechas
son de la primera ejecucin de un programa de pruebas,
algunas fechas son de la primera vez que el equipo se de- 7 Evolucin
mostr o complet, y algunas fechas son de la primera
entrega o instalacin.
A lo largo de las dcadas de los aos 1960 y 1970, las
computadoras hicieron, en general, tanto ms pequeas
La IBM SSEC tena la capacidad para tratar instruc- como rpidas, lo que llev a algunas evoluciones en su arciones como datos, y se demostr pblicamente el quitectura. Por ejemplo, el mapeado en memoria de E/S
27 de enero de 1948. Esta capacidad fue reivindi- permiti que los dispositivos de entrada y salida sean tracada en una patente estadounidense.[14] Sin embar- tados de la misma como la memoria.[16] Un nico bus de
go, fue parcialmente electromecnica, no totalmen- sistema podra ser utilizado para proporcionar un sistema
te electrnica. En la prctica, las instrucciones eran modular con un menor coste. A veces esto se denomina

10 VASE TAMBIN

Memory

Control bus
Address bus
Data bus

System bus

CPU

Input and
Output

Evolucin de la arquitectura del bus simple del sistema

racionalizacin de la arquitectura.[17] En las dcadas siguientes, los microcontroladores sencillos seran algunas
veces omitir caractersticas del modelo a menor costo y
tamao. Las computadoras ms grandes aaden caractersticas para un mayor rendimiento.

Cuello de botella de von Neumann (von Neumann bottleneck)

El canal de transmisin de los datos compartido entre


CPU y memoria genera un cuello de botella de Von Neumann, un rendimiento limitado (tasa de transferencia de
datos) entre la CPU y la memoria en comparacin con
la cantidad de memoria. En la mayora de computadoras modernas, la velocidad de comunicacin entre la memoria y la CPU es ms baja que la velocidad a la que
puede trabajar esta ltima, reduciendo el rendimiento del
procesador y limitando seriamente la velocidad de proceso ecaz, sobre todo cuando se necesitan procesar grandes cantidades de datos. La CPU se ve forzada a esperar
continuamente a que lleguen los datos necesarios desde o
hacia la memoria. Puesto a que la velocidad de procesamiento y la cantidad de memoria han aumentado mucho
ms rpidamente que el rendimiento de transferencia entre ellos, el cuello de botella ha vuelto ms que un problema, un problema cuya gravedad aumenta con cada nueva
generacin de CPU.

la vez en vez de fomentarnos el pensar en unidades conceptuales mayores. Entonces la programacin es bsicamente la planicacin del
enorme trco de palabras que cruzan el cuello
de botella de von Neumann, y gran parte de ese
trco no concierne a los propios datos, sino a
dnde encontrar stos.[18][19]
El problema de rendimiento puede ser aliviado (hasta
cierto punto) utilizando diversos mecanismos. Ofreciendo una memoria cach entre la CPU y la memoria principal, proporcionando cachs separadas o vas de acceso independientes para datos e instrucciones (la llamada arquitectura Harvard modicada), utilizando algoritmos y lgica de predictor de saltos y proporcionando
una limitada pila de CPU u otro en el chip de memoria
reutilizable para reducir el acceso a memoria, son cuatro de las maneras que se dispone para aumentar el rendimiento. El problema tambin se puede eludirse, cierta medida, usando computacin paralela, utilizando por
ejemplo la arquitectura de acceso a memoria no uniforme (NUMA), este enfoque es comnmente empleado
por las supercomputadoras. Est menos claro si el cuello de botella intelectual que criticaba Backus ha cambiado mucho desde 1977. La solucin que propuso Backus
no ha tenido inuencia importante.[cita requerida] La moderna programacin funcional y la programacin orientada a
objetos se preocupan mucho menos de empujar un gran
nmero de palabras hacia un lado a otro que los lenguajes anteriores como era Fortran, pero internamente, esto
sigue siendo lo que las computadoras pasan gran parte
del tiempo haciendo, incluso las supercomputadoras altamente paralelas.
A partir de 1996, un estudio de referencia de base de datos se encontr que tres de cada cuatro ciclos de CPU se
dedican a la espera de memoria. Los investigadores esperan que el aumento del nmero de instrucciones simultneas arroye con el multihilo o el multiprocesamiento de
un solo chip har que este cuello de botella an peor. [20]

9 Procesadores no von Neumann

El National Semiconductor (Semiconductor nacional)


en 1986; tiene una arquitectura HarEl trmino cuello de botella de von Neumann fue acu- COP8 se introdujo
[21][22]
vard
modicada.
ado por John Backus en su conferencia de la concesin
del Premio Turing ACM de 1977. Segn Backus:
Tal vez el tipo ms comn de estructura no von Neumann
se utiliza en las computadoras modernas es la memoria de
contenido direccionable (CAM).
Seguramente debe haber una manera menos primitiva de realizar grandes cambios en la
memoria, que empujando tantas palabras hacia
un lado y otro del cuello de botella de von Neumann. No solo es un cuello de botella para el
trco de datos, sino que, ms importante, es
un cuello de botella intelectual que nos ha mantenido atados al pensamiento de una palabra a

Cach (informtica)
Memoria
Principal
ndice
0
1
2
3

Datos
xyz
pdq
abc
rgf

Memoria
Cach

computadoras (por ejemplo, las traducciones de libros de


Andrew S. Tanenbaum, John L. Hennessy y David A. Patterson) se emplea siempre la palabra sin tilde, por ser anglosajona, y debe por ello escribirse en cursiva (cache).

ndice Marca Datos

0
1

2 abc
0 xyz

2 RAM cach y cach de disco

Diagrama de una memoria cach de CPU.

La unidad cach es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un rea reservada de
En informtica, la cach es la memoria de acceso rpido la memoria principal como un dispositivo de almacenade una computadora, que guarda temporalmente los datos miento de alta velocidad independiente.
recientemente procesados (informacin).[1]
Hay dos tipos de cach frecuentemente usados en
computadoras personales: memoria cach y cach de disco.

La memoria cach es un bfer especial de memoria que


poseen las computadoras, que funciona de manera semejante a la memoria principal, pero es de menor tamao y
de acceso ms rpido. Es usada por el microprocesador
para reducir el tiempo de acceso a datos ubicados en la
memoria principal que se utilizan con ms frecuencia.

Una memoria cach, a veces llamada RAM cach,


es una parte de RAM esttica (SRAM) de alta velocidad, ms rpida que la RAM dinmica (DRAM) usada
como memoria principal. La memoria cach es efectiLa cach es una memoria que se sita entre la unidad cen- va dado que los programas acceden una y otra vez a los
tral de procesamiento (CPU) y la memoria de acceso alea- mismos datos o instrucciones. Guardando esta informacin en SRAM, la computadora evita acceder a la lenta
torio (RAM) para acelerar el intercambio de datos.
DRAM.
Cuando se accede por primera vez a un dato, se hace una
copia en la cach; los accesos siguientes se realizan a di- Cuando se encuentra un dato en la cach, se dice que se
cha copia, haciendo que sea menor el tiempo de acceso ha producido un acierto, siendo un cach juzgado por su
medio al dato. Cuando el microprocesador necesita leer o tasa de aciertos (hit rate). Los sistemas de memoria caescribir en una ubicacin en memoria principal, primero ch usan una tecnologa conocida por cach inteligente
verica si una copia de los datos est en la cach; si es as, en la cual el sistema puede reconocer cierto tipo de datos
el microprocesador de inmediato lee o escribe en la me- usados frecuentemente. Las estrategias para determinar
moria cach, que es mucho ms rpido que de la lectura qu informacin debe ser puesta en la cach constituyen
uno de los problemas ms interesantes en la informtica.
o la escritura a la memoria principal.[2]
Algunas memorias cach estn construidas en la arquitectura de los microprocesadores. Por ejemplo, el microprocesador Pentium II: tiene 32 KiB de cach de primer
1 Etimologa y ortografa
nivel (level 1 o L1) repartida en 16 KiB para datos y 16
KiB para instrucciones; la cach de segundo nivel (level
La palabra procede de la voz inglesa cache (/k/; es- 2 o L2) es de 512 KiB y trabaja a mitad de la frecuencia
condite secreto para guardar mercancas, habitualmente del microprocesador. La cach L1 est en el ncleo del
de contrabando), y esta a su vez de la francesa cache, microprocesador, y la L2 est en una tarjeta de circuito
(/ka/; escondrijo o escondite). A menudo, en espaol impreso junto a ste.
se escribe con tilde sobre la e, del mismo modo como La cach de disco trabaja sobre los mismos principios
se vena escribiendo con anterioridad el neologismo ca- que la memoria cach, pero en lugar de usar SRAM de alch (distincin o elegancia o cotizacin de un artis- ta velocidad, usa la convencional memoria principal. Los
ta), proveniente tambin del francs, pero no de la mis- datos ms recientes del disco duro a los que se ha accema palabra, sino de cachet, (/ka'/; sello o salario). dido (as como los sectores adyacentes) se almacenan en
La Real Academia Espaola, en su Diccionario de la un bfer de memoria. Cuando el programa necesita aclengua espaola, slo reconoce la palabra con tilde,[1] ceder a datos del disco, lo primero que comprueba es la
aunque en la literatura especializada en arquitectura de cach de disco para ver si los datos ya estn ah. La cach
1

DISEO

de disco puede mejorar notablemente el rendimiento de 4 Diseo


las aplicaciones, dado que acceder a un byte de datos en
RAM puede ser miles de veces ms rpido que acceder a En el diseo de la memoria cach se deben considerar vaun byte del disco duro.
rios factores que inuyen directamente en el rendimiento
de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarqua de memoria.
Estos factores son las polticas de ubicacin, extraccin,
3 Composicin interna
reemplazo y escritura.
Los datos en la memoria cach se alojan en distintos niveles segn la frecuencia de uso que tengan, estos niveles
4.1
son los siguientes:

3.1

Memoria cach nivel 1 (Cach L1)

Tambin llamada memoria interna, se encuentra en el ncleo del microprocesador. Es utilizada para acceder a datos importantes y de uso frecuente, es el nivel en el que el
tiempo de respuesta es menor. Su capacidad es de hasta
128 kb. Este nivel se divide en dos:
Nivel 1 Data Cache: Se encarga de almacenar datos
usados frecuentemente y cuando sea necesario volver a utilizarlos, accede a ellos en muy poco tiempo,
por lo que se agilizan los procesos.
Nivel 1 Instruction Cache: Se encarga de almacenar
instrucciones usadas frecuentemente y cuando sea
necesario volver a utilizarlas, inmediatamente las recupera, por lo que se agilizan los procesos.

3.2

Memoria cach nivel 2 (Cach L2)

Se encarga de almacenar datos de uso frecuente. Es ms


lenta que la cach L1, pero ms rpida que la memoria
principal (RAM). Se encuentra en el procesador, mas no
en su ncleo. Genera una copia del nivel 1.
Cach Exclusivo: Los datos solicitados se eliminan
de la memoria cach L2.

Poltica de ubicacin

Decide dnde debe colocarse un bloque de memoria principal que entra en la memoria cach. Las ms utilizadas
son:
Directa: al bloque i-simo de memoria principal le
corresponde la posicin i mdulo n, donde n es el nmero de bloques de la memoria cach. Cada bloque
de la memoria principal tiene su posicin en la cach y siempre en el mismo sitio. Su inconveniente
es que cada bloque tiene asignada una posicin ja
en la memoria cach y ante continuas referencias a
palabras de dos bloques con la misma localizacin
en cach, hay continuos fallos habiendo sitio libre
en la cach.
Asociativa: Los bloques de la memoria principal
se alojan en cualquier bloque de la memoria cach,
comprobando solamente la etiqueta de todos y cada
uno de los bloques para vericar acierto. Su principal inconveniente es la cantidad de comparaciones
que realiza.
Asociativa por conjuntos: Cada bloque de la memoria principal tiene asignado un conjunto de la cach, pero se puede ubicar en cualquiera de los bloques que pertenecen a dicho conjunto. Ello permite
mayor exibilidad que la correspondencia directa y
menor cantidad de comparaciones que la totalmente
asociativa.

Cach Inclusivo: Los datos solicitados se quedan en 4.2 Poltica de extraccin


la memoria cach L2.
La poltica de extraccin determina cundo y qu bloque de memoria principal hay que traer a memoria cach.
3.3 Memoria cach nivel 3 (Cach L3)
Existen dos polticas muy extendidas:
Esta memoria se encuentra en algunos procesadores modernos y genera una copia a la L2. Es ms rpida que la
memoria principal (RAM), pero ms lenta que L2. En
esta memoria se agiliza el acceso a datos e instrucciones
que no fueron localizadas en L1 o L2.
Es generalmente de un tamao mayor y ayuda a que el
sistema guarde gran cantidad de informacin agilizando
las tareas del procesador.

Por demanda: un bloque slo se trae a memoria cach cuando ha sido referenciado y no se encuentre
en memoria cach.
Con prebsqueda: cuando se referencia el bloque
i-simo de memoria principal, se trae adems el bloque (i+1)-simo. Esta poltica se basa en la propiedad de localidad espacial de los programas.

5.1

4.3

Mejorar el rendimiento.

Poltica de reemplazo

3
tomado en cuenta distintas tcnicas que ayudarn a que
haya menos reincidencia de fallos.

Determina qu bloque de memoria cach debe abandonarla cuando no existe espacio disponible para un bloque
5.1
entrante. Bsicamente hay cuatro polticas:
Aleatoria: el bloque es reemplazado de forma
aleatoria.
FIFO: se usa el algoritmo First In First Out (FIFO)
(primero en entrar primero en salir) para determinar
qu bloque debe abandonar la cach. Este algoritmo
generalmente es poco eciente.

Mejorar el rendimiento.

Reducir fallos en la cach (miss rate).


Reducir penalizaciones por fallo (miss penalti).
Reducir el tiempo de acceso en caso de acierto
(hit time).

Menos recientemente usado (LRU): Sustituye el 5.2 Reduccin de fallos


bloque que hace ms tiempo que no se ha usado en
la cach, traeremos a cach el bloque en cuestin y 5.2.1 Tipos de fallos
lo modicaremos ah.
Existen 3 tipos de fallos en una memoria cach:
Menos frecuencias usadas (LFU): Sustituye el
bloque que ha experimentado menos referencias.
Forzosos (Compulsory o Cold): En el primer ac-

4.4

Poltica de Actualizacin o Escritura

Determinan el instante en que se actualiza la informacin


en memoria principal cuando se hace una escritura en la
memoria cach.
Escritura Inmediata: Se escribe a la vez en Memoria cach y Memoria principal. Desventaja: genera
cuello de botella.

ceso a un bloque ste no se encuentra en la cach


(fallos de arranque en fro o de primera referencia).
Capacidad (Capacity): La cach no puede contener todos los bloques necesarios durante la ejecucin
de un programa.
Conicto (Conict): Diferentes bloques deben ir
necesariamente al mismo conjunto o lnea cuando
la estrategia es asociativa por conjuntos o de correspondencia directa (fallos de colisin).

Escritura Aplazada: Actualiza nicamente la Memoria cach luego de la modicacin de sus datos. 5.2.2 Tcnicas para reducir fallos
Cuando el bus de sistema se encuentra libre, actualiza la memoria principal. Esto puede generar que Existen diversas tcnicas para reducir esos fallos en la calos perifricos lean datos errneos, pero es poco fre- ch, algunas son:
cuente.
Incrementar el tamao del bloque. Ventajas: Se
Escritura Obligada: Actualiza nicamente la Mereducen los fallos forzosos como sugiere el princimoria cach luego de la modicacin de sus datos.
pio de localidad espacial. Inconvenientes: Aumentan
Cuando no hay otra alternativa, actualiza la memolos fallos por conicto al reducirse el nmero de bloria principal. Esto puede producirse por cualquiera
ques de la cach y los fallos de capacidad si la cach
de estas causas:
es pequea. La penalizacin por fallo aumenta al incrementarse el tiempo de transferencia del bloque.
1. Se accede a la posicin de memoria principal
modicada en la cach. Antes de permitir la
lectura/escritura, debe actualizarse el dato en la
memoria principal.
2. Debe eliminarse una lnea de la cach, entonces se
actualiza la memoria principal (en caso de ser necesario) antes de proceder a la eliminacin.

Optimizacin

Para una optimizacin en la manera en que se ingresa a la


memoria cach y cmo se obtienen datos de ella, se han

Incremento de la asociatividad. Ventajas: Se reducen los fallos por conicto. Inconveniente: Aumenta el tiempo de acceso medio al incrementarse el
tiempo de acierto (multiplexin). Tambin aumenta
el coste debidos a los comparadores
Cach vctima. Consiste en aadir una pequea cach totalmente asociativa (1-5 bloques) para almacenar bloques descartados por fallos de capacidad
o conicto. En caso de fallo, antes de acceder a la
memoria principal se accede a esta cach. Si el bloque buscado se encuentra en ella se intercambian los
bloques de ambas cachs.

8
Optimizacin del compilador. El compilador
re-ordena el cdigo de manera que por la forma en
cmo se hacen los accesos se reducen los fallos de
cach.

ENLACES EXTERNOS

INTRODUCCIN
El subsistema de ENTRADA/SALIDA (E/S) suministra al computador un mecanismo eficiente de
comunicacin entre el procesador central y el entorno exterior.
La conexin de dispositivos perifricos a un computador no puede llevarse a cabo de forma directa
haciendo uso del bus del procesador, esta restriccin es debida fundamentalmente a tres razones:
Existe una gran variedad de dispositivos con distintos modos de operacin.
El ritmo de transferencia de datos es, en casi todos los casos, mucho menor que hay entre la CPU y
la memoria principal.
En ocasiones, el perifrico requiere que los datos le sean suministrados en formatos distintos al
utilizado por la CPU.
Los perifricos de almacenamiento, llamados tambin perifricos de memoria auxiliar, son unos
dispositivos en los que se almacenan, temporal o permanente, los datos que va a manejar la CPU
durante el proceso en curso, y que no es posible mantener en la memoria principal. Suponen un
apoyo fundamental a la computadora para realizar su trabajo habitual.
Los perifricos de almacenamiento se pueden clasificar de acuerdo al modo de acceso a los datos
que contienen:
Acceso secuencial.
Acceso aleatorio.
La Interfaz de E/S de las aplicaciones es la que define el modelo de E/S que ven los usuarios, por lo
que cuando se disea el Sistema Operativo se debe tener en cuenta decisiones relativas a la
funcionalidad que se va ha ofrecer al exterior: Nombres Independientes de los Dispositivos, E/S No
Bloquean o Asncronas, Control de Acceso a Dispositivos, Indicadores de Error y Uso de Estndares.
DESARROLLO
1.- QUE SE REFIERE EL TRMINO INTERFACE (E/S)
La interfaces de entrada y de salida proporciona un mtodo para transferir informacin entre
dispositivos de (E/S) de almacenamiento interno y de (E/S) externas. Los perifricos conectados a
una computadora necesitan enlac de comunicacin especial para funcionar como una interfaces con
la unidad de procesamiento central.
El propsito del enlace de comunicacin es resolver las diferencias que existen en la computadora
central y de cada perifrico.
Se llama interfaces porque se comunica tanto con el canal del procesador como con el dispositivo
perifrico.

Las funciones de la interfase son almacenar los datos y realizar las conversiones que se le requieran.
Tambin detecta errores en la transmisin y es capaz de reiniciar la transaccin en casos de error.
Ms an, la interfase puede testear, arrancar y detener el dispositivo segn las directivas impartidas
por la CPU. En algunos casos la interfase puede consultar a la CPU si algn dispositivo est
requiriendo atencin urgente.

Existen distintos tipos de comandos que circulan por el bus, a saber:


- De control: son para activar el perifrico y decirle que debe hacer (por ej. rebobinar una cinta);
varan segn cada tipo de perifrico.
- De verificacin: verifican las diversas condiciones de estado en la interfase o en el perifrico (por ej.,
una vez seleccionada la ruta la CPU puede desear verificarla para ver si existe energa (power on) o
que el perifrico est en lnea (on line).
- Salida de datos: Hace que la interfase responda tomando un tem de datos del bus.
- Entrada de datos: la interfase recibe un tem de datos del perifrico y lo coloca en su propio registro
separador, avisa a la CPU, la que emite el comando de entrada de datos el cual transfiere el
contenido de ese registro al bus de donde es tomado por la CPU y almacenado en su registro
acumulador. Ejemplo: Salida de datos a una unidad de cinta.
El computador arranca la unidad de cinta emitiendo un comando de control. El procesador entonces
monitorea el estado de la cinta por medio de comandos de verificacin. Cuando la cinta est en
posicin correcta, el computador emite un comando de salida de datos. La interfase responde a la
direccin y a las lneas de comando y transfiere los datos de la lnea de datos del bus de E/S a su
registro separador. La interfase se comunica entonces para aceptar un nuevo tem de datos para
almacenar en la cinta.
2.- DIGA 2 DIFERENCIAS ENTRE E/S AISLADA Y E/S MAPEADA EN MEMORIA
E/S AISLADA

1) En la configuracin E/S aislada, la Cpu tiene instrucciones distintas de entrada y salida, y cada una
de estas instrucciones se asocia con la direccin de un registro de interfase.
Cuando la CPU recupera y decodifica el cdigo de operacin de una instruccin de entrada y salida
coloca la direccin asociada con la instruccin dentro de las lneas de direccin comunes.
2) El mtodo E/S aislada separa la memoria y las direcciones de E/S para que los valores de la
direccin de memoria no se afecten con la asignacin de direccin de interfaces, porque cada una
tiene espacio de direccionamiento.
E/S MAPEADA EN MEMORIA
1) En una organizacin de E/S mapeada de memoria no hay instrucciones especifica de entrada o
salida. La CPU puede manipular datos de entrada y salida que residen en registros de interfaces con
la misma instruccin que se utiliza para manipular palabras de memoria: Cada interfase se organiza
como un conjunto de registros que responden a peticiones de lectura y escritura en el espacio de
direccionamiento normal.
2) La computadora emplea solo un conjunto de seales de lectura y escritura y no hacen diferencia
entre direcciones de memoria y entrada y salida. La computadora trata a un registro de interfaces
como parte del sistema de memoria las direcciones asignadas para registro de interfaces no pueden
utilizarse para palabras de memoria lo cual reducen rango de direcciones de memoria disponible.
3.-DIGA 2 DIFERENCIAS ENTRE CONTROL DE HABILITACION Y RECONOCIMIENTO MUTUO
CONTROL DE HABILITACION
Diferencias:
Pulso de Habilitacin
Durante una transmisin asncrona, las dos unidades que desean comunicarse no comparten
una frecuencia de reloj comn, por lo que requieren el envo de una seal que avise a la unidad
receptora cuando se ests transmitiendo los datos. Esto se puede lograr a travs del mtodo del
pulso de habilitacin, el cual es provedo de una unidad a otra con el fin de anunciar cuando se
realiza la transferencia de los datos.
Este mtodo emplea una lnea de control (estroboscopio) que permitir temporizar la
transferencia asncrona de los datos. El pulso puede ser enviado tanto por la unidad fuente como por
la unidad destino de manera indiferente.
1) Cuando el pulso es enviado por la unidad fuente, sta coloca los datos en el canal de los
datos y seguido de un breve retraso procede a activar la habilitacin, tanto la seal como la
informacin permanecen en el canal el tiempo necesario para que la unidad destino los reciba y
almacene. Luego la fuente retira el contenido para dejar libre el canal de datos y as desactivar el
pulso de habilitacin.
2) Cuando la seal es enviada por la unidad destino es para avisarle a la unidad fuente que
ya puede transmitir la informacin, sta responder colocando los datos en el canal, los cuales
debern permanecer all durante un tiempo que se considere suficiente para que la unidad destino los
acepte, inmediatamente la unidad destino activa el pulso de habilitacin y la unidad fuente retira los
datos de la lnea de transmisin.
En la mayor parte de las computadoras el pulso de reloj est bajo el control del la Unidad central de
procesamiento la cual se encarga de informar a los dispositivos perifricos de entrada como debern
transmitir la informacin necesaria.
RECONOCIMIENTO MUTUO
Diferencias:
Reconocimiento Mutuo.
A travs del mtodo del pulso de habilitacin las unidades a comunicarse pueden
temporizarse, sin embargo no existe una seal que le indique a la unidad fuente que la unidad destino
recibi los datos, ni una que le indique a la unidad destino que la unidad fuente coloc la informacin
en el canal. De all surge la tcnica de reconocimiento mutuo que emplea una doble lnea de
transmisin con el objetivo de enviar un mensaje de confirmacin entre los dos entes que les brinden
seguridad e integridad en la transmisin. Una lnea (de fuente a destino) le anuncia a la unidad
receptora que existen datos vlidos en el canal; la otra lnea (destino-fuente) avisa a la unidad
emisora que los datos sern aceptados.
1) Cuando la seal es enviada por la unidad fuente las dos lneas de transmisin se separan
en: datos vlidos (direccin: fuentedestino) y datos aceptados (en direccin destino- fuente). El
proceso que se lleva a cabo es el siguiente: la fuente coloca los datos en el canal y activa la seal de

datos vlidos, una vez que el destino recibe la informacin devuelve la seal de datos aceptados
culminando la transferencia. La fuente retira los datos de las lneas de transmisin y deshabilita su
seal dejando as libre el canal. El destino deshabilita su seal de datos aceptados lo que anuncia la
disponibilidad de la misma para un prximo envo.
2) Cuando la transmisin se realiza desde la unidad destino la lnea de reconocimiento mutuo
datos aceptados cambia su nombre por preparada para datos. La secuencia seguida es la siguiente:
la unidad receptora habilita la seal preparada para datos lo que da pie a que la unidad fuente
coloque los datos en el canal y active su seal de datos vlidos. Una vez que el receptor recibe los
bits de carcter deshabilita su seal para finalizar la transferencia; la unidad fuente desactiva la lnea
datos vlidos devolviendo al canal a su estado inicial.
El mtodo de reconocimiento mutuo proporciona confiabilidad en la transmisin ya que hay
mayor comunicacin entre las unidades, adems si se produce un error en alguna de ellas no hay
problema ya que cuenta con un mecanismo de tiempo transcurrido que alarma si la transferencia no
se realiza en tiempo transcurrido predeterminado, el cual es implantado por un reloj interno que
inicializa el conteo cuando alguna de las unidades activa sus seales de habilitacin y reconocimiento
mutuo.
4.- DIGA UNA DIFERENCIA Y UNA SEMEJANZA ENTRE TRASFERENCIA SINCRONA Y
ASICRONA SERIA DE DATOS
Diferencia
TRANSMISIN ASNCRONA
La manera ms fcil de conseguir sincronismo es enviando pequeas cantidades de bits a la vez,
sincronizndose al inicio de cada cadena. Esto tiene el inconveniente de que cuando no se transmite
ningn carcter, la lnea est desocupada .Para detectar errores, se utiliza un bit de paridad en cada
cadena. Usando la codificacin adecuada , es posible hacer corresponder un 0 ( por ejemplo ) a
cuando la lnea est parada ( con NRZ , cada vez que se quiera comenzar a transmitir una cadena ,
se usa un 1 como seal ) .Si el receptor es un tanto ms rpido o lento que el emisor , es posible que
incluso con cadenas cortas ( o tramas , que son las cadenas ms los bits adicionales de paridad y de
comienzo y parada ) se produzcan errores como el error de delimitacin de trama ( se leen datos
fuera de la trama al ser el receptor ms lento que el emisor ) o el error que se produce al introducirse
ruido en la transmisin de forma que en estado de reposo , el receptor crea que se ha emitido un dato
( el ruido ) .
TRANSMISIN SNCRONA
En este tipo de transmisin no hay bits de comienzo ni de parada, por lo que se transmiten bloques
de muchos bits. Para evitar errores de delimitacin, se pueden sincronizar receptor y emisor mediante
una lnea aparte (mtodo utilizado para lneas cortas) o incluyendo la sincronizacin en la propia
seal (codificacin Manchester o utilizacin de portadoras en seales analgicas). Adems de los
datos propios y de la sincronizacin, es necesaria la presencia de grupos de bits de comienzo y de
final del bloque de datos, adems de ciertos bits de correccin de errores y de control. A todo el
conjunto de bits y datos se le llama trama.
SEMEJANZA
Ambas trasmiten en bloques, cada una detecta errores de delimitacin, para sincronizar el receptor y
el emisor, ambas leen datos de trama, comparten una frecuencia de reloj comn y los bits se
trasmiten en forma contina a la velocidad que dictan los pulsos de reloj.
5.- COMO SE MIDE LA VELOCIDAD DE BAUDIOS
Las computadoras y sus diversos dispositivos perifricos, incluyendo los mdems, usan el mismo
alfabeto. Este alfabeto esta formado por solo dos dgitos, cero y uno; es por ello que se conoce como
sistema de dgito binario. A cada cero o uno se le llama bit, termino derivado de BInary digiT (dgito
binario).
BAUDIOS
Un baudio es una seal elctrica analgica o una onda. El ciclo de una onda analgica equivale a un
baudio. Una ciclo completo comienza en el cero voltios, va al voltaje ms alto baja hasta el voltaje
ms bajo pasando por el cero, y regresa a cero voltios de nuevo. Es una Unidad de medida utilizada
en comunicaciones. Hace referencia al nmero de intervalos elementales por segundo que supone
una seal. Velocidad con que se mide un mdem. <p>Velocidad de sealizacin de una lnea. Es la
velocidad de conmutacin, o el nmero de transiciones (cambios de voltaje o de frecuencia) que se

realiza por segundo. Slo a velocidades bajas, los baudios son iguales a los bits por segundo; por
ejemplo, 300 baudios equivalen a 300 bps. Sin embargo, puede hacerse que un baudio represente
ms de un bit por segundo.
Por ejemplo, el modem V.22bis genera 1,200 bps a 600 baudios.
Es una medida de la velocidad de modulacin, correspondiente al nmero de cambios en una seal
por segundo. Se suele hablar indistintamente de 'bits por segundo' y de 'baudios' habindose
convertido de hecho en falsos sinnimos. El nmero de bits por segundo dividido por el nmero de
bits de datos por seal da como resultado el nmero de baudios.
DIGA 2 DIFERENCIAS ENTRE LOS MODUS DE TRANSFERENCIA (E/S PROGRAMADA, E/S
POR INTERRUPCION Y DMA)
Mdulo de E/S
Cada controlador est a cargo de un tipo especfico de dispositivo.
Dependiendo del controlador, pueden estar varios dispositivos conectados al mismo
controlador.
El controlador se encarga de mover datos entre el dispositivo perifrico que controla y el
buffer de almacenamiento local. El tamao del buffer vara de un controlador a otro y depende
del dispositivo que controla.
DIFERENCIAS
E/S Programada
1)
Los datos se intercambian entre el CPU y el mdulo de E/S. El CPU ejecuta
un programa que controla directamente la operacin de E/S, incluyendo la
comprobacin del estado del dispositivo, el envo de la orden de lectura o
escritura y la transferencia del dato. Cuando el CPU enva la orden debe
esperar hasta que la operacin de E/S concluya. Si el CPU es ms rpido,
ste estar ocioso. El CPU es el responsable de comprobar peridicamente
el estado del mdulo de E/S hasta que encuentre que la operacin ha
finalizado.
2)
El dispositivo de E/S no tiene acceso directo a la memoria, una transferencia
de un dispositivo de E/S a memoria que la CPU ejecute varias instrucciones,
incluyendo una instruccin de entrada.
E/S MEDIANTE INTERRUPCIONES
1) El problema con E/S programada es que el CPU tiene que esperar un tiempo considerable
a que el mdulo de E/S en cuestin est preparado para recibir o transmitir los datos. El CPU debe
estar comprobando continuamente el estado del mdulo de E/S. Se degrada el desempeo del
sistema.
Una alternativa es que el CPU tras enviar una orden de E/S continu realizando algn trabajo
til. El mdulo de E/S interrumpir al CPU para solicitar su servicio cuando est preparado para
intercambiar datos. El CPU ejecuta la transferencia de datos y despus contina con el
procesamiento previo.
Se pueden distinguir dos tipos: E/S sncrona y E/S asncrona
E/S Sncrona: cuando la operacin de E/S finaliza, el control es retornado al proceso que la
gener. La espera por E/S se lleva a cabo por medio de una instruccin wait que coloca al
CPU en un estado ocioso hasta que ocurre otra interrupcin. Aquellas mquinas que no
tienen esta instruccin utilizan un loop. Este loop contina hasta que ocurre una interrupcin
transfiriendo el control a otra parte del sistema de operacin. Slo se atiende una solicitud de
E/S por vez. El sistema de operacin conoce exactamente que dispositivo est
interrumpiendo. Esta alternativa excluye procesamiento simultneo de E/S.

E/S Asncrona: retorna al programa usuario sin esperar que la operacin de E/S finalice. Se
necesita una llamada al sistema que le permita al usuario esperar por la finalizacin de E/S (si
es requerido). Tambin es necesario llevar un control de las distintas solicitudes de E/S. Para
ello el sistema de operacin utiliza una tabla que contiene una entrada por cada dispositivo de
E/S (Tabla de Estado de Dispositivos).
2) La ventaja de este tipo de E/S es el incremento de la eficiencia del sistema.
Mientras se lleva a cabo E/S, el CPU puede ser usado para procesar o para

planificar otras E/S. Como la E/S puede ser bastante lenta comparada con la
velocidad del CPU, el sistema hace un mejor uso de las facilidades.

DMA (Direct Memory Access)


La E/S con interrupciones, aunque ms eficiente que la E/S programada, tambin requiere la
intervencin del CPU para transferir datos entre la memoria y el mdulo de E/S.
Consideren el siguiente ejemplo. Cuando se va a leer una lnea desde un Terminal, el primer
carcter escrito es enviado al computador. Cuando el carcter es recibido por el controlador, ste
interrumpe al CPU. El CPU le da servicio a la interrupcin y luego continua con el proceso que estaba
ejecutando. Esto es posible cuando el dispositivo es muy lento comparado con el CPU. Entre un
carcter y otro el CPU lleva a cabo gran cantidad de procesamiento. Pero qu sucede cuando
estamos trabajando con dispositivos de E/S ms veloces; Tendramos interrupciones muy seguidas y
se estara desperdiciando mucho tiempo.
1) Se utiliza DMA para dispositivos de E/S de alta velocidad. E1 controlador del dispositivo
transfiere un bloque de datos desde o para sus buffers de almacenamiento a memoria directamente
sin intervencin del CPU. Solo se produce una interrupcin por bloque en lugar de tener una
interrupcin por cada byte (o palabra).
Por ejemplo, un programa solicita una transferencia de datos. El Sistema de Operacin busca
un buffer disponible. El controlador de DMA tiene sus registros actualizados con las direcciones de la
fuente y del destino y la longitud de la transferencia. Por lo general esta actualizacin es realizada por
el manejador de dispositivo (rutina). Se indica al controlador de DMA a travs de bits de control en un
registro de control pare que inicie la operacin de E/S. Mientras tanto el CPU puede llevar a cabo
otras operaciones. El controlador de DMA interrumpe el CPU cuando la transferencia ha sido
terminada. El CPU interviene solo al comienzo y al final de la transferencia.
2) la transferencia de datos bajo E/S programada es entre la CPU y un perifrico transfiere
datos hacia adentro y hacia fuera de la unidad de memoria por medio del canal de memoria, DMA
solicita ciclos de memoria concede la solicitud, el DMA transfiere los datos directamente a la
memoria. La CPU solo retrasa su operacin de acceso de memoria para transferencia directa.
7.-DIGA UNA DIFERENCIA Y UNA SEMEJANZA ENTRE TRASFERENCIA POR RFAGA Y POR
ROBO DE CICLO
POR ROBO DE CICLO: se basa en usar uno o ms ciclos de CPU por cada instruccin que
se ejecuta (de ah el nombre). De esta forma se consigue una alta disponibilidad del bus del
sistema para la CPU, aunque, en consecuencia, la transferencia de los datos ser
considerablemente lenta. Este mtodo es el que se usa habitualmente ya que la interferencia
con la CPU es muy baja.
POR RFAGAS: consiste en enviar el bloque de datos solicitado mediante una rfaga,
ocupando el bus del sistema hasta finalizar la transmisin. As se consigue la mxima
velocidad, sin embargo la CPU no podr usar el bus durante todo ese tiempo, por lo que
permanecera inactiva
SEMEJANZAS:
Ambas transfieren al DMA en palabras de memorias en el cual debe de retornar el control a los
canales de memoria, donde permite la transferencia de E/S de la memoria directa en un ciclo de
memoria.
CONCLUSIN

Se dice que los dispositivos que tienen control directo de la unidad de procesamiento estn
conectados en lnea. Estos dispositivos transfieren informacin binaria dentro y fuera de la unidad de
memoria cuando se recibe un comando de la CPU.
Los perifricos conectados a una computadora necesitan enlaces de comunicacin especiales para
conectarlos con la CPU. El objetivo de un enlace de comunicacin consiste en resolver las diferencias
que existen entre la computadora central y cada dispositivo perifrico. Las diferencias principales son:
Los perifricos son dispositivos electromagnticos y su forma de operacin es diferente de
la CPU y la memoria los cuales son dispositivos electrnicos. Por lo tanto, quiz se requiera
una conversin de valores de seales.
La velocidad de transferencia de datos de los dispositivos perifricos suele ser menor que la
CPU. En consecuencia, puede necesitarse un mecanismo de sincronizacin.
Los cdigos y formatos de datos en los dispositivos perifricos difieren del formato de
palabras en la CPU y la memoria.
La transferencia de datos entre dispositivos de almacenamiento veloz como un disco magntico y la
memoria, a menudo se ve limitada por la velocidad del CPU. Durante la transferencia DMA la CPU
esta desocupada y no tiene control de los buses de la memoria

Memoria de acceso aleatorio


La memoria de acceso aleatorio (Random Access Memory, RAM) se utiliza como memoria de trabajo de
computadoras para el sistema operativo, los programas y
la mayor parte del software. En la RAM se cargan todas
las instrucciones que ejecuta la unidad central de procesamiento (procesador) y otras unidades del computador.
Se denominan de acceso aleatorio porque se puede leer
o escribir en una posicin de memoria con un tiempo de
espera igual para cualquier posicin, no siendo necesario seguir un orden para acceder (acceso secuencial) a la
4MiB de memoria RAM para un computador VAX de nales
informacin de la manera ms rpida posible.
de los 70. Los integrados de memoria DRAM estn agrupados

Durante el encendido de la computadora, la rutina POST arriba a derecha e izquierda.


verica que los mdulos de RAM estn conectados de
manera correcta. En el caso que no existan o no se detecten los mdulos, la mayora de tarjetas madres emiten
una serie de sonidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS
puede realizar un test bsico sobre la memoria RAM indicando fallos mayores en la misma.

Historia
Mdulos de memoria tipo SIPP instalados directamente sobre la
placa base.

dispositivos con una capacidad de memoria muy pequea. Antes que eso, las computadoras usaban rels y lneas
de retardo de varios tipos construidas para implementar
las funciones de memoria principal con o sin acceso aleatorio.
En 1969 fueron lanzadas una de las primeras memorias
RAM basadas en semiconductores de silicio por parte de
Intel con el integrado 3101 de 64 bits de memoria y para el siguiente ao se present una memoria DRAM de
1024 bytes, referencia 1103 que se constituy en un hito, ya que fue la primera en ser comercializada con xito,
Integrado de silicio de 64 bits sobre un sector de memoria de lo que signic el principio del n para las memorias de
ncleo magntico. En comparacin con los integrados de
ncleo magntico (nales de los 60).
memoria DRAM actuales, la 1103 es primitiva en varios
Uno de los primeros tipos de memoria RAM fue la me- aspectos, pero tena un desempeo mayor que la memomoria de ncleo magntico, desarrollada entre 1949 y ria de ncleos.
1952 y usada en muchos computadores hasta el desarrollo En 1973 se present una innovacin que permiti otra
de circuitos integrados a nales de los aos 60 y princi- miniaturizacin y se convirti en estndar para las
pios de los 70. Esa memoria requera que cada bit estuvie- memorias DRAM: la multiplexacin en tiempo de la
ra almacenado en un toroide de material ferromagntico direcciones de memoria. MOSTEK lanz la referencia
de algunos milmetros de dimetro, lo que resultaba en MK4096 de 4096 bytes en un empaque de 16 pines,[1]
1

2 TIPOS DE RAM

mientras sus competidores las fabricaban en el empaque


DIP de 22 pines. El esquema de direccionamiento[2] se
convirti en un estndar de facto debido a la gran popularidad que logr esta referencia de DRAM. Para nales de
los 70 los integrados eran usados en la mayora de computadores nuevos, se soldaban directamente a las placas base o se instalaban en zcalos, de manera que ocupaban un
rea extensa de circuito impreso. Con el tiempo se hizo
obvio que la instalacin de RAM sobre el impreso principal, impeda la miniaturizacin , entonces se idearon
los primeros mdulos de memoria como el SIPP, aprovechando las ventajas de la construccin modular. El formato SIMM fue una mejora al anterior, eliminando los
pines metlicos y dejando unas reas de cobre en uno de
los bordes del impreso, muy similares a los de las tarjetas
de expansin, de hecho los mdulos SIPP y los primeros
SIMM tienen la misma distribucin de pines.

decir el nmero de la calle nicamente seguir la misma.


Se fabricaban con tiempos de acceso de 70 60 ns y fueron muy populares en sistemas basados en el 486 y los
primeros Pentium.

1.2 EDO RAM


Extended Data Output RAM (EDO-RAM) fue lanzada al
mercado en 1994 y con tiempos de accesos de 40 o 30 ns
supona una mejora sobre FPM, su antecesora. La EDO,
tambin es capaz de enviar direcciones contiguas pero direcciona la columna que va utilizar mientras que se lee la
informacin de la columna anterior, dando como resultado una eliminacin de estados de espera, manteniendo
activo el bfer de salida hasta que comienza el prximo
ciclo de lectura.

A nales de los 80 el aumento en la velocidad de los procesadores y el aumento en el ancho de banda requerido,
1.3 BEDO RAM
dejaron rezagadas a las memorias DRAM con el esquema
original MOSTEK, de manera que se realizaron una serie
Burst Extended Data Output RAM (BEDO-RAM) fue
de mejoras en el direccionamiento como las siguientes:
la evolucin de la EDO-RAM y competidora de la
SDRAM, fue presentada en 1997. Era un tipo de memoria que usaba generadores internos de direcciones y
acceda a ms de una posicin de memoria en cada ciclo de reloj, de manera que lograba un desempeo un 50
% mejor que la EDO. Nunca sali al mercado, dado que
Intel y otros fabricantes se decidieron por esquemas de
memoria sincrnicos que si bien tenan mucho del direccionamiento MOSTEK, agregan funcionalidades distintas como seales de reloj.

2 Tipos de RAM
Las dos formas principales de RAM moderna son:
1. SRAM (Static Random Access Memory), RAM esttica, memoria esttica de acceso aleatorio.
Mdulos formato SIMM de 30 y 72 pines, los ltimos fueron utilizados con integrados tipo EDO-RAM.

1.1

FPM RAM

Fast Page Mode RAM (FPM-RAM) fue inspirado en tcnicas como el Burst Mode usado en procesadores como el
Intel 486.[3] Se implant un modo direccionamiento en el
que el controlador de memoria enva una sola direccin y
recibe a cambio esa y varias consecutivas sin necesidad de
generar todas las direcciones. Esto supone un ahorro de
tiempos ya que ciertas operaciones son repetitivas cuando se desea acceder a muchas posiciones consecutivas.
Funciona como si deseramos visitar todas las casas en
una calle: despus de la primera vez no sera necesario

voltiles.
no voltiles:
NVRAM (non-volatile random access
memory), memoria de acceso aleatorio no
voltil
MRAM (magnetoresistive random-access
memory), memoria de acceso aleatorio
magnetorresistiva o magntica
2. DRAM (Dynamic Random Access Memory), RAM
dinmica, memoria dinmica de acceso aleatorio.
(a) DRAM Asincrnica (Asynchronous Dynamic
Random Access Memory, memoria de acceso
aleatorio dinmica asincrnica)
FPM RAM (Fast Page Mode RAM)

3
EDO RAM (Extended Data Output
RAM)
(b) SDRAM (Synchronous Dynamic RandomAccess Memory, memoria de acceso aleatorio
dinmica sincrnica)
Rambus:
RDRAM (Rambus Dynamic Random Access Memory)
XDR DRAM (eXtreme Data Rate
Dynamic Random Access Memory)
XDR2 DRAM (eXtreme Data Rate two Dynamic Random Access Memory)
SDR SDRAM (Single Data Rate Synchronous Dynamic Random-Access Memory, SDRAM de tasa de datos simple)
DDR SDRAM (Double Data Rate Synchronous Dynamic Random-Access Memory, SDRAM de tasa de datos doble)
DDR2 SDRAM (Double Data Rate type
two SDRAM, SDRAM de tasa de datos
doble de tipo dos)
DDR3 SDRAM (Double Data Rate type
three SDRAM, SDRAM de tasa de datos
doble de tipo tres)
DDR4 SDRAM (Double Data Rate type
four SDRAM, SDRAM de tasa de datos
doble de tipo cuatro)

Nomenclatura

Mdulos de RAM

Formato SO-DIMM.

integrados de cientos o miles de megabits. Adems de


DRAM, los mdulos poseen un integrado que permiten
la identicacin de los mismos ante la computadora por
medio del protocolo de comunicacin Serial Presence Detect (SPD).
La conexin con los dems componentes se realiza por
medio de un rea de pines en uno de los los del circuito
impreso, que permiten que el mdulo al ser instalado en
un zcalo o ranura apropiada de la placa base, tenga buen
contacto elctrico con los controladores de memoria y las
fuentes de alimentacin.

La necesidad de hacer intercambiable los mdulos, y de


utilizar integrados de distintos fabricantes, condujo al esLa expresin memoria RAM se utiliza frecuentemente tablecimiento de estndares de la industria como los Joint
para describir a los mdulos de memoria utilizados en Electron Device Engineering Council (JEDEC).
las computadoras personales y servidores.
1. Paquete DIP (Dual In-line Package, paquete de piLa RAM es solo una variedad de la memoria de accenes en-lnea doble).
so aleatorio: las ROM, memorias Flash, cach (SRAM),
los registros en procesadores y otras unidades de procesa2. Paquete SIPP (Single In-line Pin Package, paquete
miento tambin poseen la cualidad de presentar retardos
de pines en-lnea simple): fueron los primeros mde acceso iguales para cualquier posicin.
dulos comerciales de memoria, de formato propietario, es decir, no haba un estndar entre distintas
Los mdulos de RAM son la presentacin comercial de
marcas.
este tipo de memoria, que se compone de circuitos integrados soldados sobre un circuito impreso independiente,
3. Mdulos RIMM (Rambus In-line Memory Module,
en otros dispositivos como las consolas de videojuegos,
mdulo de memoria en-lnea rambus): Fueron otros
la RAM va soldada directamente sobre la placa principal.
mdulos propietarios bastante conocidos, ideados
por la empresa RAMBUS.

Los mdulos de RAM son tarjetas o placas de circuito


impreso que tienen soldados chips de memoria DRAM,
por una o ambas caras.
La implementacin DRAM se basa en una topologa de
circuito elctrico que permite alcanzar densidades altas de memoria por cantidad de transistores, logrando

4. Mdulos SIMM (Single In-line Memory Module,


mdulo de memoria en-lnea simple): formato usado
en computadoras antiguas. Tenan un bus de datos
de 16 32 bits.
5. Mdulos DIMM (Dual In-line Memory Module, mdulo de memoria en-lnea dual): usado en
computadoras de escritorio. Se caracterizan por tener un bus de datos de 64 bits.

TECNOLOGAS DE MEMORIA

6. Mdulos SO-DIMM (Small Outline DIMM): usado 5.2 RDRAM


en computadoras porttiles. Formato miniaturizado
Se presentan en mdulos RIMM de 184 contactos. Fue
de DIMM.
utilizada en los Pentium 4 . Era la memoria ms rpida
7. Mdulos FB-DIMM (Fully-Buered Dual Inline en su tiempo, pero por su elevado costo fue rpidamente
Memory Module): usado en servidores.
cambiada por la econmica DDR. Los tipos disponibles
son:

Tecnologas de memoria

La tecnologa de memoria actual usa una seal de sincronizacin para realizar las funciones de lectura/escritura
de manera que siempre est sincronizada con un reloj del
bus de memoria, a diferencia de las antiguas memorias
FPM y EDO que eran asncronas.
Toda la industria se decant por las tecnologas sncronas,
porque permiten construir integrados que funcionen a una
frecuencia superior a 66 MHz.
Tipos de DIMM segn su cantidad de contactos o pines:

PC600: RIMM RDRAM, funciona a un mximo de


300 MHz.
PC700: RIMM RDRAM, funciona a un mximo de
356 MHz.
PC800: RIMM RDRAM, funciona a un mximo de
400 MHz.
PC1066: RIMM RDRAM, funciona a un mximo
de 533 MHz.
PC1200: RIMN RDRAM, funciona a un mximo
de 600 MHz.

5.3 DDR SDRAM


Memoria sncrona, enva los datos dos veces por cada ciclo de reloj. De este modo trabaja al doble de velocidad
del bus del sistema, sin necesidad de aumentar la frecuencia de reloj. Se presenta en mdulos DIMM de 184 contactos en el caso de ordenador de escritorio y en mdulos
de 144 contactos para los ordenadores porttiles.

Memorias RAM con tecnologas usadas en la actualidad.

5.1

SDR SDRAM

La nomenclatura utilizada para denir a los mdulos


de memoria de tipo DDR (esto incluye a los formatos
DDR2, DDR3 y DDR4) es la siguiente: DDRx-yyyy
PCx-zzzz; donde x representa a la generacin DDR en
cuestin; yyyy la frecuencia aparente o efectiva, en Megaciclos por segundo (MHz); y zzzz la mxima tasa de
transferencia de datos por segundo, en Megabytes, que
se puede lograr entre el mdulo de memoria y el controlador de memoria. La tasa de transferencia depende de
dos factores, el ancho de bus de datos (por lo general 64
bits) y la frecuencia aparente o efectiva de trabajo. La
frmula que se utiliza para calcular la mxima tasa de
transferencia por segundo entre el mdulo de memoria y
su controlador, es la siguiente:

Memoria sncrona, con tiempos de acceso de entre 25 y


10 ns y que se presentan en mdulos DIMM de 168 contactos. Fue utilizada en los Pentium II y en los Pentium
III , as como en los AMD K6, AMD Athlon K7 y Duron.
Est muy extendida la creencia de que se llama SDRAM a
secas, y que la denominacin SDR SDRAM es para diferenciarla de la memoria DDR, pero no es as, simplemente se extendi muy rpido la denominacin incorrecta. El Tasa de transferencia en MB/s = (Frecuencia DDR efec[4]
nombre correcto es SDR SDRAM ya que ambas (tanto la tiva) x (64 bits / 8 bits por cada byte)
SDR como la DDR) son memorias sncronas dinmicas. Por ejemplo:
Los tipos disponibles son:
1 GB DDR-400 PC-3200: Representa un mdulo de 1
GB (Gigabyte) de tipo DDR; con frecuencia aparente o
PC66: SDR SDRAM, funciona a un mx de 66,6 efectiva de trabajo de 400 MHz; y una tasa de transferenMHz.
cia de datos mxima de 3200 MB/s.
PC100: SDR SDRAM, funciona a un mx de 100
MHz.
PC133: SDR SDRAM, funciona a un mx de 133,3
MHz.

4 GB DDR3-2133 PC3-17000: Representa un mdulo


de 4 GB de tipo DDR3; frecuencia aparente o efectiva de
trabajo de 2133 MHz; y una tasa de transferencia de datos
mxima de 17000 MB/s.
Los tipos disponibles son:

5.5

DDR3 SDRAM

PC1600 o DDR 200: funciona a un mx de 200


MHz.
PC2100 o DDR 266: funciona a un mx de 266,6
MHz.
PC2700 o DDR 333: funciona a un mx de 333,3
MHz.
PC3200 o DDR 400: funciona a un mx de 400
MHz.
PC4500 o DDR 500: funciona a una mx de 500
MHz.

5.4

DDR2 SDRAM

5.5 DDR3 SDRAM


Las memorias DDR 3 son una mejora de las memorias
DDR 2, proporcionan signicantes mejoras en el rendimiento en niveles de bajo voltaje, lo que lleva consigo una
disminucin del gasto global de consumo. Los mdulos
DIMM DDR 3 tienen 240 pines, el mismo nmero que
DDR 2; sin embargo, los DIMMs son fsicamente incompatibles, debido a una ubicacin diferente de la muesca.
Los tipos disponibles son:
PC3-6400 o DDR3-800: funciona a un mx de 800
MHz.
PC3-8500 o DDR3-1066: funciona a un mx de
1066,6 MHz.
PC3-10600 o DDR3-1333: funciona a un mx de
1333,3 MHz.
PC3-12800 o DDR3-1600: funciona a un mx de
1600 MHz.
PC3-14900 o DDR3-1866: funciona a un mx de
1866,6 MHz.
PC3-17000 o DDR3-2133: funciona a un mx de
2133,3 MHz.
PC3-19200 o DDR3-2400: funciona a un mx de
2400 MHz.

Mdulos de memoria instalados de 256 MiB cada uno en un sistema con doble canal.

PC3-21300 o DDR3-2666: funciona a un mx de


2666,6 MHz.

5.6 DDR4 SDRAM


Las memorias DDR 2 son una mejora de las memorias
DDR (Double Data Rate), que permiten que los bferes
de entrada/salida trabajen al doble de la frecuencia del 6 Relacin con el resto del sistema
ncleo, permitiendo que durante cada ciclo de reloj se
realicen cuatro transferencias. Se presentan en mdulos Dentro de la jerarqua de memoria, la RAM se encuentra
en un nivel despus de los registros del procesador y de
DIMM de 240 contactos. Los tipos disponibles son:
las cachs en cuanto a velocidad.
PC2-3200 o DDR2-400: funciona a un mx de 400
MHz.

Los mdulos de RAM se conectan elctricamente a un


controlador de memoria que gestiona las seales entrantes
y salientes de los integrados DRAM. Las seales son de
PC2-4200 o DDR2-533: funciona a un mx de tres tipos: direccionamiento, datos y seales de control.
533,3 MHz.
En el mdulo de memoria esas seales estn divididas en
dos buses y un conjunto miscelneo de lneas de control
PC2-5300 o DDR2-667: funciona a un mx de y alimentacin. Entre todas forman el bus de memoria
666,6 MHz.
que conecta la RAM con su controlador:
PC2-6400 o DDR2-800: funciona a un mx de 800
MHz.
PC2-8600 o DDR2-1066: funciona a un mx de
1066,6 MHz.
PC2-9000 o DDR2-1200: funciona a un mx de
1200 MHz.

Bus de datos: son las lneas que llevan informacin


entre los integrados y el controlador. Por lo general,
estn agrupados en octetos siendo de 8, 16, 32 y 64
bits, cantidad que debe igualar el ancho del bus de
datos del procesador. En el pasado, algunos formatos de mdulo, no tenan un ancho de bus igual al del
procesador. En ese caso haba que montar mdulos

CPU
Generador
de reloj

Tarjeta
grca

Transporte (bus)
delantero (FSB)
Chipset

Transporte (bus)
grco de alta
velocidad (AGP
o PCI Express)

Ranuras de
memoria

Puente
Norte

Transporte
de memoria

(concentrador
controlador de
memoria)

Transporte
Interno

Transporte
PCI

Puente
Sur

Transporte
PCI

(Concentrador
controlador
IDE
de E/S) SATA
USB
Ethernet
Interfaz de audio
Memoria CMOS

Interfaz
grca
integrada

Cables y
puertos
externos

Ranuras PCI
Transporte
LPC
(heredado)

Flash ROM
(BIOS)

Super I/O
Puerto serial
Puerto paralelo
Disco exible
Teclado
Ratn

Diagrama de la arquitectura de un ordenador.

en pares o en situaciones extremas, de a 4 mdulos,


para completar lo que se denominaba banco de memoria, de otro modo el sistema no funciona. Esa fue
la principal razn para aumentar el nmero de pines
en los mdulos, igualando al ancho de bus de procesadores como el Pentium a 64 bits, a principios de
los aos 1990.
Bus de direcciones: es un bus en el cual se colocan
las direcciones de memoria a las que se requiere acceder. No es igual al bus de direcciones del resto del
sistema, ya que est multiplexado de manera que la
direccin se enva en dos etapas. Para ello, el controlador realiza temporizaciones y usa las lneas de
control. En cada estndar de mdulo se establece un
tamao mximo en bits de este bus, estableciendo un
lmite terico de la capacidad mxima por mdulo.
Seales miscelneas: entre las que estn las de la
alimentacin (Vdd, Vss) que se encargan de entregar
potencia a los integrados. Estn las lneas de comunicacin para el integrado de presencia (Serial Presence Detect) que sirve para identicar cada mdulo.
Estn las lneas de control entre las que se encuentran las llamadas RAS (Row Address Strobe) y CAS
(Column Address Strobe) que controlan el bus de direcciones, por ltimo estn las seales de reloj en las
memorias sincrnicas SDRAM.

DETECCIN Y CORRECCIN DE ERRORES

Algunos controladores de memoria en sistemas como


PC y servidores se encuentran embebidos en el llamado
puente norte (North Bridge) de la placa base. Otros sistemas incluyen el controlador dentro del mismo procesador
(en el caso de los procesadores desde AMD Athlon 64 e
Intel Core i7 y posteriores). En la mayora de los casos
el tipo de memoria que puede manejar el sistema est limitado por los sockets para RAM instalados en la placa
base, a pesar que los controladores de memoria en muchos casos son capaces de conectarse con tecnologas de
memoria distintas.
Una caracterstica especial de algunos controladores de
memoria, es el manejo de la tecnologa canal doble o
doble canal (Dual Channel), donde el controlador maneja
bancos de memoria de 128 bits, siendo capaz de entregar
los datos de manera intercalada, optando por uno u otro
canal, reduciendo las latencias vistas por el procesador.
La mejora en el desempeo es variable y depende de la
conguracin y uso del equipo. Esta caracterstica ha promovido la modicacin de los controladores de memoria,
resultando en la aparicin de nuevos chipsets (la serie 865
y 875 de Intel) o de nuevos zcalos de procesador en los
AMD (el 939 con canal doble , reemplazo el 754 de canal
sencillo). Los equipos de gamas media y alta por lo general se fabrican basados en chipsets o zcalos que soportan
doble canal o superior, como en el caso del zcalo (socket) 1366 de Intel, que usaba un triple canal de memoria,
o su nuevo LGA 2011 que usa cudruple canal.

7 Deteccin y correccin de errores


Existen dos clases de errores en los sistemas de memoria,
las fallas (Hard fails) que son daos en el hardware y los
errores (soft errors) provocados por causas fortuitas. Los
primeros son relativamente fciles de detectar (en algunas
condiciones el diagnstico es equivocado), los segundos
al ser resultado de eventos aleatorios, son ms difciles de
hallar. En la actualidad la conabilidad de las memorias
RAM frente a los errores, es sucientemente alta como
para no realizar vericacin sobre los datos almacenados,
por lo menos para aplicaciones de ocina y caseras. En
los usos ms crticos, se aplican tcnicas de correccin y
deteccin de errores basadas en diferentes estrategias:
La tcnica del bit de paridad consiste en guardar un
bit adicional por cada byte de datos y en la lectura
se comprueba si el nmero de unos es par (paridad
par) o impar (paridad impar), detectndose as el
error.
Una tcnica mejor es la que usa cdigo de autochequeo y autocorrector (error-correcting code, ECC),
que permite detectar errores de 1 a 4 bits y corregir
errores que afecten a un slo bit. Esta tcnica se usa
slo en sistemas que requieren alta abilidad.

7
Por lo general, los sistemas con cualquier tipo de proteccin contra errores tiene un coste ms alto, y sufren de pequeas penalizaciones en desempeo, con respecto a los
sistemas sin proteccin. Para tener un sistema con ECC o
paridad, el chipset y las memorias deben tener soporte para esas tecnologas. La mayora de placas base no poseen
dicho soporte.
Para los fallos de memoria se pueden utilizar herramientas de software especializadas que realizan pruebas sobre
los mdulos de memoria RAM. Entre estos programas
uno de los ms conocidos es la aplicacin Memtest86+
que detecta fallos de memoria.

Joint Electron Device Engineering Council


Memoria (informtica)
Memoria de solo lectura
Memoria FRAM
Memoria grca de acceso aleatorio
Memoria principal
Memoria voltil
Ranura de expansin
RDRAM

RAM registrada

Es un tipo de mdulo usado frecuentemente en servidores, posee circuitos integrados que se encargan de repetir
las seales de control y direcciones: las seales de reloj
son reconstruidas con ayuda del PLL que est ubicado
en el mdulo mismo. Las seales de datos se conectan
de la misma forma que en los mdulos no registrados: de
manera directa entre los integrados de memoria y el controlador. Los sistemas con memoria registrada permiten
conectar ms mdulos de memoria y de una capacidad
ms alta, sin que haya perturbaciones en las seales del
controlador de memoria, permitiendo el manejo de grandes cantidades de memoria RAM. Entre las desventajas
de los sistemas de memoria registrada estn el hecho de
que se agrega un ciclo de retardo para cada solicitud de
acceso a una posicin no consecutiva y un precio ms alto que los mdulos no registrados. La memoria registrada es incompatible con los controladores de memoria que
no soportan el modo registrado, a pesar de que se pueden
instalar fsicamente en el zcalo. Se pueden reconocer visualmente porque tienen un integrado mediano, cerca del
centro geomtrico del circuito impreso, adems de que
estos mdulos suelen ser algo ms altos.[5]
Durante el ao 2006 varias marcas lanzaron al mercado
sistemas con memoria FB-DIMM que en su momento se
pensaron como los sucesores de la memoria registrada,
pero se abandon esa tecnologa en 2007 dado que ofreca pocas ventajas sobre el diseo tradicional de memoria
registrada y los nuevos modelos con memoria DDR3.[6]

Serial Presence Detect


SRAM
Tecnologa de montaje supercial
Zcalo (electrnica)

Es una tcnica de manejo de memoria, en la cual el


espacio de memoria se divide en secciones fsicas de
igual tamao, denominadas marcos de pgina. Los
programas se dividen en unidades lgicas:

denominadas pginas
que tienen el mismo
tamao que los marcos de pginas.

De esta forma se puede cargar una pgina de


informacin en cualquier marco de pgina.

Las paginas

sirven

Como unidad de almacenamiento de informacion y


transferencia
memoria principal

memoria secundaria

Las pginas de un programa necesitan estar


contiguamente en:

memoria

Los mecanismos de paginacin permiten la


correspondencia correcta entre las direcciones
virtuales (dadas por los programas) y las direcciones
reales de la memoria que se reverencien.

Cada pagina consiste :

En z palabras contiguas; un espacio de direcciones N


de un programa consiste de n paginas (0,1,2,3n-1)
(n*z direcciones virtuales) y el espacio de memoria
consiste de m marcos de paginas (0,z,2z,,(m1)z)(m*z posiciones).

MEMORIA_PRINCIPAL

d
i
v

MARCOS O
PAGINAS
FISICAS

DEL
MISMO
TAMAO

PARA TENER EL CONTROL DE LAS PGINAS:

Debe mantenerse una tabla en memoria que se


denomina tabla de Mapas de Pagina (PMT) para cada
uno de los procesos.

TABLAS DE PGINAS

CADA PGINA TIENE UN NMERO QUE SE


UTILIZA COMO NDICE EN LA TABLA DE
PGINAS, LO QUE DA POR RESULTADO EL
NMERO DEL MARCO CORRESPONDIENTE
A ESA PGINA VIRTUAL. SI EL BIT
PRESENTE / AUSENTE ES 0, SE PROVOCA
UN SEALAMIENTO (TRAP) HACIA EL
SISTEMA OPERATIVO. SI EL BIT ES 1, EL
NMERO DE MARCO QUE APARECE EN LA
TABLA DE PGINAS SE COPIA EN LOS BITS
DE MAYOR ORDEN DEL REGISTRO DE
SALIDA.

SU FINALIDAD DE LAS TABLAS

ES ASOCIAR LAS
PGINAS VIRTUALES
CON LOS MARCOS.

CARACTERISTICAS DE LA PAGINACION

EL ESPACIO DE DIRECCIONES LGICO DE UN PROCESO


PUEDE SER NO CONTIGUO.
SE DIVIDE LA MEMORIA FSICA EN BLOQUES DE TAMAO
FIJO LLAMADOS MARCOS (FRAMES).
SE DIVIDE LA MEMORIA EN BLOQUES DE TAMAO
LLAMADOS PAGINAS.
SE MANTIENE INFORMACIN EN LOS MARCOS LIBRES.
PARA CORRER UN PROGRAMA DE N PAGINAS DE TAMAO,
SE NECESITAN ENCONTRARA N MARCOS Y CARGAR EL
PROGRAMA.
SE ESTABLECE UNA TABLA DE PAGINAS PARA TRASLADAR
LAS DIRECCIONES LGICAS A FSICAS.
SE PRODUCE FRAGMENTACIN INTERNA.

VENTAJAS

Es posible comenzar a ejecutar un programa,


cargando solo una parte del mismo en memoria, y el
resto se cargara bajo la solicitud.
No es necesario que las paginas estn contiguas en
memoria, por lo que no se necesitan procesos de
compactacin cuando existen marcos de paginas
libres dispersos en la memoria.
Es fcil controlar todas las pginas, ya que tienen el
mismo tamao.

DESVENTAJAS

El costo de hardware y software se incrementa, por la


nueva informacin que debe manejarse y el mecanismo
de traduccin de direcciones necesario. Se consume
mucho mas recursos de memoria, tiempo en el CPU para
su implantacin.
Se deben reservar reas de memoria para las PMT de
los procesos. Al no ser fija el tamao de estas, se crea un
problema semejante al de los programas (como asignar
un tamao ptimo sin desperdicio de memoria, u
"ovearhead" del procesador).

LA DIRECCIN GENERADA POR LA CPU SE DIVIDE


EN:

Numero de pagina (p): utilizado como indice en la

tabla de pagins que contiene la direccin base de cada


pagina en la memoria fisica.
de la pagina (d): combinado con la direccin base
dfine la direccion fisica que ser enviada a la unidad de
memoria.

EXISTEN 2 FUNCIONES

LLEVAR A CABO LA
TRANSFORMACIN DE UNA
DIRECCIN VIRTUAL A FSICA,
O SEA, LA DETERMINACIN DE
LA PGINA A LA QUE
CORRESPONDE UNA
DETERMINADA DIRECCIN DE
UN PROGRAMA.

TRANSFERIR, CUANDO HAGA


FALTA, PGINAS DE LA
MEMORIA SECUNDARIA A LA
MEMORIA PRINCIPAL, Y DE LA
MEMORIA PRINCIPAL A LA
MEMORIA SECUNDARIA
CUANDO YA NO SEAN
NECESARIAS.

SEGMENTACIN DE MEMORIA

DIVIDE LA MEMORIA EN SEGMENTOS, CADA UNO


DE LOS CUALES TIENE UNA LONGITUD VARIABLE,
QUE EST DEFINIDA INTRNSECAMENTE POR EL
TAMAO DE ESE SEGMENTO DEL PROGRAMA.

LOS ELEMENTOS DENTRO DE UN SEGMENTO

SE IDENTIFICAN POR
SU
DESPLAZAMIENTO

ESTO CON RESPECTO


AL INICIO DEL
SEGMENTO

DEFINICIN Y ASPECTOS GENERALE

LA SEGMENTACIN DE MEMORIA ES UN
ESQUEMA DE MANEJO DE MEMORIA MEDIANTE
EL CUAL LA ESTRUCTURA DEL PROGRAMA
REFLEJA SU DIVISIN LGICA.

LLEVNDOSE A CABO UNA AGRUPACIN LGICA


DE LA INFORMACIN EN BLOQUES DE TAMAO
VARIABLE DENOMINADOS SEGMENTOS.

CADA UNO DE ELLOS TIENEN INFORMACIN


LGICA DEL PROGRAMA:

subrutina, arreglo, etc.

DESPUS CADA ESPACIO DE DIRECCIONES DE


PROGRAMA CONSISTE DE UNA COLECCIN DE
SEGMENTOS, QUE GENERALMENTE REFLEJAN LA
DIVISIN LGICA DEL PROGRAMA.

OBVIAMENTE ESTE SISTEMA DE GESTIN DE


MEMORIA ES UTILIZADO

EN SISTEMAS OPERATIVOS AVANZADOS

PERO YA EXISTAN MUESTRAS DE SU ACTIVIDAD


DESDELOS S.O.S UNIX Y D.O.S.

OBJETIVOS ALCANZADOS CON LA

SEGMENTACIN DE MEMORIA
MODULARIDAD DE PROGRAMAS: CADA RUTINA

DEL PROGRAMA PUEDE SER UN BLOQUE SUJETO A


CAMBIOS Y RECOPILACIONES, SIN AFECTAR POR
ELLO AL RESTO DEL
PROGRAMA.
ESTRUCTURAS DE DATOS DE LARGO
VARIABLE: DONDE CADA ESTRUCTURA TIENE SU
PROPIO TAMAO Y ESTE PUEDE VARIAR.
(STACK)

PROTECCIN: SE PUEDE PROTEGER LOS MDULOS

DEL SEGMENTO CONTRA ACCESOS NO


AUTORIZADOS.
COMPARTICIN: DOS O MS PROCESOS PUEDEN
SER UN MISMO SEGMENTO, BAJO REGLAS DE
PROTECCIN; AUNQUE NO SEAN PROPIETARIOS DE
LOS MISMOS.
ENLACE DINMICO ENTRE SEGMENTOS: PUEDE
EVITARSE REALIZAR TODO EL PROCESO DE ENLACE
ANTES DE COMENZAR A EJECUTAR UN PROGRAMA.
LOS ENLACES SE ESTABLECERN SOLO CUANDO SEA
NECESARIO

LA SEGMENTACIN PAGINADA AYUDA AL

PROCESO DE GESTIN DE MEMORIA

PUEDE HACERSE UNA COMBINACIN DE


SEGMENTACIN Y PAGINACIN PARA OBTENER
LAS VENTAJAS DE AMBAS.

CADA SEGMENTO PUEDE SER DESCRITO POR SU


PROPIA TABLA DE PGINAS.

LOS SEGMENTOS SON USUALMENTE MLTIPLOS


DE PGINAS EN TAMAO, Y NO ES NECESARIO QUE
TODAS LAS PGINAS SE ENCUENTREN EN MEMORIA
PRINCIPAL ALA VEZ;

ADEMS LAS PGINAS DE UN MISMO SEGMENTO,


AUNQUE SE ENCUENTREN CONTIGUAS EN MEMORIA
VIRTUAL; NO NECESITAN ESTARLO EN MEMORIA
REAL.

LA SEGMENTACIN PAGINADA TIENE SU

PROPIO ESQUEMA
LAS PGINAS DE ALMACENAMIENTO VIRTUAL, QUE
SON CONTIGUAS EN ESTE ALMACENAMIENTO, NO
NECESITAN SER CONTIGUAS EN EL
ALMACENAMIENTO REAL.

EL DIRECCIONAMIENTO ES TRIDIMENSIONAL CON


UNA DIRECCIN DE ALMACENAMIENTO VIRTUAL
V=(S,P,D). S= nm.. Segmento , P= num.pag.
D= desplazamiento.

COMPARTICIN DE SEGMENTOS
1.

En un sistema de segmentacin, una vez


que un segmento ha sido declarado como
compartido, entonces las estructuras que lo
integran pueden cambiar de tamao.

Dos procesos pueden compartir un


segmento con solo tener entradas en sus
tablas generales que apunten al mismo
segmento del
almacenamiento primario.
2.

LAS VENTAJAS DE LA SEGMENTACIN

El programador puede conocer las unidades lgicas


de su programa, dndoles un tratamiento particular.

Es posible compilar mdulos separados como


segmentos el enlace entre los segmentos puede
suponer hasta tanto se haga una referencia entre
segmentos.

Es fcil el compartir segmentos.

Es posible que los segmentos crezcan


dinmicamente segn las necesidades del programa
en ejecucin.

LAS DESVENTAJAS

Hay un incremento en los costos de hardware y de


software para llevar a cabo la implantacin, as como
un mayor consumo de recursos: memoria, tiempo de
CPU, etc.

Debido a que los segmentos tienen un tamao


variable se pueden presentar problemas de
fragmentacin externas, lo que puede ameritar un
plan de reubicacin de segmentos en memoria
principal.

FFFFF

Direccin lgica

Direccin fsica
SEGMENTO

Desplaz
amiento

Registro de segmento

Direccin de segmento

CPU
0

Memoria

FFFFF

UN SEGMENTO ES UN REA
CONTINUA DE MEMORIA QUE PUEDE
TENER HASTA 64K-BYTES, QUE
DEBE COMENZAR EN UNA
LOCALIDAD DE MEMORIA CUYA
DIRECCIN SEA LMITE DE 16
BYTES (CANTIDAD DENOMINADA
PRRAFO) Y QUE PUEDE
TRASLAPARSE CON OTROS
SEGMENTOS.

SEGMENTO

Memoria

El

segmento de cdigo (tiene como base el


contenido del registro CS).
En este segmento se encuentran las
instrucciones que forman el programa. Para
acceder a los datos contenidos en l, se usa el
registro IP como desplazamiento.
El

segmento de datos (que tiene como base el


registro DS).
Contiene los datos que utiliza el programa
(variables, etc.) Para acceder a los datos
contenidos en l, se suele utilizar los registros SI
y DI como desplazamiento.

El segmento de pila (con SS como base).


En l se desarrolla la pila del programa, utilizada para
almacn temporal de datos, llamadas a funciones, etc.
Debe estar presente en todos los programas EXE de forma
obligada. Se utiliza el registro SP para acceder a los datos
de este segmento.

El segmento extra (con ES como base).


Su uso es opcional, y en l se encuentra un segmento
definido por el usuario y que, regularmente, contiene datos
adicionales. Al igual que ocurre con el segmento de datos,
para acceder a los datos contenidos en l, se suelen utilizar
los registros SI y DI.
-

TRASLAPE DE SEGMENTOS

CS

CS
SEGMENTO DE
CDIGO

PROGRAMA

SEGMENTO DE
CDIGO

DS
SEGMENTO DE
DATOS

OTRO SEGMENTO
ES
SEGMENTO EXTRA DE
DATOS

SS
STACK

MEMORIA

MEMORIA

RELOCALIZACIN DE UN PROGRAMA USANDO EL REGISTRO CS

02000
600
PROGRAMA

SEGMENTO DE
CDIGO EN CURSO

nuevo (CS)=1A30

1A300
600
PROGRAMA

MEMORIA

SEGMENTO DE
CDIGO
RELOCALIZADO

Unidad 1:
Gestin de Procesos
Tema 1, Concurrencia:
Exclusin mutua y sincronizacin.
1.1 Problema de la seccin crtica, alternativas al uso de semforos:
- Regiones crticas, Monitores, Variables de condicin y Paso de
mensajes.
1.2 Problemas clsicos de sincronizacin:
- Productor consumidor usando monitores y paso de mensajes.
Problema de los Lectores /escritores.
Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

El problema de la seccin crtica (Conceptos generales):

Concurrencia: Existencia simultnea de varios procesos en


ejecucin.
IMPORTANTE: EXISTENCIA SIMULTNEA NO IMPLICA
EJECUCIN SIMULTNEA.
Necesidad de sincronizacin y comunicacin.
Comunicacin: Necesidad de transmisin de informacin
entre procesos concurrentes.
Sincronizacin: Necesidad de que las ejecuciones de los
procesos concurrentes se produzcan segn una secuenciacin
temporal, conocida y establecida entre los propios procesos.

Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

El problema de la seccin crtica (Conceptos generales):

Exclusin mutua: Para que el acceso a ciertos recursos


sea exclusivo de un proceso cada vez. A la parte del
programa que los utiliza se le llama seccin crtica.

Seccin crtica:
Cada proceso tiene un segmento de cdigo llamado seccin
crtica.
No est permitido que varios procesos estn
simultneamente en su seccin crtica.
Un protocolo rige la forma de entrar y salir de la seccin crtica.

Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

El problema de la seccin crtica (Conceptos generales):

Cualquier solucin al problema de la seccin crtica debe


satisfacer los tres requisitos:
Exclusin Mutua: Slo un proceso ejecuta simultneamente su
seccin crtica.
Progreso: Cuando ningn proceso ejecuta su seccin crtica,
algn proceso que lo solicite podr entrar utilizando un protocolo,
que impida la entrada simultnea de varios. La decisin de quin
entra no se puede posponer indefinidamente.
Espera limitada: Ningn proceso debe esperar ilimitadamente la
entrada en la seccin crtica.

Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

Problemas al uso de semforos:

Semforos: mecanismo cmodo y efectivo para lograr la


sincronizacin.
Problemas:
Pueden ocasionar errores de temporizacin difciles de
detectar, puesto que slo se producen con ciertas secuencias de
ejecucin especficas.
El uso desordenado de las primitivas podra producir que no
se consiga la exclusin mutua, ya que dos procesos podran
estar simultneamente en sus secciones crticas.
La construccin de grandes programas resulta muy rduo
porque las primitivas wait() y signal() se distribuyen por todo
el cdigo y no es fcil advertir su efecto global sobre el valor de
los semforos.
Bloqueos mutuos.
Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

Alternativas al uso de semforos:

Regin crtica.

Monitor y Variables condicin.

Paso de mensajes.

Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

Regin crtica (RC):

Mecanismo de sincronizacin de alto nivel.


Requiere declarar una variable que puede ser compartida
entre muchos procesos, pero a la que slo podr acceder
un nico proceso, a travs de un mecanismo booleano de
control de acceso.
Si el nmero de procesos dentro de esa RC es igual a 0, un
proceso que lo desee puede entrar a dicha RC.
Si el nmero de procesos dentro de una RC es igual a 1 y N
procesos quieren entrar, esos N procesos deben esperar.
Cuando un proceso sale de una RC se permite que entre uno
de los procesos que esperan.
Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

Regin crtica condicional (RCC):

Funcionamiento similar a la RC, slo que adems, para que


un proceso ejecute su seccin crtica la condicin de acceso
debe de ser cierta.
La evaluacin de la condicin de acceso se considera parte de
la regin crtica.
En caso de que el resultado de la evaluacin sea falso,
abandona la RC para permitir a otros procesos entrar en
ella.
Un proceso que haya evaluado la condicin a falso no vuelve
a entrar a su RC hasta que otro proceso abandone sta
(espera activa):
Se vuelve a ejecutar cuando posiblemente alguien haya
modificado dicha condicin.
Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

Regin crtica condicional (RCC):

Limitaciones de las RCC:


Aunque mejoran algunos aspectos negativos de los
semforos, tienen algunas limitaciones:
Pueden aparecer a lo largo de todo el programa.
No se garantiza la integridad de las estructuras de datos
compartidas.
Realizar una implementacin eficiente de las mismas es
una tarea difcil.

Escuela Universitaria de
Informtica (Segovia)

1.1 Problema de la seccin crtica.

Monitor:

Mecanismo de sincronizacin de alto nivel.


Funcionalidad equivalente a la de los semforos pero ms
fciles de controlar.

Tipo abstracto de datos que conjuga:

Estructuras de datos.
Conjunto de operaciones asociadas a tales estructuras.
Exclusin mutua
Sincronizacin (variables de condicin).

Escuela Universitaria de
Informtica (Segovia)

10

1.1 Problema de la seccin crtica.

Monitor:

Es un mdulo de software:
Consta de uno o varios procedimientos.
Secuencia de inicio.
Datos locales.

Caractersticas bsicas:
Variables locales slo accesibles para los procedimientos
del monitor y no para procedimientos externos.
Un proceso entra en el monitor al invocar uno de sus
procedimientos.
Slo un proceso se puede estar ejecutando en el monitor en
un instante dado.

Escuela Universitaria de
Informtica (Segovia)

11

1.1 Problema de la seccin crtica.

Monitor:

Deben incluir herramientas de sincronizacin:


Un monitor proporciona sincronizacin por medio de las variables
de condicin que se incluyen dentro del monitor y que son
accesibles slo desde dentro.

Dos funciones operan con las variables de condicin:


cwait(c): suspende (bloquea) la ejecucin del proceso que
llama a la condicin c. El monitor estar disponible para ser
usado por otro proceso.
csignal(c): reanuda la ejecucin de un proceso que fue
suspendido por un cwait(). Si hubiera varios elige uno de entre
ellos y si no hay ninguno no hace nada.

Escuela Universitaria de
Informtica (Segovia)

12

1.1 Problema de la seccin crtica.

Estructura de un monitor:

Escuela Universitaria de
Informtica (Segovia)

13

1.1 Problema de la seccin crtica.

Monitor, Variables condicin:

Qu ocurre cuando un proceso P realiza una operacin


csignal() sobre una variable condicin y existe un proceso
suspendido Q asociado a dicha variable?

Si varios procesos estn suspendidos por la concicin c y


algn proceso ejecuta csignal(c ) qu proceso se reanuda?.

Escuela Universitaria de
Informtica (Segovia)

14

1.1 Problema de la seccin crtica.

Soluciones al problema del productor/consumidor con


buffer acotado:

Por medio de Monitores con seales (monitor de Hoare).

Por medio de Monitores con notificacin y difusin


(monitor de Lampson y Redell).

Escuela Universitaria de
Informtica (Segovia)

15

1.1 Problema de la seccin crtica.

Solucin al P/C con monitores con seales:

El procedimiento comprueba primero la condicin no_lleno,


para saber si hay espacio libre en el buffer. De no haberlo el
proceso que est ejecutando el monitor se suspende cualquier otro
proceso (P o C) puede entrar ahora al monitor.
Cuando el buffer ya no est lleno el proceso suspendido puede
ser retirado de la cola y reactivado y el proceso podra
reanudarse.
Tras introducir un carcter en el buffer, el proceso activa la
condicin no_vaco.
Conclusiones: Como vemos la propia estructura del monitor
garantiza la EM, no es posible que P y C accedan simultneamente
al buffer. Lo nico que tiene que hacer el programador es situar
correctamente las primitivas cwait() y csignal() en el monitor
controlando que no se depositen elementos en un buffer lleno o no se
extraigan de uno vaco.
Escuela Universitaria de
Informtica (Segovia)

16

1.1 Problema de la seccin crtica.

Inconvenientes de los monitores con seales:

Posible error de sincronizacin de monitores: Si


olvidamos cualquiera de los csignal(), los procesos que entran
en la cola de la condicin se quedan colgados
permanentemente.
Si un proceso ejecuta un csignal() y no ha terminado en el
monitor, hacen falta dos cambios de proceso adicionales
para continuar la ejecucin del programa:
Uno para suspender el proceso.
Otro para reanudarlo cuando el monitor quede disponible.

La planificacin debe de ser muy fiable. Cuando se


ejecuta un csignal() se activar inmediatamente un proceso
de la cola de la condicin correspondiente y el planificador
debe asegurarse de que ningn otro proceso entre al monitor
antes de la activacin.
Escuela Universitaria de
Informtica (Segovia)

17

1.1 Problema de la seccin crtica.

Soluciones al P/C con monitores de notificacin y difusin:

Notifican los procesos en vez de reactivarlos a la fuerza.


Se puede aadir una primitiva de difusin cbroadcast(), que
provoca que todos los procesos que estn esperando por una
condicin se sitan en el estado de listos. Esto es conveniente en
situaciones donde un proceso no sabe cuantos procesos deben
reactivarse.
Ventajas sobre los monitores con seales:
1. Menor propensin a errores, cada procedimiento comprueba la variable
del monitor despus de ser despertado, por medio del while.
2. Ms modulable en cuanto a la construccin de programas.
3. Hace cumplir la EM y concluye la operacin de E/S antes de permitir
cualquier otra operacin sobre el buffer.
4. Dispone de suficiente memoria para que este proceso pueda completar
su solicitud de asignacin.

Escuela Universitaria de
Informtica (Segovia)

18

1.1 Problema de la seccin crtica.

Paso de mensajes:

Refuerzo de la Exclusin Mutua.

Intercambio de informacin.

Se caracteriza por dos primitivas:


send(destino, mensaje): enva mensaje a proceso de destino.
receive(origen, mensaje): informacin indicando el proceso
emisor y el mensaje.

Escuela Universitaria de
Informtica (Segovia)

19

1.1 Problema de la seccin crtica.

Implementacin de paso de mensajes:

Sincronizacin: Entre procesos, P1 no puede recibir un


mensaje hasta que lo enve P0.
Emisor y receptor pueden ser bloqueantes o no bloqueantes
(esperando un mensaje). Posibles combinaciones:
send() bloqueante y receive() bloqueante:
Tanto el emisor como el receptor se bloquean hasta que se
entrega el mensaje.
send() no bloqueante y receive() bloqueante:
Permite que un proceso enve uno o ms mensajes a varios
destinos tan rpido como sea posible.
El receptor se bloquea hasta que llega el mensaje solicitado.
send() no bloqueante y receive() no bloqueante:
Ninguno debe esperar.
Escuela Universitaria de
Informtica (Segovia)

20

1.1 Problema de la seccin crtica.

Direccionamiento:

Debemos especificar en el send() que proceso va a recibir el


mensaje, y tambin que el receive() conozca el origen del
mensaje que va a recibir dos esquemas:
Direccionamiento directo:
Send() incluye una identificacin del proceso de destino.
Receive() puede conocer de antemano de qu proceso espera un
mensaje.
Direccionamiento implcito: receive() puede utilizar el parmetro
origen para devolver un valor cuando se haya realizado la operacin
de recepcin.

Direccionamiento indirecto:
Los mensajes no van directamente del emisor al receptor.
Los mensajes se envan a una estructura de datos compartida
formada por colas (buzones o mailboxes).
P0 enva mensajes al buzn apropiado y P1 los recoge del buzn.

Escuela Universitaria de
Informtica (Segovia)

21

1.1 Problema de la seccin crtica.

Relaciones de direccionamiento:

Uno a uno: enlace privado de comunicacin entre P0 y P1.


Uno a varios: aplicaciones en los que el mensaje se difunde a un
conjunto de procesos.
Varios a uno: interacciones cliente/ servidor, un proceso ofrece un
servicio a un conjunto de procesos.
Varios a varios:

Escuela Universitaria de
Informtica (Segovia)

22

1.1 Problema de la seccin crtica.

Formato de mensajes:
Tipo de longitud
ID de destino
Cabecera

ID de origen
Longitud de mensaje
Informacin de control

Cuerpo

Contenido del mensaje

Escuela Universitaria de
Informtica (Segovia)

23

1.1 Problema de la seccin crtica.


Implementacin de la EM mediante paso de mensajes:

/* programa exclusion mutua */

void main(){

const int n= /*numero de procesos*/;

crear_buzon(excmut);

void P(int i){

send(excmut, null);

mensaje msj;
while (cierto){

parbegin(P(1),P(2), ..., P(n));


}

receive (exmut, msj);


/* seccin crtica */
send (exmut, msj);
/*resto*/
}
}
Escuela Universitaria de
Informtica (Segovia)

24

1.1 Problema de la seccin crtica.

Implementacin de la EM mediante paso de mensajes:

Un proceso (P) que desea entrar en su seccin crtica intenta


primero el receive(), si el buzn est vaco P se
bloquea. Si el proceso consigue el mensaje, ejecuta su
seccin crtica y despus devuelve el mensaje al buzn el
mensaje funciona como un testigo que se pasa de un proceso
a otro.
Esta tcnica implica que si hay varios procesos ejecutando
simultneamente el receive():
Si hay un mensaje, se entrega slo a uno de los procesos y los
otros se bloquean.
Si el buzn est vaco, todos los procesos se bloquean. Cuando
haya un mensaje disponible slo se activar y tomar el mensaje
uno de los procesos bloqueados.
Escuela Universitaria de
Informtica (Segovia)

25

1.2 Problema de los lectores/escritores.

Enunciado:

Tenemos un rea de datos (que puede ser un archivo, un


bloque de memoria principal o un banco de registros del
procesador) compartida entre varios procesos. Algunos
procesos slo leen los datos (lectores) y otros slo escriben
(escritores). Se puede satisfacer que:
1. Cualquier nmero de lectores puede leer el archivo
simultneamente.
2. Slo puede escribir en el archivo un nico escritor en cada
instante.
3. Si un escritor est accediendo al archivo, ningn lector puede
leerlo.

Escuela Universitaria de
Informtica (Segovia)

26

Unidad central de procesamiento


(SoC).
Dos componentes tpicos de una CPU son la unidad aritmtico lgica (ALU), que realiza operaciones aritmticas
y lgicas, y la unidad de control (CU), que extrae instrucciones de la memoria, las decodica y las ejecuta, llamando a la ALU cuando sea necesario.
No todos los sistemas computacionales se basan en una
unidad central de procesamiento. Una matriz de procesador o procesador vectorial tiene mltiples elementos
cmputo paralelo, sin una unidad considerada el centro.
En el modelo de computacin distribuido, se resuelven
problemas mediante un conjunto interconectado y distribuido de procesadores.

1 Historia

La unidad central de procesamiento o unidad de procesamiento central (conocida por las siglas CPU, del
ingls: central processing unit), es el hardware dentro de
una computadora u otros dispositivos programables, que
interpreta las instrucciones de un programa informtico
mediante la realizacin de las operaciones bsicas aritmticas, lgicas y de entrada/salida del sistema. El trmino, y su acrnimo, han estado en uso en la industria
de la Informtica por lo menos desde el principio de los
aos 1960.[1] La forma, el diseo de CPU y la implementacin de las CPU ha cambiado drsticamente desde los
primeros ejemplos, pero su operacin fundamental sigue
siendo la misma.
Una computadora puede tener ms de una CPU; esto se
llama multiprocesamiento. Todas las CPU modernas son
microprocesadores, lo que signica que contienen un solo circuito integrado (chip). Algunos circuitos integrados
pueden contener varias CPU en un solo chip; estos son
denominados procesadores multincleo. Un circuito integrado que contiene una CPU tambin puede contener los
dispositivos perifricos, y otros componentes de un sistema informtico; a esto se llama un sistema en un chip

El EDVAC, una de las primeras computadoras de programas almacenados electrnicamente.

Los primeros ordenadores, como el ENIAC, tenan que


ser fsicamente recableados para realizar diferentes tareas, lo que hizo que estas mquinas se denominaran ordenadores de programa jo. Dado que el trmino CPU
generalmente se dene como un dispositivo para la eje1

2
cucin de software (programa informtico), los primeros
dispositivos que con razn podramos llamar CPU vinieron con el advenimiento del ordenador con programa almacenado.
La idea de un ordenador con programa almacenado ya
estaba presente en el diseo de John Presper Eckert y en
el ENIAC de John William Mauchly, pero esta caracterstica se omiti inicialmente para que el aparato pudiera
estar listo antes. El 30 de junio de 1945, antes de que
se construyera la ENIAC, el matemtico John von Neumann distribuy el trabajo titulado First Draft of a Report
on the EDVAC (Primer Borrador de un Reporte sobre el
EDVAC). Fue el esbozo de un ordenador de programa
almacenado, que se termin en agosto de 1949.[2] EDVAC fue diseado para realizar un cierto nmero de instrucciones (u operaciones) de varios tipos. Signicativamente, los programas escritos para el EDVAC se crearon
para ser almacenados en la memoria de alta velocidad del
ordenador y no para que los especicara el cableado fsico del ordenador. Esto super una severa limitacin del
ENIAC, que era el importante tiempo y esfuerzo requerido para volver a congurar el equipo para realizar una
nueva tarea. Con el diseo de von Neumann, el programa
o software que corra EDVAC podra ser cambiado simplemente cambiando el contenido de la memoria. Sin embargo, EDVAC no fue el primer ordenador de programa
almacenado; la Mquina Experimental de Pequea Escala de Mnchester, un pequeo prototipo de ordenador de
programa almacenado, ejecut su primer programa el 21
de junio de 1948[3] y la Manchester Mark I ejecut su
primer programa en la noche del 16 al 17 junio de 1949.

HISTORIA

seo de programa almacenado usando cinta de papel perforada en vez de memoria electrnica. La diferencia clave
entre las arquitecturas de von Neumann y la de Harvard
es que la ltima separa el almacenamiento y tratamiento
de instrucciones de la CPU y los datos, mientras que el
primero utiliza el mismo espacio de memoria para ambos. La mayora de los CPU modernos son de diseo von
Neumann, pero los CPU con arquitectura Harvard se ven
as, sobre todo en aplicaciones embebidas; por ejemplo,
los microcontroladores Atmel AVR son procesadores de
arquitectura Harvard.
Los rels elctricos y los tubos de vaco (vlvulas termoinicas) eran usados comnmente como elementos de conmutacin; un ordenador til requiere miles o decenas de
miles de dispositivos de conmutacin. La velocidad global de un sistema depende de la velocidad de los conmutadores. Los ordenadores de tubo, como el EDVAC,
tendieron en tener un promedio de ocho horas entre fallos, mientras que los ordenadores de rels, (anteriores
y ms lentos), como el Harvard Mark I, fallaban muy
raramente.[1] Al nal, los CPU basados en tubo llegaron a
ser dominantes porque las signicativas ventajas de velocidad producidas generalmente pesaban ms que los problemas de conabilidad. La mayor parte de estas tempranas CPU sncronas corran en frecuencias de reloj bajas
comparadas con los modernos diseos microelectrnicos.
Eran muy comunes en este tiempo las frecuencias de la
seal del reloj con un rango desde 100 kHz hasta 4 MHz,
limitado en gran parte por la velocidad de los dispositivos
de conmutacin con los que fueron construidos.

Las primeras CPU fueron diseadas a medida como par- 1.1 CPU de transistores y de circuitos inte de un ordenador ms grande, generalmente un ordetegrados discretos
nador nico en su especie. Sin embargo, este mtodo de
disear las CPU a medida, para una aplicacin particular, ha desaparecido en gran parte y se ha sustituido por
el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o varios propsitos. Esta tendencia de estandarizacin comenz generalmente en la
era de los transistores discretos, computadoras centrales
y microcomputadoras y fue acelerada rpidamente con
la popularizacin del circuito integrado (IC), este ha permitido que sean diseados y fabricados CPU ms complejas en espacios pequeos en la orden de nanmetros).
Tanto la miniaturizacin como la estandarizacin de las
CPU han aumentado la presencia de estos dispositivos
digitales en la vida moderna mucho ms all de las aplicaciones limitadas de mquinas de computacin dedicadas. Los microprocesadores modernos aparecen en todo,
desde automviles hasta telfonos mviles o celulares y CPU, memoria de ncleo e interfaz de bus externo de un MSI
PDP-8/I. Hecho de circuitos integrados de mediana escala.
juguetes de nios.
Si bien von Neumann muchas veces acreditado por el diseo de la computadora con programa almacenado debido a su diseo del EDVAC, otros antes que l, como
Konrad Zuse, haban sugerido y aplicado ideas similares.
La denominada arquitectura Harvard del Harvard Mark I,
que se complet antes de EDVAC, tambin utiliz un di-

La complejidad del diseo de las CPU aument junto con


facilidad de la construccin de dispositivos electrnicos
ms pequeos y conables. La primera de esas mejoras
vino con el advenimiento del transistor. Las CPU transistorizadas durante los aos 1950 y los aos 1960 no tuvieron que ser construidos con elementos de conmutacin

1.2

Microprocesadores

abultados, no ables y frgiles, como los tubos de vaco y


los rels elctricos. Con esta mejora, fueron construidas
CPU ms complejas y ms conables sobre una o varias
tarjetas de circuito impreso que contenan componentes
discretos (individuales).

3
tacin de un transistor en comparacin a un tubo o rel.
Gracias tanto a esta creciente abilidad como al dramtico incremento de velocidad de los elementos de conmutacin que por este tiempo eran casi exclusivamente
transistores, se fueron alcanzando frecuencias de reloj de
la CPU de decenas de megahercios. Adems, mientras
que las CPU de transistores discretos y circuitos integrados se usaban comnmente, comenzaron a aparecer los
nuevos diseos de alto rendimiento como procesadores
vectoriales SIMD (single instruction multiple data instruccin nica, datos mltiples). Estos primeros diseos
experimentales dieron lugar ms adelante a la era de los
superordenadores especializados, como los hechos por
Cray Inc.

Durante este perodo, gan popularidad un mtodo de fabricar muchos transistores en un espacio compacto. El
circuito integrado (IC) permiti que una gran cantidad
de transistores fueran fabricados en una simple oblea basada en semiconductor o chip. Al principio, solamente
circuitos digitales muy bsicos, no especializados, como
las puertas NOR fueron miniaturizados en IC. Las CPU
basadas en estos IC de bloques de construccin generalmente son referidos como dispositivos de pequea escala
de integracin small-scale integration (SSI). Los circuitos integrados SSI, como los usados en el computador
gua del Apollo (Apollo Guidance Computer), usualmen- 1.2
te contenan transistores que se contaban en nmeros de
mltiplos de diez. Construir un CPU completo usando
IC SSI requera miles de chips individuales, pero todava consuma mucho menos espacio y energa que diseos anteriores de transistores discretos. A medida que la
tecnologa microelectrnica avanz, en los IC fue colocado un nmero creciente de transistores, disminuyendo as
la cantidad de IC individuales necesarios para una CPU
completa. Los circuitos integrados MSI y el LSI (de mediana y gran escala de integracin) aumentaron el nmero
de transistores a cientos y luego a miles.
En 1964, IBM introdujo su arquitectura de ordenador
System/360, que fue usada en una serie de ordenadores
que podan ejecutar los mismos programas con velocidades y desempeos diferentes. Esto fue signicativo en
un tiempo en que la mayora de los ordenadores electrnicos eran incompatibles entre s, incluso las hechas
por el mismo fabricante. Para facilitar esta mejora, IBM
utiliz el concepto de microprograma, a menudo llamado microcdigo, ampliamente usado an en las CPU
modernas.[4] La arquitectura System/360 era tan popular que domin el mercado del mainframe durante las siguientes dcadas y dej una herencia que todava an perdura en los ordenadores modernos, como el IBM zSeries.
En el mismo ao de 1964, Digital Equipment Corporation
(DEC) introdujo otro ordenador que sera muy inuyente, dirigido a los mercados cientcos y de investigacin,
el PDP-8. DEC introducira ms adelante la muy popular lnea del PDP-11, que originalmente fue construido
con IC SSI pero eventualmente fue implementado con
componentes LSI cuando se convirtieron en prcticos. En
fuerte contraste con sus precursores hechos con tecnologa SSI y MSI, la primera implementacin LSI del PDP11 contena una CPU integrada nicamente por cuatro
circuitos integrados LSI.[5]
Los ordenadores basados en transistores tenan varias
ventajas frente a sus predecesores. Aparte de facilitar una
creciente abilidad y un menor consumo de energa, los
transistores tambin permitan que CPU operara a velocidades mucho ms altas debido al corto tiempo de conmu-

Microprocesadores

Oblea de un
microprocesador Intel 80486DX2 (tamao: 126,75
mm) en su empaquetado.

CPU
Intel
Core i5 en una placa madre del ordenador porttil Vaio
serie E (a la derecha, debajo del tubo termosifn bifsico.
En la dcada de 1970 los inventos fundamentales de
Federico Faggin (ICs Silicon Gate MOS con puertas autoalineadas junto con su nueva metodologa de diseo
de lgica aleatoria) cambi el diseo e implementacin
de las CPU para siempre. Desde la introduccin del primer microprocesador comercialmente disponible, el Intel
4004, en 1970 y del primer microprocesador ampliamente usado, el Intel 8080, en 1974, esta clase de CPU ha
desplazado casi totalmente el resto de los mtodos de
implementacin de la Unidad Central de procesamiento.
Los fabricantes de mainframes y miniordenadores de ese
tiempo lanzaron programas de desarrollo de IC propietarios para actualizar sus arquitecturas de computadoras

OPERACIN

ms viejas y eventualmente producir microprocesadores car, ejecutar y escribir).


con conjuntos de instrucciones que eran retrocompatibles
con sus hardwares y softwares ms viejos. Combinado
MIPS32 Add Immediate Instruction
con el advenimiento y el eventual vasto xito de la ahora
ubicua computadora personal, el trmino CPU es apli001000 00001 00010 0000000101011110
cado ahora casi exclusivamente[nota 1] a los microprocesaOP Code Addr 1 Addr 2
Immediate value
dores.
Equivalent mnemonic:
addi $r1, $r2 , 350
Las generaciones previas de CPU fueron implementadas
como componentes discretos y numerosos circuitos integrados de pequea escala de integracin en una o ms
tarjetas de circuitos. Por otro lado, los microprocesadores son CPU fabricados con un nmero muy pequeo
de IC; usualmente solo uno. El tamao ms pequeo del
CPU, como resultado de estar implementado en una simple pastilla, signica tiempos de conmutacin ms rpidos debido a factores fsicos como el decrecimiento de
la capacitancia parsita de las puertas. Esto ha permitido
que los microprocesadores sncronos tengan tiempos de
reloj con un rango de decenas de megahercios a varios gigahercios. Adicionalmente, como ha aumentado la capacidad de construir transistores excesivamente pequeos
en un IC, la complejidad y el nmero de transistores en
un simple CPU tambin se ha incrementado dramticamente. Esta tendencia ampliamente observada es descrita
por la ley de Moore, que ha demostrado hasta la fecha,
ser una prediccin bastante exacta del crecimiento de la
complejidad de los CPUs y otros IC.[6]
Mientras que, en los pasados sesenta aos han cambiado
drsticamente, la complejidad, el tamao, la construccin
y la forma general de la CPU, es notable que el diseo
y el funcionamiento bsico no ha cambiado demasiado.
Casi todos los CPU comunes de hoy se pueden describir
con precisin como mquinas de programa almacenado
de von Neumann.[nota 2] A medida que la ya mencionada ley del Moore contina mantenindose verdadera,[6]
se han presentado preocupaciones sobre los lmites de la
tecnologa de transistor del circuito integrado. La miniaturizacin extrema de puertas electrnicas est causando
los efectos de fenmenos que se vuelven mucho ms signicativos, como la electromigracin y el subumbral de
prdida. Estas nuevas preocupaciones estn entre los muchos factores que hacen a investigadores estudiar nuevos
mtodos de computacin como la computacin cuntica,
as como ampliar el uso de paralelismo y otros mtodos
que extienden la utilidad del modelo clsico de von Neumann.

Operacin

La operacin fundamental de la mayora de las CPU es


ejecutar una secuencia de instrucciones almacenadas llamadas programa. El programa es representado por una
serie de nmeros que se mantienen en una cierta clase de
memoria de ordenador. Hay cuatro pasos que casi todos
las CPU de arquitectura de von Neumann usan en su operacin: fetch, decode, execute, y writeback, (leer, decodi-

Diagrama mostrando como es decodicada una instruccin del


MIPS32. (MIPS Technologies 2005)

2.1

Fetch

El primer paso, leer, implica el recuperar una instruccin,


(que es representada por un nmero o una secuencia de
nmeros), de la memoria de programa. La localizacin en
la memoria del programa es determinada por un contador
de programa (PC), que almacena un nmero que identica la direccin de la siguiente instruccin que se debe
buscar. Despus se lee una instruccin, el PC es incrementado por la longitud de la instruccin en trminos
de unidades de memoria de modo que contendr la direccin de la siguiente instruccin en la secuencia.[nota 3]
Frecuentemente, la instruccin a ser leda debe ser recuperada de memoria relativamente lenta, haciendo detener
al CPU mientras espera que la instruccin sea devuelta.
Esta cuestin se trata en gran medida en los procesadores
modernos por los cachs y las arquitecturas pipeline (ver
abajo).

2.2

Decode

En el paso de decodicacin, la instruccin es dividida


en partes que tienen signicado para otras unidades de
la CPU. La manera en que el valor de la instruccin numrica es interpretado est denida por la arquitectura
del conjunto de instrucciones (el ISA) de la CPU.[nota 4]
A menudo, un grupo de nmeros en la instruccin, llamados opcode, indica qu operacin realizar. Las partes
restantes del nmero usualmente proporcionan informacin requerida para esa instruccin, como por ejemplo,
operandos para una operacin de adicin. Tales operandos se pueden dar como un valor constante (llamado valor
inmediato), o como un lugar para localizar un valor, que
segn lo determinado por algn modo de direccin, puede ser un registro o una direccin de memoria. En diseos
ms viejos las unidades del CPU responsables de decodicar la instruccin eran dispositivos de hardware jos.
Sin embargo, en CPUs e ISAs ms abstractos y complicados, es frecuentemente usado un microprograma para
ayudar a traducir instrucciones en varias seales de conguracin para el CPU. Este microprograma es a veces
reescribible de tal manera que puede ser modicado para
cambiar la manera en que el CPU decodica instrucciones incluso despus de que haya sido fabricado.

2.3

Execute

Instruction
Fetcher
Instruction
Decoder
Memory
Interface

directamente producir datos de resultado. Estas son llamadas generalmente saltos (jumps) y facilitan comportamientos como bucles, la ejecucin condicional de programas (con el uso de saltos condicionales), y funciones
en programas.[nota 5] Muchas instrucciones tambin cambiarn el estado de dgitos en un registro de banderas.
Estas banderas pueden ser usadas para inuenciar cmo
se comporta un programa, puesto que a menudo indican
el resultado de varias operaciones. Por ejemplo, un tipo
de instruccin de comparacin considera dos valores y
ja un nmero, en el registro de banderas, de acuerdo a
cul es el mayor. Entonces, esta bandera puede ser usada
por una posterior instruccin de salto para determinar el
ujo de programa.

to
memory

Despus de la ejecucin de la instruccin y la escritura


de los datos resultantes, el proceso entero se repite con
Registers
el siguiente ciclo de instruccin, normalmente leyendo
la siguiente instruccin en secuencia debido al valor incrementado en el contador de programa. Si la instruccin completada era un salto, el contador de programa
ser modicado para contener la direccin de la instruccin a la cual se salt, y la ejecucin del programa conALU
tina normalmente. En CPUs ms complejos que el descrito aqu, mltiples instrucciones pueden ser ledas, decodicadas, y ejecutadas simultneamente. Esta seccin
describe lo que es referido generalmente como el entubado RISC clsico (Classic RISC pipeline), que de
hecho es bastante comn entre los CPU simples usados
Diagrama de bloques de un CPU simple.
en muchos dispositivos electrnicos, a menudo llamados
[nota 6]
Despus de los pasos de lectura y decodicacin, es lle- microcontroladores.
vado a cabo el paso de la ejecucin de la instruccin.
Durante este paso, varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operacin 3 Diseo e implementacin
deseada. Si, por ejemplo, una operacin de adicin fue solicitada, una unidad aritmtico lgica (ALU) ser conec- 3.1 Rango de enteros
tada a un conjunto de entradas y un conjunto de salidas.
Las entradas proporcionan los nmeros a ser sumados, y La manera en que un CPU representa los nmeros es una
las salidas contendrn la suma nal. La ALU contiene la opcin de diseo que afecta las ms bsicas formas en que
circuitera para realizar operaciones simples de aritmti- el dispositivo funciona. Algunas de las primeras calculaca y lgica en las entradas, como adicin y operaciones de doras digitales usaron, para representar nmeros internabits (bitwise). Si la operacin de adicin produce un re- mente, un modelo elctrico del sistema de numeracin
sultado demasiado grande para poder ser manejado por decimal comn (base diez). Algunas otras computadoras
el CPU, tambin puede ser ajustada una bandera (ag) han usado sistemas de numeracin ms exticos como el
de desbordamiento aritmtico localizada en un registro ternario (base tres). Casi todos los CPU modernos reprede banderas (ver abajo la seccin sobre rango de nme- sentan los nmeros en forma binaria, en donde cada dros enteros).
gito es representado por una cierta cantidad fsica de dos
valores, como un voltaje alto o bajo.[nota 7]

2.4

Writeback

El paso nal, la escritura, simplemente escribe los resultados del paso de ejecucin a una cierta forma de memoria. Muy a menudo, los resultados son escritos a algn
registro interno del CPU para acceso rpido por subsecuentes instrucciones. En otros casos los resultados pueden ser escritos a una memoria principal ms lenta pero ms barata y ms grande. Algunos tipos de instrucciones manipulan el contador de programa en lugar de

Con la representacin numrica estn relacionados el tamao y la precisin de los nmeros que un CPU puede
representar. En el caso de un CPU binario, un bit se reere a una posicin signicativa en los nmeros con que
trabaja un CPU. El nmero de bits (o de posiciones numricas, o dgitos) que un CPU usa para representar los
nmeros, a menudo se llama tamao de la palabra, ancho de bits, ancho de ruta de datos, o precisin del
nmero entero cuando se ocupa estrictamente de nmeros enteros (en oposicin a nmeros de coma otante).

DISEO E IMPLEMENTACIN

de propsito general donde se requiere un razonable equilibrio entre la capacidad de nmeros enteros y de coma
otante.

3.2 Frecuencia de reloj


Microprocesador MOS 6502 en un dual in-line package (encapasulado en doble lnea), un diseo extremadamente popular de
8 bits.

La mayora de los CPU, y de hecho, la mayora de


los dispositivos de lgica secuencial, son de naturaleza
sncrona.[nota 9] Es decir, estn diseados y operan en funcin de una seal de sincronizacin. Esta seal, conocida
como seal de reloj, usualmente toma la forma de una
onda cuadrada peridica. Calculando el tiempo mximo
en que las seales elctricas pueden moverse en las varias
bifurcaciones de los muchos circuitos de un CPU, los diseadores pueden seleccionar un perodo apropiado para
la seal del reloj.

Este nmero diere entre las arquitecturas, y a menudo


dentro de diferentes unidades del mismo CPU. Por ejemplo, un CPU de 8 bits maneja un rango de nmeros que
pueden ser representados por ocho dgitos binarios, cada
dgito teniendo dos valores posibles, y en combinacin los
8 bits teniendo 28 o 256 nmeros discretos. En efecto, el
tamao del nmero entero ja un lmite de hardware en Este perodo debe ser ms largo que la cantidad de tiempo
el rango de nmeros enteros que el software corre y que que toma a una seal moverse, o propagarse en el peor de
los casos. Al jar el perodo del reloj a un valor bastante
el CPU puede usar directamente.[nota 8]
El rango del nmero entero tambin puede afectar el n- mayor sobre el retardo de la propagacin del peor caso,
mero de posiciones en memoria que el CPU puede direc- es posible disear todo el CPU y la manera que mueve
cionar (localizar). Por ejemplo, si un CPU binario utiliza los datos alrededor de los bordes de la subida y baja32 bits para representar una direccin de memoria, y ca- da de la seal del reloj. Esto tiene la ventaja de simplida direccin de memoria representa a un octeto (8 bits), car el CPU signicativamente, tanto en una perspectiva
la cantidad mxima de memoria que el CPU puede di- de diseo, como en una perspectiva de cantidad de comreccionar es 232 octetos, o 4 GB. Esta es una vista muy ponentes. Sin embargo, esto tambin tiene la desventaja
simple del espacio de direccin del CPU, y muchos di- que todo el CPU debe esperar por sus elementos ms lenseos modernos usan mtodos de direccin mucho ms tos, an cuando algunas unidades de la misma son mucho
complejos como paginacin para localizar ms memoria ms rpidas. Esta limitacin ha sido compensada en gran
que su rango entero permitira con un espacio de direc- parte por varios mtodos de aumentar el paralelismo del
CPU (ver abajo).
cin plano.
Niveles ms altos del rango de nmeros enteros requieren ms estructuras para manejar los dgitos adicionales,
y por lo tanto, ms complejidad, tamao, uso de energa,
y generalmente costo. Por ello, no es del todo infrecuente, ver microcontroladores de 4 y 8 bits usados en aplicaciones modernas, aun cuando estn disponibles CPU con
un rango mucho ms alto (de 16, 32, 64, e incluso 128
bits). Los microcontroladores ms simples son generalmente ms baratos, usan menos energa, y por lo tanto
disipan menos calor. Todo esto pueden ser consideraciones de diseo importantes para los dispositivos electrnicos. Sin embargo, en aplicaciones del extremo alto, los
benecios producidos por el rango adicional, (ms a menudo el espacio de direccin adicional), son ms signicativos y con frecuencia afectan las opciones del diseo.
Para ganar algunas de las ventajas proporcionadas por las
longitudes de bits tanto ms bajas, como ms altas, muchas CPUs estn diseadas con anchos de bit diferentes
para diferentes unidades del dispositivo. Por ejemplo, el
IBM System/370 us un CPU que fue sobre todo de 32
bits, pero us precisin de 128 bits dentro de sus unidades
de coma otante para facilitar mayor exactitud y rango de
nmeros de coma otante.[4] Muchos diseos posteriores
de CPU usan una mezcla de ancho de bits similar, especialmente cuando el procesador est diseado para usos

Sin embargo, las mejoras arquitectnicas por s solas, no


solucionan todas las desventajas de CPUs globalmente
sncronas. Por ejemplo, una seal de reloj est sujeta a los
retardos de cualquier otra seal elctrica. Velocidades de
reloj ms altas en CPUs cada vez ms complejas hacen
ms difcil de mantener la seal del reloj en fase (sincronizada) a travs de toda la unidad. Esto ha conducido que
muchos CPU modernos requieran que se les proporcione
mltiples seales de reloj idnticas, para evitar retardar
una sola seal lo suciente como para hacer al CPU funcionar incorrectamente. Otro importante problema cuando la velocidad del reloj aumenta dramticamente, es la
cantidad de calor que es disipado por el CPU. La seal
del reloj cambia constantemente, provocando la conmutacin de muchos componentes (cambio de estado) sin
importar si estn siendo usados en ese momento. En general, un componente que est cambiando de estado, usa
ms energa que un elemento en un estado esttico. Por
lo tanto, a medida que la velocidad del reloj aumenta, as
lo hace tambin la disipacin de calor, causando que el
CPU requiera soluciones de enfriamiento ms efectivas.
Un mtodo de tratar la conmutacin de componentes innecesarios se llama el clock gating, que implica apagar la
seal del reloj a los componentes innecesarios, efectivamente desactivndolos. Sin embargo, esto es frecuente-

3.3

Paralelismo

mente considerado como difcil de implementar y por lo


tanto no ve uso comn fuera de diseos de muy baja potencia. Un notable diseo de CPU tardo que utiliza una
amplia compuerta del reloj para reducir los requisitos de
potencia de la consola de videojuegos es la de la Xbox
360 basada en la PowerPC de IBM.[7] Otro mtodo de
tratar algunos de los problemas de una seal global de reloj es la completa remocin de la misma. Mientras que
quitar la seal global del reloj hace, de muchas maneras,
considerablemente ms complejo el proceso del diseo,
en comparacin con diseos sncronos similares, los diseos asincrnicos (o sin reloj) tienen marcadas ventajas
en el consumo de energa y la disipacin de calor. Aunque se trate de algo infrecuente, las CPUs completas se
han construido sin utilizar una seal global de reloj. Dos
notables ejemplos de esto son el AMULET, que implementa la arquitectura del ARM, y el MiniMIPS, compatible con el MIPS R3000. En lugar de remover totalmente la seal del reloj, algunos diseos de CPU permiten que ciertas unidades del dispositivo sean asincrnicas,
como por ejemplo, usando ALU en conjuncin con pipelining superescalar para alcanzar algunas ganancias en
el desempeo aritmtico. Mientras que no est completamente claro si los diseos totalmente asincrnicos pueden
desempearse a un nivel comparable o mejor que sus contrapartes sncronas, es evidente que por lo menos sobresalen en las operaciones matemticas ms simples. Esto,
combinado con sus excelentes caractersticas de consumo
de energa y disipacin de calor, los hace muy adecuados
para sistemas embebidos.[8]

3.3

7
solamente una instruccin a la vez, solo puede, posiblemente, alcanzar el desempeo escalar (una instruccin
por ciclo de reloj). Sin embargo, el desempeo casi siempre es subescalar (menos de una instruccin por ciclo).
Las tentativas de alcanzar un desempeo escalar y mejor,
han resultado en una variedad de metodologas de diseo
que hacen comportarse al CPU menos linealmente y ms
en paralelo. Cuando se reere al paralelismo en los CPU,
generalmente son usados dos trminos para clasicar estas tcnicas de diseo.
El paralelismo a nivel de instruccin, en ingls instruction level parallelism (ILP), busca aumentar la
tasa en la cual las instrucciones son ejecutadas dentro de un CPU, es decir, aumentar la utilizacin de
los recursos de ejecucin en la pastilla.
El paralelismo a nivel de hilo de ejecucin, en ingls thread level parallelism (TLP), que se propone
incrementar el nmero de hilos (efectivamente programas individuales) que un CPU pueda ejecutar simultneamente.
Cada metodologa se diferencia tanto en las maneras en
las que estn implementadas, como en la efectividad relativa que producen en el aumento del desempeo de la
CPU para una aplicacin.[nota 10]
3.3.1 ILP: Segmentacin y arquitectura superescalar

Paralelismo

Modelo de un CPU subescalar. Note que toma quince ciclos para


terminar tres instrucciones.

Tubera bsica de cinco etapas. En el mejor de los casos, esta


tubera puede sostener un ratio de completado de una instruccin
por ciclo.

La descripcin de la operacin bsica de un CPU ofrecida en la seccin anterior describe la forma ms simple
que puede tomar un CPU. Este tipo de CPU, usualmente Uno de los mtodos ms simples para lograr incremenreferido como subescalar, opera sobre y ejecuta una sola tar el paralelismo es comenzar los primeros pasos de leer
y decodicar la instruccin antes de que la instruccin
instruccin con una o dos piezas de datos a la vez.
Este proceso da lugar a una inecacia inherente en CPU anterior haya terminado de ejecutarse. Esta es la forma
subescalares. Puesto que solamente una instruccin es ms simple de una tcnica conocida como segmentacin
ejecutada a la vez, todo el CPU debe esperar que esa ins- (instruction pipelining en ingls), y es utilizada en casi totruccin se complete antes de proceder a la siguiente ins- das los CPU de propsito general modernos. Al dividir
truccin. Como resultado, la CPU subescalar queda pa- la ruta de ejecucin en etapas discretas, la tubera permiralizado en instrucciones que toman ms de un ciclo de te que ms de una instruccin sea ejecutada en cualquier
reloj para completar su ejecucin. Incluso la adicin de tiempo. Esta separacin puede ser comparada a una lnea
una segunda unidad de ejecucin (ver abajo) no mejora de ensamblaje, en la cual una instruccin es hecha ms
mucho el desempeo. En lugar de un camino quedando completa en cada etapa hasta que sale de la tubera de
congelado, ahora dos caminos se paralizan y aumenta el ejecucin y es retirada.
nmero de transistores no usados. Este diseo, en donde Sin embargo, la tubera introduce la posibilidad de una
los recursos de ejecucin de la CPU pueden operar con situacin donde es necesario terminar el resultado de la

8
operacin anterior para completar la operacin siguiente; una condicin llamada a menudo como conicto de
dependencia de datos. Para hacer frente a esto, debe ser
tomado un cuidado adicional para comprobar estas clases de condiciones, y si esto ocurre, se debe retrasar una
porcin de la tubera de instruccin. Naturalmente, lograr esto requiere circuitera adicional, los procesadores
entubados son ms complejos que los subescalares, pero no mucho. Un procesador entubado puede llegar a ser
casi completamente escalar, solamente inhibido por las
abruptas paradas de la tubera (una instruccin durando
ms de un ciclo de reloj en una etapa).

Segmentacin superescalar simple. Al leer y despachar dos instrucciones a la vez, un mximo de dos instrucciones por ciclo
pueden ser completadas.

Una mejora adicional sobre la idea del entubado de instruccin (instruction pipelining) condujo al desarrollo de
un mtodo que disminuye incluso ms el tiempo ocioso
de los componentes del CPU. Diseos que se dice que son
superescalares incluyen una larga tubera de instruccin y
mltiples unidades de ejecucin idnticas.[9] En una tubera superescalar, mltiples instrucciones son ledas y pasadas a un despachador, que decide si las instrucciones se
pueden o no ejecutar en paralelo (simultneamente). De
ser as, son despachadas a las unidades de ejecucin disponibles, dando por resultado la capacidad para que varias instrucciones sean ejecutadas simultneamente. En
general, cuanto ms instrucciones un CPU superescalar
es capaz de despachar simultneamente a las unidades de
ejecucin en espera, ms instrucciones sern completadas
en un ciclo dado.
La mayor parte de la dicultad en el diseo de una arquitectura superescalar de CPU descansa en crear un despachador ecaz. El despachador necesita poder determinar
rpida y correctamente si las instrucciones pueden ejecutarse en paralelo, tan bien como despacharlas de una
manera que mantenga ocupadas tantas unidades de ejecucin como sea posible. Esto requiere que la tubera de
instruccin sea llenada tan a menudo como sea posible
y se incrementa la necesidad, en las arquitecturas superescalares, de cantidades signicativas de cach de CPU.
Esto tambin crea tcnicas para evitar peligros como la
prediccin de bifurcacin, ejecucin especulativa, y la
ejecucin fuera de orden, cruciales para mantener altos
niveles de desempeo. Tratando de predecir qu rama (o

DISEO E IMPLEMENTACIN

trayectoria) tomar una instruccin condicional, la CPU


puede minimizar el nmero de veces que todo el canal
debe esperar hasta que se complete una instruccin condicional. Frecuentemente, la ejecucin especulativa proporciona aumentos modestos del desempeo al ejecutar
porciones de cdigo que no puede ser necesario despus
de completarse una operacin condicional. Fuera de la orden de ejecucin cambia de algn modo el orden en que
se ejecutan las instrucciones para reducir retardos debido a las dependencias de datos. Tambin en el caso de
instrucciones individuales de datos mltiples los procesadores modernos, en caso de que se hayan procesado una gran cantidad de datos del mismo tipo, pueden
desactivar partes de la tubera de manera que cuando se
ejecuta una sola sentencia muchas veces, la CPU salta la
captacin y decodica fases y por lo tanto aumenta considerablemente el rendimiento en ciertas ocasiones, sobre
todo en los motores de programas altamente montonos
como el software de creacin de video y procesamiento
de fotografas.
En el caso donde una porcin de la CPU es superescalar
y una parte no lo es, la parte que no es superescalar sufre
en el desempeo debido a las paradas de horario. El Intel
Pentium original (P5) tena dos ALUs superescalares que
podan aceptar, cada una, una instruccin por ciclo de reloj, pero su FPU no poda aceptar una instruccin por
ciclo de reloj. As el P5 era superescalar en la parte de
nmeros enteros pero no era superescalar de nmeros de
coma (o punto [decimal]) otante. El sucesor a la arquitectura del Pentium de Intel, el P6, agreg capacidades
superescalares a sus funciones de coma otante, y por lo
tanto produjo un signicativo aumento en el desempeo
de este tipo de instrucciones.
Tanto el diseo superescalar como el entubado simple aumentan el ILP de una CPU al permitir a un solo procesador completar la ejecucin de instrucciones en ratios
que sobrepasan una instruccin por ciclo (IPC).[nota 11] La
mayora de los modernos diseos de CPU son por lo menos algo superescalares, y en la ltima dcada, casi todos
los diseos de CPU de propsito general son superescalares. En los ltimos aos algo del nfasis en el diseo de
computadores de alto ILP se ha movido del hardware del
CPU hacia su interfaz de software, o ISA. La estrategia
very long instruction word o VLIW, causa a algn ILP a
ser implcito directamente por el software, reduciendo la
cantidad de trabajo que el CPU debe realizar para darle
un empuje signicativo al ILP y por lo tanto reducir la
complejidad del diseo.

3.3.2 Paralelismo a nivel de hilos


Otra estrategia para lograr el rendimiento es ejecutar varios programas o hilos en paralelo. Esta rea de investigacin se conoce como computacin paralela. En la taxonoma de Flynn, esta estrategia se conoce como mltiples
instrucciones de varios datos o MIMD.

9
Una tecnologa utilizada para este propsito fue el
multiprocesamiento (MP). El puntapi inicial de esta tecnologa se conoce como multiprocesamiento simtrico
(SMP), donde un pequeo nmero de CPU comparten
una visin coherente de su sistema de memoria. En este esquema, cada CPU tiene un hardware adicional para mantener una visin constantemente actualizada de la
memoria. Para evitar visitas rancias de la memoria, las
CPU pueden cooperar en el mismo programa y los programas pueden migrar desde una CPU a otra. Para aumentar el nmero de CPUs que cooperan ms all de unas
pocas, se introdujeron en 1990, los esquemas tales como
el non-uniform memory Access (acceso no uniforme a
memoria) (NUMA) y los protocolos de coherencia basados en directorios. Los sistemas SMP se limitan a un
pequeo nmero de CPU mientras que los sistemas NUMA se han construido con miles de procesadores. Inicialmente, el multiprocesamiento se construy usando mltiples CPUs discretas y tableros para implementar la interconexin entre los procesadores. Cuando los procesadores y su interconexin hayan sido implementadas en un
nico chip de silicio, la tecnologa se conoce como un
procesador multincleo.
Posteriormente, se reconoci que exista un paralelismo
muy estrecho con un nico programa. Un nico programa podra tener varios hilos (o funciones) que podran
ser ejecutadas por separado o en paralelo. Algunos de los
primeros ejemplos de esta tecnologa implementaba procesamiento de entrada/salida tales como el acceso directo a memoria como un hilo separado del hilo computado.
En la dcada de 1970, se introdujo un enfoque ms general a esta tecnologa, cuando se disearon sistemas para
ejecutar mltiples hilos de computacin en paralelo. Esta
tecnologa se conoce como multihilo (MT).
Este enfoque se considera ms rentable que la del multiprocesamiento, ya que solo se replica un pequeo nmero
de componentes dentro de una CPU para soportar MT en
oposicin a la totalidad de la CPU en el caso de MP. En
MT, las unidades de ejecucin y el sistema de memoria
incluyendo los cachs son compartidos entre varios hilos.
La desventaja de MT es que el soporte de hardware para
multihilo es ms visible para el software que la de MP y
por lo tanto el software supervisor como el de los sistemas operativos tienen que someterse a los cambios ms
grandes para apoyar MT. Un tipo de MT que se implement es conocido como bloque multihilo, donde se ejecuta un hilo hasta que se paralice esperando que regresen
los datos desde la memoria externa. En este esquema, la
CPU tendra luego que cambiar rpidamente a otro hilo
que est listo para funcionar, el interruptor muchas veces
realiza un ciclo de reloj de la CPU, como la tecnologa
UltraSPARC. Otro tipo de MT se denomina multihilo simultneo, en donde las instrucciones de mltiples hilos
se ejecutan en paralelo dentro de un ciclo de reloj de la
CPU.

3.3.3 Paralelismo de datos


Un menos comn pero cada vez ms importante paradigma de CPU (y de hecho, de computacin en general) trata
con vectores. Los procesadores de los que se ha hablado anteriormente son todos referidos como cierto tipo de
dispositivo escalar.[nota 12] Como implica su nombre, los
procesadores vectoriales se ocupan de mltiples piezas de
datos en el contexto de una instruccin, esto contrasta con
los procesadores escalares, que tratan una pieza de dato
por cada instruccin. Estos dos esquemas de ocuparse de
los datos son generalmente referidos respectivamente como SISD (single instruction, single data) y SIMD (single
instruction, multiple data). La gran utilidad en crear CPU
que se ocupen de vectores de datos radica en la optimizacin de tareas que tienden a requerir la misma operacin, por ejemplo, una suma, o un producto escalar, a ser
realizado en un gran conjunto de datos. Algunos ejemplos clsicos de este tipo de tareas son las aplicaciones
multimedia (imgenes, vdeo, y sonido), as como muchos tipos de tareas cientcas y de ingeniera. Mientras
que una CPU escalar debe completar todo el proceso de
leer, decodicar, y ejecutar cada instruccin y valor en un
conjunto de datos, una CPU vectorial puede realizar una
simple operacin en un comparativamente grande conjunto de datos con una sola instruccin. Por supuesto,
esto es solamente posible cuando la aplicacin tiende a
requerir muchos pasos que apliquen una operacin a un
conjunto grande de datos.
La mayora de las primeras CPU vectoriales, como el
Cray-1, se asociaron casi exclusivamente a aplicaciones
de investigacin cientca y criptografa. Sin embargo,
a medida que la multimedia se desplaz en gran parte a
medios digitales, ha llegado a ser signicativa la necesidad de una cierta forma de SIMD en CPUs de propsito general. Poco despus de que comenzara a ser comn
incluir unidades de coma otante en procesadores de uso
general, tambin comenzaron a aparecer especicaciones
e implementaciones de unidades de ejecucin SIMD para
las CPU de uso general. Algunas de estas primeras especicaciones SIMD, como el MMX de Intel, fueron solamente para nmeros enteros. Esto demostr ser un impedimento signicativo para algunos desarrolladores de
software, ya que muchas de las aplicaciones que se beneciaban del SIMD trataban sobre todo con nmeros de
coma otante. Progresivamente, estos primeros diseos
fueron renados y rehechos en alguna de las comunes,
modernas especicaciones SIMD, que generalmente estn asociadas a un ISA. Algunos ejemplos modernos notables son el SSE de Intel y el AltiVec relacionado con el
PowerPC (tambin conocido como VMX).[nota 13]

4 Desempeo
El desempeo (performance) o la velocidad de un procesador depende de, entre muchos otros factores, la velo-

10
cidad del reloj (generalmente dada en mltiplos de hertz)
y las instrucciones por ciclo de reloj (IPC), que juntos
son los factores para las instrucciones por segundo (IPS)
que el CPU puede rendir.[10] Muchos reportes de valores IPS han representado tasas de ejecucin pico en
secuencias de instrucciones articiales con pocas ramas,
mientras que las cargas de trabajo realistas consisten en
una combinacin de instrucciones y de aplicaciones, algunas de las cuales requieren ms tiempo para ejecutar que
otras. El rendimiento de la jerarqua de memoria tambin
afecta en gran medida al rendimiento del procesador, un
tema muy poco tenido en cuenta en los clculos de MIPS.
Debido a estos problemas, para este n, se han desarrollado varios exmenes estandarizados, tales como SPECint
muchas veces llamados "puntos de referencia" - para tratar de medir el rendimiento real efectivo en aplicaciones
de uso cotidiano.
El desempeo de procesamiento de las computadoras se
incrementa utilizando procesadores multincleo, que en
esencia es conectar dos o ms procesadores individuales
(llamados ncleos en este sentido) en un solo circuito integrado.[11] Idealmente, un procesador de doble ncleo
sera casi dos veces tan potente como un procesador de
ncleo nico. En la prctica, la ganancia de desempeo
es mucho menor, solo alrededor del 50%, [cita requerida] debido a la implementacin de algoritmos imperfectos de
software.[12] El aumento del nmero de ncleos en un
procesador (es decir, dual-core, quad-core, etc) aumenta la carga de trabajo que se puede manejar. Esto signica que el procesador ahora puede manejar numerosos
eventos asncronos, interrupciones, etc que pueden tomar
un peaje en la CPU (Central Processing Unit) cuando
se abruma. Estos ncleos pueden considerarse como diferentes plantas en una planta de procesamiento, con el
manejo de cada piso una tarea diferente. En ocasiones,
estos ncleos se manejan las mismas tareas que los ncleos adyacentes a ellos si un solo ncleo no es suciente
para manejar la informacin.
Debido a las capacidades especcas de las CPU modernas, como Hyper-Threading y Uncore, que implican el
intercambio de recursos reales de la CPU mientras que
el objetivo de una mayor utilizacin, supervisar los niveles de rendimiento y la utilizacin del hardware se fue
convirtiendo gradualmente en una tarea ms compleja.
Como respuesta, algunas CPUs implementan lgica de
hardware adicional que controla la utilizacin real de las
diversas partes de una CPU y proporciona varios contadores accesibles a software; un ejemplo es la tecnologa
Performance Counter Monitor (Monitor de contador de
rendimiento) de Intel.[13]

6 NOTAS

5 Vase tambin
6 Notas
[1] Integrated circuits are now used to implement all CPUs,
except for a few machines designed to withstand large
electromagnetic pulses, say from a nuclear weapon.
[2] The so-called 'von Neumann' memo expounded the idea
of stored programs, stored say, on punch cards, paper tape,
or magnetic tape
[3] Since the program counter counts memory addresses and
not instructions, it is incremented by the number of memory units that the instruction word contains. In the case
of simple xed-length instruction word ISAs, this is always the same number. For example, a xed-length 32bit instruction word ISA that uses 8-bit memory words
would always increment the PC by 4 (except in the case
of jumps). ISAs that use variable length instruction words
increment the PC by the number of memory words corresponding to the last instructions length.
[4] Because the instruction set architecture of a CPU is fundamental to its interface and usage, it is often used as a
classication of the type of CPU. For example, a PowerPC CPU uses some variant of the PowerPC ISA. A
system can execute a dierent ISA by running an emulator.
[5] Some early computers like the Harvard Mark I did not
support any kind of jump instruction, eectively limiting the complexity of the programs they could run. It is
largely for this reason that these computers are often not
considered to contain a CPU proper, despite their close
similarity as stored program computers.
[6] This description is, in fact, a simplied view even of the
Classic RISC pipeline. It largely ignores the important role of CPU cache, and therefore the access stage of the
pipeline. See the respective articles for more details.
[7] The physical concept of voltage is an analog one by its
nature, practically having an innite range of possible values. For the purpose of physical representation of binary
numbers, set ranges of voltages are dened as one or zero. These ranges are usually inuenced by the operational
parameters of the switching elements used to create the
CPU, such as a transistor's threshold level.
[8] While a CPUs integer size sets a limit on integer ranges, this can (and often is) overcome using a combination
of software and hardware techniques. By using additional memory, software can represent integers many magnitudes larger than the CPU can. Sometimes the CPUs
ISA will even facilitate operations on integers larger that
it can natively represent by providing instructions to make large integer arithmetic relatively quick. While this
method of dealing with large integers is somewhat slower than utilizing a CPU with higher integer size, it is a
reasonable trade-o in cases where natively supporting the
full integer range needed would be cost-prohibitive. See
Arbitrary-precision arithmetic for more details on purely
software-supported arbitrary-sized integers.

11

[9] In fact, all synchronous CPU use a combination of


sequential logic and combinatorial logic. (See boolean logic)

[7] Brown, Jeery (2005). Application-customized CPU


design (en ingls). IBM developerWorks. Consultado el
17 de diciembre de 2005.

[10] Neither ILP nor TLP is inherently superior over the other; they are simply dierent means by which to increase
CPU parallelism. As such, they both have advantages and
disadvantages, which are often determined by the type of
software that the processor is intended to run. High-TLP
CPUs are often used in applications that lend themselves
well to being split up into numerous smaller applications,
so-called "embarrassingly parallel problems. Frequently,
a computational problem that can be solved quickly with
high TLP design strategies like SMP take signicantly more time on high ILP devices like superscalar CPUs, and
vice versa.

[8] Garside, J. D., Furber, S. B., & Chung, S-H (1999).


AMULET3 Revealed (en ingls). University of Manchester Computer Science Department. Archivado desde el
original el 28 de noviembre de 2015.

[11] Best-case scenario (or peak) IPC rates in very superscalar


architectures are dicult to maintain since it is impossible
to keep the instruction pipeline lled all the time. Therefore, in highly superscalar CPU, average sustained IPC is
often discussed rather than peak IPC.
[12] Earlier the term scalar was used to compare most the
IPC (instructions per cycle) count aorded by various ILP
methods. Here the term is used in the strictly mathematical sense to contrast with vectors. See scalar (mathematics) and vector (spatial).
[13] Although SSE/SSE2/SSE3 have superseded MMX in Intels general purpose CPU, later IA-32 designs still support MMX. This is usually accomplished by providing
most of the MMX functionality with the same hardware that supports the much more expansive SSE instruction
sets.

Referencias

[1] Weik, Martin H. (1961). A Third Survey of Domestic Electronic Digital Computing Systems (en ingls). Ballistic Research Laboratories.
[2] First Draft of a Report on the EDVAC (en ingls). Moore
School of Electrical Engineering, Universidad de Pennsylvania. 1945.
[3] Enticknap, Nicholas (Verano de 1998), Computings
Golden Jubilee [Jubileo de Oro de la computacin], Resurrection (en ingls) (The Computer Conservation Society) 20, ISSN 0958-7403, consultado el 19 de abril de
2008
[4] Amdahl, G. M., Blaauw, G. A., & Brooks, F. P. Jr. (1964).
Architecture of the IBM System/360 (en ingls). IBM Research. Archivado desde el original el 28 de noviembre de
2015.
[5] Digital Equipment Corporation (noviembre de 1975).
LSI-11 Module Descriptions. LSI-11, PDP-11/03 users
manual (en ingls) (2da edicin). Maynard, Massachusetts: Digital Equipment Corporation. pp. 4-3.
[6] Excerpts from A Conversation with Gordon Moore: Moores Law (PDF) (en ingls). Intel. 2005. Consultado el 25
de julio de 2012.

[9] Huynh, Jack (2003). The AMD Athlon XP Processor


with 512KB L2 Cache (en ingls). University of Illinois
Urbana-Champaign. pp. 6-11. Consultado el 6 de octubre de 2007.
[10] CPU Frequency. CPU World Glossary (en ingls). CPU
World. 25 de marzo de 2008. Consultado el 1 de enero de
2010.
[11] What is (a) multi-core processor?. Data Center Denitions (en ingls). SearchDataCenter.com. 27 de marzo de
2007. Consultado el 1 de enero de 2010.
[12] Quad Core Vs. Dual Core. http://www.buzzle.com/.
Consultado el 26 de noviembre de 2014.
[13] Thomas Willhalm; Roman Dementiev; Patrick Fay (18 de
diciembre de 2014). Intel Performance Counter Monitor A better way to measure CPU utilization (en ingls).
Consultado el 17 de febrero de 2015.

8 Bibliografa
Amdahl, G. M., Blaauw, G. A., & Brooks, F. P.
Jr. (1964). Architecture of the IBM System/360. IBM
Research. Archivado desde el original el 28 de noviembre de 2015.
Brown, Jeery (2005). Application-customized
CPU design. IBM developerWorks. Consultado el
17 de diciembre de 2005.
Digital Equipment Corporation (noviembre de
1975). LSI-11 Module Descriptions. LSI-11,
PDP-11/03 users manual (2da edicin edicin).
Maynard, Massachusetts: Digital Equipment Corporation. pp. 4-3.
Garside, J. D., Furber, S. B., & Chung, S-H
(1999). AMULET3 Revealed. University of Manchester Computer Science Department. Archivado
desde el original el 28 de noviembre de 2015.
Hennessy, John A.; Goldberg, David (1996). Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers. ISBN 1-55860-329-8.
MIPS Technologies, Inc. (2005). MIPS32 Architecture For Programmers Volume II: The MIPS32
Instruction Set. MIPS Technologies, Inc.
Smotherman, Mark (2005). History of Multithreading. Consultado el 19 de diciembre de 2005.

Introduccin a los
Sistemas de Entrada/Salida

Arquitectura de Sistemas Paralelos (1)

Introduccin a los sistemas de entrada/salida


ndice y bibliografa

Introduccin
Mdulos de Entrada/Salida
Mapa de Entrada/Salida: comn y separado
Mtodos de Entrada/Salida
E/S programada
E/S por interrupciones
Acceso directo a memoria
Ejemplo de dispositivo de E/S
Operaciones de E/S desde el SO
Bibliografa
Organizacin y Arquitectura de Computadores, William Stalling
Linux Device Drivers, Alessandro Rubini and Jonathan Corbet, OReilly
Arquitectura de Sistemas Paralelos (2)

Introduccin a los sistemas de entrada/salida


Introduccin (I)
Un computador no puede estar formado slo por la CPU y la memoria.
Para darle alguna utilidad debe de poder comunicarse con el mundo
exterior. Esto se realiza a travs del subsistema de entrada/salida
(mdulos de E/S)
La misin principal del subsistema de E/S es la adaptacin de los
dispositivos externos para su conexin al bus del sistema. Por qu no
pueden conectarse directamente?
A menudo, la velocidad de transmisin de datos de los perifricos es
mucho menor que la de la memoria y la CPU (es necesario amortiguar esa
diferencia de velocidades)
Debido a la gran variedad de perifricos existentes no es posible incorporar
toda la lgica necesaria para controlar tal diversidad de dispositivos dentro
del procesador
Los formatos y tamaos de datos de los perifricos suelen ser diferentes a
los utilizados por el computador a los que se conectan

Arquitectura de Sistemas Paralelos (3)

Entrada/Salida
Introduccin (II)
Existen dos esquemas diferentes para la
implementacin del subsistema de E/S:
a) Disearlo a medida utilizando
componentes bsicos
b) Utilizar dispositivos genricos de E/S y
programarlos convenientemente

(b)

(a)
Arquitectura de Sistemas Paralelos (4)

Mdulos de E/S
Definiciones
Dispositivo externo: elementos que permiten la transferencia de informacin
entre la CPU y el mundo exterior. Funcionan a modo de interface
transformando la informacin asncrona y analgica del mundo exterior a la
informacin sncrona y codificada del computador
Mdulo de E/S: elementos que permiten la conexin de un dispositivo externo
al bus del sistema. Los trminos controlador, procesador de E/S y mdulo
de E/S son equivalentes desde el punto de vista funcional:
Los controladores son mdulos de E/S muy sencillos que tienen el
hardware necesario para que funcione el dispositivo externo
Los procesadores de E/S son autnticos procesadores con un juego
especializado de instrucciones orientado a operaciones de E/S, que son
programados por la CPU, permitiendo un funcionamiento autnomo
Un dispositivo externo conectado a un mdulo de E/S se denomina dispositivo
perifrico o simplemente perifrico
Arquitectura de Sistemas Paralelos (5)

Mdulos de E/S
Diagrama de bloques de un dispositivo externo

Arquitectura de Sistemas Paralelos (6)

Mdulos de E/S
Diagrama de bloques de un mdulo de E/S

Arquitectura de Sistemas Paralelos (7)

Mdulos de E/S
Funciones (I)
Las funciones de un mdulo de E/S son:
Control y temporizacin
Comunicacin con el procesador
Comunicacin con los dispositivos
Almacenamiento temporal
Deteccin de errores

Arquitectura de Sistemas Paralelos (8)

Mdulos de E/S
Funciones (II)
Control y temporizacin
Son necesarios para coordinar el trfico entre dispositivos internos y externos
Por ejemplo, el control de la transferencia de datos desde un dispositivo
externo al procesador podra implicar la siguiente secuencia de pasos:
1. El procesador pregunta por el estado del dispositivo
2. El mdulo de E/S devuelve el estado del dispositivo
3. Si el dispositivo est listo, el procesador solicita la transferencia al mdulo de E/S
4. El mdulo de E/S obtiene los datos
5. Los datos se transfieren del mdulo de E/S al procesador

La comunicacin con el procesador implica:

Decodificacin de rdenes
Datos
Informacin de estado
Reconocimiento de direccin

Arquitectura de Sistemas Paralelos (9)

Mdulos de E/S
Funciones (III)
La comunicacin con el dispositivo implica:
rdenes
Informacin de estado
Datos

Almacenamiento temporal de datos


Los datos se envan en rfagas rpidas desde la memoria al mdulo de E/S y
despus se envan al perifrico a la velocidad de ste (el proceso inverso es
semejante)
Los datos se almacenan para no mantener ocupada a la memoria en una
operacin de transferencia lenta (evitar una cada en el rendimiento)

Deteccin de errores
Errores debidos a defectos mecnicos o elctricos
Errores en la transmisin de informacin (cdigos de deteccin de errores)
Arquitectura de Sistemas Paralelos (10)

Mdulos de E/S
Funciones (IV)
Velocidades tpicas de transferencia en dispositivos de E/S (bps)
(Almacenamiento temporal de datos)

Arquitectura de Sistemas Paralelos (11)

Mapa de Entrada/Salida: comn y separado


Definicin
A la hora de integrar el subsistema de E/S (seleccin del dispositivos y
acceso a sus registros) en un computador existen dos posibilidades:
E/S comn o asignada/mapeada en memoria: en la que el procesador no
contempla el acceso a mdulos de E/S. El acceso a los perifricos se hace
como si se accediese a un dato almacenado en la memoria principal. A los
perifricos se le asigna posiciones de memoria como si fueran variables. Ej:
el procesador Motorola 68000
E/S aislada o separada: el acceso a la E/S est contemplado en la
arquitectura. Existen dos mapas de memoria separados: uno para memoria y
otro para E/S. Esto implica que existen instrucciones especficas de E/S
(inport/outport) y tambin seales especficas. Ej: la familia i80x86

Aunque el sistema soporte espacios de direcciones separados no todos los


dispositivos tienen porqu usar los puertos de E/S: mientras que el uso de
los puertos de E/S eran comn en las tarjetas ISA, los dispositivos PCI
suelen mapear sus registros en memoria
Arquitectura de Sistemas Paralelos (12)

Mapa de Entrada/Salida: comn y separado


Ejemplo: Esquema de direcciones de E/S en un PC

Arquitectura de Sistemas Paralelos (13)

Mapa de Entrada/Salida: comn y separado


Ventajas e inconvenientes
Mapear la E/S en memoria tiene como ventajas:
no utilizar instrucciones de propsito especfico y aprovechar
toda la potencia del juegos de instrucciones, permitiendo una
mejor programacin
el acceso a memoria es mucho ms eficiente
el compilador tiene mas libertad para elegir el lugar y el modo de
direccionamiento en el acceso a memoria

Y como inconveniente:
se desperdicia parte del espacio de direcciones

Arquitectura de Sistemas Paralelos (14)

Mapa de Entrada/Salida: comn y separado


Los problemas de la E/S en memoria
Hay que tener en cuenta que las operaciones de E/S suelen tener
efectos colaterales (ej: bandera desactivada cuando se produce
una lectura) mientras que la operaciones con memoria no
Cuando existen efectos colaterales las operaciones de E/S
mapeada en memoria pueden ser problemticas
Como la velocidad de acceso a memoria es crtica en el
rendimiento de la CPU, el acceso a memoria (sin efectos
colaterales) es optimizado: cach, optimizaciones del
compilador y reordenacin hardware de instrucciones
Para evitar el uso de la cach el espacio de memoria del
dispositivo puede ser configurado como memoria no cacheable
Para evitar la optimizacin del compilador y la reordenacin
harware de instrucciones cuando se programa deben utilizarse
memory barriers
Arquitectura de Sistemas Paralelos (15)

Mtodos de Entrada/Salida
Clasificacin
Debido a la diferencia de velocidad entre procesador y
perifricos es necesario proporcionar mecanismos para
sincronizar las operaciones de E/S
A la hora de clasificar los diferentes mtodos para llevar
a cabo las operaciones de E/S hay que tener en cuenta los
siguientes factores:
Inicio de la transferencia (quin comienza la transferencia?)
Transferencia (quin realiza la transferencia?)

Existen tres tcnicas para realizar las operaciones de E/S:


E/S programada
E/S por interrupciones
Acceso directo a memoria
Arquitectura de Sistemas Paralelos (16)

Mtodos de Entrada/Salida
E/S programada
Tambin llamada por sondeo o encuesta (polling)
La CPU tiene el control absoluto de la operacin de E/S: inicia
y lleva a cabo la transferencia
El procesador ejecuta un programa que controla directamente
la operacin de E/S :
Comprobacin del estado
Envo de una orden de lectura o escritura
Transferencia de datos

Esta tcnica tiene la ventaja de utilizar un hardware mnimo


aunque malgasta tiempo de proceso ya que ha de interrogar
continuamente al perifrico (espera activa,
en sistemas
multiproceso)
Arquitectura de Sistemas Paralelos (17)

E/S programada
Ejemplo de programacin
void main ()
{
unsigned char estado;
...
inicializar_periferico_X();
...
while (!fin_operacion) {
estado = inportb (PUERTO_REG_ESTADO_X);
if ((estado & MASCARA_BIT_LISTO)!= 0)
hacer_operacion(); activo en alta
}
}
((estado | ~ MASCARA_BIT_LISTO)!= 0xFFFF)
activo en baja
Arquitectura de Sistemas Paralelos (18)

Mtodos de Entrada/Salida
E/S por interrupciones

Para evitar la degradacin en las prestaciones del sistema que supone la


espera activa, en este caso es el dispositivo el que solicita la operacin de
E/S cuando se encuentra preparado para realizarla (interrupcin)
La transferencia es llevada a cabo por la CPU de forma semejante a como
se haca en la E/S programada
El esquema bsico de funcionamiento de la E/S por interrupciones es:
1. El procesador ejecuta instrucciones de un programa
2. Al finalizar cada instruccin comprueba si se ha producido una interrupcin
3. En caso afirmativo el procesador enva una seal de reconocimiento al
dispositivo, guarda el estado actual del proceso (contador del programa y
registros) y comienza a ejecutar la rutina que sirve la interrupcin
(manejador de interrupcin o rutina de servicio de interrupcin)
4. Al finalizar la ejecucin de la rutina de servicio, se recupera el estado de la
mquina y se contina ejecutando el proceso que se abort
Arquitectura de Sistemas Paralelos (19)

E/S por interrupciones


Esquema de funcionamiento

PSW=Program Status Word


PC=Program Counter
Arquitectura de Sistemas Paralelos (20)

E/S por interrupciones


Implementacin

En la implementacin de la E/S mediante interrupciones aparecen dos


cuestiones:
cmo se determina el procesador qu dispositivo ha provocado la
interrupcin?
si se han producido varias interrupciones, cmo decide el
procesador la que debe atender?

Hay cuatro tcnicas utilizadas comnmente para implementar la E/S


por interrupciones:

Mltiples lneas de interrupcin


Consulta software (software polling)
Conexin en cadena (daisy chain)
Arbitraje de bus
Tcnicas que usan interrupciones vectorizadas

Arquitectura de Sistemas Paralelos (21)

Implementacin de la E/S por interrupciones


Mltiples lneas de interrupcin
Consiste en proporcionar varas lneas de interrupcin entre el
procesador y los mdulos de E/S
Es poco prctico porque malgasta terminales del procesador y adems
de existir ms perifricos que lneas no se resolvera el problema
La prioridad viene fijada por el procesador

CPU

Perifrico 0

Perifrico 1

INT0
INT1
...
INTN

Arquitectura de Sistemas Paralelos (22)

Perifrico N

Implementacin de la E/S por interrupciones


Consulta software
Todos los mdulos de E/S comparten una lnea comn para solicitar
interrupciones
Cuando el procesador detecta una interrupcin, se produce un salto a
una subrutina de servicio de interrupcin que se encarga de consultar a
cada mdulo de E/S para determinar cul ha producido la interrupcin
La desventaja de la consulta software est en el tiempo que consume
La prioridad viene determinada por el orden en que se hace la encuesta

Arquitectura de Sistemas Paralelos (23)

Implementacin de la E/S por interrupciones


Conexin en cadena (I)

Se trata de una consulta o polling hardware


Todos los mdulos de E/S comparten una lnea comn para solicitar
interrupciones
La lnea de reconocimiento de interrupcin se conecta encadenando los
mdulos uno tras otro
Cuando el procesador recibe una interrupcin, activa la seal de
reconocimiento, la cual se propaga a travs de la secuencia de mdulos de
E/S hasta que alcanza al que solicit la interrupcin
El mdulo correspondiente responde colocando una palabra que lo identifica
en las lneas de datos (vector)
El procesador utiliza el vector de interrupcin como puntero a la rutina de
servicio (as se evita ejecutar una rutina de servicio general)
La prioridad viene determinada por el orden en que se conectan los mdulos
en la cadena

Arquitectura de Sistemas Paralelos (24)

Implementacin de la E/S por interrupciones


Conexin en cadena (II)

Arquitectura de Sistemas Paralelos (25)

Implementacin de la E/S por interrupciones


Arbitraje de bus

Con esta tcnica, un mdulo de E/S antes de poder activar la lnea de


peticin de interrupcin debe disponer del control del bus
Mediante el arbitrador de bus se garantiza que slo un mdulo puede
activar la seal de peticin en un determinado instante
Es una tcnica que usa interrupciones vectorizadas como el daisy chain
La prioridad viene determinada por el arbitrador

Arquitectura de Sistemas Paralelos (26)

Implementacin de la E/S por interrupciones


Ejemplo de arbitrador: PIC 8259 (I)

Los 80x86 disponen de una sola lnea de peticin de interrupcin


(INTR) y una sola lnea de reconocimiento de interrupcin (INTA)
Para manejar cierta variedad de dispositivos y estructuras de prioridad,
se configura un rbitro de interrupciones externo (PIC 8259)
El 8259 permite manejar hasta 8 mdulos. Si se precisan ms pueden
conectarse en cascada permitiendo manejar hasta 64 mdulos
El esquema de funcionamiento de un sistema basado en el 8259 es el
siguiente:
El 8259 acepta las solicitudes de interrupcin de los dispositivos
conectados a l
El 8259 determina qu interrupcin tiene la prioridad ms alta e
indica la peticin al procesador activando la seal INTR
El procesador reconoce la solicitud activando la seal INTA
El 8259 sita el vector de interrupcin apropiado en el bus
El procesador comienza la ejecucin de la rutina de servicio

Arquitectura de Sistemas Paralelos (27)

Implementacin de la E/S por interrupciones


Ejemplo de arbitrador: PIC 8259 (II)
El esquema de prioridades es configurable en el 8259. Se
permiten los siguientes modos:
Completamente anidados: las solicitudes de interrupcin se
ordenan segn un nivel de prioridad desde 0 (IR0) hasta 7(IR7)
Rotatorio: un dispositivo pasa a tener la menor prioridad del grupo
despus de ser servido (aplicaciones en las que hay dispositivos con
igual prioridad de interrupcin)
Con mscara especial: se permite que el procesador pueda inhibir
selectivamente las interrupciones de determinados dispositivos

Arquitectura de Sistemas Paralelos (28)

Implementacin de la E/S por interrupciones


Ejemplo de arbitrador: PIC 8259 (III)

Arquitectura de Sistemas Paralelos (29)

E/S por interrupciones


Habilitacin/Deshabilitacin de interrupciones
Las interrupciones pueden ser:
enmascarables: se pueden dejar de atender por software
no enmascarables: siempre son atendidas

Existen 3 niveles en los que habilitar/deshabilitar las interrupciones:


A nivel de procesador: se deshabilitan todas las interrupciones
enmascarables
A nivel de controlador de interrupciones (PIC): se pueden
habilitar/deshabilitar todas las interrupciones asociadas a un canal de
interrupcin
A nivel del dispositivo: los dispositivo perifricos suelen tener bits en sus
registros de E/S para habilitar/deshabilitar las diferentes interrupciones que pueden
generar

Arquitectura de Sistemas Paralelos (30)

E/S por interrupciones


Ejemplo de programacin
void main () {
void interrupt (*manejador_antiguo)();
...
inicializar_periferico_X();
antiguo=getvect(INT_X);
disable(); /* Se deshabilitan mientras se manipulan
los vectores de interrupcion */
setvect(INT_X, manejador_intr_periferico_X);
enable ();
...
disable();
setvect(INT_X, manejador_antiguo);
enable (); }
void interrupt manejador_intr_periferico_X() {
... /* Se realizan las operaciones necesarias */}

Arquitectura de Sistemas Paralelos (31)

Acceso directo a memoria


Concepto
Tanto la E/S por interrupciones como la E/S programada requieren la
intervencin activa del procesador para transferir datos entre la
memoria y los mdulos de E/S
Ambos mtodos tienen un impacto negativo sobre la actividad del
procesador y la velocidad de E/S
Utilizando la E/S programada, el procesador puede transferir datos a
alta velocidad al precio de no hacer nada ms
La E/S con interrupciones libera en parte al procesador a expensas de
reducir la velocidad de E/S (debido a la sobrecarga que supone el
cambio de contexto)
Cuando hay que transferir grandes volmenes de datos, se requiere una
tcnica ms eficiente: el Acceso Directo a Memoria (DMA)
En el DMA tanto el inicio de la transferencia como la transferencia en
s estn gobernadas por el dispositivo (se libera a la CPU)
Arquitectura de Sistemas Paralelos (32)

Acceso directo a memoria


El controlador de DMA
El acceso directo a memoria requiere un mdulo adicional en el bus
del sistema: el Controlador de DMA (DMAC)
La nica tarea de la CPU es programar el DMAC. Hay que enviarle al
menos la siguiente informacin:

Direccin del perifrico de E/S


Posicin inicial de memoria de donde se lee o se escribe
El tipo transferencia: lectura o escritura
El tamao de la transferencia (nmero de palabras a transferir)

El DMAC transfiere el bloque de datos completo, palabra a palabra,


directamente desde, o hacia, la memoria, sin que tenga que pasar a
travs del procesador
Cuando la transferencia ha concluido el DMAC enva una seal de
interrupcin al procesador (TC, Terminal Count)
Arquitectura de Sistemas Paralelos (33)

Acceso directo a memoria


Implementacin (I)
Existen varias formas de realizar el acceso directo a memoria:
Memoria multipuerto: la memoria permite realizar transferencias
simultneas por parte de la CPU y el DMAC. La memoria tiene dos
puertos: uno para la CPU y otro para el DMAC. Es posible el acceso
concurrente a un mismo bloque de memoria por lo que hay que
establecer mecanismos de control
Acceso a memoria por robo de ciclo: es una solucin ms
econmica y es la utilizada habitualmente. El DMAC cada vez que
quiere tomar el control del bus del sistema para realizar una
transferencia, lo solicita a la CPU activando una seal (HOLD). La
CPU concede el control del bus (se activa la seal HLDA), el DMAC
se hace dueo del bus y realiza la transferencia. Ejemplo 80x86 y
8237:
Transferencia en bloque o rfaga
Transferencia bajo demanda
Transferencia simple
Arquitectura de Sistemas Paralelos (34)

Acceso directo a memoria


Implementacin (II)

Acceso a memoria por robo de ciclo


Arquitectura de Sistemas Paralelos (35)

Acceso directo a memoria


Implementacin (III)

La conexin del DMAC al sistema puede realizarse de varias formas


diferentes:
Bus nico, DMA independiente: El mdulo de DMA acta como un
procesador suplementario. Es econmica pero ineficiente: la
transferencia de cada palabra consume dos ciclos de bus
Bus nico, DMA-E/S: El nmero de ciclos de bus necesarios puede
reducirse sustancialmente si se integran las funciones de DMA y E/S
(el camino entre el DMA y los mdulos de E/S no incluye al bus del
sistema)
Bus de E/S: El concepto anterior puede llevarse algo ms lejos
conectado los mdulos de E/S a un mdulo de DMA mediante un bus
de E/S. Se reduce a uno el nmero de interfaces de E/S en el mdulo de
DMA y es una configuracin fcilmente ampliable

Arquitectura de Sistemas Paralelos (36)

Acceso directo a memoria


Implementacin (IV)
Bus nico,
DMA independiente

Bus nico,
DMA-E/S

Bus de E/S

Arquitectura de Sistemas Paralelos (37)

Acceso directo a memoria


Ejemplo de mdulo de DMA: DMAC 8237 (I)

El 8237 es un controlador de DMA de 4 canales programables en 3 modos


diferentes, con posibilidad de ser conectado en cascada y que adems de las
funciones tradicionales soporta tambin transferencias memoria-memoria
El bus de datos es de 8 bits y el de direcciones de 16 bits (requiere un latch
externo porque est multiplexado para ahorrar pines)
Cuando se usa con la familia 80x86 es necesario un latch (registro de pgina) que
almacene los 4 bits superiores de la direccin del 80x86 en modo real (20 bits)
Modos de transferencia:
Transferencia nica: El dispositivo es programado para realizar una nica
transferencia
Transferencia de bloque: Se transfieren todas las palabras de las que consta
la transferencia
Transferencia bajo demanda: la transferencia se realiza slo mientras el
dispositivo siga solicitando el canal de DMA. Esta modalidad permite dejar
ciclos a la CPU cuando no es realmente necesario que el DMA opere
Arquitectura de Sistemas Paralelos (38)

Acceso directo a memoria


Ejemplo de mdulo de DMA: DMAC 8237 (II)

El controlador de DMA es realmente un circuito secuencial generador de


seales de control y direcciones que permite la transferencia directa de los
datos sin necesidad de registros temporales intermedios (transferencia al vuelo)
Las operaciones memoria-memoria precisan de un registro temporal
intermedio, por lo que son al menos dos veces ms lentas que las de E/S
(permiten chequeos para finalizar transferencias)
Cuando el 8237 est inactivo permanece desconectado de los buses del
sistema; cuando se produce una peticin de DMA por parte de un dispositivo
(con DREQi se pide y con DACKi se confirma), genera una solicitud para
apropiarse del bus (HRQ), espera confirmacin (HLDA) y a continuacin
genera las seales necesarias para realizar la transferencia. Cuando acaba
genera una interrupcin (TC, Terminal Count)
Dispone de esquemas de prioridad fija (DREQ0 ms prioritaria) y rotativa
La operacin que realiza el 8237 es consecuencia de la programacin realizada
previamente en los registros de comando, modo, base de direccin y contador
de palabras a transferir
Arquitectura de Sistemas Paralelos (39)

Ejemplo de mdulo de DMA: DMAC 8237


Sistema basado en un 8237

Arquitectura de Sistemas Paralelos (40)

Acceso directo a memoria


Ejemplo de programacin
void main () {
void interrupt (*manejador_antiguo)();
...
inicializar_periferico_X();
inicializar_DMA (dir, tam, tipo, ...);
antiguo=getvect(INT_FIN_TRANS);
disable(); /* Se deshabilitan mientras se manipulan
los vectores de interrupcion */
setvect(INT_FIN_TRANS, manejador_fin_trans);
enable ();
...
disable();
setvect(INT_FIN_TRANS, manejador_antiguo);
enable (); }
void interrupt manejador_fin_trans () {
/* Se comprueban los posibles errores de la transferencia */ ...}

Arquitectura de Sistemas Paralelos (41)

Mtodos de E/S
Resumen

Arquitectura de Sistemas Paralelos (42)

Ejemplo de dispositivo de E/S


Interfaz Perifrico Programable 8255

Caractersticas
Diagrama de bloques
Direcciones y registros de control
Modos de funcionamiento:
Modo 0 (E/S programada)
Modo 1 (E/S por interrupciones)
Modo 2 (E/S bidireccional)

Emulacin interfaz centronics (puerto paralelo impresora)


mediante un 8255
Arquitectura de Sistemas Paralelos (43)

Interfaz Perifrico Programable 8255


Caractersticas
Dispone de tres puertos de E/S (A, B y C):
dos de tamao byte (A y B) y uno de tamao
2x4 bits (C) con control bit a bit
Los puertos pueden ser configurados como
entrada, salida o bidireccionales
Dispone de lneas de protocolo
Arquitectura de Sistemas Paralelos (44)

Interfaz Perifrico Programable 8255


Diagrama de bloques

Arquitectura de Sistemas Paralelos (45)

Interfaz Perifrico Programable 8255


Direcciones y registros de control

Arquitectura de Sistemas Paralelos (46)

Interfaz Perifrico Programable 8255


Modo 0 (E/S Programada)
Se utilizan los tres puertos (A,B,C) como simples registros
donde leer y escribir. La CPU y el/los dispositivo/s externo/s
correspondiente/s se encarga/n de leer/escribir de acuerdo a un
determinado protocolo previamente definido
El puerto A (8 bits) se configura como entrada o salida con el bit
D4 del registro de control
El puerto B (8 bits) se configura como entrada o salida con el bit
D1 del registro de control
El puerto C alto (4 bits) se configura como entrada o salida con el
bit D3 del registro de control
El puerto C bajo (4 bits) se configura como entrada o salida con el
bit D0 del registro de control
Arquitectura de Sistemas Paralelos (47)

Interfaz Perifrico Programable 8255


Cronograma Modo 0

Arquitectura de Sistemas Paralelos (48)

Interfaz Perifrico Programable 8255


Modo 1 (E/S por interrupciones)
En este modo se utiliza el protocolo Handshake
El puerto A (8 bits) se configura como entrada o salida con el
bit D4 del registro de control
El puerto B (8 bits) se configura como entrada o salida con el
bit D1 del registro de control
El puerto C contiene las seales del protocolo
Arquitectura de Sistemas Paralelos (49)

Interfaz Perifrico Programable 8255


Modo 1 (E/S por interrupciones). Configuracin de entrada
Seales de protocolo cuando el puerto est configurado como entrada

STBA (strobe input): Un cero en esta lnea de entrada indica


que hay dato disponible en el puerto A (activada por el
dispositivo externo)
IBFA (input buffer full): Un uno en esta lnea de salida indica
que el dato ya ha sido cargado en el registro del puerto A.
IBFA se desactiva cuando se desactiva STBA (el dispositivo
externo da su confirmacin) y se produce el flanco de subida
de la seal RD (dato ledo por la CPU)
Las seales STBB , IBFB son funcionalmente equivalentes

Arquitectura de Sistemas Paralelos (50)

Interfaz Perifrico Programable 8255


Modo 1 (E/S por interrupciones) Configuracin de salida
Seales de protocolo cuando el puerto est configurado como salida

OBFA (output buffer full): esta lnea de salida se pone a cero


(activa en baja) para indicarle al dispositivo que la CPU ha
escrito un dato en el puerto A. Se activa con el flanco de
subida de la seal WR (escritura finalizada) y se desactiva
con la confirmacin del dispositivo (ACKA)
ACKA (acknowledge input): un cero en esta entrada indica
que los datos del puerto A han sido ledos por el
dispositivo externo. Esencialmente es una respuesta del
dispositivo perifrico indicando que ha sido recibido el
dato enviado por la CPU
Las seales OBFB y ACKB son funcionalmente equivalentes
Arquitectura de Sistemas Paralelos (51)

Interfaz Perifrico Programable 8255


Modo 1 (E/S por interrupciones). Interrupciones

Seales de interrupcin se pueden generar en los puertos A y B tanto si


estn configurados como entrada (la CPU debe leer un dato) como si lo
estn como salida (la CPU ya puede escribir un nuevos dato)
El bit 4 del puerto C (PC4) es el bit de habilitacin de interrupcin del
puerto A (INTEA) cuando est configurado como entrada y el PC6 cuando
lo est como salida. El del puerto B (INTEB) es el bit 2 (PC2).
Para que el 8255 genere una interrupcin asociada al puerto A (seal
INTRA) cuando est configurado como entrada, se debe cumplir que:
STBA es 1, IBFA es 1 e INTEA es 1
(semejante para el puerto B)
Para que el 8255 genere una interrupcin asociada al puerto A (seal
INTRA) cuando est configurado como salida, se debe cumplir que:
ACKA es 1, OBFA es 1 e INTEA es 1
(semejante para el puerto B)

Arquitectura de Sistemas Paralelos (52)

Interfaz Perifrico Programable 8255


Modo 1 (E/S por interrupciones). Registros y seales

Arquitectura de Sistemas Paralelos (53)

Interfaz Perifrico Programable 8255


Cronograma Modo 1
1
2

5
3
4

Comienzo de la
ejecucin de los
manejadores de
interrupcin

Arquitectura de Sistemas Paralelos (54)

1
2

4
5
3

Interfaz Perifrico Programable 8255


Modo 2 (E/S bidireccional)
El PUERTO A funciona de forma bidireccional. Es como un doble
modo 1. El PUERTO B no tiene este modo
Los cinco lneas superiores del puerto C contienen las seales de
protocolo
Seales de protocolo
(semejantes a las descritas en el modo 1)

STB (strobe input)


IBF (input buffer full)
ACK (acknowledge)
OBF (output buffer full)
INTR
Arquitectura de Sistemas Paralelos (55)

Interfaz Perifrico Programable 8255


Modo 2 (E/S bidireccional). Registro y seales

Arquitectura de Sistemas Paralelos (56)

Interfaz Perifrico Programable 8255


Cronograma Modo 2

Arquitectura de Sistemas Paralelos (57)

Interfaz Perifrico Programable 8255


Emulacin interfaz centronics (puerto paralelo impresora)

Arquitectura de Sistemas Paralelos (58)

Operaciones de E/S desde el SO


El S.O. Linux y la programacin de drivers

El kernel de Linux ofrece una interfaz de programacin que facilita la


creacin de drivers, de manera que el diseador debe mapear llamadas al
sistema independientes del driver de carcter estndar con operaciones
especficas del driver
Una caracterstica interesante de esta interfaz de programacin es que los
drivers pueden ser implementados fuera del kernel y aadidos a ste en
tiempo de ejecucin
La distincin entre mecanismos (capacidades que se ofrecen) y poltica (uso
de esas capacidades) es una de las mejores ideas aplicadas al diseo de
sistemas UNIX
Esta idea se aplica al diseo de drivers: drivers libres de poltica (driver para
un floppy). El objetivo es programar cdigo para el kernel que permita el
acceso al dispositivo sin forzar ninguna poltica puesto que diferentes
usuarios pueden tener necesidades diferentes (acceso flexible, sin
restricciones)
Arquitectura de Sistemas Paralelos (59)

El S.O. Linux y la programacin de drivers


El kernel de Linux

Arquitectura de Sistemas Paralelos (60)

El S.O. Linux y la programacin de drivers


Programacin del kernel: Mdulos
Una de las caractersticas ms significativas de Linux es la
posibilidad de ampliar la funcionalidad del kernel en
tiempo de ejecucin
El cdigo que se aade al kernel en tiempo de ejecucin se
denomina mdulo
El kernel de Linux ofrece soporte para diferentes tipos de
mdulos incluido los drivers, aunque no limitados a ellos
Clases de dispositivos y mdulos
Dispositivos de caracteres
Dispositivos de bloque
Interfaces de red

Arquitectura de Sistemas Paralelos (61)

Programacin del kernel: Mdulos


Mdulos vs Aplicacin
Aplicacin

Mdulo

Ejecuta una tarea desde que


comienza hasta que acaba
Puede utilizar funciones que
no han sido definidas por
ella, linkando con las
libreras adecuadas (printf)
Se ejecutan en el espacio de
usuario

Permite atender solicitudes


de procesos en ejecucin
Puede usar slo las funciones
que el kernel exporta (printk)

Se ejecuta en el espacio del


kernel

Los mdulos que se encuentran cargados en un momento dado pueden conocerse con el
comando lsmod o cat /proc/modules
Los dispositivos del sistema pueden conocerse con el comando cat /proc/devices
Arquitectura de Sistemas Paralelos (62)

Programacin del kernel: Mdulos


Espacio de usuario y espacio del kernel

Una de las tareas de un S.O. es proteger de accesos no autorizados a los


diferentes recursos del sistema
Esta tarea del S.O. requiere un componente hardware de proteccin en el
procesador: diferentes niveles con funciones diferentes y operaciones no
permitidas en niveles inferiores (todos los actuales procesadores disponen de
al menos dos niveles)
Los sistemas Unix utilizan dos niveles de proteccin:
Modo superusuario: en el que se ejecuta el kernel (todo est permitido)
Modo usuario: en el que se ejecutan las aplicaciones (se evitan accesos
directos al hardware y accesos a memoria no autorizados)
Habitualmente se denominan espacio del kernel y espacio de usuario
La aplicaciones y los mdulos del kernel tienen mapas de memoria diferentes.
Se requieren funciones para realizar transferencias de datos de uno a otro. Ej:
copy_to_user y copy_from_user
El espacio del kernel a diferencia del de usuario es nonswappable (no
paginable) y nonpreemptive (de ejecucin no concurrente)
Arquitectura de Sistemas Paralelos (63)

El S.O. Linux y la programacin de drivers


Puertos de E/S y E/S mapeada en memoria

Un dispositivo perifrico es controlado mediante operaciones de


lectura/escritura sobre sus registros internos
Desde el punto de vista del hardware no hay diferencias conceptuales entre que
estos registros estn mapeados en E/S o en memoria (cat /proc/ioport y cat
/proc/iomem)
Para evitar los problemas de los efectos colaterales en la E/S mapeada en
memoria:
el espacio de memoria del dispositivo debe ser configurado como memoria no
cacheable (ej: opcin en el espacio de configuracin de los dispositivos PCI)
deben utilizarse memory barriers (ej: rmb, wmb, y mb)

Existen funciones para leer y escribir en los puertos una palabra (operaciones
simples) o ms (operaciones complejas). Ej: inb, outb, insb, ..
Existen funciones para leer y escribir en memoria (operaciones simples y
complejas). Ej: readb, writeb, memcpy_fromio, memcpy_toio,
Algunas plataformas reservan un espacio de memoria no paginable para la E/S
mapeada en memoria (no ocurre en ISA/PCI x86). Si el acceso a la memoria
asignada est virtualizado se requiere el uso de funciones especiales (ioremap y
iounmap)
Arquitectura de Sistemas Paralelos (64)

El S.O. Linux y la programacin de drivers


Gestin de interrupciones (I)
El Linux existen dos tipos de interrupciones:
Rpidas: Deben ser rpidamente atendidas, pues su ejecucin se realiza con
todas las interrupciones deshabilitadas (interrupcin de un timer)
Lentas: Se ejecutan con todas las interrupciones habilitadas excepto la que
est siendo servida, por lo que su tratamiento puede consumir ms tiempo

Para que un mdulo pueda atender las solicitudes de interrupcin de un


determinado canal debe asignarle un manejador de interrupcin cuando
se carga el mdulo (request_irq) y desasignrselo cuando se descarga
(free_irq)
Mediante el comando cat /proc/interrupts se saben las IRQs asociadas a
cada dispositivo
Mediante el comando cat/proc/stat se sabe las veces que se ha ejecutado
una IRQ
Existen funciones para habilitar y deshabilitar las interrupciones: sti, cli,
enable_irq, diable_irq,
Arquitectura de Sistemas Paralelos (65)

El S.O. Linux y la programacin de drivers


Gestin de interrupciones (II)
El problema que presenta la gestin de interrupciones es que no pueden
realizarse tareas demasiado largas en el manejador
El manejador necesita acabar cuanto antes para desbloquear las
interrupciones (sobre todo en las rpidas)
Solucin: Dividir la funcionalidad del manejador en dos rutinas: top-half
y bottom-half
La diferencia principal entre ellas es que todas las interrupciones estn
habilitadas durante la ejecucin de la rutina bottom-half
La rutina top-half (manejador) realizar lo qu debe hacerse de manera
inmediata (operacin de E/S) mientras que la rutina bottom-half har el
resto (procesado de la informacin)
Existen diferentes formas de que el kernel comience la ejecucin de la
rutina bottom-half (se establecen colas)
En la rutina de interrupcin (top-half) hay que insertar la tarea
planificada (rutina bottom-half) en una de las colas de tareas e indicarle
al kernel que la tarea est lista para su ejecucin
Arquitectura de Sistemas Paralelos (66)

Algoritmos de Planificacin
FIFO (Fisrt In First Out, primero en entrar, perimero en salir ): Tambin denominado FCFS (Fisrt Come First
Served).
Esquema mas simple de planificacn
Los procesos se atienden por orden de llegada
Usan los recurosos hasta terminar su ejecuin
Generalemnte se mezcla con otros algoritmos

Round Robin (Rueda).


Busca dar buena respuesta tanto a procesos cortos como
largos
Los procesos se ejecutan regidos por un Quantum (Tiempo de ejecucin estimado en Milisegundos). Si en el
tiempo determinado el proceso no finaliza su ejecucin este vuelve al final de la cola de proceso, en donde se
encuentran los procesos nuevos.

SPN (Shortest Process Next, El proceso mas corto a continuacin).


Similar a FCFS (En su simplicidad)
Usan los recurosos hasta terminar su ejecuin
Se ejecutara primero el proceso que requiera menos tiempo de servicio y este listo para ejecutar en cola
No utiliza Quantum (Se predice su tiempo de ejecucin)

SRR (Selfish Round Robin, Ronda Egoista)


Favorece a los procesos que llevan tiempo ejecutandose por sobre los recien llegados ( El despachador ejecuta
solo los procesos aceptados, mientras que los procesos nuevos se quedan en cola)
Se prueden cambiar las prioridades tanto de los procesos nuevos como de los aceptados
Cuando un proceso nuevo alcanza la prioridad de un proceso aceptado, este se acepta y por ende, puede ser
despachado y ejecutado.

FB (Multilevel Feedback, Retroalimentacin multinivel)


Se crean varias colas de procesos listos para ejecutar (Cada cola con una prioridad diferente)
Despues de cierta cantidad de ejecuciones, el proceso adquiere mas prioridad
Favorece procesos cortos ( Termina ejecucin y no son marcados con prioridad menor)

Hoydasepuededecirquetodaslascomputadorasdesdelaptopspasandoporcomputadorasdeescritoriohastaservidores,
contienenunoomsdiscosrgidossegneltipodeaparato.Inclusosepuedenencontrarotrosdispositivoselectrnicosque
utilizandiscosrgidos,porejemplolasmodernascmarasdevideo.
Lafuncinquetienenlosdiscosrgidosesmuyimportante,inclusoindispensableperotambinmuysimpleladealmacenar
informacindigitalpermanentementeenotraspalabras,ladeguardardatoseinformacindelacomputadorasinquestos
desaparezcanluegodeapagarlamquina.
Acontinuacinveremoscmoseguardanlosarchivoseneldiscorgidoycmoserealizanlosprocesosdelecturayescritura
dedatos.

Historiadelosdiscosrgidos
ElprimerdiscorgidofueintroducidoporIBMen1956tenaeltamaodedosrefrigeradores,pesabaaproximadamente900kgy
tenaunacapacidaddealmacenamientode3,75MB(aproximadamenteeltamaodeunacancinenformatoMP3).
En1961IBMintrodujoeldiscorgidomodelo1311,elcualtenaeltamaodeunlavarropas,ylaparticularidaddeincluir
mdulosdediscosquepodanalmacenar2MBcadaunoypodanintercambiarseoagregarsemdulosadicionales.
Conelpasodelosaoslosdiscosrgidosfuerondisminuyendoendimensionesfsicasyaumentandoenespaciode
almacenamientodisponible.
Haciaprincipiosdelosaos1980erararoencontrardiscosrgidosenlascomputadoraspersonalesPCyaquesetratabaan
deundispositivomuycarosinembargoparafinalesdeaquelladcadaloscostossehabanreducidoconvirtindoseen
dispositivosestndarenlamayoradelascomputadoraspersonales,salvoenloscasosdelosmodelosmseconmicos.
Desdequeen1983laIBMPCXTcomenzaincluirundiscorgidode10MB(Megabytes)steseconvirtienundispositivo
estndardelascomputadoraspersonales.
Desde1956hastaelao2011lacapacidaddelosdiscosrgidosaumentde3,75MBa4TB(Terabytes),oseaquecrecieron
msde1millndevecesentamaodealmacenamiento.Porotroladoelvolumendeestosdispositivosseredujoenelmismo
perododesdeaproximadamente2millonesdecm3 a20cm3 unareduccindeaproximadamente100.000veces.Depesar
aproximadamente900kghacemsde50aospasaronatenerunpesodeaproximadamente48gramosen2011.Encuantoal
costodelosmismospasarondetenerunvalorde15.000dlarespormegabytea0,0001dlarespormegabyteo100dlares
porterabyte,unareduccinenelpreciodemsde150millonesdeveces.

Estructuradelosdiscosrgidos
Losdiscosrgidoscontienendentrodeunacajametlicaselladaunoomsdiscosoplatosunidosporunejequegiraaaltas
revolucionesporminuto(RPM),aproximadamenteentre4.200RPMencomputadorasporttilesenmododeahorrodeenerga
hasta15.000RPMencomputadorasdeservidoresdealtorendimiento.
Estosplatosodiscossonlosquealmacenanlainformacinguardadayporlogeneralsondealuminioovidrio,loscualesestn
pulidosalniveldereflexindeunespejo.Estosdiscosestncubiertosporunacapadematerialmagnticodeaproximadamente
1020nm(nanmetros)deespesoroseaentreunaydos100millonsimasdemetrooentreunaydosmillonsimasde
centmetro.Asuvezestacapadematerialmagnticosecubreconotrafinacapadeproteccindecarbn.
Paraleeryescribirlainformacindeyenlosplatosdeundiscorgidohayunbrazoconcabezalesquepuedenmoversedeun
puntoalotrodeldiscoenpequeasfraccionesdesegundo.Hayuncabezalporcadasuperficiedediscoyasuvezestos
cabezalesestnunidosporunbrazonicodemovimiento.
Loscabezalesnuncatocaneldisco,yaqueflotansobrelasuperficiedelosplatosgiratoriosaunapequeadistanciadeapenas
decenasdenanmetros(millonsimasdecentmetro).
Losplatosendiscosrgidosdecomputadorasdeescritoriogiranentre5.400y10.000RPMsegnelmodeloenlaptopsporlo
generalentre4.200y7.200RPMsiendo5.400RPMlavelocidadmscomn.

1/9

Discoduroabierto,dondesepuedenverlosplatos,losbrazosdeloscabezalesyelactuador

Procesodelecturayescrituraendiscosrgidos
Eninformticatodalainformacinesrepresentadaatravsdenmerosbinarioscompuestosporunosyceros(1y0).Elmotivo
porelcualseutilizaestesistemadenumeracinpararepresentarabsolutamentetodoencomputacin,esporqueesmuysimple
yfcilderepresentarmediantepulsoselctricos,deloscualesdependelatecnologaelectrnica.Astodoloquevemosenla
pantalla,oloqueescribimosalniveldelamquinaysuscomponenteselectrnicossetraducenenpulsoselctricosque
representanunosyceros.
Porejemplopararepresentarlaletra"A"enlamemoriadelacomputadoraensistemabinarioseutilizaelsiguientecdigo
01000001(65endecimal).Porlotantolacomputadoralorepresentamediantepulsoselctricosdedostensionesdiferentes,
unapararepresentarlosunosyotraparalosceros.Cadapulsoelctricoquerepresentalos1y0sedenominabitasuvezcada
byte(launidaddemedidautilizadaparamedireltamaodelosarchivosycapacidaddealmacenamientodediscos,memoria,
etc)estcompuestopor8bitsosea8pulsoselctricosdeunosyceros.
Lomismoocurreconlosdiscosrgidos,enloscualeslosunosycerosdecadadatodeinformacinguardadoserepresentan
mediantediminutaspartculasmagnetizadas.
Lassuperficiesdelosplatosdeundiscorgidoestndivididosenmicroscpicasregionesdenominadasdominiosmagnticos
loscualesestncompuestosporpequeosgranosocristalesdematerialmagnticodeaproximadamente10nm(nanmetros)
detamao.Cadacristalestcompuestoporalgunoscientosdetomos.Almagnetizarseestaspartculassustomosapuntan
haciaunladooelotroformandoundipolomagnticoelcualgenerauncampomagnticoasualrededorsegnhaciala
direccinquestosapuntentendremosrepresentadoun1oun0.Cadacristalopartculaesundominiomagntico.
Alpasarelcabezaldeescrituraporencimadelplatoconlaspartculasmagnticas,lasmagnetizahaciendoquestassean
alineadashaciaunladooelotroporejemplosieldatoaguardaresunaletra"A"staserepresentamedianteelcdigobinario
deochodgitos01000001porlotantoelcabezalharquedosdelosdominiosmagnticosapuntenhaciaunlado
representandolos1yseisdominiosmagnticosquedenalineadoshacialadireccinopuestarepresentandolos0.Deesta
manerasealmacenanlosdatosqueguardamoseneldiscorgido.
Cuandocompramosundiscorgidonuevo,lostomosdecadacristalopartculadeunplatoapuntanaleatoriamentehacia
cualquierdireccin,haciendoquedeestamaneralapartculaestdesmagnetizadaalescribirseundatoestostomosson
alineadostodoshaciaunmismolado,estosignificaquelapartculahasidomagnetizada.Cadapartculaesundominio
magnticoyochodominiosmagnticosdan1bytedeinformacincomoenelcasodelaletra"A"delejemploanterior
representadaporelnmerobinario01000001.
Antessecubranlosplatosdelosdiscosconpartculasdexidofrricocomomaterialamagnetizarparaelalmacenamientode
datosperoahoraseutilizanpartculasdeunaaleacindecobalto.
Hastaelao2005laspartculasseposicionabanendireccinparalelaalasuperficiedecadaplato,peroapartirdeentonces
comenzaronaposicionarseenformaperpendicular(vertical)parapodercolocarmayorcantidaddedominiosmagnticosya
2/9

menordistanciaunodeotrosaprovechandoelespaciodisponibleenelplato.
Loscabezalesdelecturayescrituraseencuentranenlapuntadeunbrazoactuadorquesemueveradialmentehaciaadelantey
haciaatrsalolargodelradiodelplatomientrasesteltimogira.
Elpequeocabezalqueseencuentranenlapuntadelbrazoactuador,contienedoselementosseparados,unoencargadode
realizarlaescrituradedatosyelotrolalecturadelosmismos.
Elelementodeescriturarealizalaescrituradedatosmedianteunmetododeinduccinmagnticaquemagnetizalaspartculas
dealeacindecobaltoquerecubrenelplato,generandocamposmagnticos.Cadapulsoelctricoenviadoalcabezaldesdela
memoriadelacomputadora,magnetizacadapartculaalinendolahaciaunladooelotrogenerandocamposmagnticosde
distintadireccinloscualesrepresentanlos1y0queformanlosdatos.
Paralalecturadedatoselelementodelecturadelcabezalpasaporencimadelaspartculasmagnetizadascuyoscampos
magnticosgeneranpulsoselctricossegnlafuerzadelcampomagnticodecadapartculavaraelnivelderesistencia
elctricadelelementodelecturadelcabezalafectandoalpulsoelctricogeneradoparadecirloconpalabrassimples,variarla
fuerzaconqueelpulsoelctricogeneradocircular.Estasdiferenciasenlosnivelesderesistenciaelctricayporlotantofuerza
odiferenciadevoltajeconquecirculacadapulsoelctricorepresentarnlos1y0quesernenviadosalamemoria.
Loscabezalesseencuentran"flotando"aunapequeadistanciadelassuperficiesdelosplatosdeapenasdecenasde
nanmetros(millonsimasdecentmetro)porlotantonolostocan,sinofueraaslafriccinentreloscabezalesylosplatosal
giraramilesderevolucionesporminutos,causaradaosirrecuperablesenlassuperficiesdelosplatos.Elfenmenofsicoque
permitequeloscabezales"floten"sobrelassuperficiesdelosplatossintocarlasesuncolchndeairequesegeneraalgirarlos
platosaaltsimasvelocidades,produciendoelmovimientodelairequeseencuentrasobrelosplatosavelocidadescercanaso
igualesalosdeestosltimos.Esteefectogenerauncolchndeaireconunespesordeapenasdecenasdenanmetrosque
mantienealcabezalflotandosobreelplato.

Partculasdealeacindecobaltoconpropiedadesmagnticas.Procesodelecturadedatos.Mtodoavanzadode
partculasperpendicularesalplatoparamayoraprovechamientodelespacio.

Cmoseguardalainformacinenlosdiscosduros
Hastaahorahemosvistoelprocesofsicodeescrituraylecturadedatosenlosplatosdeundiscoduro,perofaltaentenderel
ordenamientodelainformacinenundiscoduro,oseacmoseguardanlosarchivos.
Cadaplatoenundiscoduroestdivididoencrculosconcntricosllamadospistas(trackseningls)yasuvezcadapistaest
divididaensectores.Enmatemticaunsectoresunaporcindeuncrculoqueseencuentraentreelcentrodelmismo,dos
radiosyelarcocorrespondientedelacircunferencia.Enundiscoduro,unsectoreslainterseccinentreunapistayunsector.
Cadaplatoestdivididoenunagrancantidaddepistasyasuvezcadapistaestdivididaenungrannmerodesectores.El
sectoreslaunidadmnimadealmacenamientodearchivos.Cadasectortieneuntamaode512bytesporlotantositenemos
3/9

unarchivode400bytes,ocuparunsectorsitenemosunarchivode20.000bytessteocupar40sectores(20.000/512=
39,0625Oseaqueocupar39sectoresporcompletoyunapartedelsector40).Apartirde2008deapococomenzarona
fabricarsediscosdurosconsectoresde4096bytes.
Dadoqueporlogenerallosdiscosduroscontienenmsdeunplato,yloscabezalesestnmontadosenbrazosquese
encuentranunidosunodebajodelotroenunaestructuraquelosmueveatodosjuntos,elefectodetenerunapistadebajodela
otraenlosdistintosplatosformauncilindroporesoparamedirlacapacidaddeundiscodurosemultiplicalacantidadde
cilindros(pistas)porlacantidaddecabezales(porlogeneralhay2porplato,unoparacadaladodelmismo),porlacantidadde
sectoresporpistaocilindroporlacapacidadenbytesdecadasector(512bytes).

Pistas(tracks)ysectoresdelplatodeundiscoduro

Brazodelactuadorquemueveloscabezales
Loscabezalesseencuentranenlapuntadebrazosquelosmuevenlateralmenteatravsdelradiodelcrculodecadaplato
mientrasstosgiran.
Losbrazosquesostienenloscabezalessonmetlicosysemueventodosjuntoshaciaelmismolado,haciendoquetodoslos
cabezalesseencuentrenenelmismocilindro.Elmecanismoquemueveaestosbrazosenlosdiscosmsantiguosutilizabaun
motordepasosodemovimientolineal,elcualestabaconectadoalosbrazosdeloscabezalesmovindoloshaciaadentroo
afueradelplato.Estemtodoeraefectivoendiscosantiguos,enloscualeselnmerodesectoresporpistaerainferior,ylas
pistaseranmsanchashaciendoquepequeasfallasenelposicionamientodeloscabezales,pordistintasrazones,no
afectaranlalecturaoescrituradedatos.
Sinembargoestesistematenaalgunosinconvenientesporejemploavecesporelcalentamientocausadoporlaoperacin
normaldelosplatosalgirar,losbrazosycabezalespodanquedardesalineadosenrelacinalaspistastampocoselospoda
movermuchomientrastrabajaban,especialmenteduranteprocesosdelicadoscomoelformateo,yaqueesotambinpoda
desalinearloscabezalesafectandolosresultados.
Ademsconeldesarrollodelastecnologasdediscosdurosyelaprovechamientodelespacioenlosplatossefueaumentando
lacantidaddesectoresporpistaascomolacantidaddepistasdandocomoresultadopistasmsangostasysectoresms
pequeosydensos,haciendoqueunerrorenelposicionamientodelcabezal,pormspequeoquefuera,afectaraelproceso
delecturayescritura.
Porlotantosetuvoquedesarrollarunsistemademovimientodebrazosmspreciso,elsistemadebobinadevoz.
Selodenominabobinadevozporquefuncionademanerasimilaralasbobinasdelosaltavoces.Setratadeunsistema
altamenteprecisoquecuentaconunabobinaelctricalacualseencuentraenelactuadorquesostienelosbrazosde
cabezales,porencimadeunosmagnetospermanentesdealeacindeneodimiohierroboro(eltipodemagnetopermanente
msfuertequeexiste),cuyoscamposmagnticosenvuelvenalabobinaelctrica.Elfenmenofsicoquecausaelmovimiento
4/9

delosbrazosdelactuador,yporlotantodeloscabezales,esgeneradocuandounacorrienteelctricacalculadacirculaporla
bobinaenvueltaporelcampomagntico,creandounafuerzatangencialquemuevealabobinayalosbrazosquesostienenlos
cabezales.
Segnlacantidaddecorrientequecirculaporlabobinasecreaunacantidaddemovimientoacordeporlotantolacontroladora
deldiscoduropuedecontrolaryrealizarloscambiosdeposicindebrazosconaltsimaprecisinymaneramedida,resultando
enqueloscabezalesseubiquensobrelaspistascorrectas.Ademsexistenenlossectoresdelaspistasciertasmarcasquele
sirvenalsistemadeposicionamientodecabezalesparadetectarsiestncorrectamentealineadosconlapista,encasoqueel
cabezaldetectaraqueestincorrectamenteposicionadoseenvanpequeasvariacionesalacorrienteelctricaquecirculapor
labobinacorrigiendolaposicindeloscabezales.
Graciasaestesistematansofisticadolosdiscosdurosdehoypuedenresistirmovimientosmientrasleenoescribeninformacin,
inclusogolpesdevariosG(lafuerzade1Geslaaceleracinejercidaporlagravedad)ademsgraciasalsistemade
autocorreccindeposicionamientodecabezales,fueposibleeldesarrollodeplatosconpistasmsangostaspermitiendoas
hacerdiscosdemayorcapacidadconmspistasymenorcantidaddeplatos.
Esasombrosovertrabajarenconjuntoalosplatosgirandoamilesderevolucionesporminutoyalosbrazosdelactuador
movindoseradialmenteporsobrelosplatoshaciaunladoyelotrohasta50vecesporsegundo.
Peroqupasacuandolosdiscosdejandegiraryelefectodelcolchndeairequemantienealoscabezalesflotando
desaparece?Deberancaersobrelosplatosmientrasdansusltimasrevoluciones,causandodaos,rayandolafinacapaque
cubrealaspartculasmagnticaseinclusodaandolosdatos.Paraevitarestetipodedaosepensenagregarunazonade
aterrizajedecabezales(landingzoneeningls)ubicadacercadelcentrodelosplatosendondeloscabezalespuedencaero
aterrizaralapagarselacomputadoramientraslosplatossiguendandolosltimosgirosporinercia.
Supongamosquerepentinamentesecortalacorrienteelctricaelmotorquehacegirarlosplatosseapaga,stoscomienzana
bajarlavelocidadrpidamente,elcolchndeairedesapareceyloscabezalescaensobreelreadedatoscausandograves
daosporfriccin.Paraevitarunasituacinashaydosmtodosqueinmediatamentellevanaloscabezalesalazonade
aterrizajeunoesmedianteelusodeunresorteelotromsrecienteysofisticadoalcortarselacorrienteelctrica,utilizala
inerciadelosdiscosquesiguengirandoporpocossegundos.Enestecasoaprovechaesasrevolucionesinercialesdelmotora
mododegeneradorelctrico,paraproducirporfraccionesdesegundolaenergasuficienteparamoverelcabezalhastalazona
deaterrizajesindaarlazonadedatos.
Apesarquenosecausaningndaoenlosplatosyporlotantoenlazonadedatos,coneltiempoyluegodeaoslos
cabezalesssevandesgastando.Lamayoradelosfabricanteshandiseadoloscabezalesparaqueaguanten
aproximadamente50.000aterrizajesenlazonadecontactoseguraoenotraspalabras50.000ciclosdeapagado/encendido.
Igualmentequdensetranquilosqueporlogeneralserequierenmuchosaosparallegaraesacifra.
Ademsdelmtododeaterrizajedepistastambinexisteunsegundomtododealejamientodeloscabezalesdelazonade
datosllamadoHeadLoad/Unload(carga/descargadecabezal).Cuandolacontroladoradeldiscodurodetectaquelosplatos
hanreducidosuvelocidad,inmediatamenteunsistemalevantalosbrazosdeloscabezalesylosmueveaunarampaubicada
fueradelreadelosplatos.Luegoalencenderselacomputadoranuevamentecuandolosplatosvuelvenagiraralasuficiente
velocidadparagenerarelcolchndeairequemantienealoscabezalessuspendidosenelaire,losbrazossealejandelas
rampasvolviendoaposicionarsesobrelosplatos.
Enlosdiscosdurosdemuchascomputadorasmodernas,principalmenteencomputadorasporttilescomolasnoteboksse
incluyeunacelermetroquedetectamovimientosbruscosenlamquina,encasodesucederalgoasinmediatamenteactivael
sistemaLoad/Unload,levantandoyllevandoelcabezalaunarampaseguraparaevitardaosenlazonadedatos.Puede
resistirmovimientosbruscosdehasta350G(fuerzaG)encasosdediscosqueestnoperandoy1000Gsieldiscoseencuentra
enestadonooperacional.
Hoydaseutilizanambosmtodosdealejamientodeloscabezalesdelazonadedatos,tantoeldeaterrizajedelosmismosen
unazonadecontactocercadelcentrodelosplatos,ascomoelderampasLoad/Unload.
Esmuyimportantemencionartambinqueantesdelaexistenciadeestosmtodosdealejamientodeloscabezales
automticos,cuandosequeraapagarlacomputadoralosusuariosdebanestacionarprimeromedianteuncomandolos
cabezalesyluegopodanapagarlacomputadoradelocontrarioloscabezalesentraranencontactoconlosplatos.

5/9

Procesodedesplazamientodelosbrazosdeloscabezalesmedianteelusodebobinasdevozymagnetosdeneodimio
hierroboro

Lacontroladoradeldiscoduro
Todaslasactividadesquerealizaeldiscoduro,sonadministradasporunaplacadecircuiteraintegradaubicadaenlapartede
afuera,adosadadebajodeldiscoduro.Entrelasfuncionesprincipalesdeestaplacaseincluyenelcontroldelflujodedatos
desdeyhacialaplacamadre(motherboard),dondesederivanhacialamemoriayelmicroprocesadorlacodificaciny
decodificacindelosdatosquesegrabanenlosplatoselcontroldelavelocidaddegirodelosplatoselcontroldelacantidad
decorrienteelctricaquecirculaporlabobinadevozquemuevelosbrazosdelactuadorquesostienenaloscabezalesla
verificacindequetodosloselementosycomponentesdeldiscofuncionencorrectamentecontarconunbloquedememoria
intermediodeentre8y64MB,conocidocomobufferparaalmacenardatostemporalmentequeviajanentrelosplatosylaplaca
madreyviceversa.
Antiguamentelasplacascontroladorasdeldiscodurovenanseparadasdeldiscoydebanconectarseenlaplacamadre.
Ademssenecesitabantrescablesdosdeellosconectabaneldiscoduroconlaplacacontroladora(uncableparatransferirlos
datosyotroparatranferirlassealesdecontroldelfuncionamientodeldisco)eltercercableeraparaproveerenergaaldisco
duroyvenadirectamentedelafuentedeenergadelacomputadora.Algunosdelostiposdeinterfaseantiguosqueutilizaban
placasdecontroldediscoduroseparadasdeldiscoeranlosST506,ST412yESDI.
Luegoen1986sedesarrollunsistemaenelquelacontroladoradeldiscodurovenaintegradaenelmismodisco,comohoy
dalosconocemos.SetratadeltipodeinterfaseIDE(IntegratedDriveElectronicsocircuiteraelectrnicadediscointegrada).
Estetipodecontroladorarequeraelusode2cablesunoparadatos(enrealidaduncabledecintade40hilos)yelotroparala
energaconectadoalafuentedeenergadelgabinetedelacomputadora.
LuegoeltipodeinterfaseIDEpasallamarseATA(AdvancedTechnologyAttachmentdelinglsAccesoriodeTecnologa
Avanzada).ConeltiempolasplacasmadrescomenzaronaincluiradaptadoresATA,parapoderconectardiscosduros,ascomo
otrosdispositivoscomolectorasdeCDydeDVD.Cadaunodeestosadaptadoressoportanhastadosdispositivosaspor
ejemploenunacomputadoracondosadaptadoresATA,puedenhaberhastacuatrodiscosdurosocombinacionesdelectoras
deCDoDVDcondiscosduros.
Apartirdelao2003comenzaronasustituirseporeltipodeinterfaseSATA(SerialATA),queutilizauncablededatosms
pequeo.

Nuevaconfiguracindesectores(Zonebitrecording)
Antestodaslaspistasdeunplatocontenanlamismacantidaddesectoresporpistarecordemosquecadasectortieneuna
capacidaddealmacenamientode512bytes.Alserdeestamanera,lossectoresmscercanosalcentrodecadaplatoeranms
pequeosensuperficiequelosubicadosmslejosdelmismo,peroigualmentecontenanlamismacantidaddepartculas
magnticasquelosubicadosmscercadelborde.Porlotantolossectoresmspequeoseranmsdensosysuspartculas
6/9

estabanms"apretadas"mientrasqueenlaspistasdemsafuera,cuyascircunferenciaseranmayores,lossectoreseran
menosdensosyaqueenunasuperficiedemayortamaohabaunamismacantidaddepartculasmagnticas
desaprovechandoasungranespacioquepodraestarocupadopormssectores.
PoresolosingenierosdesarrollaronunsistemadeorganizacindesectoresllamadoZonebitRecordingmedianteelcualse
aprovechaelespaciodisponibleenpistasmsalejadasdelcentro.Conestesistemalaspistasseagrupanenzonasdepistas
conlamismacantidaddesectores.Cuantomsnosalejamosdelcentrodecadaplatonosencontramosconzonasque
contienenunamayorcantidaddesectoresporpistaaprovechandomejorelespaciodisponibleenlaspistasqueseencuentran
mslejosdelcentro.
Otrapuntointeresantedeestesistemadeconfiguracindesectoresesquealleerlossectoresdecilindrosmsexternosse
obtieneunamayortasadetransferenciadebitsporsegundoquealleercilindrosmsinternosestosedebealhechoquela
velocidadangulardelosplatosessiemprelamismaentodaslaspistasdelosmismos(lavelocidadangularesparadecirlocon
palabrassimpleselnguloquerecorreporsegundounobjetocircularalgirar)assiporejemploenunaciertacantidadde
tiempounplatorealizaunvueltacompleta,seleenunamayorcantidaddesectoresenloscilindrosmsexternosqueenlosms
internos,dadoquehayunamayorcantidaddestosenlosmslejanosdelcentrodelosplatos.
Encadazonapuedenhabercientosomilesdepistasagrupadasylastasasdetransferenciaenbitsporsegundoaumentan
cuantomsnosalejamosdelcentro.
Porestemotivoaltenerundiscoduronuevo,losprogramastratandellenarprimerolossectoresdepistasmsexternas
comenzandoporelsistemaoperativoqueseinstalaenenstosparaaprovecharlamayortasadetransferencia.Conelpasodel
tiempodespusdellenarselossectoresdepistasmsexternas,losprogramasnotienenotraalternativamsqueinstalarseen
lossectoresdecilindrosmsinternostraslocualpuedenllegaradetectarseunmayortiempodecargadeestosprogramas.

OrdenamientodeigualcantidaddesectoresporpistavsZonebitrecordingparaelmayoraprovechamientodelespaciode
losplatos

Medidasqueindicanelrendimientodeundiscoduro
TIEMPODEBUSQUEDA(SEEKTIME)
Setratadeltiempoquerequierenloscabezalesparamoversedesdesuposicinactualalapistadeseada.Eltiempode
bsquedavaraacordealadistanciaqueseencuentralapistadeseadadelaposicinenqueseencuentraelcabezal,noeslo
mismopasaraunapistaadyacentequemoversehastaunaubicadaalotroladodelplato.Porlotantocomomedidapromediose
sueletomareltiemporequeridopararecorrerunterciodelradiodelreadedatos.
Lostiemposdebsqueda(seektimes)semidenenmilisegundos(ms).Losprimerosdiscosdurostenanuntiempodebsqueda
promediode600msyaparalapocaenquecomenzabanacomercializarselasprimerasPC,stascontabancondiscosduros
contiempodebsquedade100120msyahacialosaos'80coneldesarrollodelossistemasdemovimientodebrazosde
cabezalesconbobinadevoz,lostiemposdebsquedapromedioseredujerona20ms.
HoydaenlasPCdeescritorio,eltiempopromediodebsquedaoscilaenlos12msmientrasqueendiscosdecomputadoras
deservidorespromedialos4ms.
LATENCIAROTACIONAL(ROTATIONALLATENCY)
Unavezqueelcabezalseencuentrasobrelapistacorrecta,stesequedaquietoesperandoaqueelsectordeseadopasepor
debajosuyomientraselplatogira.Cuantomslejosseencuentreelsectormstardarenpasarpordebajodelcabezal.La
latenciarotacionalvarasegnlavelocidadderotacindeldiscosiendomenorendiscosquepresentanmayoresnivelesde
revolucionesporminuto.Comopromediodemedidadelatenciasetomaeltiemponecesarioparaqueelplatorealicemedia
revolucinpordebajodelcabezal.Lalatenciarotacionalsemideenmilisegundos.
TASADETRANSFERENCIADEDATOS
Latasadetransferenciaeslacantidaddeinformacinquesepuedetransmitirporsegundo,medidaenbitsporsegundoosea
7/9

pulsoselctricosquerepresentan1y0porsegundo.Recordemosque8bitsequivalena1bytedeinformacinlaunidadde
medidautilizadaparamedireltamaodearchivos.
Latasadetransferenciavarasegnmuchosparmetroslavelocidadderotacindelosplatos,laubicacindelossectores
(comosemencionantes,siseleen/escribensectoresdepistasmsexternasdeunplatoseobtienenmayorestasasde
transferenciadadoquealamismavelocidadderotacinpasaunamayorcantidaddesectorespordebajodelcabezalqueen
unapistamscercanaalcentrodelplato).Sesueletomarcomomedidalacantidaddedatosqueviajanentrelosplatosyla
memoriaintermedia(buffer)deldiscolacualhacia2011superabalos1000Mbit/segundo(1Gbit/segundo)oaproximadamente
125MB/segundo(megabytes).
Tambinsemidelatasadetransferenciadedatosdesdelamemoriaintermediadelacontroladoradeldiscoalaplacamadre
(buffermotherboard).
Estatasadetransferenciadependedeltipodeinterfaseutilizado.PorejemploenlosprimerostiposdediscosATA/IDElastasas
detransferenciaerande25MB/segundo(200Mbit/sec),mientrasqueenlosltimosmodelosdeestetipodeinterfasellegabana
167MB/segundo(porejemplolosATAUltraDMA/167).
YaenlosdiscosmsmodernosconinterfasedetipoSATAlatasadetransferenciallegabaa1.5Gbit/shaciaelao2011la
mayoradelosdiscosenelmercadocontabanconinterfasesdetipoSATA2.0contasasdetransferenciade3Gbit/sydeapoco
seestestandarizandoelSATA3.0contasasde(6Gbit/s).

Cmoadministraelsistemaoperativoaldiscoduro
Comosemencionantes,losarchivossealmacenanensectoresde512bytes,porlotantounarchivode20.000bytesocupar
40sectores(20.000/512=39,062539sectoresporcompletoyunapartedelsector40).
Sinembargolossistemaoperativosparamejorarelrendimientodeldiscoduroutilizanunmtododeagrupamientodesectores,
estosgruposdesectoressedenominanclusters.
Cadasectortieneunnmeroqueindicasuposicinparaqueelcabezalpuedadirigirsealmismoaleeroescribirdatos.La
informacinqueindicaenculessectoresseencuentraunarchivoseencuentraensectoresunbicadosenunaseccin
reservadadeldisco,separadadelreadondesealmacenanlosarchivosdelusuarioahseindicatodotipodeinformacin
acercadecadaarchivo.Elproblemaesqueelsistemaoperativoconstantementerealizatareasdeadministracinencargadas
dealmacenararchivos,moverlos,guardarinformacinacercadelosmismosenbasesdedatos,ordenamientodelainformacin,
etcporlotantosisetienemayorcantidaddesectoresloscualesdebensermanipuladosunoauno,estastareastardaranms
tiempo,reduciendoenormementeeldesempeodeldisco.Porotroladosiestossectoressonagrupadosenclustersdevarios
sectores,elsistemaoperativoenlugardeoperarconcadasectoroperaconvariosalavez,aumentandodeestamanerael
rendimiento.
Losclusterstambinsonllamadosunidadesdeasignacin,yaqueaniveldelsistemaoperativoolgico,sonlamenorunidad
dealmacenamientodedatos.Asporejemploenundiscoconclustersde8sectoresconuntamaode4KB(kilobytes)cada
uno,sisetieneunarchivodetextodeconunapalabrade4caractereselarchivoocupar4bytessinembargodadoquela
unidaddeasignacinmnimaesunclusterde4KB,estearchivode4bytesocuparunespaciodediscode4KB,
desperdiciandomilesdebytesnoutilizadosporotroladositenemosunarchivode4400bytes,steocupar1clustercompleto
mspartedeunsegundocluster,dejandoespaciosinutilizarenelsegundo.
Siquierencomprobarloanteriormenteexplicado,puedencrearunarchivodetextodeunapalabraconelblocdenotasyluego
fijarseenlapropiedadesdelmismo(presionandoelbotnderechodelmousesobreelarchivo)dondediceTamaode
ArchivoyTamaoendiscounoindicaeltamaoenbytesquetieneelarchivoyelotrocuantoespaciodeldiscoocupa.
Eltamaodelosclusterspuedevariarentre1sector(512bytes)y128sectores(64KB)estoseindicaenelmomentodela
particindeldisco.Clustersdemenortamaoreducenelrendimientodeldisco,mientrasqueclustersdemayortamao
desperdicianmayorcantidaddeespaciodedisco.Dependedeltamaopromediodelosarchivosquesealmacenarnperolo
mejoresencontraruntamaobalanceadoentrerendimientoyaprovechamientodelespaciodedisco.Porlogeneraleltamao
declusterporomisinqueutilizaelsistemaoperativoWindowsesde4KB,oseade8sectores.
CMOSEELIMINANLOSARCHIVOS
Cuandoeliminamosunarchivoyloenviamosalapapeleradereciclaje,apesarquecreemosquestehasidoeliminadopara
siempreyyalainformacinqueformapartedelmismonoseencuentraeneldiscolarealidadesotra.
Cuandoseeliminaunarchivo,losclustersquesteocupabanosonvaciadosoparaverlodesdeunpuntodevistamstcnico,
los1y0queformanlaestructuradelmismosiguenintactos.Entoncesporqudecimosquehasidoeliminado?
Enrealidadcuandoseeliminaunarchivoloquehaceelsistemaoperativoesmarcarlosclustersquesteocupabacomo
sobrescribiblesquedandoasdisponiblesparaserocupadosporalgnnuevoarchivoperohastaentoncessusdatosquedarn
8/9

intactosapesarqueelusuarionolopuedaver.
Porejemplosiseeliminaunarchivoqueocupaba40.000clustersyluegosealmacenaunarchivonuevode30.000clusters,el
sistemaoperativoprobablementeaprovechareseespaciosobrescribible,colocandoelnuevoarchivoenaquellosclustersy
sobrescribiendolosdatosdelarchivoanterior.Sinembargoanquedarunespaciodelarchivoanteriorsinsobrescribir,elcual
deberserocupadopordatosquerequieranmenorcantidaddeespacio.
QUESLAFRAGMENTACINDEDISCOS
Comoseexplicantes,cuandoelsistemaoperativoencuentraespaciosvacososobrescribibleslosuficientementegrandes
paracolocarunnuevoarchivostelosaprovecha.Sinembargoenundiscoconpocoespaciolibreelsistemaoperativo
intentarbuscarclusterssobrescribiblesdearchivoseliminados,paracolocarlosdatosnuevosaescribir.Perosielarchivoa
escribiresmsgrandequeelmayorespaciodisponibledeldisco,stedeberserfragmentadoysuspartesdebernser
colocadasendistintosespaciosdisponibles.Estoprovocaquecuandouncabezalleeunarchivofragmentadoenclusters
separados,debamoversedeunapartealaotradeldisco,reduciendodemaneraimportanteelrendimientodeldisco.
Enundiscodondeseescribenyeliminancontinuamentearchivos,elresultadoluegodeciertotiemposerunareduccinen
rendimientoyeficiencia.
Elproblemadelafragmentacinpuedesersolucionadomedianteelusodeundefragmentadorcomoelquevieneincluidoenel
sistemaoperativoWindows.Defragmentarundiscollevabastantetiempo,perosisenotaunadisminucindedesempeose
recomiendadefragmentareldiscorgido.

http://www.youbioit.com/es/article/sharedinformation/5320/comofuncionanlosdiscosrigidos

9/9

Caractersticas de rendimiento de disco duro


elctricas a la memoria de estado slido y no de la velocidad de partes en movimiento por lo que el tiempo de
acceso es muy rpido y consistente.[6] La mayora de las
aplicaciones de examinacin y de puntos de referencia no
distinguen entre discos rotatorios y SSDs por lo que ambos tipos de dispositivo se someten al mismo proceso de
evaluacin.

El rendimiento ms alto de discos duros viene de dispositivos que tienen un desempeo ms rpido en cada una
de sus caractersticas de rendimiento.[1][2] Estos dispositivos incluyen a aquellos con un medio rotatorio, llamados
aqu discos rotatorios, i.e., unidad de disco duro (HDD),
unidad de disquete (FDD), discos pticos (DVD-RW /
CD-RW), y tambin cubre dispositivos que no cuentan
con partes en movimiento es como los son las unidades
de estado slido (SSD). En cuanto a los SSDs, la mayora de los atributos relacionados con el movimiento de
componentes mecnicos no son aplicables, pero el dispositivo es afectado en la realidad por otros elementos con
principios elctricos que generan un retraso apreciable
cuando se aslan y se examinan.[3] Estas caractersticas
de rendimiento pueden ser agrupadas en dos categoras:
tiempo de acceso y tiempo de transferencia de datos (o tasa
de transferencia de datos).[4]

Los componentes clave que tpicamente son acumulados


para obtener el tiempo de acceso son:[2][7]
Tiempo de bsqueda
Latencia rotacional
Otros
Tiempo de procesamiento de comandos
Tiempo de estabilizacin

Tiempo de Acceso

1.1 Tiempo de bsqueda


En los discos rotatorios, el tiempo de bsqueda es el
tiempo que le toma, al cabezal en el brazo del actuador,
viajar a la pista del disco donde se escribirn o leern
los datos.[7] Los datos son almacenados en el medio en
sectores que son que son organizados en pistas paralelas circulares (pueden ser concntricas o espirales dependiendo del tipo de dispositivo), hay un brazo del actuador
que suspende un cabezal que puede transferir datos con
ese medio. Cuando el dispositivo necesita leer o escribir
algn sector en especco, este determina en que pista se
localiza el sector. Posteriormente se usa el actuador para
mover el cabezal a una pista en particular. Si la posicin
inicial del cabezal era la pista deseada, el tiempo de bsqueda sera igual a cero. Si la pista en la que se ubic el
actuador se encontraba en la orilla externa del sector y la
pista deseada se ubica en la orilla interior, el tiempo de
bsqueda ser el mximo para esa unidad.[8][9] Los tiempos de bsqueda no son lineares en comparacin con la
distancia de bsqueda viajada por el actuador debido a
factores como la aceleracin desaceleracin del brazo del
actuador.[10]

Un cabezal y el brazo del actuador sobre el plato de un disco


duro.

El tiempo de acceso o tiempo de respuesta de un disco rotatorio es una medida del tiempo que se toma antes de que
la unidad pueda transferir datos. Los factores que controlan este tiempo en un disco rotatorio son, en su mayora,
relacionados con la naturaleza mecnica de los discos rotatorios y cabezales en movimiento. Se compone de unos
cuantos elementos independientemente mensurables que
son acumulados para obtener un solo valor al evaluar el
rendimiento de la unidad de almacenamiento. El tiempo
de acceso puede variar signicantemente por lo que, tpicamente, el fabricante provee este valor o es medido como un promedio por medio de puntos de referencia.[4][5]
En los SSDs, el tiempo de acceso depende de conexiones

El tiempo de bsqueda promedio de un disco rotatorio es


el promedio de todas las bsquedas posibles, tcnicamente signica el tiempo que tarda la unidad en realizar todas
las bsquedas dividido por el nmero de bsquedas posibles, pero en la prctica se determina usando mtodos
estadsticos o simplemente aproximado como el tiempo
1

de bsqueda de un tercio del nmero de pistas existentes en la unidad.[7][8][11] El tiempo de bsqueda promedio vara entre 4 ms para unidades de servidores de gama
alta,[12] hasta 15 ms para unidades en movimiento. Las
unidades en movimiento ms comunes tienen un tiempo
de bsqueda de 12 ms[13] mientras que las unidades de
escritorio rondan los 9 ms.

TIEMPO DE ACCESO

1.1.2 Efecto del ruido audible y en control de la vibracin

Medido en dBA, el ruido audible es relevante para ciertas aplicaciones como los DVRs, grabacin de audio digital y computadoras silenciosas. Los discos de bajo ruido
usan soportes de uidos, velocidades de rotacin menores (normalmente 5,400 RPM) y reducen la velocidad de
[14]
El primer HDD HDD tena un promedio de tiempo de
bsqueda para evitar clics audibles entre otros ruidos. Las
bsqueda de aproximadamente 600 ms, y para mediados
unidades cuyo factor de forma es menor (e.g. 2.5 pulgade la dcada de los 70s, los HDDs se encontraban dispodas) son frecuentemente ms silenciosas que aquellas de
[15]
nibles con tiempos de bsqueda de alrededor 25 ms.
mayor tamao.[17]
Las unidades de las primeras PCs usaban motores paso
a paso para mover los cabezales y como resultado tenan Algunos discos para PCs de escritorio o porttiles permitiempos de bsqueda de 80 a 120 ms, esto mejor rpi- ten al usuario modicar el balance entre rendimiento de
damente por la introduccin de la actuacin por medio de bsqueda y ruido producido por la unidad. Por ejemplo,
una bobina de voz en la dcada de los 80s, reduciendo los Seagate ofrece un conjunto de funciones en ciertas unidatiempos de bsqueda a un promedio de 20 ms. El tiempo des llamadas Sound Barrier Technology (Tecnologa de
de bsqueda ha continuado su mejora lentamente con el Barrera de Sonido) que incluye la capacidad de reducir
el ruido y la vibracin ya sea por el usuario o el sistetiempo.
ma mismo. Tiempos de bsqueda ms rpidos requieren
Otras dos medidas de bsqueda menormente comunes
ms energa para poder mover los cabezales rpidamente
son pista por pista y movimiento completo. La medida de
a travs del plato, esto genera ruidos fuertes desde el eje
pista por pista captura el tiempo que le toma a la unidad
del actuador y vibraciones ms intensas en el dispositivo
[7]
moverse de una pista a otra adyacente, este es el tiemya que los cabezales son rpidamente acelerados al iniciar
po de bsqueda menor posible y toma de .2 a .8 ms en
la bsqueda y desacelerados al nal de esta. La operacin
[6]
HDDs. La medida de movimiento completo se basa en
silenciosa reduce la velocidad de movimiento junto con
el movimiento desde la pista en la orilla de un extremo
la tasa de aceleracin pero con el costo de un rendimiento
del sector hasta la pista del extremo opuesto, este es el
reducido.[18]
[8]
movimiento ms lento posible.

En los SSDs no hay partes en movimiento por lo que


la medicin del tiempo de bsqueda es simplemente la
prueba de circuitos electrnicos preparando una ubicacin particular del dispositivo de almacenamiento. Un
SSD comn tendr un tiempo de bsqueda entre 0.08 y
0.16 ms.[6]

1.1.1

Short stroking

Short Stroking es un trmino usado en los entornos de almacenamiento industriales para describir un HDD que
esta intencionalmente restringido en su capacidad total
para que el brazo del actuador no tenga que recorrer grandes distancias y solo cubra un nmero menor de pistas.
Esto limita la distancia mxima que separa a cualquier
ubicacin de memoria en el HDD de los cabezales y como resultado reduce los tiempos de bsqueda promedio
al igual que la capacidad total de la unidad. Esta reduccin del tiempo de bsqueda resulta en un nmero mayor
de IOPS (operaciones de entrada/salida por segundo por
sus siglas en ingls) disponibles por la unidad. La tasa de
costo y energa por cada byte usable de almacenamiento
incrementa segn se reduce el rango mximo de pistas.[16]

1.2 Latencia rotacional


La latencia rotacional (a veces llamada retraso rotacional
o simplemente latencia) es el retraso que se da mientras
se espera la rotacin del disco para que se tenga al alcance el sector deseado bajo el cabezal.[19] Esto depende de
la velocidad rotacional de un plato (o del motor de giro)
medida en revoluciones por minuto (RPM).[7][20] Para la
mayora de las unidades de almacenamiento con medios
basados en magnetismo, la latencia rotacional promedio
esta, tpicamente, basada en la relacin emprica que la
latencia promedio en milisegundos para cualquier unidad
es un medio de su periodo rotacional. La latencia rotacional mxima es el tiempo que toma al plato hacer una rotacin completa excluyendo el proceso de aceleracin (esto
es debido a que la parte relevante del plato puede haber
pasado el cabezal cuando se hizo la solicitud).[21] Por lo
tanto, la latencia rotacional y el tiempo de acceso resultante pueden ser mejorados (disminuidos) al aumentar la
velocidad rotacional de los platos.[7] Esto trae consigo de
incrementar la tasa de transferencia de datos (discutida
ms adelante en este artculo).
La velocidad del motor de giro puede usar uno de dos mtodos de rotacin de disco: 1) Velocidad linear constante
(VLC) usado principalmente en almacenamiento ptico,
vara la velocidad rotacional del disco ptico dependiendo de la posicin del cabezal y 2) Velocidad angular constante (VAC), usada en HDDs, FDDs standard, unos cuan-

3
tos sistemas de discos pticos y discos de vinilo, se gira cabezal estabilizarse en la pista destino y detener su viel medio a una velocidad constante independientemente bracin para que no lea informacin de otra pista. Este
tiempo es muy pequeo con un valor menor a 0.1 ms, los
de donde se encuentre posicionado el cabezal.
modernos lo toman en cuenta en su
La densidad de la supercie es importante ya que la den- fabricantes de HDDs[25]
tiempo
de
bsqueda.
sidad de bits puede ser constante o no. Normalmente, al
usarse el mtodo VAC, las densidades no son constantes
por lo que las pistas largas en el extremo exterior del plato tienen el mismo nmero de bits que las pistas ms cortas en el extremo opuesto. Cuando la densidad de bits es
constante, las pistas del extremo exterior tienen ms bits
y generalmente est combinado con el mtodo VLC. En
ambos casos la tasa de transferencia entre bits contiguos
es constante. Este no es el caso con otros casos cuando se
usa una densidad de bits constante y el mtodo VAC.
1.2.1

Efecto de la reduccin en el consumo de poder.

El consumo de poder se ha vuelto cada vez ms importante, no solo en el mundo de los dispositivos mviles como
las laptops pero tambin en el mercado de los servidores y los equipos de escritorio. El incremento de densidad de equipos en un centro de datos ha llevado a conicto al proveer energa suciente a los dispositivos (especialmente en el spin-up), y al deshacerse del calor residual subsecuentemente producido junto con preocupaciones sobre cuestiones ambientales y de costo elctrico
(ver Green Computing). La mayora de las unidades de
disco duro operan con alguna de forma de administracin de poder que utiliza un nmero especco de modos de poder que ahorran poder por medio de la reduccin de rendimiento. Al implementarse, un HDD cambiara entre uno o ms de los modos ahorradores de poder
en funcin del uso de la unidad. La recuperacin desde
el estado ahorrador ms profundo, comnmente llamado
reposo, es cuando el HDD se encuentra detenido (o spundown), puede tomar varios segundos para alcanzar un estado completamente funcional por lo que se incrementa
la latencia.[22] Los fabricantes de unidades de almacenamiento han comenzado a producir unidades verdes que
incluyen funciones adicionales para reducir el consumo
de poder, estas pueden afectar adversamente la latencia
incluyendo velocidades ms lentas en el motor de giro y
deteniendo los cabezales fuera del rea del medio para
reducir friccin.[23]

2 Tasa de transferencia de datos


La tasa de transferencia de datos (throughput en ingls)
de una unidad de almacenamiento cubre tanto la tasa interna (el movimiento de datos entre la supercie del plato
y el controlador de la unidad) y la tasa externa (el movimiento de datos entre el controlador de la unidad y el
sistema antrin). La tasa de transferencia de informacin mensurable ser la menor de las dos tasas. La tasa
de transferencia de datos sostenida de una unidad ser la
ms lenta entre las tasas sostenida interna y la sostenida
externa. La tasa sostenida es menor o igual a la mxima o
tasa rfaga porque no tiene el benecio de una memoria
cache o buer en la unidad. La tasa interna es determinada con ayuda de la tasa de medio, tiempo de adicional de
sector, tiempo de cambio de cabezal y tiempo de cambio
de cilindro. Ninguno de estos conceptos aplica para los
SSDs.[7][26]
Tasa de medio Tasa a la que la unidad puede leer bits
de la supercie del medio.
Tiempo adicional de sector Tiempo adicional (bytes
entre sectores) necesitados para control de estructuras y dems informacin necesaria para administrar
la unidad, localizar y validar informacin y realizar
otras funciones de soporte.[27]
Tiempo de cambio de cabezal Tiempo adicional es necesitado para elctricamente cambiar un cabezal a
otro y comenzar la lectura; solo aplica a las unidades con mltiples cabezales y suele ser entre 1 y 2
ms.[27]

Tiempo de cambio de cilindro Tiempo adicional es


necesitado para moverse a la primera pista del
siguiente cilindro y comenzar la lectura; el nombre
de cilindro es usado comnmente debido a que
todas las pistas de una unidad con ms de un cabezal
o plato son ledas antes de que el brazo del actuador
1.3 Otros
se mueva. Este tiempo suele ser el doble del tiempo
de bsqueda pista por pista. En el 2001 era entre 2
El tiempo de procesamiento de comandos es el tiempo que
y 3 ms.[28]
le toma a los electrnicos de la unidad de almacenamiento para congurar la comunicacin necesaria entre los La tasa de transferencia de datos (lectura/escritura) puevarios componentes en el dispositivo para que se pue- de ser medida al escribir un archivo de gran tamao en el
dan leer o escribir datos. Esto toma alrededor de 0.003 disco usando herramientas especiales para generar archims, signicativamente menos que otros tiempos de espe- vos, luego se lee el archivo.
ra por lo que generalmente es ignorado en las pruebas de
hardware.[2][24]
Desde el ao 2001, un disco duro tpico de 7200
El tiempo de estabilizacin es el tiempo que le toma al

RPM de una PC de escritorio cuenta con una tasa de

3
transferencia de datos de disco-a-buer de ms de
1030 Mbit/s.[29] Esta tasa depende de la ubicacin
de la pista por lo que ser mayor en las zonas exteriores (donde hay ms sectores por pista) y menor
en las zonas interiores (donde hay menos sectores
por pista); generalmente es ms alta para discos de
unidades de 10,000 RPM.
Los FDDs cuentan con una tasa de transferencia de
datos disco-a-buer sostenida que son uno o dos
rdenes de magnitud ms lentos que la tasa de los
HDDs.
La tasa transferencia de datos disco-a-buer sostenida vara entre familias de unidades de discos pticos con la ms lenta siendo 1x CDs con 1.23 Mbit/s
siendo un rendimiento similar a los FDDs, por otro
lado est Unidad de Blu-ray 12x con 432 Mbit/s, valor cercano a un HDD normal.

Un estndar usado ampliamente en la actualidad para la


interfaz buer-a-computadora es 3.0 Gbit/s SATA, este
puede enviar un aproximado de 300 megabyte/s (codicacin de 10 bits) desde el buer a la computadora por
lo que lleva una gran ventaja a las tasas de transferencia
de disco-a-buer de la actualidad.

CONSUMO DE PODER

2.2 Efecto de la densidad del rea


La tasa de transferencia de datos de un HDD depende de
la velocidad rotacional de los platos y de la densidad de
la grabacin de informacin. Debido a que el calor y la
vibracin limitan la velocidad rotacional, el incremento
de la densidad se ha vuelto el mtodo principal para mejorar tasas de transferencia secuencial.[33] La densidad de
rea (el nmero de bits que pueden ser guardados en un
rea especca del plato) ha ido aumentando con el tiempo por medio del incremento en el nmero de pistas a
travs del plato y el nmero de sectores por pista. Este
ltimo incrementa la tasa de transferencia de datos para
cierta frecuencia de RPM. Si nicamente se incrementa
el nmero de pistas en un plato se puede ver afectado el
tiempo de bsqueda pero no la tasa de transferencia bruta. Segn analistas y observadores de la industria, para los
aos desde el 2011 al 2016,[34][35] El camino que se sigue en la actualidad predice una mejora no mayor al 20%
cada ao en cuanto a densidad de bits.[36] Los tiempos
de bsqueda no se han podido mantener a la par de los
incrementos de la tasa de transferencia y estos ltimos
con el crecimiento en la densidad de bits y capacidad de
almacenamiento.

Los SSDs no tienen los mismos lmites internos que los


2.3 Intercalado
HDDs, por esto, sus tasas de transferencia interna y externa, estn constantemente maximizando las capacidades
El intercalado de sectores es una caracterstica de disde la interfaz de unidad-a-antrin.
positivos casi obsoleta en cuanto a su tasa de datos, en
los tiempos en los que las computadoras eran demasiado
lentas como para poder leer largos ujos de informacin
2.1 Efecto de sistema de archivos
continuamente. El intercalado introdujo espacios entre
La tasa de transferencia puede ser inuenciada por la sectores para darle tiempo, a los equipos lentos, de prepafragmentacin en el sistema de archivos y la presentacin rarse para leer el siguiente bloque de informacin. Sin el
de los archivos. La desfragmentacin es un procedimien- intercalado, el siguiente sector lgico llegara al cabezal
to usada para minimizar en retardo al recuperar informa- antes de que el equipo estuviera listo, esto requerira que
cin por medio del movimiento de objetos relacionados el sistema esperara una revolucin entera del plato antes
entre s a reas cercanas en el disco.[30] Algunos sistemas de poder realizar la lectura.
operativos llevan a cabo esta desfragmentacin autom- Sin embargo, como el intercalado introduce retardos fticamente. Aunque la desfragmentacin automtica fue sicos intencionalmente entre bloques de datos disminudiseada para reducir los retardos en el acceso, el pro- yendo la tasa de transferencia, congurar el intercalado a
cedimiento puede entorpecer la repuesta del dispositivo una proporcin mayor de la requerida causara retardos
mientras la computadora esta en uso.[31]
innecesarios a equipos que tienen el desempeo necesaLos SSDs basados en memoria Flash no necesitan ser desfragmentados, sin embargo, debido a que los SSDs escriben pginas de informacin mucho ms grandes que los
bloques de informacin que maneja el sistema de archivos, con el paso del tiempo, el rendimiento de un SSD
al escribir informacin se degrada debido a la cantidad
de pginas parcialmente llenas o que no se necesitan ms
que ocupan espacio. El proceso de degradacin se puede
mejorar usando el comando TRIM del sistema o por coleccin de basura interna. La memoria ash se desgasta
con el tiempo debido a las continuas escrituras en ella;
las escrituras necesitadas al hacer una desfragmentacin
desgastan la memoria sin ninguna ventaja de velocidad
como resultado.[32]

rio para leer sectores ms rpidamente. La proporcin de


intercalado era denida por el usuario para acomodarse
a las necesidades de su equipo.
La tecnologa moderna es capaz de leer datos tan rpido
como puede ser obtenida de los platos girando, por eso los
HDDs usualmente tienen una proporcin de intercalado
ja de 1:1 que efectivamente elimina el intercalado

3 Consumo de poder
El consumo de poder se ha vuelto cada vez ms importante, no solo en el mundo de los dispositivos mviles como

5
las laptops pero tambin en el mercado de los servidores y los equipos de escritorio. El incremento de densidad de equipos en un centro de datos ha llevado a conicto al proveer energa suciente a los dispositivos (especialmente en el spin-up), y al deshacerse del calor residual subsecuentemente producido junto con preocupaciones sobre cuestiones ambientales y de costo elctrico
(ver Green Computing). La disipacin del calor est relacionada directamente con el consumo de poder, y segn envejece una unidad, la tasa de fallas de discos incrementa a ms altas temperaturas.[37] Problemas similares
existen para largas compaas con miles de PCs de escritorio. Unidades de factor de forma menor generalmente
usan menos poder que las unidades de mayor tamao. Un
desarrollo interesante en esta rea es el control activo de
la velocidad de bsqueda con el propsito de que el cabezal llegue a su destino justo a tiempo para leer el sector
en vez de llegar lo ms rpido posible y luego tener que
esperar a que el sector llegue al cabezal (i.e. la latencia
rotacional).[38] Muchos de los fabricantes de discos duros
estn produciendo unidades verdes que necesitan mucho menos poder y enfriamiento. Muchas de estas unidades tienen platos girando ms lentamente (<5,400 RPM
comparado con 7,200, 10,000 o 15,000 RPM) por lo que
generan menos calor. El consumo de poder puede ser reducido deteniendo los cabezales cuando el disco no est
en uso reduciendo su friccin, ajustando las velocidades
de rotacin,[39] velocidades de rotacin y deshabilitando
componentes internos mientras no se usen.[40]
Los HDDs usan ms poder, brevemente, cuando estn
arrancando (spin-up). Aunque el efecto que tiene en el
consumo total de energa es mnimo, el mximo poder
exigido a la fuente de alimentacin, y por lo tanto su ndice pedido, puede ser reducido en sistemas con mltiples
unidades de almacenamiento controlando cuando los discos arrancan.
En discos duros SCSI, el controlador SCSI puede
administrar directamente el arranque y el reposo de
los discos duros.
Algunos discos duros PATA y SATA cuentan con
funciones como PUIS (power-up in standby), esto
no permite a los discos girar hasta que el controlador o el BIOS lo indiquen. Esto permite congurar
el sistema de manera que no se sature la fuente de
alimentacin con la demanda de energa al encender
el equipo.
Algunos SATA II y ms avanzados cuentan con
spin-up escalonado permitiendo a la computadora arrancar los discos duros secuencialmente distribuyendo la demanda de poder al encender el
equipo.[41]
La mayora de las unidades de disco duro operan con
alguna de forma de administracin de poder que utiliza un nmero especco de modos de poder que ahorran poder por medio de la reduccin de rendimiento.

Al implementarse, un HDD cambiara entre uno o ms


de los modos ahorradores de poder en funcin del uso
de la unidad. La recuperacin desde el estado ahorrador
ms profundo, comnmente llamado reposo, es cuando el
HDD se encuentra detenido (o spun-down), puede tomar
varios segundos para alcanzar un estado completamente
funcional.[42]

4 Resistencia a golpes
La resistencia a golpes es especialmente importante para dispositivos mviles. Algunas laptops incluyen proteccin activa del disco duro que detiene los cabezales del
disco duro si se deja caer el equipo, con suerte antes del
impacto, para ofrecer la mejor oportunidad de supervivencia en tal evento. La mxima tolerancia a impactos a
la fecha es de 350 g cuando est funcionando el HDD y
1,000 g cuando no este funcionando.[43]

21/8/2016

DispositivosdeAlmacenamiento

2DispositivosdeAlmacenamiento
2.1IntroduccinAlmacenamientoSecundario
"Eldiseodependerdelaslimitantesdelmedioydelambiente"
Silosarchivossealmacenaranenmemoria(RAM),noexistiraunadisciplinaparaelestudiodelmanejodearchivos
Diferenciasentrememoriaprimariaysecundaria:
Laprimeraesconsiderablementemsrpidaencomparacionconlasegunda
Laprimeraposeeunaccesoaleatorioylasegundano
Laprimeraesdemasiadocara:
256MbRAM>$40usd
120GbDiscoDuro>$95usd

2.2Tiposdedispositivosdealmacenamiento
AccesoSerie:cintas
AccesoDirecto:discos

http://ict.udlap.mx/people/carlos/is215/ir02.html

1/20

21/8/2016

DispositivosdeAlmacenamiento

2.2.1CintasMagnticas
Accesoserialosequencial
Compactas,fcilesdetransportaryextremadamentebaratas
Anteriormenteseusaronparaalmacenaraplicaciones,actualmentesolorespaldos
Seusanmuchoencombinacioncon"robots"capacesdecambiarlascintasentreracksdealmacenamiento

2.2.2Discos
2.2.2.1Tiposdediscos
DiskDrives=Discosmagnticos
Peronotodoslosdiscossoniguales:

Magnticos
DiscosDuros(HardDisk)
Diskette(Floppy)3.5",51/4"8"
DiscosRemovibles(DiskCartridges)
IomegaZip(100Mb)
Jaz(1Gb)
Opticos
2.2.2.2PartesdeunDisco

Floppy51/4"

http://ict.udlap.mx/people/carlos/is215/ir02.html

2/20

21/8/2016

DispositivosdeAlmacenamiento

Partesdeundiscoduro

Organizacindelossectores
Alprincipionoeranadyacentes,existaunfactordeintercalamientode3o5
Actualmentegraciasalasvelocidadesdelosdiscossipuedenestaradyacentes

http://ict.udlap.mx/people/carlos/is215/ir02.html

3/20

21/8/2016

DispositivosdeAlmacenamiento

1platodediscocon2carasyunintercalamientode3

Clusters
RelacionadoacmoveelSistemaOperativoaldisco
Sonunnmerofijodesectorescontinuos(grupo)
Permitenqueselean"clusters"yasievitartenerqueleersectorporsector
ElnmerodesectoresagrupadossepuedeajustarenlamayoradelosOS(165535),default3512
Tip:clustersgrandesparaarchivosgrandesyviceversa

Extents
Cuandounarchivonopuedeestarensectorescontiguosocurreun"extent"
Sihaydemasiadosextentstenemosunproblemaporqueseincrementaeltiempodeaccesoadisco
FragmentacinInterna
Sucedecuandounarchivonoesdelmismotamaoquelossectoresoclusters
Tip:clustersgrandesparaarchivosgrandesyviceversa

Clculosparaconocerinformacindelosdiscosduros
TrackCapacity=numberofsectorspertrackXbytespersector
CylinderCapacity=numberofsectorspercylinderXtrackcapacity
DriveCapacity=numberofcylindersXcylindercapacity
Nmerodebytesporsector=512
Nmerodesectoresportrack=63
Nmerodetracksporcilindro=16
Nmerodecilindros=4092
63*512=32256
16*32256=516096
4092*516096=2,111,864,832=2.1Gb

Nmerodebytesporsector=512
Nmerodesectoresportrack=63
Nmerodetracksporcilindro=16
Nmerodecilindros=6279
63*512=32256
16*32256=516096
59321*516096=30,615,330,816=30Gb

2.2.2.3Velocidadesdediscos
http://ict.udlap.mx/people/carlos/is215/ir02.html

4/20

21/8/2016

DispositivosdeAlmacenamiento

InternalMediaTransferRate
Lavelocidadinternadeldisco,paraleerlainformacin,alrededordeuno500Mbits/s(62.5Mb/s)enpromedio.
dleSpeed
(RPM)
3,600
4,200
4,500
4,900
5,200
5,400
7,200
10,000
12,000
15,000

Average
Latency(Half
TypicalCurrentApplications
Rotation)(ms)
8.3
Formerstandard,nowobsolete
7.1
Laptops
6.7
IBMMicrodrive,laptops
6.1
Laptops
5.8
Obsolete
5.6
LowendIDE/ATA,laptops
4.2
HighendIDE/ATA,LowendSCSI
3.0
HighendSCSI
2.5
HighendSCSI
2.0
TopofthelineSCSI

External(Interface)TransferRate
Lavelocidadparatranferirlosdatosdesdeeldiscoalrestodelacomputadoraestevalorsiempresermayorqueel
"internalrate"yaquehablamosdeactividadeselectrnicas.Lavelocidaddependedeltipodeinterfacequesoporteel
disco,estosemencionaenlasseccionessiguientes.

2.2.2.4Interfacesparatransmisindedatos
TiposdeInterfacesparatransmisindedatos:
IDE:IntegratedDriveElectronics
ATA,FastATA,FastATA2conLBA(LogicalBlockAddressing)
UltraATA(UATA)
DirectMemoryAccess(DMA)30Mb/s
UltraDirectMemoryAccess(UDMA)60100Mb/s
SerialATA150Mb/s
USB:Universalserialbus480Mbits/s
SCSI:SmallComputerSystemInterface5320Mb/s
FiberChannel2Gbits/s

UltraATA

http://ict.udlap.mx/people/carlos/is215/ir02.html

5/20

21/8/2016

DispositivosdeAlmacenamiento

DirectMemoryAccess(DMA):eseltrminoparaidentificaralprotocolodetransferenciaatravsdelcualun
dispositivopuedeenviar/recibirinformacindirectamentedememoriasinutilizarelprocesador.

UnconectorIDE/ATAenundisco(arriba)yuncableregularde40conductoresIDE/ATAcable(abajo).

UltraDMA:agregatransicionenambosextremosdelreloj,doblandoaslavelocidadtambinintroduceelusodeCRC
(cyclicalredundancychecking).

http://ict.udlap.mx/people/carlos/is215/ir02.html

6/20

21/8/2016

DispositivosdeAlmacenamiento

80conductorUltraDMAIDE/ATAinterfacecable.
Ntenselosconectoresazul,grisynegro,ascomolos80cables.
Lamarcarojaindicandoelcable#1estpresentetambin(aunquenoseaprecieenlafoto)

Comparacinentreloscablesde80conductoresy40conductores.

SCSI(SmallComputerSystemInterface)
SCSInoesnicamenteunainterface,estodounprotocolodecomunicacinquehaidoevolucionandoconeltiempo
hastallegaraconvertirseenlainterfacemsrpidaenelmercado.
Transfer
Mode

Bus
Bus
Defining
Width Speed
Standard
(bits) (MHz)

Through
put
(MB/s)

Maximum
CableLength
(m)

Cabling

"Regular"
SCSI(SCSI
1)

SCSI1

6
50pin

25

WideSCSI
SCSI2

16

10

68pin

25

FastSCSI
SCSI2

10

10

50pin

25

FastWide

http://ict.udlap.mx/people/carlos/is215/ir02.html

7/20

21/8/2016

DispositivosdeAlmacenamiento
FastWide
SCSI

SCSI2

16

10

20

3
68pin

25

1.5

UltraSCSI

SCSI3/
SPI

20

20

50pin

25

1.5

WideUltra
SCSI

SCSI3/
SPI

16

20

40

68pin

25

12

Ultra2SCSI

SCSI3/
SPI2

40

40

50pin

25

25

12

WideUltra2
SCSI

SCSI3/
SPI2

16

40

80

68pin

25

25

Ultra3SCSI

SCSI3/
SPI3

40
(DT)

16

160

12
68pin

25

Ultra160(/m)
SCSI

SCSI3/
SPI3

40
(DT)

16

160

12
68pin

25

Ultra160+
SCSI

SCSI3/
SPI3

40
(DT)

16

160

12
68pin

25

Ultra320
SCSI

SCSI3/
SPI4

16

80
(DT)

320

12
68pin

25

Lostiposdeconectoreshanidocambiando,permitiendoprincipalmente:
Enviarmayorcantidaddedatosconmayorvelocidadymayorconfiabilidad
http://ict.udlap.mx/people/carlos/is215/ir02.html

8/20

21/8/2016

DispositivosdeAlmacenamiento

Tenerunmenortamaodelconectorparaadecuarloadistintosdispositivos

DShell(DSub,DD):ElprimerSCSIstandard,SCSI1

UnconectormachoDD50SCSI
Seobservaelmetal"Dshaped"alrededordelospins.
Cuidado:ElconectorAppleDB25SCSIesmecnicamenteindnticoalconectorparalelodeunaPC,ungravedao
puedeocurrir.
Centronics:otroconectorSCSI1standardde50pin,tambinllamado"Centronicsconnector"

Conectormacho(arriba)yhembra50pinCentronicsconnectors.
Seobservaquelospinssonplanosylasesquinasposeenpestaasparaconectarse.
HighDensity(HD):ElconectorDshellbasadoenelSCSI1standardfuereemplazadoporunonuevodealta
densidadbasadpenSCSI2.

Machosde50pin(izquierda)y68pinconectoresdealtadensidadexternos.
VeryHighDensityCableInterconnect(VHDCI):ParamejorardemaneranotablelaflexibilidaddelhardwareSCSI
surgeestenuevoconector

Amale68pinVHDCIconnector.
Conectoresinternos(unshielded):

http://ict.udlap.mx/people/carlos/is215/ir02.html

9/20

21/8/2016

DispositivosdeAlmacenamiento

RegularDensity:DefinidoparaSCSI1standardparadispositivosde8bits.Esunaconectorrectangularde25
pinsmuysimilaraldelosIDE/ATAexceptoportener5pinsextraencadarengln.

Macho(arriba)yhembra50pinregulardensity.
HighDensity:SCSI2definiestosconectoresquellamadosdealtadensidadporqueelespacioentrepinsesde
lamitaqueenlosantiguosSCSI1hacindolosmuchomspequeos.

Unmachointerno,highdensity68pinconnector.
SingleConnectorAttachment(SCA):EselestandarparaconectoresSCSIinternos,norefirindosealoscables
sinolainterfaceintegradaenalgunatarjeta.

Unconectorhembrade80pinSCAconnector.

SerialATAInterface

http://ict.udlap.mx/people/carlos/is215/ir02.html

10/20

21/8/2016

DispositivosdeAlmacenamiento

1stgeneration
Approximate
150MB/s
DataRate
Approximate
1.5GB/s
BusSpeed
Introduction Mid2002
Signal

compatibility

2ndgeneration 2ndgeneration
300MB/s

600MB/s

3.0GB/s

6.0GB/s

Mid2004
Compatible
w/1st
generation

Mid2007
Compatiblew/
2ndgeneration

UniversalSerialBus(USB)
Velocidadde480Mbits/s
Elcablepuedetenerunlargode5metros.

FCFiberChannel
Velocidadde2Gbits/s
Elcablepuedemedirhasta15km

Ejemplosdeconfiguracionesdediscos

http://ict.udlap.mx/people/carlos/is215/ir02.html

11/20

21/8/2016

DispositivosdeAlmacenamiento

2.2.2.5DiskHandling
Losdiscospuedensufrirsobrecalentamiento,poresoenalgunoscasosserecomiendanalgunos"DriveCoolers"que
sonventiladoresmuysimilaresalosqueusaelCPU.Sepeganaldiscodirectamenteconunacintatrmicasobreel
disco.

Otramaneradeenfriarlosdiscosesatravsde"BayCoolers"quesongabinetesporejemplode5.25"queenvuelven
aldrivede3.5"yproveenunaexcelenteventilacin.

http://ict.udlap.mx/people/carlos/is215/ir02.html

12/20

21/8/2016

DispositivosdeAlmacenamiento

Paratranportarundiscoesimportantemantenerloalejadodealgunadescarga,anlaestticaqueloshumanos
podemostener.
Antistaticbag

SeaShell

2.2.2.6RetailvsOEMdrives
Undisco"Retail"incluye:
HardDiskDrive:Eldiscoconsuempaque
InstruccionesdeInstalacin
Driversy/outileras.
MountingHardware:tornillosy/oplacasparainstalareldiscoenelgabinete
InterfaceCable
TarjetadeGaranta
Cajita
EncontrasteunOEM"originalequipmentmanufacturer"incluye:
http://ict.udlap.mx/people/carlos/is215/ir02.html

13/20

21/8/2016

DispositivosdeAlmacenamiento

HardDiskDrive:Eldiscoconsuempaque
Jumpers:jumpersparaconfigurareldisco

2.2.2.7CDROM/DVDROM
Muypopularesdebidoaquesurgieronconfinesmusicales,deahqueseantaneconmicos
Elesquemavistoenlosdiscosduros(sectores,tracks,etc)noaplicaaquyaquelainformacinesalmacenada
enformadeespiral
Escrituradelcentrohaciaafueradeldisco

2.3SubsistemasdeDisco
Problema:
Capacidadlimitadaencuantoalespaciodealmacenamientopordisco.
ExisteuncuellodebotellaenloqueserefiereaI/Oparaaquellossistemasquerequierendegran
performance
Accesoadisco(milisegundos)vsRAM(nanosegundos)
Soluciones:
RAID(RedundantArraysofInexpensive/IndependientDisks)
DiskCatching

2.3.1RAID
Existen6nivelesdiferentesloscualesusanmltiplesdiscosdurosparamejorarlavelocidad,la
fiabilidadoambos.
Losniveles15estnrelacionadosconlafiabilidad(redundanciadedatos)peronoofrecengrandes
mejorasenloqueserefiereaoperacionesdelectura.
Laredundanciapermitetenermltiplescopiasdelosmismosdatosenvariosdiscosdemaneraquesi
algunofallalosdatosnosepierden.
ParaqueunRAIDfuncionequerequiereinvertirenunhardwarequepermitaobtenerlosbeneficios
dedichatcnica,deotramaneraelmaximizarelusodecacheesunabuenasolucin.
RAID0:
Especficoparaaumentarelperformance,noproveeredundancia
Losdatosseenvan(almacenan)enlosdiferentesdiscos
Paralacomputadoravariosdiscosseapreciancomosifueran1solo.
Serequierenalmenos2discosparaimplementarlo

RAID1:
Estenivelproduceun"espejo"(mirror)delosdatos,losmismosdatossonalmacenadosen2discos
Estosdiscospuedenonoestarenlamismamquina
Laslecturastiendenasermsrpidasquesisehicierandeunsolodisco,yaquelosdatospueden
serledossimultneamentedeambos.
Lasescriturassuelensermslentasyaqueseestnescribiendo2copiasdelosdatos.
Serequierenalmenos2discosparaimplementarlo

http://ict.udlap.mx/people/carlos/is215/ir02.html

14/20

21/8/2016

DispositivosdeAlmacenamiento

RAID2:
Utilizacdigosdecorreccindeerroresparacompensarlacarenciadedichafuncionalidadenalgunos
discos
Actualmenteyanoesmuyutilizadodebidoaquelamayoradelosdispositivosposeedicha
caracterstica.

RAID3:
Almacenatodalainformacinendiferentesdiscosperoanivelbyte.
Undiscoestdedicadoexclusivamenteaguardarelbitdeparidad,demaneraquesialgundiscofalla
losdatossepuederecuperargraciasaestebit.
Serequierenalmenos3discosparaimplementarlo

RAID4:
SimilaraRAID3conladiferenciaquelaparidadsealmacenaporbloques.
Laparidadtambinsealmacenaenunsolodisco
Enamboscasoseldiscodeparidadsepuedevolveruncuellodebotella
Serequierenalmenos3discosparaimplementarlo

RAID5:
SemejanteaRAID4soloqueconladiferenciadequelaparidadsedivideentretodoslosdiscosdel
arreglo.
http://ict.udlap.mx/people/carlos/is215/ir02.html

15/20

21/8/2016

DispositivosdeAlmacenamiento

Resistelacadaofalladeundisco
Lasescriturassonlentasdebidoaqueunsencillaoperacindeescriturarequiereleerlosdatosdel
bloqueascomosuparidad,recalcularlaparidadconlosnuevosdatosyescribirentrelosdiferentes
discosdelraid.
Sinembargolagranmejoraentiempodelecturaminimizaeloverheadquesegastaenlasescrituras.
Elrendimientopuedellegaraserigualomejorquesitrabajramosconunsolodisco.
Serequierenalmenos3discosparaimplementarlo
OtrosNivelesdeRAID,basadosenlasideasgeneralesdelos6nivelesbsicos(noseencuentran
disponiblesentodaslasimplementacionesdisponibles)

RAID6
SimilaraRAID5
Incluyeunesquemadeparidadadicionaldistribuidoatravsdelosdiferentesdiscos
SerequierenalmenosN+2discosparaimplementarlo

RAID7
Principalmenteimplementadoanivelhardware
Aprovechapropiedaddeunsistemaoperativoinmerso(embedded)paratenerlasventajasdelbusde
transferencia
Permitegrandesvelocidadesentransferenciadedatos
MarcaRegistradaporStorageComputerCorporation.

RAID10
Esunarreglodeclases(stripes),cadaunadeellascompuestaporunarreglodediscosconRAID1
Escostodeestaimplementacinesdemasiadoalto,tantoenrecursoscomoendinero
Serequierenalmenos4discosparaimplementarlo

http://ict.udlap.mx/people/carlos/is215/ir02.html

16/20

21/8/2016

DispositivosdeAlmacenamiento

RAID53
Esunarreglodeclases(stripes),cadaunadeellascompuestaporunarreglodediscosconRAID3
Estoofrecegranvelocidadperoelcostoesdemasiadoalto
Serequierenalmenos5discosparaimplementarlo

RAID0+1
Esunarreglodediscosespejo
CadasegmentodediscosestconfiguradocomounRAID0

ImplementacionesdeRAID

Conceptosrelacionados:
DiscSpare(HotSpare):discosoparticionesderespaldoqueentran
automticamentesialgunodelosdiscosdelarreglotienealgunafalla
DispositivosHotPlug:mquinas/discosquepuedenseragregadosal
arregloencalientesinnecesidaddereiniciarlamquina.
UnRAIDpuedeestarimplementadoenHardwareoenSoftware
Hardware:Sonmsrpidos,peromscostosos

http://ict.udlap.mx/people/carlos/is215/ir02.html

17/20

21/8/2016

DispositivosdeAlmacenamiento

SunStorEdgeT3169Tb
Software:
SolarisVolumeManager(SolsticeDiskSuite)

LinuxKernels
http://www.linux.org/docs/ldp/howto/SoftwareRAIDHOWTO.html
WindowsManagementConsole>DiskManagement

2.3.2DiskCatching
http://ict.udlap.mx/people/carlos/is215/ir02.html

18/20

21/8/2016

DispositivosdeAlmacenamiento

UtilizalamemoriaRAMdelsistemaounamemoriacachdeldiscopara"cachar"elI/Odeldisco.
Debidoaestasmemoriasmsrpidaselrendimientoaumenta.
Cuandoseleeralgodeldiscolomsrecientesealmacenaenestacachedemaneraquecuandose
haceotrallamadaaldiscostaseinterceptayserevisasilosdatosseencuentranenelbufferde
memoria,siesaslosdatosseutilizandestaynodeldisco.
ImplementacindeCatching
LaconfiguracindelDiskCatchingsuelehacerseenelBIOSdelamquina.
AlgunosSistemasOperativosautomticamenteutilizanlamemoriaRAMlibrepararealizarelcatching
Laincludaeneldisco,actualmente2MBendrivesIDE/ATAydehasta16MBenalgunosSCSI.

2.4NAS(NetworkAttachedStorage)
Esundispositivoqueposeeundiscoduro,unatarjetacontroladora,unatarjetadered,yelsoftware
necesarioqueincluyelosprotocolosparaquelosarchivosseanalcanzablesdesdelasdemsmquinas
(NFS,CIFS,InternetworkPacketExchange)

2.5SAN(StorageAreaNetwork)
Reddedicadacreadaparapermitiraungrupodeservidoreselcompartirsistemasdealmacenamientode
altavelocidad

http://ict.udlap.mx/people/carlos/is215/ir02.html

19/20

21/8/2016

DispositivosdeAlmacenamiento

Libro:UsingSANsandNAS,Oreilly

2.6CAS(ContentAddressedStorage)

Referenciastomadasde
http://www.acnc.com
http://www.storage.com
http://www.emc.com

http://ict.udlap.mx/people/carlos/is215/ir02.html

20/20

Unidad de disco duro


1 Historia

En informtica, la unidad de disco duro o unidad de


disco rgido (en ingls: Hard Disk Drive, HDD) es el
dispositivo de almacenamiento de datos que emplea un
sistema de grabacin magntica para almacenar archivos
digitales. Se compone de uno o ms platos o discos rgidos, unidos por un mismo eje que gira a gran velocidad
dentro de una caja metlica sellada. Sobre cada plato, y
en cada una de sus caras, se sita un cabezal de lectura/escritura que ota sobre una delgada lmina de aire
generada por la rotacin de los discos. Es memoria no
voltil.

El primer disco duro fue inventado por IBM, en 1956. A


lo largo de los aos, han disminuido los precios de los discos duros, al mismo tiempo que han multiplicado su capacidad, siendo la principal opcin de almacenamiento secundario para computadoras personales, desde su aparicin en los aos 1960.[1] Los discos duros han mantenido
su posicin dominante gracias a los constantes incrementos en la densidad de grabacin, que se ha mantenido a la Antiguo disco duro de IBM (modelo 62PC, Piccolo), de 64,5
par de las necesidades de almacenamiento secundario.[1] MB, fabricado en 1979.
Los tamaos tambin han variado mucho, desde los
primeros discos IBM hasta los formatos estandarizados actualmente: 3,5 pulgadas los modelos para PC y
servidores, y 2,5 pulgadas los modelos para dispositivos
porttiles. Todos se comunican con la computadora a travs del controlador de disco, empleando una interfaz estandarizada. Los ms comunes hasta los aos 2000 han
sido IDE (tambin llamado ATA o PATA), SCSI (generalmente usado en servidores y estaciones de trabajo).
Desde el 2000 en adelante ha ido masicndose el uso de
los SATA. Existe adems FC (empleado exclusivamente
en servidores).

Al principio los discos duros eran extrables, sin embargo,


hoy en da tpicamente vienen todos sellados (a excepcin
de un hueco de ventilacin para ltrar e igualar la presin
del aire).
El primer disco duro, aparecido en 1956, fue el Ramac
I, presentado con la computadora IBM 350: pesaba una
tonelada y su capacidad era de 5 MB. Ms grande que un
frigorco actual, este disco duro trabajaba todava con
vlvulas de vaco y requera una consola separada para su
manejo.
Su gran mrito consista en el que el tiempo requerido
para el acceso era relativamente constante entre algunas
posiciones de memoria, a diferencia de las cintas magnticas, donde para encontrar una informacin dada, era
necesario enrollar y desenrollar los carretes hasta encontrar el dato buscado, teniendo muy diferentes tiempos de
acceso para cada posicin.

Para poder utilizar un disco duro, un sistema operativo


debe aplicar un formato de bajo nivel que dena una o
ms particiones. La operacin de formateo requiere el uso
de una fraccin del espacio disponible en el disco, que
depender del sistema de archivos o formato empleado.
Adems, los fabricantes de discos duros, unidades de estado slido y tarjetas ash miden la capacidad de los mismos usando prejos del Sistema Internacional, que emplean mltiplos de potencias de 1000 segn la normativa
IEC e IEEE, en lugar de los prejos binarios, que emplean mltiplos de potencias de 1024, y son los usados por
sistemas operativos de Microsoft. Esto provoca que en algunos sistemas operativos sea representado como mltiplos 1024 o como 1000, y por tanto existan confusiones,
por ejemplo un disco duro de 500 GB, en algunos sistemas operativos ser representado como 465 GiB (es decir
gibibytes; 1 GiB = 1024 MiB) y en otros como 500 GB.

La tecnologa inicial aplicada a los discos duros era relativamente simple. Consista en recubrir con material magntico un disco de metal que era formateado en pistas
concntricas, que luego eran divididas en sectores. El cabezal magntico codicaba informacin al magnetizar diminutas secciones del disco duro, empleando un cdigo
binario de ceros y unos. Los bits o dgitos binarios
as grabados pueden permanecer intactos durante aos.
Originalmente, cada bit tena una disposicin horizontal
en la supercie magntica del disco, pero luego se descubri cmo registrar la informacin de una manera ms
1

3 ESTRUCTURA FSICA

compacta.
El mrito del francs Albert Fert y al alemn Peter
Grnberg (ambos premio Nobel de Fsica por sus contribuciones en el campo del almacenamiento magntico) fue el descubrimiento del fenmeno conocido como
magnetorresistencia gigante, que permiti construir cabezales de lectura y grabacin ms sensibles, y compactar ms los bits en la supercie del disco duro. De estos
descubrimientos, realizados en forma independiente por
estos investigadores, se desprendi un crecimiento espectacular en la capacidad de almacenamiento en los discos
duros, que se elev un 60 % anual en la dcada de 1990.
En 1992, los discos duros de 3,5 pulgadas alojaban 250
MB, mientras que 10 aos despus haban superado 40
GB (40 000 MB). A la fecha (2016), ya se dispone de en
el uso cotidiano con discos duros de ms de 5 TB, esto
es, 5000 GB (5 000 000 MB).

Componentes de una unidad de disco duro. De izquierda a derecha, la superior: tapa, carcasa, plato, eje; la inferior: espuma
aislante, circuito impreso de control, cabezal de lectura/escritura,
actuador e imn, tornillos.

En 2001 fue lanzado el iPod, que empleaba un disco duro


que ofreca una capacidad alta para la poca. Junto a la Cada plato posee dos ojos, y es necesaria una cabeza
simplicidad, calidad y elegancia del dispositivo, este fue de lectura/escritura para cada cara. Si se observa el esun factor clave para su xito.
quema Cilindro-Cabeza-Sector, a primera vista se ven 4
brazos,
uno para cada plato. En realidad, cada uno de los
En 2005 los primeros telfonos mviles que incluan disbrazos
es
doble, y contiene dos cabezas: una para leer la
cos duros fueron presentados por Samsung y Nokia, auncara
superior
del plato, y otra para leer la cara inferior.
que no tuvieron mucho xito ya que las memorias ash los
Por
tanto,
hay
ocho cabezas para leer cuatro platos, aunacabaron desplazando, debido al aumento de capacidad,
que
por
cuestiones
comerciales, no siempre se usan todas
mayor resistencia y menor consumo de energa.
las caras de los discos y existen discos duros con un nmero impar de cabezas, o con cabezas deshabilitadas. Los
cabezales de lectura/escritura no tocan el disco, sino que
2 Estructura lgica
pasan muy cerca (hasta a 3 nanmetros), debido a una
nsima pelcula de aire que se forma entre los cabezaDentro del disco se encuentran:
les y los platos cuando los discos giran (algunos discos
incluyen un sistema que impide que los cabezales pasen
El registro de arranque principal (Master Boot Re- por encima de los platos hasta que alcancen una velocicord, MBR), en el bloque o sector de arranque, que dad de giro que garantice la formacin de esta pelcula).
Si alguna de las cabezas llega a tocar una supercie de un
contiene la tabla de particiones.
plato, causara muchos daos en l, rayndolo gravemen Las particiones de disco, necesarias para poder co- te, debido a lo rpido que giran los platos (uno de 7200
locar los sistemas de archivos.
revoluciones por minuto se mueve a 129 km/h en el borde
de un disco de 3,5 pulgadas).

Estructura fsica

3.1 Direccionamiento

Dentro de la unidad de disco duro hay uno o varios discos


Hay varios conceptos para referirse a zonas del disco:
(de aluminio o cristal) concntricos llamados platos (normalmente entre 2 y 4, aunque pueden ser hasta 6 o 7 segn
Plato: cada uno de los discos que hay dentro de la
el modelo), y que giran todos a la vez sobre el mismo eje,
unidad de disco duro.
al que estn unidos. El cabezal (dispositivo de lectura y
escritura) est formado por un conjunto de brazos para Cara: cada uno de los dos lados de un plato.
lelos a los platos, alineados verticalmente y que tambin
Cabezal: nmero de cabeza o cabezal por cada cara.
se desplazan de forma simultnea, en cuya punta estn las
cabezas de lectura/escritura. Por norma general hay una
Pista: una circunferencia dentro de una cara; la pista
cabeza de lectura/escritura para cada supercie de cada
cero (0) est en el borde exterior.
plato. Los cabezales pueden moverse hacia el interior o el
Cilindro: conjunto de varias pistas; son todas las cirexterior de los platos, lo cual combinado con la rotacin
cunferencias que estn alineadas verticalmente (una
de los mismos permite que los cabezales puedan alcanzar
de cada cara).
cualquier posicin de la supercie de los platos.

3.2

Factor de Forma

Pista/
Cilindro

disco duro. As las pistas se agrupan en zonas de pistas de igual cantidad de sectores. Cuanto ms lejos
del centro de cada plato se encuentra una zona, sta
contiene una mayor cantidad de sectores en sus pistas. Adems mediante ZBR, cuando se leen sectores
de cilindros ms externos la tasa de transferencia de
bits por segundo es mayor; por tener la misma velocidad angular que cilindros internos pero mayor
cantidad de sectores.[3]
Sector geomtrico: son los sectores contiguos pero
de pistas diferentes.

Sector

Clster: es un conjunto contiguo de sectores.

Cabezas
8 cabezas,
4 platos

Cilindro, Cabezal y Sector.

El primer sistema de direccionamiento que se us


fue el Cilindro-Cabezal-Sector (Cylinder-Head-Sector,
CHS), ya que con estos tres valores se puede situar un dato cualquiera del disco. Ms adelante se cre otro sistema
ms sencillo, que actualmente se usa: direccionamiento
de bloques lgicos (Logical Block Addressing, LBA), que
consiste en dividir el disco entero en sectores y asignar a
cada uno un nico nmero.

A
C

3.2 Factor de Forma


B

Estructura de disco magntico:


A es una pista del disco (roja),
B es un sector geomtrico (azul),
C es un sector de una pista (magenta),
D es un grupo de sectores o clster (verde).

Seis unidades de disco duro con carcasas abiertas mostrando platos y cabezales; 8, 5, 3, 2, 1 y 1 pulgadas de dimetro de
los discos que representan.

El ms temprano "factor de forma" de los discos duros,


hered sus dimensiones de las disqueteras. Pueden ser
montados en los mismos chasis y as los discos duros con
Sector : cada una de las divisiones de una pista. El factor de forma, pasaron a llamarse coloquialmente tipos
tamao del sector no es jo, siendo el estndar ac- FDD "oppy-disk drives" (en ingls).
tual 512 bytes, aunque la IDEMA[2] ha creado un
comit que impulsa llevarlo a 4 KiB. Antiguamente La compatibilidad del factor de forma continua siendo
el nmero de sectores por pista era jo, lo cual des- de 3 pulgadas (8,89 cm) incluso despus de haber saaprovechaba el espacio signicativamente, ya que en cado otros tipos de disquetes con unas dimensiones ms
las pistas exteriores pueden almacenarse ms secto- pequeas.
res que en las interiores. As, apareci la tecnolo 8
pulgadas:
241,3117,5362
mm
ga grabacin de bits por zonas (Zone Bit Recording, ZBR) que aumenta el nmero de sectores en
(9,54,62414,25 pulgadas).
las pistas exteriores, y utiliza ms ecientemente el
En 1979, Shugart Associates sac el primer factor

4
de forma compatible con los disco duros, SA1000,
teniendo las mismas dimensiones y siendo compatible con la interfaz de 8 pulgadas de las disqueteras.
Haba dos versiones disponibles, la de la misma
altura y la de la mitad (58,7 mm).
5,25
pulgadas:
146,141,4203
mm
(5,751,638 pulgadas). Este factor de forma
es el primero usado por los discos duros de Seagate
en 1980 con el mismo tamao y altura mxima de
los FDD de 5 pulgadas, por ejemplo: 82,5 mm
mximo.
ste es dos veces tan alto como el factor de 8
pulgadas, que comnmente se usa hoy; por ejemplo:
41,4 mm (1,64 pulgadas). La mayora de los
modelos de unidades pticas (DVD/CD) de 120
mm usan el tamao del factor de forma de media
altura de 5, pero tambin para discos duros. El
modelo Quantum Bigfoot es el ltimo que se us a
nales de los 90'.

CARACTERSTICAS DE UN DISCO DURO

0,85 pulgadas: 24532 mm.


Toshiba anunci este factor de forma el 8 de enero
de 2004 para usarse en mviles y aplicaciones similares, incluyendo SD/MMC slot compatible con
disco duro optimizado para vdeo y almacenamiento para micromviles de 4G. Toshiba actualmente
vende versiones de 4 GB (MK4001MTD) y 8 GB
(MK8003MTD) 5 y tienen el rcord Guinness del
disco duro ms pequeo.
Los principales fabricantes suspendieron la investigacin
de nuevos productos para 1 pulgada (1,3 pulgadas) y 0,85
pulgadas en 2007, debido a la cada de precios de las
memorias ash, aunque Samsung introdujo en el 2008
con el SpidPoint A1 otra unidad de 1,3 pulgadas.
El nombre de pulgada para los factores de forma normalmente no identica ningn producto actual (son especicadas en milmetros para los factores de forma ms
recientes), pero estos indican el tamao relativo del disco,
para inters de la continuidad histrica.

3,5 pulgadas: 101,625,4146 mm (415.75


pulgadas).
Este factor de forma es el primero usado por los dis- 4 Caractersticas de un disco duro
cos duros de Rodine que tienen el mismo tamao
que las disqueteras de 3, 41,4 mm de altura. Hoy
Las caractersticas que se deben tener en cuenta en un
ha sido en gran parte remplazado por la lnea slim
disco duro son:
de 25,4 mm (1 pulgada), o low-prole que es usado en la mayora de los discos duros.
Tiempo medio de acceso: tiempo medio que tarda
la aguja en situarse en la pista y el sector deseado; es
2,5
pulgadas:
69,859,5-15100
mm
la suma del Tiempo medio de bsqueda (situarse
(2,750,374-0,593,945 pulgadas).
en la pista), Tiempo de lectura/escritura y la LaEste factor de forma se introdujo por PrairieTek
tencia media (situarse en el sector).
en 1988 y no se corresponde con el tamao de las
lectoras de disquete. Este es frecuentemente usado
Tiempo medio de bsqueda: tiempo medio que
por los discos duros de los equipos mviles (portarda la aguja en situarse en la pista deseada; es la
ttiles, reproductores de msica, etc...) y en 2008
mitad del tiempo empleado por la aguja en ir desde
fue reemplazado por unidades de 3,5 pulgadas de la
la pista ms perifrica hasta la ms central del disco.
clase multiplataforma. Hoy en da la dominante de
Tiempo de lectura/escritura: tiempo medio que
este factor de forma son las unidades para porttiles
tarda el disco en leer o escribir nueva informacin:
de 9,5 mm, pero las unidades de mayor capacidad
Depende de la cantidad de informacin que se quietienen una altura de 12,5 mm.
re leer o escribir, el tamao de bloque, el nmero
de cabezales, el tiempo por vuelta y la cantidad de
1,8 pulgadas: 54871 mm.
sectores por pista.
Este factor de forma se introdujo por Integral Peripherals en 1993 y se involucr con ATA-7 LIF con
Latencia media: tiempo medio que tarda la aguja en
las dimensiones indicadas y su uso se incrementa en
situarse en el sector deseado; es la mitad del tiempo
reproductores de audio digital y su subnotebook. La
empleado en una rotacin completa del disco.
variante original posee de 2 GB a 5 GB y cabe en una
ranura de expansin de tarjeta de ordenador perso Velocidad de rotacin: Es la velocidad a la que ginal. Son usados normalmente en iPods y discos dura el disco duro, ms exactamente, la velocidad a la
ros basados en MP3.
que giran el/los platos del disco, que es donde se almacenan magnticamente los datos. La regla es: a
1 pulgadas: 42,8536,4 mm.
mayor velocidad de rotacin, ms alta ser la transEste factor de forma se introdujo en 1999 por IBM
ferencia de datos, pero tambin mayor ser el ruido
y Microdrive, apto para los slots tipo 2 de compact
y mayor ser el calor generado por el disco duro. Se
ash, Samsung llama al mismo factor como 1,3 pulmide en nmero revoluciones por minuto (RPM).
gadas.
No debe comprarse un disco duro IDE de menos de

5.1

Tipos de conexin de datos

5400 RPM (ya hay discos IDE de 7200 RPM), a menos que te lo den a un muy buen precio, ni un disco
SCSI de menos de 7200 RPM (los hay de 10.000
RPM). Una velocidad de 5400 RPM permitir una
transferencia entre 10MB y 16MB por segundo con
los datos que estn en la parte exterior del cilindro o
plato, algo menos en el interior.revoluciones por minuto de los platos. A mayor velocidad de rotacin,
menor latencia media.
Tasa de transferencia: velocidad a la que puede
transferir la informacin a la computadora una vez
que la aguja est situada en la pista y sector correcDos conectores ATA macho en placa base.
tos. Puede ser velocidad sostenida o de pico.
Otras caractersticas son:
Cach de pista: es una memoria tipo ash dentro
del disco duro.

SCSI
SAS

Cuando se conecta indirectamente con la placa base (por


Interfaz: medio de comunicacin entre el disco du- ejemplo: a travs del puerto USB) se denomina disco duro
ro y la computadora. Puede ser IDE/ATA, SCSI, porttil o externo.
SATA, USB, Firewire, Serial Attached SCSI
Landz: zona sobre las que aparcan las cabezas una 5.1.1 IDE, ATA o PATA
vez se apaga la computadora.
La interfaz ATA (Advanced Technology Attachment) o
PATA (Parallel ATA), originalmente conocido como
IDE (Integrated Device Electronics o Integrated Drive
5 Conectores
Electronics), controla los dispositivos de almacenamiento
masivo de datos, como los discos duros y ATAPI (Advanced Technology Attachment Packet Interface) o unidades
de discos pticos como lectoras o grabadoras de CD y
DVD.
Hasta el 2004, aproximadamente, fue el estndar principal por su versatilidad y asequibilidad.
Son planos, anchos y alargados.
5.1.2 SATA
Serial ATA o SATA es el ms novedoso de los estndares
de conexin, utiliza un bus serie para la transmisin de
datos.
Conector ATA hembra en un cable cinta plano.

Notablemente ms rpido y eciente que IDE.


Fsicamente es mucho ms pequeo y cmodo que los
IDE, adems de permitir conexin en caliente (hot plug).

5.1

Tipos de conexin de datos

Las unidades de discos duros pueden tener distintos tipos


de conexin o interfaces de datos con la placa base. Cada
unidad de disco rgido puede tener una de las siguientes
opciones:
IDE
SATA

Existen tres versiones:


1. SATA 1 con velocidad de transferencia de hasta 150
MB/s (descatalogado),
2. SATA 2 de hasta 300 MB/s, el ms extendido en la
actualidad;
3. SATA 3 de hasta 600 MB/s el cual se est empezando a hacer lugar en el mercado.

5.1.3

SCSI

Las interfaces Small Computer System Interface (SCSI)


son interfaces preparadas para discos duros de gran capacidad de almacenamiento y velocidad de rotacin.
Se presentan bajo tres especicaciones:
1. SCSI Estndar (Standard SCSI),
2. SCSI Rpido (Fast SCSI) y

FUNCIONAMIENTO MECNICO

Motor, que hace girar los platos.


Electroimn, que mueve el cabezal.
Circuito electrnico de control, que incluye: interfaz
con la computadora, memoria cach.
Bolsita desecante (gel de slice), para evitar la humedad.
Caja, que ha de proteger de la suciedad, motivo por
el cual suele traer algn ltro de aire.

3. SCSI Ancho-Rpido (Fast-Wide SCSI).


Su tiempo medio de acceso puede llegar a 7 milisegundos
y su velocidad de transmisin secuencial de informacin
puede alcanzar tericamente los 5 Mbit/s en los discos
SCSI Estndares, los 10 Mbit/s en los discos SCSI Rpidos y los 20 Mbit/s en los discos SCSI Anchos-Rpidos
(SCSI-2).

6.1 Integridad

Debido a la distancia extremadamente pequea entre los


cabezales y la supercie del disco, cualquier contaminacin de los cabezales de lectura/escritura o las fuentes
puede dar lugar a un accidente en los cabezales, un fallo del disco en el que el cabezal raya la supercie de la
Un controlador SCSI puede manejar hasta 7 discos duros fuente, a menudo moliendo la na pelcula magntica y
SCSI (o 7 perifricos SCSI) con conexin tipo margarita causando la prdida de datos. Estos accidentes pueden
(daisy chain). A diferencia de los discos IDE, pueden tra- ser causados por un fallo electrnico, un repentino corte
bajar asincrnicamente con relacin al microprocesador, en el suministro elctrico, golpes fsicos, el desgaste, la
corrosin o debido a que los cabezales o las fuentes sean
lo que posibilita una mayor velocidad de transferencia.
de pobre fabricacin.
5.1.4

SAS

Serial Attached SCSI (SAS) es la interfaz de transferencia


de datos en serie, sucesor del SCSI paralelo, aunque sigue utilizando comandos SCSI para interaccionar con los
dispositivos SAS. Aumenta la velocidad y permite la conexin y desconexin en caliente. Una de las principales
caractersticas es que aumenta la velocidad de transferencia al aumentar el nmero de dispositivos conectados, es
decir, puede gestionar una tasa de transferencia constante
para cada dispositivo conectado, adems de terminar con
la limitacin de 16 dispositivos existente en SCSI, es por
ello que se vaticina que la tecnologa SAS ir reemplazando a su predecesora SCSI.
Adems, el conector es el mismo que en la interfaz SATA
y permite utilizar estos discos duros, para aplicaciones
con menos necesidad de velocidad, ahorrando costes. Por
lo tanto, las unidades SATA pueden ser utilizadas por
controladoras SAS pero no a la inversa, una controladora
SATA no reconoce discos SAS.

5.2

Fuente de alimentacin

Funcionamiento mecnico

Un disco duro suele tener:


Platos, en donde se graban los datos.
Cabezal de lectura/escritura.

El eje del sistema del disco duro depende de la presin


del aire dentro del recinto para sostener los cabezales y
su correcta altura mientras el disco gira. Un disco duro
requiere un cierto rango de presiones de aire para funcionar correctamente. La conexin al entorno exterior y la
presin se produce a travs de un pequeo agujero en el
recinto (cerca de 0,5 mm de dimetro) normalmente con
un ltro en su interior (ltro de respiracin, ver abajo).
Si la presin del aire es demasiado baja, entonces no hay
suciente impulso para el cabezal, que se acerca demasiado al disco, y se da el riesgo de fallos y prdidas de datos.
Son necesarios discos fabricados especialmente para operaciones de gran altitud, sobre 3.000 m. Hay que tener en
cuenta que los aviones modernos tienen una cabina presurizada cuya presin interior equivale normalmente a una
altitud de 2.600 m como mximo. Por lo tanto los discos
duros ordinarios se pueden usar de manera segura en los
vuelos. Los discos modernos incluyen sensores de temperatura y se ajustan a las condiciones del entorno. Los
agujeros de ventilacin se pueden ver en todos los discos
(normalmente tienen una pegatina a su lado que advierte al usuario de no cubrir el agujero). El aire dentro del
disco operativo est en constante movimiento siendo barrido por la friccin del plato. Este aire pasa a travs de un
ltro de recirculacin interna para quitar cualquier contaminante que se hubiera quedado de su fabricacin, alguna
partcula o componente qumico que de alguna forma hubiera entrado en el recinto, y cualquier partcula generada
en una operacin normal. Una humedad muy alta durante
un periodo largo puede corroer los cabezales y los platos.
Para los cabezales resistentes al magnetismo grandes
(GMR) en particular, un incidente minoritario debido a la

7
contaminacin (que no se disipa la supercie magntica
del disco) llega a dar lugar a un sobrecalentamiento temporal en el cabezal, debido a la friccin con la supercie
del disco, y puede hacer que los datos no se puedan leer
durante un periodo corto de tiempo hasta que la temperatura del cabezal se estabilice (tambin conocido como
aspereza trmica, un problema que en parte puede ser
tratado con el ltro electrnico apropiado de la seal de
lectura).
Los componentes electrnicos del disco duro controlan
el movimiento del accionador y la rotacin del disco, y
realiza lecturas y escrituras necesitadas por el controlador
de disco. El rmware de los discos modernos es capaz de
programar lecturas y escrituras de forma eciente en la
supercie de los discos y de reasignar sectores que hayan
fallado.

Mantenimiento y cuidado

Los discos duros tambin necesitan cuidado, siga las siguientes instrucciones para evitar la prdida de datos y
evitar que el disco duro quede inservible:
1. No quitar la etiqueta ligeramente plateada que se encuentra a los lados y/o algunas veces en la parte frontal, esto puede causar que entre polvo y raye el disco,
asimismo el polvo que pueda contener electricidad
puede mover los datos y causar daos.
2. No tapar los agujeros pequeos, ya que son un ltro
de aire y puede causar sobrecalentamiento.
3. Realizar peridicamente copias de seguridad en discos DVD, Blu-ray o en un disco duro externo de la
informacin importante, eventos como apagones o
ataques de virus pueden daar el disco duro o la informacin, si ocurre un apagn desconectar el ordenador. Si se usa un servicio de alojamiento de archivos, no debe ser la nica opcin ni se debe guardar
ah informacin delicada o crtica, pues el servicio
puede fallar, ser clausurado o atacado.
4. Se recomienda crear al menos dos particiones: Una
para el sistema operativo y los programas y otra para los datos del usuario. De esta forma se pueden
facilitar la copia de seguridad y la restauracin, al
posibilitar retroceder o reinstalar completamente el
sistema operativo sin perder los datos personales en
el proceso.
5. Optimizar (desfragmentar) el disco duro regularmente usando la herramienta incluida en el sistema
operativo o un programa de otro fabricante para reducir el desgaste, facilitar la recuperacin en caso
de un problema, y mantener una buena velocidad de
respuesta. Se recomienda una frecuencia de cuatro
a seis meses dependiendo del uso.

6. Descargar y usar un programa que lea los datos de


los sensores del disco duro (S.M.A.R.T.), para vigilar la condicin del disco duro. Si indica que est
en peligro, copiar la informacin importante y reemplazar el disco duro lo ms pronto posible para
evitar la prdida de informacin.
7. Evitar que el disco sufra golpes fsicos, especialmente durante su funcionamiento. Los circuitos, cabezales y discos pueden daarse.
8. Si el disco duro presenta problemas de conabilidad,
un funcionamiento anormalmente lento o aparecen
sin razn aparente archivos daados o ilegibles, analizarlo con un comprobador de disco. Tambin se recomienda realizar una comprobacin de rutina cada
cierta cantidad de meses para detectar errores menores y corregirlos antes de que se agraven.

8 Galera de imgenes
Disco duro de una laptop.
Unidad de disco duro de 2" que est abierto, exponiendo su funcionamiento interno. Disco duro Western Digital Scorpio Blue de 500 GB con conexiones
SATA; es comn en computadoras porttiles.
Interior de un disco duro; se aprecia la supercie de
un plato y el cabezal de lectura/escritura retrado, a
la izquierda.
Interior de la unidad de disco duro; se aprecian dos
platos con sus respectivos cabezales.
Cabezal del disco duro.
Cabezal de disco duro IBM sobre el plato del disco.
Pila de cabezales de disco duro Western Digital
(WD2500JS-00MHB0).
Un peine, 3 brazos, 6 cabezales, 3 platos.
Cabeza de disco duro sobre plato rayado. Rayaduras
en el plato producidas por golpes mientras la unidad
estaba en funcionamiento.
Cables IDE, con 40 pines (izquierda) y 80 pines (derecha).
Cable cinta para conectar la placa base con dos dispositivos IDE (p.e.: disco rgido o lectora de CD).
Comparacin de cables ATA de 40 y 80 pines y SATA.
Zcalo con canal de indexacin para conector IDC
(Insulation-Displacement Connector, conector por
desplazamiento del aislante).
Partes y conexiones de un disco rgido SATA.

10 FABRICANTES
Cable delgado SATA utilizado para conectar una
delgada unidad ptica a la interfaz SATA poder obtener de la placa base, y conector Molex para fuente
de alimentacin.

Presente y futuro

Actualmente la nueva generacin de discos duros utiliza la tecnologa de grabacin perpendicular (PMR), la
cual permite mayor densidad de almacenamiento. Tambin existen discos llamados Ecolgicos (GP Green
Power), los cuales hacen un uso ms eciente de la energa.

9.1

de aplicarse como mtodo general de archivos de datos


informticos energticamente respetuosos con el medio
natural si optimiza su funcin lgica dentro de los sistemas operativos actuales.[10]
9.1.1 Discos que no son discos
Las unidades de estado slido han sido categorizadas repetidas veces como discos, cuando es totalmente incorrecto denominarlas as, porque a diferencia de sus predecesores, sus datos no se almacenan sobre supercies cilndricas ni platos. Esta confusin conlleva habitualmente a
creer, errneamente, que SSD signica Solid State Disk, en
vez del correcto signicado: Solid State Drive, es decir,
unidad de estado slido o dispositivo de estado slido.

Comparativa de SSD y HDD

Las unidades de estado slido tienen el mismo uso que


los discos duros y emplean las mismas interfaces, pero no
estn formadas por discos mecnicos, sino por memorias
de circuitos integrados para almacenar la informacin. El
uso de esta clase de dispositivos anteriormente se limitaba a las supercomputadoras, por su elevado precio, aunque ahora son muchsimo ms asequibles para el mercado
domstico.[4]
La unidad de estado slido o SSD (acrnimo ingls de
Solid-State Drive) es el dispositivo de almacenamiento de
datos que puede estar construido con memoria no voltil o con memoria voltil. Las no voltiles son unidades
de estado slido que como dispositivos electrnicos, estn construidos en la actualidad con chips de memoria
ash. No son discos, pero juegan el mismo papel a efectos prcticos aportando ventajas pero tambin inconvenientes tecnolgicos como la corrupcin de las celdas de
memoria con cada escritura, lo que acorta la vida til de
estos dispositivos y aumenta el riesgo de corrupcin de
los datos[5] . No obstante, la industria est empezando a
vislumbrar en el mercado la posibilidad de que en el futuro ese tipo de unidades de estado slido termine sustituyendo al disco duro para implementar el manejo de
memorias no voltiles en el campo de la ingeniera informtica.

9.2 Unidades hbridas


Las unidades hbridas son aquellas que combinan las ventajas de las unidades mecnicas convencionales con las
de las unidades de estado slido. Consisten en acoplar
un conjunto de unidades de memoria ash dentro de
la unidad mecnica, utilizando el rea de estado slido
para el almacenamiento dinmico de datos de uso frecuente (determinado por el software de la unidad) y el
rea mecnica para el almacenamiento masivo de datos.
Con esto se logra un rendimiento cercano al de unidades
de estado slido a un costo sustancialmente menor. En
2012, Seagate ofreci el modelo Momentus XT, con
esta tecnologa.[11]

10 Fabricantes

Esos soportes son muy rpidos ya que no tienen partes


mviles o mecnicas y consumen menos energa. Todos
esto les hace muy ables y fsicamente duraderos. Sin embargo, su costo por GB es an muy elevado respecto al
mismo coste de GB en un formato de tecnologa de HDD,
siendo un ndice muy importante cuando hablamos de las Un Western Digital de 3,5 pulgadas con 250 GB y SATA HDD.
altas necesidades de almacenamiento que hoy se miden
en orden de Terabytes.[6]
Los recursos tecnolgicos y el saber hacer requeridos paA pesar de ello, la industria apuesta por esta va de solu- ra el desarrollo y la produccin de discos modernos imcin tecnolgica para el consumo domstico[7] aunque se plica que desde 2007, ms del 98 % de los discos duha de considerar que estos sistemas han de ser integrados ros del mundo son fabricados por un conjunto de grandes
correctamente[8] tal y como se est realizando en el cam- empresas: Seagate (que ahora es propietaria de Maxtor
po de la alta computacin.[9] Unido a la reduccin pro- y Quantum), Western Digital (propietaria de Hitachi, a
gresiva de costes, quizs esa tecnologa recorra el camino la que a su vez fue propietaria de la antigua divisin de

9
hacia 1999, aunque despus intent fabricar discos duros
en India. Su vuelta a la fama se debi a la creacin de un
nuevo formato de tamao de 3 para porttiles. Quantum
e Integral tambin investigaron el formato de 3, pero nalmente se dieron por vencidos. Rodime fue tambin un
importante fabricante durante la dcada de 1980, pero
dej de hacer discos en la dcada de 1990 en medio de
la reestructuracin y ahora se concentra en la tecnologa
de la concesin de licencias; tienen varias patentes relacionadas con el formato de 3,5.
1988: Tandon vendi su divisin de fabricacin de
discos duros a Western Digital, que era un renombrado diseador de controladores.
1989: Seagate compr el negocio de discos de alta
calidad de Control Data, como parte del abandono
de Control Data en la creacin de hardware.
1990: Maxtor compr MiniScribe que estaba en
bancarrota, hacindolo el ncleo de su divisin de
discos de gama baja.

Un Seagate de 3,5 pulgadas y 1 TB con SATA HDD.

fabricacin de discos de IBM) y Fujitsu, que sigue haciendo discos porttiles y discos de servidores, pero dej
de hacer discos para computadoras de escritorio en 2001,
y el resto lo vendi a Western Digital. Toshiba es uno de
los principales fabricantes de discos duros para porttiles
de 2,5 pulgadas y 1,8 pulgadas. TrekStor es un fabricante
alemn que en 2009 tuvo problemas de insolvencia, pero
que actualmente sigue en activo. ExcelStor es un pequeo
fabricante chino de discos duros.
Decenas de exfabricantes de discos duros han terminado
con sus empresas fusionadas o han cerrado sus divisiones de discos duros, a medida que la capacidad de los
dispositivos y la demanda de los productos aument, los
benecios eran menores y el mercado sufri una signicativa consolidacin a nales de los aos 1980 y nales de los aos 1990. La primera vctima en el mercado de las PC fue Computer Memories Inc.; despus de
un incidente con 20 MB defectuosos en discos en 1985,
la reputacin de CMI nunca se recuper, y salieron del
mercado de los discos duros en 1987. Otro notable fracaso fue el de MiniScribe, quien quebr en 1990: despus
se descubri que tena en marcha un fraude e inaba el
nmero de ventas durante varios aos. Otras muchas pequeas compaas (como Kalok, Microscience, LaPine,
Areal, Priam y PrairieTek) tampoco sobrevivieron a la
expulsin, y haban desaparecido para 1993; Micropolis
fue capaz de aguantar hasta 1997, y JTS, un recin llegado a escena, dur solamente unos aos y desapareci

1994: Quantum compr la divisin de almacenamiento de Digital Equipment Corporation otorgando al usuario una gama de discos de alta calidad
llamada ProDrive, igual que la gama tape drive de
Digital Linear Tape.
1995: Conner Peripherals, que fue fundada por uno
de los cofundadores de Seagate junto con personal
de MiniScribe, anunciaron un fusin con Seagate, la
cual se complet a principios de 1996.
1996: JTS se fusion con Atari, permitiendo a JTS
llevar a produccin su gama de discos. Atari fue vendida a Hasbro en 1998, mientras que JTS sufri una
bancarrota en 1999.
2000: Quantum vendi su divisin de discos a Maxtor para concentrarse en las unidades de cintas y los
equipos de respaldo.
2003: siguiendo la controversia en los fallos masivos
en su modelo Deskstar 75GXP, Pioneer IBM vendi
la mayor parte de su divisin de discos a Hitachi,
renombrndose como Hitachi Global Storage Technologies, Hitachi GST.
2003: Western Digital compr Read-Rite Corp.,
quien produca los cabezales utilizados en los discos
duros, por 95,4 millones de dlares en metlico.
2005: Seagate y Maxtor anuncian un acuerdo bajo
el que Seagate adquirira todo el stock de Maxtor.
Esta adquisicin fue aprobada por los cuerpos regulatorios, y cerrada el 19 de mayo de 2006.
2007: Western Digital adquiere Komag U.S.A., un
fabricante del material que recubre los platos de los
discos duros.

10

13 BIBLIOGRAFA

2009: Toshiba adquiere la divisin de HDD de


Fujitsu y TrekStor se declara en bancarrota, aunque
ese mismo ao consiguen un nuevo inversor para
mantener la empresa a ote.
2011: Western Digital adquiere Hitachi GST y Seagate compra la divisin de HDD de Samsung.
2014: Seagate anuncia el primer disco duro de 8 TB
en el mercado de consumo general, con formato de
3,5 pulgadas y conectividad tipo SATA III a 6Gbps,
compatible con computadoras de escritorio.[12]

11

Vase tambin

Fragmentacin de un sistema de cheros


Desfragmentacin
Disco duro porttil
Eje (disco duro)
Formato de disco
Jumper (informtica)
Particin de disco
Perifrico (informtica)
Plato (disco duro)
Registro de arranque principal

12 Referencias
[1] C. Dennis Mee, Eric D. Daniel (1996). McGraw-Hill, ed.
Magnetic Storage Handbook 2nd Ed.. ISBN 0-07-0412758.
[2] http://www.idema.org/
[3] http://www.youbioit.com/es/article/shared-information/
5320/como-funcionan-los-discos-rigidos Cmo funcionan los discos rgidos
[4] Toshiba America Electronic Components, Inc. Solid State Drives Memory Products. Consultado el 17 de julio de
2009.
[5] http://javierin.com/2014/06/21/durabilidad-de-los-ssd/
Cunto dura un SSD? Qu determina la durabilidad de
los SSD?
[6] http://www.tuexpertoit.com/2011/12/22/
la-diferencia-de-precio-entre-ssd-y-discos-duros-se-reduce/
Comparativas de precios SSD versus disco duro.

[7] http://alt1040.com/2010/11/
discos-de-estado-solido-ssd-o-como-hacer-que-tu-computadora-sea-realmen
utm_source=self&utm_medium=nav&utm_campaign=
Relacionados Dispositivis de estado slido (SSD) o cmo
hacer que tu computadora sea realmente rpida.
[8] http://sololinex.wordpress.com/2008/09/09/
comparativa-entre-disco-duro-y-disco-ssd-en-video/
#more-755 Comparativa entre disco duro y SSD en
vdeo.
[9] http://web.archive.org/web/http://www.diarioti.com/
noticia/Presentan_la_primera_supercomputadora_
Flash_del_mundo/30931 Presentan la primera supercomputadora Flash del mundo.

Sistema de archivos
Tabla de particiones GUID
Unidad de estado slido
Caractersticas de rendimiento de disco duro

11.1

Fabricantes de discos duros

[10] http://www.orlandoalonzo.com.mx/tecnologia/
ssd-la-verdad-sobre-el-consumo-de-energia/
la verdad sobre el consumo de energa.

SSD:

[11] http://www.seagate.com/www/es-es/products/laptops/
laptop-hdd/
[12] Oyanedel, Juan Pablo (27 de agosto de 2014). Seagate
estrena el primer disco duro de 8 TB en el mercado. Consultado el 29 de agosto de 2014.

Seagate
Toshiba
Verbatim
Western Digital
Samsung

13 Bibliografa
Ciriaco Garca de Celis (1994). 12.7: El disco duro
del AT (IDE, MFM, BUS LOCAL).. El universo
digital del IBM PC, AT y PS/2 (4 edicin). Facultad
de Ciencias de Valladolid: Grupo Universitario de
Informtica.

11

14

Enlaces externos
Wikimedia Commons alberga contenido multimedia sobre Unidad de disco duro. Commons

Wikilibros

Wikilibros alberga un libro o manual sobre


Mantenimiento y Montaje de Equipos Informticos/Tema 3/Almacenamiento magntico.

Cmo instalar un disco duro interno


Conexin a la unidad de alimentacn
Video de su funcionamiento (en ingls).
Todo sobre el disco duro (en espaol).
Disco duro y particiones (en espaol).
Historia del disco duro (en espaol).
Video explicativo sobre el funcionamiento de los
discos duros (en espaol).
IDEMA (en ingls).

12

15 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

15
15.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Unidad de disco duro Fuente: https://es.wikipedia.org/wiki/Unidad_de_disco_duro?oldid=92998064 Colaboradores: Joseaperez, Oblongo, Moriel, Josmanbernal, Abgenis, Sauron, JorgeGG, Lourdes Cardenal, ManuelGR, Sanbec, Head, Zwobot, Dionisio, Bigsus, Aloriel, Rosarino, Dodo, Triku, Sms, Rsg, Tostadora, Jondel, Chvsanchez, Murphy era un optimista, Galio, ChemoWeb, Symonblade, Krous~eswiki,
Robotito, PeiT, Cinabrium, 142857, Robotico, Quistnix, Kordas, MatiasBellone, Mnts, Renabot, Richy, Sonett72~eswiki, Deleatur, Petronas, Javierchiclana, Hispa, Airunp, Jiuck, Edub, Taichi, Emijrp, Rembiapo pohyiete (bot), Marco Regueira, Edtruji, Aliman5040, Magister
Mathematicae, Kokoo, Lechpe, RobotQuistnix, Francosrodriguez, Platonides, Alhen, Superzerocool, Chobot, Palica, Fjjf~eswiki, Caiserbot, Yrbot, BOT-Superzerocool, Oscar ., Martincarr, Jamrojo, Maleiva, Vitamine, .Sergio, YurikBot, Mortadelo2005, Museo8bits, Echani,
GermanX, Equi, Lobillo, Gaijin, KnightRider, Richzendy, Albasmalko, Carlos Humberto, Tigerfenix, Marb, Santiperez, Txo, HECTOR
ARTURO AZUZ SANCHEZ, Eskimbot, Baneld, Gtz, Maldoror, Ciencia Al Poder, Cheveri, Haitike, Tomatejc, Jarke, Filipo, Kaiba0,
Carlosblh, Ivan romero, BOTpolicia, Qwertyytrewqqwerty, CEM-bot, Damifb, Laura Fiorucci, Heavyrock, Tripy, JMCC1, Alexav8, Ignacio Icke, Jjvaca, Baiji, Roberpl, Zendel, CERVANTES JACP, Antur, @IE, Zerosxt, Reginocova, Dorieo, FrancoGG, Thijs!bot, Srengel,
Ricardoramirezj, Mahadeva, Diosa, Bot que revierte, Escarbot, Yeza, Reygecko, Corbacho, RoyFocker, Gilberto IV, Locovich, Cratn,
Isha, Xoneca, Guibuu, Mpeinadopa, El loko, JAnDbot, Estoymuybueno, OceanO, Stifax, Kved, Ciberrojopower, Mansoncc, Segedano, Satin, Marinna, Muro de Aguas, Gaius iulius caesar, Limbo@MX, CommonsDelinker, TXiKiBoT, Cronos x, Mercenario97, AlfaBeta0104,
Sergio.1312, Gustronico, Millars, Humberto, Netito777, HAMM, Fixertool, Phirosiberia, Bedwyr, J aroche, Chabbot, Plux, BL, Galaxy4,
Snakefang, Enrique r25, Manuel Trujillo Berges, Avsurrutia, Biasoli, Snakeeater, Bucephala, Cinevoro, VolkovBot, Snakeyes, Technopat,
Queninosta, Raystorm, Pmontaldo, Belgrano, Josell2, Matdrodes, Synthebot, DJ Nietzsche, BlackBeast, Shooke, Lucien leGrey, AlleborgoBot, Muro Bot, Edmenb, J.M.Domingo, Andrezitofer, Bucho, Jcprietoc, Racso, YonaBot, MRK2001, SieBot, Mushii, Ctrl Z, Ma259,
Fofo~eswiki, Ensada, Loveless, Carmin, Cobalttempest, Linktroid, Chrihern, Bigsus-bot, BOTarate, Marcelo, Mel 23, Manw, Greek,
Lp-spain, Ratchet, Aleposta, Jim88Argentina, Googleador, XalD, Prietoquilmes, Marcecoro, HUB, Robenauta, Thunderbird2, Piero71,
Nicop, ElOtroJuanjo, DragonBot, Versageek, ReNaiXeR, Eduardosalg, Fanattiq, Leonpolanco, Pan con queso, Alejandrocaro35, Petruss,
Poco a poco, BetoCG, TheNava00, Raulshc, Aipni-Lovrij, Osado, JJSANES, Ravave, Kroji, Camilo, UA31, Shalbat, AVBOT, DayL6,
David0811, Rodolfo cea, Mizukane203, Abuitrago81, J.delanoy, Mann138, Llfernandoll, Angel GN, NjardarBot, Ialad, Ezarate, Enramos, Diegusjaimes, Davidgutierrezalvarez, MelancholieBot, Toncec, Linfocito B, Viejalala, Arjuno3, Pandalive, Saloca, Andreasmperu,
Luckas-bot, Ramon00, Spirit-Black-Wikipedista, Chakal256, Nallimbot, Ptbotgourou, FariBOT, Jotterbot, Vic Fede, Albus Dumbledore~eswiki, Arredobayo, Arredobayin, Yonidebot, Beralmar, Jeepika, Lewis.skolnik, Ficenix, Belial Returns, Rodelar, 1dai, SuperBraulio13,
Manuelt15, Xqbot, Jkbw, Oliverasm, Dreitmen, Dossier2, Irbian, Ricardogpn, Metronomo, David coppereld, XIXO123, Igna, Torrente,
Botarel, Alejandro54, Pableo, Groucho Marx, White Master, Zulucho, BOTirithel, MAfotBOT, Angeldp, Jcdy, Halfdrag, RedBot, Kizar, Abece, Chilreu, Leugim1972, TorQue Astur, El mago de la Wiki, PatruBOT, Ganmedes, KamikazeBot, Pincho76, Humbefa, Tarawa1943, Nachosan, PatricioAlexanderWiki, DivineAlpha, GrouchoBot, HIPATIA2006, Tropick 100, Axvolution, Maxi martin9101,
EmausBot, Savh, AVIADOR, Rizobio, Sergio Andres Segovia, Africanus, Dondervogel 2, Grillitus, JackieBot, Rubpe19, Emiduronte,
ChuispastonBot, MadriCR, Waka Waka, Eze91, WikitanvirBot, Diamondland, Thekinglink, Sitovarela, CocuBot, Movses-bot, Antonorsi,
Abin, Bodhost, KLBot2, Shurmano32425, Renly, Vagobot, Sebrev, Travelour, MetroBot, DerKrieger, Allan Aguilar, Gusama Romero, Chapete123, Maquedasahag, Acratta, Damadafaka, Hugo Marchant Q., Joanknk, Aloha123, Harpagornis, Elvisor, Wiki2012~eswiki,
Creosota, Billydecampana, DanielithoMoya, Helmy oved, Jdiazval, 'fuunieeqz!, Konami~eswiki, Jaime ruiz muoz, Andrea te amo yo angel,
Dilan9, Un Tal Alex.., Daniblue21, EduLeo, ApOlO666xD, Legobot, Langtoolbot, Parra daniel, Balles2601, Hans Topo1993, FESG1234,
Anonimo200W, Churrasco italiano, ERINPATEL, Patelerin, PATELPATELA, Betzalia guadalupe de la cruz araujo, Spectud123, Drude, Lolaoilo, D3c contreras, Lagoset, 123gsmr, Camila405, Timohap, PDROSQUI, Jarould, Souta, Crystallizedcarbon, Papamericano69,
Fernando banderas, BenjaBot, Arshak67, Sfr570, Cupertinogaray, Diegojajaja123, Penes25, Luismiguel78, Fernando2812l, Ks-M9, Josemicohj, Juan D. Guachun A., Danibonilla1, Pakitoelcorcho, Elratata, Valen1704, Krassnine y Annimos: 1113

15.2

Imgenes

Archivo:ATA_on_mainboard.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/2/29/ATA_on_mainboard.jpg Licencia:


Public domain Colaboradores: ? Artista original: ?
Archivo:Ata_20070127_002.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/c4/Ata_20070127_002.jpg Licencia: Public domain Colaboradores: Photo taken by Jonas Bergsten using a Canon PowerShot G3. Artista original: Jonas Bergsten
Archivo:Cilindro_Cabeza_Sector.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/5/57/Cilindro_Cabeza_Sector.svg Licencia: Copyrighted free use Colaboradores: Este archivo deriva de: Cylinder Head Sector.svg
Artista original: LionKimbro
Archivo:Commons-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licencia: Public domain Colaboradores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used
to be slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
Archivo:Disk-structure.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/d/d7/Disk-structure.svg Licencia: Public domain
Colaboradores: Trabajo propio Artista original: MistWiz
Archivo:Festplatte.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/a/a0/Festplatte.JPG Licencia: Public domain Colaboradores: No machine-readable source provided. Own work assumed (based on copyright claims). Artista original: No machine-readable
author provided. Rednammoc~commonswiki assumed (based on copyright claims).
Archivo:Hard_drive-es.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/c5/Hard_drive-es.svg Licencia: CC-BY-SA3.0 Colaboradores:
Hard_drive-en.svg Artista original: Hard_drive-en.svg: Bibi Saint-Pol
Archivo:Hdd.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/b/b0/Hdd.jpg Licencia: CC BY 3.0 Colaboradores: Trabajo
propio Artista original: Asim18

15.3

Licencia del contenido

13

Archivo:IBM_old_hdd_mod.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/9/96/IBM_old_hdd_mod.jpg Licencia: CCBY-SA-3.0 Colaboradores: ? Artista original: ?


Archivo:RyanHDD2.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/5/5e/RyanHDD2.jpg Licencia: CC BY 3.0 Colaboradores: Trabajo propio Artista original: Pbsryan
Archivo:SixHardDriveFormFactors.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/b/be/SixHardDriveFormFactors.
jpg Licencia: CC BY-SA 3.0 us Colaboradores: Provided by Author Artista original: Paul R. Potts
Archivo:Wikibooks-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/fa/Wikibooks-logo.svg Licencia: CC BY-SA
3.0 Colaboradores: Trabajo propio Artista original: User:Bastique, User:Ramac et al.

15.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Image and Scanner Interface Specication


Para otros usos de este trmino, vase Isis
(desambiguacin).

una trama continua, normalmente sin necesidad de procesar ms que una pequea porcin de la imagen completa. Debido a que los controladores ISIS se disponen
en una pipeline cuando son utilizados, cada controlador
ISIS (Image and Scanner Interface Specication) es una
se especializa en realizar una sola funcin. Los controinterfaz estndar de la industria para tecnologas de
ladores normalmente son pequeos y modulares, lo que
escaneo de imgenes, desarrollado por Pixel Translations
signica que ISIS permite nuevas funcionalidades en una
en 1990 (hoy: EMC captiva).
aplicacin con modicaciones muy pequeas.

General

3 Vase tambin
TWAIN

ISIS es un estndar abierto para el control de escneres


y un entorno de trabajo completo para procesamiento de
imgenes. Est soportado por un amplio nmero de aplicaciones y vendedores de escneres, llegando a convertirse rpidamente en un estndar industrial de facto. ISIS
permite a los desarrolladores de aplicaciones crear complicados sistemas de captura de imgenes de forma rpida y ecaz usando cualquier controlador certicado por
ISIS.

Windows Image Acquisition (WIA)


Scanner Access Now Easy (SANE)

4 Enlaces externos
Pgina de EMC captiva
Conjunto de SDKs proporcionados por EMC Captiva para obtener imgenes usando controladores ISIS

Caractersticas

Comparacin de ISIS vs. TWAIN por EMC captiva

ISIS es modular: permite a las aplicaciones controlar un


escner directamente, o utilizar las rutinas proporcionadas para manejar la mayora de las situaciones de forma
automtica.
ISIS es exible: usando una interfaz basada en mensajes
con etiquetas, puede crecer sin perder compatibilidad.
Esto signica que las caractersticas, operaciones y formatos no existentes en la actualidad pueden aadirse sin
esperar a una nueva versin de la especicacin.
ISIS es una especicacin completa: trata todos los temas
que una aplicacin que usa un escner debe tratar. Esto incluye tareas como seleccionar, instalar y congurar
un escner nuevo, establecer parmetros especcos del
escner, escanear, leer y escribir archivos, escalado de
imgenes, rotacin, visualizacin e impresin. Los controladores ISIS tambin han sido escritos para preprocesar datos realizando operaciones tales como conversin a
escala de grises de forma dinmica.
ISIS sobresale por la velocidad de procesado. Lo hace enlazando controladores entre s en una arquitectura en pipeline para que los datos uyan desde el controlador del
escner al controlador de compresin, al controlador de
empaquetado, al archivo, al visualizador o impresora en
1

5 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

5.1

Texto

Image and Scanner Interface Specication Fuente: https://es.wikipedia.org/wiki/Image_and_Scanner_Interface_Specification?oldid=


86578325 Colaboradores: Sabbut, JKD, FlaBot, CEM-bot, Synthebot, Muro Bot, Ugly, Alecs.bot, DumZiBoT, WikitanvirBot, KLBot2,
Elvisor y Annimos: 5

5.2

Imgenes

5.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

TWAIN
TWAIN es un estndar destinado a la adquisicin de 2 Origen del nombre
imgenes de un escner de imagen: una API de captura de imgenes para los sistemas operativos Microsoft La palabra TWAIN se tom del refrn de Rudyard KiWindows y Apple Macintosh. La palabra TWAIN no es pling The Ballad of East and West (La Balada del Este
ocialmente un acrnimo; sin embargo, es ampliamen- y el Oeste):
te conocido como un retroacrnimo para "Technology
Without An Interesting Name (Tecnologa Sin Un NomOh, East is East, and West is West, and nebre Interesante).
ver the twain shall meet,
Till Earth and Sky stand presently at Gods
great Judgment Seat;
But there is neither East nor West, Border, nor
Breed, nor Birth,
When two strong men stand face to face, tho
they come from the ends of the earth!

General

El trmino fue elegido para reejar la dicultad experimentada, en su da, para intentar conectar los escneres y
los ordenadores. El retroacrnimo "Technology Without
An Interesting Name surgi durante la actividad temprana del grupo pero no la aceptan como acrnimo.[1]

El estndar fue liberado por primera vez en 1992. Actualmente est raticado en la versin 2.2 el 16 de febrero de
2012 y es mantenido por el Grupo de Trabajo TWAIN.
TWAIN se utiliza normalmente como una interfaz entre
la aplicacin de procesado de imgenes y un escner o Kevin Bier conrma de manera autoritaria que TWAIN,
cmara digital.
mientras que no es ocialmente un acrnimo, fue conLa desventaja de TWAIN como implementacin para cebido como una utilidad sin un nombre importante
una aplicacin tpica (p.e. aplicacin de escaneo) es que (toolkit without an important name). Este no-acrnimo
no siempre separa la interfaz de usuario del controlador fue inspirado por una coleccin de cartas escritas por
de dispositivo (al contrario que SANE). Esto hace difcil Mark Twain que Bier ley. Bier comenta que termin de
proveer servicios TWAIN a programas ajenos al fabri- leer una de esas cartas cerca de medianoche, luego checante del dispositivo. Cada vez que una aplicacin carga que el correo una ltima vez para recibir un conjunto de
un controlador TWAIN, no se puede separar de la GUI nombres potenciales para la tecnologa. Respondi con
(Interfaz grca de usuario). Para ser preciso, no es un una sugerencia sobre el nombre TWAIN y tras una condefecto de la especicacin TWAIN sino de los controla- sulta con Mark Twain (S. L. Clemens) para asegurarse de
dores del dispositivo, porque no son totalmente compati- la legalidad de su uso, el nombre fue ocialmente lanzado el 29 de febrero de 1992 (que Bier vio como fecha
bles con la especicacin TWAIN.
apropiada para el lanzamiento de nuestro esfuerzo).
Kevin Bier, director del Grupo de Trabajo TWAIN y el
co-autor/editor original de TWAIN 1.0, observa que algunos creen que la unin de la interfaz de usuario con el
controlador TWAIN (realmente una porcin de cdigo 3 Vase tambin
de la aplicacin y no un controlador en absoluto) est fallando. l responde que era una meta explcita del diseo
Image and Scanner Interface Specication (ISIS)
del grupo para poner la responsabilidad de presentar la
Windows Image Acquisition (WIA)
funcionalidad del dispositivo en manos del fabricante del
dispositivo.
Scanner Access Now Easy (SANE)
Era nuestra premisa que ninguno otro podra saber todas
las caractersticas del dispositivo o la forma ms apropiada de presentar la funcionalidad al usuario, Bier dice.
Sin importar mi opinin sobre la calidad relativa de esa 4 Notas
premisa, era una fundacin esencial del xito de especicacin. segn ha demostrado la adopcin de la misma. [1] De dnde viene el acrnimo TWAIN? (en ingls)
1

Referencias

Este artculo est originalmente basado en material de


la Free On-line Dictionary of Computing, la cual est
licenciada bajo GFDL, as como la carta de Kevin Bier
en la Wikipedia que trata acerca del nombre.

Enlaces externos
Grupo de Trabajo TWAIN (ingls)
Framework para la Adquisicin de Imgenes para
Java (ingls)
ObjectiveC TWAIN framework para MacOS X (ingls)
Java TWAIN Toolkit (producto comercial)
EZTwain (producto comercial, pero con una versin
libre (EZTwain Classic))
.NET TWAIN Toolkit (producto comercial)

ENLACES EXTERNOS

Origen del texto y las imgenes, colaboradores y licencias

7.1

Texto

TWAIN Fuente: https://es.wikipedia.org/wiki/TWAIN?oldid=87123358 Colaboradores: Sabbut, Zwobot, Sms, Rudolph, Poniol60, Rembiapo pohyiete (bot), RobotQuistnix, JKD, FlaBot, Mortadelo2005, GermanX, Eskimbot, Basquetteur, Cvmontuy, Rei-bot, Matdrodes,
Muro Bot, SieBot, Diegusjaimes, FariBOT, LordboT, ArthurBot, Xqbot, SassoBot, RedBot, DixonDBot, Mickkafka, PatruBOT, KLBot2,
Elvisor y Annimos: 9

7.2

Imgenes

7.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Windows Image Acquisition


Windows Image Acquisition (WIA) es un modelo de
controlador e interfaz de programacin de aplicaciones
(API) para las versiones ms modernas del sistema operativo Microsoft Windows que permite a las aplicaciones
de grcos comunicarse con dispositivos de imagen tales como escneres, cmaras digitales y equipos de vdeo
digital. Fue introducido por primera vez en el ao 2000
como parte de Windows Me, y continua siendo el estndar de dispositivos de imagen y modelo API a travs de
las sucesivas versiones de Windows. A partir de Windows
XP, es implementado como un servicio bajo-demanda.

calSystem. Debido a las ramicaciones de seguridad de


ejecutar un servicio como LocalSystem en el que un controlador defectuoso o persona maliciosa tendra un acceso completo al sistema, el servicio WIA en Windows
Server 2003 y Windows Vista opera en el contexto LocalService. Esto puede dar lugar a problemas de compatibilidad si se usa un controlador diseado para Windows
XP.[1]

Windows Vista tiene la biblioteca de Automatizacin


WIA incluida. Tambin, WIA soporta push scanning y
multi-image scanning. Push scanning permite iniciar escaneos y ajustar los parmetros de escaneado directamente
desde el panel de control del escner. Multi-image scan1 General
ning permite escanear varias imgenes a la vez y guardarlas directamente en archivos separados. Sin embarWIA es un conjunto de utilidades signicativo para el so- go, el soporte de vdeo ha sido eliminado de WIA para
[2]
porte de imgenes digitales proporcionado por Still Ima- Windows Vista. Microsoft recomienda utilizar la nuege Architecture (STI) en Windows 2000. Mientras que va API Dispositivos Porttiles de Windows.
STI slo proporciona una interfaz de bajo nivel para realizar transferencias de datos bsicas desde y hacia el dispositivo (y la peticin del proceso de escaneado de ima- 3 Vase tambin
gen en una mquina Windows a travs de un dispositivo
externo), WIA proporciona un entorno de trabajo a travs
Image and Scanner Interface Specication (ISIS)
del cual los dispositivos pueden presentar sus capacidades
TWAIN
nicas al sistema operativo, y las aplicaciones pueden tomar ventaja de esas caractersticas.
Scanner Access Now Easy (SANE)
Segn Microsoft, los controladores WIA estn formados
por un componente de interfaz de usuario (UI) y un componente ncleo del controlador, cargados en dos procesos 4 Referencias
diferentes: UI en el espacio de la aplicacin y el ncleo
del controlador en el servicio WIA.
[1] Microsoft public una hoja en 2003 titulada Las mejores
prcticas relacionadas con la seguridad para el desarrollo
de controladores WIA para ayudar a los desarrolladores
de controladores WIA a escribir controladores que funcionaran en un contexto de menor seguridad, en la que el
servicio WIA opera.

En comparacin con TWAIN, se dice que WIA es ms


exible, porque es una interfaz estandarizada que no requiere una unin fuerte entre el software del escner
y el controlador (los escneres slo-TWAIN a menudo estn limitados a las funciones activadas en su unin
controlador-aplicacin). La mayora de los escneres recientes soportan WIA.

[2] Migrar de WIA a WPD

5 Enlaces externos
2

Informacin adicional

Lista de escneres compatibles con WIA


Windows Image Acquisition (WIA) 1.0

En 2002, Microsoft liber la Herramienta de la Biblioteca de Automatizacin de la Adquisicin de la Imagen


en Windows, la cual proporciona acceso a funcionalidad
WIA a travs de lenguajes de programacin y scripts que
soporten Automatizacin OLE.

Still Image Connectivity for Windows describe


WIA y lo compara con el protocolo de transferencia
de imgenes (PTP) y USB mass storage device class
para transferencia de imgenes entre dispositivos de
imgenes digitales y el ordenador.

En Windows XP, WIA se ejecuta en el contexto Lo1

6 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

6.1

Texto

Windows Image Acquisition Fuente: https://es.wikipedia.org/wiki/Windows_Image_Acquisition?oldid=85286227 Colaboradores: Sabbut, JKD, Jcentel, Biasoli, Muro Bot, Alexbot, CestBOT, LucienBOT, TobeBot, KLBot2 y Annimos: 2

6.2

Imgenes

6.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Image and Scanner Interface Specication


Para otros usos de este trmino, vase Isis
(desambiguacin).

una trama continua, normalmente sin necesidad de procesar ms que una pequea porcin de la imagen completa. Debido a que los controladores ISIS se disponen
en una pipeline cuando son utilizados, cada controlador
ISIS (Image and Scanner Interface Specication) es una
se especializa en realizar una sola funcin. Los controinterfaz estndar de la industria para tecnologas de
ladores normalmente son pequeos y modulares, lo que
escaneo de imgenes, desarrollado por Pixel Translations
signica que ISIS permite nuevas funcionalidades en una
en 1990 (hoy: EMC captiva).
aplicacin con modicaciones muy pequeas.

General

3 Vase tambin
TWAIN

ISIS es un estndar abierto para el control de escneres


y un entorno de trabajo completo para procesamiento de
imgenes. Est soportado por un amplio nmero de aplicaciones y vendedores de escneres, llegando a convertirse rpidamente en un estndar industrial de facto. ISIS
permite a los desarrolladores de aplicaciones crear complicados sistemas de captura de imgenes de forma rpida y ecaz usando cualquier controlador certicado por
ISIS.

Windows Image Acquisition (WIA)


Scanner Access Now Easy (SANE)

4 Enlaces externos
Pgina de EMC captiva
Conjunto de SDKs proporcionados por EMC Captiva para obtener imgenes usando controladores ISIS

Caractersticas

Comparacin de ISIS vs. TWAIN por EMC captiva

ISIS es modular: permite a las aplicaciones controlar un


escner directamente, o utilizar las rutinas proporcionadas para manejar la mayora de las situaciones de forma
automtica.
ISIS es exible: usando una interfaz basada en mensajes
con etiquetas, puede crecer sin perder compatibilidad.
Esto signica que las caractersticas, operaciones y formatos no existentes en la actualidad pueden aadirse sin
esperar a una nueva versin de la especicacin.
ISIS es una especicacin completa: trata todos los temas
que una aplicacin que usa un escner debe tratar. Esto incluye tareas como seleccionar, instalar y congurar
un escner nuevo, establecer parmetros especcos del
escner, escanear, leer y escribir archivos, escalado de
imgenes, rotacin, visualizacin e impresin. Los controladores ISIS tambin han sido escritos para preprocesar datos realizando operaciones tales como conversin a
escala de grises de forma dinmica.
ISIS sobresale por la velocidad de procesado. Lo hace enlazando controladores entre s en una arquitectura en pipeline para que los datos uyan desde el controlador del
escner al controlador de compresin, al controlador de
empaquetado, al archivo, al visualizador o impresora en
1

5 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

5.1

Texto

Image and Scanner Interface Specication Fuente: https://es.wikipedia.org/wiki/Image_and_Scanner_Interface_Specification?oldid=


86578325 Colaboradores: Sabbut, JKD, FlaBot, CEM-bot, Synthebot, Muro Bot, Ugly, Alecs.bot, DumZiBoT, WikitanvirBot, KLBot2,
Elvisor y Annimos: 5

5.2

Imgenes

5.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Scanner Access Now Easy


Scanner Access Now Easy (SANE) es una interfaz de
programacin de aplicaciones (API) que proporciona acceso estandarizado a cualquier dispositivo de escaneo
(escner de sobremesa, escner de mano, cmaras y videocmaras, etc.). El API de SANE es de dominio pblico y su discusin y desarrollo est abierto a todo el mundo.

tadores de documentos que permiten que un gran nmero


de hojas de papel sean escaneadas de forma sucesiva. Utilizando la API de SANE, el frontend simplemente tiene
que ejecutar el mismo conjunto de opciones para cada escaneado, controlando el alimentador de documentos
entre escaneos para cargar la siguiente hoja de papel. El
frontend slo tiene que obtener el conjunto de opciones
del usuario una vez.

2 Estructura

General

SANE diere de TWAIN en que diferencia claramente los frontends (programas de usuario) y los backends
(controladores de los escneres) disminuyendo el tiempo
de desarrollo y la duplicacin de cdigo. Mientras que el
controlador TWAIN maneja tanto la Interfaz de usuario
como las comunicaciones con el escner, el controlador
de SANE slo proporciona una interfaz con el dispositivo y describe un nmero de opciones que controla cada
escaneo.

2.1 Backends de SANE


Los backends son los controladores que implementan las
funciones que proporciona la capa de abstraccin de SANE para la comunicacin de las aplicaciones de usuario
con los diferentes dispositivos de escaneo soportados.
Cada backend puede soportar uno o varios dispositivos
ya que, en realidad, lo que el backend implementa es el
protocolo de comunicacin con el chipset del dispositivo, el cual puede estar integrado en varios escneres. Los
identicadores de los dispositivos soportados pueden estar embebidos en el cdigo fuente del backend o especicados en su archivo de conguracin, el cual se encuentra en el directorio 'sane.d' dentro de '/etc' o bien
'/usr/local/etc' (Puede variar en funcin del sistema operativo). Esto posibilita la inclusin de nuevos escneres
especicando su ID sin necesidad de recompilar el software.

Estas opciones especican parmetros tales como la resolucin de escaneo, el rea de escaneo, modelo de color,
etc. Cada opcin tiene un nombre, y la informacin acerca de su tipo, unidades, y rango o valores posibles (por
ejemplo una lista enumerada). Por convencin hay varias opciones bien conocidas con los que los frontends[1]
pueden interactuar con los GUI convenientes p.e las opciones del rea de escaneo pueden establecerse arrastrando un recuadro sobre una imagen preliminar. Otras opciones pueden ser presentadas utilizando elementos GUI
adecuados a su tipo p.e deslizadores, cajas de listado, bo- Los backends deben aportar las siguientes funciones (al
menos en la versin 1.0.25):[3]
tones, etc.
Una consecuencia de esta separacin es que se implementa fcilmente el escaneado a travs de la red sin un
control especco tanto por parte de los frontends como
de los backends.[2] En un host con un escner, se ejecuta
el demonio saned que maneja las peticiones en red. En
las mquinas clientes, el backend net (controlador) se
conecta al servidor remoto para tomar las opciones del
escner, y realizar tanto el escaneo preliminar como el
escaneo nal. El demonio saned acta como un frontend
localmente, pero simplemente pasa las peticiones y los
datos entre las conexiones de red y el escner local. De
igual manera, el backend net pasa las peticiones y los
datos entre el frontend local y el host remoto.

sane_init
sane_get_devices

Varios tipos de procesamiento por lotes son posibles con


un mnimo de soporte necesario en el backend (controlador). Muchos escneres soportan la utilizacin de alimen-

sane_open
sane_get_option_descriptor
1

UTILIDADES

sane_control_option
sane_get_parameters
sane_start
sane_read
sane_cancel
sane_set_io_mode
sane_get_select_fd
sane_close
sane_exit

Frontend DigiKam.

Estas funciones proporcionan la funcionalidad necesaria


para inicializar el dispositivo, obtener y establecer las opciones de escaneo, comenzar el escaneo, leer la imagen
durante el escaneo, cancelar y realizar las operaciones
previas a la nalizacin del mismo.
La lista de backends con los dispositivos soportados puede encontrarse en SANE Supported devices

2.2

Interfaz DLL

Por encima de los backends se encuentra la interfaz DLL,


una biblioteca de enlace dinmico que puede entenderse Frontend Kooka.
como un backend ms, ya que implementa las mismas
funciones que estos pero proporciona la posibilidad de que ocurre con implementaciones TWAIN proporcionautilizar ms de un backend.
das por los fabricantes para entornos Windows, estas apliPara hacer uso de los backends, estos han de estar regis- caciones perduran a lo largo del tiempo ya que el soporte
trados. Para ello, debe existir la entrada correspondiente de nuevos escneres se realiza de forma transparente para
en el archivo 'dll.conf' localizado en el directorio 'sane.d' el frontend, permitiendo al usuario utilizar la aplicacin
que le sea ms familiar independientemente del escner
Cuando un frontend inicia la interfaz dll de SANE, esta que adquiera en un futuro.
inicializa los backends registrados en dll.conf, los cuales
realizan un barrido en busca de los dispositivos soporta- Algunos ejemplos de frontends conocidos son:
dos devolviendo mediante sane_get_devices aquellos que
scanimage: Aplicacin para consola (modo texto)
se han encontrado. Si cualquiera de los encontrados coincide con el deseado por el usuario, continua la carga del
xscanimage: Versin para X11
frontend y se inicializan los datos destinados al control
XSane: Versin para GTK+
del escner seleccionado.
kooka: Aplicacin para entornos KDE

2.3

Frontends de SANE

Otras aplicaciones especializadas hacen uso de mdulos o


plugins que proporcionan la funcionalidad de un frontend
Los frontends son aplicaciones que hacen uso de la ca- para acceso a los escneres mediante SANE, como por
pa de abstraccin proporcionada por SANE para acceder ejemplo GIMP u OpenOce.org.
a los dispositivos de escaneo. Estos programas no tienen
por qu conocer el funcionamiento interno de cada dispositivo ya que de ese trabajo se encargan los backends.
3 Utilidades
Esto presenta al menos dos ventajas. Por una parte, los
programadores de frontends pueden dedicar su esfuerzo
en adaptar sus programas a los diferentes entornos de tra- 3.1 sane-nd-scanner
bajo disponibles, a mejorar las prestaciones y a facilitar
el manejo de los escneres mediante interfaces amiga- sane-nd-scanner es una aplicacin incluida en el probles de cara al usuario. Por otro lado, al contrario que lo yecto SANE cuyo propsito es buscar y detectar aquellos

3.2

Botones del escner

dispositivos del sistema que pudieran ser soportados por


alguno de los backends.[4] Para ello, realiza un barrido en
la lista de dispositivos conectados mediante USB, dispositivos SCSI, dispositivos conectados a puertos paralelos
y otras interfaces de comunicacin analizando las propiedades de cada dispositivo encontrado. Adems, enva una
pequea trama de datos especcos a los dispositivos encontrados para, evaluando la respuesta, identicar el chipset integrado en los mismos. Esta forma de identicacin
permite encontrar dispositivos compatibles con un chipset concreto que pueda ser controlado por un backend de
SANE, aadiendo su identicacin en el archivo de conguracin del backend correspondiente, an cuando ste
no est reconocido como soportado de antemano.
Esta aplicacin funciona de forma autnoma, es decir, los
dispositivos encontrados pueden estar o no soportados por
cualquiera de los backends existentes o incluso identicar
errneamente el chipset integrado en un dispositivo.
Algunos usuarios tienden a confundir el propsito de esta
utilidad con el listado de escneres detectados que proporciona el frontend scanimage mediante el comando:
scanimage -L
En este caso, el frontend scanimage muestra los dispositivos compatibles localizados por los backends activados
en el archivo 'dll.conf'. Si un dispositivo de escaneo no
aparece en dicho listado y s en sane-nd-scanner, hay
que suponer lo siguiente:
El backend que lo controla est desactivado: Es decir,
no aparece el nombre del backend que lo controla o
aparece comentado (precedido del carcter #) en el
archivo 'dll.conf'
El backend que lo controla no incluye ese dispositivo
en su archivo de conguracin: Si se ha identicado el chipset del escner es posible que el backend
que lo soporta pueda hacerlo funcionar si se le proporciona su identicacin en el archivo de conguracin del backend.
La deteccin del chipset del dispositivo sea errnea:
Normalmente, los controladores grcos incluidos
en los escneres no contienen una identicacin expresa. As pues, la deteccin del chipset se basa en la
espera de una respuesta concreta a un comando o supuesta modicacin de valores en sus registros. Este
mtodo no es del todo able debido a que un chipset totalmente ajeno a las prestaciones de un escner
puede dar una respuesta equivalente a uno soportado. O incluso, detectar un chipset concreto cuando
en realidad es una variante o una versin actualizada
cuyas diferencias de programacin pueden provocar
reacciones imprevistas que ocasionen daos en el escner.
Por ello, la nalidad ms importante de esta utilidad es
permitir a los desarrolladores localizar nuevos dispositi-

3
vos susceptibles de ser controlados por sus respectivos
backends para darles el soporte necesario.

3.2 Botones del escner


La versin 1.0 de la API de SANE no soporta el control
de escneres mediante los botones que incorporan debido
a que, en el momento de su diseo, no exista esa peculiaridad. La versin 1.1 de la API (en desarrollo) s cubre
esa funcionalidad mediante el uso de opciones especcas
para los botones.
Existen dos proyectos ajenos a SANE que s posibilitan
el uso de los botones:
KScannerButtons: Si bien un frontend no tiene acceso estandarizado a los botones de un escner, los
backends pueden realizar ciertos trucos, no ociales,
para lograr esa informacin mediante opciones genricas con un patrn de nombre determinado que
actan como sensores. Cuando un backend detecta
un botn pulsado o liberado altera el estado de dichas opciones. KScannerButtons est formado por
un demonio (sanebuttond) que, instalado en el sistema, monitoriza el estado de esas opciones y tras detectar el cambio en su estado ejecuta la accin congurada por el usuario. Incorpora adems una GUI
para KDE. Debido a que no es un estndar, no todos
los backends soportan esa funcionalidad.
scanbuttond: Esta aplicacin es autnoma. No depende de las libreras de SANE para acceder a los
escneres sino que incorpora sus propios backends,
cuyo cdigo se ha extrado de los existentes en SANE. Dispone de un demonio con la misma funcionalidad.

4 Vase tambin

Portal:Software libre. Contenido relacionado


con Software libre.

Image and Scanner Interface Specication (ISIS)


Windows Image Acquisition (WIA)
TWAIN

5 Referencias
[1] Frontends que usan SANE
[2] http://www.scandox.de/sdx/overview_sane-based.html
Seccin 'SANE versus TWAIN'
[3] Operaciones del protocolo SANE
[4] sane-nd-scanner man page

Enlaces externos
Sitio web ocial de SANE
Sitio web donde se aloja el proyecto y donde se puede contactar con sus desarrolladores
XSANE, un frontend para SANE basado en
GTK+ para entornos X, WIN32 (Windows
9x/ME/NT/2000/XP) y OS/2
Image Acquisition Framework for Java
Backends de SANE

ENLACES EXTERNOS

Origen del texto y las imgenes, colaboradores y licencias

7.1

Texto

Scanner Access Now Easy Fuente: https://es.wikipedia.org/wiki/Scanner_Access_Now_Easy?oldid=85564792 Colaboradores: Sabbut,


JKD, Vitamine, GermanX, CommonsDelinker, TXiKiBoT, Biasoli, VolkovBot, Shooke, Muro Bot, Ensada, Carolingio93, SF007, LucienBOT, MastiBot, SpBot, LordboT, Xqbot, EmausBot, ZroBot, KLBot, KLBot2 y Annimos: 2

7.2

Imgenes

Archivo:DigiKam_ICC_profile.png Fuente: https://upload.wikimedia.org/wikipedia/commons/3/33/DigiKam_ICC_profile.png Licencia: Public domain Colaboradores: Trabajo propio Artista original: Mintz l
Archivo:Heckert_GNU_white.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/2/22/Heckert_GNU_white.svg Licencia:
CC BY-SA 2.0 Colaboradores: gnu.org Artista original: Aurelio A. Heckert <aurium@gmail.com>
Archivo:Kooka.png Fuente: https://upload.wikimedia.org/wikipedia/commons/b/b1/Kooka.png Licencia: CC-BY-SA-3.0 Colaboradores: Trabajo propio Artista original: Retama
Archivo:Sane-net.png Fuente: https://upload.wikimedia.org/wikipedia/commons/2/25/Sane-net.png Licencia: CC BY 3.0 Colaboradores: Trabajo propio Artista original: JKD
Archivo:XSane.png Fuente: https://upload.wikimedia.org/wikipedia/commons/b/bd/XSane.png Licencia: GPL Colaboradores: http://
hacktolive.org/images Artista original: http://hacktolive.org

7.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

22/8/2016

AYUDANTEADMINISTRATIVO:Teclados

TECLADOSDELMUNDO
El teclado QWERTY es la distribucin de teclado ms comn. Fue diseado y
patentado por Christopher Sholes en 1868 y vendido aRemington en 1873. Su
nombre proviene de las primeras seis letras de su fila superior de teclas.
La mquina de escribir de Sholes originalmente tena las teclas en orden
alfabtico. Cada una accionaba un pequeo martillo que imprima la letra sobre
el papel. Pero la velocidad de retorno del martillo era lenta, pues volva a su
posicin de reposo por simple gravedad. Por ello, al escribir, los martillos
chocaban unos contra otros y la mquina se atascaba. En lugar de perfeccionar el
dispositivo Sholes decidi elegir una distribucin arbitraria de teclas para evitar
ese problema. Lgicamente el resultado fue que las letras ms utilizadas
quedaron ms separadas entre s o en posiciones de ms difcil acceso.
QWERTY

Elteclado QWERTYtiene versiones para diferentes lenguas. En la disposicin en espaol se incluye la letra "".

TecladoQWERTYespaol,conla

Hay pases, como Alemania, que intercambian la tecla "Y" y la tecla "Z", con lo que se convierte en tecladoQWERTZ:

TecladoQWERTZdeAlemaniayAustria

http://archive.is/20130704014407/argensolapcpi.blogspot.mx/p/teclados.html#selection363.0751.228

1/4

22/8/2016

AYUDANTEADMINISTRATIVO:Teclados

TecladoQWERTZdeSuiza
En Francia y Blgica hay ms cambios y las primeras 6 teclas alfabticas tienen la secuenciaAZERTY:

TecladoAZERTYdeFranciayBlgica

Tecladogriego

Tecladoturco

Tecladorabe

http://archive.is/20130704014407/argensolapcpi.blogspot.mx/p/teclados.html#selection363.0751.228

2/4

22/8/2016

AYUDANTEADMINISTRATIVO:Teclados

Tecladojapons

Tecladochino

DVORAK

El tecladoDvorako teclado simplificado Dvorak es una distribucin de teclado diseada por los doctores August Dvorak
y William Dealey en los aos 20 y 30 como una alternativa a la popular distribucin de teclado QWERTY. Tambin se le
ha llamado teclado simplificado o teclado simplificado estadounidense, pero se le conoce comnmente como teclado
Dvorak.

Teclado DVORAK

TecladoQWERTYelmseficaz?:
La historia de la supervivencia de QWERTY es un buen ejemplo de los azarosos caminos que sigue a veces nuestra
tecnologa, combinaciones de sucesos y circunstancias fortuitas que marcan a menudo el resultado final.
En primer lugar, Sholes y su mquina QWERTY encontraron el apoyo de Remington (un famoso fabricante de armas),
que decidi comercializarla, pero en aquellos primeros tiempos de evolucin inicial el apoyo de un potente industrial
no parece suficiente para imponerse a las alternativas competidoras, posiblemente superiores. Pero QWERTY tambin
encontr apoyo entre usuarios clave. En 1882 una tal miss Longley, fundadora del Instituto de Taquigrafa y
Mecanografa de Cincinnati, vio clara su oportunidad de negocio ydesarroll y empez a ensear el tecleo a ocho
dedos que los profesionales utilizan hoy en da.
Miss Longley eligi mquinas QWERTY para sus clases, como tambin eran QWERTY, lgicamente, las mquinas que se
usaban en las escuelas de mecanografa que con un claro inters corporativo Remington empezaba a establecer por
aquel entonces. La maquinaria QWERTY estaba en marcha, pero este buen comienzo poda haberse estrellado
perfectamente contra la competencia de un mejor diseo en los duros aos del afianzamiento del patrn
mecanogrfico.

Posiblemente, el impulso definitivo le lleg a QWERTY de una ayuda inesperada, gracias a un acontecimiento crucial
que tuvo lugar en 1888. Miss Longley fue desafiada a probar la superioridad de su mtodo de ocho dedos sobre teclado
http://archive.is/20130704014407/argensolapcpi.blogspot.mx/p/teclados.html#selection363.0751.228

3/4

22/8/2016

AYUDANTEADMINISTRATIVO:Teclados

QWERTY por Louis Taub, otro profesor de mecanografa, tambin de Cincinnati, que trabajaba con cuatro dedos sobre
un teclado con otra distribucin: seis filas y sin tecla de maysculas.
La competicin, ampliamente divulgada por la prensa, se iba a convertir en una especie de juicio pblico.
Expresamente para esa competicin, miss Langley contrat los servicios deFrank E. McGurrin, un mecangrafo que
haba memorizado el teclado QWERTY y escriba por tanto como los mecangrafos de hoy dia, "al tacto", a diferencia
de sus competidores. Gracias a esta caracterstica y no tanto debido al diseo de las mquinas, McGurrin arras a Taub
en la famosa competicin.
El pblico en general y los profesores de mecanografa en particular tomaron nota de la aparente superioridad de
QWERTY. Poco pudo importar que nunca se llevaran a cabo competiciones cotejadas con mecangrafos en igualdad de
condiciones, con igual nmero de filas, o de dedos, para determinar verdaderamente la importancia del diseo de los
teclados en la eficacia de las mquinas. QWERTY ya haba recibido su impulso imparable y se impona con el
principio de siglo. En algn momento los fabricantes rivales comprendieron que les iba costar menos esfuerzo
reconvertir sus mquinas que los hbitos de la gente y se convirtieron a QWERTY o se extinguieron.

http://archive.is/20130704014407/argensolapcpi.blogspot.mx/p/teclados.html#selection363.0751.228

4/4

Teclado AZERTY
Para una persona acostumbrada al teclado QWERTY[1]
(preferido en otros pases), el cambio requiere de cierta
prctica, pues existen algunas diferencias entre los mismos:
A y Q estn intercambiadas.
Z y W estn intercambiadas.
M no est a la derecha de N sino a la derecha de L
(en lugar de (ES), de coma/punto y coma (US),
etc.).
Los dgitos 1-0 de la la superior ocupan las mismas teclas, pero para escribirlos debe pulsarse shift
(maysculas). La posicin por defecto se usa para
mostrar vocales acentuadas en minsculas.

1 Disposiciones de teclado
Distribucin geogrca de las diferentes distribuciones de teclado en Europa:
QWERTY QWERTZ AZERTY Disposiciones nacionales (turco
FGIOD, letn GJRMV, lituano ERTY) Teclados no latinos

Echap

&

F1

F2

F3

F4

>
<
Ctrl

S
W

'

" #

F6

F9

O
K

?
,

Alt

F11

F12

Impr
cran
Syst

Arrt
Dl

Inser

M
/
:

F10
+
= }

L
.
;

J
N

F8

H
B

F7

G
V

F
C

F5
6

Suppr

Fin

!
Alt Gr

Pause

Verr
Num

Attn

Verr
Maj

1.1 Por pases


Existen las siguientes disposiciones de teclado AZERTY:
Teclado francs: es el primero de su tipo.

Verr
Dl

Verr
Num

Teclado belga: en la dcada de los 80 se crea esta variante sobre el francs, donde algunos smbolos
cambian de posicin (? ! @ - _ + = ).

Fin

Ctrl

0
Inser

.
Suppr

Lettres standard

Touches Entre

Touche d'chappement

Touches Windows

Caractres spciaux

Touches de suppression

Touches de fonction

Touche de menu contextuel

Ponctuation

Touches modicatrices

Touches pour raccourcis

Mode insertion ou r-criture

Pav numrique

Touches de dplacement

Touches tabulations

autres

Teclado rabe combinado: en muchos pases se usa


con el n de poder escribir en los dos alfabetos, indistintamente para las letras del rabe o para las
latinas.[2] Estas ltimas, se presentan en formato
AZERTY (por ejemplo, en Marruecos y otros pases
francfonos africanos) o QWERTY.

Distribucin de teclado AZERTY

En pases en los que se habla otro idioma adems de francs se usan otras distribuciones de teclado, incluso para
escribir francs.
Canad
AZERTY belga

Teclado francocanadiense, QWERTY. Diseado para escribir principalmente en francs,


y tambin en ingls.

El teclado AZERTY es una distribucin de teclado que se utiliza mayoritariamente en algunos pases
francfonos. Su nombre se forma con las letras ubicadas en la segunda la de arriba del mismo, de izquierda a
derecha.[1]

Teclado canadiense multilinge, QWERTY.


Diseado para escribir principalmente en ingls y secundariamente en francs.
1

4
Suiza
Teclado francosuizo, QWERTZ. Diseado para escribir principalmente en francs y tambin en alemn.
Teclado suizo alemn, QWERTZ. Diseado
para escribir principalmente en alemn y tambin en francs

1.2

Por sistema operativo

El teclado francs rabe AZERTY en Windows no


cumple con los estndares de la lengua francesa. La
Imprimerie Nationale recomienda el uso de maysculas
acentuadas, pero no hay teclas dedicadas para mostrar
, las ligaduras o las marcas de cita francesas (los procesadores de texto en francs mayoritariamente convierten a estos caracteres las comillas dobles). Adems tiene smbolos, tanto en estado normal como presionado maysculas, que raramente se usan (por
ejemplo 2 ), que podran transferirse al mapa de teclado con AltGr pulsado. En un teclado US, la tecla a la
izquierda de 1 viene con acento grave / tilde ( ` / ~ ) ( /
ES, ` / UK), pero un AZERTY belga produce 2 / 3 .
El teclado AZERTY de Linux puede congurarse de distintas maneras, de acuerdo al pas o a los gustos del usuario.

Vase tambin
QWERTY
QWERTZ
HCESAR
Teclado Dvorak

Referencias

[1] Revista PC Magazine "Denition of:AZERTY keyboard". Consultado el 2 de julio de 2013.


[2] Curso de Ayudante Administrativo "Teclados del Mundo". Consultado el 2 de julio de 2013.

Enlaces externos
Norma del Gobierno de Quebec sobre teclados de
ordenador (en francs)

ENLACES EXTERNOS

Origen del texto y las imgenes, colaboradores y licencias

5.1

Texto

Teclado AZERTY Fuente: https://es.wikipedia.org/wiki/Teclado_AZERTY?oldid=92693678 Colaboradores: Akhram, Museo8bits, GermanX, Carlos Alberto Carcagno, Siabef, BOTpolicia, CEM-bot, Erick91, Yeza, B25es, Arandu Y.M., Moustique, Nioger, Fremen, VolkovBot, Erl, Mstreet linux, Muro Bot, Loveless, Lunor, Botelln, Alexbot, UA31, AVBOT, Integra2, Diegusjaimes, Arjuno3, Luckas-bot,
Nallimbot, Ptbotgourou, Nyttend, FrescoBot, Panderine!, D'ohBot, BOTirithel, Robot8A, AldanaN, Larin, EmausBot, Grillitus, WikitanvirBot, Zdii, KLBot2, MetroBot, Rotlink, ManuElAvell, Ks-M9, Selertos y Annimos: 27

5.2

Imgenes

Archivo:Azerty_fr.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/ca/Azerty_fr.svg Licencia: CC-BY-SA-3.0 Colaboradores: ? Artista original: ?


Archivo:Belgian_keyboard_layout.png Fuente: https://upload.wikimedia.org/wikipedia/commons/9/93/Belgian_keyboard_layout.png
Licencia: CC-BY-SA-3.0 Colaboradores: Trabajo propio Artista original: Draco avus (small x by H92 (t c no))
Archivo:Commons-emblem-question_book_orange.svg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/1/1f/
Commons-emblem-question_book_orange.svg Licencia: CC BY-SA 3.0 Colaboradores: <a href='//commons.wikimedia.org/wiki/File:
Commons-emblem-issue.svg' class='image'><img alt='Commons-emblem-issue.svg' src='https://upload.wikimedia.org/wikipedia/
commons/thumb/b/bc/Commons-emblem-issue.svg/25px-Commons-emblem-issue.svg.png' width='25' height='25' srcset='https:
//upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/38px-Commons-emblem-issue.svg.png
1.5x,
https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/50px-Commons-emblem-issue.svg.png 2x'
data-le-width='48' data-le-height='48' /></a> + <a href='//commons.wikimedia.org/wiki/File:Question_book.svg' class='image'><img
alt='Question
book.svg'
src='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/25px-Question_
book.svg.png' width='25' height='20' srcset='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/
38px-Question_book.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/50px-Question_
book.svg.png 2x' data-le-width='252' data-le-height='199' /></a> Artista original: GNOME icon artists, Jorge 2701
Archivo:Latin_keyboard_layouts_by_country_in_Europe_map.PNG Fuente: https://upload.wikimedia.org/wikipedia/commons/7/
7b/Latin_keyboard_layouts_by_country_in_Europe_map.PNG Licencia: CC BY-SA 3.0 Colaboradores: Windows Keyboard Layouts Artista original:

5.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Teclado HCESAR
el n de sustituir esta tecla por la letra O, as como el
1 se reemplazaba con la l. Dispona adems de teclas
especcas del idioma luso, como las vocales nasalizadas
"" y "". El asterisco se lograba colocando una x sobre
el signo "+"
Como queda dicho, este teclado fue el nico aceptado en
organismos pblicos en Portugal hasta mediados de los
aos setenta, cuando gradualmente se volvi a usar el teclado AZERTY, especialmente a raz de la Revolucin de
abril de 1974. Durante los aos ochenta se denominaba al
HCESAR teclado nacional y al AZERTY internacional"; despus de un tiempo los teclados HCESAR fueron
retirados del mercado.

Teclado HCESAR.

En la actualidad, los portugueses usan el teclado


QWERTY adaptado a su idioma. Las mquinas HCESAR se han convertido en curiosas y buscadas piezas de
coleccionista.

1 Vase tambin
AZERTY
QWERTZ
QWERTY
Teclado Dvorak

Gracias a Salazar el teclado HCESAR se mantuvo hasta despus


de terminado su gobierno.

Wikimedia Commons alberga contenido multimedia sobre Teclado HCESAR. Commons

2 Notas

El Teclado HCESAR (o segn la pronunciacin AgCsar) fue un teclado instaurado por el Primer Ministro
portugus Doctor Antnio de Oliveira Salazar mediante
un decreto del ao 1937.[1][2][3]

[1] Regulamento da organizao da mocidade portuguesa,


Dirio do Governo n 284, I srie de 4 de Dezembro de
1936 e os Decretos n 27882 e n 27868 de 21 de julho
de 1937

Este teclado, llamado as por la secuencia las seis primeras letras de la primera la, supli al AZERTY francs
por permitir una redaccin dactilogrca ms rpida en
portugus, considerando la frecuencia de uso de las letras en dicho idioma, situndose en la zona central las
de mayor uso. As, desde 1937 las mquinas de escribir
HCESAR eran obligatorias en las dependencias pblicas,
y hasta 1974 eran las habituales, por no decir las nicas,
en los comercios portugueses.

[2] Article by Srgio Lira from Fernando Pessoa University


[3] Fernando Pessoa University: http://www.ufp.pt/

Era comn en estos teclados que se omitiera el cero con


1

3 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

3.1

Texto

Teclado HCESAR Fuente: https://es.wikipedia.org/wiki/Teclado_HCESAR?oldid=89614527 Colaboradores: Sanbec, Uhanu, Erick91,


Gragry, Luis1970, Muro Bot, Minuanoencapital, Angel GN, Emmagatzematge de Saviesa, Zinneke, Rothorpe, EmausBot, Lotje, Fuegon,
KLBot2, Wikisamurai, Elvisor, EricEnfermero, Selertos y Annimos: 7

3.2

Imgenes

Archivo:Antnio_de_Oliveira_Salazar,_drawing.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/36/Ant%C3%


B3nio_de_Oliveira_Salazar%2C_drawing.jpg Licencia: CC-BY-SA-3.0 Colaboradores: ? Artista original: ?
Archivo:Commons-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licencia: Public domain Colaboradores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used
to be slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
Archivo:Hcesar.png Fuente: https://upload.wikimedia.org/wikipedia/commons/b/ba/Hcesar.png Licencia: CC-BY-SA-3.0 Colaboradores: Transferido desde en.wikipedia a Commons.; transfer was stated to be made by EuTuga. Artista original: The original uploader was
Rotring de Wikipedia en ingls

3.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Teclado QWERTZ

QWERTZ usado en Serbia, Croacia, Montenegro, Eslovenia y


Bosnia y Herzegovina.

QWERTZ usado en Hungra.

Distribucin geogrca de los diferentes teclados en Europa:


QWERTY QWERTZ AZERTY Disposiciones nacionales (Turqua
FGIOD, Letonia GJRMV, Lituania ERTY) alfabetos no latinos

Teclado QWERTZ.

Strg

(Win) Alt

Alt Gr

el alemn y a que T y Z suelen aparecer una tras otra en


el idioma alemn. Parte del teclado ha sido adaptada para
incluir las vocales con diresis locales, como , , , etc.
Incluye tambin el smbolo del Euro () en la posicin
recomendada por la Unin Europea. Algunos smbolos
especiales ocupan tambin un lugar diferente.

(Win) (Menu) Strg

QWERTZ usado en Alemania y Austria.

Modelos basados en QWERTZ se utilizan en Suiza, y la


mayora de pases de Europa Oriental y Europa Central
que utilizan el alfabeto latino, con la excepcin de Estonia
y Lituania.

Enter

Caps Lock
Shift

Shift

Un teclado QWERTZ es llamado informalmente un kezboard (cambiando la Y del keyboard ingls por la Z), pues
QWERTZ usado en Suiza.
es el resultado de escribir keyboard por una persona acostumbrada a QWERTZ / QWERTY si le cambian la disEl teclado QWERTZ o teclado QWERTZU es una tribucin del teclado.
distribucin de teclado que se usa principalmente en regiones germanohablantes. El nombre proviene de las seis
primeras teclas de la la superior del teclado.
1 Vase tambin
Se diferencia de QWERTY en el intercambio de las teclas
Z e Y, debido a que la Z es mucho ms comn que la Y en

AZERTY
1

1
QWERTY
HCESAR
Teclado Dvorak
Mquina de escribir Blickensderfer

VASE TAMBIN

Origen del texto y las imgenes, colaboradores y licencias

2.1

Texto

Teclado QWERTZ Fuente: https://es.wikipedia.org/wiki/Teclado_QWERTZ?oldid=89614557 Colaboradores: Museo8bits, GermanX,


Siabef, Erick91, Thijs!bot, Yeza, JAnDbot, CommonsDelinker, Gerwoman, Muro Bot, Lunor, Poco a poco, AVBOT, MastiBot, Emmagatzematge de Saviesa, Arjuno3, Luckas-bot, Nyttend, Sannaj, TjBot, Ripchip Bot, Larin, ZroBot, Grillitus, KLBot2, Thehelpfulbot,
MetroBot, ManuElAvell, Balles2601, Selertos y Annimos: 11

2.2

Imgenes

Archivo:Cherry_keyboard_105_keys.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/3c/Cherry_keyboard_105_


keys.jpg Licencia: Public domain Colaboradores: Gamma corrected image of the original Image:Cherry_keyboard.jpg. Artista original:
User:32bitmaschine
Archivo:Commons-emblem-question_book_orange.svg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/1/1f/
Commons-emblem-question_book_orange.svg Licencia: CC BY-SA 3.0 Colaboradores: <a href='//commons.wikimedia.org/wiki/File:
Commons-emblem-issue.svg' class='image'><img alt='Commons-emblem-issue.svg' src='https://upload.wikimedia.org/wikipedia/
commons/thumb/b/bc/Commons-emblem-issue.svg/25px-Commons-emblem-issue.svg.png' width='25' height='25' srcset='https:
//upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/38px-Commons-emblem-issue.svg.png
1.5x,
https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/50px-Commons-emblem-issue.svg.png 2x'
data-le-width='48' data-le-height='48' /></a> + <a href='//commons.wikimedia.org/wiki/File:Question_book.svg' class='image'><img
alt='Question
book.svg'
src='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/25px-Question_
book.svg.png' width='25' height='20' srcset='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/
38px-Question_book.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/50px-Question_
book.svg.png 2x' data-le-width='252' data-le-height='199' /></a> Artista original: GNOME icon artists, Jorge 2701
Archivo:Croatian_keyboard_layout.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/5/5b/Croatian_keyboard_layout.
jpg Licencia: CC-BY-SA-3.0 Colaboradores: Trabajo propio Artista original: <a href='//commons.wikimedia.org/wiki/User:MaGa'
title='User:MaGa'>Ma</a><a href='//commons.wikimedia.org/wiki/User_talk:MaGa' title='User talk:MaGa'>Ga</a>
Archivo:KB_Germany.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/36/KB_Germany.svg Licencia: CC-BY-SA-3.0
Colaboradores: ? Artista original: ?
Archivo:KB_Hungary.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/a/a8/KB_Hungary.svg Licencia: CC-BY-SA-3.0
Colaboradores: ? Artista original: ?
Archivo:KB_Swiss.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4f/KB_Swiss.svg Licencia: GFDL Colaboradores: ?
Artista original: ?
Archivo:Latin_keyboard_layouts_by_country_in_Europe_map.PNG Fuente: https://upload.wikimedia.org/wikipedia/commons/7/
7b/Latin_keyboard_layouts_by_country_in_Europe_map.PNG Licencia: CC BY-SA 3.0 Colaboradores: Windows Keyboard Layouts Artista original:

2.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Thunderbolt
Implementacin de la calidad de servicio

Thunderbolt, antes conocido por su nombre clave Light


Peak, es el nombre utilizado por Intel para designar a
un tipo de conector de alta velocidad que hace uso de
tecnologa ptica.[5][6]

Sustitucin en caliente

Tiene capacidad para ofrecer un gran ancho de banda,


hasta 20 gigabits por segundo, pero podra desarrollarse
en la prxima dcada hasta llegar a los 100 Gbit/s.[7] A
10 Gbit/s un Blu-ray puede ser transferido en menos de
30 segundos.[8][9]

2 Referencias
[1] Thunderbolt Technology. Intel. Consultado el 25 de
febrero de 2011.
[2] Crothers, Brooke (29 de septiembre de 2009). Sources:
'Light Peak' technology not Apple idea. CNet News
(CNet). Consultado el 23 de febrero de 2011.

Ha sido concebido para reemplazar a algunos buses actuales, tales como FireWire y HDMI.[10] Con la tecnologa Light Peak un nico cable de bra ptica podra sustituir a 50 cables de cobre utilizados para la transmisin de
una nica escena en 3 dimensiones. La tecnologa Light
Peak fue mostrada en el Intel Developer Forum el 23 de
septiembre de 2009. Esta tecnologa fue desarrollada por
Intel en colaboracin con Apple Inc[11]

[3] Technology Brief. Intel. Consultado el 25 de febrero de


2011.
[4] Lowensohn, Josh (24 de febrero de 2011). Intels Thunderbolt: What you need to know (FAQ). CNet News (CBS
Interactive). Consultado el 25 de febrero de 2011.

La primera versin (Cactus Ridge) est fabricada enteramente de cobre en vez de bra ptica.

[5] Light Peak technology. Intel. 23 de septiembre de 2009.


Consultado el 27 de septiembre de 2009.

[6] Patel, Nilay (23 de septiembre de 2009). Intel unveils


Light Peak 10Gbps optical interconnect for mobile devices. Engadget. Consultado el 27 de septiembre de 2009.

Caractersticas

[7] Myslewski, Rik (23 de septiembre de 2009). Intel unfurls


copper-killing optical cables. The Register. Consultado el
27 de septiembre de 2009.
[8] Intels priority: A total mobile computing experience.
Intel. 23 de septiembre de 2009. Consultado el 27 de septiembre de 2009.
[9] Shah, Agam (23 de septiembre de 2009). Intel connects
PCs to devices using light. PC World. Consultado el 27
de septiembre de 2009.
[10] Shankland, Stephen (23 de septiembre de 2009). Intels
Light Peak: One PC cable to rule them all. CNET. Consultado el 27 de septiembre de 2009.
[11] . 26 de septiembre de 2009 http://www.apple.com/es/
thunderbolt/. Consultado el 27 de septiembre de 2009.
Falta el |ttulo= (ayuda)

Macbook Pro con Interfaz Thunderbolt

Thunderbolt posee las siguientes caractersticas:[12]

[12] Patel, Nilay (24 de septiembre de 2009). Video: Intels


Light Peak running an HD display while transferring les... on a hackintosh. Engadget. Consultado el 27 de septiembre de 2009.

10 Gbit/s sobre cable de cobre a distancias de hasta


3 metros (Light Peak, el prototipo, usaba cables de
bra ptica que funcionaban a distancias de incluso
100 metros).
Conexin simultnea a mltiples dispositivos

3 Enlaces externos

Mltiples protocolos

Light Peak technology en Intel.com (en ingls)

Transferencia bidireccional
1

4 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

4.1

Texto

Thunderbolt Fuente: https://es.wikipedia.org/wiki/Thunderbolt?oldid=90538123 Colaboradores: Tony Rotondas, Petronas, Pvieito, Jorge, Escarbot, CommonsDelinker, TXiKiBoT, Plux, VolkovBot, Muro Bot, Bjankuloski06es, Bigsus-bot, Nicholasraul, Kikobot, Poco a
poco, Alexbot, David0811, Linfocito B, Saloca, Luckas-bot, Amirobot, Ptbotgourou, Jorge 2701, Finderlog, Xqbot, Jkbw, Irbian, Botarel, D'ohBot, TiriBOT, MAfotBOT, Franbooks, Rajijose, TorQue Astur, PatruBOT, EmausBot, Sergio Andres Segovia, J. A. Glvez,
Dondervogel 2, ChuispastonBot, WikitanvirBot, Apalonso, Rodo9, KLBot2, Invadibot, Apmkeaper, TheNan3, Makecat-bot, Mvivas1988,
Elpollitopio, Makebos, Seorpatata, JacobRodrigues, Cabanur, Jarould y Annimos: 26

4.2

Imgenes

Archivo:Thunderbolt-Connector.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/6/69/Thunderbolt-Connector.jpg Licencia: CC0 Colaboradores: Trabajo propio Artista original: Heavysilence
Archivo:ThunderboltIO.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f3/ThunderboltIO.jpg Licencia: CC BY 3.0
Colaboradores: Trabajo propio Artista original: Macfan97

4.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Universal Serial Bus


El Bus Universal en Serie (BUS) (en ingls: Universal Serial Bus), ms conocido por la sigla USB, es un
bus estndar industrial que dene los cables, conectores
y protocolos usados en un bus para conectar, comunicar
y proveer de alimentacin elctrica entre computadoras,
perifricos y dispositivos electrnicos.[2]

dernas van convirtindose en reproductores multimedia


con conector USB o iPod) a los reproductores de Bluray Disc o los modernos juguetes como Pleo. Se han implementado variaciones para su uso industrial e incluso
militar. Pero donde ms se nota su inuencia es en los
telfonos inteligentes (Europa ha creado una norma por
Su desarrollo parti de un grupo de empresas del sector la que todos los mviles debern venir con un cargador
que buscaban unicar la forma de conectar perifricos microUSB), tabletas, PDA y videoconsolas, donde ha rea sus equipos, por aquella poca poco compatibles entre emplazado a conectores propietarios casi por completo.
s, entre las que estaban Intel, Microsoft, IBM, Compaq, Algunos dispositivos requieren una potencia mnima, as
DEC, NEC y Nortel. La primera especicacin completa que se pueden conectar varios sin necesitar fuentes de ali1.0 se public en 1996, pero en 1998 con la especica- mentacin extra. Para ello existen concentradores (llamacin 1.1 comenz a usarse de forma masiva.
dos USB hubs) que incluyen fuentes de alimentacin para
aportar
energa a los dispositivos conectados a ellos, pero
El USB es utilizado como estndar de conexin de
algunos
dispositivos consumen tanta energa que necesiperifricos como: teclados, ratones, memorias USB,
tan
su
propia
fuente de alimentacin. Los concentradojoysticks, escneres, cmaras digitales, telfonos mviles,
res
con
fuente
de alimentacin pueden proporcionarle coreproductores multimedia, impresoras, dispositivos mulrriente
elctrica
a otros dispositivos sin quitarle corriente
tifuncionales, sistemas de adquisicin de datos, mdems,
al
resto
de
la
conexin
(dentro de ciertos lmites).
tarjetas de red, tarjetas de sonido, tarjetas sintonizadoras
de televisin y grabadoras de DVD externa, discos duros
externos y disqueteras externas. Su xito ha sido total,
habiendo desplazado a conectores como el puerto serie,
puerto paralelo, puerto de juegos, Apple Desktop Bus o
PS/2 a mercados-nicho o a la consideracin de dispositivos obsoletos a eliminar de las modernas computadoras,
pues muchos de ellos pueden sustituirse por dispositivos
USB que implementen esos conectores.

En el caso de los discos duros, slo una selecta minora


implementan directamente la interfaz USB como conexin nativa, siendo los discos externos mayoritariamente
IDE o Serial ATA con un adaptador en su interior. Incluso
existen cajas externas y cunas que implementan conectores eSATA y USB, incluso USB 3.0. Estas y las mixtas
USB/FireWire han expulsado del mercado de discos externos a SCSI y las conexiones por puerto paralelo.

2.1 Versiones previas

Resea

El estndar USB evolucion a travs de varias versiones


El USB fue diseado para economizar y estandarizar la
antes de su lanzamiento ocial en 1996:
conexin de perifricos.
Fue desarrollado a mediados de los aos 1990; y en 1996,
el Foro de Implementadores de BUS (USB Implementers
Forum, USB-IF)[3] lanz la impopular primera especicacin USB 1.0, hasta que en 1998 lanz la famosa
especicacin USB 1.1.[4]

USB 0.7: lanzado en noviembre de 1994.

Desde 2004, aproximadamente 6 mil millones de dispositivos se encuentran actualmente en el mercado global,
y alrededor de 2 mil millones se venden cada ao.[5]

USB 0.99: lanzado en agosto de 1996.

USB 0.8: lanzado en diciembre de 1994.


USB 0.9: lanzado en abril de 1995.

USB 1.0 Release Candidate: lanzado en noviembre


de 1995.

Uso

3 Velocidades de transmisin

El campo de aplicacin del USB se extiende en la actualidad a cualquier dispositivo electrnico o con componen- Los dispositivos USB se clasican en cuatro tipos segn
tes, desde los automviles (las radios de automvil mo- su velocidad de transferencia de datos:
1

3
Baja velocidad (1.0): Tasa de transferencia de hasta
1,5 Mbit/s (188 kB/s). Utilizado en su mayor parte
por dispositivos de interfaz humana (Human Interface Device, en ingls) como los teclados, los ratones
(mouse), las cmaras web, etc.
Velocidad completa (1.1): Tasa de transferencia de
hasta 12 Mbit/s (1,5 MB/s) segn este estndar, pero se dice en fuentes independientes que habra que
realizar nuevamente las mediciones. sta fue la ms
rpida antes de la especicacin USB 2.0. Estos dispositivos dividen el ancho de banda de la conexin
USB entre ellos, basados en un algoritmo de impedancias LIFO.

VELOCIDADES DE TRANSMISIN

mV en alta velocidad (2.0). En las primeras versiones, los


alambres de los cables no estn conectados a tierra, pero
en el modo de alta velocidad se tiene una terminacin de
45 a tierra o un diferencial de 90 para acoplar la impedancia del cable. Este puerto slo admite la conexin
de dispositivos de bajo consumo, es decir, que tengan un
consumo mximo de 100 mA por cada puerto; sin embargo, en caso de que estuviese conectado un dispositivo
que permite 4 puertos por cada salida USB (extensiones
de mximo 4 puertos), entonces la energa del USB se
asignar en unidades de 100 mA hasta un mximo de 500
mA por puerto. Con la primera fabricacin de un PC con
USB 3.0 en 2009, ahora tenemos 1 A (un amperio) por
puerto, lo cual da 5 W (cinco vatios) en lugar de 0,5 A
(500 mA, 2,5W) como mximo.

3.1 Comparativa de velocidades

Logotipo del USB 2.0

Alta velocidad (2.0): Tasa de transferencia de hasta


480 Mbit/s (60 MB/s) pero con una tasa real prctica
mxima de 280 Mbit/s (35 MB/s). El cable USB 2.0
dispone de cuatro lneas, un par para datos, y otro
par de alimentacin.
Superalta velocidad (3.0): Tiene una tasa de trans- Mini ventiladores USB
ferencia de hasta 4,8 Gbit/s (600 MB/s). La velocidad del bus es diez veces ms rpida que la del USB
2.0, debido a que han incluido 5 contactos adiciona- Conexiones de dispositivos externos
les, desechando el conector de bra ptica propuesto inicialmente, y ser compatible con los estndares
Firewire 800: 800 Mb/s (100 MB/s)
anteriores. En octubre de 2009 la compaa taiwa Firewire s1600: 1.6 Gb/s (200 MB/s)
nesa ASUS lanz la primera placa base que inclua
puertos USB 3.0, tras ella muchas otras le han segui Firewire s3200: 3.2 Gb/s (300 MB/s)
do y actualmente se ve cada vez ms en placas base
y porttiles nuevos, conviviendo junto con el USB
USB 1.0: 190 KB/s
2.0.[6][7]
USB 1.1: 12 Mb/s (1.5 MB/s)
Las seales del USB se transmiten en un cable de par tren USB 2.0: 480 Mb/s (60 MB/s)
zado con impedancia caracterstica de 90 15%, cuyos hilos se denominan D+ y D-.[8] stos, colectivamen USB 3.0: 4.8 Gb/s (600 MB/s)
te, utilizan sealizacin diferencial en half dplex excep USB 3.1: 10 Gb/s (1.2 GB/s)
to el USB 3.0 que utiliza un segundo par de hilos para
realizar una comunicacin en full dplex. La razn por
la cual se realiza la comunicacin en modo diferencial Conexiones de dispositivos externos de alta velocidad
es simple, reduce el efecto del ruido electromagntico en
enlaces largos. D+ y D- suelen operar en conjunto y no
son conexiones simples. Los niveles de transmisin de la
e-SATA: 2,4 Gb/s[9]
seal varan de 0 a 0,3 V para bajos (ceros) y de 2,8 a 3,6
USB 3.0: 4,8 Gb/s[10]
V para altos (unos) en las versiones 1.0 y 1.1, y en 400

3
Thunderbolt: 10 Gb/s[11]
Thunderbolt 2: 20 Gb/s
USB 3.1: 10 Gb/s
Conexiones para tarjetas de expansin
PCI Express 1.x (x1): 250 MB/s
PCI Express 2.0 (x1): 500 MB/s
PCI Express 3.0 (x1): 1 GB/s
PCI Express 1.x (x8): 2 GB/s
PCI Express 2 (x8): 4 GB/s
PCI Express 3.0 (x8): 8 GB/s
PCI Express 1.x (x16): 4 GB/s
PCI Express 2 (x16): 8 GB/s
PCI Express 3.0 (x16): 16 GB/s
Conexiones de almacenamiento interno
ATA: 100 MB/s (UltraDMA 5)
PATA: 133 MB/s (UltraDMA 6)

enviar, otras dos para recibir, y una quinta se encarga de


suministrar la corriente. As, el trco es bidireccional
(Full dplex).
A nales de 2009, fabricantes como Asus o Gigabyte presentaron placas base con esta nueva revisin del bus. La
versin 3.0 de este conector universal es 10 veces ms rpida que la anterior. Aquellos que tengan un teclado o un
ratn de la versin anterior no tendrn problemas de compatibilidad, ya que el sistema lo va a reconocer al instante,
aunque no podrn beneciarse de los nuevos adelantos de
este puerto usb serial bus.
En la feria Consumer Electronics Show (CES), que se
desarroll en Las Vegas, Estados Unidos, se presentaron
varios aparatos que vienen con el nuevo conector. Tanto
Western Digital como Seagate anunciaron discos externos equipados con el USB 3.0, mientras que Asus, Fujitsu
y HP anunciaron que tendrn modelos porttiles con este
puerto.
Principales diferencias entre USB 2.0 y 3.0 La principal diferencia apreciable, es la velocidad de transferencia
de datos, que es muy superior en el estndar USB 3.0. El
soporte de formatos HD es casi nulo en USB 2.0, pero
es ampliamente soportado por USB 3.0. Los dispositivos
USB 3.0 se pueden conectar en conectores USB 2.0 y viceversa, si es de tipo A. Si es de tipo B o micro-B, los
dispositivos USB 2.0 se pueden conectar en conectores
USB 3.0, pero no al revs.

SATA I: 1.5 Gb/s (187.5 MB/s)


SATA II: 3 Gb/s (375 MB/s)
SATA III: 6 Gb/s (750 MB/s)

USB 3.0

Caractersticas de USB 3.0 A diferencia del USB 2.0,


esta nueva tecnologa (USB 3.0 Super Speed), es casi diez
veces ms rpida, ya que transere datos a 600 MB/s.
Tambin, podemos notar que cuenta con soporte para dispositivos HD externos, lo que aumenta su rendimiento.
La principal caracterstica es la multiplicacin por 10 de
la velocidad de transferencia, que pasa de los 480 Mbit/s
a los 4,8 Gbit/s (600 MB/s).
Otra de las caractersticas de este puerto es su regla de
inteligencia": los dispositivos que se enchufan y despus
de un rato quedan en desuso, pasan inmediatamente a un
estado de bajo consumo.
Principales diferencias entre los puertos:
A la vez, la intensidad de la corriente se incrementa de
los 500 a los 900 miliamperios, que sirve para abastecer
a un telfono mvil o un reproductor audiovisual porttil
en menos tiempo.
Por otro lado, aumenta la velocidad en la transmisin de
datos, ya que en lugar de funcionar con tres lneas, lo hace con cinco. De esta manera, dos lneas se utilizan para

USB 1.1 - 2.0

USB 3.0

Mini-A

Mini-B

Micro-A

Micro-B

Micro-B

5 USB On-The-Go
USB On-The-Go, frecuentemente abreviado como USB
OTG, es una especicacin que permite a los dispositivos USB como reproductores digitales de audio, telfonos
mviles o tabletas actuar como servidores, facilitando que
se puedan conectar memorias y discos duros USB, ratones o teclados.[12]

CARACTERSTICAS FSICAS

Caractersticas fsicas

A diferencia de otros cables de datos (Ethernet, HDMI,


etc), cada extremo de un cable USB utiliza un tipo de
conector diferente; una de tipo A o de tipo B. Este tipo
6.1 Compatibilidad y conectores
de diseo fue elegido para evitar las sobrecargas elctricas
y no daar el equipo, ya que slo la hembra de tipo A se
El estndar USB especica tolerancias mecnicas relatipresenta la carga elctrica.
vamente amplias para sus conectores, intentando maximizar la compatibilidad entre los conectores fabricados
por la compaa una meta a la que se ha logrado llegar. 6.3 Patillaje de los Tipos A y B
El estndar USB, a diferencia de otros estndares tambin
dene tamaos para el rea alrededor del conector de un
6.4 Patillaje de los tipos Mini y Micro
dispositivo, para evitar el bloqueo de un puerto adyacente
por el dispositivo en cuestin.
Las especicaciones USB 1.0, 1.1 y 2.0 denen dos tipos de conectores para conectar dispositivos al servidor:
A y B. Sin embargo, la capa mecnica ha cambiado en
algunos conectores. Por ejemplo, el IBM UltraPort es un
conector USB privado localizado en la parte superior del
LCD de los ordenadores porttiles de IBM. Utiliza un conector mecnico diferente, mientras mantiene las seales
y protocolos caractersticos del USB. Otros fabricantes de
artculos pequeos han desarrollado tambin sus medios
de conexin pequeos, y ha aparecido una gran variedad
de ellos, algunos de baja calidad.
Una extensin del USB llamada USB On The Go (sobre la marcha) permite a un puerto actuar como servidor
o como dispositivo; esto se determina por qu lado del
cable est conectado al aparato. Incluso despus de que
el cable est conectado y las unidades se estn comunicando, las 2 unidades pueden cambiar de papel bajo
el control de un programa. Esta facilidad est especcamente diseada para dispositivos como PDA, donde el
enlace USB podra conectarse a un PC como un dispositivo, y conectarse como servidor a un teclado o ratn.
El USB-On-The-Go tambin ha diseado 3 conectores pequeos, el mini-A y el mini-B, as que esto debera
detener la proliferacin de conectores miniaturizados de
entrada.

6.5 USB 3.1 con conectores Tipo-C reversibles

En agosto de 2014, la (USB-IF), organizacin formada


por empresas como Intel, Microsoft, HP y Apple entre
muchas otras y que decide sobre el estndar del USB, public la especicacin del nuevo conector USB, tambin
conocido como Tipo C, que implementa un nuevo tipo
de conector reversible tanto en extremos como en posicin. Este tipo de conector, adems de ofrecer comodidad
por su diseo reversible, ofrece una velocidad de hasta 10
Gbit/s de rendimiento mientras que a la vez hasta 2A se
pueden extraer sobre 5V, y opcionalmente, tambin 5A
sobre 12V (60W) o 20V (100W). Esta es la razn por
la cual la nueva MacBook puede ser alimentada simplemente a travs de su conexin USB basndose tambin
en la nueva especicacin USB 3.1.
El nuevo tipo de conector est pensado para ser el sucesor de todos los anteriores (Tipo A y B), que quedarn
obsoletos cuando el nuevo se implemente en todo tipo de
dispositivos mviles y de sobremesa. An no se ha dado
a conocer el patillaje de los nuevos conectores USB que
saldrn a produccin a nales de 2014. Por los bocetos
de la especicacin se sabe que cada conector tendr un
total de 12 pines.

El estndar USB 3.1 es retrocompatible con USB 3.0 y


USB 2.0. Esto quiere decir que un dispositivo con USB
3.1 conectado a otro con USB 2.0 la velocidad de transfe6.2 Conectores tipo A y B
rencia de datos ser la del dispositivo con USB 2.0 hasta
La especicacin clsica del USB contempla varios tama- un mximo de 480 Mbit/s. Tambin, habr que tener en
os y tipos de conectores compatibles con distintas espe- cuenta la versin USB del cable que permita esa mxima transferencia de datos, se puede tener dos dispositicicaciones:
vos con USB 3.1 pero si se utiliza un cable USB 2.0 la
transferencia se limita a ese estndar.[13]
el estndar de tamao mayor, por ejemplo, en disLa especicacin USB Tipo-C trae un nuevo conector repositivos de Memoria USB.
versible para dispositivos USB 3.1. El conector Tipo-C
el tamao mini (sobre todo para el extremo del ser usado en ambos dispositivos sea antrin o husped,
reemplazando as mltiple conectores tipo-A y tipo-B y
conector B, como en muchas cmaras digitales)
cables con un stndar future-proof similares al Lightning
el tamao micro, en sus variantes USB 1.1/2.0 y de Apple y al Thunderbolt. El conector de doble lado de
USB 3.0 (por ejemplo, en la mayora de los telfonos 24 pines provee 4 pares power/ground, dos pares diferenciales para el puerto de datos USB 2.0 (aunque solo un par
inteligentes)
es implementado en el cable tipo-C), cuatro pares para el
el esquema verstil USB On-The-Go, en tamaos puerto de datos high-speed, dos pines de uso de banmini y micro.
da lateral y dos pines de conguracin para la deteccin

5
de orientacin del cable, canal de datos con conguracin BMC dedicada (biphase mark code) y VCONN +5
V de potencia para cables activos. Los cables/adaptadores
Tipo-A y Tipo-B sern requeridos para dispositivos heredados con el n de conectar a antriones Tipo-C, Sin
embargo adaptadores/cables con un receptculo de TipoC no estn permitidos.

por radio con gran ancho de banda que combina la sencillez de uso de USB con la versatilidad de las redes inalmbricas. Utiliza como base de radio la plataforma UltraWideBand desarrollada por WiMedia Alliance, que puede lograr tasas de transmisin de hasta 480 Mbit/s (igual
que USB 2.0) en rangos de tres metros y 110 Mbit/s en
rangos de diez metros y opera en los rangos de frecuencia
de 3,1 a 10,6 GHz. Actualmente se est en plena transicin y an no existen muchos dispositivos que incorporen
este protocolo, tanto clientes como antriones. Mientras
dure este proceso, mediante los adaptadores y/o cables
adecuados se puede convertir un equipo WUSB en uno
USB y viceversa.

Los cables USB 3.1 de tipo-C con todas las caractersticas son cables activos electrnicamente marcados y contienen un chip con una funcin de identicacin basado
en el canal de conguracin de datos y mensajes denidos por el proveedor (VDM) de la especicacin USB
Power Delivery 2.0. Los dispositivos USB 3.1 de TipoC tambin soportan corrientes de alimentacin de 1.5 A
y 3.0 A travs del bus de 5 V de tensin, adems de la
lnea de base 900 mA; los dispositivos pueden o bien ne- 9 Lista de perifricos que es posible
gociar un aumento de corriente USB a travs de la lnea
conectar a un puerto USB y USB
de conguracin, o pueden apoyar opcionalmente la esOTG
pecicacin completa Power Delivery utilizando tanto
la lnea de conguracin con cdigo de BMC y la lnea
VBUS codicado-BFSK legado.
El puerto USB es un estndar que permite la transferencia
El modo alterno dedica algunos de los cables fsicos en el de informacin desde o hacia otro perifrico. Esta lista
cable Tipo-C para la transmisin directa de dispositivo- detalla los perifricos que es posible conectar a un puerto
a-antrin de una gran cantidad de protocolos de datos USB. Por orden alfabtico.
alternos. Los cuatro carriles de alta velocidad, dos pines
de banda lateral, y -para puerto, dispositivo desmontable y aplicaciones de cable permanentes solamente - dos
clavijas USB 2.0 y un pin de conguracin se pueden utilizar para la transmisin de modo alternativo. Los modos
se conguran mediante VDM a travs del canal de conguracin. A diciembre de 2014, las implementaciones
Modo Alt incluyen DisplayPort 1.3 y MHL 3.0; Otros
protocolos seriales como PCI Express y Base-T Ethernet
son posibles
En marzo de 2015, Apple lanza un nuevo modelo MacBook ms no que MacBook Air y que equipa un conector USB Type-C.[14] Por otro lado, Google anuncia este
tipo de conector para prximas tabletas y mviles Android.

Cmaras de fotos
Cmaras de video
Disqueteras externas
Discos duros externos
Grabadoras de DVD externas
Impresoras USB
Lector de tarjetas de memoria
Multifunciones
Ratones USB
Teclados USB

Almacenamiento masivo USB

USB implementa conexiones a dispositivos de almacenamiento usando un grupo de estndares llamado USB
mass storage device class (abreviado en ingls MSC o
UMS). ste se dise inicialmente para memorias pticas y magnticas, pero ahora sirve tambin para soportar una amplia variedad de dispositivos, particularmente
memorias USB.

Telfonos mviles
Sintonizadoras de TV USB
Pendrives
Mdems USB
Monitores USB
PDA
Reproductor de audio digital

Wireless USB

Wireless USB (normalmente abreviado W-USB o


WUSB) es un protocolo de comunicacin inalmbrica

Reproductor de MP4
Volantes USB
Ventiladores USB

12 ENLACES EXTERNOS
Joysticks USB
Webcams USB
Tocadiscos para la transferencia de msica
Tarjetas de video USB
Tarjetas de sonido USB
Tarjetas Wi USB
Tarjetas de red USB
Mini altavoces
Hubs USB o concentradores de puertos USB
mini amplicadores usb (muy extrao)

10

Vase tambin

Aplicacin porttil

[8] USB in a NutShell - Chapter 2 - Hardware. Beyond Logic.org. Consultado el 25 de agosto de 2007.
[9] en:Serial ATA#eSATA
[10] http://www.usb.org/developers/ssusb
[11] http://www.apple.com/es/thunderbolt/
[12] en:USB_On-The-Go (en ingls)
[13] USB Tipo C - Compatibilidad entre versiones del USB
(en espaol de Espaa). Consultado el 18 de julio de 2016.
[14] Fayerwayer USB-C Qu es, qu puede hacer y por qu lo
vamos a ver por todos lados

12 Enlaces externos
Wikilibros

Wikilibros en ingls alberga un libro o manual


sobre Serial Programming:USB Technical Manual.

Wikimedia Commons alberga contenido multimedia sobre Universal Serial BusCommons.

Firewire
Hub USB
Enlace de Alta Denicin Mvil (MHL)
PC 99
MSC
UMS
MTP
PTP

11

Referencias

[1] USB inventor is techs unlikely 'rock star' - CNN. Articles.cnn.com. 4 de febrero de 2010. Archivado desde el
original el 22 de noviembre de 2015. Consultado el 12 de
diciembre de 2011.
[2] Boston Globe Online / Business / USB deserves more
support. Simson.net. 31 de diciembre de 1995. Consultado el 12 de diciembre de 2011.
[3] About USB Implementers Forum, Inc. (en ingls). Consultado el 1 de agosto de 2014.
[4] Por qu es difcil conectar un USB y otros secretos de su
nacimiento. Consultado el 25 de julio de 2013.
[5] SuperSpeed USB 3.0: More Details Emerge. 6 de enero
de 2009.
[6] Shankland, Stephen. USB 3.0 brings optical connection in
2008. CNET News.com. Retrieved on 2007-09-19.
[7] Demerjian, Charlie. Gelsinger demos USB 3.0, PICe 3.0
and other new toys. The Inquirer. Consultado el 2007-0919.

USB,incluyendo documentacin (en ingls)


Puertos E/S: Puertos USB
US Ecolgico ENLACE ROTO
Linux USB Project (en ingls)

13
13.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Universal Serial Bus Fuente: https://es.wikipedia.org/wiki/Universal_Serial_Bus?oldid=92713401 Colaboradores: Joseaperez, Oblongo,


Moriel, JorgeGG, ManuelGR, Angus, Zwobot, Dodo, Crescent Moon, Miuler, Triku, Sms, SimnK, Antonio Pramo, Sefer, Barcex, Galio,
PeiT, Troodon, Rondador, Erik Streb, Almorca, Balderai, Edupedro, Mnts, Deleatur, Petronas, Orgullomoore, GuillermoP, Xuankar, Airunp, JMPerez, Natrix, Taichi, Emijrp, Rembiapo pohyiete (bot), RobotQuistnix, Byj2000, Pvieito, Veltys, Alhen, Superzerocool, Chobot,
Yrbot, Amads, BOT-Superzerocool, Adrruiz, FlaBot, Xavimetal, Vitamine, YurikBot, Dark512, Museo8bits, Icvav, GermanX, Beto29,
Gaijin, KnightRider, YoaR, Albasmalko, Marb, Sargentgarcia89, Eskimbot, Baneld, Nowadays, Gtz, Swazmo, Morza, Cadeop, Cheveri, Tomatejc, Jarke, Filipo, BOTpolicia, Ricard Delgado Gonzalo, Throtmax, CEM-bot, Kojie, Antur, Jorge, Montgomery, FrancoGG,
Resped, Thijs!bot, Giovannidarkmaster, Bot que revierte, Daaxe, RoyFocker, Max Changmin, Rrecillas, Botones, JAnDbot, Maca eglarest, Jugones55, Miguelo on the road, Flayrisse, Mansoncc, Heeque, Satin, Muro de Aguas, Elrond 3097~eswiki, CommonsDelinker,
TXiKiBoT, Ricardo Moctezuma, Yoques, Humberto, Netito777, Chabbot, Idioma-bot, Plux, Galaxy4, Biasoli, AlnoktaBOT, Cinevoro,
VolkovBot, Snakeyes, Queninosta, Libertad y Saber, Adruki, Pejeyo, Matdrodes, Synthebot, BlackBeast, Shooke, Lucien leGrey, AlleborgoBot, 3coma14, Muro Bot, Jcprietoc, Racso, YonaBot, SieBot, Mushii, Ctrl Z, DaBot~eswiki, Bola2, KDash Extreme, Loveless, Emilyum,
Rambito08, Bigsus-bot, BOTarate, MaQy, Correogsk, Anthony Gutirrez, Furado, Greek, Ratchet, Gunner 1, Chico512, Tirithel, Mutari,
XalD, Prietoquilmes, Marcecoro, Nicholasraul, HUB, Antn Francho, Nicop, DragonBot, Brayan Jaimes, Kandroschen, McMalamute,
Estirabot, Veon, Pan con queso, Alejandrocaro35, Alecs.bot, LordT, Poco a poco, Alexbot, CestBOT, Goldorak, Angel verde, PhoneixS,
SAS0217, Dddurey, Asasia, UA31, Ucevista, HombreDHojalata, AVBOT, Miik Ezdanitof, David0811, Jorghex, RuslanBer, LucienBOT,
MastiBot, Igbf, NicolasAlejandro, Map-94, MarcoAurelio, SpBot, Diegusjaimes, Sapientisimo, MelancholieBot, Linkcisco, Javu61, Divadal, Kevinpulido8001, Madalberta, Luckas-bot, Amirobot, MystBot, Elvitor, Chakal256, Nallimbot, Supersamuel~eswiki, Ptbotgourou,
Jotterbot, Rodolfo4, Elsonido, Mgpa, Alex Muoz1, Mara Tobas, Vivaelcelta, Deimonk, ArthurBot, Jordiko13, SuperBraulio13, Ortisa,
Manuelt15, Xqbot, Jkbw, Carlos Molina Fisico, Dreitmen, FrescoBot, Josemariasaldana, Torrente, Javier Castaneda, Botarel, BenzolBot,
Zulucho, MAfotBOT, Blacki4, Halfdrag, RedBot, Kizar, Leugim1972, Judero01, PatruBOT, Redmind007, Canyq, Fran89, Ripchip Bot,
Tarawa1943, HermanHn, Ferna 22, Foundling, HIPATIA2006, Axvolution, EmausBot, Savh, Tuber.gaespe, HRoestBot, Sergio Andres Segovia, Dondervogel 2, Grillitus, Rubpe19, ChuispastonBot, MadriCR, WikitanvirBot, Diamondland, Ruos, Faust87~eswiki, MerlIwBot,
KLBot2, LuisGab, MetroBot, Invadibot, Ninrouter, 5truenos, Gusama Romero, Elvisor, Creosota, Uulo95, Helmy oved, Zerabat, Rauletemunoz, MaKiNeoH, IOSEF348, DanielDLRG, Alemozuelo, Ivanretro, Addbot, De3iti, Annimo10000, Eltruque, Luisedwin2105, Jarould, BenjaBot, 4lextintor, Sapristi1000, Carlitoscarlos, Luisangellopezmascaraque, Pancho507, Auxal3000, OoMELDONoo, Cabe-raul,
Pedro10001picapedrero, Joanroy, Rssl y Annimos: 492

13.2

Imgenes

Archivo:Certified_Hi-Speed_USB.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/c8/Certified_Hi-Speed_USB.svg


Licencia: Public domain Colaboradores: http://brandsoftheworld.com/search/?query_id=3996676&page=1&mtype=&brand_id=22618
Artista original: Certied Hi-Speed USB
Archivo:Certified_USB.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/e/eb/Certified_USB.svg Licencia: Public domain
Colaboradores: http://brandsoftheworld.com/search/?query_id=3996676&page=1&mtype=&brand_id=22617 Artista original: ?
Archivo:Commons-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licencia: Public domain Colaboradores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used
to be slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
Archivo:Types-usb_new.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/cb/Types-usb_new.svg Licencia: CC-BY-SA3.0 Colaboradores: Esta es una imagen retocada, lo que signica que ha sido alterada digitalmente de su versin original. Modicaciones: Added Micro USB Images. La original se puede ver aqu: Types-usb.svg. Las modicaciones las hizo Darx. Artista original: Darx~commonswiki
Archivo:USB2.0_PCI_Card_Asus-2.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/7/70/USB2.0_PCI_Card_Asus-2.
jpg Licencia: CC BY-SA 2.0 Colaboradores: ? Artista original: ?
Archivo:USB3.0_connectors.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/8/86/USB3.0_connectors.svg Licencia: CC
BY-SA 3.0 Colaboradores: Trabajo propio Artista original: Milos.bmx
Archivo:USB_Male_Plug_Type_A.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/2/27/USB_Male_Plug_Type_A.jpg
Licencia: CC BY-SA 2.5 Colaboradores: Trabajo propio Artista original: Andr Karwath aka Aka
Archivo:USB_Twisted_Pair.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/c2/USB_Twisted_Pair.svg Licencia: Public domain Colaboradores: self-made, Inkscape, rebuild in Notepad Artista original: User:WolfWings and User:Inductiveload
Archivo:USB_connectors.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/e/e1/USB_connectors.jpg Licencia: CC BYSA 3.0 Colaboradores: Trabajo propio Artista original: Cjp24
Archivo:USB_fans_1.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/1/14/USB_fans_1.jpg Licencia: CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original:
Archivo:USB_flash_drive.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/6/67/USB_flash_drive.jpg Licencia: Public
domain Colaboradores: Photograph taken by Dori Artista original: Photograph taken by Dori
Archivo:USB_types_2.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f4/USB_types_2.jpg Licencia: Public domain
Colaboradores: Edited from USB types.jpg Artista original: Techtonic
Archivo:USBsig.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/8/8e/USBsig.JPG Licencia: CC BY 3.0 Colaboradores:
Trabajo propio Artista original: Mgpa
Archivo:Wikibooks-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/fa/Wikibooks-logo.svg Licencia: CC BY-SA
3.0 Colaboradores: Trabajo propio Artista original: User:Bastique, User:Ramac et al.

13 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

13.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Digital Visual Interface


Digital Visual Interface, conocida por las siglas tambin
en ingls DVI, que signican Interfaz Visual Digital,
es una interfaz de video diseada para obtener la mxima calidad de visualizacin posible en pantallas digitales, tales como los monitores LCD de pantalla plana y los
proyectores digitales. Fue desarrollada por el consorcio
industrial Digital Display Working Group. Por extensin
del lenguaje, al conector de dicha interfaz se le llama conector tipo DVI.

sincroniza la transmisin). La sincronizacin de la seal


es casi igual que la de una seal analgica de vdeo. La
imagen se transmite lnea por lnea con intervalos de borrado entre cada lnea y entre cada fotograma. No se usa
compresin ni transmisin por paquetes y no admite que
slo se transmitan las zonas cambiadas de la imagen. Esto signica que la pantalla entera se transmite constantemente.
Con un solo enlace DVI (o Single Link), la mxima resolucin posible a 60 Hz es de 2,6 megapxeles. Por esto,
el conector DVI admite un segundo enlace (Dual Link),
con otro conjunto de pares trenzados para el rojo, el verde y el azul. Cuando se requiere un ancho de banda mayor
que el que permite un solo enlace, el segundo se activa,
y los dos pueden emitir pxeles alternos. El estndar DVI
especica un lmite mximo de 165 MHz para los enlaces
nicos, de forma que los modos de pantalla que requieran
una frecuencia inferior deben usar el modo de enlace nico, y los que requieran ms deben establecer el modo de
enlace doble. Cuando se usan los dos enlaces, cada uno
puede sobrepasar los 165 MHz. El segundo enlace tambin se puede usar cuando se necesiten ms de 24 bits por
pxel, en cuyo caso transmite los bits menos signicativos.

Perspectiva general

Los estndares anteriores, como el VGA, son analgicos


y estn diseados para dispositivos CRT (tubo de rayos
catdicos o tubo catdico). La fuente vara su tensin de
salida con cada lnea que emite para representar el brillo
deseado. En una pantalla CRT, esto se usa para asignar
al rayo la intensidad adecuada mientras ste se va desplazando por la pantalla. Este rayo no est presente en
pantallas digitales; en su lugar hay una matriz de pxeles,
y se debe asignar un valor de brillo a cada uno de ellos. El
decodicador hace esta tarea tomando muestras del voltaje de entrada a intervalos regulares. Cuando la fuente es
tambin digital (como un ordenador), esto puede provocar distorsin si las muestras no se toman en el centro de
cada pxel, y, en general, el grado de ruido entre pxeles
adyacentes es elevado.

Al igual que los conectores analgicos VGA modernos, el


conector DVI tiene pines para el canal de datos de pantalla, versin 2 (DDC 2) que permite al adaptador grco leer los datos de identicacin de pantalla extendidos
(EDID, Extended Display Identication Data).

DVI adopta un enfoque distinto. El brillo de los pxeles


se transmite en forma de lista de nmeros binarios. Cuando la pantalla est establecida a su resolucin nativa, slo
tiene que leer cada nmero y aplicar ese brillo al pxel
apropiado. De esta forma, cada pxel del buer de salida
de la fuente se corresponde directamente con un pxel en
la pantalla, mientras que con una seal analgica el aspecto de cada pxel puede verse afectado por sus pxeles
adyacentes, as como por el ruido elctrico y otras formas
de distorsin analgica.

3 Monitores DVI importantes


El monitor T221 de IBM debut a principios de
2003, y cuenta con cuatro conectores DVI de enlace nico y una resolucin de 38202400, o casi 9,2
millones de pxeles. Conectado a una tarjeta grca de enlace nico, su frecuencia de actualizacin
es de slo 13 Hz. Puede alcanzar 41 Hz conectando
los cuatro conectores a tarjetas grcas. Hay modelos posteriores que se pueden conectar a una tarjeta
grca DVI de doble enlace, obteniendo as una frecuencia de 24 Hz, aunque esto se consigue usando
una caja separadora externa que convierte la seal
de doble enlace en dos seales de enlace nico para
el monitor.

Caractersticas tcnicas

El formato de datos de DVI est basado en el formato de


serie PanelLink, desarrollado por el fabricante de semiconductores Silicon Image Inc. Emplea TMDS (Transition Minimized Dierential Signaling, Seal Diferencial
con Transicin Minimizada). Un enlace DVI consiste en
un cable de cuatro pares trenzados: uno para cada color
primario (rojo, verde, y azul) y otro para el reloj (que

La pantalla Cinema HD Display de 30 pulgadas de


Apple Computer debut a mediados de 2004 y fue
una de las primeras pantallas del mercado en usar
1

CONECTOR

una conexin DVI de doble enlace. Su resolucin


nativa es 25601600, unos 4,1 millones de pxeles.

Conector

DVI-I (Single Link)


Una conexin DVI puede ser recableada a VGA con un adaptador (las seales analgicas deben existir en el zcalo DVI)

DVI-I (Dual Link)

DVI-D (Single Link)

DVI-D (Dual Link)

DVI-A

Conector DVI (vista del enchufe macho).

Una conexin DVI puede ser recableada a HDMI con un adaptador (las seales de audio deben existir en el zcalo DVI)

Tambin puede tener pins para transmitir las seales


analgicas del estndar VGA. Esta caracterstica se incluy para dar un carcter universal a DVI: los conectores
que la implementan admiten monitores de ambos tipos
(analgico o digital).
Los conectores DVI se clasican en tres tipos en funcin
de qu seales admiten:
DVI-D (slo digital)
DVI-A (slo analgica)
DVI-I (digital y analgica)

DVI M1-DA (Dual Link+USB)


Conector M1-DA (vista del conector macho)

A veces se denomina DVI-DL a los conectores que admiten dos enlaces.

DVI es el nico estndar de uso extendido que proporciona opciones de transmisin digital y analgica en el
El conector DVI normalmente posee pins para transmi- mismo conector. Los estndares que compiten con l son
tir las seales digitales nativas de DVI. En los sistemas exclusivamente digitales: entre ellos estn el sistema de
de doble enlace, se proporcionan pins adicionales para la seal diferencial de bajo voltaje (LVDS, Low-Voltage
Dierential Signalling) conocido por sus marcas FPD
segunda seal.

5.2

Analgico

(Flat-Panel Display, monitor de pantalla plana) Link y 5.2 Analgico


FLATLINK, as como sus sucesores, el LDI (LVDS Dis Ancho de banda RGB: 400 MHz a 3 dB
play Interface, interfaz de pantalla LVDS) y OpenLDI.
Las seales USB no se incorporaron al conector DVI. Este descuido se ha resuelto en el conector VESA M1-DA
usado por InFocus en sus proyectores, y en el conector
Apple Display Connector de Apple Computer, que ya no
se produce. El conector VESA M1 es bsicamente el conector VESA Plug & Display (P&D), cuyo nombre original es EVC (Enhanced Video Connector, conector de
vdeo mejorado). El conector de Apple es elctricamente compatible con el VESA P&D/M1 y la estructura de
los pins es la misma, pero la forma fsica del conector es
distinta.
Los reproductores de DVD modernos, televisores (equipos HDTV entre ellos) y proyectores de vdeo tienen conectores HDMI. Las computadoras con conectores DVI
pueden usar equipos HDTV como pantallas pero se necesita un cable DVI a HDMI.

6 Vase tambin
DIIVA
DisplayPort
HDBaseT
HDMI
UDI
Video
VGA

7 Enlaces externos
5

Especicaciones

5.1

Digital

Frecuencia mnima de reloj: 21 Hz


Frecuencia mxima de reloj para enlace nico: 165
MHz
Frecuencia mxima de reloj para doble enlace: limitada slo por el cable
Pxeles por ciclo de reloj: (enlace nico) o 2 (doble
enlace)
Bits por pxel: 24
Ejemplos de modos de pantalla (enlace nico):
HDTV (1920 1080) a 60 Hz con 5% de borrado LCD (131 MHz)
1920 x 1200 a 60 Hz (154 MHz)
UXGA (1600 1200) a 60 Hz con borrado
GTF (161 MHz)
SXGA (1280 1024) a 85 Hz con borrado
GTF (159 MHz)
Ejemplos de modos de pantalla (doble enlace):
QXGA (2048 1536) a 75 Hz con borrado
GTF (2170 MHz)
HDTV (1920 1080) a 85 Hz con borrado
GTF (2126 MHz)
2560 1600 (en pantallas LCD de 30 pulgadas)
GTF: (Generalized Timing Formula, Frmula de Sincronizacin Generalizada) es un estndar VESA.

Sitio web del Digital Display Working Group (en ingls)

8 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

8.1

Texto

Digital Visual Interface Fuente: https://es.wikipedia.org/wiki/Digital_Visual_Interface?oldid=92295777 Colaboradores: Oblongo, Alberto Salguero, Zwobot, Tano4595, Felipealvarez, Niqueco, Digigalos, Boticario, Mescalier, JMPerez, Taichi, RobotQuistnix, Alhen, Yrbot, Amads, BOT-Superzerocool, BOTijo, YurikBot, GermanX, TC~eswiki, Gaijin, KnightRider, Santiperez, Tomatejc, BOTpolicia,
Qwertyytrewqqwerty, CEM-bot, Roberpl, Pompilos, Mr. Moonlight, Thijs!bot, Edu-im, Mpeinadopa, JAnDbot, Mansoncc, Biasoli, Technopat, Electro07, Loveless, Fstefoni, Marcelo, Elimedina, Dartz90rafaedu, GabEstCor, Marcecoro, HUB, Alejandrocaro35, Txarlitos,
UA31, AVBOT, Diegusjaimes, Luckas-bot, Ptbotgourou, FariBOT, Mcapdevila, Busilis, Obersachsebot, Xqbot, Jkbw, Zulucho, PatruBOT, GrouchoBot, EmausBot, Savh, Arielmansur, ChuispastonBot, Ruos, Carrousel, KLBot2, Thehelpfulbot, InselarALGABA, Elvisor,
Addbot, Perrito12, Jarould y Annimos: 81

8.2

Imgenes

Archivo:DVI_Connector.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/d/d5/DVI_Connector.jpg Licencia: CC BY-SA


3.0 Colaboradores: Trabajo propio Artista original: Greg Ebdon (Vanderdecken)
Archivo:DVI_Connector_Pinout.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/5/5b/DVI_Connector_Pinout.svg Licencia: Public domain Colaboradores: No machine-readable source provided. Own work assumed (based on copyright claims). Artista
original: No machine-readable author provided. Mobius assumed (based on copyright claims).
Archivo:DVI_Connector_Types.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/fb/DVI_Connector_Types.svg Licencia: Public domain Colaboradores: No machine-readable source provided. Own work assumed (based on copyright claims). Artista original:
No machine-readable author provided. Mobius assumed (based on copyright claims).
Archivo:_Adapter_dvi_hdmi_S7302224_wp.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/8/85/Adapter_dvi_hdmi_
S7302224_wp.jpg Licencia: FAL Colaboradores: Trabajo propio Artista original: Smial
Archivo:_DVI-VGA-Adapter.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4f/DVI-VGA-Adapter.jpg Licencia: Public domain Colaboradores: Trabajo propio Artista original: Evan-Amos
Archivo:_M1-DA.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/8/81/M1-DA.svg Licencia: Public domain Colaboradores:
DVI_Connector_M1-DA.png Artista original: DVI_Connector_M1-DA.png: User:adaviel:

8.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Escaneo progresivo
La exploracin progresiva o escaneo progresivo es el
mtodo de exploracin secuencial de las lneas de una
imagen de televisin, un barrido sucesivo de una lnea
despus de otra que efectan los aparatos reproductores
de televisin para componer la imagen. Este sistema fue
originalmente conocido como escaneo secuencial cuando fue utilizado por primera vez por Baird en transmisiones experimentales usando 30 lneas en el ao 1926. El
mtodo contrario es denominado entrelazado.

Otra forma de compensar los defectos del PAL se apoya en convertir la exploracin entrelazada en progresiva
a travs de una visualizacin a 50 Hz. Las lneas de los
campos se interpolan con el n de obtener las 575 lneas
del cuadro PAL contenidas en el cuadro. Para evitar el
parpadeo, notable a 25 Hz, se utiliza una memoria con
el n de presentar la informacin a una frecuencia de refresco de 50 Hz o 100 Hz. Hay que destacar que, con
exploracin progresiva, una velocidad de refresco de 50
Hz es ms que suciente para evitar el parpadeo. De todas formas, la reconversin de los campos para obtener
un cuadro siempre es origen de errores temporales.

Descripcin

El escaneo progresivo consiste en la exploracin secuencial de cada lnea de la imagen. En contra del escaneo
entrelazado no se divide el cuadro de video en dos campos secuenciales haciendo un doble barrido de la imagen
(siendo ledas primero las lneas impares seguidas de las
pares), sino que muestra de una sola vez el cuadro completo. Para ello, se captura la imagen de transmisin y se
muestran de una forma similar a la lectura de un libro, es
decir, lnea a lnea y de arriba abajo.

Ejemplo de escaneo progresivo sobre una imagen.

Cuando se dene un sistema de TV son un par de carac1.1 Caractersticas


tersticas las cuales convienen que sean lo ms adecuadas
posibles con el n de que el espectador visualice las imLas caractersticas que ofrece la exploracin progresiva
genes correctamente. Dichas caractersticas o limitaciose pueden resumir de la siguiente forma:
nes a nivel temporal son una resolucin temporal entre
40-60 Hz para evitar parpadeos y una continuidad en el
Calidad cinematogrca sin parpadeos caracterstimovimiento de entre 25 Hz. Los receptores con sistema
cos de la intercalacin de los campos.
progresivo compensan los dos grandes defectos de la TV
PAL entrelazada: el parpadeo y la baja resolucin.
Compresin ms eciente que la exploracin entrelazada.
En sus inicios la exploracin entrelazada se implant en la
televisin analgica para reducir el ancho de banda. El en Tasa de bits menor para una buena calidad de imatrelazado es una forma prctica de comprimir la imagen
gen.
ya que, en vez de transmitir cuadros a 25 Hz, se transmi Mximas facilidades de conversin bidireccional de
ten campos o semicuadros a 50 Hz. De ese modo se redula resolucin (hacia arriba o hacia abajo).
ce el ancho de banda, se evitan parpadeos pero tambin
se reduce la denicin vertical, con lo que la visualizacin
Mximas facilidades para reducir el ruido (moscas
de la imagen empeora.
y escalados).
Con la llegada de la exploracin progresiva, normalmente
Totalmente compatible con la nueva generacin de
utilizada en sistema de TV digitales, se compensa el parvisualizadores (plasma, LCD, D-ILA, DMD, etc.).
padeo, utilizando una frecuencia de refresco de 100 Hz.
En el televisor, una memoria digital almacena el campo
Mejor resolucin vertical percibida (mejor factor de
y, al cabo de 1/50 de segundo, lo transere a una velociKell) y parpadeo con velocidades de 24, 25 o 30 cuadad de 1/100 segundo, y as sucesivamente. Por tanto, en
dros por segundo (se solventa con memorias de cuala pantalla se visualizan los campos a una velocidad de
dro en los visualizadores).
refresco de 100 Hz. Algunos procesadores de memoria
Mtodo utilizado en la mayora de los formatos de
toman en consideracin las lneas de ambos campos, con
vdeo.
el n de incrementar la resolucin vertical de la imagen.
1

Aplicacin

Este sistema es utilizado en la mayora de los monitores de


PC, en todos los LCD y en la mayora de HDTV. Tambin
son usados en las pantallas de plasma. Estas pantallas no
usan una trama de barrido para crear la imagen con lo
que no pueden beneciarse del sistema entrelazado y s
del progresivo.

Ventajas e inconvenientes del escaneo progresivo

La entrada a la era digital est dando ms protagonismo a la exploracin progresiva que a la entrelazada. A
continuacin detallaremos una lista con las principales
ventajas e inconvenientes de este sistema.

3.1

Ventajas

Mayor resolucin vertical de video subjetiva, con la


misma cantidad de lneas.
La resolucin vertical de la percepcin de una
imagen es normalmente equivalente a la multiplicacin de las lneas activas por un factor
de 0.6 (factor de Kell) en el caso entrelazado.
Esto signica que, al ver el material escaneado
de forma progresiva, la pantalla mostrar una
imagen ms detallada en comparacin con otra
que haya sido escaneada de forma entrelazada,
aunque ambos tienen exactamente la misma resolucin de pantalla.
Elimina el efecto peine (combing eect) as como la prdida de calidad y/o claridad introducidos
por el sistema entrelazado para evitar ese efecto.
Ofrece unos resultados mucho mejores a la hora de
convertir a una mayor resolucin, como podra ser
de 480p a 1080p. Esto es debido a que el proceso
de desentrelazado se omite, lo que se traduce en
mayor rapidez de procesamiento desde la fuente de
video a mostrar.

3.2

Inconvenientes

Para una misma resolucin de pantalla, esta exploracin necesita un mayor ancho de banda debido a que
requiere el doble de Frecuencia Horizontal o de lnea
(FH) con todos los inconvenientes que ello conlleva.
Una imagen entrelazada de 576 lneas activas (576i)
usa una FH de 15625 Hz, la misma imagen en progresivo (576p) requiere una FH de 31250 Hertz.

VASE TAMBIN

Fluidez en el movimiento, normalmente por el problema de ancho de banda mencionado en el punto


anterior los videos progresivos tienen un mximo
de 30 cuadros por segundo para NTSC y 25 para
PAL (720x480 30p - 720x576 25p - 1280x720 30p
- etc.); esta es una de las ventajas ms notorias que
tiene el video entrelazado ya que es capaz de reproducir un mximo de 60 imgenes por segundo (60
campos) para NTSC y 50 para PAL (720x480 60i
- 720x576 50i - 1280x720 60i - etc.) utilizando el
mismo ancho de banda que utilizara el sistema progresivo para reproducir la mitad de cuadros, de todas formas, si el ancho de banda no es problema,
el formato progresivo es superior, ya que se pueden
producir videos a 50 y 60 cuadros progresivos individuales, pero con la desventaja de que se consume
el doble de ancho de banda (720x480 60p - 720x576
50p - 1280x720 60p - etc.); estos ltimos no son
muy utilizados, pero tienen lo mejor de ambos sistemas, uidez en el movimiento y mayor resolucin
vertical.

4 Vase tambin
480p, 576p, 720p, 1080p: categoras ms frecuentes
de modos de video progresivos.
Exploracin entrelazada: mtodo alternativo al escaneo progresivo de adquisicin de imgenes.

Origen del texto y las imgenes, colaboradores y licencias

5.1

Texto

Escaneo progresivo Fuente: https://es.wikipedia.org/wiki/Escaneo_progresivo?oldid=88495701 Colaboradores: Joseaperez, 4lex, Oblongo, Hispa, Gaeddal, JRGL, Pacomeco, VeRo, Siabef, Rojillo, Penquista, JAnDbot, TXiKiBoT, Gustronico, VolkovBot, Drever, Technopat,
Muro Bot, Electro07, PaintBot, BOTarate, DAK28, Miguel, Estirabot, Jose Leal AV, Eveneg, Dsienra, Pabloito, Arjuno3, Luckas-bot, Nallimbot, Boto a Boto, C4rol, Dexbot, Legobot, Balles2601, Jarould y Annimos: 18

5.2

Imgenes

Archivo:Imagen_formato_progresivo_2.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/d/d6/Imagen_formato_


progresivo_2.JPG Licencia: Public domain Colaboradores: Trabajo propio Artista original: Jose leal AV

5.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Exploracin entrelazada
La exploracin entrelazada (interlaced scanning) es un
sistema de captacin y representacin de imgenes utilizado en televisin para evitar el parpadeo o icker que
se produca en la representacin de las imgenes de televisin sobre pantallas de tubo.

el caso de los sistemas de 525 lneas los campos son de


262,5 lneas y se representan a razn de 60 campos por
segundo, 30 frames por segundo. En ambos casos por encima de la frecuencia umbral de representacin.
El sistema de entrelazado dio muy buenos resultados en
televisin ya que es el "mejor compromiso entre el ancho
de banda del canal, la reduccin del parpadeo o iker y
la tecnologa de los receptores de televisin".

La exploracin entrelazada 2/1, caracterstica de los sistemas de televisin PAL, NTSC y SECAM as como de
algunos otros desarrollados posteriormente, consiste en
analizar cada cuadro (frame) de la imagen en dos semicuadros iguales denominados campos (eld), de forma
que las lneas resultantes estn imbricadas entre si alternadamente por superposicin. Uno de los campos contiene las lneas pares; se lo denomina campo par, mientras
que el otro contiene la impares y se lo denomina campo impar al comienzo de cada uno de ellos se sita el
sincronismo vertical. Hay un desfase de media lnea entre un campo y otro para que as el campo par explore la
franja de imagen que dej libre el campo impar. La exploracin entrelazada de un cuadro de dos campos exige
que el nmero de lneas del cuadro sea impar para que la
lnea de transicin de un campo al otro sea divisible en
dos mitades.[1] Fue patentado por el ingeniero alemn de
Telefunken Fritz Schrter en 1930.

Los estudios que realiz la Asociacin de Radiodifusin


de Japn, NHK, en la dcada de los 80 del siglo XX para
el desarrollo de la televisin de alta denicin dieron como resultado que la hiptesis de la frecuencia umbral de
45 Hz era falsa ya que un alto nmero de observadores
perciben parpadeo por encima de los 45 Hz.
Ferry Porter desarroll la ley que lleva su nombre, la cual
dice que la frecuencia umbral (fu) est en relacin con el
logaritmo del brillo (B) y las condiciones de visionado (C)
de esta forma:
f u = 12, 57(log10B) + C
Hay que destacar que la determinacin de la caracterstica logartmica de la visin humana coincide con la reiteracin del mundo cientco de que es logartmico todo el
mundo sensorial humano.

Las condiciones de visionado agrupan una serie de variables como el tipo de visin (central o perifrica) , el
tiempo de excitacin del TRC, el tiempo relativo de iluCon anterioridad a los estudios de la visin humana efec- minacin de cada cuadro y la variabilidad en la visin de
tuados por la NHK (Asociacin de Radiodifusin de Ja- cada observador.
pn) en Japn realizados en los aos 80 del siglo XX, se
mantena la hiptesis de que si bien por encima de una
frecuencia de representacin de 20 Hz, denominada fre- 1.1 Desarrollo de Ferry Porter
cuencia crtica, se garantizaba la perfecta sensacin de
movimiento haca falta pasar de una frecuencia de 45 Hz, Las condiciones de visionado que intervienen en la frdenominada frecuencia umbral para que desapareciera mula de la Ley de Porter son determinantes para jar una
frecuencia umbral correcta. Entre ellas el tipo de visin,
la sensacin de parpadeo.
que depende del formato y tamao de la pantalla, es muy
En la representacin cinematogrca, donde se trabaja importante.
con 24 imgenes por segundo (una frecuencia de 24 Hz),
se logra superar la frecuencia umbral proyectando dos ve- La visin humana tiene dos sectores diferenciados, uno
ces el mismo fotograma. En televisin se adopt el siste- el central de unos 10 y el perifrico, de unos 180. En
ma de entrelazado con la descomposicin de cada cuadro los 10 de la visin central el foco es muy perfecto, hay
(frame) en dos campos (eld) doblando con ello la fre- una alta nitidez y una elevada resolucin. Mientras que en
cuencia de 25 Hz a 50 (en el caso de Amrica de 30 Hz la visin perifrica todos estos parmetros son ms decientes.
a 60).
En los sistemas de Tv de 625 lneas el cuadro es descom- Si atendemos solo a la visin central es cierto que los 45
puesto en dos campos de 312,5 lneas cada uno de ellos Hz de frecuencia umbral son sucientes mientras que para
que se insertan como un peine, dando una representacin la visin perifrica hacen falta frecuencia mayores.

Fundamento terico

de 50 campos por segundo, 25 frames por segundo. En Un observador medio, cuando se sita delante de una pan1

VENTAJAS E INCONVENIENTES DE LA EXPLORACIN ENTRELAZADA

talla lo hace a una distancia de seis veces la altura de la


misma. Este es el punto de mejor observacin de la imagen. Cuando la pantalla es apaisada (formatos de 16/9 o
de cine panormico) entonces hace participar a la visin
perifrica haciendo subir la frecuencia umbral.

de 1080i HDTV. No es utilizado en pantallas LCD, DLP


o pantallas de plasma. Estas pantallas no usan tramas de
barrido para crear una imagen por lo cual, no se pueden
beneciar de las ventajas del entrelazado.

Para conseguir un correcto entrelazado de los cuadros,


es necesario utilizar una seal que controle con precisin
la desviacin del haz en el tubo de rayos catdicos. Es
por esto por lo que se utilizan las seales diente de sierra, muy sencillas de implementar cuando se dise este
mtodo, para controlar el haz horizontal y vertical. Esta
desviacin del haz de luz del tubo de rayos catdicos es
de izquierda a derecha y de arriba hacia abajo. Para mantener la periodicidad de la seal de barrido que controla
el haz, se decidi que el nmero de lneas que debera te2 Descripcin
ner una imagen debera ser un nmero impar. As, cada
cuadro debera tener un nmero par de lneas enteras ms
La exploracin progresiva de una imagen se realiza de la media lnea adicional. Gracias a esto se consigui simplimisma manera que se lee un libro, se divide la imagen en car las seales de barrido, debido a que no tenan que
lneas y se leen de izquierda a derecha y de arriba abajo. dar saltos espaciales a la hora de cambiar de cuadro.
En cambio, cuando se realiza una exploracin entrelazada exploramos alternativamente las lneas pares e impares, dividiendo la imagen que se quiere transmitir en
4 Ventajas e inconvenientes de la
dos campos o cuadros.
En los estudios de Porter se detectaron casos en los que los
observadores que perciben parpadeos desarrollan cuadros
de mareos y nauseas. Tambin se observ que no hubo
nadie que percibiera parpadeo por encima de los 70 Hz.
Una cantidad relevante de observadores dejan de percibir
parpadeo en frecuencias entre los 50 y 60 Hz.[2]

exploracin entrelazada

Con la entrada de la era digital la exploracin entrelazada est perdiendo terreno frente a la progresiva. A
continuacin detallaremos las principales ventajas e inconvenientes de este sistema.
Ejemplo de barrido del campo impar sobre una imagen.

4.1 Ventajas

Ejemplo de barrido del campo par sobre la misma imagen.

La proximidad entre las lneas consecutivas y las limitaciones del sistema visual humano, hacen que el ojo del espectador integre los dos campos como una imagen completa (un cuadro), obteniendo la sensacin que estas se
van refrescando al doble de la frecuencia real. Con este
mtodo se consigue mantener un caudal de informacin
reducido, es decir, un menor ancho de banda a transmitir,
pero suciente para que en recepcin tengamos la representacin de las imgenes sin que aparezca el fenmeno
de parpadeo o icker.

Aplicacin y detalles tcnicos

La exploracin entrelazada es utilizada en la mayora de


deniciones estndar de TV y en el estndar de emisin

Uno de los factores ms importantes es el ancho de


banda (medido en MHz en caso de vdeo analgico
y tasa de bits en el caso de digital). Cuanto mayor
sea este ancho de banda, ms caro y complejo ser el sistema (ya sean sistemas de almacenamiento
como discos duros o grabadoras, cmaras, sistemas
de transmisin, etc.).El vdeo entrelazado reduce el
ancho de banda por un factor de dos, para una determinada lnea y tasa de refresco.
La otra ventaja es la uidez del movimiento, el contenido interlineal puede mostrar 50 diferentes imgenes por segundo para PAL (50 campos) y 60 para NTSC (60 campos) (720x480 60i - 720x576 50i
- 1280x720 60i - etc.) utilizando menor ancho de
banda, esto puede ser una gran diferencia sobre todo cuando miramos videos por ejemplo de deportes, lo que notaramos si lo desentrelazamos es que
el movimiento ya no es tan suave debido a que despus de las tcnicas de desentrelazado ms usadas
solo se mantiene la informacin de 25 cuadros para PAL y 30 para NTSC, sin embargo hay tcnicas
que mantienen esta informacin y se pueden crear
videos con 50 cuadros progresivos individuales para PAL y 60 para NTSC (720x480 60p - 720x576

3
50p - 1280x720 60p - etc.) aunque a costa de un
mayor ancho de banda.

4.2

Inconvenientes

Al descomponer un cuadro en dos campos, es decir en


dos imgenes tomadas en tiempos diferentes, se producen
algunas deciencias que perjudican a la representacin,
rompiendo el concepto de lo que se conoce como "imagen ntida". Cuando la escena a representar es muy viva,
con guras con mucho movimiento, se dan desenfoques
debido a las diferencias entre un campo y otro. Luego en
imgenes con bordes de luminancia variable en sentido
vertical o con ligranas verticales se produce el llamado
titileo interlneas al que dos lneas sucesivas pertenecen
a diferentes campos. Tambin se producen aberraciones
cuando hay fuertes cambios cromticos.[2]
Otros inconvenientes son:
Aparicin del efecto peine al ser mostrado en un sistema progresivo.
En las transiciones verticales se aprecia un ligero
parpadeo, este efecto se conoce como vibracin interlnea (Interline Twister), que consiste en que en
los extremos horizontales se aprecie un efecto de
parpadeo de frecuencia mitad de cuadro.
Otro efecto tambin creado por la exploracin entrelazada es el desplazamiento de lnea, (Line Crawl) y
consiste en la visualizacin de unas lneas gruesas
que se desplazan en sentido vertical en el momento
que hay desplazamiento vertical en la escena.
El principal inconveniente es la prdida de resolucin vertical respecto de la que se obtiene con el
mismo nmero de lneas si se utiliza el escaneo progresivo. Esta situacin fue comprobada experimentalmente por Kell.

Situacin actual

Actualmente, el problema del parpadeo se ha solucionado


de una manera diferente, se utilizan memorias que almacenan la imagen completa y posteriormente la repiten las
veces que sean necesarias, consiguiendo as un mayor refresco de la imagen.
Dos tcnicas que se hacen servir dentro del mbito domstico son:
La primera consiste en repetir dos veces cada cuadro pero continuando con la exploracin entrelazada, por tanto, en un sistema como el PAL donde se
reproducen 50 cuadros por segundo, llegaramos a
obtener 100 cuadros por segundo.

La segunda tcnica consiste en almacenar la imagen


entera para representarla posteriormente sin efectuar exploracin entrelazada, es decir, almacenamos
los dos cuadros entrelazados y los juntamos para
representarlos dos veces, por tanto, obtenemos 50
imgenes por segundo. No es, empero, una buena
solucin porque la imagen est explorada de manera entrelazada y no evitamos esta limitacin.

6 Vase tambin
Escaneo progresivo: mtodo alternativo a la exploracin entrelazada para adquisicin de imgenes.

7 Referencias
[1] Televisin Volumen I. Fundamentos, dispositivos, televisin monocroma. Autor:Eugenio G-Caldern Lpez. Editor: ETS de Ingenieros de Telecomunicaciones de Madrid
[2] Televisin digital. Autor: Toms Bethencourt Machado.
Coleccin Beta. Temas audiovisuales. I.S.B.N. 84 6073527-3

8 Enlaces externos
Enciclopedia del DVD. El entrelazado

9 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

9.1

Texto

Exploracin entrelazada Fuente: https://es.wikipedia.org/wiki/Exploraci%C3%B3n_entrelazada?oldid=92393867 Colaboradores:


Oblongo, Lourdes Cardenal, Dodo, Hispa, Orgullobot~eswiki, Chobot, Yrbot, BOTijo, YurikBot, Mortadelo2005, Gaijin, JRGL,
Valkyra3~eswiki, PabloBD, Txo, Eskimbot, Tom Bombadil, AiDa, Tomatejc, Paintman, CEM-bot, Santonegro, Larmotos, Edu-im,
Arcibel, Super 8, JAnDbot, Wybot, Humberto, VolkovBot, Drever, Muro Bot, SieBot, Drinibot, DonRichard, Jose Leal AV, Dsienra,
LucienBOT, Geronime, Pabloito, Nallimbot, C4rol, TobeBot, RedBot, GrouchoBot, EmausBot, MerlIwBot, Legobot, Langtoolbot y
Annimos: 17

9.2

Imgenes

Archivo:Campo_Impar_entrelazado.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/0/08/Campo_Impar_entrelazado.


JPG Licencia: Public domain Colaboradores: Trabajo propio Artista original: Jose leal AV
Archivo:Campo_Par_entrelazado.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/7/7a/Campo_Par_entrelazado.JPG
Licencia: Public domain Colaboradores: Trabajo propio Artista original: Jose leal AV

9.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Si en un bosque nadie lee un tag... Se ha escrito?


Te gusta el diseo web? Echa un vistazo a la documentacin de
LenguajeCSS.com!

34

68

91

68

11min

Leer otros artculos

Formatos de video: Todo lo que deberas


saber
Todo lo que deberas saber sobre los formatos de video:
contenedores, cdecs, AVI, DIVX, XVID, MKV, OGG, WEBM, VP9,
HEVC, AAC, H.264... Aprende a diferenciarlos y convertir entre
formatos.

Publicidad

Actualmente existe una amplia variedad de formatos de video


disponibles para almacenar contenido multimedia en un archivo y
reproducirlo en nuestros dispositivos. Dependiendo de este formato (y

de otros mltiples factores) el video tendr, bsicamente, una calidad de


video diferente y un tamao de archivo ms o menos pequeo.
Sin embargo, si no ests muy al da en estos temas, es posible que te
pierdas desde que entremos en conceptos como formatos, codecs,
contenedores o entre la terminologa relacionada como AVI, MP3, MP4,
DIVX, XVID, OGG, MKV, OGG, FLV, MPG, VP9, HEVC, AAC, H.264, AVC y un
largo etctera.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

1/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

En esta breve pero detallada gua nuestro objetivo ser explicar la


diferencia entre todos estos conceptos, muchas veces confusos,
separando claramente trminos como formato de video contenedor y
cdec de video, adems de aprender por el camino una sencilla y

prctica forma de convertir videos a diferentes formatos.

Esquema de un formato contenedor


Para empezar, debemos tener clara la diferencia entre estos dos
conceptos que suelen confundirse muy a menudo: el formato
contenedor y el cdec de video. El primero de ellos es realmente el
formato del archivo, el que lo envuelve todo (audio, video, etc...), mientras
que el segundo es el formato relacionado directamente con la parte de
video:

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

2/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Formato contenedor
Pero veamos una descripcin de cada concepto para tenerlo an ms
claro:

Formato contenedor: Un archivo de video suele tener un formato


contenedor determinado, como podra ser AVI, MP4 o MKV, por
ejemplo. Como su propio nombre indica, un archivo con este formato
contiene en su interior varios elementos (generalmente y como
mnimo, video y audio). No obstante, es posible que slo incluya uno
de ellos, o por ejemplo mltiples canales de audio (para disponer de
varios idiomas de un mismo archivo). Algunos formatos
contenedores tambin permiten incluir otros elementos como
imgenes o subttulos integrados, sin necesidad de archivos

externos.
Cdec de video: Suele confundirse con el formato de video, pero
realmente no es lo mismo, ya que est relacionado con el video
contenido y no con el formato contenedor. No es un elemento
obligatorio, ya que si no se especifica un cdec, el video es contenido
en RAW (sin comprimir), llegando a ocupar muchsimo espacio (por
http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

3/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

ejemplo, 200MB unos 10seg). Por esa razn, generalmente se elige


un cdec para comprimir el video. Dependiendo de la eleccin del
cdec, se conseguir mejor o peor calidad, y a su vez, mayor o menor
tamao.
Especificacin de video: Cada cdec de video suele estar basado en
una especificacin concreta de video (H.262, H.263, H.264...), que no
es ms que un conjunto de normas que definen como debe
comportarse. Esto nos puede servir de orientacin para saber si un
cdec es ms o menos reciente que otro.
Cdec de audio: De la misma forma que ocurre con el video, tenemos
posibles canales de audio incluidos en el archivo. Tambin suelen
estar comprimidos con un determinado cdec para ahorrar espacio:
MP3, OGG Vorbis, WMA...

Una vez teniendo claro esto, vamos a dar un repaso a los formatos
contenedores ms populares y los cdecs de video que suelen utilizar

(esto no implica que no puedan ser utilizados tambin en otros formatos


contenedores):

Formato AVI (Microsoft, 1992)

Formato AVI (DivX, XviD)

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

4/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Quizs, con toda probabilidad, uno de los formatos contenedores ms


conocidos sea el AVI (Audio video interleave). Fue desarrollado por
Microsoft en 1992 y es uno de los formatos que ms se han
popularizado, quizs por su amplio uso en plataformas Windows. Al ser
uno de los primeros formatos contenedores es de los ms bsicos y
solamente permite canales de audio y video (aunque se pueden incluir

mltiples de ellos, si se desea).


Si nos centramos en los cdecs de video, el formato AVI acepta casi
prcticamente cualquier cdec compatible con VFW W , pero los ms
utilizados suelen ser los conocidos DivX o XviD (el cul es un bifronte W

del anterior).

Cdec DivX

populariz
en su versin 3.11 y no era ms que una versin

DivXse

modificada de un codec de Microsoft . Posteriormente, y debido al


xito que tuvo, reescribieron el cdigo para no vulnerar patentes de
Microsoft. Sin embargo, el proyecto DivX se volvi propietario, generando
una tremenda diferencia de ideas y provocando el nacimiento de un
codec hermano libre: XviD.
Relacionado con DivX estuvo la plataforma Stage6 W que era una
especie de Youtube que permita subir videos de gran calidad para la
poca. Sin embargo, no tuvo la financiacin necesaria y fracas
econmicamente.
URL | DivX

Cdec XviD

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

5/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

XviD se populariz a raz del detrimento que experiment DivX,


superndolo debido a su buena calidad, eficiencia y su carcter de cdigo
abierto. Adems, tambin empez a soportarse en una gran cantidad de
reproductores de DVD caseros, donde quizs, uno de los primeros que
destac era el KISS DP-450 .
Aunque actualmente existen cdecs tcnicamente mejores, XviD sigue
siendo actualizado y se sigue utilizando debido a su popularidad,
velocidad de compresin y buen rendimiento.
URL | XviD
Publicidad

Formato MKV (Matroska, 2002)

Formato MKV (Matroska)


Matroska, ms conocido por MKV, la extensin utilizada en sus archivos,
es un formato contenedor de cdigo abierto que basa su nombre en las
clsicas muecas rusas Matrioskas W que se meten una dentro de
otras. Adems de la extensin MKV (usada para video, audio y posibles

subttulos), existen otras extensiones utilizadas como MKA (slo audio),


MKS (slo subttulos) o MK3D (vdeo en 3 dimensiones).

Cdec x264
http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

6/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Este formato suele utilizar como cdec de video alguna implementacin


de H.264 (especificacin de cdec), como por ejemplo x264. Por otro
lado, para el apartado de audio suele utilizar el cdec de audio Vorbis.
URL | x264

Formato WebM (Google, 2010)

Formato WebM (VP8/VP9)

Uno de los formatos contenedores ms recientes es WebM (WebMovie),


un proyecto ligeramente basado en Matroska. Inicialmente fue
desarrollado por la empresa On2 Technologies, pero en 2010 fue
comprada por Google, el cul liber como cdigo fuente el proyecto,
orientndolo al objetivo de utilizarlo con HTML5 como estndar libre.
El formato tiene un excelente rendimiento y, junto al cdec VP9, hacen de
l una opcin bastante interesante que parece que tendr mucho futuro.
URL | WebM Project

Cdec VP9
El cdec de video utilizado por WebM es el conocido por VP8,
desarrollado por la empresa On2 Technologies (tras una larga evolucin
desde TrueMotion S, usado en juegos como Final Fantasy VII).
http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

7/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Originalmente, WebM utilizaba cdec de video VP8 junto a cdec de


audio Vorbis, sin embargo, actualmente utiliza el cdec de video VP9
junto a cdec de audio Opus.

Cdec TrueMotion VP8/VP9


URL | VP9

Formato MPG (ISO, 1993/1995)

Formato MPG (MPEG-1/MPEG-2)


Probablemente, MPEG-1 y MPEG-2 son uno de los conceptos ms
complejos de entender. En primer lugar, hay que dejar claro que se tratan
de especificaciones, y no un formato en s, por lo que cada especificacin
se forma de varios conceptos diferentes:

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

8/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Especificacin MPEG-1/MPEG-2

Especificacin MPEG-1 (ISO, 1993)


La primera de ellas, MPEG-1, es la que se utiliz para definir el primer
formato contenedor (MPEG-PS) y el formato de almacenamiento VCD
(VideoCD, basado en H.261). Posteriormente, tambin apareceran
algunas
compatibles con VCD que utilizaban MPEG-2,
modificaciones

como por ejemplo SVCD (SuperVCD) o KVCD.


Como curiosidad, mencionar que al contrario de lo que mucha gente cree,
los famosos archivos de audio MP3 no son MPEG-3, sino MPEG-1 y estn
definidos en la tercera parte de la especificacin.

Especificacin MPEG-2 (ISO, 1996)


La segunda especificacin, MPEG-2, es la que se utiliz para definir los
formatos contenedores (MPEG-PS/MPEG-TS ) y el nuevo formato de
almacenamiento de DVD (H.262). Tambin se mejoraban algunas
caractersticas de MP3 y se introduca AAC (Advanced Audio Coding), un
formato avanzado de audio con numerosas mejoras sobre MP3.
Mencionar tambin la existencia del formato contenedor VOB, que es el
que se utiliza en los DVD para incluir audio, video o incluso subttulos. O
http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

9/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

EVO, la versin mejorada de VOB.

Formato MP4 (ISO, 2003)

Formato MP4 (MPEG-4)


La especificacin MPEG-3 fue interrumpida y nunca lleg a desarrollarse,
pasando ms tarde a definir MPEG-4, en la cul encontramos muchos
conceptos ms recientes, como por ejemplo el formato de

de video que se utilizara en MPEG-4 (H.263).


almacenamiento

Especificacin MPEG-4/MPEG-H

Cdec x264
Sin embargo, el formato contenedor MP4 traera consigo la utilizacin
del formato de video definido en la especificacin MPEG-4/AVC H.264
(AVC: Advanced Video Coding). La implementacin de este formato de
http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

10/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

video se utiliza frecuentemente en muchos contenedores actuales (por

ejemplo, el citado MKV o el mismo MP4) con una calidad excelente. Es


tambin conocido por ser el formato utilizado en los Blu-ray. La
implementacin libre ms conocida es x264.
URL | x264

Formato HEVC (En desarrollo)

Formato HEVC (H.265)

La especificacin denominada MPEG-H/HEVC (High Efficiency Video


Coding) es la que se considera H.265 y aunque an est en fase de
desarrollo, se comenta que ya duplica el rendimiento de su predecesor y
que soporta resoluciones que pueden llegar a 8K (UHDTV).

Cdec x265
An se desconocen muchos aspectos relacionados con este nuevo
formato, pero ya hay disponible varios cdecs con implementaciones
tempranas de esta especificacin:
URL | x265
URL | libde265

Formato ASF (Microsoft, 1997)

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

11/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Formato ASF (Microsoft, 1997)

Formato ASF (WMV: Windows Media Video)


Un formato contenedor muy similar a AVI es ASF (Advanced Streaming

Format), muy utilizado por Microsoft para contener audio o video


Windows Media. Generalmente, llevan la extensin WMV cuando se
trata de video y WMA cuando se trata de audio.
Como curiosidad y debido a los obstculos que Microsoft estableca con
el

sus patentes,
autor de VirtualDub tuvo que retirar el soporte deASF
de
su programa tras haberlo investigado, y lo denomin el AVI de los pobres
.

Cdec WMV
Aunque no es exclusivo de ASF (se suele utilizar tambin en AVI), este
tipo de formatos contenedores suelen utilizar los cdec de Windows
Media Video, donde puedes encontrar desde WMV1 (Windows Media
Video 7) hasta el reciente WVC1 (Windows Media Video 9 VC-1).

Formato OGG (Xiph.Org, 1993)

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

12/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Formato OGG (Theora/Vorbis)


El formato contenedor OGG es un formato libre diseado para incluir
video, audio, subttulos y metadatos, sin embargo, se populariz en sus
inicios como alternativa al formato MP3 (solo audio). Por esta razn, la
extensin .OGG se mantuvo para archivos de audio (tambin .OGA)
mientras que a los archivos de vdeo se comenz a utilizar .OGV.
Una modificacin no oficial, denominada OGG Media (.OGM) se comenz
a utilizar como alternativa al AVI, permitiendo utilizar todo tipo de cdecs

no soportaba.
que el
OGG
oficial

Cdec Theora
El cdec de video ms popular utilizado con el formato OGG es Theora, el
cul est basado en una versin liberada de VP3. Se suele combinar con
el cdec de audio Vorbis, o menos frecuentemente con Opus o FLAC.
URL | Theora
Aunque no tiene relacin directa con este formato contenedor, existe un
cdec llamado Daala desarrollado por Xiph.Org que intenta mejorar
el rendimiento de H.265.

Formato MOV (Apple, 2001)


http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

13/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Formato MOV (QuickTime)


Otro formato contenedor popular ha sido .MOV, el formato de Apple
asociado con su aplicacin QuickTime. A pesar de ser bastante popular,
este formato sufri una gran cantidad de profundos cambios durante su
existencia, variando los cdecs utilizados a medida que iban
evolucionando las diferentes versiones de QuickTime.

Cdec h264

Actualmente, este formato utiliza una versin modificada propietaria de


MPEG-4, junto a un cdec de audio AAC. De hecho, el contenido
descargado de plataformas como iTunes se encuentra en este mismo
formato, renombrado a extensiones como M4V (video) o M4A (audio).
URL | QuickTime

Formato FLV (Adobe, 2002)

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

14/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Formato FLV (Adobe Flash)


Durante la poca dorada de Flash, el formato contenedor FLV (Flash
Video) se hizo muy popular debido a que era muy sencillo transmitir
contenido de video por Internet mediante Flash, y a que grandes
plataformas como Youtube o Metacafe lo utilizaban como medio de
hacer streaming va web.

Cdec Sorenson Spark/VP6

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

15/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Hasta la versin 7 de Flash, FLV utilizaba Sorenson Spark (H.263) como


cdec de video, a partir de la versin 8 tambin se podan utilizar cdecs
VP6 o H.264.
URL | Sorenson Spark

Formato 3GP/3G2 (3GPP, 2004)

Formato 3GPP

El formato 3GP fue desarrollado como contenedor de canales de audio,


video, donde para comprimir video se utilizase H.263. Termin
utilizndose como formato de video con grandes ratios de compresin
para dispositivos mviles, donde el objetivo era reducir el tamao de
almacenamiento y conseguir videos de reducido tamao para ahorrar
ancho de banda y poder enviarlos con los sistemas mviles de la poca.
Ms tarde, tambin se implementara la posibilidad de utilizar H.264 en
3GP. Como cdec de audio, se utilizaba AMR.

Formato RMVB (RealNetworks, 1995)

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

16/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Formato RMVB
Por ltimo, mencionar tambin el formato contenedor Real Media,
perteneciente a una veterana aplicacin llamada RealPlayer. En sus
inicios, dicho formato slo permita comprimir videos con calidades
constantes que no variaran, lo que lo haca un formato muy poco flexible.
Posteriormente, se comenz a popularizar una versin actualizada del
formato con la extensin .rmvb (Real Media Variable Bitrate), el cul ya
haba solventado este problema.

Qu formato tiene un video?


Como habremos visto, uno de los mayores problemas de este panorama,
es que muchas veces no se utiliza una extensin correcta, por lo que
necesitamos otra forma de identificar el formato del video. Existe un
programa llamado MediaInfo con el cul podemos averiguar que
formato contenedor tiene un archivo de video y que cdecs de video y
audio utiliza, junto a otra informacin relacionada.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

17/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

MediaInfo: Qu formato tiene un video?


Nota:
Mucho

cuidado
con la versin oficial de MediaInfo , ya que

incluye adware en su instalacin, como se puede ver en este informe de


VirusTotal . Aconsejo desinstalar el adware (OpenCandy) tras la
instalacin o utilizar la siguiente versin portable del programa que no
incluye adware:
URL | MediaInfo (Portable)

Descargar conversor de formatos de video


Si lo que te interesa es convertir tus videos a un formato concreto de una
forma rpida y sencilla, existe un magnfico proyecto llamado ffmpeg,
cdigo abierto y disponible para mltiples plataformas:

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

18/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

conversion-con-ffmpeg.png

Project

URL |
FFmpeg

Si an as, te asustan las terminales de texto, no tienes buena memoria


con los comandos, o buscas algo ms simple y cmodo (ideal para
vagos!), he preparado una coleccin de scripts con las que simplemente
tendrs que arrastrar el video original sobre el formato al que te interese
convertir. Y listo. Nada ms.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

19/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Simplemente descarga video-converter-scripts.zip directamente y


descomprmelo en una carpeta.
URL | Video converter scripts en GitHub
Si por el contrario, buscas un programa ms tradicional, puedes utilizar
HandBrake o el clsico VirtualDub .
NOTA: Recuerda que tambin puedes leer el artculo hermano Formatos
de audio: Todo lo que deberas saber , en el que nos centramos en los

formatos y cdecs de audio como MP3, OGG Vorbis, AC3, AAC, Opus, FLAC,
etc...
http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

20/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Escrito por Manz , el Domingo 21 de septiembre de 2014, en software . Comentarios


recibidos: 34.

52

102,5K

68

91

29

Manual para subtitular vdeos

144,8K

ExFAT, sistema de ficheros para


pendrive

Gua paso a paso para aprender a


subtitular videos y pegar o unir los
subttulos permanentemente.

ExFAT (Extended FAT File System) es


un sistema de cheros de Microsoft,
especialmente diseado para usarse
en unidades extrables como
pendrives o memorias USB.

28

93,2K

10 firewalls gratuitos alternativos

Listado de 10 rewalls gratuitos


alternativos al Firewall de Windows
para protegerte y no enviar
informacin desconocida.

Leermsartculos

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

21/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Artculo escrito por J. Romn Hernndez, ms


conocido como Manz (autor de Emezeta). Es
Ingeniero-tcnico informtico de Gestin por
la Universidad de La Laguna y reside en Santa
Cruz de Tenerife (Canarias).Puedes seguirlo en
las siguientes redes:
Twitter

Linkedin

Google+

Anuncios patrocinados

34 comentarios de lectores
Publicidad

YomismoEstaba esperando esta entrada aos!!! GRACIAS!!!!

+1

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

22/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Kidcobain
Domingo, 21 de septiembre de 2014, 19:41

oye que tal unas recomendaciones finales? por ejemplo, si quisiera hacer
un vdeo que tenga buena calidad y mnimo peso que se recomendara?
no se, algunos tipos de perfiles que se pudieran usar para pequeos
proyectos personales del da a da..
suponiendo que quisiera tener audio con poco peso bajando calidad de
manera poco perceptible que se podra recomendar?
hace algunos aos tenia un telfono con muy poca memoria en el que
poda poner muy pocos mp3, prob algunos formatos como amr para
colocar
mascanciones
pero sonaba mal, al final creo que me decid
por

aac. me hubiera venido magnifico una gua de formatos, podria serle util
a mas de uno por alli

+5

Talibn
Domingo, 21 de septiembre de 2014, 20:29

Se te ha olvidado lo ms importante: No se graba en vertical nunca,


siempre en HORIZONTAL :D

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

+1
23/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Virtualizado
Lunes, 22 de septiembre de 2014, 03:18

Concuerdo con Kidcobain, seran excelentes unas recomendaciones


finales.
Normalmente debo subir muchos videos a youtube, ya editados, y me
gustara saber cul es el mejor formato para tener buena calidad con
bajo tamao de archivo.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

+1

24/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Momar
Lunes, 22 de septiembre de 2014, 08:07

"Si lo que te interesa es convertir tus videos a un formato concreto de


una forma rpida y sencilla, existe un magnfico proyecto llamado
ffmpeg"
JUAS. Qu chiste ms... bueno?! Ah! Que iba en serio?
Admitmoslo, usar ffmpeg no es rpido ni sencillo, salvo que sepas
exactamente qu parmetros usar para hacer la conversin. Y saberlo es
lo difcil. Yo no he conseguido hacer una conversin limpia y a la primer
jams.
Siempre
he tardado horas hasta dar con una cadena de

parmetros que funcionara; y eso cuando lo he conseguido, que no han


sido pocas las veces que lo he dejado por imposible.
Claro que puede ser que sea un torpe de mucho cuidado, que puede ser,
pero he ledo en varias ocasiones el man del programa y siempre me
pierdo, y no he encontrado un "manual para torpes" ni a nadie que
supiera manejarlo y que pudiera explicarme cmo c#j#n??s manejarlo.
(Winff me ha facilitado la vida en ocasiones, pero *slo en ocasiones*) Es
posible que la culpa no sea de ffmpeg sino de Cinelerra, que tambin
tiene lo suyo, pero bueno...
Perdn por la diatriba, pero necesitaba desahogarme. Muchas gracias
por el artculo. Me ha dejado bastantes cosas claras, como el porqu Xine
es capaz de reproducir AVI slo los bisiestos con luna llena y similares.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

+4

25/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

ManuelExcelente artculo

Autor

Manz
Lunes, 22 de septiembre de 2014, 18:00

@kidcobain : Totalmente cierto, pero ya se me estaba haciendo eterno


el artculo. En otro lo retomaremos :-)
@Momar : Para eso mismo cree el video-converter-scripts . Slo
echa un vistazo al GIF .

+3

Anonymous
Lunes, 22 de septiembre de 2014, 20:34

Muy bueno y bien entendido, slo faltara un pequeo glosario para


definir algunos conceptos.
He echado de menos la mencin a la librera ffmpeg a la hora de
convertir vdeo en linux.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

-1
26/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Javier
Martes, 23 de septiembre de 2014, 16:31

@Virtualizado : Yo utilizo el MP4 (H.264), que es el que recomienda


Google para subir vdeos.
Aqu tienes un enlace a las recomendaciones que sugiere Google a la
hora de subir vdeos a Youtube:
Configuracin avanzada de la codificacin

Javier
Martes, 23 de septiembre de 2014, 16:34

Ah, y como conversor sencillo recomiendo este:

Free Video Converter

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

-1

27/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Rifergom
Mircoles, 24 de septiembre de 2014, 00:08

Te has dejado HandBrake, como conversion ente formatos,, gratis, libre y


multi-plataforma , sobre todo para hacer "backups personales" de tus
Bluray y DVD, que los convierte en los formatos que ves aqui.
File Containers: .MP4(.M4V) and .MKV
Video Encoders: H.264(x264), MPEG-4 and MPEG-2 (libav), and
Theora(libtheora)
Audio Encoders: AAC, CoreAudio AAC/HE-AAC (OS X Only), MP3, Flac, AC3,
or Vorbis
Audio Pass-thru: AC-3, DTS, DTS-HD, AAC and MP3 tracks
https://handbrake.fr/

Y transcode que soporta todos los formatos que pueda soportar


libavcodec, que no son pocos y que se pueden consultar en
http://en.wikipedia.org/wiki/Libavcodec#Implemented_video_codecs
W
Aunque solo para linux, y poco amigablem creo que no tiene gui.

Agente
Sbado, 27 de septiembre de 2014, 02:39

Excelente articulo y muy buena informacin!


Gracias por el dato, me ha servido de mucho :D

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

-1

28/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Ano-Nimo
Sbado, 27 de septiembre de 2014, 07:05

a manz: ya era hora. nos tienes abandonados. que desagradable entrar


todos los viernes y ver que no hay nada que leer. saludos!

+1

Kirie

Domingo, 28 de septiembre de 2014, 03:11

Wow, estuvo muy buena esta entrada. Creo que la releer un par de
veces ms.
Gracias!

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

29/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Pacco
Martes, 30 de septiembre de 2014, 20:50

Has hecho feliz a mi vago interior, esos scripts son un sueo dorado.

+3

EricksonExcelente artculo. +2

ETS-PNP
Sbado, 8 de noviembre de 2014, 16:59

Excelente recopilacin sobre la historia de los formatos de video, todo el


mundo sin duda lo ha usado el .avi

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

30/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Mcjivaro
Lunes, 10 de noviembre de 2014, 14:46

Tremendo, un articulo muy bueno, lo usare la prxima vez que alguien


me vuelva a decir que no es capaz de reproducir tal o cual vdeo!!

+1

Jordan Sedano

Mircoles, 19 de noviembre de 2014, 13:12

Creo que lo mejor seria descargar un reproductor completo que


reconozca los formatos mas utilizados de vdeo y audio. As te evitas
tener que estar cambiando de formato los vdeos.
Yo uso el VLC que tiene una gran cantidad de codecs.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

-1

31/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Dario
Jueves, 5 de febrero de 2015, 10:29

Gracias de verdad por semejante exposicion de informacion. Arranque


anoche empezando a informarme por primera vez sobre este "pequeo"
mundo aparte de los videos y ahora (aunque ya esta amaneciendo)
puedo decir que tengo todo muchisimo mas claro (Si, me la pase toda la
noche leyendo.... :-/ ).
Pero, nobleza obliga, despues de leer en tantos lados y buscar tanto y
tanto, tu articulo fue el unico que me quito las dudas mas fuertes que
tenia ....
Muchas gracias otra vez !
PD:
al pedido de que hagas un instructivo con consejos de
Me agrego

lo

que debieramos fijarnos para saber que calidad tiene un video antes de
descargarlo ....ya que de compresion aun no se casi nada ... No se como
funcionaran sus algoritmos ni nada ....

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

+3

32/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Dario
Jueves, 5 de febrero de 2015, 10:33

A lo que mas me refiero es por ejemplo a que he bajado peliculas de un


mismo formato (contenedor jeje, lo aprendi recien con vos ) y una misma
resolucion y su calidad es diferente !! es decir se ve una mejor que otra
aunque esten en el mismo formato/ resolucion por asi decirlo !!

Oscar Hidalgo H
Lunes, 2 de marzo de 2015, 03:00

Al parecer se olvido lo ms importante, cual seria el formato perfecto


que: ocupe menos espacio y tenga calidad.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

33/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Luciana
Lunes, 30 de marzo de 2015, 20:10

hola tengo una duda ojala me la puedas aclarar. siempre bajo pelis 3d y
las veo en mi tv 3d excepto las que estan en formato iso que no las
reproduce. suelo encontrar torrents de 50gb aprox. con formato bluray
que terminan en AVC DTS-HD. estas son siempre un archivo iso? o
pueden ser un mp4?. muchas gracias

-2

ToniEl formato .mov de QuickTime es del ao 1991.

Walter
Sbado, 11 de abril de 2015, 04:55

avanti es un gui para el ffpmeg


www.avanti.arrozcru.org

+1

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

34/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

HARKAITZ
Sbado, 1 de agosto de 2015, 08:07

hola
tengo un tv sony nuevo y hasta ahora no tenia problema para ver las
peliculas con formato .avi, pero ahora me da error de NO RECONOCE
CODEC
que puedo hacer? cambiar de formato o de codec? lo mas rapido ?
tengo el format factory que es muy util
gracias

JorgeNo funciona la conversin automtica ...

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

35/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Lhi
Lunes, 26 de octubre de 2015, 17:32

Hola
se que mi pregunta no es tan compleja como las expuestas, pero, estoy
interesada en saber cmo identifico el programa en el que fue grabado
un video, soy profesora y algunos de mis alumnos insisten en utilizar un
programa como After Effect, en vez de uno sencillo como Movie Maker, y
no quiero evaluar con ms ventaja a unos sobre otros, gracias

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

36/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Rwidoh
Sbado, 21 de noviembre de 2015, 22:01

Hola! gracias por el artculo, muy interesante.


Tengo una duda que creo puede tener relacin. Me gustara cear una
biblioteca de videos personal. Una biblioteca grande. El tema es que yo
vengo del mundo de la fotografia, y ahi solemos poner tags o etiquetas a
las fotos cuando tenemos mucho volumen para poder encontrar de una
manera rpida lo que necesitamos.
Mi duda es como puedo hacer esto mismo con los videos. Son videos
descargados
de
youtube principalmente. Lo he probado con adobe
bridge, al igual que con las fotos, pero en la mayoria de videos no me

deja. En otros si. En videos con el mismo formato contenedor, como


puede ser mpeg4, me encuentro algunos en los que me deja y otros en
los que no.
como podria hacerlo para poder taggear todos mis videos?

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

+1

37/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Victor
Martes, 22 de diciembre de 2015, 00:52

Gran artculo, muy completo en el cual explicas muchas vainas que


intentaba comprender y en otros sitios consegua solo a pedazos.
Quisiera plantear una duda:
x264 es un codecs? he ledo que se trata de un codificador libre del
formato H264, entonces lo que me da a entender es que H264 es como
un conjunto de normas o estndares de codecs y quedo un poco en el
aire con x264.
Espero
puedan
ayudarme con esta duda.

Saludos

+1

Andrs Cortina
Sbado, 16 de abril de 2016, 05:31

@HARKAITZ : Muy fcil, cambia de cdec, pero con un programa que


permita ese cambio.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

+1

38/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Cristian
Viernes, 6 de mayo de 2016, 21:24

Hola, hay algun programa donde pueda recodificar el video pero sin
reconvertirlo? me explico, hay algun programa donde puedo agregar
subtitulos o audios y no reconvertir todo el video? O si se tiene que
reconvertir todo? Yo actualmente uso el Format factory para pasar de un
formato a otro, es un programa multiformato y es muy bueno, use
mucho tiempo el virtualdub pero en mis viejas maquinas. :)

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

39/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Autor

Manz
Domingo, 8 de mayo de 2016, 17:26

@Cristian : puedes utilizar ffmpeg, que utilizando los parmetros vcodec copy, le indicas que no recodifique el video, sino que utilice el
original. Esta opcin solo es posible utilizarla cuando no queremos hacer
cambios en el video original, sino conservarlo idnticamente (para
ahorrar tiempo) o hacer cambios que no impliquen recodificacin, como
recortar fragmentos de tiempo.
Aqu tienes un artculo detallado a modo de manual en espaol de
ffmpeg
.

ANTONIO
Viernes, 8 de julio de 2016, 21:52

BUENAS, como puedo utilizar coleccin de scripts, ya que lo intento y


cuando arrastro el video al formato que quiero, solo me abre una
ventana de dos y se me cierra rapidsimo. Muchas gracias al que me
pueda responder.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

40/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Publica tu opinin
Si lo deseas, puedes utilizar el siguiente formulario para publicar tu
opinin o responder a alguna de las existentes:
Tu nombre
tu@email.com
http:// (o perfil de Twitter)
Escribe aqu tu comentario... Separa en prrafos los textos muy
abundantes y revisa la previsualizacin del comentario antes de
enviarlo! Tu comentario puede tardar algunos segundos en
aparecer despus de enviarlo.

Acepto las condiciones y polticas de privacidad de este sitio web.


Suscribirme a travs de FeedBurner a los nuevos artculos del blog por email.
Publicar comentario

Previsualizacin
Aqu se previsualizar su comentario. Revise que sea correcto antes de
publicarlo.

Artculos populares
http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

41/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Las 100 mejores canciones de los


80

Es imposible reunir las mejores


canciones de los 80, pero aqu va -a mi
criterio- la lista de los mayores xitos
de la mejor dcada en el mundo de la
msica: los 80.

15 aplicaciones gratis para


recuperar archivos borrados

Seleccin de 15 programas gratis para


Windows que permiten recuperar
informacin eliminada o borrada de
nuestros discos o memorias.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

El hombre que dio soporte tcnico


troll

Don C. cre una cuenta de Facebook


falsa con el logotipo ocial de una
empresa y simul ser uno de los
empleados. Este fue el resultado.

WhatsApp y LINE: Cosas que


quizs no sabas

22 dudas frecuentes sobre WhatsApp


y LINE explicadas paso a paso. Ideal
para compartir con el cuado que no
para de preguntarte.

42/43

22/8/2016

Formatosdevideo:Todoloquedeberassaber|Emezeta

Qu significa G, E, 3G, H/3G+, H+,


4G?

18 programas gratis para capturar


pantalla en vdeo

Que son esos iconos y letras G, E, 3G,


H, 3G+, H+, 4G que aparecen en
nuestro smartphone? A qu velocidad
puedo descargar con cada uno?

Ms de 18 programas gratuitos para


crear screencasts: capturar o grabar
en vdeo lo que hacemos en la pantalla
de nuestro escritorio.


Artculos

Feed
RSS

Aviso legal Privacidad & Cookies


HTML5 CSS3

Publicidad

Contacto

Recibe artculos recin publicados escribiendo tu correo

7 monos escribieron 533,45 pginas con sus mquinas de escribir en 0,41 segundos.
CMS programado y diseado por Jos Romn Hernndez Martn. Alojado en MediaTemple
usando CloudFlare.

http://www.emezeta.com/articulos/formatosdevideotodoloquedeberiassaber

43/43

Graphics Device Interface


Graphics Device Interface (GDI) es uno de los tres
componentes o subsistemas de la interfaz de usuario de
Microsoft Windows. Trabaja junto con el ncleo y la API
de Windows.

La forma de trabajar es heredada del lenguaje de programacin C. Hay que crear y destruir explcitamente los
elementos de dibujo, por lo que es muy propenso a fugas
de memoria.

Esta interfaz de programacin de aplicaciones se encarga Microsoft est en vas de reemplazar dicho sistema de
del control grco de los dispositivos de salida, como los dibujo por otro completamente distinto y basado en C++
monitores o las impresoras.
denominado GDI+.
Las tareas ms comunes de GDI son:
el dibujo de lneas, curvas, polgonos;
el relleno de cuadros, crculos, polgonos, etctera;
igualmente se encarga del renderizado de fuentes y
textos, y,
el manejo de paletas.
GDI no se encarga del dibujo de los mens, ventanas, etctera, que este es un trabajo especial para el user32.dll
(una biblioteca de la API de Windows exclusiva para estas funciones).
Tal vez, la ms signicativa capacidad del GDI sobre mtodos ms directos de acceder al hardware, es la escalabilidad de posibilidades y la abstraccin que se pude conseguir con los dispositivos de salida. Usando GDI es muy
fcil dibujar en varios dispositivos, como es en la pantalla
o en una impresora, esta capacidad es el objetivo principal del WYSIWYG de Microsoft Windows.
La mayora de los videojuegos simples se pueden crear
usando GDI. Sin embargo, no es lo sucientemente poderosa para la creacin de videojuegos complejos debido
a la falta de sincronizacin con el framebuer (encargado
de las animaciones) y su obvia incapacidad para la renderizacin de modelos y objetos 3D. Los videojuegos modernos utilizan DirectX u OpenGL que resuelven estos
problemas.
Los objetos ms importantes son:
HDC (Handle to Device Context, contexto de dispositivo): que viene a ser el lienzo donde se pinta.
HBRUSH (Handle to Brush, brocha): permite rellenar zonas con colores.
HPEN (Handle to Pen, pluma): que permite el dibujado de lneas o bordes de otros elementos grcos.
1

1 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

1.1

Texto

Graphics Device Interface Fuente: https://es.wikipedia.org/wiki/Graphics_Device_Interface?oldid=79525274 Colaboradores: Pybalo,


Melocoton, Digigalos, Rembiapo pohyiete (bot), Orgullobot~eswiki, RobotQuistnix, Yrbot, FlaBot, YurikBot, GermanX, LoquBot, CEMbot, Escarbot, BotOn, Kved, Rei-bot, Felknight, Manuel Trujillo Berges, Biasoli, VolkovBot, Cesar.romero.avello, Shooke, AlleborgoBot,
Camalich73, PaintBot, BOTzilla, Marcecoro, StarBOT, Tinchog87, LucienBOT, Louperibot, MelancholieBot, Luckas-bot, Hoenheim, SuperBraulio13, Scapegoat001, PatruBOT, GrouchoBot, EmausBot, ZroBot, Elvisor, Addbot y Annimos: 9

1.2

Imgenes

1.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Video Graphics Array


Paleta global de 262144 colores (6 bits y por tanto
64 bits para cada uno de los canales rojo, verde y
azul mediante el RAMDAC)

Video Graphics Array (VGA) o Adaptador Grco de


Video se utiliza para denominar a:
Una pantalla de computadora analgica estndar.

Reloj maestro seleccionable de 25,2 MHz o 28,3

La resolucin 640 480 pxeles.

Mximo de 800 pxeles horizontales

El conector de 15 contactos D subminiatura.

Mximo de 600 lneas

La tarjeta grca que comercializ IBM por primera


vez en 1988.

Tasa de refresco de hasta 70 Hz

VGA fue el ltimo estndar de grcos introducido por


IBM al que se atuvieron la mayora de los fabricantes de
computadoras compatibles IBM, convirtindolo en el mnimo que todo el hardware grco soporta antes de cargar un dispositivo especco. Por ejemplo, la pantalla de
Microsoft Windows aparece mientras la mquina sigue
funcionando en modo VGA, razn por la que esta pantalla aparecer siempre con reduccin de la resolucin y
profundidad de color.

Interrupcin de blanqueo vertical (No todas las tarjetas lo soportan)


Modo plano: mximo de 16 colores
Modo pxel empaquetado: en modo 256 colores
(Modo 13h)
Soporte para desplazamiento suave de la imagen.

La norma VGA fue ocialmente reemplazada por


Extended Graphics Array (XGA) de IBM, pero en realidad ha sido sustituida por numerosas extensiones clnicas ligeramente distintas a VGA realizadas por los fabricantes y que llegaron a ser conocidas en conjunto como
Super VGA.

Algunas operaciones para mapas de bits


Desplazador en barril
Soporte para pantalla dividida
0,7 V pico a pico

Detalles tcnicos

75 ohmios de impedancia de doble terminacin


(18,7 mA - 13 mW)

VGA es conocido como un arreglo en lugar de un


adaptador, ya que se implement desde el principio como un solo circuito integrado, en sustitucin del controla- VGA soporta tanto los modos de todos los puntos direcdor de tubo de rayos catdicos Motorola 6845 y docenas cionables como modos de texto alfanumricos. Los mode circuitos de lgica discreta que cubren una longitud dos estndar de grcos son:
total de una tarjeta ISA que los sistemas MDA, CGA y
EGA utilizaban. Esto tambin permite que se coloquen
640480 en 16 colores
directamente sobre la placa base del PC con un mnimo
de dicultad, ya que solamente requiere memoria de v 640350 en 16 colores
deo, un oscilador de cristal y un RAMDAC externo. Los
primeros modelos de la lnea de computadores IBM Per 320200 en 16 de colores
sonal System/2 estaban equipados con VGA en su placa
madre.
320200 en 256 colores (Modo 13h)
Las especicaciones originales de VGA son las siguientes:
Tanto como los modos estndar, VGA puede ser congurado para emular a cualquiera de sus modos predecesores
(EGA, CGA y MDA).

256 KiB de VRAM


Modos de imagen con paletas de 16 y 256 colores
1

Conector VGA

Un conector VGA como se le conoce comnmente (otros


nombres incluyen conector RGBHV, D-sub 15, sub mini
mini D15 y D15), de tres hileras de 15 pines DE-15. Hay
cuatro versiones: original, DDC2, el ms antiguo y menos
exible DE-9, y un Mini-VGA utilizados para computadoras porttiles. El conector comn de 15 pines se encuentra en la mayora de las tarjetas grcas, monitores
de computadoras, y otros dispositivos, es casi universalmente llamado HD-15. HD es de alta densidad, que
la distingue de los conectores que tienen el mismo factor
de forma, pero solamente en 2 las de pines. Sin embargo, este conector es a menudo errneamente denominado DB-15 o HDB-15. Los conectores VGA y su correspondiente cableado casi siempre son utilizados exclusivamente para transportar componentes analgicos RGBHV
(rojo - verde - azul - sincronizacin horizontal - sincronizacin vertical), junto con seales de vdeo DDC2 reloj
digital y datos. En caso de que el tamao sea una limitacin (como porttiles) un puerto mini-VGA puede gurar
en ocasiones en lugar de las de tamao completo conector VGA. Con la revolucin digital, a partir de 2009 se
comienza a reemplazar estos conectores VGA por conectores HDMI que debido a sus caractersticas avanzadas en
tarjetas grcas, pantallas y monitores actuales.

PALETA DE COLORES DE VGA

las celdas de entre todos los 16 colores. Todas estas opciones son las mismas que las del adaptador CGA presentado por IBM. Por lo general los adaptadores VGA
soportan el modo texto tanto en blanco y negro como en
color, aunque el modo monocromo, casi nunca es utilizado. En blanco y negro en casi todos los adaptadores VGA
modernos lo hacen con texto en color gris sobre fondo negro en el modo de color. Los monitores VGA monocromo
se vendieron destinados principalmente para aplicaciones
de texto, pero la mayora de ellos trabajan de manera adecuada por lo menos con un adaptador VGA en el modo de
color. De vez en cuando una conexin defectuosa entre un
monitor moderno y una tarjeta de vdeo VGA causar que
la la tarjeta detecte el monitor como en monocromo, y de
esta forma, la BIOS y la secuencia de arranque inicial aparezcan en escala de grises. Por lo general, una vez que los
controladores de la tarjeta de vdeo se han cargado (por
ejemplo, mediante el arranque del sistema operativo) se
sobrecargarn esta deteccin y el monitor volver a color.
En el modo de texto en color, cada carcter de la pantalla
est, en realidad, representado por dos bytes. El menor,
es el carcter real para el actual conjunto de caracteres, y
el superior, o atributo byte es un campo de bit utilizado
para seleccionar los diferentes atributos de vdeo, como
el color, el parpadeo, el conjunto de caracteres, etc. Este
esquema par-byte es una de las caractersticas que hered
en ltima instancia VGA de CGA.

4 Paleta de colores de VGA

Modos de texto estndar

Los modos estndar de texto alfanumerico para VGA


usan 80 25 o 40 25 celdas de texto. Cada celda puede elegir entre uno de los 16 colores disponibles para su
primer plano y 8 colores para el fondo; los 8 colores de
fondo son los permitidos sin el bit de alta intensidad. Cada
carcter tambin podr parpadear, y todos los que se conguren para parpadear parpadearn al unsono. La opcin
de parpadeo para toda la pantalla puede ser cambiada por
la capacidad de elegir el color de fondo para cada una de

Paleta VGA de 256 colores.

El sistema de color VGA es compatible con los adaptadores EGA y CGA, y aade otro nivel de conguracin en
la parte superior. CGA fue capaz de mostrar hasta 16 colores, y EGA ampli este permitiendo cada uno de los 16
colores que se elijan de una paleta de colores de 64 (estos
64 colores se componen de dos bits para el rojo, verde y

3
azul: dos bits tres canales = seis bits = 64 valores diferentes). VGA extiende todava ms las posibilidades de
este sistema mediante el aumento de la paleta EGA de
64 entradas a 256 entradas. Dos bloques de ms de 64
colores con tonos ms oscuros progresivamente se aadieron, a lo largo de 8 entradas en blanco que se jaron
a negro. Adems de la ampliacin de la paleta, a cada una
de las 256 entradas se poda asignar un valor arbitrario de
color a travs de la DAC VGA. La BIOS EGA solamente
permiti 2 bits por canal para representar a cada entrada,
mientras que VGA permita 6 bits para representar la intensidad de cada uno de los tres primarios (rojo, azul y
verde). Esto proporcion un total de 63 diferentes niveles de intensidad de rojo, verde y azul, resultando 262144
posibles colores, cualquiera 256 podran ser asignado a la
paleta (y, a su vez, de los 256, cualquiera 16 de ellos podran ser mostradas en modos de vdeo CGA). Este mtodo permiti nuevos colores que se utilizarn en los modos
grcos EGA y CGA, proporcionando un recordatorio de
cmo los diferentes sistemas de paleta se establecen juntos. Para denir el texto de color a rojo muy oscuro en el
modo de texto, por ejemplo, tendr que ser jado a uno
de los colores CGA (por ejemplo, el color por defecto, n
7: gris claro.) Este color luego se mapea a uno la paleta EGA - en el caso del color 7 de CGA, se mapea a la
entrada 42 de EGA. El DAC VGA debe ser congurado
para cambiar de color 42 a rojo oscuro, y luego de inmediato cualquier cosa que aparece en la pantalla a la luz
de gris (color CGA 7) pasar a ser de color rojo oscuro.
Esta funcin se utiliza a menudo en juegos DOS de 256
colores. Mientras que los modos CGA y EGA compatibles permitan 16 colores para ser mostrados de una vez,
otros modos VGA, como el ampliamente utilizado modo
13h, permita que las 256 entradas de la paleta se mostraran en la pantalla al mismo tiempo, y as en estos modos
cualquier 256 colores podran ser vistos de los 262144
colores disponibles.

Detalles de direccionamiento

La memoria de vdeo de la VGA est asignada a la memoria de PC a travs de una ventana en el rango entre los
segmentos 0xA000 y 0xC000 en el modo real del espacio
de direcciones. Tpicamente estos segmentos son:
0xA000 para modos grcos EGA / VGA (64 KiB)
0xB000 para monocromo en modo texto (32 KiB)
0xB800 para color en modo texto y modos CGA
grcos compatibles (32 KiB)
Debido a la utilizacin de diferentes asignaciones de direccin para los distintos modos, es posible disponer de
un adaptador de pantalla monocromo y un adaptador de
color, como el VGA, EGA o CGA instalado en la misma
mquina. A principios de la dcada de 1980, esto se utilizaba para mostrar hojas de clculo de Lotus 1-2-3 en alta

resolucin de texto en una pantalla MDA y grcos asociados en CGA a baja resolucin en una pantalla simultneamente. Muchos programadores tambin utilizan dicho servicio con la tarjeta monocromo que muestra informacin de depuracin mientras corra en un programa de
la otra tarjeta en modo grco. Varios depuradores, como
Borland Turbo Debugger, D86 (por J. Alan Cox) y CodeView de Microsoft podran trabajar en una conguracin
de monitor dual. Cualquiera de Turbo Debugger o CodeView se podran utilizar para depurar Windows. Tambin hay controladores de dispositivo DOS, como ox.sys,
que implementaba una interfaz serie para simulacin en
la pantalla MDA, por ejemplo, permite al usuario recibir
mensajes de error de depuracin de las versiones de Windows sin utilizar un terminal serie real. Tambin es posible utilizar el comando MODO MONO en el prompt
de DOS para redirigir la salida a la pantalla monocromo. Cuando un Adaptador de Pantalla Monocromtica
no estaba presente, se poda utilizar el espacio de direcciones de memoria 0xB000 - 0xB7FF adicionalmente para otros programas (por ejemplo, mediante la adicin de
la lnea DEVICE = EMM386.EXE I = B000-B7FF en
cong.sys), esta memoria estara disponible para programas que pueden ser cargados en la memoria alta.

6 Trucos de programacin
Una tcnica indocumentada pero popular apodada Modo X (acuado por Michael Abrash) se utiliz para hacer
posibles tcnicas de programacin y resoluciones grcas
que no lo eran de otra forma en el estndar Modo 13h.
Esto se hizo descomponiendo los 256 KiB de memoria
VGA en cuatro planos, que hara que cada uno de los
256 KiB de memoria grca estuvieran disponibles en los
modos de color de 256 colores. Hubo una compensacin
extra de complejidad y prdida de rendimiento en algunas operaciones de grcos, pero fue mitigado por otras
operaciones cada vez con ms rapidez en ciertas situaciones:
El llenado de polgonos de un color poda acelerarse
debido a la capacidad de establecer cuatro pxeles
con una sola escritura en el hardware.
El adaptador de vdeo poda ayudar en la copia de
regiones RAM de vdeo, que a veces es ms rpido
que hacerlo con la lenta interfaz CPU a VGA.
Varios modos de mayor resolucin son posibles: en
16 colores, 704 528, 736 552, 768 576, y hasta
800 600 eran posibles. Software como Xlib (una
biblioteca de grcos VGA para C a principios de
1990) y ColoRIX (un programa de tratamiento de
grcos de 256 colores), tambin soportaba modos
de color de 256 colores utilizando muchas combinaciones de las columnas de 256, 320, y 360 pxeles,
y las de 200, 240, 256, 400, y 480 lneas (el lmite superior de 640 400, que utiliza casi todos

ENLACES EXTERNOS

los bytes de VGA 256 KiB de RAM de vdeo). Sin 7.3 Otros
embargo, 320 240 es el ms conocido y de uso
PC 99
frecuente ya que es el tpico formato de imagen de
4:3 con resolucin de pxeles cuadrados.
Vdeo
El uso de mltiples pginas de vdeo en hardware
permite al programador realizar doble buering, que
est disponible en todos los modos de VGA de 16
colores, no era posible utilizar la modalidad de 13h.
A veces, la tasa de refresco del monitor tena que ser reducida para dar cabida a estos modos, incrementando la
tensin ocular. Tambin son incompatibles con algunos
monitores ms antiguos, que producen problemas de visualizacin, como desaparicin de detalles de la imagen,
parpadeo, desplazamiento vertical y horizontal y de falta de sincronizacin en funcin de la modalidad que se
intente. Debido a esto, la mayora de los ajustes VGA
utilizados en productos comerciales se limitaron a combinaciones seguras, como 320 240 (pxeles cuadrados,
tres pginas de vdeo), 320 400 (el doble de resolucin,
dos pginas de vdeo) y 360 480 (mxima resolucin
estndar VGA compatible con monitores, una pgina de
vdeo).

Vase tambin

7.1

Interfaces

Digital Visual Interface (DVI)


DIIVA
Euroconector
HDBaseT
HDMI
Unied Display Interface (UDI)
YPBPR

7.2

Formatos

Color Graphics Adapter (CGA)


Enhanced Graphics Adapter (EGA)
Hercules Graphics Card (HGC)
Monochrome Display Adapter (MDA)
Super Video Graphics Array (SVGA)
Extended Graphics Array (XGA)

Conector VGA (en ingls)

8 Enlaces externos
DB15 VGA, funciones de los pines
ndice: Denicin breve en Espaol de los registros
y campos de bits VGA estndar en software

Origen del texto y las imgenes, colaboradores y licencias

9.1

Texto

Video Graphics Array Fuente: https://es.wikipedia.org/wiki/Video_Graphics_Array?oldid=90351360 Colaboradores: Fibonacci, Julie,


Dodo, Sms, Avm, Ramjar, Jsanchezes, Cinabrium, JMPerez, Rembiapo pohyiete (bot), Wikiseldon, Magister Mathematicae, RobotQuistnix, JKD, Superzerocool, Palica, Yrbot, BOT-Superzerocool, FlaBot, Maleiva, Museo8bits, Icvav, GermanX, KnightRider, The Photographer, Gothmog, Er Komandante, CEM-bot, Thanos, Satanclos, Thijs!bot, Locovich, Martin Rizzo, JAnDbot, Chien, Jugones55, RETEGA,
TXiKiBoT, Humberto, Rei-bot, Algarabia, NaSz, Manuel Trujillo Berges, Cinevoro, VolkovBot, C'est moi, SteveMtl~eswiki, Matdrodes,
ElVaka, Shooke, AlleborgoBot, Muro Bot, YonaBot, Loveless, Nubecosmica, Ken123BOT, Marcecoro, HUB, Tosin2627, Pan con queso, JulioTR~eswiki, UA31, Abajo estaba el pez, AVBOT, RuslanBer, MastiBot, CarsracBot, Arjuno3, DrFO.Tn.Bot~eswiki, FariBOT,
William1509, TorQue Astur, PatruBOT, EmausBot, Perhelion, ZroBot, Grillitus, Elas, ChuispastonBot, Diamondland, Ruos, MerlIwBot, Deivis, MetroBot, Ileana n, MaKiNeoH, Addbot, Hans Topo1993, Eltruque, Gonzalo Rodriguez Zabala, Andrest27302, ArcheFire y
Annimos: 96

9.2

Imgenes

Archivo:Commons-emblem-question_book_orange.svg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/1/1f/
Commons-emblem-question_book_orange.svg Licencia: CC BY-SA 3.0 Colaboradores: <a href='//commons.wikimedia.org/wiki/File:
Commons-emblem-issue.svg' class='image'><img alt='Commons-emblem-issue.svg' src='https://upload.wikimedia.org/wikipedia/
commons/thumb/b/bc/Commons-emblem-issue.svg/25px-Commons-emblem-issue.svg.png' width='25' height='25' srcset='https:
//upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/38px-Commons-emblem-issue.svg.png
1.5x,
https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/50px-Commons-emblem-issue.svg.png 2x'
data-le-width='48' data-le-height='48' /></a> + <a href='//commons.wikimedia.org/wiki/File:Question_book.svg' class='image'><img
alt='Question
book.svg'
src='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/25px-Question_
book.svg.png' width='25' height='20' srcset='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/
38px-Question_book.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/50px-Question_
book.svg.png 2x' data-le-width='252' data-le-height='199' /></a> Artista original: GNOME icon artists, Jorge 2701
Archivo:DE15_Connector_Pinout.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/30/DE15_Connector_Pinout.svg
Licencia: Public domain Colaboradores: Trabajo propio Artista original: Mobius
Archivo:SVGA_port.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/9/92/SVGA_port.jpg Licencia: Public domain Colaboradores: Trabajo propio Artista original: Duncan Lithgow
Archivo:VGA_Stecker.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/6/61/VGA_Stecker.jpg Licencia: CC BY-SA 2.5
Colaboradores: Trabajo propio Artista original: Afrank99
Archivo:VGA_palette_with_black_borders.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/6/66/VGA_palette_with_
black_borders.svg Licencia: Public domain Colaboradores: Psychonaut/ipalette.sh Artista original: Psychonaut

9.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Impresora
Una impresora es un dispositivo perifrico del ordenador
que permite producir una gama permanente de textos o
grcos de documentos almacenados en un formato electrnico, imprimindolos en medios fsicos, normalmente
en papel, utilizando cartuchos de tinta o tecnologa lser
(con tner).
Muchas de las impresoras son usadas como perifricos, y
estn permanentemente unidas al ordenador por un cable.
Otras impresoras, llamadas impresoras de red, tienen una
interfaz de red interno (tpicamente wireless o ethernet),
y que puede servir como un dispositivo para imprimir en
papel algn documento para cualquier usuario de la red.
Adems, muchas impresoras modernas permiten la conexin directa de aparatos de multimedia electrnicos como las tarjetas CompactFlash, Secure Digital o Memory
Stick, pendrives, o aparatos de captura de imagen como
cmaras digitales y escneres. Tambin existen aparatos
multifuncin que constan de impresora, escner o mquinas de fax en un solo aparato. Una impresora combinada
con un escner puede funcionar bsicamente como una
fotocopiadora.
Las impresoras suelen disearse para realizar trabajos repetitivos de poco volumen, que no requieran virtualmente
un tiempo de conguracin para conseguir una copia de
un determinado documento. Sin embargo, las impresoras Impresoras-tipos
son generalmente dispositivos lentos (10 pginas por minuto es considerado rpido), y los gastos por pgina es
relativamente alto.
impresoras de margarita;
Para trabajos de mayor volumen existen las imprentas,
que son mquinas que realizan la misma funcin que las
impresoras pero estn diseadas y optimizadas para realizar trabajos de impresin de gran volumen como sera
la impresin de peridicos. Las imprentas son capaces de
imprimir cientos de pginas por minuto o ms.

impresoras sin impacto: abarcan todos los dems


tipos de mecanismos de impresin, incluyendo:
impresoras trmicas,
impresoras de inyeccin o impresoras de chorro de tinta,
impresoras lser.

Clasicacin de impresoras por


mecanismo

Adems, se pueden seguir los siguientes criterios para


clasicar las impresoras:

En general, las impresoras se pueden dividir en categoras


siguiendo diversos criterios.[1]

tecnologa de impresin,

La distincin ms comn se hace entre:

formacin de los caracteres,


mtodo de transmisin,

impresoras de impacto: se dividen en,


impresoras matriciales (pueden subdividirse
segn el nmero de agujas que contiene el cabezal de impresin: 9, 18, 24),

mtodo de impresin,
capacidad de impresin.
1

1.1

Formacin de los caracteres

Caracteres con trazo continuo: los caracteres formados totalmente con trazo continuo (los producidos por una impresora de margarita, por ejemplo).
Caracteres de puntos matriciales: caracteres matriciales compuestos por patrones de puntos independientes (impresoras: matriciales, de inyeccin y
trmicas).
Tcnicamente, las impresoras lser son matriciales, pero la nitidez de la impresin y el tamao reducido de los
puntos impresos con alta densidad, se puede considerar
que los trazos de sus caracteres son continuos.

MTODOS DE IMPRESIN

1.4 Capacidad de impresin


Solo texto: la mayora de impresoras de margarita y
de bola pueden imprimir solamente textos, aunque
tambin existen impresoras matriciales y lser que
imprimen solamente caracteres.
Texto y grcos: pueden reproducir solamente caracteres previamente grabados, en relieve o en forma de mapa de caracteres interno. Las impresoras
de textos y grcos, reproducen todo tipo de imgenes dibujndolas como patrones de puntos:
matriciales,
de inyeccin tinta,
lser.

1.2

Mtodo de transmisin

Esta clasicacin se reere al medio utilizado para enviar


los datos a la impresora:
Paralelo: transmisin byte a byte.
Serie: transmisin bit a bit.
Muchas versiones de impresoras estaban disponibles en
paralelo y en serie, e incluso incorporaban ambas opciones, aumentando la exibilidad para instalarlas. Actualmente, la tendencia es a favor de las impresoras en serie,
a travs del estndar USB.

1.3

1.5 Velocidad de impresin y calidad del


impreso
Los distintos tipos de impresoras se diferencian en la velocidad de impresin y en la calidad del producto impreso.
Las impresoras de caracteres, como las matriciales, imprimen en un rango de velocidad entre 200 y 400 caracteres por segundo (cps), que supone de 90 a 180 lneas por
minuto (lpm). Las impresoras de lnea presentan un amplio rango de velocidades, desde 400 a 2000 lneas por
minuto. La velocidad de las impresoras de pgina oscila
entre 4 y 800 pginas por minuto (ppm) para impresiones en blanco y negro, y la dcima parte para la impresin
en color.

Mtodo de impresin

En entornos de ocinas en el que se empleen formularios


en papel continuo o de varias hojas de papel continuo, la
Carcter a carcter: las impresoras de caracteres impresora ms adecuada es la de matriz de puntos, pero si se requiere mayor calidad de impresin se utilizar
son las impresoras:
impresora lser. Las impresoras de inyeccin de tinta son
las preferidas para entornos domsticos, por precio ase matriciales,
quible.
de inyeccin de tinta,
trmicas,
de margarita.
Lnea a lnea: se utilizan frecuentemente en grandes instalaciones (p. e.: centros de clculo, entornos
industriales). Las impresoras de lneas se subdividen
en impresoras:
de cinta,
de cadena,
de tambor.

2 Mtodos de impresin
La eleccin del motor de comprensin que tiene un efecto
substancial en los trabajos a los que una impresora est
destinada. Hay diferentes tecnologas que tienen diferentes niveles de calidad de imagen, velocidad de impresin,
coste, ruido y adems, algunas tecnologas son inapropiadas para ciertos tipos de medios fsicos (como papel
carbn o transparencias).

Otro aspecto de la tecnologa de impresin que es frecuentemente olvidado es la resistencia a la alteracin: tin Pgina a pgina: entre las impresoras de pginas ta lquida como de una cabeza de inyeccin de tinta son
se encuentran las electrofotogrcas, como las im- absorbidos por las bras del papel, y por eso los documenpresoras lser.
tos impresos con tinta lquida son ms difciles de alterar

2.2

Inyeccin de tinta

2.2 Inyeccin de tinta


Las impresoras de inyeccin de tinta (Ink Jet) rocan hacia
el medio cantidades muy pequeas de tinta, usualmente
unos picolitros. Para aplicaciones de color incluyendo impresin de fotos, los mtodos de chorro de tinta son los
dominantes, ya que las impresoras de alta calidad son poco costosas de producir. Virtualmente todas las impresoras de inyeccin son dispositivos en color; algunas, conocidas como impresoras fotogrcas, incluyen pigmentos
extra para una mejor reproduccin de la gama de colores
necesaria para la impresin de fotografas de alta calidad
(y son adicionalmente capaces de imprimir en papel fotogrco, en contraposicin al papel normal de ocina).
Impresora.

Las impresoras de inyeccin de tinta consisten en inyectores que producen burbujas muy pequeas de tinta que
se convierten en pequesimas gotitas de tinta. Los puntos formados son el tamao de los pequeos pixeles. Las
que los que estn impresos por tner o tinta slida, que impresoras de inyeccin pueden imprimir textos y grno penetran por debajo de la supercie del papel.
cos de alta calidad de manera casi silenciosa.
Existen dos mtodos para inyectar la tinta:

2.1

Tner

Las impresoras de lser e impresoras trmicas utilizan


este mtodo para adherir tner al medio. Trabajan utilizando el principio de Xerografa que est funcionando en
la mayora de las fotocopiadoras: adhiriendo tner a un
tambor de impresin sensible a la luz, y utilizando electricidad esttica para transferir el tner al medio de impresin al cual se une gracias al calor y la presin.
Las impresoras lser son conocidas por su impresin de
alta calidad, buena velocidad de impresin y su bajo costo
por copia; son las impresoras ms comunes para muchas
de las aplicaciones de ocina de propsito general. Son
menos utilizadas por el consumidor generalmente debido
a su alto coste inicial. Las impresoras lser estn disponibles tanto en color como en monocromo.
El advenimiento de lseres de precisin a precio razonable ha hecho a la impresora monocromtica basada en
tner dominante en aplicaciones para la ocina. Otro tipo de impresora basada en tner es la impresora led la
cual utiliza una coleccin de ledes en lugar de lser para
causar la adhesin del tner al tambor de impresin. El
tner (del ingls, toner), tambin denominado tinta seca
por analoga funcional con la tinta, es un polvo no, normalmente de color negro, que se deposita en el papel que
se pretende imprimir por medio de atraccin electrosttica.
Una vez adherido el pigmento, este se ja en el papel
por medio de presin o calor adecuados. Debido a que
en el proceso no intervienen diluyentes, originalmente se
ha denominado Xerografa, del griego xeros que signica
seco.

1. Mtodo trmico. Un impulso elctrico produce un


aumento de temperatura (aprox. 480 C durante microsegundos) que hace hervir una pequea cantidad
de tinta dentro de una cmara formando una burbuja de vapor que fuerza su salida por los inyectores.
Al salir al exterior, este vapor se condensa y forma
una minscula gota de tinta sobre el papel. Despus,
el vaco resultante arrastra nueva tinta hacia la cmara. Este mtodo tiene el inconveniente de limitar
en gran medida la vida de los inyectores, es por eso
que estos inyectores se encuentran en los cartuchos
de tinta.
2. Mtodo piezoelctrico. Cada inyector est formado
por un elemento piezoelctrico que, al recibir un impulso elctrico, cambia de forma aumentando bruscamente la presin en el interior del cabezal provocando la inyeccin de una partcula de tinta. Su ciclo
de inyeccin es ms rpido que el trmico.
Las impresoras de inyeccin tienen un coste inicial mucho menor que las impresoras lser, pero tienen un coste
por copia mucho mayor, ya que la tinta necesita ser repuesta frecuentemente. Las impresoras de inyeccin son
tambin ms lentas que las impresoras lser, adems de
tener la desventaja de dejar secar las pginas antes de poder ser manipuladas agresivamente; la manipulacin prematura puede causar que la tinta (que est adherida a la
pgina en forma lquida) se mueva.

2.3 Tinta slida


Las impresoras de tinta slida, tambin llamadas de cambio de fase, son un tipo de impresora de transferencia termal pero utiliza barras slidas de tinta en color CMYK

MTODOS DE IMPRESIN

(similar en consistencia a la cera de las velas). La tinta se


derrite y alimenta una cabeza de impresin operada por
un cristal piezoelctrico (por ejemplo cuarzo). La cabeza
distribuye la tinta en un tambor engrasado. El papel entonces pasa sobre el tambor al tiempo que la imagen se
transere al papel.
Son comnmente utilizadas como impresoras en color en
las ocinas, ya que son excelentes imprimiendo transparencias y otros medios no porosos, y pueden conseguir
grandes resultados. Los costes de adquisicin y utilizacin son similares a las impresoras lser.
Las desventajas de esta tecnologa son el alto consumo
energtico y los largos periodos de espera (calentamiento) de la mquina. Tambin hay algunos usuarios que se
quejan de que la escritura es difcil sobre las impresiones
de tinta slida (la cera tiende a repeler la tinta de los bolgrafos), y son difciles de alimentar de papel automticamente, aunque estos rasgos han sido signicantemente
reducidos en los ltimos modelos. Adems, este tipo de
impresora solo se puede obtener de un nico fabricante,
Xerox, como parte de su lnea de impresoras de ocina
Xerox Phaser. Previamente las impresoras de tinta slida
fueron fabricadas por Tektronix, pero vendi su divisin
de impresin a Xerox en el ao 2000.

2.4

Bolas de impresin.

2. Impresora de rueda, llamada as por tener todos los


tipos contenidos en una esfera. Es el caso de las
mquinas de escribir elctricas IBM Selectric.

Las impresoras de impacto trabajan con un cabezal en el


que hay agujas, estas agujas golpean una cinta, similar al
de una mquina de escribir, que genera la impresin de la
letra.

Impacto
2.4.1 Matriz de puntos
En el sentido general, muchas impresoras se basan en una
matriz de muchos pxeles o puntos que, juntos, forman
la imagen ms grande. Sin embargo, el trmino matriz o
de puntos se usa especcamente para las impresoras de
impacto que utilizan una matriz de pequeos alleres para
crear puntos precisos. Dichas impresoras son conocidas
como matriciales. La ventaja de la matriz de puntos sobre
otras impresoras de impacto es que estas pueden producir
imgenes grcas adems de texto. Sin embargo, el texto
es generalmente de calidad ms pobre que las impresoras
basadas en impacto de tipos.
Algunas sub-clasicaciones de impresoras de matriz de
puntos son las impresoras de alambre balstico y las
impresoras de energa almacenada.

Margarita de impresin.

Las impresoras de impacto o impresoras de golpe se basan en la fuerza de impacto para transferir tinta al medio,
de forma similar a las mquinas de escribir, estn generalmente limitadas a reproducir texto. En su momento dominaron la impresin de calidad. Hay dos tipos principales:

Las impresoras de matriz de puntos pueden estar basadas bien en caracteres o bien en lneas, rerindose a la
conguracin de la cabeza de impresin.

Las impresoras de matriz de puntos son todava de uso


comn para aplicaciones de bajo costo y baja calidad como las cajas registradoras. El hecho de que usen el mtodo de impresin de impacto les permite ser usadas para la impresin de documentos autocopiativos como los
recibos de tarjetas de crdito, donde otros mtodos de
1. Impresora de margarita, llamada as por tener los ti- impresin no pueden utilizar este tipo de papel. Las impos contenidos radialmente en una rueda, de ah su presoras de matriz de puntos han sido superadas para el
aspecto de una margarita.
uso general en computacin.

2.5

Sublimacin de tinta

Las impresoras de sublimacin de tinta emplean un proceso de impresin que utiliza calor para transferir tinta
a medios como tarjetas de plstico, papel o lienzos. El
proceso consiste usualmente en poner un color cada vez
utilizando una cinta que tiene paneles de color. Estas impresoras estn principalmente pensadas para aplicaciones
de color de alta calidad, incluyendo fotografa en color, y
son menos recomendables para texto. Primeramente utilizadas en las copisteras, cada vez ms se estn dirigiendo a los consumidores de impresoras fotogrcas.

2.6

Trmica

Se elev hasta la conexin mediante puerto paralelo en


la que las transferencias eran byte a byte permitiendo 8
conexiones paralelas consiguiendo una velocidad ms rpida entre los MB/segundo hasta los 4 MB/segundo.
El inconveniente era la limitacin de la distancia del cable que une la impresora con el computador ya que no
permite una longitud mayor de 2 metros.
Otra forma de conexin se consigui poniendo la impresora en red Ethernet mediante conexiones RJ-45 basadas
en el estndar IEEE 802.3. Las velocidades conseguidas
superan los 10 Mb/segundo basada en el manejo de paquetes. No hay que confundirla con una impresora compartida, ya que las impresoras en red operan como un elemento de red con direccin IP propia.

Otro mtodo de conexin ms actual es por medio de


Las impresoras trmicas se basan en una serie de agujas puertos USB (Universal Serial Bus). La velocidad vuelve
calientes que recorren el papel termosensible que al con- a mejorar con 480Mb/segundo con las ventajas que contacto se vuelve de color negro. Por su bajo coste, son muy lleva el puerto USB: compatibilidad con varios sistemas
y la posibilidad de usarla en dispositivos porttiles.
usadas en los cajeros automticos y supermercados.
Finalmente, la conexin inalmbrica Wi-Fi, mediante el
protocolo IEEE 802.11, est siendo la ms novedosa. Alcanza 300 Mb/segundo y funciona tanto para impresoras
3 Memoria de las impresoras
de tinta, lser o multifuncin.
Aunque consigue menos velocidad que las conectadas por
Las impresoras llevan consigo memoria interna. Van desUSB, las wi proporcionan ventajas tales como la autonode los 6KB en las impresoras matriciales hasta como mma, la movilidad y libertad del usuario sin la utilizacin
nimo 2MB en las impresoras lser.
de cables. Para la correcta utilizacin y evitar accesos no
Actualmente en las lser venden mdulos de memoria in- deseados deberemos cifrar la red.
dependientes para ampliar la capacidad de la misma.
La memoria se usa como bfer y como almacenamiento
permanente y semipermanente. Adems su uso es necesario porque el tratamiento de grcos vectoriales y el
diseo de fuentes en mapa de bits consumen memoria.

5 Lenguajes de descripcin de pgina y formatos de impresin

El bfer es utilizado para mantener trabajos de impre- Un lenguaje de descripcin de pgina (PDL) es un mesin activos y la permanencia se utiliza para almacenar el dio de codicar cada elemento de un documento para podiseo de las fuentes y los datos.
der as transmitirlo a la impresora para que esta lo impriHay que tener en cuenta que para tratar la impresin de un ma. Es el medio que dene las caractersticas y compodocumento la pgina tiene que estar enteramente almace- sicin que describiran un documento impreso dentro de
nada en memoria. El rendimiento de la memoria depende un ujo de datos. Hay varios tipos de PDL:
tanto del sistema operativo como de la conguracin del
controlador de impresora.
PostScript
Por ejemplo, la gestin de impresin vara si estamos en
Printer Command Language (PCL), lenguaje de
un sistema operativo DOS u otro multiplataforma.
control de impresora
HPGL, para plteres

Conexin de impresora

La conexin de la impresora con el computador ha ido


evolucionando conllevando a la mejora de rendimiento de
impresin y comodidad de usuario.
La forma ms antigua de conexin era mediante puerto
serie en donde la transferencia se haca bit a bit, permita
distancias largas con velocidades lentas que no superaban
los 19.200 bytes/segundo.

6 Formatos de denicin de caracteres: Truetype


Fue creado por Apple para no depender tecnolgicamente de los tipos PostScript de Adobe, pero su calidad result ser inferior. Fue comprada por Microsoft lo cual ha
contribuido a que no llegara a desaparecer. La principal

10 CARTUCHOS, TINTA Y PAPEL

fortaleza de TrueType es que ofrece a los diseadores de Otros fabricantes, en reaccin a los desafos que trae este
fuentes un gran grado de control sobre la forma que sus modelo comercial, apuntan a obtener mayores benecios
fuentes se muestran a diferentes tamaos.
de las impresoras y menos de los cartuchos de tinta, proEl problema con la mayora de los programas es que moviendo los menores precios de los cartuchos a travs
no usan normalmente el truetype. En general cargan las de campaas de publicidad. Esto genera dos propuestas
fuentes en estilo Postscript y se descartan todas las in- bien diferentes: impresora barata - tinta cara o impresinuaciones, esto es una gran perdida para fuentes con sora cara - tinta barata. Finalmente, la decisin del conde inters de referencia o su
alta calidad. Aparte del diseo de la fuente, hay que te- sumidor depende de su tasa
preferencia intertemporal.[2][3]
ner en cuenta otras dos claves para la calidad de fuente:
el perl del carcter y la insinuacin. Solo algunas fundiciones actualmente producen fuentes que exploten al
mximo el potencial de insinuacin de truetype. Ahora 10 Cartuchos, tinta y papel
hay aplicaciones que convierten un Type 1 de Postscript
en un truetype, pero son los manuscritos mejores que los Tanto los cartuchos, como la tinta y el papel son 3 elemengenerados automticamente.
tos imprescindibles para poder realizar copias con una

Trazador de imagen

Los plteres sirven para hacer impresiones de dibujo de


planos de arquitectura, ingeniera, diseo industrial, etc.,
para la impresin de lminas, psteres, ampliaciones fotogrcas, gigantografas, carteles en rutas, va pblica,
sealizacin, etc. Existen dos clases de ploter segn el
uso de sus tintas, a base de agua o solventes. Un caso particular es el plter de corte, que corta un medio adhesivo
que luego se jar a otra supercie, desde camisetas a
carroceras.

Impresoras de color o de fotos

Existen dispositivos como celulares, que se utilizan en casas de revelado fotogrco o en el hogar. Estos dispositivos suelen ser conocidos como impresora fotogrca,
impresora con calidad fotogrca o bases de impresin
fotogrca. Estos dispositivos imprimen en color, produciendo imgenes que imitan el rango de colores y resoluciones de los mtodos de revelado fotogrco previos a
esta tecnologa.

impresora, y el saber escoger el elemento ms adecuado


en funcin del tipo de impresin que se pretende realizar puede aumentar el rendimiento de nuestra impresora
hasta lmites insospechados.

10.1 Cartuchos
En el caso de las impresoras lser, la vida til del cartucho
depende de la cantidad de tner que contenga y cuando
el tner se agota, el cartucho debe ser reemplazado. En el
caso de que el cartucho y el OPC (rgano sensible fotoconductivo) se encuentren en compartimentos separados,
cuando se agota el tner solo se reemplaza el cartucho,
pero en el caso de que el OPC est dentro del cartucho
se deben cambiar ambos, aumentando considerablemente el gasto. La situacin es ms crtica en el caso de las
impresoras lser en color.
En las impresoras de chorros de tinta la vida til del cartucho depende de la duracin de la tinta, aunque muchos
cartuchos se pueden rellenar de nuevo lo que ayuda a reducir el gasto de comprar uno nuevo aunque el uso excesivo de un cartucho puede provocar que realice sus impresiones con menor calidad.

10.2 Tinta

El negocio de las impresoras

A menudo se utiliza el modelo comercial de las maquinillas y las cuchillas de afeitar en el negocio de las impresoras. Las compaas pueden vender una impresora
por debajo de su coste, y obtener benecios de los cartuchos de tinta, papel u otras partes que se reemplazan.
Esto ha causado disputas legales respecto al derecho de
otras compaas distintas al fabricante de la impresora
de vender cartuchos de tinta compatibles o alternativos.
Para proteger al modelo comercial de las maquinillas y
las cuchillas de afeitar muchos fabricantes invierten considerables sumas en desarrollo de nuevas tecnologas y
sus patentes.

Existen dos tipos de tinta para impresoras:


1. Tinta penetrante de secado lento: se utiliza principalmente para impresoras monocromticas.
2. Tinta de secado rpido: se usa en impresoras en color, ya que en estas impresoras, se mezclan tintas de
distintos colores y estas se tienen que secar rpidamente para evitar la distorsin.
El objetivo de todo fabricante de tintas para impresoras
es que sus tintas puedan imprimir sobre cualquier medio
y para ello desarrollan casi diariamente nuevos tipos de
tinta con composiciones qumicas diferentes.

10.3

Papel

Actualmente, cuando se quiere hacer una copia de alta


calidad en una impresora se ha de usar papel satinado de
alta calidad. Este papel resulta bastante caro y en el caso
de querer hacer muchas copias en calidad fotogrca su
coste sera muy alto. Por ello, los fabricantes desarrollan
nuevas impresoras que permitan obtener impresiones de
alta calidad sobre papel comn.
Algunos fabricantes, como por ejemplo Epson, fabrican
su propio papel.

Impresora trmica (papel sensible al calor)


Impresora trmica de cera (Xerox/Tektronix)
Impresora trmica sobre papel metalizado (Sinclair ZX Printer, concebida para los Sinclair ZX80,
Sinclair ZX81 y Sinclair ZX Spectrum)
Microsphere (papel especial)
Fotocopiadora multifuncin

13 Vase tambin
11
11.1

Posibles problemas de impresin


Problemas con el papel

Si no se tiene cuidado a la hora de seleccionar el tipo de


papel adecuado para la impresora o en el momento de
colocar el papel pueden aparecer pequeos problemas.
Puede que la mala colocacin del papel de lugar a que
la impresora no detecte el papel, para lo que bastar con
volver a colocarlo bien. Esta mala colocacin o una mala
eleccin del papel tambin puede dar lugar a que durante
la impresin se produzca un atasco debido a que la impresora ha tomado varias hojas a la vez, por lo que se debe
ser cuidadoso a la hora de situar el papel en la bandeja y
no se debe sobrecargar con mucho papel esta bandeja.

11.2

Problemas de tinta

En ocasiones al imprimir documentos o fotografas pueden aparecer bandas horizontales que hacen empeorar la
calidad de la impresin. Aunque este problema puede estar ocasionalmente relacionado con una mala eleccin del
papel de impresin generalmente se debe a problemas de
tinta en impresiones de inyeccin de tinta. Una causa posible es la conguracin de calidad de la impresin, puesto que el documento puede requerir una conguracin de
mayor calidad de la impresora. Otras posibles causas pueden ser que la tinta del cartucho se est agotando o que
los cabezales estn sucios.

12

Otras impresoras

Algunas otras clases de impresoras son importantes por


razones histricas o para usos especiales, entre ellas estn
las siguientes:
Impresoras de sublimacin de tinta, usadas a veces
para impresiones de alta calidad en color o fotogrcas.
Teletipo

Controlador de impresora
Impresin a doble cara
Impresora braille
Impresora de impacto
Impresora de inyeccin
Impresora de lnea
Impresora de margarita
Impresora de sublimacin
Impresora lser
Impresora matricial
Impresora trmica
Internet Printing Protocol
Tcnicas de impresin

14 Referencias
[1] Microsoft Corporation, ed. (8 de abril de 2008).
Impresora (html). Enciclopedia Microsoft Encarta Online 2007. Consultado el 24 de agosto de 2015.
[2] Qu debemos tener en cuenta para comprar una impresora
[3] Costo por hoja versus costo de la impresora en impresoras
disponibles en el momento

15 Enlaces externos

Wikimedia Commons alberga contenido multimedia sobre Impresora. Commons

Como funciona una impresora de tinta.


Como se recarga un cartucho de impresora.
Impresora lser o de tinta.

16 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

16
16.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Impresora Fuente: https://es.wikipedia.org/wiki/Impresora?oldid=92897775 Colaboradores: Macar~eswiki, PACO, Pino, Joseaperez,


Moriel, Josmanbernal, JorgeGG, Robbot, Riviera, Paz.ar, Dodo, Triku, Sms, SimnK, Tostadora, Tano4595, Daniel G., Enric Naval,
Barbol, Ivan.Romero, Loco085, FAR, LeonardoRob0t, MarhaultElsdragon, Boticario, Soulreaper, Hari Seldon, Natrix, Taichi, Emijrp,
Rembiapo pohyiete (bot), Pacolope, Alpertron, RobotQuistnix, Platonides, Veltys, Alhen, Superzerocool, Chobot, Caiserbot, Gerkijel, Yrbot, Amads, Baito, BOT-Superzerocool, Oscar ., Vitamine, BOTijo, YurikBot, Mortadelo2005, Museo8bits, GermanX, KnightRider,
The Photographer, No s qu nick poner, Eskimbot, Baneld, Kepler Oort, Mogutaro7, Maldoror, Er Komandante, Cheveri, Chlewbot,
Tomatejc, Siabef, Javicivil, The worst user, Paintman, Tamorlan, BOTpolicia, Aljullu, CEM-bot, Gabriel Acquistapace, Alexav8, Salvador
alc, Eli22, Rastrojo, Antur, Montgomery, Thijs!bot, PhJ, Isha, Egaida, Bernard, Vmars, JAnDbot, Jugones55, Mandrake33, DerHexer, Yorusti, Mansoncc, Muro de Aguas, Gaius iulius caesar, Xavigivax, CommonsDelinker, TXiKiBoT, Xosema, NaBUru38, Elisardojm, Humberto, Netito777, Rei-bot, Nioger, Plux, Snakefang, Manuel Trujillo Berges, Culebras50, AlnoktaBOT, Cinevoro, Technopat, Galandil,
Queninosta, Freddy Blanco, BurritoTaquitoFUNK, Matdrodes, BlackBeast, Lucien leGrey, Muro Bot, Edmenb, Dinopmi, BotMultichill,
SieBot, Loveless, Obelix83, A. B. 10, Drinibot, BOTarate, Marcelo, Furado, Greek, SultanICQ, BuenaGente, Aleposta, Belb, Mafores,
PipepBot, Chico512, DorganBot, Tirithel, XalD, Marcecoro, Nicop, DragonBot, Eduardosalg, Leonpolanco, Alecs.bot, Petruss, Poco a
poco, Alexbot, Darkicebot, JetDriver, A1458, Aipni-Lovrij, Osado, Ravave, Camilo, UA31, Shalbat, Xizetto, AVBOT, Miik Ezdanitof,
David0811, MastiBot, Angel GN, Ialad, Diegusjaimes, Bethan 182, Arjuno3, Saloca, HyperS, Andreasmperu, Luckas-bot, Roinpa, Oscarinmen, Sergiouy, Cazadorgxalex, CHUPAS PITO, Gabycc, Sensibilitt Sensibilit, Alex Muoz1, Daniela Alonso, Nixn, ArthurBot,
Rodelar, SuperBraulio13, Ortisa, Xqbot, Jkbw, Dan6hell66, Ferbrunnen, Ricardogpn, Igna, Botarel, Leopiccioli, BOTirithel, Hprmedina,
Stela riera2, Abece, Born2bgratis, PatruBOT, Tigereyes8, KamikazeBot, Dinamik-bot, Fran89, TjBot, Olivares86, Tarawa1943, Icyn, Siwel, Nachosan, Edslov, EmausBot, Savh, AVIADOR, HRoestBot, Sergio Andres Segovia, Rubpe19, Jcaraballo, Slowhead, MadriCR, Waka
Waka, WikitanvirBot, Camimenca, Cordwainer, Abin, MerlIwBot, JABO, KLBot2, TeleMania, Sebrev, 5truenos, Gusama Romero, Vintagesweets, Vetranio, Terraonline, Santga, Helmy oved, Rauletemunoz, Lemilio775, MaKiNeoH, Lautaro 97, Seroto, Addbot, Cintiqcha,
Mario Cabrera Lobo, Eglis06, Stee 16, Eduardo Pimienta Ochoa, Giovanni Alfredo Garciliano Diaz, Sara mahonie, Jarould, Arial 474,
Bruno Rene Vargas, Crystallizedcarbon, BenjaBot, Fernando2812l, Ks-M9, Elratata, Rockbottom1001 y Annimos: 558

16.2

Imgenes

Archivo:Canon_S520_ink_jet_printer.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/3a/Canon_S520_ink_jet_


printer.jpg Licencia: CC BY-SA 2.5 Colaboradores: Trabajo propio Artista original: Andr Karwath aka Aka
Archivo:Commons-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licencia: Public domain Colaboradores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used
to be slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
Archivo:Daisywheel_1.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/30/Daisywheel_1.jpg Licencia: CC-BY-SA-3.0
Colaboradores: Transferido desde nl.wikipedia a Commons. Artista original: Richardw de Wikipedia en neerlands
Archivo:IBM_Selectric_Globe_Wiki.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/9/92/IBM_Selectric_Globe_Wiki.
jpg Licencia: Public domain Colaboradores: Trabajo propio Artista original: de:hd
Archivo:Impresoras-tipos.png Fuente: https://upload.wikimedia.org/wikipedia/commons/a/a5/Impresoras-tipos.png Licencia: CC BYSA 4.0 Colaboradores: http://www.rotutech.com/ Artista original: JoseLuisMM2

16.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Memoria ash
La memoria ash derivada de la memoria
EEPROM permite la lectura y escritura de mltiples posiciones de memoria en la misma operacin.
Gracias a ello, la tecnologa ash, siempre mediante
impulsos elctricos, permite velocidades de funcionamiento muy superiores frente a la tecnologa EEPROM
primigenia, que slo permita actuar sobre una nica
celda de memoria en cada operacin de programacin.
Se trata de la tecnologa empleada en los dispositivos
denominados memoria USB.

vinculada con el avance del resto de las tecnologas a las


que presta sus servicios como routers, mdems, BIOS
de las PC, wireless, etctera. En 1984, fue Fujio Masuoka quien invent este tipo de memoria como evolucin de las EEPROM existentes por aquel entonces.[1]
Intel intent atribuirse la creacin de esta sin xito, aunque s comercializ la primera memoria ash de uso
comn.[cita requerida]
Entre los aos 1994 y 1998, se desarrollaron los principales tipos de memoria conocidas, como la SmartMedia o la
CompactFlash. La tecnologa pronto plante aplicaciones
en otros campos. En 1998, la compaa Rio comercializ
el primer reproductor de audio digital sin piezas mviles
aprovechando el modo de funcionamiento de la memoria
ash. Este producto inaugurara una nueva clase de reproductores que causaran una revolucin en la industria
musical llevando al escndalo Napster, el lanzamiento del
iPod y el eventual reemplazo de los reproductores de cinta y CD.
En 1994, SanDisk comenz a comercializar tarjetas de
memoria (CompactFlash) basadas en estos circuitos, y
desde entonces la evolucin ha llegado a pequeos dispositivos de mano de la electrnica de consumo como reproductores de MP3 porttiles, tarjetas de memoria para
videoconsolas y telfonos mviles, capacidad de almacenamiento para las PC Card que permiten conectar a redes
inalmbricas y un largo etctera, incluso llegando a la aeronutica espacial.

Una memoria USB: el chip de la izquierda es la memoria ash;


el controlador est a la derecha.

Historia
2 Generalidades
Econmicamente hablando, el precio en el mercado cumple la ley de Moore aumentando su capacidad y disminuyendo el precio.
Algunas de sus ventajas son una gran resistencia a los golpes, gran velocidad, bajo consumo de energa y un funcionamiento silencioso, ya que no contiene actuadores mecnicos ni partes mviles. Su pequeo tamao tambin
es un factor determinante a la hora de escoger para un
dispositivo porttil, as como su ligereza y versatilidad
para todos los usos hacia los que est orientado. En vista
de ello, comienzan a popularizarse las unidades SSD que
usan memoria ash en lugar de platos.

Sin embargo, todos los tipos de memoria ash slo permiten un nmero limitado de escrituras y borrados, generalmente entre 10.000 y un milln, dependiendo de la
La historia de la memoria ash siempre ha estado muy celda, de la precisin del proceso de fabricacin y del volDispositivos de almacenamiento comunes, utilizados para transportar datos de la computdora.

3 ACCESO A BAJO NIVEL


Tambin son comunes en los telfonos mviles y tabletas para ampliar la capacidad de almacenamiento.
Existen varios estndares de encapsulados promocionados y fabricados por la mayora de las multinacionales
dedicadas a la produccin de hardware. Los ms comunes
hoy en da son Secure Digital, Compact Flash y Memory
Stick.

3 Acceso a bajo nivel


Flash, como tipo de EEPROM que es, contiene una
matriz de celdas con un transistor evolucionado con dos
puertas en cada interseccin. Tradicionalmente slo almacenan un bit de informacin. Las nuevas memorias
ash, llamadas tambin dispositivos de celdas multi-nivel,
Tarjeta inteligente, tarjeta microSD y tres diferentes memorias
pueden almacenar ms de un bit por celda variando el nUSB.
mero de electrones que almacenan.
Estas memorias estn basadas en el transistor FAMOS
taje necesario para su borrado. Adems su relacin cos(Floating Gate Avalanche-Injection Metal Oxide Semiconto capacidad es menos favorable respecto a otros medios
ductor) que es, esencialmente, un transistor NMOS con
como los discos pticos y los discos duros.
un conductor (basado en un xido metlico) adicional loEste tipo de memoria est fabricado con puertas lgicas calizado o entre la puerta de control (CG Control Gate)
NOR y NAND para almacenar los 0s 1s correspondien- y los terminales fuente/drenador contenidos en otra puertes. Actualmente (08-08-2005) hay una gran divisin en- ta (FG Floating Gate) o alrededor de la FG conteniendo
tre los fabricantes de un tipo u otro, especialmente a la los electrones que almacenan la informacin.
hora de elegir un sistema de cheros para estas memorias. Sin embargo se comienzan a desarrollar memorias
3.1 Memoria ash de tipo NOR
basadas en ORNAND.
Los sistemas de cheros para estas memorias estn en
pleno desarrollo aunque ya en funcionamiento como por
ejemplo JFFS originalmente para NOR, evolucionado a
JFFS2 para soportar adems NAND o YAFFS, ya en su
segunda versin, para NAND. Sin embargo, en la prctica se emplea un sistema de cheros FAT por compatibilidad, sobre todo en las unidades de memoria extrable.
Otra caracterstica ha sido la resistencia trmica de algunos encapsulados de tarjetas de memoria orientadas a
las cmaras digitales de gama alta. Esto permite funcionar en condiciones extremas de temperatura como desiertos o glaciares ya que el rango de temperaturas soportado
abarca desde los 25 C hasta los 85 C.

Bit Line

Word
Line 0

Word
Line 1

N, GND

Word
Line 2

Word
Line 3

N, GND

Word
Line 4

Word
Line 5

N, GND

Las aplicaciones ms habituales son:


Cableado y estructura en silicio de la memoria ash NOR.

El llavero USB que, adems del almacenamiento,


puede incluir otros servicios como, lector de huella digital, radio FM, grabacin de voz y, sobre todo
como reproductores porttiles de MP3 y otros formatos de audio.

En las memorias ash de tipo NOR, cuando los electrones


se encuentran en FG (Floating Gate), modican (prcticamente anulan) el campo elctrico que generara CG
(control Gate) en caso de estar activo. De esta forma, dependiendo de si la celda est a 1 a 0, el campo elctrico
de la celda existe o no. Entonces, cuando se lee la cel Las PC Card (descontinuado).
da poniendo un determinado voltaje en CG, la corriente
Las tarjetas de memoria ash que son usadas para elctrica uye o no en funcin del voltaje almacenado en
almacenar fotos y videos en las cmaras digitales. la celda. La presencia/ausencia de corriente se detecta e

3.3

Comparacin de memorias ash tipo NOR y NAND

interpreta como un 1 un 0, reproduciendo as el dato


almacenado. En los dispositivos de celda multi-nivel, se
detecta la intensidad de la corriente para controlar el nmero de electrones almacenados en FG e interpretarlos
adecuadamente.

cuencial (ms orientado a dispositivos de almacenamiento masivo), frente a las memorias ash basadas en NOR
que permiten lectura de acceso aleatorio. Sin embargo,
han sido las NAND las que han permitido la expansin
de este tipo de memoria, ya que el mecanismo de borrado es ms sencillo (aunque tambin se borre por bloques)
lo que ha proporcionado una base ms rentable para la
creacin de dispositivos de tipo tarjeta de memoria. Las
populares memorias USB o tambin llamadas Pendrives,
utilizan memorias ash de tipo NAND.

Para programar una celda de tipo NOR (asignar un valor determinado) se permite el paso de la corriente desde el terminal fuente al terminal sumidero, entonces se
coloca en CG un voltaje alto para absorber los electrones y retenerlos en el campo elctrico que genera. Este
proceso se llama hot-electrn injection. Para borrar (poner a 1, el estado natural del transistor) el contenido de
una celda, expulsar estos electrones, se emplea la tcnica
de Fowler-Nordheim tunnelling, un proceso de tunelado
mecnico cuntico. Esto es, aplicar un voltaje inverso bastante alto al empleado para atraer a los electrones,
convirtiendo al transistor en una pistola de electrones que
permite, abriendo el terminal sumidero, que los electrones abandonen el mismo. Este proceso es el que provoca
el deterioro de las celdas, al aplicar sobre un conductor
tan delgado un voltaje tan alto.
Es necesario destacar que las memorias ash estn subdivididas en bloques (en ocasiones llamados sectores) y por
lo tanto, para el borrado, se limpian bloques enteros para
agilizar el proceso, ya que es la parte ms lenta del proceso. Por esta razn, las memorias ash son mucho ms
rpidas que las EEPROM convencionales, ya que borran
byte a byte. No obstante, para reescribir un dato es necesario limpiar el bloque primero para despus reescribir
su contenido.

3.2

Memoria ash de tipo NAND

Word
Line 0

Word
Line 1

Word
Line 2

Word
Line 3

Word
Line 4

Word
Line 5

Word
Line 6

Bit Line
Select
Transistor

Word
Line 7

Para comparar estos tipos de memoria se consideran los


diferentes aspectos de las memorias tradicionalmente valorados.
La densidad de almacenamiento de los chips es actualmente bastante mayor en las memorias NAND.
El costo de NOR es mucho mayor.
El acceso NOR es aleatorio para lectura y orientado
a bloques para su modicacin.
En la escritura de NOR podemos llegar a modicar
un solo bit. Esto destaca con la limitada reprogramacin de las NAND que deben modicar bloques
o palabras completas.
La velocidad de lectura es muy superior en NOR
(50-100 ns) frente a NAND (10 s de la bsqueda
de la pgina + 50 ns por byte).

Bit Line
Ground
Select
Transistor

3.3 Comparacin de memorias ash tipo


NOR y NAND

La velocidad de escritura para NOR es de 5 s por


byte frente a 200 s por pgina en NAND.
La velocidad de borrado para NOR es de 1ms por
bloque de 64 KB frente a los 2ms por bloque de 16
KB en NAND.

Cableado y estructura en silicio de la memoria ash NAND.

Las memorias ash basadas en puertas lgicas NAND


funcionan de forma ligeramente diferente: usan un tnel de inyeccin para la escritura y para el borrado un
tnel de soltado. Las memorias basadas en NAND tienen, adems de la evidente base en otro tipo de puertas,
un costo bastante inferior, unas diez veces de ms resistencia a las operaciones pero slo permiten acceso se-

La abilidad de los dispositivos basados en NOR es


realmente muy alta, es relativamente inmune a la corrupcin de datos y tampoco tiene bloques errneos
frente a la escasa abilidad de los sistemas NAND
que requieren correccin de datos y existe la posibilidad de que queden bloques marcados como errneos e inservibles.
En resumen, los sistemas basados en NAND son ms baratos pero carecen de una abilidad que los haga ecientes, lo que demuestra la necesidad imperiosa de un buen
sistema de cheros. Dependiendo de qu sea lo que se
busque, merecer la pena decantarse por uno u otro tipo.

5 ANTECEDENTES DE LA MEMORIA FLASH

3.4

Estandarizacin

sistemas tambin diere sensiblemente y por lo tanto es


otro factor a tener en cuenta. Se deber disear estos sisEl grupo Open NAND Flash Interface (ONFI) ha desarro- temas en funcin de la orientacin que se le quiera dar al
llado una interfaz estandarizada a bajo nivel para chips de sistema.
memoria NAND. Esto permite la interoperabilidad entre
Los dos sistemas de cheros que se disputan el liderazdispositivos NAND de diferentes fabricantes. El ONFI
go para la organizacin interna de las memorias ash son
versin 1.0[2] fue lanzado el 28 de diciembre de 2006.
JFFS (Journaling Flash File System) y YAFFS (Yet AnotEstablece:
her Flash File System), ExFAT (tabla extendida de asignacin de cheros) es la opcin de Microsoft.
Una interfaz fsica estndar (pinout) para memorias
NAND.
Un set de comandos estndar para leer, escribir y
borrar chips NAND.

5 Antecedentes de la memoria ash

Las memorias han evolucionado mucho desde los co Un mecanismo para auto-identicacin (compara- mienzos del mundo de la computacin. Conviene recorble a la funcin de deteccin de presencia de mdu- dar los tipos de memorias de semiconductores empleadas
los de memoria SDRAM)
como memoria principal y unas ligeras pinceladas sobre
cada una de ellas para enmarcar las memorias ash dentro
El grupo ONFI es apoyado por la mayora de los fabrican- de su contexto.
tes de memorias ash NAND, incluyendo Hynix, Intel,
Organizando estos tipos de memoria conviene destacar
Micron Technology y Numonyxen) , as como por los printres categoras si las clasicamos en funcin de las opecipales fabricantes de dispositivos que incorporan chips
raciones que podemos realizar sobre ellas, es decir, me[3]
de memoria ash NAND.
morias de slo lectura, memorias de sobre todo lectura y
Un grupo de proveedores (incluyendo Intel, Dell, y memorias de lectura/escritura.
Microsoft) formaron el grupo de trabajo NVM Express
(Non-Volatile Memory Host Controller Interface). El ob Memorias de slo lectura.
jetivo del grupo es proporcionar software estndar e in ROM (Read Only Memory): se usan principalterfaces de programacin hardware para los subsistemas
mente en microprogramacin de sistemas. Los
de memoria no voltil, incluido el dispositivo ash cafabricantes las suelen emplear cuando produch", conectado al bus PCI Express.
cen componentes de forma masiva.

Sistemas de cheros ash

Disear un sistema de cheros eciente para las memorias ash se ha convertido en una carrera vertiginosa y
compleja, porque aunque ambos son tipos de memoria
ash (NOR y NAND), tienen caractersticas muy diferentes entre s a la hora de acceder a esos datos. Esto es
porque un sistema de cheros que trabaje con memorias
de tipo NOR incorpora varios mecanismos innecesarios
para NAND y, a su vez, NAND requiere mecanismos adicionales, innecesarios para gestionar la memoria de tipo
NOR.
Un ejemplo podra ser un recolector de basura. Esta
herramienta est condicionada por el rendimiento de las
funciones de borrado que, en el caso de NOR es muy lento y, adems, un recolector de basura NOR requiere una
complejidad relativa bastante alta y limita las opciones de
diseo del sistema de cheros. Comparndolo con los sistemas NAND, que borran mucho ms rpidamente, estas
limitaciones no tienen sentido.
Otra de las grandes diferencias entre estos sistemas es el
uso de bloques errneos que pueden existir en NAND pero no tienen sentido en los sistemas NOR que garantizan
la integridad. El tamao que deben manejar unos y otros

PROM (Programmable Read Only Memory):


el proceso de escritura es electrnico. Se puede grabar posteriormente a la fabricacin del
chip, a diferencia de las anteriores que se graba durante la fabricacin. Permite una nica
grabacin y es ms cara que la ROM.
Memorias de sobre todo lectura.
EPROM (Erasable Programmable Read Only
Memory): se puede escribir varias veces de forma elctrica, sin embargo, el borrado de los
contenidos es completo y a travs de la exposicin a rayos ultravioletas (de esto que suelen
tener una pequea ventanita en el chip).
EEPROM (Electrically Erasable Programmable Read Only Memory): se puede borrar selectivamente byte a byte con corriente elctrica.
Es ms cara que la EPROM.
Memoria ash: est basada en las memorias
EEPROM pero permite el borrado bloque a
bloque y es ms barata y densa.
Memorias de Lectura/Escritura (RAM).
DRAM (Dynamic Random Access Memory):
los datos se almacenan como en la carga de

5
un condensador. Tiende a descargarse y, por
lo tanto, es necesario un proceso de refresco
peridico. Son ms simples y baratas que las
SRAM.
SRAM (Static Random Access Memory): los
datos se almacenan formando biestables, por
lo que no requiere refresco. Igual que DRAM
es voltil. Son ms rpidas que las DRAM y
ms caras.

Tarjetero ash

Un tarjetero ash o lector de tarjetas de memoria es un


perifrico que lee o escribe en memoria ash. Actualmente, los instalados en computadoras (incluidos en una placa o mediante puerto USB), marcos digitales, lectores de
DVD y otros dispositivos, suelen leer varios tipos de tarjetas.

Futuro

en el mundo de las memorias ash en tan poco tiempo.


Sin duda se estn invirtiendo muchos esfuerzos de todo
tipo en este punto.
Sin embargo, la memoria ash se seguir especializando fuertemente, aprovechando las caractersticas de cada
tipo de memoria para funciones concretas. Supongamos
una Arquitectura Harvard para un pequeo dispositivo
como un PDA; la memoria de instrucciones estara compuesta por una memoria de tipo ORNAND (empleando
la tecnologa MirrorBit de segunda generacin) dedicada
a los programas del sistema, esto ofrecera velocidades
sostenidas de hasta 150 MB/s de lectura en modo rfaga segn la compaa con un costo energtico nmo y
que implementa una seguridad por hardware realmente
avanzada; para la memoria de datos podramos emplear
sistemas basados en puertas NAND de alta capacidad a
un precio realmente asequible. Slo quedara reducir el
consumo de los potentes procesadores para PC actuales
y dispondramos de un sistema de muy reducidas dimensiones con unas prestaciones que hoy en da sera la envidia de la mayora de las computadoras de sobremesa. Y
no queda mucho tiempo hasta que estos sistemas tomen,
con un esfuerzo redoblado, las calles.

Cualquier dispositivo con datos crticos emplear las tecnologas basadas en NOR u ORNAND si tenemos en
cuenta que un fallo puede hacer inservible un terminal
de telefona mvil o un sistema mdico por llegar a un
caso extremo. Sin embargo, la electrnica de consumo
personal seguir apostando por las memorias basadas en
NAND por su inmensamente reducido costo y gran capacidad, como los reproductores porttiles de MP3 o ya,
incluso, reproductores de DVD porttiles. La reduccin
del voltaje empleado (actualmente en 1,8 V la ms reducida), adems de un menor consumo, permitir alargar la
vida til de estos dispositivos sensiblemente. Con todo,
los nuevos retos sern los problemas que sufren hoy en
El desarrollo de las memorias ash es, en comparacin da los procesadores por su miniaturizacin y altas frecon otros tipos de memoria sorprendentemente rpido cuencias de reloj de los microprocesadores.
tanto en capacidad como en velocidad y prestaciones. Sin
Los sistemas de cheros para memorias ash, con proyecembargo, los estndares de comunicacin de estas memotos disponibles mediante CVS (Concurrent Version Sysrias, de especial forma en la comunicacin con los PC es
tem) y cdigo abierto permiten un desarrollo realmente
notablemente inferior, lo que puede retrasar los avances
rpido, como es el caso de YAFFS2, que, incluso, ha conconseguidos.
seguido varios patrocinadores y hay empresas realmente
La apuesta de gigantes de la informtica de consumo, interesadas en un proyecto de esta envergadura.
como AMD y Fujitsu, en formar nuevas empresas deLa integracin con sistemas inalmbricos permitir unas
dicadas exclusivamente a este tipo de memorias, como
condiciones propicias para una mayor integracin y ubiSpansion(en) en julio de 2003, auguran fuertes inversiones
cuidad de los dispositivos digitales, convirtiendo el munen investigacin, desarrollo e innovacin en un mercado
do que nos rodea en el sueo de muchos desde la dcada
que en 2005 segua creciendo y que registr en 2004 un
de 1980. Pero no slo eso, la Agencia Espacial Brasilea,
crecimiento asombroso hasta los 15.000 millones de dpor citar una agencia espacial, ya se ha interesado ociallares (despus de haber superado la burbuja tecnolgica
mente en este tipo de memorias para integrarla en sus
del llamado boom punto com) segn el analista de la
diseos; la NASA ya lo hizo y demostr en Marte su funindustria Gartner, que avala todas estas ideas.
cionamiento en el Spirit (rover de la NASA, gemelo de
Es curioso que esta nueva empresa, concretamente, est Opportunity), donde se almacenaban incorrectamente las
dando la vuelta a la tortilla respecto a las velocidades con rdenes como bien se puede recordar. Esto slo es el prinuna tcnica tan sencilla en la forma como compleja en el cipio. Y ms cerca de lo que creemos. Intel asegura que
fondo de combinar los dos tipos de tecnologas reinantes
El futuro del mundo de la memoria ash es bastante alentador, ya que se tiende a la ubicuidad de las computadoras
y electrodomsticos inteligentes e integrados y, por ello,
la demanda de memorias pequeas, baratas y exibles seguir en alza hasta que aparezcan nuevos sistemas que lo
superen tanto en caractersticas como en costo. En apariencia, esto no pareca muy factible ni siquiera a medio
plazo ya que la miniaturizacin y densidad de las memorias ash estaba todava lejos de alcanzar niveles preocupantes desde el punto de vista fsico. Pero con la aparicin
del memristor el futuro de las memorias ash comienza a
opacarse.

el 90% de los PC, cerca del 90% de los mviles, el 50%


de los mdems, etc., en 1997 ya contaban con este tipo
de memorias.

7.1

Memoria ash como sustituto del disco


duro

En la actualidad TDK est fabricando discos duros con


memorias ash NAND de 320 Gb o ms con un tamao
similar al de un disco duro de 2 pulgadas, similares a los
discos duros de los porttiles con una velocidad de 33,3
Mb/s. El problema de este disco duro es que, al contrario de los discos duros convencionales, tiene un nmero
limitado de accesos. Samsung tambin ha desarrollado
memorias NAND de hasta 32 Gb.
Apple present el 20 de octubre de 2010 una nueva versin de la computadora porttil MacBook Air en el evento
denominado De vuelta al Mac (Back to the Mac), en su
sede general de Cupertino, en California (Estados Unidos). Una de las caractersticas ms resaltantes de este
nuevo equipo es que no tiene disco duro, sino una memoria ash, lo que la hace una mquina ms rpida y ligera.
Segn David Cuen, un especialista consultado por la BBC
Mundo, la memoria ash es una apuesta interesante pero
arriesgada. La pregunta es: est el mercado preparado
para deshacerse de los discos duros? Apple parece pensar
que s.[4]
La expansin de la memoria ash es prcticamente innita. El 7 de enero de 2013, Kingston lanz una memoria
ash (DataTraveler HyperX Predator 3.0) con una capacidad mxima de 1 TB.[5]

7.2

Memoria ash como RAM

A partir de 2012, hay intentos de utilizar la memoria ash


como memoria principal de la computadora, DRAM. De
momento es ms lenta que la DRAM convencional, pero
utiliza hasta diez veces menos energa, y tambin es signicativamente ms barata.[6] La fuente muestra una foto
del dispositivo que se parece a una tarjeta PCI-Express,
soportada por el driver correspondiente.
De manera similar el sistema operativo Windows desde
Windows Vista ofrece la prestacin ReadyBoost para usar
las memorias USB y tarjetas de memoria como cach para
ayudar a la computadora a ser ms rpida.

Cuidados
Cambiar o recargar las bateras del dispositivo cuando estn descargadas o bajas de carga: la descarga de
las bateras es una de las causas frecuentes de daos
y prdida de datos en las tarjetas de memoria. Si la
batera se acaba mientras el dispositivo est guar-

CUIDADOS

dando algo en la tarjeta no slo podra daarse el


archivo sino toda la tarjeta.
Extraer correctamente la tarjeta del dispositivo: es
importante que el dispositivo haya terminado de usar
la tarjeta antes de extraerla. Si se extrae mientras
est en uso, se podra daar la tarjeta, provocando la
prdida de informacin.
Almacenar correctamente las tarjetas en sus estuches plsticos: a pesar de ser conables, las tarjetas
de memoria pueden sufrir daos al caer sobre supercies duras. Guarde las tarjetas en sus estuches
cuando no las use.
Electricidad esttica: la mayora de las tarjetas de
hoy son fabricadas para tolerar la electricidad esttica, pero las descargas fuertes pueden causarles
daos.
Formato: formatear las tarjetas en un formato que
el dispositivo pueda manejar (usualmente: FAT para
tarjetas de hasta 2 GB; FAT 32 para tarjetas de 4 a
32 GB; exFAT para capacidades mayores). En caso
de dudas, revisar el manual del fabricante. Nunca
retirar la tarjeta durante el proceso de formateo.
Evitar el agua: muchas tarjetas son razonablemente
resistentes al agua. Por seguridad, guardar las tarjetas sobrantes (y el dispositivo tambin) en una bolsa
plstica al estar cerca del agua. Y si alguna tarjeta se
moja, asegurarse que est completamente seca antes
de usarla. Los interiores de los dispositivos no son
resistentes al agua.
Rayos X: hasta ahora nadie ha podido conrmar de
que los rayos X de los aeropuertos daen las tarjetas
de memoria, pero por si acaso, no llevar las tarjetas
con usted al viajar.
Servicio postal: no enviar las tarjetas por el servicio postal, puesto que las revisiones con radiacin
podran daarlas. En vez de eso usar un servicio de
mensajera o paquetera privados.
Al introducir la tarjeta, no forzarla: las tarjetas estn
hechas para encajar slo de una forma. Si se introduce de forma equivocada y se la fuerza, se podran
daar las tarjetas o las ranuras de los dispositivos.
Para saber cmo insertarlas, revisar el manual del
dispositivo.
Calor: a diferencia de los discos CD, DVD y BD, las
tarjetas son resistentes al calor. Tratar de no dejarlas en un auto estacionado bajo el sol, pero sino posiblemente sigan bien. Si las necesidades lo exigen,
considerar las tarjetas reforzadas para condiciones
extremas.
Realizar copias de seguridad: las tarjetas no son perfectas y pueden fallar por los problemas mostrados
anteriormente. Hacer copias de seguridad en medios

7
diferentes y hasta guardar la informacin en disco
duro externo o grabarla en discos DVD o BD para guardarla a largo plazo. No guarde informacin
importante nicamente en las tarjetas de memoria.

Referencias

Spansion Flash Memory Product Information


FLASH memory cell
Turning Digital Memories into Home Entertainment OnDVD Now Bundled with All Delkin
Reader/Writers
Samsung innova en el mercado de Semiconductores

[1] Fulford, Benjamin (24 de junio de 2002), Unsung hero,


consultado el 21 de septiembre de 2015

Sandisk introduce Extreme III, memorias ash de


alta velocidad

[2] Open NAND Flash Interface Specication (PDF). 28 de


diciembre de 2006. Archivado desde el original el 22 de
noviembre de 2015. Consultado el 31 de julio de 2010.

Intel StrataFlashTM Memory Technology Overview

[3] Lista de los


membership/.

miembros

ONFI

http://onfi.org/

[4] Capacidad de los MacBook Air,


[5] Kingston, presentacin de la primera memoria de 1 TB.
[6] Douglas Perry (2012) Princeton: Replacing RAM with
Flash Can Save Massive Power.

10

Vase tambin

Lector de tarjetas de memoria


Memoria EPROM
Memoria reprogramable
Memoria USB
Puerta lgica
USB mass storage device class

11

Enlaces externos

Memoria ash Intel 65nm NOR para equipos mviles


Herramienta para recuperacin de datos de MEMORIAS FLASH
Los sistemas basados en memoria ash o esttica revolucionan la capacidad de los almacenamientos de
los equipos electrnicos porttiles
How Flash Memory Works
Memoria ash, la nueva forma de llevar tus documentos
JFFS: The Journalling Flash File System
Agencia Espacial Brasilea: Un diseo que incluye
el uso de Memoria ash
Aleph One: YAFFS

Introducing YAFFS, the rst NAND-specic ash


le system
Monografas.com: EPROMs
Nueva memoria ash para telfonos mviles
pchardware.org: La memoria FLASH
Nuevo formato de tarjeta de memoria para mviles

12 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

12
12.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Memoria ash Fuente: https://es.wikipedia.org/wiki/Memoria_flash?oldid=91766487 Colaboradores: Zeno Gantner, Mac, Joseaperez,


Moriel, Bluenote, Vcarceler, Javier Carro, Rosarino, Dodo, Sms, Tano4595, Ramjar, Barbol, Fmariluis, Boticario, Airunp, JMPerez, Edub,
Yrithinnd, Rembiapo pohyiete (bot), Guanxito, RobotQuistnix, Superzerocool, Yrbot, Baito, Sixstone, FlaBot, BOTijo, YurikBot, Jorpcolombia, Sidd, GermanX, Willtron, Lobillo, Gaijin, KnightRider, Eloy, Pablox, Baneld, Maldoror, Er Komandante, Chlewbot, Tomatejc,
Siabef, BOTpolicia, CEM-bot, Laura Fiorucci, Repulse~eswiki, Retama, Danzaltharhell, Rosarinagazo, Juanfran GG, Thijs!bot, Neomode, Fernandopcg, Mahadeva, RoyFocker, ANELKAOS, Dogor, Felipe Canales, JAnDbot, Muro de Aguas, Xavigivax, Elrond 3097~eswiki, TXiKiBoT, Netito777, Rei-bot, Fixertool, Lex Sparrow, Idioma-bot, Plux, Biasoli, Bucephala, AlnoktaBOT, Cinevoro, Technopat,
Josell2, Matdrodes, Synthebot, Muro Bot, Numbo3, YonaBot, BotMultichill, SieBot, DorganBot, Tirithel, Marcecoro, Kuronokoneko,
Thunderbird2, Luciferfran, Farisori, Qwertymith, Botelln, Leonpolanco, Alejandrocaro35, LordT, Poco a poco, Nicolas24H, Alexbot,
TheNava00, Darkicebot, SilvonenBot, Antonio Barau, AVBOT, David0811, Angel GN, FiriBot, Diegusjaimes, Lasusirexula, Arjuno3,
Guanucoluis, Andreasmperu, Luckas-bot, Amirobot, Nallimbot, Yonidebot, Josber, SuperBraulio13, Xqbot, Jkbw, Torrente, AstaBOTh15,
Nasqui3, Panderine!, BOTirithel, TiriBOT, Jcdy, Alvarol13, Yosicogito, PatruBOT, CVBOT, KamikazeBot, Humbefa, Foundling, GrouchoBot, Savh, HRoestBot, Iaki Salazar, Rubpe19, Mecamtico, Ajdelgado, Talkahe, Invadibot, Elvisor, YFdyh-bot, Daniblue21, Rotlink,
Miguel2706, Jobarrera, Ordovas~eswiki, Addbot, Balles2601, XVRT, Jarould, Crystallizedcarbon, BenjaBot, Saul Dubi Gomez y Annimos: 266

12.2

Imgenes

Archivo:Commons-emblem-question_book_yellow.svg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/d/dd/
Commons-emblem-question_book_yellow.svg Licencia: CC BY-SA 3.0 Colaboradores: <a href='//commons.wikimedia.org/wiki/File:
Commons-emblem-query.svg' class='image'><img alt='Commons-emblem-query.svg' src='https://upload.wikimedia.org/wikipedia/
commons/thumb/c/c5/Commons-emblem-query.svg/25px-Commons-emblem-query.svg.png' width='25' height='25' srcset='https:
//upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Commons-emblem-query.svg/38px-Commons-emblem-query.svg.png 1.5x,
https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Commons-emblem-query.svg/50px-Commons-emblem-query.svg.png
2x' data-le-width='48' data-le-height='48' /></a> + <a href='//commons.wikimedia.org/wiki/File:Question_book.svg'
class='image'><img alt='Question book.svg' src='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.
svg/25px-Question_book.svg.png' width='25' height='20' srcset='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/
Question_book.svg/38px-Question_book.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.
svg/50px-Question_book.svg.png 2x' data-le-width='252' data-le-height='199' /></a> Artista original: GNOME icon artists, Linfocito
B
Archivo:JaCarta_collage_01.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f1/JaCarta_collage_01.JPG Licencia:
CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: Kharitonov
Archivo:NOR_flash_layout.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/d/dd/NOR_flash_layout.svg Licencia: CCBY-SA-3.0 Colaboradores: the English language Wikipedia (log) Artista original: Cyferz (talk)
Archivo:Nand_flash_structure.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f5/Nand_flash_structure.svg Licencia:
CC-BY-SA-3.0 Colaboradores: en wikipedia Artista original: Cyferz
Archivo:PersonalStorageDevices.agr.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/8/87/PersonalStorageDevices.agr.
jpg Licencia: CC-BY-SA-3.0 Colaboradores: I took this photograph of artifacts in my possession Artista original: --agr 15:53, 1 Apr 2005
(UTC)
Archivo:USB_flash_drive.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/2/2c/USB_flash_drive.JPG Licencia: CCBY-SA-3.0 Colaboradores: ? Artista original: ?

12.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

21/8/2016

AccesoyOrganizacindeArchivos

5.AccesoyOrganizacindeArchivos
5.1Conceptosgenerales

Cuandohablamosdearchivosloqueestamostratandodehacerposiblees
mantenerlosdatosdeunamanerapersistente.
Demaneraquecuandoundatoseencuentraenmemoriaesposiblealmacenarlo
endiscoydespusconotroprogramaleerloyreconstruirloenmemoria.
Losarchivospuedenestarestructuradosdedistintasformas:
registros(secciones5.25.7)
modelosabstractos(seccin5.8)

5.2ArchivosdeRegistros,mtodosde
almacenamientomanteniendolaidentidaddelos
campos
Launidadbsicadedatoseselcampo(field),elcualcontienesimplementevalor
deldato
Fieldsestnorganizadosengrupos,cuandohablamosdelistasconcampos
similaresnosreferimosaunarreglo(array)ycuandohablamosdelistascon
camposdiferentesestamosrefirindonosaregistros(record)
Entrminosdeprogramacincuandohablamosdeunrecordenmemorianosestamos
refiriendoaunobjeto,elcualtienesusmiembrosoatributossinembargocuandose
almacenaendiscodichoobjetoentonceshablamossimplementedeunregistro.
Nota:cuandoelobjetoseguardacompletamente,incluyendosusmtodosestamos
hablandode"PersistenciadeObjetos"(ObjectSerialization)
Problema:
Deseamosalmacenarlasiguienteinformacinquetenemosenmemoriaendisco

MaryAmes

AlanMason

123Maple

90Eastgate

StillwaterOK74075

AdaOK74820

Siconsideramoselsiguientemtodoparaalmacenardichosdatos,
ostream&operator<<(ostream&outFile,
Person&p)
{//insert(write)fieldsintostream
outputFile<<p.lastName
<<p.FirstName
<<p.Address
<<p.City
http://ict.udlap.mx/people/carlos/is215/ir05.html

1/16

21/8/2016

AccesoyOrganizacindeArchivos

<<p.State
<<p.ZipCode
returnoutputFile
}
losguardaremosenunarchivodemaneraconsecutiva,talcomosefueespecificando,
peroahoratenemosungranproblema.Lainformacinnosepuedesepararpara
distinguirlosdistintoscamposquecomponencadaregistro.

AmesMary123MapleStillwaterOK74075MasonAlan90EastgateAdaOK74820
Solucin:
Existendistintasmanerasdeagregarestructurasdedatosaarchivosymantenerla
identidaddeloscampos:

Forzaraloscamposatenerunalongitudfija
Comenzarcadacampoconunindicadordelalongituddelcampo
Colocarundelimitadoralfinaldecadacampoparasepararlodelsiguiente
Usarunapareja"keyword=value"paraidentificarcadacampoysucontenido
Forzaraloscamposatenerunalongitudfija
Loscampos(nombre,direccin,estado)denuestroejemploanteriortenanlongitudes
variables.
Peronosotrospodemospensarenestablecerunamedidafijaparacadaunodelos
camposenelcasodelejemplodePersoncadacampotieneunalongitudyeltamao
totaldeunregistrosiempreserade67bytes(11+11+16+16+3+10)

classPerson{public:
charlast[11]
charfirst[11]
charaddress[16]
charcity[16]
charstate[3]
charzip[10]
}
Demaneraqueelarchivoquedaradelasiguientemanera(recordarcubrirlosespacios
vacos):

Ames

Mary

123Maple

Stillwater

OK

74075

Mason

Alan

90Eastgate

Ada

OK

74820

Pararecuperarlainformacinsepuedehacermatemticamenteleyendoelnmerode
bytes/charscorrespondientesacadacampo
Desventajas
Elarchivotiendeahacersedemasiadogrande
http://ict.udlap.mx/people/carlos/is215/ir05.html

2/16

21/8/2016

AccesoyOrganizacindeArchivos

Qusucedesialgncampoenunregistronecesitamsespacioqueloacordado
?,necesitamosarreglarlalongituddeesecampoentodoslosregistros,
desperdiciandoespacioytiempo.
Ventaja
Cuandodeantemanosabemosquenuestroscampossiempretendrnlamisma
longitudesunabuenaopcin

Comenzarcadacampoconunindicadordelalongituddelcampo
Secolocaantesdecadacamposulongitud,generalmentesiloscamposnosonmuy
largosestamedidaocuparunsolobyte(256bytesdelongitud)

04Ames04Mary09123Maple10Stillwater02OK0574075
05Mason04Alan1190Eastgate03Ada02OK0574820

Colocarundelimitadoralfinaldecadacampoparasepararlodelsiguiente
Escribiruncaracterespecialentrecadacampodemaneraquesepuedapreservarla
identidad
Ladecisindecualcaracter"especial"utilizaresmuyimportanteyaquenodebe
utilizarseenningunodeloscampos.
Enalgunoscasoslosespaciosenblanco,elsaltodelneaoeltabuladorpuedenseruna
buenaopcin.

Ames|Mary|123Maple|Stillwater|OK|74075
Mason|Alan|90Eastgate|Ada|OK|74820

Usarunapareja"keyword=value"paraidentificarcadacampoysu
contenido

Conocidascomoestructurasdeautodescripcinestamaneradealmacenarla
informacinesmuytilenlaorganizacindearchivos
Puedecombinarseconotroesquemadelosantesmencionados,estoconla
finalidaddemostrarladivisinentrelasparejas
Desventaja:
Eldesperdiciodeespacioendisco,casiun50%.

http://ict.udlap.mx/people/carlos/is215/ir05.html

3/16

21/8/2016

AccesoyOrganizacindeArchivos

last=Ames|first=Mary|address=123Maple|city=Stillwater|state=OK|zip=74075

5.3MtodosdeAlmacenamientomanteniendola
identidaddelosRegistros
Loanterioresmuytileinteresanteperopierdedevistaelconceptooriginalque
tenamosde"registro",enelejemplocadaregistroestacompuestopor6campos.
Unregistroesunconjuntodecamposquepermanecenjuntoscuandoelarchivoes
vistoentrminosdeorganizacindealtonivel.
Entrminosdeprogramacinloquesebuscaespoderleer"registros"dearchivos
comountodo(bufferenmemoria)parapodersepararcadaunodesuscampos.
Mtodosparaorganizarregistrosenarchivos

Requerirquelosregistrostenganunalongitudfija(bytes)
Requerirquelosregistrostenganunnmerofijodecampos
Comenzarcadaregistroconunindicadordelalongitud(sumadetodoslosbytes
decadacampoenelregistro)
Utilizarunsegundoarchivoparamantenerunabitcoradelbytedeiniciodonde
comienzacadaregistro
Colocarundelimitadoralfinaldecadaregistroparasepararlodelsiguiente
Requerirquelosregistrostenganunalongitudfija(bytes)
Unarchivoderegistrosdelongitudfijaesaquelenelcualtodoslosregistros
contienenelmismonmerodebytes
Lamaneradereconoceralosregistrosesmuysimilaralaformaqueseutilizapara
campos,aritmticamente

Ames

Mary

123Maple

Stillwater

OK74075

Mason

Alan

90Eastgate

Ada

OK74820

Nota:esteespacioquenoesutilizadoperosedebepreservarparamantenerla
longituddeloscampos,aestoseleconocecomo"FragmentacinInterna"
Esnecesariomencionarqueunregistrodelongitudfijapuedetenercamposde
longitudvariable
Porotroladoesimportanteresaltarquesepuedetenerunnmerovariabledecampos,
siempreycuandolasumadesulongitud(registro)sealamisma

Ames|Mary|123Maple|Stillwater|OK|74075<Unusedspace
>
Mason|Alan|90Eastgate|Ada|OK|74820<Unusedspace
>
http://ict.udlap.mx/people/carlos/is215/ir05.html

4/16

21/8/2016

AccesoyOrganizacindeArchivos

Requerirquelosregistrostenganunnmerofijodecampos
Demaneradiferentealmtodoanterior,tambinsepuedetenerunnmerofijode
camposporregistros
Cuandoleemossabremosquedespusdeleerseiscamposempezaremosunnuevo
registro
Loanteriorserealizaatravsdelafuncin"modulo"(%),cualstesea0hablaremos
deunregistronuevo

Ames|Mary|123Maple|Stillwater|OK|74075|Mason|Alan|90Eastgate|Ada|OK|74820

Comenzarcadaregistroconunindicadordelalongitud
(sumadetodoslosbytesdecadacampoenelregistro+separadores)
Estoesdegranutilidadcuandohablamosderegistrosdelongitudvariable
40Ames|Mary|123Maple|Stillwater|OK|74075|36Mason|Alan|90Eastgate|Ada|OK|74820

Utilizarunsegundoarchivoparamantenerunabitcoradelbytedeinicio
dondecomienzacadaregistro
Elusodeunndicenossirveparaconocereldesplazamiento(offset)decadaregistro
enelarchivooriginal
Ames|Mary|123Maple|Stillwater|OK|74075|Mason|Alan|90Eastgate|Ada|OK|74820
0040

Colocarundelimitadoralfinaldecadaregistroparasepararlodelsiguiente
Aligualqueconloscamposelcaracterqueseescojaparasepararlosregistrosdebe
seruncaracterespecialquenoseutilicedentrodelainformacin
Ames|Mary|123Maple|Stillwater|OK|74075|#Mason|Alan|90Eastgate|Ada|OK|74820

5.4AccesoSecuencialyAccesoDirecto
http://ict.udlap.mx/people/carlos/is215/ir05.html

5/16

21/8/2016

AccesoyOrganizacindeArchivos

Existendosmanerasdeaccesarybuscarregistrosdeunaarchivo:
Secuencial
Caractersticas
Consecutivamente
Respetandoelordendeaparicinenelarchivo
ElordendecomplejidadserO(n)locualimplicaqueesdemasiadolento
paragrandesvolmenesdedatos,O(n/2)enpromedio.
Seutilizacuando:
Seestbuscandoenunarchivodetextoalgunpatrn(pattern)
Archivosconpocosregistros
Archivosquenonecesitan"bsquedas"porejemplolosrespaldosencintas
Cuandodeantemanosesabequeserecuperarnmuchosresultados(vale
lapenalaespera)
Existeunatcnicaquepermiteaumentarlavelocidaddeestosaccesosllamada
"Blocking"
Sebasaenleerbloquesderegistrosenlugardeleerunoporuno
Elleerunbloqueesmslentoporquesetraenencadaviajealdiscomsdatos,pero
nuevamentelaseparacinsehaceenmemoriadondelavelocidadesmuchomayory
ahseganatiempo.
Aunqueelrendimientomejoraconsiderablementeenrealidadnoesalgoconsiderable
yaqueelnmerodelascomparacionesparabuscarelpatrnovalorqueserequiere
siguesiendoelmismo.
Directo
Caratersticas
ElordendecomplejidadserO(1)
Sebasaenlasfuncionesdeseek
Paraobtenerunbuenrendimientosedebenhacerlosregistrosdeuna
longitudcuyomltiploseadeltamaodeunsectordeldisco.Sielsectores
de512bytesynuestroregistromide30,lomasadecuadoesquemida32,
yaque32x16=512(16registrosenunviajealdisco)
Seutilizacuando:
Losregistrossondelongitudfija
Tenemosunamaneradesaberenqueposicindelarchivoestunregistro,
ej.campoid=nmerodelregistroenelarchivo

5.5ReutilizandoelespacioenArchivos
Hastaelmomentohemoshabladodeorganizacindearchivos,deagregardatosy
poderdistinguirlosdistintoscamposyregistrosquecomponenlainformacin.
Qusucedesieliminamosunregistro??
Necesitamosrecorrerlosdemsparamantenerconsistenteelarchivo
Estasuenabastantebien,perotieneladesventajadeperdermuchotiempo
enrealizarestaoperacin
Dejarelespacio(hueco)yreutilizarloposteriormente
Elproblemaaquieseldesperdiciodeespacio,perositomamosencuenta
quesereutilizaentoncesnohabrmuchoproblema.
http://ict.udlap.mx/people/carlos/is215/ir05.html

6/16

21/8/2016

AccesoyOrganizacindeArchivos

Demaneraquetenemos3operacionesquemodificanlaorganizacindenuestro
archivo:
AgregarRegistros
ActualizarRegistros
EliminarRegistros
Sielarchivoquesepretendeutilizarsloseutilizaparaguardarinformacin(agregar)
entoncesnohaymayorcomplejidadensumanipulacinsevuelvemsinteresante
cuandohablamosdeactualizacinyeliminacintantoenarchivosderegistrosde
tamaofijo,comoaquellosconregistrosdetamaovariable.
Algoimportantequedebemosrecordaresquesepuedeveralaactualizacincomoun
"borraryagregar"asquenosconcentraremosprimeramenteenlaeliminacinde
registros.

5.5.1EliminacindeRegistrosyCompactacinde
Espacio
Mencionbamosanteriormentequeunasolucinparaelborradoderegistrosconsiste
enrecorrertodoslosdemsregistrosparaevitarquequedenespacios.Aeste
procedimientoseleconocecomo"Compactacindeespacio".
Aunquesudesventajaeseltiemporequeridoparacompactarelarchivoesteesquema
llegaaserelmsadecuadoparaarchivosnomuygrandes.
Porotroladotambindecamosqueotraestrategiadelborradoconsisteenmantener
elhuecodeaquelregistroquehemoseliminado.
Parafinesprcticosloquesehaceescolocarleunamarcaalregistroparaidentificarlo
como"eliminado"estamarcapuedeestarenalgncampodelregistroodesignar
algncampoenespecficoparaestefin.

Ames|Mary|123Maple|Stillwater|OK|74075<Unusedspace
>
*|son|Alan|90Eastgate|Ada|OK|74820<Unusedspace
>
Brown|Martha|625Kimbark|DesMoines|IA|50311<Unusedspace
>
Nota:unadelasventajasdeesteesquemaesquesepuedenrecuperarlosregistros
eliminados(ej,utilizandouncampoespecialparaindicarsielregistroestactivoono)
Yaquepodemosidentificaraquellosregistrosquesehaneliminadoahoralapregunta
es:
Cmosereutilizaelespacio??

Compactandoelarchivoperidicamente
(Yaseaatravsdeunacalendarizacinobiencuandosealcancecierto
lmitede"huecos")
Tcnicasdereclamacindeespacio
http://ict.udlap.mx/people/carlos/is215/ir05.html

7/16

21/8/2016

AccesoyOrganizacindeArchivos

5.5.2Reclamacindeespacio
Antecedente:
Existenaplicacionesdondelareutilizacindeespacioescrtica,ysedebedehacerlo
antesposible.
Recordarlosdostiposdearchivos:conregistrosdelongitudfijaylosdelongitud
variable
Losprimerossonmssencillosyaquepodemosaprovecharelespacioagregando
simplementeotroregistroenelhueco.
Parapoderreclamarelespaciodisponiblesenecesita:
Indentificaraquellosregistrosquesehaneliminado(ej,conunamarcaespecial)
Poderencontraresosregistrosrpidamentesintenerquerecorrertodoelarchivo,
sinohayhuecosseinsertaralfinal
Unamaneradesaberinmediatamentesihayhuecosenelarchivo
Unaformadesaltardirectamenteaunodeloshuecosexistentes.
Latareadesabersiexistenhuecosydndeseencuentrannoestareafcil
Laprimerideaquesenosvienealamenteesusaruna"listaligada"(linkedlist)donde
colocamoslosnmerosdelosregistrosquesevaneliminando.
Estaideaesbastantebuena,perounamejoraesveralalistacomouna"pila"(stack)
dondevamoscolocando"arriba"aquellosregistrosquesevaneliminando,estofacilita
elmanejodelalistadeespaciodisponible.

header libre4 libre3 libre2 libre1>


>
>
>
>
null
Stackconlasreferenciasdelosregistrosdisponibles

Unalimitantedenuestroprogramaquemanipulaarchivosesquealiniciartendramos
queleertodoelarchivo,verificarcualessonloshuecosycrearlapila
Peroestoafortunadamentenoesas,lapilaseencuentra"inmersa"enelarchivocomo
semuestraacontinuacin(registrosdelongitudfija):

Headdelapila:5
http://ict.udlap.mx/people/carlos/is215/ir05.html

8/16

21/8/2016

AccesoyOrganizacindeArchivos

Edwards

Bates

Wills

*1

Masters

*3

Chavez

Eliminamoselregistro1
Headdelapila:1
0

Edwards

*5

Wills

*1

Masters

*3

Chavez

Agregamos3registrosnuevos
Headdelapila:1
0

Edwards

NUEVO_1

Wills

NUEVO_3

Masters

NUEVO_2

Chavez

Notas:
Enelejemploestamosusandocomoreferenciaelnmerodelregistro,peroenla
prcticaloqueseutilizaeseloffsetparadesplazarnosenelarchivo.
Elheadsepuedealmacenarenotroarchivoobienenel"header"delmismoarchivo
(seccin5.8)
Loanterioresunmecanismobastantetilperorecordemosqueserefierearegistros
delongitudfija,dondelosregistroseliminadosylosnuevossondelmismotamaoen
elcasoderegistrosdelongitudvariablelosespacioslibresylosnuevosregistros
puedenonoserdelmismotamao.
Pararegistrosdelongitudvariablesenecesita:
Unamaneradeconoceraquellosregistrosquehansidoeliminados
Unalgoritmoquepermitaagregarlosregistroseliminadosaunalistade
disponibles
Unalgoritmoparaencontraryrecuperarregistrosdelalistadedisponiblespara
reutilizarlos
Losmsfcil:
Tenerunalista(nocomopila)similaralaqueusamospararegistrosdelongitud
fijasoloqueincluyendolalongituddecadaregistro
Cuandosedeseaagregarunnuevoregistroserecorrelalistabuscandoaquel
huecocuyotamaosea>=aldelregistroquesepretendealmacenar.
Size=47
>

Size=38
>

Size=72
>

Size=68
>null

Reutilizandoelregistrodetamao72
Size=47
>

Size=38
>

Size=68
>null

Listadedisponiblespararegistrosdelongitudvariable
Headdelalista:5

http://ict.udlap.mx/people/carlos/is215/ir05.html

9/16

21/8/2016

AccesoyOrganizacindeArchivos

Edwards

*1,Size=68

Wills

*1,Size=72

Masters

*3,Size=38

Chavez

Eliminandoelregistro6
Headdelalista:6
0

Edwards

*1,Size=68

Wills

*1,Size=72

Masters

*3,Size=38

*5,Size=47

Insertandounregistronuevode50bytes
Headdelalista:6
0

Edwards

*1,Size=68

Wills

NUEVO

Masters

*1,Size=38

*5,Size=47

Notas:
Enelejemploestamosusandocomoreferenciaelnmerodelregistro,peroenla
prcticaloqueseutilizaeseloffsetparadesplazarnosenelarchivo.
Elheadsepuedealmacenarenotroarchivoobienenel"header"delmismoarchivo
(seccin5.8)

Estasolucinesmuycomnybastanteutilizada,perotieneunaligeramejora:
Siqueremosalmacenarunregistrode50bytesyelprimerespaciodondese
puedeguardaresde120bytesestamosdesperdiciando70bytes(dondepodra
almacenarseotroregisto)
Demodoqueuncambioadicionalseriadividireseregistrode120bytesen2
registros,unode50(dondeseagregaraelnuevoregistro)yunhueco
disponiblede70
Elnicoinconvenienteesloqueseconocecomo"FragmentacinExterna"
ejqueelhuecofuerade58bytes,agregamoselnuevode50ydejamosun
huecode8,huecoquejamsseocuparsilosregistrossonmayores

5.6Llaves(Keys)
Hemosmencionadocomosealmacenalainformacinycomoseelimina,peroes
importanteaclararalgunosconceptos.

Cuandobuscamosalgnregistroenparticular,yaseaparaactualizarloo
eliminarlolodebemoshaceratravsdeciertoscampos"claves"o"llaves"que
sirvenparadistinguirdemaneranicaacadaregistro.
Loanteriornoquieredecirqueparahacerbsquedasengeneralestamos
restringidosaesasllaves,podemosbuscarencualquiercampoqueseanecesario
(ej.fechas),peroparaelcasodeactualizaryeliminarlomsconvenientees
teneruncampo(s)nico(s)parapodermovernosrpidamenteenelarchivoal
momentodehacerlascomparaciones(ej.ID).

http://ict.udlap.mx/people/carlos/is215/ir05.html

10/16

21/8/2016

AccesoyOrganizacindeArchivos

Alacombinacindecamposquedistinguenacadaregistrodemaneranicasele
conocecomoPrimaryKeyoLlavePrimaria
Unacaractersticadelasllavesprimariasesquecasinuncacambianensuciclo
devida,Ej,ID,RFC,CURP,Nombre(dependiendodeldominio).
Sepuedenutilizarotroscamposparadiferenciarlosregistros,SecondaryKeyso
LlavesSecundarias

5.7OrdenamientoInternoyBsquedaBinaria
Esnecesariopoderhacerbsquedasderegistrosenlosarchivos,siguiendoalgn
criterioopatrn.
Cuandohacemosunabsquedadealgunregistro,stasehaceprincipalmentea
travsdelasllavesprimarias.
Comosemencionenlaseccin5.4sepuedenrealizarbsquedassecuencialeso
deaccesodirecto.
Lasbsquedassecuencialessondemasiadolentasyaquetienenquerecorrertodoo
casitodoelarchivoancuandoseencuentrealgnresultadopodramossaberde
antemanoqueexistelaposibilidaddeencontrarmsregistrosquecumplanconel
criteriodebsqueda,deahquesedebacontinuarrecorriendotodoelarchivo.
Porotroladolasbsquedasporaccesodirectosonextremadamenterpidas,yaque
podemosiral"offset"deseadodentrodelarchivo,desafortunadamenteestorequiere
unmtodoofrmulaparasaberubicardondeseencuentraunregistroenelarchivo.
DemaneraquesibuscamoselregistrodelapersonaconID35sabremosqueesel
registro35delarchivoysolohabraquemultiplicarloporsulongitud(paraelcasode
registrosdelongitudfija)paraobtenereldesplazamientoquedebemoshacerparaleer
deldiscodichoregistro.
Perodesafortunadamenteeste"mtodo"noesmuyadecuadoentodoslocasosyaque
nohaymuchasmanerasdegarantizarquecadaregistrotendrunaposicinnica.
Ej.Siqueremoshacerbquedasderegistrosquenotienennmerosysolotexto
(nombre,direccin,ciudad),lamaneraderelacionarlosconellugarqueocupanen
discopuedevolversedemasiadocomplicado,aunquesiguesiendounaopcin.

Porotroladocuandosehabladebsquedasenmemoriaprimaria,dondelosaccesos
sonmuchomsrapidos,sehandesarrolladoalgoritmosquegarantizanelencontrar
registrosgilmente.TaleselcasodelaBsquedaBinariacuyotiempodebsquedaes
deO(log2n).
ElalgoritmodeBsquedaBinariasebasaenlametodologa"divideyvencers",de
maneraquedadounarregloderegistros"ordenados"podemosbuscarrpidamente
algunopartiendoelarregloalamitadyviendoenquemitadpodraestardicho
registro,yasuvezesamitadesdivididaen2yassucesivamentehastaencontrarel
registro.
Paraelcasodeunarchivoestealgoritmoseradegranutilidad:
Siporejemplotenemosunarchivode2000registrosyquisiramoshaceruna
bsquedasecuencial,stanostomaraenpromedio:
http://ict.udlap.mx/people/carlos/is215/ir05.html

11/16

21/8/2016

AccesoyOrganizacindeArchivos

Paraunabsquedasecuencial1/2n=1000comparaciones
Paraunabsquedabinaria1+log22000=11comparaciones
Asimplevistalucemuchomsatractivalabsquedabinaria,perohayun"precio"que
pagar,eltenerqueordenarelarchivo.
Nota:recordemosquenoeslomismoordenarunarregloenmemoria,queun
conjuntoderegistrosendisco,losegundoesconsiderablementemslento.

5.7.1Ordenamientodeunarchivoenmemoria.
Comomencionbamoselordenarunarchivoesmuylentoyaqueserequeriran
muchas"pasadas"porlosmismosregistrosvariasvecesparapoderhacerel
ordenamientosinolvidarquetenemos:posicionar,leer,posicionar,escribiryestode
repitemuchasveces.
Unasolucinesloqueseconocecomo"internalsorting"u"ordenamientointerno",el
cualconsisteenleertodoelarchivoenmemoria,secuencialmente,ordenarloenla
memoriaprimariayentoncesvolverabajarloadisco.Estotericamenteesloidealya
queeltiempoquetomahacerloesdemasiadocorto,perodesafortunadamentepara
nuestrofin(bsquedabinaria)tienesusinconvenientes:
a)LaBsquedaBinariarequieremsde1o2accesosparaencontrarenel
archivo
Paraarchivosgrandes,ej1,000registroselpromediodeaccesosesde9.5ypara
unode100,000serade16.
Recordemosquenuestrametacuandohablamosdearchivosestratardeirlo
menosposiblealdisco,asiqueloanteriornoesalentador.
b)Mantenerelarchivoordenadoesdemasiadocaro
Sitenemoselprocesodeagregarnuevosregistrosesdemasiadofrecuente
Podemosmantenerpartedelarchivoypartesinordenar,peroenesapartese
necesitarunbsquedasecuencial.
Algunassoluciones:
Enaplicacionesdondesepuedeacumularlanuevainformacinestaseguardaenun
archivoseparadoyluegoatravsdealgunordenamientotipo"mergesort"se
actualizanlosdatos.
Lassolucionesdebencumplirlossiguientescriterios:
Noinvolucrarelreordenamientodelosregistrosenelarchivocuandounonuevo
esagregado
Debenestarasociadosconestructurasdedatosquepermitanreordenar
eficientementeelarchivo.
Deestosehablarmsadelante
c)ElOrdenamientoInternoslofuncionaparaarchivospequeos

http://ict.udlap.mx/people/carlos/is215/ir05.html

12/16

21/8/2016

AccesoyOrganizacindeArchivos

Sielarchivoesdemasiadograndenotendremoslasuficientememoriarampara
tenertodoelarchivo
Esimportantenotarquecuandolamemoriaramseacabanonosmarcarun
error,seempezarautilizarmemoriavirtual,lacualalestarbasadaendisconos
conducealmismoproblema.

5.7.2Keysorting
Unasolucinparaelordenamientointernoesalgomuysimple,ellugardemantener
todoelregistroenmemorialoquealmacenamosesla"llave"ysuposicinenel
archivo.

Arreglo
KeyPosicin
Itaca

Kellog

Kellog|77|NewYork

Harris

Harris|99|California

Bell

Archivo
PosicinRegistro
1
Itaca|56|Chicago

Bell|32|Denver

Demaneraqueelprocedimientoseraelsiguiente
1)Leercadaregistrosecuencialmenteymantenerenunarregloenmemorialasllaves
dedichosregistros,asicomosuposicindentrodelarchivo
2)Ordenarelarreglo(obviamenteporllave)
3)Recorrerelarreglo:
3.1)Paracadaregistrodelarregloseleedeldiscoelregistroasociado(yaquede
antemanosabemossuposicin)
3.2)Enotroarchivoporseparadosevanguardandolosregistrosledos
4)Alfinaleliminamoselarchivooriginalynosquedamosconelqueyaestordenado.

Arreglo
KeyPosicin
Bell

Harris

Kellog|77|NewYork

Itaca

Harris|99|California

Kellog

Archivo
PosicinRegistro
1
Itaca|56|Chicago

Bell|32|Denver

Ordenarelarreglo

http://ict.udlap.mx/people/carlos/is215/ir05.html

13/16

21/8/2016

AccesoyOrganizacindeArchivos

Arreglo
KeyPosicin
Bell

Harris

Harris|99|California

Itaca

Itaca|56|Chicago

Kellog

LimitacionesdelKeysorting

Archivo
PosicinRegistro
1
Bell|32|Denver

Kellog|77|NewYork

Reordenarelarchivo

Elprocesodelecturadelosregistrosdediscoserealiza2veces
Elnmerode"seeks"delecturaesigualalnmeroderegistros
Loanteriorempeoracuandodespusdecadaseekdelecturahayotrode
escritura,porlocuallaagujadeldiscosetienequedesplazarmuchasveces.
Lasolucin:
Paraquvolveraescribirtodoslosregistros??
Mejornicamenteescribirel"arreglo"queyasetieneenmemoriaadisco
Endichoarchivondice(indexfile)sipodemosrealizarlasbsquedasbinariascomo
sepretenda.

ArchivoIndice(indexfile)
KeyPosicin

Archivo
PosicinRegistro

Bell

Itaca|56|Chicago

Harris

Kellog|77|NewYork

Itaca

Harris|99|California

Kellog

Bell|32|Denver

EsteeselorigendeloqueseconocecomoIndexamiento,queseverenlasiguiente
seccin.

5.8ArchivosquenosebasanenRegistros
Antecedentes
Notodoslosarchivossebasanenregistrosdedatos
Algunosarchivospuedencontenerregistrosperocadaunoconcamposdiferentes
Ejemplomscomunes:

http://ict.udlap.mx/people/carlos/is215/ir05.html

14/16

21/8/2016

AccesoyOrganizacindeArchivos

ArchivosdeImgenes:contieneinformacindeltamaodelaimagen,loscolores
yespecficamentedecadapixel.
ArchivosdeMsica:Contieneinformacindelagrabacin,siesstereo,copyright,
fuente,cantante,ttuloylainformacindelacancin.
AbstractDataModels
Estosarchivosposeenloqueseconocecomo"AbstractDataModels"
Estosmodelosindicanqueelcontenidodeunarchivoestarorientadoala
aplicacinynoalmedio
Enotraspalabras,sonformatosestndardeaplicacionesespecficasquese
empleanentodaslasplataformas.
Cadaunodeestosformatosseidentificaporlaextensindelarchivo,ej.gif,png,
mp3,avi,etc...
Estosmodelosoformatosdefinenlaestructuradelarchivo,demaneraquesetienen:
Headers:
Cuandohablamosderegistros,tenemosqueestncompuestosporcampos.Estos
camposseidentificanporloqueseconocecomo"metadatos"(informacin
acercadelosdatos),enelcasodeloscamposelmetadatoserelnombrede
dichocampo.
Paraelcasodearchivosquenosebasanenregistroselarchivopresentaalinicio
(avecesalfinal)unaseriedebytesquerepresentanlosmetadatosdelarchivo,
esdecir,siporejemploelarchivoesunaimagenaliniciotendremosbytesque
nosdiganellargo,elancho,elnmerodecolores,etc,estosbytesseencuentran
especificadosenel"formato"delarchivo
Offset

Name

Description

magic

magicnumber

width

imagewidthinpixels

height

imageheightinpixels

12

depth

bitsperpixel

16

length

imagesizeinbytes

20

type

encodingtype

24

maptype

typeofcolormap

28

maplength

lenghtofcolormap

SunRasterfileHeader
Contenido:
Lainformacindecadaarchivo
Ejemplodelusodeheaders
DirectoriodeArchivos
Unareferenciadelosformatosmspopulares:http://www.wotsit.org

http://ict.udlap.mx/people/carlos/is215/ir05.html

15/16

21/8/2016

http://ict.udlap.mx/people/carlos/is215/ir05.html

AccesoyOrganizacindeArchivos

16/16

21/8/2016

AdministracindeArchivos

3AdministracindeArchivos

3.1ParticionamientodelDisco
Dividireldiscoenmltiplespedazosdemenortamao,estoconlasiguientefinalidad:
ColocardistintosSistemasOperativosenlasdiferentesparticiones
Protegerinformacindelsistema,odemisincrtica
Tip:partireldiscohacequeelaccesoaestesemejoreconsiderablemente.
Antesdeparticionarundiscohayquetenerencuenta:
Queseaalgosimple
Mantenerjuntoslosdatosrelacionados
Colocarlomsusadoenelcentro(particionesdeenmedio)
SepararSistemasOperativosatravsdelosdiscos(deseable)
Aislardatoscrticos
Existendistintasherramientasparacrearparticionesgeneralmentealmomentodeinstalarunsistema
operativosepuedeparticionarundisco.
Windows:FDISK
DOS/Windows:PartitionMagic,ParagonPartitionManager,PartitionStar
Linux:FDISK,DiskDruid
Solaris:Format
Ej.PartitionMagic

http://ict.udlap.mx/people/carlos/is215/ir03.html

1/16

21/8/2016

AdministracindeArchivos

EjFDISKLinux

[root@pcproaletc]#fdisk/dev/hda
Thenumberofcylindersforthisdiskissetto1222.
Thereisnothingwrongwiththat,butthisislargerthan1024,
andcouldincertainsetupscauseproblemswith:
1)softwarethatrunsatboottime(e.g.,oldversionsofLILO)
2)bootingandpartitioningsoftwarefromotherOSs
(e.g.,DOSFDISK,OS/2FDISK)
Command(mforhelp):m
Commandaction
atoggleabootableflag
beditbsddisklabel
ctogglethedoscompatibilityflag
ddeleteapartition
llistknownpartitiontypes
mprintthismenu
naddanewpartition
ocreateanewemptyDOSpartitiontable
pprintthepartitiontable
qquitwithoutsavingchanges
screateanewemptySundisklabel
tchangeapartition'ssystemid
uchangedisplay/entryunits
vverifythepartitiontable
wwritetabletodiskandexit
xextrafunctionality(expertsonly)
Command(mforhelp):p
Disk/dev/hda:255heads,63sectors,1222cylinders
Units=cylindersof16065*512bytes
DeviceBootStartEndBlocksIdSystem
/dev/hda1*132406683Linux
/dev/hda244130523582Linuxswap
/dev/hda34212229486382+83Linux
Command(mforhelp):

3.2SistemasdeArchivos

Definicin:
Esunaestructuradedatosbasadaendiscooenredqueesutilizadaparaalmacenararchivos.

http://ict.udlap.mx/people/carlos/is215/ir03.html

2/16

21/8/2016

AdministracindeArchivos

EstructurainternadeunSistemadeArchivos

Boot
Block

BlockGroup
0

BlockGroup
BlockGroup
....
1
n

dondecadablockcontiene:

SuperBlock

Group
Descriptors

Block
Bitmap

Inode
Bitmat

SuperBlock
Descripcindelsistemadearchivos,incluyendo:
Nmerodebloquesdedatos
Nmerodegruposdecilindros
Tamaodelosbloquesdedatos
Nombredelpuntodemontaje
Banderadelestadodelsistema:clean,stable,active.logging,unknown.
Inodes:
InformacindeBloqueo
Mododeacceso
Tipodearchivo
Nmerodeligasalarchivo
IDdelusuarioyIDdelgrupo
TamaodelArchivo(bytes)
Tiempodeaccesoymodificacin
Direccindelosbloquesdelarchivoendisco
Ejdeinode
Archivocomn
Inode1282
http://ict.udlap.mx/people/carlos/is215/ir03.html

3/16

21/8/2016

AdministracindeArchivos

DataBlocks
DirectorioComn
Inode4221
DataBlocks
file1=inode1282
dirA=inode5314

Ejdeinodeconligassimblicas
>lnsfile2link1
>lsla
lrwxrwxrwx1carlosempleado5Jan202003link1>file2

link1
Inode3561

file2
Inode1282

Data
Blocks
./file2

Data
Blocks

Ejdeinodeconligasduras
>lnfile1file2
>lsla
rw2carlosempleado0Jan202003file1
rw2carlosempleado0Jan202003file2

file1
file2
Inode1282
Data
Blocks

dir1
Inode4221
Data
Blocks
file1=inode
1282
file2=inode
1282

3.2.1TiposdeSistemasdeArchivos
Existendiferentescriteriosparaagruparlossistemasdearchivos:
Elcriterioinicialserefierealaprincipalcaractersticadelossa:
Orientadosaldisco
Orientadosalared

http://ict.udlap.mx/people/carlos/is215/ir03.html

4/16

21/8/2016

AdministracindeArchivos

OrientadosalDisco
Dentrodelosorientedosadiscotenemossubcategoras
PorsudiseoparaunSistemaOperativo
NativeFilesystems:cuandofuecreadoparaunSOespecfico.Ej.FATenWindows
ForeignFilesystems:sonaquellosquenofueroncreadosparaunSOperosinembargolos
soporta.
Ej.Linuxtienesussistemasdearchivosnativos(ext,ext3,ext3)perosoportaotros,comoel
FAToelNFS
Podemosmencionarquedentrodelossistemasdearchivosnativosexisteunadivisin:
Traditional:
surgenenlos70'sycontinuanhastalos90's
sucaractersticaprincipalesquetienenlanecesidadderealizarunaextensivaverificacin
delsistemadearchivossinosehancerradocorrectamente.
Journaling:
contienenun"journal"o"bitcora"quecontienelalistadeoperacionespendientesque
debenrealizarseparatenerunsistemadearchivosconsistente.
porlogeneralpuedenalcanzarmayorcapacidaddealmacenamiento(Verext2vsext3).

EjemplosdeSistemasdeArchivos
Windows
FAT:

FileAllocationTable
OriginalmenteutilizadoenlascomputadorasdeDOS
Selehanhechoextensiones(VFAT)parasoportarmayorcapacidadyelusodenombres
largos>8.3
ExistendistintostiposdeFAT
FAT12
Usadoenfloppies
FAT16
Particionesde2GB
FAT32
Particionesde2TB
HPFS:
HighPerformanceFilesystem
UsadocuandoMicrosofteIBMeransocios,despuspasasernicamentedelOS/2
NTFS:
NewTechnologyFilesystem
DisponibleenWindowsNTosuperiores
LagrandiferenciaconFAT,lospermisos.
WINFS
BasadoenNTFS
Agregametadatosparaidentificarmejoralosarchivos
Linux
Minix:
UsadoconelsistemaoperativoMinix
Capacidadmximade64Mb
Extended:
Conocidocomoextoextfs
SurgecomounreemplazoparalaslimitacionesdeMinix
DisponibleenlasprimerasversiondeLinuxperoseremovienelkernel2.2.x
SecondExtended:
Conocidocomoext2oext2fs
FueelestndarenLinuxparaloskernelentre2.0.xy2.4.x(2001)
http://ict.udlap.mx/people/carlos/is215/ir03.html

5/16

21/8/2016

AdministracindeArchivos

Xia:

Mximotamaodelfilesystem=16Terabytes
Mximotamaodearchivo=4Gb
LimitadoporelVirtualFilesystem(VFS)a4TBdefsy2GBdearchivo

ExtensindeMinix
Surgealmismotiempoqueext2,peroalsermenosestableseviosuperado
ThirdExtended:
Conocidocomoext3oext3fs
Esunaextensinalext2,seleagregunjournal
Noexistelalimitantedearchivosde4Gb
Disponibledesdeelkernel2.4.x
ReiserFS:
Esundiseototalmentenuevo,incluyendojournaling
Concapacidadessimilaresaext2
Anexperimental
XFS:
JournalingfilesystemcreadoporSilliconGraphics(SGI)
Tamaomximodelfilesystem=16,384PB(1petabyte=1024Terabytes)
Tamaomximodearchivo=8,192PB
JFS:
IBMJournalingFilesystem,diseadoparaelSistemaOperativoAIX
Tamaomximodelfilesystem=32PB
Tamaomximodearchivo=4PB
Algunosbenchmarksdefilesystemsparalinux(fuenteoriginalenLinuxGazzette)
Apple
MFS:

HFS:

HFS+

Elvis

MacintoshFilesystem
Usadoparalosprimerosfloppies
Noutilizadoactualmente
HierarchicalFilesystem
ReemplazodeMFS,floppiesde800kb
Dejdeutilzarseen1998paradiscosduros
Sesigueempleandoparaalgunosdispositivosej.CD's
Caractersticassimilaresalossistemasdearchivosenunix
PoseelacapacidaddeJournaling
Noseutiilizaenmediosremovibles(CD's)
OriginalmenteunproductodeBeOS
Poseeunjournal
Setemeunadisminucindelrendimiento

SUN
ZFS:

128bits
Virtualization

Miscelnea
FFS/UFS:
FastFilesystemtambinconocidocomoUnixFilesystem)
EmpleadosenFreeBSDySolaris
BFS:
BeOSfilesystem
UDF:
UniversalDiskFormat
Derecientecreacin
PensadoparaCDyDVD
http://ict.udlap.mx/people/carlos/is215/ir03.html

6/16

21/8/2016

AdministracindeArchivos

Veritas
Creadoporlaempresadelmismonombre
Journalingdealtavelocidad
Grancapacidadderecuperacinendesastres
CDROM
ISO9660
LabaseyelestndarparaarchivosenCD
Limitadoenlalongituddelnombredearchivos
Carenciadepermisos
RockRidge
ExtensinaISO9660
Permitenombreslargosypermisos
Joliet
SeutilizaenconjuntoconunsistemaISO9660
DiseadopensandoenlascaractersticasdearchivosenWindows,principalmenteenlos
nombres
OrientadosalaRed
Sonusadosparacompartirarchivos.

NFS

Sun'sNetworkFileSystem
ElmtodomsrecomendadoparacompartirarchivosenambientesUNIX
Soporteparalaarquitecturacliente/servidor
Coda:
SimilaraNFS
SoportaEncriptamiento(seguridad)
Mejorael"caching"
SMB/CIFS:
ServerMessageBlock,renombradoaCoreInternetFilesystem
UtilizadoenlossistemasdeMicrosoftparacompartirarchivos
ElservidordeSMBparasistemasunixesSAMBA
NCP:
NetWareCoreProtocol(NCP)
UtilizadoporNovell

3.2.2CreandoelSistemadearchivos

Windows:
Format
Linux
mkfs[tfsname][options]device[size]
fsnamenombredeltipodesistemadearchivos(alternativamenteusarmkfs.fsname)
options:
crevisaeldiscoporbloquesdaados
vverbose,despliegainformacinadicional
devicedispositivodondesecrearelfilesystem
sizetamaodelaparticin
Solaris
newfs
Ffsname
ivalueNmerodebytesporinode
Pararepararunsistemadearchivos
Unix:
fsck[tfstype]filesys
http://ict.udlap.mx/people/carlos/is215/ir03.html

7/16

21/8/2016

AdministracindeArchivos

3.2.3AccesandoFilesystems
Compartiendolosdirectoriosdeunamquina
Windows
EnWindowsestaactividadesgrficaynorequieremayorconocimiento,peroeloperativoasume
algunascosasyestarestringidoenlacapacidaddeimportar/montarsistemasdearchivosexternos
Paracompartirbastacondarclickderechoenelarchivo/directoriodeseadoyseleccionar"compartir"
Unix
Enunix(aunqueyaexistenambientesgraficos)tradicionalmenteserealizaatravsdearchivos
Linux:/etc/exports

/home/carlos192.168.0.1(rw)
Solaris:/etc/dfs/dfstab

root:scanner:/etc/dfs>moredfstab
#Placeshare(1M)commandshereforautomaticexecution
#onenteringinitstate3.
#
#Issuethecommand'/etc/init.d/nfs.serverstart'toruntheNFS
#daemonprocessesandthesharecommands,afteraddingthevery
#firstentrytothisfile.
#
#share[Ffstype][ooptions][d"<text>"]<pathname>[resource]
#.e.g,
#shareFnfsorw=engineeringd"homedirs"/export/home2

Montando/importandodirectoriosdeotrasmquinas
ConceptosImportantes:
Filesystem:tipodelsistemadearchivosdeldirectorioaimportar
Device(dispositivo):dispositivoodirectorioquesequiereimportar.
ej./dev/hda3,/home/lolo,acadaplic:/home/carlos
MountPoint(puntodemontaje):directoriodondevamosaverlosqueestamosimportando(de
preferenciaqueNOseaelraz)
Windows
Nuevamentelainterfaznosayudapararealizarestaactividad
Existenvariasopcionesparamontarundirectoriodeotramaquina:
1)SilasmquinassonpartedenuestraintranetpodemosiralVecindariooNeighbourhoody
buscarporgrupo,mquinaydirectorios.
http://ict.udlap.mx/people/carlos/is215/ir03.html

8/16

21/8/2016

AdministracindeArchivos

2)Enotrocasopodemosbuscarlamaquinadesdeelexploradordearchivosobienutilizarla
opcin"ConectaraunidaddeRed"enelmende"Herramientas".
Senospedirlarutaopathaimportarasicomoelusuarioypasswordrespectivos
ej:\\192.168.0.23\directorio
username:abcde
password:xxxxxxx
Yopcionalmentepodemosseleccionarsiqueremosimportaresedirectoriocadavezqueentremos
alamquina
Unix(LinuxySolaris)
Existen2tiposdemontajeenunix:lostemporalesylospermanentes
Paramontartemporalmente(solodurantelasesin)seutilizanloscomandosmountyumount
mount[a][tfstype][ooptions]devicedir

a=montatodoloqueesteenlosarchivosfstab(enSolarisexisteelcomandomountall)
fstype=ext2,ext3,ufs,nfs,smbfs,vfat,swap,etc
options(separadasporcomas)=rw,ro,uid=value
device=dispositivofsicoamontar
dir=directoriodondeselocalizarelfilesystem(debeestarcreado)
ej:
mounttiso9660/dev/cdrom/mnt/cdrom
mounttnfswww.linux.com:/directorio/mnt/directorio

umount[a][f][tfstype]mountpoint|device

adesmontatodoloqueestdefinidoen/etc/fstabo/etc/vfstab
fforzaeldesmontaje,ansiestenusoelfilesystem
ej.
umountaf
umount/mnt/cdrom
Paramontarpermanentementetenemosqueconfiguraralgunosarchivos
quepermitanelmontajealarrancarlamquina:

Linux:/etc/fstab

[root@pcproaletc]#morefstab
LABEL=//ext3defaults11
LABEL=/boot/bootext3defaults12
none/dev/ptsdevptsgid=5,mode=62000
none/procprocdefaults00
none/dev/shmtmpfsdefaults00
/dev/hda2swapswapdefaults00
/dev/cdrom/mnt/cdromiso9660noauto,owner,kudzu,ro00
/dev/fd0/mnt/floppyautonoauto,owner,kudzu00
Contenidodecadalnea:
Dispositivoamontar
PuntodeMontaje
Tipodesistemadearchivos
OpcionesdeMontaje
http://ict.udlap.mx/people/carlos/is215/ir03.html

9/16

21/8/2016

AdministracindeArchivos

Dump
fsck
Solaris:/etc/vfstab

root:scanner:/etc>morevfstab
#devicedevicemountFSfsckmountmount
#tomounttofsckpointtypepassatbootoptions
#
#/dev/dsk/c1d0s2/dev/rdsk/c1d0s2/usrufs1yes
fd/dev/fdfdno
/proc/procprocno
/dev/dsk/c0t0d0s1swapno
/dev/dsk/c0t0d0s0/dev/rdsk/c0t0d0s0/ufs1no
/dev/dsk/c0t0d0s3/dev/rdsk/c0t0d0s3/tmpufs2yes
/dev/dsk/c0t0d0s4/dev/rdsk/c0t0d0s4/var/tmpufs2yes
filer0:/vol/vol0/home/scannernfsyes
superadminaplic:/home/34/vol301/archivos/vol301nfsyes
centia:/centia01/centia01nfsyes
centia:/centia03/centia03nfsyes
Contenidodecadalnea:
Dispositivoamontar
Dispositivodondeseejecutarelcomandofsck
PuntodeMontaje
Tipodesistemadearchivos
fsckpass(1o)
Mountatboot(banderausadapormountall)
OpcionesdeMontaje

MontandoconAutomounter

Elhechodetenermuchossistemasdearchivos,yaseanlocalesoexternosimplicauncostoenel
rendimientodelamquina,porellounixposeeunavariantealovistoanteriormentequeseconoce
comoAutomounter,montar/importarsobredemanda.
Tenemosunarchivoprincipal(auto.masteroauto_master)elcualcontienelasespecificacionesdel
puntodemontajeparaloquesequieremontar(ej./misc)yqueestespecificadoenotroarchivo(ej.
/etc/auto.misc)
[carlos@pcproal/etc]$moreauto.master
#$Id:auto.master,v1.21997/10/0621:52:03hpaExp
$
#Sampleauto.masterfile
#Formatofthisfile:
#mountpointmapoptions
#Fordetailsoftheformatlookatautofs(8).
/misc/etc/auto.misctimeout=60
Enelarchivoincludoporelautomastersedefinenlosmontajesdemaneramuysimilaralosarchivos
"tab"mencionadosanteriormente
[carlos@pcproal/etc]$moreauto.misc
#$Id:auto.misc,v1.21997/10/0621:52:04hpaExp$
#Thisisanautomountermapandithasthefollowingformat
#key[mountoptionsseparatedbycomma]location
#Detailsmaybefoundintheautofs(5)manpage
http://ict.udlap.mx/people/carlos/is215/ir03.html

10/16

21/8/2016

AdministracindeArchivos

#cdfstype=iso9660,ro,nosuid,nodev:/dev/cdrom
#thefollowingentriesaresamplestopiqueyourimagination
#linuxro,soft,intrftp.example.org:/pub/linux
#bootfstype=ext2:/dev/hda1
#floppyfstype=auto:/dev/fd0
#floppyfstype=ext2:/dev/fd0
#e2floppyfstype=ext2:/dev/fd0
#jazfstype=ext2:/dev/sdc1
#removablefstype=ext2:/dev/hdd
centia01fstype=nfs,hardcentia.udlap.mx:/centia01
centia03fstype=nfs,hardcentia.udlap.mx:/centia03
Demaneraqueelmontajequedara:
/misc/centia01
Nota:adiferenciadefstabyvfstabaquielpuntodemontajenodebesercreadoporeladministrador,
secreasobredemanda

Samba(www.samba.org)
Sambaesunaaplicacinparaunixquepermitecompartirarchivosentreplataformasunixywindowsa
travesdelared
Nota:siloquequeremosescompartiruna"particin"dealgundiscolocal,entoncessepuedeutilizar
simplementeelmount
Doscomponentesprincipales
ServidordeSamba
InterfazwebdeadministracinSwat,(normalmenteenelpuerto901)

http://ict.udlap.mx/people/carlos/is215/ir03.html

11/16

21/8/2016

AdministracindeArchivos

3.3Comandoscomunesparalamanipulacindearchivos

file

Determinaeltipodearchivo

chown

Cambialosiddeldueoydelgrupodeunarchivo

Descripcinr,w,xparaarchivos
r
w
x

Poderleerelcontenidodelarchivo.
Modificarelcontenidodelarchivo.
Ejecutar,sisetratadeunexecutable/script.

Descripcinr,w,xparadirectorios
r
w
x
http://ict.udlap.mx/people/carlos/is215/ir03.html

Permiteverellistado"ls"dearchivoscontenidoseneldirectorio.Sise
deseausarestepermiso,siempredebertambinusarse"x".
Permiteagregar,eliminarorenombrararchivoseneldirectorio.
Permitehacer"cd"aldirectorioyutilizarlosarchivoscontenidosenlsi
nosetieneelpermiso"r"slosepuedenusarperonosepuedenverlos
archivoscontenidoseneldirectorio,habraquesaberselarutaej:"more
directorio/archivo.txt".
12/16

21/8/2016

AdministracindeArchivos

Modificalospermisosdeunarchivoodirectorio
ModoSimblico
U(Owner)G(group)O(Others)
rwxrr1carloscarlos932Aug2420:23steps.txt
ej.chmodu+rwx,g+w,o+xsteps.txt
rwxrwrx1carloscarlos932Aug2420:23steps.txt
Permisoadicional(visibleenelbittheexecute)

User
chmod

Permission

File

Permission+Execute(on) Permission+Execute(off)

Owner setuid(s)

Executable s

Group setgid(s)

Executable s

Others stickybit(t) Directory t


ej.chmodu+sscript.sh
rwsrxrx1carlosmail932Aug2420:23script.sh
(Elscriptsecorrerconpermisosde'carlos')

ej.chmodg+sscript.sh
rwxrlrx1carlosmail932Aug2420:23script.sh
(Elscriptsecorrerconpermisosde'mail')
ej.chmodo+wtdirectory
drwxrxrwt1carloscarlos932Aug2420:23directory
(En'directory'cualquierapuedeescribir,perosoloeldueodecadaarchivo,eldueode
'directory'yrootpodrnborrarlos)

ModoAbsoluto(Octal)

OctalValue

Permission

AdPermission

Read

setuid

Write

setgid

Execute

stickybit

Porejemplosiqueremosmodificarunarchivodemaneraque
U(Owner)Lectura+Ejecucin+Escritura=7
G(group)Lectura+Ejecucin=5
O(Others)Lectura=4
chmod754archivo.txt
Parapermisosadicionales(setuid+setgid)
chmod6754archivo.txt

grep

Buscaexpresionesregularesenlaentrada

ln

Creacindeligas,simblicasoduras

ls

Listadodearchivosenundirectorio

cp

Copiararchivosodirectorios

mv

Mueveorenombraunarchivo

more

Visualizadordeunarchivohaciaadelante

less

Visualizadordeunarchivohaciaadelanteyhaciaatrs

head

Verelencabezado(primeraslneasdeunarchivo)

tail

Verlacola(ltimaslneasdeunarchivo)

find

Buscaarchivosconciertocriterio(nombre,fecha)enunarutadada

http://ict.udlap.mx/people/carlos/is215/ir03.html

13/16

21/8/2016

AdministracindeArchivos

>

Redireccionamientohaciaunarchivonuevo
ej.ls>archivo.txt
Redireccionamientohaciaunarchivoexistente(append)
ej.ls>>archivo.txt

>>

3.4Respaldos(Backups)
FullBackups
Respaldodetodalainformacinquesehagenerado
Consumemuchotiempoelrealizarestosrespaldos
Grangastodedispositivospararespaldos
IncrementalBackups(dailybackups)
Unicamenteserespaldanlosarchivosnuevosoquehancambiadodesdeelltimofullbackup

Sun

Mon

Tue

Wed

Thu

Fri

Sat

Week1

Week2

Week3

Week4

DifferentialBackups
Unicamenteserespaldanlosarchivosnuevosoquehancambiadodesdeelltimobackup,a
cualquiernivel

Sun

Mon

Tue

Wed

Thu

Fri

Sat

Week1

Week2

Week3

Week4

MezcladeFull,IncrementalyDifferentialBackups

Sun

Mon

Tue

Wed

Thu

Fri

Sat

Week1

Week2

Week3

Week4

Otraposibilidaddelamezcladevariostipos:

http://ict.udlap.mx/people/carlos/is215/ir03.html

14/16

21/8/2016

AdministracindeArchivos

Cmoserealizanlosrespaldos?
Seutilizanloscomandos
Debemosdefinirlosnivelessiqueremoshacerbackupsincrementalesodiferenciales,paraellose
puedeemplearlafechaobiendirectamentelaopcindelosniveles(comandosdedump)
Calendarizarlos,usandoalgunaherramientacomo"crontab"
Comandospararealizarrespaldos

tar

Lamsantiguautilerapararespaldararchivosencintas
Solarisufsdump/ufsrestore
Linuxdump/restore
Herramientasdebajonivelqueinteractandirectamenteconelfilesystem
cpio

http://ict.udlap.mx/people/carlos/is215/ir03.html

15/16

21/8/2016

AdministracindeArchivos

mt

cpconI/O,esunaversinmsnuevaquelasanterioresypermiteelagregarorecuperar
soloalgunosarchivosdelrespaldo
Comandoparalamanipulacindelacinta

Notas:
1.NoolvidarloscomandosdeCompresin
compress
zcat
gzip
2.HerramientasdeTerceros

http://ict.udlap.mx/people/carlos/is215/ir03.html

16/16

Algoritmo de ordenamiento
1 Clasicacin
Los algoritmos de ordenamiento se pueden clasicar en
las siguientes maneras:
La ms comn es clasicar segn el lugar donde se
realice la ordenacin
Algoritmos de ordenamiento interno: en la
memoria del ordenador.
Algoritmos de ordenamiento externo: en un lugar externo como un disco duro.
Por el tiempo que tardan en realizar la ordenacin,
dadas entradas ya ordenadas o inversamente ordenadas:

Quicksort en accin sobre una lista de nmeros aleatorios. Las


lneas horizontales son valores pivote.

Algoritmos de ordenacin natural: Tarda lo


mnimo posible cuando la entrada est ordenada.
Algoritmos de ordenacin no natural: Tarda lo
mnimo posible cuando la entrada est inversamente ordenada.

En computacin y matematicas un algoritmo de ordenamiento es un algoritmo que pone elementos de una


lista o un vector en una secuencia dada por una relacin
de orden, es decir, el resultado de salida ha de ser una
permutacin o reordenamiento de la entrada que satisfaga la relacin de orden dada. Las relaciones de orden
ms usadas son el orden numrico y el orden lexicogrco. Ordenamientos ecientes son importantes para optimizar el uso de otros algoritmos (como los de bsqueda
y fusin) que requieren listas ordenadas para una ejecucin rpida. Tambin es til para poner datos en forma
cannica y para generar resultados legibles por humanos.

Por estabilidad: un ordenamiento estable mantiene


el orden relativo que tenan originalmente los elementos con claves iguales. Por ejemplo, si una lista
ordenada por fecha se reordena en orden alfabtico
con un algoritmo estable, todos los elementos cuya
clave alfabtica sea la misma quedarn en orden de
fecha. Otro caso sera cuando no interesan las maysculas y minsculas, pero se quiere que si una clave aBC estaba antes que AbC, en el resultado ambas claves aparezcan juntas y en el orden original:
aBC, AbC. Cuando los elementos son indistinguibles (porque cada elemento se ordena por la clave
completa) la estabilidad no interesa. Los algoritmos
de ordenamiento que no son estables se pueden implementar para que s lo sean. Una manera de hacer
esto es modicar articialmente la clave de ordenamiento de modo que la posicin original en la lista
participe del ordenamiento en caso de coincidencia.

Desde los comienzos de la computacin, el problema del


ordenamiento ha atrado gran cantidad de investigacin,
tal vez debido a la complejidad de resolverlo ecientemente a pesar de su planteamiento simple y familiar. Por
ejemplo, BubbleSort fue analizado desde 1956.[1] Aunque muchos puedan considerarlo un problema resuelto,
nuevos y tiles algoritmos de ordenamiento se siguen inventado hasta el da de hoy (por ejemplo, el ordenamiento
de biblioteca se public por primera vez en el 2004). Los
algoritmos de ordenamiento son comunes en las clases
introductorias a la computacin, donde la abundancia de Los algoritmos se distinguen por las siguientes caractealgoritmos para el problema proporciona una gentil intro- rsticas:
duccin a la variedad de conceptos ncleo de los algorit Complejidad computacional (peor caso, caso promos, como notacin de O mayscula, algoritmos divide y
vencers, estructuras de datos, anlisis de los casos peor,
medio y mejor caso) en trminos de n, el tamao
mejor, y promedio, y lmites inferiores.
de la lista o arreglo. Para esto se usa el concepto
1

ENLACES EXTERNOS

de orden de una funcin y se usa la notacin O(n).


El mejor comportamiento para ordenar (si no se
aprovecha la estructura de las claves) es O(n log n).
Los algoritmos ms simples son cuadrticos, es decir O(n). Los algoritmos que aprovechan la estructura de las claves de ordenamiento (p. ej. bucket sort)
pueden ordenar en O(kn) donde k es el tamao del
espacio de claves. Como dicho tamao es conocido
a priori, se puede decir que estos algoritmos tienen
un desempeo lineal, es decir O(n).

7) (despus de ser ordenado por el segundo valor) (3, 1)


(3, 7) (4, 1) (4, 6) (despus de ser ordenado por el primer
valor)

Uso de memoria y otros recursos computacionales.


Tambin se usa la notacin O(n).

3 Lista de algoritmos de ordenamiento

Por otro lado:


(3, 7) (3, 1) (4, 1) (4, 6) (despus de ser ordenado por
el primer valor) (3, 1) (4, 1) (4, 6) (3, 7) (despus de ser
ordenando por el segundo valor, el orden por el primer
valor es perturbado)

Estabilidad

Algunos algoritmos de ordenamiento agrupados segn


estabilidad tomando en cuenta la complejidad compuLos algoritmos de ordenamiento estable mantienen un re- tacional.
lativo preorden total. Esto signica que un algoritmo es
estable solo cuando hay dos registros R y S con la misma
clave y con R apareciendo antes que S en la lista original. 4 Referencias
Cuando elementos iguales (indistinguibles entre s), como
nmeros enteros, o ms generalmente, cualquier tipo de
dato en donde el elemento entero es la clave, la estabilidad
no es un problema. De todas formas, se asume que los
siguientes pares de nmeros estn por ser ordenados por
su primer componente:
(4, 1) (3, 7) (3, 1) (5, 6)
En este caso, dos resultados diferentes son posibles, uno
de los cuales mantiene un orden relativo de registros con
claves iguales, y una en la que no:
(3, 7) (3, 1) (4, 1) (5, 6) (orden mantenido) (3, 1) (3, 7)
(4, 1) (5, 6) (orden cambiado)
Los algoritmos de ordenamiento inestable pueden cambiar el orden relativo de registros con claves iguales, pero
los algoritmos estables nunca lo hacen. Los algoritmos
inestables pueden ser implementados especialmente para
ser estables. Una forma de hacerlo es extender articialmente el cotejamiento de claves, para que las comparaciones entre dos objetos con claves iguales sean decididas
usando el orden de las entradas original. Recordar este orden entre dos objetos con claves iguales es una solucin
poco prctica, ya que generalmente acarrea tener almacenamiento adicional.
Ordenar segn una clave primaria, secundaria, terciara,
etc., puede ser realizado utilizando cualquier mtodo de
ordenamiento, tomando todas las claves en consideracin
(en otras palabras, usando una sola clave compuesta). Si
un mtodo de ordenamiento es estable, es posible ordenar mltiples tems, cada vez con una clave distinta. En
este caso, las claves necesitan estar aplicadas en orden de
aumentar la prioridad.
Ejemplo: ordenar pares de nmeros, usando ambos valores
(4, 1) (3, 7) (3, 1) (4, 6) (original) (4, 1) (3, 1) (4, 6) (3,

[1] Bubble Sort: An archaeological algorithm analysis. Owen


Astrachan

5 Enlaces externos
Explicacin de los distintos mtodos de ordenamiento en Java. (pdf)
Discusin sobre varios algoritmos de ordenacin y
sus caractersticas (licencia GFDL) (pdf)
Animacin de algoritmos de ordenamiento
Animacin de algoritmos de ordenamiento (en ingls)
ALT: Algorithm Learning Tool. Herramienta de
apoyo a la enseanza de algoritmos que muestra grcamente su funcionamiento. Permite implementar
algoritmos propios y realizar una ejecucin dinmica e interactiva
Cdigos de Ordenamiento en Python

Origen del texto y las imgenes, colaboradores y licencias

6.1

Texto

Algoritmo de ordenamiento Fuente: https://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento?oldid=92876815 Colaboradores: Moriel, Pablo.cl, Sauron, JorgeGG, Hashar, Triku, Ascnder, Sms, Tano4595, Fernandomirandamuro, Almorca, Caos, Darkspawn, JMPerez,
Emijrp, Rembiapo pohyiete (bot), Drini2, Orgullobot~eswiki, Further (bot), RobotQuistnix, Chobot, Yrbot, Cesarsorm, BOTijo, YurikBot,
KnightRider, Jesuja, Chlewbot, CEM-bot, Chuo, Alexav8, Thijs!bot, Helios vmg, Fractaltigre, JAnDbot, Miguelo on the road, TXiKiBoT, Rei-bot, Plux, Loxosceles Laeta, AlnoktaBOT, VolkovBot, Snakeyes, Technopat, Libertad y Saber, Lahi, Elabra sanchez, Muro
Bot, Drinibot, JGus, STBot~eswiki, Zerial, Leonpolanco, Michada~eswiki, UA31, AVBOT, Diegusjaimes, Luckas-bot, Groucho NL, Vandal Crusher, DSisyphBot, ArthurBot, Xqbot, Botarel, D'ohBot, PatruBOT, Alph Bot, Dark Bane, EmausBot, HRoestBot, WikitanvirBot,
Miguel.baillon, Sigifredo89, KLBot2, Elvisor, Makecat-bot, Allanbot, SantoshBot y Annimos: 49

6.2

Imgenes

Archivo:Sorting_quicksort_anim.gif Fuente: https://upload.wikimedia.org/wikipedia/commons/6/6a/Sorting_quicksort_anim.gif Licencia: CC-BY-SA-3.0 Colaboradores: originally upload on the English Wikipedia Artista original: Wikipedia:en:User:RolandH

6.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

6
ALGORITMOS
DE ORDENACIN Y BSQUEDA

OBJETIVOS
Despus del estudio de este captulo usted
podr:
Conocer los algoritmos basados en el intercambio de elementos.
Conocer el algoritmo de ordenacin por insercin.
Conocer el algoritmo de seleccin.
Distinguir entre los algoritmos de ordenacin basados en el intercambio y en la insercin.
Deducir la eficiencia de los mtodos bsicos de ordenacin.
Conocer los mtodos ms eficientes de ordenacin.
Aplicar mtodos mas eficientes de ordenacin de arrays (arreglos).
Diferenciar entre bsqueda secuencial y
bsqueda binaria.

CONTENIDO
6.1.
6.2.
6.3.
6.4.
6.5.

Ordenacin.
Algoritmos de ordenacin bsicos.
Ordenacin por intercambio.
Ordenacin por seleccin.
Ordenacin por insercin.

6.6. Ordenacin por burbuja.


6.7. Ordenacin Shell.
6.8. Ordenacin rpida (quicksort).
6.9. Ordenacin Binsort y Radixsort.
6.10. Bsqueda en listas: bsqueda secuencial y binaria.
RESUMEN
EJERCICIOS
PROBLEMAS

CONCEPTOS CLAVE

Ordenacin numrica.
Ordenacin alfabtica.
Complejidad cuadrtica.
Ordenacin por burbuja.
Ordenacin rpida.
Residuos.
Ordenacin por intercambio.
Ordenacin por insercin.
Bsqueda en listas: bsqueda secuencial y
bsqueda binaria.
Complejidad logartmica.
Ordenacin por seleccin.

INTRODUCCIN
Muchas actividades humanas requieren que en ellas las diferentes colecciones de elementos utilizados se coloquen en un orden especfico. Las oficinas de correo y las empresas de mensajera
ordenan el correo y los paquetes por cdigos postales con el objeto de conseguir una entrega
eficiente; los anuarios o listines telefnicos ordenan sus clientes por orden alfabtico de apellidos con el fin ltimo de encontrar fcilmente el nmero de telfono deseado; los estudiantes de

165

166

Algoritmos y estructuras de datos

una clase en la universidad se ordenan por sus apellidos o por los nmeros de expediente, etc. Por
esta circunstancia una de las tareas que realizan ms frecuentemente las computadoras en el
procesamiento de datos es la ordenacin.
El estudio de diferentes mtodos de ordenacin es una tarea intrnsecamente interesante
desde un punto de vista terico y, naturalmente, prctico. El captulo estudia los algoritmos y
tcnicas de ordenacin ms usuales y su implementacin en C. De igual modo se estudiar el anlisis de los algoritmos utilizados en diferentes mtodos de ordenacin con el objetivo de conseguir
la mxima eficiencia en su uso real. En el captulo se analizarn los mtodos bsicos y avanzados
ms empleados en programas profesionales.

6.1. ORDENACIN
La ordenacin o clasificacin de datos (sort, en ingls) es una operacin consistente en disponer
un conjunto estructura de datos en algn determinado orden con respecto a uno de los campos
de elementos del conjunto. Por ejemplo, cada elemento del conjunto de datos de una gua telefnica
tiene un campo nombre, un campo direccin y un campo nmero de telfono; la gua telefnica est
dispuesta en orden alfabtico de nombres; los elementos numricos se pueden ordenar en orden
creciente o decreciente de acuerdo al valor numrico del elemento. En terminologa de ordenacin,
el elemento por el cual est ordenado un conjunto de datos (o se est buscando) se denomina clave.
Una coleccin de datos (estructura) puede ser almacenada en un archivo, un array (vector o
tabla), un array de registros, una lista enlazada o un rbol. Cuando los datos estn almacenados en
un array, una lista enlazada o un rbol, se denomina ordenacin interna. Si los datos estn almacenados en un archivo, el proceso de ordenacin se llama ordenacin externa.
Una lista se dice que est ordenada por la clave k si la lista est en orden ascendente o descendente con respecto a esta clave. La lista se dice que est en orden ascendente si:
i<j

implica que

k[i] <= k[j]

y se dice que est en orden descendente si:


i>j

implica que

k[i] <= k[j]

para todos los elementos de la lista. Por ejemplo, para una gua telefnica, la lista est clasificada en
orden ascendente por el campo clave k, donde k[i] es el nombre del abonado (apellidos, nombre).
4
5
14 21 32 45
75 70 35 16 14 12
Zacarias Rodriguez Martinez Lopez Garcia

orden ascendente
orden descendente
orden descendente

Los mtodos (algoritmos) de ordenacin son numerosos, por ello se debe prestar especial atencin en su eleccin. Cmo se sabe cul es el mejor algoritmo? La eficiencia es el factor que mide
la calidad y rendimiento de un algoritmo. En el caso de la operacin de ordenacin, dos criterios se
suelen seguir a la hora de decidir qu algoritmo de entre los que resuelven la ordenacin es el
ms eficiente: 1) tiempo menor de ejecucin en computadora; 2) menor nmero de instrucciones.
Sin embargo, no siempre es fcil efectuar estas medidas: puede no disponerse de instrucciones para
medida de tiempo aunque no sea ste el caso del lenguaje C, y las instrucciones pueden variar,
dependiendo del lenguaje y del propio estilo del programador. Por esta razn, el mejor criterio para
medir la eficiencia de un algoritmo es aislar una operacin especfica clave en la ordenacin y
contar el nmero de veces que se realiza. As, en el caso de los algoritmos de ordenacin, se
utilizar como medida de su eficiencia el nmero de comparaciones entre elementos efectuados. El
algoritmo de ordenacin A ser ms eficiente que el B, si requiere menor nmero de comparaciones.

Algoritmos de ordenacin y bsqueda

167

As, en el caso de ordenar los elementos de un vector, el nmero de comparaciones ser funcin del
nmero de elementos (n) del vector (array). Por consiguiente, se puede expresar el nmero de
comparaciones en trminos de n (por ejemplo, n + 4, o bien n2 en lugar de nmeros enteros (por
ejemplo, 325).
En todos los mtodos de este captulo, normalmente para comodidad del lector se utiliza el
orden ascendente sobre vectores o listas (arrays unidimensionales).
Los mtodos de ordenacin se suelen dividir en dos grandes grupos:
directos
indirectos (avanzados)

burbuja, seleccin, insercin


Shell, ordenacin rpida, ordenacin por mezcla, Radixsort

En el caso de listas pequeas, los mtodos directos se muestran eficientes, sobre todo porque los
algoritmos son sencillos; su uso es muy frecuente. Sin embargo, en listas grandes estos mtodos se
muestran ineficaces y es preciso recurrir a los mtodos avanzados.

6.2. ALGORITMOS DE ORDENACIN BSICOS


Existen diferentes algoritmos de ordenacin elementales o bsicos cuyos detalles de implementacin se pueden encontrar en diferentes libros de algoritmos. La enciclopedia de referencia es
[KNUTH 1973] 1 y sobre todo la 2.a edicin publicada en el ao 1998 [KNUTH 1998] 2. Los algoritmos presentan diferencias entre ellos que los convierten en ms o menos eficientes y prcticos
segn sea la rapidez y eficiencia demostrada por cada uno de ellos. Los algoritmos bsicos de
ordenacin ms simples y clsicos son:
Ordenacin por seleccin.
Ordenacin por insercin.
Ordenacin por burbuja.
Los mtodos ms recomendados son: seleccin e insercin, aunque se estudiar el mtodo de
burbuja, por aquello de ser el ms sencillo aunque a la par tambin es el ms ineficiente; por esta
causa no recomendamos su uso, pero s conocer su tcnica.
Los datos se pueden almacenar en memoria central o en archivos de datos externos guardados
en unidades de almacenamiento magntico (discos, cintas, disquetes, CD-ROM, DVD, discos flash
USB, etc.) Cuando los datos se guardan en listas y en pequeas cantidades, se suelen almacenar de
modo temporal en arrays y registros; estos datos se almacenan exclusivamente para tratamientos
internos que se utilizan en gestin masiva de datos y se guardan en arrays de una o varias dimensiones. Los datos, sin embargo, se almacenan de modo permanente en archivos y bases de datos que se
guardan en discos y cintas magnticas.

A tener en cuenta
Existen dos tcnicas de ordenacin fundamentales en gestin de datos: ordenacin de listas
y ordenacin de archivos. Los mtodos de ordenacin se conocen como internos o externos
segn que los elementos a ordenar estn en la memoria principal o en la memoria externa.

[KNUTH 1973] Donald E. Knuth. The Art of Computer Programming. Volume 3: Sorting and Searching. Addison-Wesley,

1973.
2
[KNUTH 1998] Donald E. Knuth. The Art of Computer Programming. Volume 3: Sorting and Searching. Second Edition.
Addison-Wesley, 1998.

168

Algoritmos y estructuras de datos

As pues, existen dos tcnicas de ordenacin fundamentales en gestin de datos: ordenacin de


listas y ordenacin de archivos. Los mtodos de ordenacin se conocen como internos o externos
segn que los elementos a ordenar estn en la memoria principal o en la memoria externa.
Las tcnicas que se analizarn a continuacin considerarn, esencialmente, la ordenacin de
elementos de una lista (array) en orden ascendente. En cada caso se desarrollar la eficiencia
computacional del algoritmo.
Con el objeto de facilitar el aprendizaje del lector y aunque no sea un mtodo utilizado por su
poca eficiencia se describir en primer lugar el mtodo de ordenacin por intercambio con un
programa completo que manipula a la correspondiente funcin ordIntercambio(), por la sencillez de su tcnica y con el objetivo de que el lector no introducido en algoritmos de ordenacin
pueda comprender su funcionamiento y luego asimilar ms eficazmente los algoritmos bsicos ya
citados y los avanzados que se estudiarn ms adelante.

6.3. ORDENACIN POR INTERCAMBIO


El algoritmo de ordenacin tal vez ms sencillo sea el denominado de intercambio que ordena los
elementos de una lista en orden ascendente. Este algoritmo se basa en la lectura sucesiva de la lista
a ordenar, comparando el elemento inferior de la lista con los restantes y efectuando intercambio de
posiciones cuando el orden resultante de la comparacin no sea el correcto.
El algoritmo se ilustra con la lista original 8, 4, 6, 2 que ha de convertirse en la lista ordenada
2, 4, 6, 8. El algoritmo realiza n 1 pasadas (3 en el ejemplo), siendo n el nmero de elementos, y
ejecuta las siguientes operaciones.
a[0] a[1] a[2] a[3]
Pasada 0

se realiza intercambio

no se realiza intercambio

se realiza intercambio

bbb
4

bbbbbb
4

bbbbbbbbb
Lista inicial

Lista resultante

El elemento de ndice 0 (a[0]) se compara con cada elemento posterior de la lista de ndices 1, 2 y 3. En cada comparacin se comprueba si el elemento siguiente es ms pequeo que el
elemento de ndice 0, en ese caso se intercambian. Despus de terminar todas las comparaciones,
el elemento ms pequeo se localiza en el ndice 0.

Pasada 1
El elemento ms pequeo ya est localizado en el ndice 0, y se considera la sublista restante 8, 6, 4. El algoritmo contina comparando el elemento de ndice 1 con los elementos posteriores de ndices 2 y 3. Por cada comparacin, si el elemento mayor est en el ndice 1 se intercambian

Algoritmos de ordenacin y bsqueda

169

los elementos. Despus de hacer todas las comparaciones, el segundo elemento ms pequeo de la
lista se almacena en el ndice 1.
2

mbbb

mbbbbbb

intercambio

bbbbn

intercambio

bbbbn

Lista inicial

Lista resultante

Pasada 2
La sublista a considerar ahora es 8, 6 ya que 2, 4 est ordenada. Una comparacin nica se
produce entre los dos elementos de la sublista

mbbb

Lista inicial

intercambio

bbbbn

Lista resultante

El mtodo ordIntercambio utiliza dos bucles anidados. Suponiendo que la lista es de tamao n, el rango del bucle externo ir desde el ndice 0 hasta n 2. Por cada ndice i, se comparan los
elementos posteriores de ndices j = i + 1, i + 2, ..., n 1. El intercambio (swap) de los elementos
a[i],a[j] se realiza en un bloque que utiliza el algoritmo siguiente:
aux = a[i];
a[i] = a[j];
a[j]= aux ;

Ejercicio 6.1
El programa siguiente ordena una lista de n elementos de tipo entero introducida en un array y
posteriormente la imprime (o visualiza) en pantalla.
#include <stdio.h>
#define N 100
void ordIntercambio (int a[], int n);
void entradaLista (int a[], int n);
void imprimirLista (int a[], int n);
int main()
{
int n;
int v[N];

170

Algoritmos y estructuras de datos

do {
printf("\nIntroduzca el nmero de elementos: ");
scanf("%d", &n);
} while ((n < 1) && (n > N));
entradaLista(v, n);
/* muestra lista
printf("\nLista original de %d elementos",
imprimirLista(v, n);
/* ordenacin ascendente de
ordIntercambio(v, n);
printf("\nLista ordenada de %d elementos",
imprimirLista(v, n);
return 0;

original */
n);
la lista */
n);

}
void ordIntercambio (int a[], int n)
{
int i, j;
/* se realizan n1 pasadas */
/* a[o], ... , a[n-2] */
for (i = 0 ; i <= n-2 ; i++)
/* coloca mnimo de a[i+1]...a[n-1] en a[i] */
for (j = i+1 ; j <= n-1 ; j++)
if (a[i] > a[j])
{
int aux;
aux = a[i];
a[i] = a[j];
a[j]= aux ;
}
}
void imprimirLista (int a[], int n)
{
int i;
for (i = 0 ; i < n ; i++)
{
char c;
c = (i%10==0)?'\n':' ';
printf("%c%d", c, a[i]);
}
}
void entradaLista (int a[], int n)
{
int i;
printf("\n Entrada de los elementos\n");
for (i = 0 ; i < n ; i++)

Algoritmos de ordenacin y bsqueda

171

{
printf("a[%d] = ",);
scanf("%d", a+i);
}
}

6.4. ORDENACIN POR SELECCIN


Considrese el algoritmo para ordenar un array A de enteros en orden ascendente, es decir, del
nmero ms pequeo al mayor. Es decir, si el array A tiene n elementos, se trata de ordenar los
valores del array de modo que el dato contenido en A[0] sea el valor ms pequeo, el valor almacenado en A[1] el siguiente ms pequeo, y as hasta A[n-1], que ha de contener el elemento de
mayor valor. El algoritmo se apoya en sucesivas pasadas que intercambian el elemento ms pequeo sucesivamente con el primer elemento de la lista, A[0] en la primera pasada. En sntesis, se
busca el elemento ms pequeo de la lista y se intercambia con A[0], primer elemento de la lista.
A[0]

A[1]

A[2]....

A[n-1]

Despus de terminar esta primera pasada, el frente de la lista est ordenado y el resto de la lista
A[1], A[2]...A[n-1] permanece desordenado. La siguiente pasada busca en esta lista desorde-

nada y selecciona el elemento ms pequeo, que se almacena entonces en la posicin A[1]. De


este modo los elementos A[0] y A[1] estn ordenados y la sublista A[2], A[3]...A[n-1] desordenada; entonces, se selecciona el elemento ms pequeo y se intercambia con A[2]. El proceso
contina n 1 pasadas y en ese momento la lista desordenada se reduce a un elemento (el mayor de
la lista) y el array completo ha quedado ordenado.
Un ejemplo prctico ayudar a la comprensin del algoritmo. Consideremos un array A con 5
valores enteros 51, 21, 39, 80, 36:
A[0] A[1] A[2] A[3] A[4]
51

21

39

80

36

Pasada 0. Seleccionar 21
Intercambiar 21 y A[0]

51

39

80

36

Pasada 1. Seleccionar 36
Intercambiar 36 y A[1]

80

51

Pasada 2. Seleccionar 39
Intercambiar 39 y A[2]

51

Pasada 3. Seleccionar 51
Intercambiar 51 y A[3]

pasada 0
21

pasada 1
21

36

39

pasada 2
21

36

39

80

pasada 3
21

36

39

51

80

Lista ordenada

172

Algoritmos y estructuras de datos

6.4.1. Algoritmo de seleccin


Los pasos del algoritmo son:
1.

Seleccionar el elemento ms pequeo de la lista A; intercambiarlo con el primer elemento


A[0]. Ahora la entrada ms pequea est en la primera posicin del vector.
2. Considerar las posiciones de la lista A[1], A[2], A[3]..., seleccionar el elemento ms
pequeo e intercambiarlo con A[1]. Ahora las dos primeras entradas de A estn en orden.
3. Continuar este proceso encontrando o seleccionando el elemento ms pequeo de los restantes elementos de la lista, intercambindolos adecuadamente.

6.4.2. Codificacin en C del algoritmo de seleccin


La funcin ordSeleccion() ordena una lista o vector de nmeros reales de n elementos. En la
pasada i, el proceso de seleccin explora la sublista A[i] a A[n-1] y fija el ndice del elemento
ms pequeo. Despus de terminar la exploracin, los elementos A[i] y A[indiceMenor] intercambian las posiciones.
/*
ordenar un array de n elementos de tipo double
utilizando el algoritmo de ordenacin por seleccin
*/
void ordSeleccion (double a[], int n)
{
int indiceMenor, i, j;
/* ordenar a[0]..a[n-2] y a[n-1] en cada pasada */
for (i = 0; i < n-1; i++)
{
/* comienzo de la exploracin en ndice i */
indiceMenor = i;
/* j explora la sublista a[i+1]..a[n-1] */
for (j = i+1; j < n; j++)
if (a[j] < a[indiceMenor])
indiceMenor = j;
/* sita el elemento ms pequeo en a[i] */
if (i != indiceMenor)
{
double aux = a[i];
a[i] = a[indiceMenor];
a[indiceMenor] = aux ;
}
}
}

El anlisis del algoritmo de seleccin es sencillo y claro, ya que requiere un nmero fijo de
comparaciones que slo dependen del tamao de la lista o vector (array) y no de la distribucin
inicial de los datos. En el Apartado 2.6.1 se realiz un estudio de la complejidad de este algoritmo.

Algoritmos de ordenacin y bsqueda

173

6.5. ORDENACIN POR INSERCIN


El mtodo de ordenacin por insercin es similar al proceso tpico de ordenar tarjetas de nombres
(cartas de una baraja) por orden alfabtico, que consiste en insertar un nombre en su posicin
correcta dentro de una lista o archivo que ya est ordenado. As el proceso en el caso de la lista de
enteros A = 50, 20, 40, 80, 30.
Comienzo con 50

Procesar 20

50

Procesar 20

20

50

Procesar 40

20

40

50

Procesar 80

20

40

50

80

Procesar 30

20

30

40

50

Se inserta 20 en la posicin 0
50 se mueve a posicin 1
Se inserta 40 en la posicin 1
Se mueve 50 a posicin 2
El elemento 80 est bien ordenado
80

Se inserta 30 en posicin 1
Se desplaza a la derecha la sublista derecha

Figura 6.1. Mtodo de ordenacin por insercin.

6.5.1. Algoritmo de ordenacin por insercin


El algoritmo correspondiente a la ordenacin por insercin contempla los siguientes pasos:
1.

El primer elemento A[0] se considera ordenado; es decir, la lista inicial consta de un


elemento.
2. Se inserta A[1] en la posicin correcta, delante o detrs de A[0], dependiendo de que sea
menor o mayor.
3. Por cada bucle o iteracin i (desde i=1 hasta n-1) se explora la sublista A[i-1] . .
A[0] buscando la posicin correcta de insercin; a la vez se mueve hacia abajo (a la derecha en la sublista) una posicin todos los elementos mayores que el elemento a insertar
A[i], para dejar vaca esa posicin.
4. Insertar el elemento a la posicin correcta.

6.5.2. Codificacin en C del algoritmo de ordenacin por insercin


La funcin ordInsercion() tiene dos argumentos, el array a[] que se va a ordenar crecientemente, y el nmero de elementos n. En la codificacin se supone que los elementos son de tipo
entero.
void ordInsercion (int [] a, int n)
{
int i, j;
int aux;
for (i = 1; i < n; i++)
{
/* ndice j explora la sublista a[i-1]..a[0] buscando la
posicin correcta del elemento destino, lo asigna a a[j] */

174

Algoritmos y estructuras de datos

j = i;
aux = a[i];
/* se localiza el punto de insercin explorando hacia abajo */
while (j > 0 && aux < a[j-1])
{
/* desplazar elementos hacia arriba para hacer espacio */
a[j] = a[j-1];
j--;
}
a[j] = aux;
}
}

El anlisis del algoritmo de insercin se realiz como ejemplo en el Apartado 2.6.2, se determin que la complejidad del algoritmo es 0(n2), complejidad cuadrtica.

6.6. ORDENACIN POR BURBUJA


El mtodo de ordenacin por burbuja es el ms conocido y popular entre estudiantes y aprendices
de programacin, por su facilidad de comprensin y programacin; por el contrario, es el menos
eficiente y por ello, normalmente, se aprende su tcnica pero no suele utilizarse.
La tcnica utilizada se denomina ordenacin por burbuja u ordenacin por hundimiento debido a que los valores ms pequeos burbujean gradualmente (suben) hacia la cima o parte superior
del array de modo similar a como suben las burbujas en el agua, mientras que los valores mayores
se hunden en la parte inferior del array. La tcnica consiste en hacer varias pasadas a travs del
array. En cada pasada, se comparan parejas sucesivas de elementos. Si una pareja est en orden
creciente (o los valores son idnticos), se dejan los valores como estn. Si una pareja est en orden decreciente, sus valores se intercambian en el array.

6.6.1. Algoritmo de la burbuja


En el caso de un array (lista) con n elementos, la ordenacin por burbuja requiere hasta n 1 pasadas. Por cada pasada se comparan elementos adyacentes y se intercambian sus valores cuando el
primer elemento es mayor que el segundo elemento. Al final de cada pasada, el elemento mayor ha
burbujeado hasta la cima de la sublista actual. Por ejemplo, despus que la pasada 0 est completa, la cola de la lista A[n 1] est ordenada y el frente de la lista permanece desordenado. Las etapas
del algoritmo son:
En la pasada 0 se comparan elementos adyacentes:
(A[0],A[1]),(A[1],A[2]),(A[2],A[3]),...(A[n-2],A[n-1])

Se realizan n 1 comparaciones, por cada pareja (A[i],A[i+1]) se intercambian los


valores si A[i+1] < A[i]. Al final de la pasada, el elemento mayor de la lista est situado en
A[n-1].
En la pasada 1 se realizan las mismas comparaciones e intercambios, terminando con el
elemento segundo mayor valor en A[n-2].
El proceso termina con la pasada n 1, en la que el elemento ms pequeo se almacena en
A[0].

Algoritmos de ordenacin y bsqueda

175

El algoritmo tiene una mejora inmediata, el proceso de ordenacin puede terminar en la pasada
n 1, o bien antes, si en una pasada no se produce intercambio alguno entre elementos del vector es
porque ya est ordenado, entonces no es necesario ms pasadas.
El ejemplo siguiente ilustra el funcionamiento del algoritmo de la burbuja con un array de 5
elementos (A = 50, 20, 40, 80, 30), donde se introduce una variable interruptor para detectar
si se ha producido intercambio en la pasada.
Pasada 0

50

20

40

80

30

Intercambio 50 y 20

40

80

30

Intercambio 50 y 40

80

30

50 y 80 ordenados

30

Intercambio 80 y 30

mbbb

Pasada 0

20

50

mbbb

Pasada 0

20

40

50

mbbb

Pasada 0

20

40

50

80

mbbb

Pasada 0

20

40

50

30

80

Elemento mayor es 80
interruptor = TRUE

40

50

30

80

20 y 40 ordenados

50

30

80

40 y 50 ordenados

30

80

Se intercambian 50 y 30

80

50 y 80 elementos mayores y ordenados


interruptor = TRUE

En la pasada 1:
Pasada 0

20

mbbb

Pasada 0

20

40

mbbb

Pasada 0

20

40

50

bbb
Pasada 0

20

40

30

50

En la pasada 2, slo se hacen dos comparaciones:


Pasada 0

20

40

30

50

80

20 y 40 ordenados

40

50

80

Se intercambian 40 y 30
interruptor = TRUE

bbb
Pasada 0

20

30

bbb

176

Algoritmos y estructuras de datos

En la pasada 3, se hace una nica comparacin de 20 y 30, y no se produce intercambio:


Pasada 0

20

30

40

50

80

20 y 30 ordenados

40

50

80

Lista ordenada
interruptor = FALSE

mbbb

Pasada 0

20

30

En consecuencia, el algoritmo de ordenacin de burbuja mejorado contempla dos bucles anidados: el bucle externo controla la cantidad de pasadas (al principio de la primera pasada todava no se
ha producido ningn intercambio, por tanto la variable interruptor se pone a valor falso (0); el
bucle interno controla cada pasada individualmente y cuando se produce un intercambio, cambia el
valor de interruptor a verdadero (1).
El algoritmo terminar, bien cuando se termine la ltima pasada (n 1) o bien cuando el valor
del interruptor sea falso (0), es decir, no se haya hecho ningn intercambio. La condicin para
realizar una nueva pasada se define en la expresin lgica
(pasada < n-1) && interruptor

6.6.2. Codificacin en C del algoritmo de la burbuja


La funcin ordBurbuja() implementa el algoritmo de ordenacin de la burbuja; tiene dos argumentos, el array que se va a ordenar crecientemente, y el nmero de elementos n. En la codificacin
se supone que los elementos son de tipo entero largo.
void ordBurbuja (long a[], int n)
{
int interruptor = 1;
int pasada, j;
for (pasada = 0; pasada < n-1 && interruptor; pasada++)
{
/* bucle externo controla la cantidad de pasadas */
interruptor = 0;
for (j = 0; j < n-pasada-1; j++)
if (a[j] > a[j+1])
{
/* elementos desordenados, es necesario intercambio */
long aux;
interruptor = 1;
aux = a[j];
a[j] = a[j+1];
a[j+1] = aux;
}
}
}

Una modificacin al algoritmo anterior puede ser utilizar, en lugar de una variable bandera
interruptor , una variable indiceIntercambio que se inicie a 0 (cero) al principio de cada

Algoritmos de ordenacin y bsqueda

177

pasada y se establezca al ndice del ltimo intercambio, de modo que cuando al terminar la pasada
el valor de indiceIntercambio siga siendo 0 implicar que no se ha producido ningn intercambio (o bien, que el intercambio ha sido con el primer elemento), y, por consiguiente, la lista estar
ordenada. En caso de no ser 0, el valor de indiceIntercambio representa el ndice del vector a
partir del cual los elementos estn ordenados. La codificacin en C de esta alternativa es:
/*
Ordenacin por burbuja : array de n elementos
Se realizan una serie de pasadas mientras indiceIntercambio > 0
*/
void ordBurbuja2 (long a[], int n)
{
int i, j;
int indiceIntercambio;
/* i es el ndice del ltimo elemento de la sublista */
i = n-1;
/* el proceso contina hasta que no haya intercambios */
while (i > 0)
{
indiceIntercambio = 0;
/* explorar la sublista a[0] a a[i] */
for (j = 0; j < i; j++)
/* intercambiar pareja y actualizar indiceIntercambio */
if (a[j+1] < a[j])
{
long aux=a[j];
a[j] = a[j+1];
a[j+1] = aux;
indiceIntercambio = j;
}
/* i se pone al valor del ndice del ltimo intercambio */
i = indiceIntercambio;
}
}

6.6.3. Anlisis del algoritmo de la burbuja


Cul es la eficiencia del algoritmo de ordenacin de la burbuja? Depender de la versin utilizada.
En la versin ms simple se hacen n 1 pasadas y n 1 comparaciones en cada pasada. Por
consiguiente, el nmero de comparaciones es (n 1) * (n 1) = n2 2n + 1, es decir, la complejidad
es 0(n2).
Si se tienen en cuenta las versiones mejoradas haciendo uso de las variables interruptor o
indiceIntercambio , entonces se tendr una eficiencia diferente a cada algoritmo. En el mejor de
los casos, la ordenacin de burbuja hace una sola pasada en el caso de una lista que ya est ordenada
en orden ascendente y por tanto su complejidad es 0(n). En el caso peor se requieren (n i 1)
n(n 1)
comparaciones y (n i 1) intercambios. La ordenacin completa requiere
comparaciones
2

178

Algoritmos y estructuras de datos

y un nmero similar de intercambios. La complejidad para el caso peor es 0(n2) comparaciones y


0(n2) intercambios. De cualquier forma, el anlisis del caso general es complicado dado que alguna
de las pasadas pueden no realizarse. Se podra sealar, entonces, que el nmero medio de pasadas k
sea 0(n) y el nmero total de comparaciones es 0(n2). En el mejor de los casos, la ordenacin por
burbuja puede terminar en menos de n 1 pasadas pero requiere, normalmente, muchos ms intercambios que la ordenacin por seleccin y su prestacin media es mucho ms lenta, sobre todo
cuando los arrays a ordenar son grandes.

6.7. ORDENACIN SHELL


La ordenacin Shell debe el nombre a su inventor, D. L. Shell. Se suele denominar tambin ordenacin por insercin con incrementos decrecientes. Se considera que el mtodo Shell es una mejora
de los mtodos de insercin directa.
En el lgoritmo de insercin, cada elemento se compara con los elementos contiguos de su
izquierda, uno tras otro. Si el elemento a insertar es el ms pequeo hay que realizar muchas
comparaciones antes de colocarlo en su lugar definitivo.
El algoritmo de Shell modifica los saltos contiguos resultantes de las comparaciones por saltos
de mayor tamao y con ello se consigue que la ordenacin sea ms rpida. Generalmente se toma
como salto inicial n/2 (siendo n el nmero de elementos), luego se reduce el salto a la mitad en cada
repeticin hasta que el salto es de tamao 1. El Ejemplo 6.1 ordena una lista de elementos siguiendo
paso a paso el mtodo de Shell.

Ejemplo 6.1
Obtener las secuencias parciales del vector al aplicar el mtodo Shell para ordenar en orden
creciente la lista:
6

1 5

El nmero de elementos que tiene la lista es 6, por lo que el salto inicial es 6/2 = 3. La siguiente
tabla muestra el nmero de recorridos realizados en la lista con los saltos correspondiente.
Recorrido
1
2
3

Salto
3
3
3

Intercambios

Lista

(6,2),(5,4),(6,0)
(2, 0)
ninguno

2 1 4 0 3 5 6
0 1 4 2 3 5 6
0 1 4 2 3 5 6

(4,2),(4,3)
ninguno

0 1 2 3 4 5 6
0 1 2 3 4 5 6

salto 3/2 = 1

4
5

1
1

6.7.1. Algoritmo de ordenacin Shell


Los pasos a seguir por el algoritmo para una lista de n elementos son:
1.

Dividir la lista original en n/2 grupos de dos, considerando un incremento o salto entre los
elementos de n/2.
2. Clarificar cada grupo por separado, comparando las parejas de elementos, y si no estn
ordenados, se intercambian.

Algoritmos de ordenacin y bsqueda

179

3.

Se divide ahora la lista en la mitad de grupos (n/4), con un incremento o salto entre los
elementos tambin mitad (n/4), y nuevamente se clasifica cada grupo por separado.
4. As sucesivamente, se sigue dividiendo la lista en la mitad de grupos que en el recorrido
anterior con un incremento o salto decreciente en la mitad que el salto anterior, y luego
clasificando cada grupo por separado.
5. El algoritmo termina cuando se consigue que el tamao del salto es 1.
Por consiguiente, los recorridos por la lista est condicionados por el bucle,
intervalo v n / 2
mientras (intervalo > 0) hacer
Para dividir la lista en grupos y clasificar cada grupo se anida este cdigo,

desde i v (intervalo + 1) hasta n hacer


j v i - intervalo
mientras (j > 0) hacer
k v j + intervalo
si (a[j] <= a[k])
entonces
j v 1
sino
Intercambio (a[j], a[k]);
j v j - intervalo
fin_si
fin_mientras
fin_desde

En el cdigo anterior se observa que se comparan pares de elementos indexados por j y k,


(a[j],a[k]) , separados por un salto, intervalo . As, si n = 8 el primer valor de intervalo = 4, y los ndices i = 5, j = 1, k = 6. Los siguientes valores de los ndices son i = 6, j = 2, k = 7,
y as hasta recorrer la lista.
Para realizar un nuevo recorrido de la lista con la mitad de grupos, el intervalo se hace la mitad:
intervalo v intervalo / 2

as se repiten los recorridos por la lista, mientras intervalo > 0.

6.7.2. Codificacin en C del algoritmo del mtodo Shell


Al codificar en C este mtodo de ordenacin se ha de tener en cuenta que el operador, /, realiza una
divisin entera si los operandos son enteros, y esto es importante al calcular el ancho del salto entre
pares de elementos: intervalo = n/2.
En cuanto a los ndices, C toma como base el ndice 0 y, por consiguiente, se ha de desplazar
una posicin a la izquierda las variables ndice respecto a lo expuesto en el algoritmo.
void ordenacionShell(double a[], int n)
{
int intervalo, i, j, k;
intervalo = n / 2;
while (intervalo > 0)
{

180

Algoritmos y estructuras de datos

for (i = intervalo; i < n; i++)


{
j = i - intervalo;
while (j >= 0)
{
k = j + intervalo;
if (a[j] <= a[k])
j = -1;
/* as termina el bucle, par ordenado */
else
{
double temp;
temp = a[j];
a[j] = a[k];
a[k] = temp;
j -= intervalo;
}
}
}
intervalo = intervalo / 2;
}
}

6.8. ORDENACIN RPIDA (QUICKSORT)


El algoritmo conocido como quicksort (ordenacin rpida) recibe el nombre de su autor, Tony
Hoare. La idea del algoritmo es simple, se basa en la divisin en particiones de la lista a ordenar, por
lo que se puede considerar que aplica la tcnica divide y vencers. El mtodo es, posiblemente, el
ms pequeo de cdigo, ms rpido, ms elegante, ms interesante y eficiente de los algoritmos de
ordenacin conocidos.
El mtodo se basa en dividir los n elementos de la lista a ordenar en dos partes o particiones
separadas por un elemento: una particin izquierda, un elemento central denominado pivote o
elemento de particin, y una particin derecha. La particin o divisin se hace de tal forma que
todos los elementos de la primera sublista (particin izquierda) son menores que todos los elementos de la segunda sublista (particin derecha). Las dos sublistas se ordenan entonces independientemente.
Para dividir la lista en particiones (sublistas) se elige uno de los elementos de la lista y se
utiliza como pivote o elemento de particin. Si se elige una lista cualquiera con los elementos en
orden aleatorio, se puede seleccionar cualquier elemento de la lista como pivote, por ejemplo, el
primer elemento de la lista. Si la lista tiene algn orden parcial conocido, se puede tomar otra
decisin para el pivote. Idealmente, el pivote se debe elegir de modo que se divida la lista exactamente por la mitad, de acuerdo al tamao relativo de las claves. Por ejemplo, si se tiene una lista
de enteros de 1 a 10, 5 o 6 seran pivotes ideales, mientras que 1 o 10 seran elecciones pobres
de pivotes.
Una vez que el pivote ha sido elegido, se utiliza para ordenar el resto de la lista en dos sublistas:
una tiene todas las claves menores que el pivote y la otra, todos los elementos (claves) mayores que
o iguales que el pivote (o al revs). Estas dos listas parciales se ordenan recursivamente utilizando
el mismo algoritmo; es decir, se llama sucesivamente al propio algoritmo quicksort. La lista final
ordenada se consigue concatenando la primera sublista, el pivote y la segunda lista, en ese orden, en
una nica lista. La primera etapa de quicksort es la divisin o particionado recursivo de la lista
hasta que todas las sublistas constan de slo un elemento.

Algoritmos de ordenacin y bsqueda

181

Ejemplo 6.2
Se ordena una lista de nmeros enteros aplicando el algoritmo quicksort, como pivote se elige el
primer elemento de la lista.

1.

2.

Lista original

pivote elegido

sublista derecha1 (elementos mayores o iguales a 5)

El algoritmo se aplica a la sublista izquierda


1

pivote

sublista Izda 1
sublista Dcha 3

Sublista Izda1

Izda

pivote

Dcha

El algoritmo se aplica a la sublista derecha


Sublista Dcha1 9

pivote
Sublista Dcha1

sublista Izda 7
sublista Dcha
Izda
7

4.

sublista izquierda1 (elementos menores que 5)

Sublista Izda1 2

3.

pivote

Dcha

Lista ordenada final


Sublista izquierda
1

pivote
5

Sublista derecha
7

Para recordar
El algoritmo quicksort requiere una estrategia de particin y la seleccin idnea del pivote.
Las etapas fundamentales del algoritmo dependen del pivote elegido aunque la estrategia
de particin suele ser similar.

6.8.1. Algoritmo quicksort


La primera etapa en el algoritmo de particin es obtener el elemento pivote; una vez que se ha
seleccionado se ha de buscar el sistema para situar en la sublista izquierda todos los elementos

182

Algoritmos y estructuras de datos

menores que el pivote y en la sublista derecha todos los elementos mayores que el pivote. Supongamos que todos los elementos de la lista son distintos, aunque ser preciso tener en cuenta los casos
en que existan elementos idnticos. En el Ejemplo 6.3 se elige como pivote el elemento central de la
lista actual.

Ejemplo 6.3
Ordenar una lista de nmeros enteros aplicando el algoritmo quicksort, como pivote se elige el
elemento central de la lista.

Lista original:
Pivote (elemento central)

8
6

La etapa 2 requiere mover todos los elementos menores al pivote a la parte izquierda del array y
los elementos mayores a la parte derecha. Para ello se recorre la lista de izquierda a derecha utilizando un ndice i que se inicializa en la posicin ms baja (inferior) buscando un elemento
mayor al pivote. Tambin se recorre la lista de derecha a izquierda buscando un elemento menor.
Para hacer esto se utilizar un ndice j inicializado en la posicin ms alta (superior).
El ndice i se detiene en el elemento 8 (mayor que el pivote) y el ndice j se detiene en el
elemento 0 (menor que el pivote).
8

ni

jv

Ahora se intercambian 8 y 0 para que estos dos elementos se siten correctamente en cada
sublista; y se incrementa el ndice i, y se decrementa j para seguir los intercambios.
0

A medida que el algoritmo contina, i se detiene en el elemento mayor, 9, y j se detiene en el


elemento menor, 2.
0

Se intercambian los elementos mientras que i y j no se crucen. En caso contrario se detiene este
bucle. En el caso anterior se intercambian 9 y 2.
0

Contina la exploracin y ahora el contador i se detiene en el elemento 6 (que es el pivote) y el


ndice j se detiene en el elemento menor 5.
0

i j

Algoritmos de ordenacin y bsqueda

183

Los ndices tienen actualmente los valores i = 5, j = 5. Contina la exploracin hasta que
i>j, acaba con i = 6, j = 5.
0

6
9

bbbbbn
vbbbbb
j
i

En esta posicin los ndices i y j han cruzado posiciones en el array y en este caso se detiene la
bsqueda y no se realiza ningn intercambio ya que el elemento al que accede j est ya correctamente
situado. Las dos sublistas ya han sido creadas, la lista original se ha dividido en dos particiones:
sublista_izquierda
0

pivote
5

sublista_derecha

El primer problema a resolver en el diseo del algoritmo de quicksort es seleccionar el pivote.


Aunque la posicin del pivote, en principio, puede ser cualquiera, una de las decisiones ms ponderadas es aquella que considera el pivote como el elemento central o prximo al central de la lista. La
Figura 6.2 muestra las operaciones del algoritmo para ordenar la lista a[] de n elementos enteros.
79

21 15 99 88 65

75 85 76 46 84 24

65

24

21 15 46

88 75 85 76

21

99 84

79

76

15

24 46

75

15

24

75

85 88 99 84

79

99

46

85 88 84 79

46

...

Izquierda: 24, 21, 15, 46


Pivote: 65
Derecha: 88, 75, 85, 76, 99, 84, 79

Figura 6.2. Ordenacin rpida eligiendo como pivote el elemento central.

Los pasos que sigue el algoritmo quicksort:


Seleccionar el elemento central de a[0:n-1] como pivote

184

Algoritmos y estructuras de datos

Dividir los elementos restantes en particiones izquierda y derecha , de modo

que ningn elemento de la izquierda tenga una clave (valor) mayor que el pivote y que
ningn elemento a la derecha tenga una clave ms pequea que la del pivote.
Ordenar la particin izquierda utilizando quicksort recursivamente.
Ordenar la particin derecha utilizando quicksort recursivamente.
La solucin es particin izquierda seguida por el pivote y a continuacin particin derecha.

6.8.2. Codificacin en C del algoritmo quicksort


La funcin quicksort() refleja el algoritmo citado anteriormente; esta funcin se llama pasando
como primer argumento el array a[] y los ndices que le delimitan 0 y n-1 (ndice inferior y
superior). La llamada a la funcin:
quicksort(a, 0, n-1);

y la codificacin recursiva de la funcin:


void quicksort(double a[], int primero, int ultimo)
{
int i, j, central;
double pivote;
central = (primero + ultimo)/2;
pivote = a[central];
i = primero;
j = ultimo;
do {
while (a[i] < pivote) i++;
while (a[j] > pivote) j--;
if (i<=j)
{
double tmp;
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
}
}while (i <= j);

/* intercambia a[i] con a[j] */

if (primero < j)
quicksort(a, primero, j);/* mismo proceso con sublista izqda */
if (i < ultimo)
quicksort(a, i, ultimo); /* mismo proceso con sublista drcha */
}

Algoritmos de ordenacin y bsqueda

185

6.8.3. Anlisis del algoritmo quicksort


El anlisis general de la eficiencia de quicksort es difcil. La mejor forma de ilustrar y calcular la
complejidad del algoritmo es considerar el nmero de comparaciones realizadas teniendo en cuenta
circunstancias ideales. Supongamos que n (nmero de elementos de la lista) es una potencia de 2,
n = 2k (k = log2 n). Adems, supongamos que el pivote es el elemento central de cada lista, de modo
que quicksort divide la sublista en dos sublistas aproximadamente iguales.
En la primera exploracin o recorrido hay n 1 comparaciones. El resultado de la etapa crea
dos sublistas aproximadamente de tamao n/2. En la siguiente fase, el proceso de cada sublista requiere aproximadamente n/2 comparaciones. Las comparaciones totales de esta fase son 2(n/2) = n.
La siguiente fase procesa cuatro sublistas que requieren un total de 4(n/4) comparaciones, etc.
Eventualmente, el proceso de divisin termina despus de k pasadas cuando la sublista resultante
tenga tamao 1. El nmero total de comparaciones es aproximadamente:
n + 2(n/2) + 4(n/4) + + n(n/n) = n + n + + n
= n k = n log2 n
Para una lista normal la complejidad de quicksort es O(n log2 n). El caso ideal que se ha
examinado se realiza realmente cuando la lista (el array) est ordenado en orden ascendente. En
este caso el pivote es precisamente el centro de cada sublista.
15

25

35

pivote

40

50

55

65

75

Si el array est en orden ascendente, el primer recorrido encuentra el pivote en el centro de la


lista e intercambia cada elemento en las sublistas inferiores y superiores. La lista resultante est casi
ordenada y el algoritmo tiene la complejidad O(n log2 n).
El escenario del caso peor de quicksort ocurre cuando el pivote cae consistentemente en una
sublista de un elemento y deja el resto de los elementos en la segunda sublista. Esto sucede cuando
el pivote es siempre el elemento ms pequeo de su sublista. En el recorrido inicial, hay n comparaciones y la sublista grande contiene n 1 elementos. En el siguiente recorrido, la sublista mayor
requiere n 1 comparaciones y produce una sublista de n 2 elementos, etc. El nmero total de
comparaciones es:
n + n 1 + n 2 + + 2 = (n 1)(n + 2)/2
La complejidad es O(n2). En general el algoritmo de ordenacin tiene como complejidad media
O(n log2 n) siendo posiblemente el algoritmo ms rpido. La Tabla 6.1 muestra las complejidades
de los algoritmos empleados en los mtodos explicados en el libro.
Tabla 6.1. Comparacin de complejidad en mtodos de ordenacin
Mtodo

Complejidad

Burbuja
Insercin
Seleccin
Montculo
Fusin
Shell
Quicksort

n2
n2
n2
n log2
n log2
n log2
n log2

n
n
n
n

186

Algoritmos y estructuras de datos

En conclusin, se suele recomendar que para listas pequeas los mtodos ms eficientes son
insercin y seleccin; y para listas grandes, el quicksort. El algoritmo de Shell suele variar mucho
su eficiencia en funcin de la variacin del nmero de elementos por lo que es ms difcil que en los
otros mtodos proporcionar un consejo eficiente. Los mtodos de fusin y por montculo suelen ser
muy eficientes para listas muy grandes.
El mtodo de ordenacin por montculos, tambin llamado Heapsort, se desarrolla ms adelante, en el Captulo 12, Colas de prioridades y montculos, al ser una aplicacin de la estructura
montculo.

6.9. ORDENACIN BINSORT Y RADIXSORT


Estos mtodos de ordenacin utilizan urnas para depositar en ellas los registros en el proceso de
ordenacin. En cada recorrido de la lista se depositan en una urnai aquellos registros cuya clave
tienen una cierta correspondencia con i.

6.9.1. Mtodo de Binsort


Este mtodo, tambin llamado clasificacin por urnas, persigue conseguir funciones de tiempo de
ejecucin menores de O(n log n), para ordenar una secuencia de n elementos siempre que se
conozca algo acerca del tipo de las claves por las que se estn ordenando.
Supngase que se tiene un vector v[] de registros, se quiere ordenar respecto un campo clave
de tipo entero, adems se sabe que los valores de las claves se encuentran en el rango de 1 a n, sin
claves duplicadas y siendo n el nmero de elementos. En estas circunstancias es posible colocar los
registros ordenados en un array auxiliar t[] mediante este bucle:
for 1:= 1 to n do
t[v[i].clave] = v[i];

Sencillamente determina la posicin que le corresponde segn el valor del campo clave. El
bucle lleva un tiempo de ejecucin de complejidad O(n).
Esta ordenacin tan sencilla que se ha expuesto es un caso particular del mtodo de ordenacin
por urnas (binsort). Este mtodo utiliza urnas, cada urna contiene todos los registros con una misma
clave.
El proceso consiste en examinar cada registro r a clasificar y situarle en la urna i, coincidiendo
i con el valor del campo clave de r. En la mayora de los casos en que se utilice el algoritmo, ser
necesario guardar ms de un registro en una misma urna por tener claves repetidas. Entonces estas
urnas hay que concatenarlas en el orden de menor ndice de urna a mayor, as quedar el array en
orden creciente respecto al campo clave.
En la Figura 6.3 se muestra un vector de m urnas. Las urnas estn representadas por listas
enlazadas.
Urnas

R3

...
...
...

R3

Rm

...

Rm

R1

R1

R2

R2

R3

Rm

R1
R2

Figura 6.3. Estructura formada por m urnas.

Algoritmos de ordenacin y bsqueda

187

Algoritmo de ordenacin Binsort


Se considera que el campo clave de los registros que se van a ordenar son nmeros enteros en el
rango 1 .. m. Son necesarias m urnas por lo que es necesario definir un vector de m urnas. Las urnas
pueden ser representadas por listas enlazadas, cada elemento de la lista contiene un registro cuyo
campo clave es el correspondiente al de la urna en la que se encuentra. As en la urna 1 se sitan los
registros cuyo campo clave sea igual a 1, en la urna 2 los registros cuyo campo clave sea 2, y as
sucesivamente en la urna i se sitan los registros cuyo campo clave sea igual a i.
Una vez que se hayan distribuido los registros en las diversas urnas es necesario concatenar las
listas. En la Figura 6.4 se muestra cmo realizar la concatenacin.

Figura 6.4.

R1

R1

...

R1

R2

R2

...

R2

R3

R3

...

R3

Rm

Rm

...

Rm

Concatenacin de urnas representadas por listas enlazadas.

Los pasos que sigue el algoritmo expresado en pseudocdigo para un vector de n registros:
OrdenacionBinsort(vector, n)
inicio
CrearUrnas(Urnas);
{Distribucin de registros en sus correspondientes urnas}
desde j = 1 hasta n hacer
AadirEnUrna(Urnas[vector[j].clave], vector[j]);
fin_desde
{Concatena las listas que representan a las urnas
desde Urnai hasta Urnam}
i = 1;
{bsqueda de primera urna no vaca}
mientras EstaVacia(Urnas[i]) hacer
i = i+1
fin_mientras
desde j = i+l a m hacer
EnlazarUrna(Urnas[i], Urnas[j]);
fin_desde
{Se recorre la lista-urna resultante de la concatenacin}
j = 1;
dir = <frente Urnas[i]>;
mientras dir <> nulo hacer
vector[j] = <registro apuntado por dir>;
j = j+i;
dir = Sgte(dir)
fin_mientras
fin

188

Algoritmos y estructuras de datos

6.9.2. Mtodo de Radixsort


Este mtodo puede considerarse como una generalizacin de la clasificacin por urnas. Aprovecha
la estrategia de la forma ms antigua de clasificacin manual, consistente en hacer diversos montones de fichas, cada uno caracterizado por tener sus componentes un mismo dgito (letra, si es
alfabtica) en la misma posicin; estos montones se recogen en orden ascendente y se reparte de
nuevo en montones segn el siguiente dgito de la clave.
Como ejemplo, suponer que se han de ordenar estas fichas identificadas por tres dgitos:
345, 721, 425, 572, 836, 467, 672,194, 365, 236, 891, 746, 431, 834, 247, 529, 216, 389
Atendiendo al dgito de menor peso (unidades) las fichas se distribuyen en montones del 0 al 9;
431
431
891
721
1

672

999

672
572
2

834
194
4

999
365
425
345
5

216
746
236
836
6

247
467
7

389
529
9

Recogiendo los montones en orden, la secuencia de fichas queda:


721, 891, 431, 572, 672, 194, 834, 345, 425, 365, 836, 236, 746, 216, 467, 247, 529, 389
De esta secuencia podemos decir que est ordenada respecto al dgito de menor peso, respecto a
las unidades. Pues bien, ahora de nuevo se distribuye la secuencia de fichas en montones respecto al
segundo dgito:

216
1

529
425
721
2

236
836
834
431
3

247
746
345
4

467
365
6

672
572
7

389
8

194
891
9

Recogiendo de nuevo los montones en orden, la secuencia de fichas queda:


216, 721, 425, 529, 431, 834, 836, 236, 345, 746, 247, 365, 467, 572, 672, 389, 891, 194
En este momento esta secuencia de fichas ya estn ordenadas respecto a los dos ltimos dgitos,
es decir, respecto a las decenas. Por ltimo, se distribuye las fichas en montones respecto al tercer
dgito:

194
1

247
236
216
2

389
365
345
3

467
431
425
4

572
529
5

672
6

746
721
7

891
836
834
8

Recogiendo de nuevo los montones en orden, la secuencia de fichas queda ya ordenada:


194, 216, 236, 247, 345, 365, 389, 425, 431, 467, 529, 572, 672, 121, 746, 834, 836, 891

Algoritmos de ordenacin y bsqueda

189

Algoritmo de ordenacin Radixsort


La idea clave de la ordenacin Radixsort (tambin llamada por residuos) es clasificar por urnas primero respecto al dgito de menor peso (menos significativo) dk, despus concatenar las
urnas, clasificar de nuevo respecto al siguiente dgito dk 1, y as sucesivamente se sigue con el
siguiente dgito hasta alcanzar el dgito ms significativo dl, en ese momento la secuencia estar
ordenada. La concatenacin de las urnas consiste en enlazar el final de una con el frente de la
siguiente.
Al igual que en el mtodo de Binsort, las urnas se representan mediante un vector de listas. En el
caso de que la clave respecto a la que se ordena sea un entero, se tendrn 10 urnas, numeradas de 0
a 9. Si la clave respecto a la que se ordena es alfabtica, habr tantas urnas como letras distintas,
desde la urna que represente a la letra a hasta la z.
Para el caso de que clave sea entera, en primer lugar se determina el mximo nmero de dgitos
que puede tener la clave. En un bucle de tantas iteraciones como mximo de dgitos se realizan las
acciones de distribuir por urnas los registros, concatenar...
La distribucin por urnas exige obtener el dgito del campo clave que se encuentra en la posicin definida por el bucle externo, dicho dgito ser el ndice de la urna.
OrdenacionRadixsort(vector, n)
inicio
< clculo el nmero mximo de dgitos: ndig >
peso = 1 { permite obtener los dgitos de menor a mayor peso}
desde i = 1 hasta ndig hacer
CrearUrnas(Urnas);
desde j = 1 hasta n hacer
d = (vector[j] / peso) modulo 10;
AadirEnUma(Urnas[d], vector[j]);
fin_desde
< bsqueda de primera urna no vaca: j >
desde r = j+1 hasta M hace
{ M: nmero de urnas }
EnlazarUma(Urnas[r], Urnas[j]);
fin_desde
{Se recorre la lsta-urna resultante de la concatenacin}
r = 1;
dir = frente(Urna[j]);
mientras dir <> nulo hacer
vector[r] = dir.registro;
r = r+1;
dir = siguiente(dir)
end
peso = peso * 10;
fin_desde
fin_ordenacion

190

Algoritmos y estructuras de datos

6.10. BSQUEDA EN LISTAS: BSQUEDAS SECUENCIAL Y BINARIA


Con mucha frecuencia los programadores trabajan con grandes cantidades de datos almacenados en
arrays y registros, y por ello ser necesario determinar si un array contiene un valor que coincida
con un cierto valor clave. El proceso de encontrar un elemento especfico de un array se denomina
bsqueda. En esta seccin se examinarn dos tcnicas de bsqueda: bsqueda lineal o secuencial,
la tcnica ms sencilla, y bsqueda binaria o dicotmica, la tcnica ms eficiente.

6.10.1. Bsqueda secuencial


La bsqueda secuencial busca un elemento de una lista utilizando un valor destino llamado clave.
En una bsqueda secuencial (a veces llamada bsqueda lineal), los elementos de una lista o vector
se exploran (se examinan) en secuencia, uno despus de otro. La bsqueda secuencial es necesaria,
por ejemplo, si se desea encontrar la persona cuyo nmero de telfono es 958-220000 en un directorio o listado telefnico de su ciudad. Los directorios de telfonos estn organizados alfabticamente
por el nombre del abonado en lugar de por nmeros de telfono, de modo que deben explorarse
todos los nmeros, uno despus de otro, esperando encontrar el nmero 958-220000.
El algoritmo de bsqueda secuencial compara cada elemento del array con la clave de bsqueda. Dado que el array no est en un orden prefijado, es probable que el elemento a buscar pueda ser
el primer elemento, el ltimo elemento o cualquier otro. De promedio, al menos el programa tendr
que comparar la clave de bsqueda con la mitad de los elementos del array. El mtodo de bsqueda
lineal funcionar bien con arrays pequeos o no ordenados. La eficiencia de la bsqueda secuencial
es pobre, tiene complejidad lineal, O(n).

6.10.2. Bsqueda binaria


La bsqueda secuencial se aplica a cualquier lista. Si la lista est ordenada, la bsqueda binaria
proporciona una tcnica de bsqueda mejorada. Una bsqueda binaria tpica es la bsqueda de una
palabra en un diccionario. Dada la palabra, se abre el libro cerca del principio, del centro o del final
dependiendo de la primera letra del primer apellido o de la palabra que busca. Se puede tener suerte
y acertar con la pgina correcta; pero, normalmente, no ser as y se mueve el lector a la pgina
anterior o posterior del libro. Por ejemplo, si la palabra comienza con J y se est en la
L se mueve uno hacia atrs. El proceso contina hasta que se encuentra la pgina buscada o hasta
que se descubre que la palabra no est en la lista.
Una idea similar se aplica en la bsqueda en una lista ordenada. Se sita la lectura en el centro
de la lista y se comprueba si la clave coincide con el valor del elemento central. Si no se encuentra
el valor de la clave, se sigue la bsqueda uno en la mitad inferior o superior del elemento central de
la lista. En general, si los datos de la lista estn ordenados se puede utilizar esa informacin para
acortar el tiempo de bsqueda.

Ejemplo 6.4
Se desea buscar el elemento 225 y ver si se encuentra en el conjunto de datos siguiente:
a[0]
13

a[1]
44

a[2]
75

a[3]
100

a[4]
120

a[5]
275

a[6]
325

a[7]
510

Algoritmos de ordenacin y bsqueda

191

El punto central de la lista es el elemento a[3] (100). El valor que se busca es 225, mayor que
100; por consiguiente, la bsqueda contina en la mitad superior del conjunto de datos de la lista, es
decir, en la sublista,
a[4]
120

a[5]
275

a[6]
325

a[7]
510

Ahora el elemento mitad de esta sublista a[5] (275). El valor buscado, 225, es menor que
275 y, por consiguiente, la bsqueda contina en la mitad inferior del conjunto de datos de la lista
actual; es decir, en la sublista de un nico elemento:
a[4]
120

El elemento mitad de esta sublista es el propio elemento a[4] (120). Al ser 225 mayor que
120, la bsqueda debe continuar en una sublista vaca. Se concluye indicando que no se ha encontrado la clave en la lista.

6.10.3. Algoritmo y codificacin de la bsqueda binaria


Suponiendo que la lista est almacenada como un array, los ndices de la lista son: bajo = 0
y alto = n-1 y n es el nmero de elementos del array, los pasos a seguir:
1.

Calcular el ndice del punto central del array


central = (bajo + alto)/2

2.

(divisin entera)

Comparar el valor de este elemento central con la clave:


clave
|bbbbbb|bbbbbb|
bajo
central
alto
Clave encontrada

clave
|bbbbbb|bbbbbb|
bajo
central
alto

clave
|bbbbbb|bbbbbb|
bajo
central
alto

Bsqueda lista inferior

Bsqueda lista superior

Figura 6.5. Bsqueda binaria de un elemento.

Si a[central] < clave, la nueva sublista de bsqueda tiene por valores extremos de
su rango bajo = central+1..alto .
Si clave < a[central] , la nueva sublista de bsqueda tiene por valores extremos de su
rango bajo..central-1 .
clave
[bbbbbbbbbb]
bajo
central 1 = alto

clave
[bbbbbbbbbb]
bajo = central + 1
alto

El algoritmo se termina bien porque se ha encontrado la clave o porque el valor de bajo excede
a alto y el algoritmo devuelve el indicador de fallo de 1 (bsqueda no encontrada).

192

Algoritmos y estructuras de datos

Ejemplo 6.5
Sea el array de enteros A (-8, 4, 5, 9, 12, 18, 25, 40, 60), buscar la clave, clave = 40.

1.

a[0]
8

a[1] a[2] a[3]


4

a[4]

a[5]

a[6]

a[7]

a[8]

12

18

25

40

60

bajo = 0
alto = 8

central
central =

bajo + alto
2

0+8
2

= 4

clave (40) > a[4] (12)

2.

Buscar en sublista derecha


18

25

40

60

bajo = 5
alto = 8

central =

bajo + alto
2

5+8
2

= 6

(divisin entera)

clave (40) > a[6] (25)

3.

Buscar en sublista derecha


40

bajo = 7
alto = 8

60

central =

bajo + alto
2

7+8
2

clave (40) = a[7] (40)

4.

= 7
(bsqueda con xito)

El algoritmo ha requerido 3 comparaciones frente a 8 comparaciones (n 1, 9 1 = 8) que se


hubieran realizado con la bsqueda secuencial.
La codificacin del algoritmo de bsqueda binaria:
/*
bsqueda binaria.
devuelve el ndice del elemento buscado, o bien -1 caso de fallo
*/
int busquedaBin(int lista[], int n, int clave)
{
int central, bajo, alto;
int valorCentral;
bajo = 0;
alto = n-1;
while (bajo <= alto)

Algoritmos de ordenacin y bsqueda

193

{
central = (bajo + alto)/2;
valorCentral = lista[central];
if (clave == valorCentral)
return central;
else if (clave < valorCentral)
alto = central -1;
else
bajo = central + 1;

/* ndice de elemento central */


/* valor del ndice central */
/* encontrado, devuelve posicin */
/* ir a sublista inferior */
/* ir a sublista superior */

}
return -1;

/* elemento no encontrado */

6.10.4. Anlisis de los algoritmos de bsqueda


Al igual que sucede con las operaciones de ordenacin cuando se realizan operaciones de bsqueda
es preciso considerar la eficiencia (complejidad) de los algoritmos empleados en la bsqueda. El
grado de eficiencia en una bsqueda ser vital cuando se trata de localizar una informacin en una
lista o tabla en memoria, o bien en un archivo de datos.
Complejidad de la bsqueda secuencial
La complejidad de la bsqueda secuencial diferencia entre el comportamiento en el caso peor y
mejor. El mejor caso se encuentra cuando aparece una coincidencia en el primer elemento de la lista
y en ese caso el tiempo de ejecucin es O(1). El caso peor se produce cuando el elemento no est en
la lista o se encuentra al final de la lista. Esto requiere buscar en todos los n trminos, lo que implica
una complejidad de O(n).
El caso medio requiere un poco de razonamiento probabilista. Para el caso de una lista aleatoria
es probable que una coincidencia ocurra en cualquier posicin. Despus de la ejecucin de un
nmero grande de bsquedas, la posicin media para una coincidencia es el elemento central n/2. El
elemento central ocurre despus de n/2 comparaciones, que define el coste esperado de la bsqueda.
Por esta razn, se dice que la prestacin media de la bsqueda secuencial es O(n).
Anlisis de la bsqueda binaria
El caso mejor se presenta cuando una coincidencia se encuentra en el punto central de la lista. En
este caso la complejidad es O(1) dado que slo se realiza una prueba de comparacin de igualdad.
La complejidad del caso peor es O(log2 n) que se produce cuando el elemento no est en la lista o el
elemento se encuentra en la ltima comparacin. Se puede deducir intuitivamente esta complejidad.
El caso peor se produce cuando se debe continuar la bsqueda y llegar a una sublista de longitud de 1. Cada iteracin que falla debe continuar disminuyendo la longitud de la sublista por un
factor de 2. El tamao de las sublistas es:
n

n/2

n/4

n/8 . . . 1

La divisin de sublistas requiere m iteraciones, en cada iteracin el tamao de la sublista se


reduce a la mitad. La sucesin de tamaos de las sublistas hasta una sublista de longitud 1:
n

n/2

n/2

siendo n/2m = 1.

n/23

n/24 . . . n/2m

194

Algoritmos y estructuras de datos

Tomando logaritmos en base 2 en la expresin anterior quedar:


n = 2m
m = log2 n
Por esa razn la complejidad del caso peor es O(log2 n). Cada iteracin requiere una operacin
de comparacin:
Total comparaciones ] 1 + log2 n
Comparacin de la bsqueda binaria y secuencial
La comparacin en tiempo entre los algoritmos de bsqueda secuencial y binaria se va haciendo
espectacular a medida que crece el tamao de la lista de elementos. Tengamos presente que en el
caso de la bsqueda secuencial, en el peor de los casos, coincidir el nmero de elementos examinados con el nmero de elementos de la lista tal como representa su complejidad O(n).
Sin embargo, en el caso de la bsqueda binaria, tengamos presente, por ejemplo, que 210 = 1.024,
lo cual implica el examen de 11 posibles elementos; si se aumenta el nmero de elementos de una
lista a 2.048 y teniendo presente que 211 = 2.048 implicar que el nmero mximo de elementos
examinados en la bsqueda binaria es 12. Si se sigue este planteamiento, se puede encontrar el
nmero m ms pequeo para una lista de 1.000.000, tal que
2n 1.000.000
Es decir, 219 = 524.288, 220 = 1.048.576 y por tanto el nmero de elementos examinados (en el
peor de los casos) es 21.
La Tabla 6.2 muestra la comparacin de los mtodos de bsqueda secuencial y bsqueda binaria. En la misma tabla se puede apreciar una comparacin del nmero de elementos que se deben
examinar utilizando bsquedas secuencial y binaria. Esta tabla muestra la eficiencia de la bsqueda
binaria comparada con la bsqueda secuencial y cuyos resultados de tiempo vienen dados por las
funciones de complejidad O(log2 n) y O(n) de las bsquedas binaria y secuencial respectivamente.
Tabla 6.2. Comparacin de las bsquedas binaria y secuencial
Nmeros de elementos examinados
Tamao de la lista
1
10
1.000
5.000
100.000
1.000.000

Bsqueda binaria
1
4
11
14
18
21

Bsqueda secuencial
1
10
1.000
5.000
100.000
1.000.000

A tener en cuenta
La bsqueda secuencial se aplica para localizar una clave en un vector no ordenado. Para
aplicar el algoritmo de bsqueda binaria la lista, o vector, donde se busca debe de estar
ordenado.
La complejidad de la bsqueda binaria es logartmica, O (log n), ms eficiente que la
bsqueda secuencial que tiene complejidad lineal, O (n).

Algoritmos de ordenacin y bsqueda

195

RESUMEN
Una de las aplicaciones ms frecuentes en programacin es la ordenacin.
Existen dos tcnicas de ordenacin fundamentales en gestin de datos: ordenacin de listas y ordenacin de archivos.
Los datos se pueden ordenar en orden ascendente o en orden descendente.
Cada recorrido de los datos durante el proceso de ordenacin se conoce como pasada o iteracin.
Los algoritmos de ordenacin bsicos son:
Seleccin.
Insercin.
Burbuja.
Los algoritmos de ordenacin ms avanzados son:

Shell.
Mergesort.
Radixsort.
Binsort.
Quicksort.

La eficiencia de los algoritmos de burbuja, insercin y seleccin es O(n2).


La eficiencia de los algoritmos, radixsort, mergesort y quicksort es O(n log n).
La bsqueda es el proceso de encontrar la posicin de un elemento destino dentro de una lista
Existen dos mtodos bsicos de bsqueda en arrays: secuencial y binaria.
La bsqueda secuencial se utiliza normalmente cuando el array no est ordenado. Comienza en el
principio del array y busca hasta que se encuentra el dato buscado y se llega al final de la lista.
Si un array est ordenado, se puede utilizar un algoritmo ms eficiente denominado bsqueda
binaria.
La eficiencia de una bsqueda secuencial es O(n).
La eficiencia de una bsqueda binaria es O(log n).

EJERCICIOS
6.1.

Cul es la diferencia entre ordenacin por intercambio y ordenacin por el mtodo de la burbuja?

6.2.

Se desea eliminar todos los nmeros duplicados de una lista o vector (array). Por ejemplo, si el array
toma los valores
4

11

11

ha de cambiarse a
4

11

Escribir una funcin que elimine los elementos duplicados de un array.


6.3.

Escribir una funcin que elimine los elementos duplicados de un vector ordenado. Cul es la
eficiencia de esta funcin? Comparar la eficiencia con la correspondiente a la funcin del Ejercicio 6.2.

6.4.

Un vector contiene los elementos mostrados a continuacin. Los primeros dos elementos se han
ordenado utilizando un algoritmo de insercin. Cul ser el valor de los elementos del vector
despus de tres pasadas ms del algoritmo?
3

13

25

45

23

98

58

196

Algoritmos y estructuras de datos

6.5.

Se tiene la siguiente lista:


47

21

32

56

92

Despus de dos pasadas de un algoritmo de ordenacin, el array se ha quedado dispuesto as:


3

21

47

32

56

92

Qu algoritmo de ordenacin se est utilizando (seleccin, burbuja o insercin)? Justifique la


respuesta.
6.6.

Un array contiene los elementos indicados ms abajo. Utilizando el algoritmo de ordenacin Shell
encuentre las pasadas y los intercambios que se realizan para su ordenacin.
8

43

17

40

16

18

97

11

6.7.

Partiendo del mismo array que en el Ejercicio 6.6, encuentre las particiones e intercambios que
realiza el algoritmo de ordenacin quicksort para su ordenacin.

6.8.

Un array de registros se quiere ordenar segn el campo clave fecha de nacimiento. Dicho campo
consta de tres subcampos: da, mes y ao de 2, 2 y 4 dgitos respectivamente. Adaptar el mtodo de
ordenacin Radixsort a esta ordenacin.

6.9.

Un array contiene los elementos indicados ms abajo. Utilizando el algoritmo de bsqueda binaria,
trazar las etapas necesarias para encontrar el nmero 88.
8

13

17

26

44

56

88

97

Igual bsqueda pero aplicada al caso del nmero 20.


6.10.

Escribir la funcin de ordenacin correspondiente al mtodo Radixsort para poner en orden alfabtico una lista de n nombres.

6.11.

Escribir una funcin de bsqueda binaria aplicado a un array ordenado en modo descendente.

6.12.

Supongamos que se tiene una secuencia de n nmeros que deben ser clasificados:
1. Utilizar el mtodo de Shell para determinar cuntas comparaciones y cuntos intercambios se
requieren para clasificar la secuencia si:
Ya est clasificada.
Est en orden inverso.
2. Repetir el paso 1 para el mtodo de quicksort.

PROBLEMAS
6.1.

Un mtodo de ordenacin muy simple, pero no muy eficiente, de elementos x1, x2, x3, ...
xn en orden ascendente es el siguiente:
Paso 1: Localizar el elemento ms pequeo de la lista x1 a xn; intercambiarlo con x1.
Paso 2: Localizar el elemento ms pequeo de la lista x2 a xn, intercambiarlo con x2.
Paso 3: Localizar el elemento ms pequeo de la lista x3 a xn, intercambiarlo con xn.
En el ltimo paso, los dos ltimos elementos se comparan e intercambian, si es necesario, y la ordenacin se termina. Escribir un programa para ordenar una lista de elementos, siguiendo este mtodo.

Algoritmos de ordenacin y bsqueda

197

6.2.

Dado un vector x de n elementos reales, donde n es impar, disear una funcin que
calcule y devuelva la mediana de ese vector. La mediana es el valor tal que la mitad de
los nmeros son mayores que el valor y la otra mitad son menores. Escribir un programa que compruebe la funcin.

6.3.

Se trata de resolver el siguiente problema escolar. Dadas las notas de los alumnos de
un colegio en el primer curso de bachillerato, en las diferentes asignaturas (5, por
comodidad), se trata de calcular la media de cada alumno, la media de cada asignatura,
la media total de la clase y ordenar los alumnos por orden decreciente de notas medias
individuales.
Nota: Utilizar como algoritmo de ordenacin el mtodo Shell.

6.4.

Escribir un programa de consulta de telfonos. Leer un conjunto de datos de mil nombres y nmeros de telfono de un archivo que contiene los nmeros en orden aleatorio.
Las consultas han de poder realizarse por nombre y por nmero de telfono.

6.5.

Realizar un programa que compare el tiempo de clculo de las bsquedas secuencial y


binaria. Una lista A se rellena con 2.000 enteros aleatorios en el rango 0 ... 1.999 y a
continuacin se ordena. Una segunda lista B se rellena con 500 enteros aleatorios en
el mismo rango. Los elementos de B se utilizan como claves de los algoritmos de
bsqueda.

6.6.

Se dispone de dos vectores, Maestro y Esclavo, del mismo tipo y nmero de elementos.
Se deben imprimir en dos columnas adyacentes. Se ordena el vector Maestro, pero
siempre que un elemento de Maestro se mueva, el elemento correspondiente de Esclavo debe moverse tambin; es decir, cualquier cosa que se haga en Maestro[i] debe
hacerse en Esclavo[i]. Despus de realizar la ordenacin se imprimen de nuevo los
vectores. Escribir un programa que realice esta tarea.
Nota: Utilizar como algoritmo de ordenacin el mtodo quicksort.

6.7.

Cada lnea de un archivo de datos contiene informacin sobre una compaa de informtica. La lnea contiene el nombre del empleado, las ventas efectuadas por el mismo y
el nmero de aos de antigedad del empleado en la compaa. Escribir un programa
que lea la informacin del archivo de datos y a continuacin se visualiza. La informacin
debe ser ordenada por ventas de mayor a menor y visualizada de nuevo.

6.8.

Se desea realizar un programa que realice las siguientes tareas:

a) Generar, aleatoriamente, una lista de 999 nmeros reales en el rango de 0 a


20.000.
b) Ordenar en modo creciente por el mtodo de la burbuja.
c) Ordenar en modo creciente por el mtodo Shell.
d Ordenar en modo creciente por el mtodo Radixsort.
e) Buscar si existe el nmero x (ledo del teclado) en la lista. La bsqueda debe ser
binaria.
Ampliar el programa anterior de modo que se puedan obtener y visualizar en el programa principal los siguientes tiempos:
t1. Tiempo empleado en ordenar la lista por cada uno de los mtodos.
t2. Tiempo que se empleara en ordenar la lista ya ordenada.
t3. Tiempo empleado en ordenar la lista ordenada en orden inverso.
6.9.

Construir un mtodo que permita ordenar por fechas y de mayor a menor un vector de
n elementos que contiene datos de contratos (n 50). Cada elemento del vector debe

198

Algoritmos y estructuras de datos

ser un objeto con los campos da, mes, ao y nmero de contrato. Pueden existir diversos contratos con la misma fecha, pero no nmeros de contrato repetidos.
Nota: El mtodo a utilizar para ordenar ser el de radixsort.
6.10.

Escribir un programa que genere un vector de 10.000 nmeros aleatorios de 1 a 500.


Realice la ordenacin del vector por dos mtodos:
Binsort.
Radixsort.
Escribir el tiempo empleado en la ordenacin de cada mtodo.

6.11.

Se leen dos listas de nmeros enteros, A y B de 100 y 60 elementos, respectivamente.


Se desea resolver mediante procedimientos las siguientes tareas:

a) Ordenar aplicando el mtodo de quicksort cada una de las listas A y B.


b) Crear una lista C por intercalacin o mezcla de las listas A y B.
c) Visualizar la lista C ordenada.

Codicacin Human
1 Historia

En ciencias de la computacin y teora de la informacin, la codicacin Human es un algoritmo usado para compresin de datos. El trmino se reere al uso de una
tabla de cdigos de longitud variable para codicar un
determinado smbolo (como puede ser un carcter en un
archivo), donde la tabla ha sido rellenada de una manera
especca basndose en la probabilidad estimada de aparicin de cada posible valor de dicho smbolo. Fue desarrollado por David A. Human mientras era estudiante
de doctorado en el MIT, y publicado en A Method for
the Construction of Minimum-Redundancy Codes.

En 1951, a David Human y a sus compaeros de clase


de la asignatura Teora de la Informacin se les permiti optar entre la realizacin de un examen nal o la
presentacin de un trabajo. El profesor Robert. M. Fano
asign las condiciones del trabajo bajo la premisa de encontrar el cdigo binario ms eciente. Human, ante la
imposibilidad de demostrar qu cdigo era ms eciente, se rindi y empez a estudiar para el examen nal.
Mientras estaba en este proceso vino a su mente la idea
La codicacin Human usa un mtodo especco para de usar rboles binarios de frecuencia ordenada y rpidaelegir la representacin de cada smbolo, que da lugar a un mente prob que ste era el mtodo ms eciente.
cdigo prejo (es decir, la cadena de bits que representa Con este estudio, Human super a su profesor, quien
a un smbolo en particular nunca es prejo de la cadena haba trabajado con el inventor de la teora de la informade bits de un smbolo distinto) que representa los carac- cin Claude Shannon con el n de desarrollar un cdigo
teres ms comunes usando las cadenas de bits ms cortas, similar. Human solucion la mayor parte de los errores
y viceversa. Human fue capaz de disear el mtodo de en el algoritmo de codicacin Shannon-Fano. La solucompresin ms eciente de este tipo: ninguna represen- cin se basaba en el proceso de construir el rbol de abajo
tacin alternativa de un conjunto de smbolos de entrada a arriba en vez de al contrario.
produce una salida media ms pequea cuando las frecuencias de los smbolos coinciden con las usadas para
crear el cdigo. Posteriormente se encontr un mtodo
para llevar esto a cabo en un tiempo lineal si las proba- 2 Denicin del problema
bilidades de los smbolos de entrada (tambin conocidas
como pesos) estn ordenadas.

2.1 Descripcin informal

Para un grupo de smbolos con una distribucin de probabilidad uniforme y un nmero de miembros que es po- Dados Un conjunto de smbolos y sus pesos (normaltencia de dos, la codicacin Human es equivalente a
mente proporcionales a probabilidades).
una codicacin en bloque binaria, por ejemplo, la codicacin ASCII. La codicacin Human es un mtodo Encontrar Un cdigo binario prejo (un conjunto de
para crear cdigos prejo tan extendido que el trmino
elementos del cdigo) con longitud de palabra escodicacin Human es ampliamente usado como siperada mnima (de forma equivalente, un rbol con
nnimo de cdigo prejo, incluso cuando dicho cdigo
longitud del camino mnima).
no se ha producido con el algoritmo de Human.
Aunque la codicacin de Human es ptima para una
codicacin smbolo a smbolo dada una distribucin de
probabilidad, su optimalidad a veces puede verse accidentalmente exagerada. Por ejemplo, la codicacin aritmtica y la codicacin LZW normalmente ofrecen mayor capacidad de compresin. Estos dos mtodos pueden
agrupar un nmero arbitrario de smbolos para una codicacin ms eciente, y en general se adaptan a las estadsticas de entrada reales. Este ltimo es til cuando las
probabilidades no se conocen de forma precisa o varan
signicativamente dentro del ujo de datos.

2.2 Descripcin formal


Entradas
El alfabeto A = {a1 , a2 , , an } , que es el alfabeto de
smbolos de tamao n .
El conjunto W = {w1 , w2 , , wn } , que es el conjunto de pesos (positivos) de los smbolos (normalmente proporcionales a probabilidades), es decir wi =
peso (ai ) , 1 i n .
Salida
1

TCNICA BSICA

El cdigo C (A, W ) = {c1 , c2 , , cn } , que es el con- Ntese que, en general, un cdigo Human no necesita
junto de elementos del cdigo (binario), donde ci es la ser nico, pero si lo es siempre es uno de los cdigos que
palabra del cdigo para ai , 1 i n .
minimiza L(C) .
Objetivo

3 Tcnica bsica

n
Sea L (C) =
i=1 wi longitud (ci ) la longitud del
camino ponderado del cdigo C . Condicin: L (C) La tcnica utilizada es el propio algoritmo de Human.
L (T ) para cualquier cdigo T (A, W ) .
Consiste en la creacin de un rbol binario en el que se
etiquetan los nodos hoja con los caracteres, junto a sus
frecuencias, y de forma consecutiva se van uniendo cada
2.2.1 Ejemplo
pareja de nodos que menos frecuencia sumen, pasando
a crear un nuevo nodo intermedio etiquetado con dicha
Para cualquier cdigo biunvoco, aqul cdigo decodisuma. Se procede a realizar esta accin hasta que no quecable de forma nica, la suma de las probabilidades de
dan nodos hoja por unir a ningn nodo superior , y se ha
todos los smbolos es siempre menor o igual que uno. En
formado el rbol binario.
este ejemplo, es exactamente igual a uno; por lo que decimos que es un cdigo completo. Si no es el caso siempre Posteriormente se etiquetan las aristas que unen cada uno
se puede derivar un cdigo equivalente aadiendo smbo- de los nodos con ceros y unos (hijo derecho e izquierdo,
los extra (con probabilidades nulas asociadas), para hacer respectivamente, por ejemplo). El cdigo resultante para
cada carcter es la lectura, siguiendo la rama, desde la
el cdigo completo a la vez que se mantiene biunvoco.
raz hacia cada carcter (o viceversa) de cada una de las
Tal como deni Shannon (1948), la cantidad de inforetiquetas de las aristas.
macin h (en bits) de cada smbolo a con probabilidad
no nula es

3.1 Construccin del rbol


h(ai ) = log2

1
.
wi

Para obtener los cdigos de Human hay que construir un


rbol binario de nodos, a partir de una lista de nodos, cuyo
La entropa H (en bits) es la suma ponderada, de todos los tamao depende del nmero de smbolos, n . Los nodos
smbolos ai con probabilidad no nula wi, de la cantidad de contienen dos campos, el smbolo y el peso (frecuencia
de aparicin).
informacin de cada smbolo:
Cada nodo del rbol puede ser o bien un nodo hoja o un
nodo interno. Inicialmente se considera que todos los no

1
dos
de la lista inicial son nodos hoja del rbol. Al ir consH(A) =
wi h(ai ) =
wi log2
=
wi log
2 wi .
wi
truyendo el rbol, los nodos internos tendrn un peso y
wi >0
wi >0
wi >0
dos nodos hijos, y opcionalmente un enlace al nodo pa(Nota: un smbolo con probabilidad cero tiene una contri- dre que puede servir para recorrer el rbol en ambas dibucin nula a la entropa. Cuando w = 0, w log2 (1/w) = recciones. Por convencin el bit '0' se asocia a la rama
0 es una indeterminacin; aplicando la regla de izquierda y el bit '1' a la derecha. Una vez nalizado el
L'Hpital :
rbol contendr n nodos hijo y n 1 nodos internos.

lim+

w0

log2 w1
1
w

= lim+
w0

w 1ln 2
w12

= lim+
w0

w
=0
ln 2

Por simplicidad, los smbolos con probabilidad nula han


sido dejados fuera de la frmula anterior).

El proceso de construccin del rbol comienza formando un nodo intermedio que agrupa a los dos nodos hoja
que tienen menor peso (frecuencia de aparicin). El nuevo nodo intermedio tendr como nodos hijos a stos dos
nodos hoja y su campo peso ser igual a la suma de los
pesos de los nodos hijos. Los dos nodos hijos se eliminan de la lista de nodos, sustituyndolos por el nuevo nodo
intermedio. El proceso se repite hasta que slo quede un
nodo en la lista. ste ltimo nodo se convierte en el nodo
raz del rbol de Human.

Como consecuencia del teorema de codicacin de fuente de Shannon, la entropa es una medida de la longitud de
palabra ms pequea del cdigo que es tericamente posible para un alfabeto dado con unos pesos asociados. En
este ejemplo, la longitud media de la palabra es 2,25 bits El algoritmo de construccin del rbol puede resumirse
por smbolo, ligeramente mayor que la entropa calcula- as:
da de 2,205 bits por smbolo. As que no slo este cdigo
1. Crear un nodo hoja para cada smbolo, asociando un
es ptimo en el sentido de que ningn otro cdigo posipeso segn su frecuencia de aparicin e insertarlo en
ble funciona mejor, sino que adems est muy cercano al
la lista ordenada ascendentemente.
lmite terico establecido por Shannon.

3
2. Mientras haya ms de un nodo en la lista:

de ineciencia ilimitado. Estas situaciones a menudo responden bien a una forma de paquete llamada codicacin
(a) Eliminar los dos nodos con menor probabili- run-length.
dad de la lista
La codicacin aritmtica produce una ligera ganancia
(b) Crear un nuevo nodo interno que enlace a los
sobre la codicacin Human, pero en la prctica esta
nodos anteriores, asignndole como peso la suganancia raramente ha sido lo bastante grande como pama de los pesos de los nodos hijos.
ra utilizar la codicacin aritmtica que posee una com(c) Insertar el nuevo nodo en la lista, (en el lugar plejidad computacional ms elevada y adems requiere el
que le corresponda segn el peso).
pago de royalties. (A julio de 2006, IBM posee patentes
de muchos mtodos de codicacin aritmtica en varias
3. El nodo que quede es el nodo raz del rbol.
jurisdicciones).
Aqu hay un ejemplo de construccin del rbol a partir
del texto en francs j'aime aller sur le bord de l'eau les
jeudis ou les jours impairs":

5 Variacin
Existen muchas variaciones del cdigo de Human, algunos que utilizan Human como algoritmo, y otros que
encuentra el cdigo prejo ptimo. Tenga en cuenta que
en este ltimo caso el mtodo no es necesariamente similar al de Humans y no tiene por qu terminar en tiempo
polinmico.

5.1 Cdigo Human n-ario


El algoritmo n-ario de Human usa el alfabeto {0,1,.,n1} para codicar el mensaje y construir un rbol n-ario.
Este enfoque fue considerado por Human en su enfoque
originario.

Propiedades principales
5.2 Cdigo Human adaptable

Las probabilidades usadas pueden ser genricas para el


dominio de la aplicacin, que estn basadas en el caso
promedio, o pueden ser las frecuencias reales encontradas en el texto que se est comprimiendo. (Esta variacin
requiere que la tabla de frecuencias u otra estructura utilizada para la codicacin deben ser almacenadas con el
texto comprimido; las implementaciones emplean varios
mecanismos para almacenar tablas de manera eciente).
La codicacin Human es ptima cuando la probabilidad de cada smbolo de entrada es una potencia negativa de dos. Los cdigos prejos tienden a ser ligeramente
inecientes en alfabetos pequeos, donde las probabilidades normalmente se encuentran entre esos puntos ptimos. El empaquetado, o expansin del tamao del alfabeto concatenando mltiples smbolos en palabras de
tamao jo o variable antes de la codicacin Human,
normalmente ayuda, especialmente cuando smbolos adyacentes estn correlacionados (como en el caso de un
texto en lenguaje natural). El peor caso para una codicacin Human puede darse cuando la probabilidad de
un smbolo excede 21 = 0.5, haciendo el lmite superior

La variacin llamada cdigo de human adaptable calcula dinmicamente la probabilidad de la frecuencia de


la cadena de origen basada en antiguas apariciones. Est
relacionado con la familia de algoritmos LZ.

5.3 Algoritmo de Human de plantilla


La mayora de las veces, el tamao de las implementaciones del cdigo de Human estn representadas por probabilidades numricas, pero el algoritmo no lo exige; se
requiere solo una manera de ordenar el tamao y aadirle. El algoritmo de plantilla de Human permite utilizar
cualquier tipo de tamao (costos, frecuencias, los pares
del tamao, tamaos no numricos) y uno de los muchos
que combina mtodos (no solo la adicin). Tales algoritmos pueden resolver problemas de minimizacin, como
la minimizacin de Max[Wi + C(i)], un problema que se
aplic por primera vez en el diseo de circuitos.

5.4

6 APLICACIONES

Cdigo de Human de tamao limita- rboles binarios alfabticos ptimos son usados a menudo
como boles binarios de bsqueda.
do

El Cdigo de Human de tamao de limitado es una variante donde el objetivo es lograr que el camino de coste mnimo con la restriccin de que la longitud de cada palabra sea menor que una constante. El algoritmo de
package-merge lo soluciona con un algoritmo voraz, muy
similar al usado por el algoritmo de Human. Su complejidad es del orden de O (nL), siendo L el tamao de la
palabra ms larga. No se conoce algoritmo para resolver
este problema en tiempo lineal, a diferencia de los problemas convencionales de Human.

5.5

Codicacin Human con costes desiguales

En el problema estndar de la codicacin Human, se


asume que cada smbolo del alfabeto con el que se construye cada palabra del cdigo tiene igual costo de transmisin: una palabra del cdigo cuya longitud sea N dgitos siempre tendr un costo de N, sin importar cuntos
de esos dgitos sean ceros, cuntos unos, etc. Cuando se
trabaja bajo esta suposicin, minimizar el costo total del
mensaje y minimizar el nmero total de dgitos es lo mismo.
En la codicacin Human con costes desiguales la suposicin anterior ya no es verdadera: los smbolos del alfabeto pueden tener longitudes no uniformes, debido a caractersticas del medio de transmisin. Un ejemplo es el
alfabeto del cdigo Morse, donde una 'raya' requiere ms
tiempo para ser enviada que un 'punto', y por lo tanto el
costo del tiempo de transmisin de una raya es mayor. El
objetivo sigue siendo minimizar la longitud media de la
palabra de cdigo, pero no es suciente con minimizar el
nmero de smbolos usado en el mensaje. No se conoce
un algoritmo para solucionar esto de la misma manera o
con la misma eciencia que la codicacin Human convencional.

5.6

5.7 Cdigo cannico de Human


Si los pesos correspondientes a las entradas (ordenadas
alfabticamente) estn en orden numrico, los cdigos
de Human tienen la misma longitud que los cdigos alfabtico ptimos, as que pueden calcularse como estas
ltimas, haciendo que la codicacin Hu-Tucker sea innecesaria. El cdigo resultante de las entradas (re) ordenadas numricamente se conoce como cdigo cannico
de Human y es el cdigo que normalmente se usa en
la prctica, dada su facilidad para codicar y decodicar. La tcnica para encontrar este cdigo se conoce como codicacin de Human-Shannon-Fano, ya que es
ptima como la codicacin de Human, y alfabtica segn la probabilidad de los pesos, como la codicacin de
Shannon-Fano.
De esta manera, el mtodo de codicacin de HumanShannon-Fano ira asignando gradualmente los cdigos
prejo ms cortos a aquellos smbolos de mayor peso, y
los ms largos a los de menor peso. Es Decir, ordenar
descendentemente los smbolos segn su peso, luego codicar segn el mtodo de Codicacin Shannon-Fano,
una vez obtenida la codicacin se procede al armado
del un Diagrama de ujo que comienza preguntando si el
valor del primer bit del prejo obtenido para el smbolo buscado es 0, del cual salen las 2 ramas, una para la
armacin y otra para la negacin; luego seguir preguntando para el segundo bit y derivar, para cada rama, a
otra decisin o a un smbolo, segn corresponda.

6 Aplicaciones

rboles binarios alfabticos ptimos La codicacin aritmtica puede considerarse como una
generalizacin de la codicacin de Human, de hecho,
(codicacin Hu-Tucker)

En una situacin de codicacin Human estndar, se


asume que cualquier cdigo puede corresponderse con
cualquier smbolo de entrada. En la versin alfabtica, el
orden alfabtico de las entradas y salidas debe ser idntico. As, por ejemplo, a la entrada A = {a, b, c} no se
le puede asignar H (A, C) = {00, 1, 01} , sino que le
correspondera H (A, C) = {00, 01, 1} o H (A, C) =
{0, 10, 11} . Esto tambin se conoce como el problema
de Hu-Tucker, por los autores de la publicacin que contiene la primera solucin lineartmica a este problema de
optimalidad binaria alfabtica, que es similar al algoritmo
de Human, pero no es una variacin del mismo. Estos

en la prctica la codicacin Aritmtica viene precedida por la codicacin de human, pues es ms fcil encontrar una aritmtica para una entrada binaria que para
una no binaria. Por otra parte aunque la codicacin de
compresin ofrece mejor rendimiento que la codicacin
de Human, la codicacin de Human se encuentra todava en uso generalizado debido a su simplicidad, alta
velocidad, y falta de problemas de patentes.
La codicacin de Human se utiliza a menudo en algn otro mtodo de compresin. Como la deacin y
cdec multimedia como JPEG y MP3 que tienen una
cuanticacin digital basada en la codicacin de Human.

Ejemplo

Una sonda espacial ha sido lanzada al espacio para contar cierto tipo de perturbaciones estelares. Ha de contar
cuntas se producen en cada minuto, y tiene cada da una
ventana de tiempo bastante reducida para enviar los datos
a Tierra; por tanto, interesa reducir al mximo el tiempo
de transmisin, y para ello se recurre a codicar las muestras mediante un cdigo de Human.
En la siguiente tabla se muestran los valores a transmitir, junto con sus frecuencias relativas, su cdigo en una
codicacin binaria de 3 bits, y su cdigo en un posible
cdigo Human para estos valores.
Puede observarse que, en la codicacin binaria, todos
los posibles valores reciben cdigos del mismo nmero
de bits, mientras que en la codicacin Human, cada
valor tiene un nmero diferente de bits: los cdigos ms
frecuentes poseen dos bits, mientras que los menos frecuentes poseen cuatro bits.

8 Bibliografa
D.A. Human, A method for the construction of
minimum-redundancy codes, Proceedings of the
I.R.E., sept 1952, pp 1098-1102

9 Vase tambin
Algoritmo de Human
Cdigo cannico de Human
Codicacin aritmtica

10 Enlaces externos
Generador de rboles de Human
Human en PHP

A continuacin se observa el cdigo necesario para transmitir la siguiente serie de valores:


5,4,2,3,2,2,1,0,1,3,2,4,3,4,3,2,3,4,2,4
Utilizando la codicacin binaria, sera una serie de
60 bits; es decir, 3 bits por smbolo.
101100010011010010001000001011010100011100011010011100010100
nota: se ha aadido la misma serie separada en bloques
con la nica razn de facilitar una transcripcin manual
libre de errores para un estudio por parte del lector interesado.
101.100.010.011.010.010.001.000.001.011.010.100.011.100.011.010.011.100.010.100
Utilizando, en cambio, la codicacin Human, se
tendra que enviar una secuencia de 53 bits; es decir,
2,65 bits por smbolo.
01110110001100001001010110001101101101100110110000110
nota: la misma serie dividida en bloques de 4 bits para la
misma observacin anterior.
0111.0110.0011.0000.1001.0101.1000.1101.1011.0110.0110.1100.0011.0
En este ejemplo, la media de bits por smbolo que cabra
esperar de esta codicacin, en cadenas de valores ms
largas, es de 2,4.
Para su comparacin, la entropa del conjunto de smbolos es de 2,366; es decir, el mejor mtodo de compresin
sera capaz de codicar estos valores utilizando 2,366 bits
por smbolo.
Es posible, tambin, apreciar cmo se pueden extraer sin
ninguna ambigedad los valores originales a partir de la
cadena codicada mediante Human.
Hay que aadir que la codicacin de Human no puede
ser aplicada a imgenes en blanco y negro porque es incapaz de producir compresin sobre un alfabeto binario.

11 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

11
11.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Codicacin Human Fuente: https://es.wikipedia.org/wiki/Codificaci%C3%B3n_Huffman?oldid=89260607 Colaboradores: Sms, Elwikipedista, Daniel G., Jacobo Tarrio, Mandramas, Niqueco, Rembiapo pohyiete (bot), Francosrodriguez, Platonides, Caiserbot, Yrbot,
BOT-Superzerocool, Adrruiz, KnightRider, Rconejo, CEM-bot, Laura Fiorucci, Martin Rizzo, JAnDbot, TXiKiBoT, Biasoli, XemDenots,
Muro Bot, Feministo, SieBot, Arlekean, Farisori, Aipni-Lovrij, SilvonenBot, Redor, Gizbot, Dga-ada08, Marcelobusico, MelancholieBot, Kyle the bot, Kuakua77, Rimeju, Luckas-bot, Nallimbot, Dario chans, ArthurBot, Xqbot, Torrente, Alph Bot, EmausBot, Ooz dot
ie, Rezabot, MerlIwBot, KLBot2, Allanbot, Addbot, Maester Aemon, JacobRodrigues, Michael J. White, Crystallizedcarbon, BenjaBot y
Annimos: 35

11.2

Imgenes

Archivo:Arbol_de_Huffman.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/2/2a/Arbol_de_Huffman.svg Licencia: CC


BY 3.0 Colaboradores: Trabajo propio Artista original: Redor
Archivo:Huffman_huff_demo.gif Fuente: https://upload.wikimedia.org/wikipedia/commons/a/ac/Huffman_huff_demo.gif Licencia:
CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: Eeppeliteloop

11.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Cdigo Hamming
En informtica, el cdigo de Hamming es un cdigo detector y corrector de errores que lleva el nombre de su
inventor, Richard Hamming. En los datos codicados en
Hamming se pueden detectar errores en un bit y corregirlos, sin embargo no se distingue entre errores de dos bits
y de un bit (para lo que se usa Hamming extendido). Esto
representa una mejora respecto a los cdigos con bit de
paridad, que pueden detectar errores en slo un bit, pero
no pueden corregirlo.

error, no indica en qu bit se cometi. Los datos se deben


desechar por entero y volverse a transmitir. En un medio
ruidoso, una transmisin correcta podra tardar mucho
tiempo o incluso, en el peor de los casos, no darse nunca. El chequeo de paridad, aunque no es muy bueno, usa
un nico bit, por lo que produce muy poca sobrecarga, y
adems permite la correccin de ese bit si es conocida su
posicin.

1.2 Dos entre cinco

Cdigos pre-Hamming

En los aos 40, Bell utiliz un cdigo algo ms sosticado


conocido como dos-entre-cinco. Este cdigo se basa en
Antes de los cdigos Hamming se utilizaron ciertos cdi- que cada bloque de cinco bits (conocido como penta-bit)
gos detectores de error, como lo fueron el cdigo linteing, tuviera exactamente dos unos, asegurando as que tenga
pero ninguno lleg a ser tan ecaz como los de Hamming. una Distancia de Hamming igual a dos. De este modo, la
A continuacin se describen algunos de estos cdigos.
computadora podra detectar posibles errores cuando en
su entrada no haba exactamente dos unos en cada pentabit.

1.1

Paridad

Este cdigo segua nicamente detectando errores por


cambio en un solo bit; si en un mismo penta-bit un 0 camLa paridad consiste en aadir un bit, denominado bit de
biaba a 1 y un 1 cambiaba a 0, la regla de dos-entre-cinco
paridad, que indique si el nmero de los bits de valor 1
se segua cumpliendo y el error quedaba sin descubrir.
en los datos precedentes es par o impar. Si un solo bit
cambiara por error en la transmisin, el mensaje cambiar de paridad y el error se puede detectar (ntese que el
1.3 Repeticin
bit donde se produzca el error puede ser el mismo bit de
paridad). La convencin ms comn es que un valor de Otro cdigo utilizado, consista en repetir cada bit de daparidad 1 indica que hay un nmero impar de unos en
tos varias veces para asegurarse de que la transmisin era
los datos, y un valor de paridad de 0 indica que hay un correcta. Por ejemplo, si el bit de datos que se enva fuera
nmero par de unos en los datos.
un 1, un cdigo de repeticin con n=3, enviara 111. Si
La comprobacin de paridad no es muy robusta, dado que los tres bits recibidos no eran idnticos, haba un error. En
si cambia de forma uniforme un nmero par de bits, el un ambiente sin demasiado ruido, la mayora de las veces
bit de paridad ser vlido y el error no ser detectado. solamente cambiara un bit en cada paquete de tres bits.
Se utiliza cuando se cumplen simultneamente dos con- Por lo tanto, datos del tipo 001, 010, y 100 se correspondiciones: que la probabilidad de que falle un bit es baja y den al bit 0, mientras que 110, 101, y 011 se corresponden
que las fallas de bits son sucesos independientes. De es- con el bit 1. Un cdigo con esta capacidad de reconstruir
ta forma la probabilidad de que fallen dos (o ms) bits el mensaje original en la presencia de errores se conoce
es muy baja, por lo que cuando no detecta error es alta- como cdigo corrector de errores.
mente probable que el cdigo sea efectivamente correcto. Sin embargo, este cdigo no puede reparar correctamenCabe destacar que dichas condiciones se ajustan al caso te todos los errores. En nuestro ejemplo, si el error en la
de las memorias de las computadoras modernas pero no transmisin provocara el cambio simultneo de dos bits y
ocurre lo mismo con los dispositivos de almacenamiento el receptor recibiera 001, el sistema detectara el error,
que guardan la informacin en forma serial (un bit a con- pero considerando que el bit original era 0, lo cual es intinuacin de otro) ni con los sistemas de transmisin de correcto. Si se aumenta el nmero de veces que se repite
datos seriales ya que en estos casos el hecho que falle un cada bit a cuatro (n=4), es posible detectar los errores
bit est vinculado, en forma no despreciable, a la falla de en dos bits pero obviamente no se podrn corregir; con
otro adyacente.
cinco, es posible corregir errores de dos bits, pero no lo
Por otro lado, la paridad, aunque puede detectar que hay podr hacer en errores de tres bits.
1

Por otra parte, el cdigo de la repeticin es extremadamente inecaz, pues reduce la velocidad de transmisin
por tres en nuestro ejemplo original y su ecacia cae drsticamente al aumentar el nmero de veces que cada bit se
repite para detectar y corregir ms errores. El uso del cdigo de bloques no lineales para deteccin de errores no
es muy implementado por lo tanto emplearemos el cdigo
de errores lineales para la correccin de errores.

Cdigos Hamming

EJEMPLO

bits de datos del mensaje. El algoritmo de Hamming (7.4)


puede corregir cualquier error de un solo bit, pero cuando hay errores en ms de un bit, la palabra transmitida se
confunde con otra con error en un slo bit, siendo corregida, pero de forma incorrecta, es decir que la palabra que
se corrige es otra distinta a la original, y el mensaje nal
ser incorrecto sin saberlo. Para poder detectar (aunque
sin corregirlos) errores de dos bits, se debe aadir un bit
ms, y el cdigo se llama Hamming extendido. El procedimiento para esto se explica al nal. El algoritmo es el
siguiente:

1. Todos los bits cuya posicin es potencia de dos se utiSi se aaden junto al mensaje ms bits detectores- lizan como bits de paridad (posiciones 1, 2, 4, 8, 16, 32,
correctores de error y si esos bits se pueden ordenar de 64, etc.).
modo que diferentes bits de error producen diferentes re- 2. Los bits del resto de posiciones son utilizados como bits
sultados, entonces los bits errneos podran ser identica- de datos (posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15,
dos. En un conjunto de siete bits, hay slo siete posibles 17, etc.).
errores de bit, por lo que con tres bits de control de error
se podra especicar, adems de que ocurri un error, en 3. Cada bit de paridad se obtiene calculando la paridad de
alguno de los bits de datos. La posicin del bit de paridad
qu bit fue.
determina la secuencia de los bits que alternativamente
Hamming estudi los esquemas de codicacin existen- comprueba y salta, a partir de ste, tal y como se explica
tes, incluido el de dos entre cinco, y generaliz sus con- a continuacin. Posicin 1: salta 0, comprueba 1, salta 1,
clusiones. Para empezar, desarroll una nomenclatura pa- comprueba 1, etc. Posicin 2: salta 1, comprueba 2, salta
ra describir el sistema, incluyendo el nmero de los bits 2, comprueba 2, etc. Posicin 4: salta 3, comprueba 4, salde datos y el de los bits detectores-correctores de error ta 4, comprueba 4, etc. Posicin 8: salta 7, comprueba 8,
en un bloque. Por ejemplo, la paridad incluye un solo bit salta 8, comprueba 8, etc. Posicin 16: salta 15, compruepara cualquier palabra de datos, as que las palabras del ba 16, salta 16, comprueba 16, etc. Regla general para la
Cdigo ASCII que son de siete bits, Hamming las descri- posicin n es: salta n-1 bits, comprueba n bits, salta n bits,
ba como un cdigo (8.7), esto es, un total de 8 bits de los comprueba n bits... Y as sucesivamente. En otras palacuales 7 son datos. con base a la anterior repeticin, sera bras, el bit de paridad de la posicin comprueba los bits
un cdigo (3.1), siguiendo la misma lgica. La relacin en las posiciones que tengan al bit k en su representacin
de la informacin es el segundo nmero dividido por el binaria. Dicho a la inversa, el bit 4, chequea los bits 4, 5, 6,
primero, por nuestro ejemplo de la repeticin, 1/3.
7, al ser estos los de su representacin binaria: 4=100(2),
Hamming tambin estudi los problemas que surgan al 5=101(2), 6=110(2) y 7=111(2). Por el contrario, el miscambiar dos o ms bits a la vez y describi esto como mo bit de paridad no comprueba el bit 8, debido a que en
distancia (ahora llamada distancia de Hamming en su su representacin binaria el bit nmero 3 (=4) es igual a 0
honor). La paridad tiene una distancia de 2, dado que (8=1000B). As, por ejemplo, para los primeros trminos
cualquier error en dos bits no ser detectado. La repeti- se tiene: En la Posicin 1 (2^0 = 1), comprobaramos los
cin (3.1)tiene una distancia de 3, pues son necesarios el bits: 1, 3, 5, 7, 9, 11, 13... En la Posicin 2 (2^1 = 2), los
cambio simultneo de tres bits para obtener otra palabra bits: 2, 3, 6, 7, 10, 11, 14, 15... En la Posicin 4 (2^2 =
de cdigo. La repeticin (4.1) (cada bit se repite cuatro 4), los bits: 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23... En
veces) tiene una distancia de 4, as que el cambio de dos la Posicin 8 (2^3 = 8) tendramos: 8, 9, 10, 11, 12, 13,
14, 15, 24-31... Siguiendo el algoritmo hasta completar
bits en el mismo grupo quedar sin denir.
la nueva cadena.
Hamming estaba interesado en solucionar simultneamente dos problemas: aumentar la distancia tanto como
sea posible, a la vez que se aumentan al mximo los bits
de informacin. Durante los aos 40 desarroll varios es- 3 Ejemplo
quemas de codicacin que mejoraban notablemente los
cdigos existentes. La clave de todos sus sistemas era in- Consideremos la palabra de datos de 7 bits 0110101.
tercalar entre los bits de datos los de paridad.
Para ver cmo se generan y utilizan los cdigos Hamming
2.0.1

Hamming (7,4)

para detectar un error, observe las tablas siguientes. Se


utiliza la d para indicar los bits de datos y la p para los de
paridad.

Hoy, el cdigo de Hamming se reere al (7.4) que Ham- En primer lugar los bits de datos se insertan en las posiming introdujo en 1950. El cdigo de Hamming agre- ciones apropiadas y los bits de paridad calculados en cada
ga tres bits adicionales de comprobacin por cada cuatro caso usando la paridad par.

P1 = D1 D2 D4 D5 D7 P2 = D1 D3 D4
D6 D7 P3 = D2 D3 D4 P4 = D5 D6 D7
La nueva palabra de datos (con los bits de paridad) es
ahora 10001100101. Consideremos ahora que el bit de
la derecha, por error, cambia de 1 a 0. La nueva palabra
de datos ser ahora 10001100100.
Sin errores

Con errores

Si se analiza en la tabla anterior la paridad que se debe


obtener a la derecha tras la llegada del mensaje sin errores
debe ser siempre 0 (por cada la), pero en el momento en
que ocurre un error esta paridad cambia a 1, de all el
nombre de la columna prueba de paridad 1. Se observa
que en la la en que el cambio no afect la paridad es cero
y llega sin errores.
El paso nal es evaluar los bits de paridad (recuerde que el
fallo se encuentra en d7 ). El valor entero que representan
los bits de paridad es 11 (si no hubieran ocurrido errores
este valor seria 0), lo que signica que el bit dcimo primero de la palabra de datos (bits de paridad incluidos) es
el errneo y necesita ser cambiado.

Cambiando el bit dcimo primero 10001100100 se obtiene de nuevo 10001100101. Eliminando los bits de patrn
de la paridad no se tienen en cuenta los bits de paridad. Si
el error se produjera en uno de ellos, en la comprobacin
slo se detectara un error, justo el correspondiente al bit
de paridad causante del mismo.

Hamming Extendido

Finalmente, para detectar errores en 2 bits se utiliza un bit


adicional de paridad (Hamming Extendido) donde puede
darse el caso de 3 posibilidades:
1.-' No hay error -> Hamming =0, Paridad OK 2.- Un
bit de error -> Paridad Fallo entonces a) Hamming = 0,
P = incorrecto, en este caso se cambia el valor del bit de
paridad. b) Hamming <> 0, corrijo segn Hamming. 3.Dos bit en error -> Paridad Ok, Hamming <> 0, por lo
tanto informo, NO corrijo.

5 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

5.1

Texto

Cdigo Hamming Fuente: https://es.wikipedia.org/wiki/C%C3%B3digo_Hamming?oldid=90133712 Colaboradores: CrudPuppy, Xenoforme, Robotico, FAR, Digigalos, Deleatur, Airunp, Rembiapo pohyiete (bot), Genba, Pedvi, Charlitos, Chobot, Caiserbot, Gerkijel, Yrbot,
BOT-Superzerocool, Jamuki, YurikBot, KnightRider, Haku, Nstor Amigo Cairo, BOTpolicia, CEM-bot, Toge, Kcho, Antur, Thijs!bot,
Martin Rizzo, Endermuabdib, JAnDbot, Lamparilla, TXiKiBoT, VolkovBot, Matdrodes, Muro Bot, SieBot, Dj daleman, Acanocad, Drinibot, Farisori, Epiovesan, Alejandrocaro35, Botito777, Alexbot, AVBOT, Pasmargo, Luckas-bot, Nallimbot, ArthurBot, Jkbw, Ala doble,
Capitalazul, EmausBot, Ebrambot, Rubpe19, Bazookao, Danicejota, AvicBot, MetroBot, AleAnonMallo, Addbot, E-walldoPC y Annimos: 101

5.2

Imgenes

5.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

Distancia de Hamming
2 Historia y Aplicaciones

En Teora de la Informacin se denomina distancia de


Hamming a la efectividad de los cdigos de bloque y
depende de la diferencia entre una palabra de cdigo vlida y otra. Cuanto mayor sea esta diferencia, menor es la
posibilidad de que un cdigo vlido se transforme en otro
cdigo vlido por una serie de errores. A esta diferencia
se le llama distancia de Hamming, y se dene como el nmero de bits que tienen que cambiarse para transformar
una palabra de cdigo vlida en otra palabra de cdigo
vlida.
Si dos palabras de cdigo dieren en una distancia d, se
necesitan d errores para convertir una en la otra.

La distancia de Hamming se denomina as gracias a su


inventor Richard Hamming, profesor de la Universidad
de Nebraska, que fue el que introdujo el trmino para establecer una mtrica capaz de establecer un cdigo para
la deteccin y auto-correccin de cdigos. Se emplea en
la transmisin de informacin digitalizada para contar el
nmero de desvos en cadenas de igual longitud y estimar
el error, por esto se denomina a veces como distancia de
seal.
La distancia de Hamming tiene las siguientes propiedades.

Por ejemplo:
La distancia Hamming entre 1011101 y 1001001 es
2.

d(a, b) = d(b, a)
d(a, b) = 0 si y slo si a = b

La distancia Hamming entre 2143896 y 2233796 es


3.

d(a, b) + d(b, c) d(a, c)

La distancia Hamming entre "tener" y "reses" es 3.

d es el n. de bits p en que son diferentes el mensaje emitido del recibido.

Deteccin y correccin de errores

Si d p + 1 entonces se puede detectar un error de peso


p

La distancia de Hamming es utilizada para denir algunas nociones esenciales en teora de cdigos, tales como
cdigos detectores de errores y cdigos correctores de
errores. En particular, se dice que un cdigo C detecta k
-errores si cualesquiera dos palabras c1 , c2 C que tienen una distancia de Hamming menor que k coinciden.
Dicho de otro modo, un cdigo detecta k -errores si y solo si la distancia de Hamming mnima entre cualesquiera
dos palabras en l es a lo menos k + 1 .

Si d 2p + 1 entonces se puede corregir p dgitos.


Ejemplo: Si queremos detectar 3 errores entonces la distancia mnima de Hamming debe ser de (3) + 1 = 4 . Si
queremos corregir 3 errores entonces la distancia mnima
de Hamming debe ser de 2 (3) + 1 = 7 .

3 Vase tambin

Se dice que un cdigo C corrige k -errores si para cada


palabra w en el subyacente espacio de Hamming H existe
al menos una palabra c C tal que la distancia de Hamming entre w y c es menos que k . En otras palabras, un
cdigo corrige k -errores si y solo si la mnima distancia
de Hamming entre cualesquiera dos de sus palabras es por
lo menos 2k + 1 . Esto es ms fcil de comprender geomtricamente como que cualesquiera dos bolas cerradas
de radio k centradas en distintas palabras son disjuntas.
En este contexto se conoce a estas bolas como Esferas
de Hamming.

Cdigo Hamming
Distancia de Levenshtein

De esta manera, un cdigo que tiene distancia de Hamming mnima d entre sus palabras puede detectar a lo ms
d 1 errores y puede corregir (d 1)/2 errores. Este ltimo nmero es tambin conocido como el radio de
empaquetado o la capacidad de correccin del cdigo.
1

4 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

4.1

Texto

Distancia de Hamming Fuente: https://es.wikipedia.org/wiki/Distancia_de_Hamming?oldid=91919842 Colaboradores: Pacoqueen, Sabbut, Moriel, Sauron, Rsg, Benjavalero, Diegoignaciosanzo, Rembiapo pohyiete (bot), RobotQuistnix, Chobot, Yrbot, Baito, BOTijo, YurikBot, GermanX, Eskimbot, CEM-bot, Pinar~eswiki, Thijs!bot, JAnDbot, SieBot, PaintBot, BOTarate, Javierito92, DragonBot, Alejandrocaro35, Alexbot, Luckas-bot, MystBot, Ptbotgourou, Xqbot, Ripchip Bot, EmausBot, ChuispastonBot, Albertojuanse, WikitanvirBot,
Categulario, Legobot, AleAnonMallo, Nicocarosio y Annimos: 16

4.2

Imgenes

4.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

10/12/2008

Tema 4: Organizacin de Ficheros:


Organizaciones Base
Introduccin. Procesos y Parmetros.
Organizaciones Consecutivas
Organizacin bsica: Organizacin Serial
Organizacin ordenada: Secuencial

Organizaciones Direccionadas
Direccionamiento Directo
Direccionamiento Disperso
Dispersin Virtual
Dispersiones Extensible y Dinmica

Comparativa
2008 LaBDa Universidad Carlos III Madrid

FF - 1

Tema 4.1: Introduccin.


La eleccin de una determinada organizacin para un fichero
es una decisin de diseo, que depende de ciertos parmetros:
tipo de los procesos (por los que se va a ver afectado el fichero)
factores del fichero que se quieren optimizar
parmetros del fichero
caractersticas del soporte (donde va a ser almacenado el fichero)
Estos parmetros producen una serie de condiciones, algunas flexibles y
otras no. De las primeras, si aparecen contrapuestas, habr que priorizar
e irlas relajando hasta llegar a una solucin de compromiso.

2008 LaBDa Universidad Carlos III Madrid

FF - 2

10/12/2008

Tema 4.1: Procesos


Naturaleza de los procesos

Naturaleza de la operacin: Actualizacin / Recuperacin


Tipo de Acceso (at. al orden): Ordenado / Desordenado

Tasa de Actividad del proceso


tasas elevadas (>10%)
tipo de acceso predominante: serial/secuencial orgs. consecutivas
tasas reducidas (<10%)
tipo de acceso predominante: mixto organizaciones invertidas
seleccin unvoca (un elemento)
tipo de acceso: directo organizaciones direccionadas
procesos diversos: organizaciones indizadas

2008 LaBDa Universidad Carlos III Madrid

FF - 3

Tema 4.1: Parmetros


Factores del Fichero que se quieren Optimizar

Tiempo de respuesta: ( en Actualizacin / en Recuperacin )


disminuir los accesos (organizaciones en rbol, memorias intermedias)

Espacio de Almacenamiento
Incrementar densidad, minimizar almacenamiento auxiliar,
compresin de campos, buscar tamaos de cubo adecuados, etc.
El espacio de almacenamiento influye en el Tiempo de Respuesta!

Tiempo de proceso:
Evitar reorganizaciones en tiempo de proceso, ensamblajes ...

Coste de Desarrollo y Mantenimiento


Reducir coste de programacin, reducir coste de actualizaciones y
mantenimiento, minimizar las reorganizaciones, etc.
2008 LaBDa Universidad Carlos III Madrid

FF - 4

10/12/2008

Tema 4.1: Parmetros


Parmetros del Fichero

Volumen y ocupacin (total y de un registro)


Volatilidad (tasas de insercin, modificacin, supresin, y crecimiento)
Caractersticas del Soporte
Tipo de soporte (serial, direccionado, )
Bloque: Tamao y Tiempo de Acceso
Espacio de direccionamiento (tamao de la direccin)
Memorias intermedias (cach)
* Nota: no hay que confundir Tipo de Soporte con Organizacin del Fichero
2008 LaBDa Universidad Carlos III Madrid

FF - 5

Tema 4.2: Organizaciones Consecutivas


Organizacin bsica: Organizacin Serial
Surge con los soportes seriales:

Soporte Serial: proporciona registros fsicos en serie, esto es,


que se registran uno detrs de otro, y se acceden en ese orden
Ejemplo de soporte serial: la cinta magntica

Instrucciones: leer (bloque) y reset


procesos selectivos: tiene que buscar uno o varios registros
antes de buscar, se apunta al principio del fichero (reset)
se van leyendo todos los registros hasta identificar el buscado
si se quiere localizar varios, se lee todo el fichero
procesos a la totalidad: no precisan localizacin ni orden ptimos
2008 LaBDa Universidad Carlos III Madrid

FF - 6

10/12/2008

Tema 4.2.1: Organizacin Serial


Interaccin con Ficheros Seriales:
Recuperacin:
consulta: se recupera el contenido

Actualizacin:
insercin: se aaden registros al final del fichero
borrado:

borrado fsico: se vaca el registro se desplaza el resto


borrado lgico: se marca el registro se genera un hueco

modificacin:
registros fijos: se altera el contenido
registros variables: se borra el antiguo y se reinserta modificado

FF - 7

2008 LaBDa Universidad Carlos III Madrid

Tema 4.2.1: Organizacin Serial


Clculo del tiempo de acceso:
- mximo: peor caso leer todos
tmax = n registros tacceso_registro
- medio: se calcula como el acceso a la mediana (el de en medio)
tmedio = n registros + 1 tacceso_registro
2

Tambin debe aplicarse la consideracin de bloque, si procede


En tal caso, el n registros ser n bloques, y tacceso_registro ser tacceso_bloque

2008 LaBDa Universidad Carlos III Madrid

FF - 8

10/12/2008

Tema 4.2.1: Mantenimiento Serial:


Gestin de Huecos
Borrado Fsico:
en organizacin serial y registros fijos:
- para borrar se lee el ltimo registro y se escribe sobre el que se desea
eliminar; el ltimo se vaca (de tres a cinco accesos ms la seleccin;
pero casi siempre son todos sobre memoria intermedia).

en organizacin serial y registros variables:


- tamaos diversos  para borrar se desplazan todos los registros
posteriores al eliminado  altamente ineficiente

Borrado Lgico:
en organizacin serial (en general):
- para borrar se introduce una marca de borrado lgico (1 acceso escritura),
y al insertar se recorre el fichero buscando un hueco de tamao adecuado.
Si no hubiera un hueco suficientemente grande, se inserta al final.
Lista de Huecos: (tamao+posicin) si no est muy lejos, se utiliza

Compactacin: se van desplazando registros para eliminar huecos


2008 LaBDa Universidad Carlos III Madrid

FF - 9

Tema 4.2.2: Organizacin ordenada,


Organizacin Secuencial
Surge a partir de la serial, introduciendo un orden de registros
Se propicia gracias a una clave de ordenacin fsica
Instrucciones: las seriales ms desplazar (avanzar y retroceder)
Se acceden los bloques aleatoriamente, y por ello se precisa un
mecanismo para poder localizar el comienzo del primer registro
- a nivel fsico (por bloques): comienzo de bloque
- a nivel fsico-lgico (registros consecutivos): marca de inicio/fin

Procesos:
procesos selectivos: puede aprovechar el que vayan ordenados
localizar un registro: bsqueda dicotmica
localizar varios registros: dicotmica + acceso serial
claves alternativas: bsqueda serial (leer todo el fichero)
procesos a la totalidad: gran eficiencia en procesos ordenados
2008 LaBDa Universidad Carlos III Madrid

FF - 10

10/12/2008

Tema 4.2.2: Organizacin Secuencial


Interaccin con Ficheros Secuenciales Consecutivos:
El primer carcter de un bloque puede no corresponder al primer registro
 se necesita una marca de inicio (o fin) de registro

Recuperacin (consulta): recuperar el contenido de


Actualizacin:

un registro
varios regs.

sin orden
ordenados

insercin: se aaden registros al final del fichero altera el orden (*)


borrado: igual que en serial, pero es ms difcil reutilizar huecos.
modificacin:
registros fijos: se altera el contenido si no altera el orden
(si no se modifica la clave de ordenacin)
para modificar clave de ordenacin, y en registros variables:
se borra el antiguo y se reinserta modificado altera el orden (*)

Nota(*): observar que se genera un rea desordenada al final del fichero


2008 LaBDa Universidad Carlos III Madrid

FF - 11

Tema 4.2.2: Organizacin Secuencial


Interaccin con Ficheros Secuenciales NO Consecutivos:
El primer registro del bloque comienza en el primer carcter del bloque
 puede prescindirse de la marca separadora de registros

Operaciones de Recuperacin: mismo mecanismo que las consecutivas


Operaciones de Actualizacin: todos los bloques (cubos) tienen un hueco.
Insercin: se inserta en su bloque si cabe (si no, en el rea desordenada)
Borrado: se agranda el hueco del cubo donde se borra
Modificacin (de campo no clave ord.): borrado y re-insercin
(es decir, si el reg. modificado cabe en su sitio se mantendr all)

Espacio Libre Distribuido: dejar un porcentaje de espacio libre en los cubos


Pueden diferenciarse dos porcentajes (para modificacin y para insercin)
Tcnicas:
- rotaciones: traspasar elementos de un cubo lleno a otro vecino con sitio
- intercalar cubos completamente vacos (al crear o reorganizar el fichero)
2008 LaBDa Universidad Carlos III Madrid

FF - 12

10/12/2008

Tema 4.2.2: Organizacin Secuencial


Localizacin en Ficheros Secuenciales: Bsqueda Dicotmica
Bsqueda Dicotmica:
- mirar el de en medio: si coincide, fin
- si no coincide, escoger la mitad que contiene el elemento buscado
- volver a empezar (sobre la mitad escogida)

Para claves no unvocas, se har Bsqueda Dicotmica Extendida:


- Buscar primer elemento (por bsqueda dicotmica)
- Buscar hacia arriba hasta encontrar uno distinto (fallo)
- Buscar hacia abajo hasta encontrar uno distinto (fallo)
- Las entradas que coinciden, se incluyen en un conjunto resultado

FF - 13

2008 LaBDa Universidad Carlos III Madrid

Tema 4.2.2: Organizacin Secuencial


Tiempo de acceso Bsqueda Dicotmica:
- consideramos slo el mximo:
peor caso encontrarlo en la ltima vuelta
naccesosmax = log2 (n+1)

tmax = naccesosmax tacceso_registro

- El nmero de elementos en la bsqueda (n) depende de la relacin fsico-lgica:


- en ficheros con registros expandidos, se trata del nmero de registros
- en el resto (caso habitual) se trata del nmero de bloques del fichero
- En ficheros secuenciales, se usa bsqueda dicotmica con una salvedad:
- bsqueda dicotmica sobre rea ordenada
- si no se encuentra, bsqueda serial sobre rea desordenada

naccesossec = log2 (n+1) + naccesosserial

2008 LaBDa Universidad Carlos III Madrid

FF - 14

10/12/2008

Tema 4.2.2: Organizacin Secuencial


Tiempo de acceso Bsqueda Dicotmica Extendida:
- Se busca a travs de una clave que presenta k coincidencias (de media),
y que tiene v valores distintos ( k * v = nmero total de registros).
- Para hallar el nmero de accesos, consideramos el mximo:
- En Org. Secuencial No Consecutiva, el pero caso consiste en:
- encontrar el primer elemento en la ltima vuelta
- el bloque anterior se leera slo para encontrar un fallo
- se recuperarn k+2 registros (k coincidencias y dos fallos)
naccesosmax = log2 (n+1) + (k+1)
Tc

- En Org. Secuencial Consecutiva el pero caso se calcula a nivel de byte


(el bloque anterior se leera slo para encontrar un byte til)
- El nmero de elementos en la bsqueda (n) depende de la relacin fsico-lgica:
- si los k registros caben en un bloque, se utilizar n=nmero de bloques
- en el resto de casos, se debe utilizar el nmero de valores distintos (v)
- Se debe seguir considerando el rea desordenada (siempre que exista).
2008 LaBDa Universidad Carlos III Madrid

FF - 15

Tema 4.2.3: Mantenimiento:


Huecos y Orden
1. Reutilizacin de huecos:
* Lista ordenada de huecos: (clave ant, clave post, tamao)
- al borrar actualiza la lista de huecos;
- al insertar, comprueba si existe un hueco apropiado, lo usa y
actualiza la lista; si no existe hueco, inserta el nuevo registro al final

* Espacio libre distribuido: (org. secuencial no consecutiva)


- el fichero se divide en cubos (bloque fsico-lgico de registros)
- cada cubo tendr un bloque (o ms; habitualmente uno)
- cada cubo reserva un porcentaje de su espacio para registros que
crecen, y un porcentaje para nuevos registros
 (casi) todos los cubos tienen hueco
- para insertar, se mira si cabe en su cubo; si no, se inserta al final

2. Reorganizacin: reescribir todos los registros ordenados


- Problema: algoritmos sobre el propio fichero muy pesados (coste elevado)
- Habitualmente se usan algoritmos basados en almacenamiento auxiliar.
2008 LaBDa Universidad Carlos III Madrid

FF - 16

10/12/2008

Tema 4.3: Organizacin Direccionada


Surge gracias a los soportes direccionados:

Soporte Direccionado: proporciona registros fsicos localizables,


es decir, que cuentan con una direccin fsica en el soporte.
Ejemplo de soporte direccionado: el disco

Instrucciones: leer(n) / escribir(n)


procesos selectivos: localizacin inmediata ptimos
la localizacin se har mediante la clave de direccionamiento
es necesario mantener una correspondencia con la dir. fsica
procesos a la totalidad: la localizacin no es una ventaja

FF - 17

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3: Organizacin Direccionada


( Hashing )
La clave de direccionamiento no suele coincidir con la direccin fsica
Es necesario transformarla
clave direccionamiento espacio direccionamiento
espacio direccionamiento direccin base (fsica)

CD
Elemento: clave
mbito: lgico

T1




2008 LaBDa Universidad Carlos III Madrid

DB
T2

dir. cubo
fsico-lgico




dir. bloque
fsico
FF - 18

10/12/2008

Tema 4.3: Organizacin Direccionada


Espacio de Direccionamiento (N):
rango de direcciones relativas disponible (para un fichero)
Direccionamiento:
clave de direccionamiento: localiza sobre el dominio de la clave
direccin relativa: ordinal sobre el espacio de direccionamiento (N)

direccin base: direccin fsica


Algoritmo de Transformacin. Pasos:
T1: proporciona la direccin relativa a partir de la clave de dir.
T2: proporciona la direccin base a partir de la dir. relativa

2008 LaBDa Universidad Carlos III Madrid

FF - 19

Tema 4.3: Tipos de Org.Direccionada


1. Organizacin Direccionada Directa:
cada registro tiene su direccin reservada

una direccin para cada clave de direccionamiento


la clave de direccionamiento es tambin clave de identificacin

Ejemplo: los buzones de conserjera, cada nombre tiene un buzn

2. Organizacin Direccionada Dispersa (a cubo):


una direccin corresponde a varias claves de direccionamiento.
Ejemplo: las estanteras en una biblioteca

2008 LaBDa Universidad Carlos III Madrid

FF - 20

10

10/12/2008

Tema 4.3.1: Direccionada Directa


Tipos de Organizacin Direccionada Directa:
i) Absoluta: la clave de direccionamiento es la direccin base
Ventajas: no es necesario aplicar algoritmo de transformacin
Inconvenientes: - la CD es informacin oscura para los usuarios
Ejemplo: direccin postal = lat. 4057N long 410O... (?)

- hace al fichero dependiente del dispositivo

ii) Relativa: la clave de direccionamiento necesita transformacin


- a) clave de direccionamiento coincide con direccin relativa
(se trata de un nmero ordinal dentro del espacio de direccionamiento)
- b) funcin de transformacin biyectiva,, f: CD N

2008 LaBDa Universidad Carlos III Madrid

FF - 21

Tema 4.3.1: Direccionada Directa


Ventajas
la localizacin mediante CD es inmediata 1 acceso
Inconvenientes:
difcil encontrar CD y funcin de transformacin adecuadas
cuando se dispone de ellas, suelen producir baja densidad
observar que cada CD tiene una posicin de almacenamiento reservada
si no se encuentran todas las CD en el fichero, hay mucho espacio vaco
Ejemplo: pupitres en la biblioteca con D.N.I. (uno por cada D.N.I.? ...!)

Solucin 1: dispersar las CD  Orgs. Direccionadas Dispersas


Ejemplo: pupitres en la biblioteca con nombre de alumno (uno por cada alumno?)

Problema 1: se desperdicia mucho espacio vaco


2008 LaBDa Universidad Carlos III Madrid

FF - 22

11

10/12/2008

Tema 4.3.2: Direccionada Dispersa


Organizacin Direccionada Dispersa (Hashing)
Se reduce el espacio de direccionamiento N/m,, con m 1
Habr varias CD con la misma direccin: claves sinnimas
Al hacer que varias CD coincidan en la misma direccin relativa
se disminuye el nmero de posiciones vacas y aumenta la densidad
Problema 2: se pueden producir colisiones y cmulos
(muchos registros coinciden en el mismo lugar)

cmulo

FF - 23

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.2: Direccionada Dispersa


Problema 2: se forman cmulos mientras que quedan huecos libres

Solucin 2: mejorar la dispersin


cambiar la f. de transformacin para que reparta mejor los registros
(as se disminuyen las coincidencias en direccin de varios registros)

Problema 3: siguen producindose colisiones

(varios registros coinciden en el mismo lugar)

colisin

2008 LaBDa Universidad Carlos III Madrid

FF - 24

12

10/12/2008

Tema 4.3.2: Direccionada Dispersa


Solucin 3 en cada dir. fsica varios registros lgicos cubo
Organizacin Direccionada Dispersa a cubo.
Cubo de tamao n = en cada direccin caben n registros
Se asignan varias direcciones reales a cada direccin base
(as, an existiendo colisin, caben varios registros en cada direccin)

Problema 4: y si hay ms colisiones que espacio disponible?


(coinciden en un cubo ms registros de los que caben)
desbordamiento

FF - 25

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.2: Direccionada Dispersa


Soluciones a los desbordamientos: consideraremos dos...
aumentar el tamao del cubo (baja la densidad, y hay que preveerlo)
aplicar polticas de gestin de desbordamientos
buscar otra ubicacin a los registros excedentarios
almacenar registros excedentarios en rea de desbordamiento
(situada al final del fichero, y cuyo acceso es serial o secuencial)

rea de desbordamiento

2008 LaBDa Universidad Carlos III Madrid

FF - 26

13

10/12/2008

Tema 4.3.3: Algoritmos de Transformacin


Se pueden diferenciar tres pasos:
Si la CD es alfanumrica, transformarla a numrica
Aplicar una funcin de trasformacin para dispersar
la funcin debe estar definida sobre el espacio de direccionamiento (N)
si no es as, aplicar otra funcin para ajustarla a ese espacio (N)

Transformar la direccin relativa obtenida en direccin base


Ejemplo: nombre de autor con N=100
Dumas 68 + 117 + 109 + 97 + 115 = 506 506 MOD 100 = 6 E0AX1006

FF - 27

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.3: Algoritmos de Transformacin


y Funciones de Transformacin
La mejor funcin de transformacin es la que proporcione una distribucin
uniforme sobre el espacio de direccionamiento (dispersin ideal)
No existe una solucin universal. La eleccin de una funcin de
transformacin depende del problema en particular.
Se puede hacer un estudio estadstico de la distribucin de las CD sobre un
espacio de direccionamiento (concreto o genrico) para mejorar despus la
dispersin (para esos espacios)
La funcin escogida puede ser el resultado de la combinacin de otras
funciones comunes para conseguir el resultado deseado
Si la clave de direccionamiento produce pocos valores distintos, por ms
que se transforme no aumentar su capacidad de direccionamiento.

2008 LaBDa Universidad Carlos III Madrid

FF - 28

14

10/12/2008

Tema 4.3.3: Algoritmos de Transformacin


y Funciones de Transformacin
Truncamiento
consiste en deshechar parte de la clave (por ejemplo, los x primeros dgitos)
Ejemplo: resto o resduo; 115279 115279 MOD 1000 279

Divisin-Resto o Resduo:
consiste en dividir la clave entre un nmero natural y tomar el resto
- muy til para adaptar cualquier resultado de cualquier otra funcin de
transformacin al espacio de direccionamiento utilizado: CD MOD N
- Observar que el truncamiento es un caso concreto de la funcin resduo

Plegado:
consiste en dividir la clave en varios grupos numricos y combinarlos
Ejemplo: mitad y suma; 115279 115 | 279 115 + 279 = 394
FF - 29

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.3: Algoritmos de Transformacin


y Funciones de Transformacin
Cambio de Base
Tomando la CD en decimal, el resultado es la CD expresada en otra base
Ejemplo: base 11, CD = 95
525 MOD 11 = 8; 525 DIV 11 = 47; 47 MOD 11 = 3; 4 MOD 11 = 4 438

- Observar que pueden aparecer smbolos nuevos que habra que transformar
Ejemplo: 527 MOD 11 = 10; ... 4 100 + 310 + 101 = 440

Mtodo de Lin

(referido a p y qn, con p y q primos)

se considera CD expresada en base p; se expresa en decimal y divide entre qn


Ejemplo: p=11, q=7, n=2, CD 95;
9*111 + 5*110 = 104 104 DIV 72 =2

2008 LaBDa Universidad Carlos III Madrid

FF - 30

15

10/12/2008

Tema 4.3.4: Desbordamientos


Tratamiento de Desbordamientos:
Colisin: dos CD tienen la misma direccin base; al llegar la segunda, colisiona
Desbordamiento: un elemento, que ha producido una colisin, no cabe en su dir. base
Los elementos que desbordan han de ser almacenados localizables, segn una poltica.
Las Polticas de Gestin de Desbordamientos se pueden clasificar de dos modos:

Segn la zona donde se ubique el registro desbordado


a)
b)

Saturacin: otra direccin dentro del espacio de direccionamiento


rea Desbordamiento: fuera del rea de datos (en otro fichero)

Segn el mecanismo de ubicacin:


1.
2.
3.

Direccionamiento abierto
Encadenamiento
Otros (organizacin independiente)

m
1
2
3

a




2008 LaBDa Universidad Carlos III Madrid

b



FF - 31

Tema 4.3.4: Desbordamientos


a.1.- Saturacin con Direccionamiento Abierto:
-

La nueva direccin se averigua a partir de la direccin antigua (desbordada).


Si esta estuviera ocupada se produce un choque.
Si adems no cupiera, sera un rebote
Si se produce un rebote se buscar otra direccin nueva hasta encontrar una
posicin libre o hasta haber recorrido todo el espacio (rea de datos saturada).
- Si el rea de datos est saturada (completa) esto provoca automticamente una
reorganizacin del direccionamiento sobre un espacio N mayor que N.

 extensin del espacio de direccionamiento


* Tcnicas de Direccionamiento abierto:
Saturacin progresiva (Sondeo Lineal)
Rehashing (Sondeo Aleatorio)
Sondeo Cuadrtico
Doble Transformacin
2008 LaBDa Universidad Carlos III Madrid

FF - 32

16

10/12/2008

Tema 4.3.4: Desbordamientos


a.1.- (cont.) Tcnicas de Direccionamiento Abierto:
Saturacin progresiva (Sondeo Lineal):
Al desbordar, la nueva direccin es la siguiente a la direccin base: D=(D+1) MOD N

Rehashing (Sondeo Aleatorio):


En vez de la siguiente, se suma otra cifra: D=(D+k) MOD N
N y k deben ser primos relativos para que se recorra todo el espacio de direcc. (N)
Observar que la saturacin progresiva es un caso particular de Rehashing (k=1)

Sondeo Cuadrtico:
El sondeo sigue una progresin D=(D+k2) MOD N,, tomando valores D+1, D+4, ... D+n2

Doble Transformacin:
En este caso, en lugar de sumar, se aplica cualquier funcin de transformacin.
Queda D= f (D) MOD N ,, observar que el rehashing es un caso particular de este
2008 LaBDa Universidad Carlos III Madrid

FF - 33

Tema 4.3.4: Desbordamientos


ENCADENAMIENTO:

En todos los cubos se reserva espacio para un puntero.


Si el cubo desborda, se usar este puntero para registrar la nueva
direccin de los elementos desbordados.
- Los registros desbordados permanecen localizables en una nueva direccin
- Se pueden encadenar cubos enteros o registros individuales
- si se encadenan cubos, cada uno tendr un puntero al siguiente cubo
- para encadenar registros, el cubo desbordado apunta al primero,
y luego cada registro (individualmente) apunta al siguiente.
- Normalmente, cada elemento encadenado tiene un puntero al siguiente
elemento encadenado, pero tambin se pueden almacenar varios punteros
a posiciones encadenadas (lista de encadenamiento, con o sin orden)

2008 LaBDa Universidad Carlos III Madrid

FF - 34

17

10/12/2008

Tema 4.3.4: Desbordamientos


a.2.- Saturacin Progresiva Encadenada:
Esta tcnica consiste en buscar una nueva posicin dentro del
espacio de direccionamiento, almacenar all el registro desbordado,
y apuntar la direccin en el puntero.
Este encadenamiento es siempre a registro (1er ptro. en cubo desb.)
El apuntamiento incluir el identificador del cubo destino, y la
posicin dentro del mismo (partes alta y baja, respectivamente).
Como es una direccin independiente de la direccin anterior (CD),
puede utilizarse cualquier cubo como destino. Se suele usar el cubo
menos utilizado (el primero vaco).
Reduce el nmero de choques y rebotes (pero no los elimina).

2008 LaBDa Universidad Carlos III Madrid

FF - 35

Tema 4.3.4: Desbordamientos


REA DE DESBORDAMIENTO:

Consiste en almacenar los registros desbordados en un rea especial


(rea de desbordamiento o de saturacin) fuera del rea de datos.
Ventaja: se eliminarn los choques (y los rebotes).
Desventaja: es preciso usar ms espacio (auxiliar).
El uso de espacio auxiliar no es tan malo por el gasto de espacio,
sino porque implica aumentar el espacio de bsqueda en procesos
basados en claves de bsqueda alternativas (no privilegiadas).

2008 LaBDa Universidad Carlos III Madrid

FF - 36

18

10/12/2008

Tema 4.3.4: Desbordamientos


b.2.- rea de Desbordamiento Encadenada:
Es un encadenamiento fuera del rea de datos
Encadenamiento de Cubos:
El puntero de encadenamiento slo requiere parte alta.
Cada cubo encadenado se reserva para esa direccin
Todos los cubos encadenados se procesarn de modo serial
(equivale a un rea serial independiente para cada direccin de N,
aunque sus cubos no sean necesariamente contiguos fsicamente)

Encadenamiento de Registros:
Es menos eficiente para el proceso get all por la CD,
pero reduce notablemente el tamao del rea de desbordamiento.
Dependiendo de los procesos frecuentes, se escoger uno u otro.
2008 LaBDa Universidad Carlos III Madrid

FF - 37

Tema 4.3.4: Desbordamientos


b.3.- Archivo de Desbordamiento (Org. Independiente):
El rea de desbordamiento no se encadena, sino que se trata y maneja
como un fichero independiente con su propia organizacin
Su organizacin generalmente es serial o secuencial, pero tambin

se pueden organizar mediante un direccionamiento secundario:


- se definen sobre un espacio de direccionamiento bastante menor
que el otro, que ser el direccionamiento principal.
- pueden basarse en una CD distinta a la del direccionamiento ppal.
(de menor potencia de direccionamiento pero buena dispersin),
o con la misma CD y distinta funcin de transformacin.
- pueden desbordar, lo que produce una reorganizacin automtica
del direccionamiento principal sobre un espacio de dir. mayor.

 extensin del espacio de direccionamiento


2008 LaBDa Universidad Carlos III Madrid

FF - 38

19

10/12/2008

Tema 4.3.5: Dispersin Extensible


Concepto: el espacio de direccionamiento no es fijo.
- La idea viene de: si desborda, reorganizo sobre un espacio mayor
- El problema es que para hacerlo, tendra que reescribir todo el rea de datos
(cuando realmente ha desbordado un cubo).

Aproximacin: la direccin relativa se obtiene al concatenar


un prefijo con el resultado de la funcin de transformacin (mdulo).
mdulo: definido en un espacio potencia diez (N=10n)
prefijo: se calcula aparte, segn las necesidades de almacenamiento

En particular: la extensibilidad se suele enfocar con el truncamiento:


la transformada tiene p dgitos, y en cada momento se usan k (con k p)
si desborda y k<p, usar un dgito ms (k+1)
 necesito reorganizar cada cubo sobre otros 10 nuevos cubos
2008 LaBDa Universidad Carlos III Madrid

FF - 39

Tema 4.3.5: Dispersin Extensible


Problema: exige frecuentes reorganizaciones
Solucin 0: Demorar reorganizaciones
- Se utilizarn tcnicas de gestin de desbordamientos para evitar reorganizar
- Sin embargo, esto implica aumentar el nm.accesos para localizar elementos

Solucin 1: minimizar reorganizaciones:


* escogiendo bien los valores de N: utilizar base 2 para direccionar  N=2n
- en cada extensin, se duplica el espacio de direccionamiento
- en cada compresin, se divide por la mitad
* flexibilizando adecuadamente el criterio de extensin/compresin

Solucin 2: Aplicar Dispersin Virtual

2008 LaBDa Universidad Carlos III Madrid

FF - 40

20

10/12/2008

Tema 4.3.6: Dispersin Virtual (I)


Consiste en utilizar almacenamiento auxiliar (un directorio)
para diferenciar los cubos ocupados de los que estn vacos
Aproximacin 1: Directorio de Ocurrencias
Almacena un bit por cada cubo, distinguiendo los vacos (0) y llenos (1)
Ahorra accesos (evita recuperar cubos vacos)
El directorio tiene un tamao muy reducido
un byte

otro byte

0
1
2
3
4
5
6
7
8
9
10
11
12
13 14
15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0
1

0
1

0
1

CD=0010

cubo 0

cubo 1

cubo 2

CD=0100

cubo 3

cubo 4

...

CD=0111

cubo 5

cubo 6

...

cubo 7

FF - 41

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.6: Dispersin Virtual (II)


Aproximacin 2: Directorio Virtual (de punteros)
La trasformada de la CD no ser la direccin real, sino direccin virtual
En cada posicin del directorio (direccin virtual), en lugar de un bit, se
va a almacenar un puntero con la direccin real del cubo
Adems de accesos, ahorra espacio; pero el directorio es ms grande

La dispersin virtual puede ser utilizada para cualquier organizacin


direccionada, aumentando notablemente la densidad de la misma.
Posibilita la dispersin extensible y la dispersin dinmica
0
1
2
3
4
5
6
7
8
9
10
11
12
13 14
15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

NIL NIL 3 NIL 1 NIL NIL

2 NIL NIL NIL NIL NIL NIL NIL NIL

CD=0010
CD=0100 CD=0111

cubo 1

cubo 2

cubo 3

2008 LaBDa Universidad Carlos III Madrid

...
FF - 42

21

10/12/2008

Tema 4.3.7: Disp. Virtual Extensible


Consiste en aplicar la extensibilidad a una organizacin direccionada
basada en directorio virtual!
Observar que en cada desdoblamiento lo que duplicamos no es el
rea de datos, sino solamente el directorio (bastante eficiente)
El directorio debe ser virtual, porque si fuera de ocurrencias se
debera duplicar tambin el rea de datos: sera como la extensible
normal, pero con directorio de ocurrencias para reducir los accesos
 no es aplicable, el coste de los desdoblamientos sera inabordable

FF - 43

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.7: Disp. Virtual Extensible


( basada en directorio I )
Cuando slo hay un cubo, slo hay un puntero que le apunte...

(0 bits, 20 celdas)

 el directorio slo tiene un puntero y la direccin no usa ningn byte (20=1)


PERO si se llena, desdobla y hay que utilizar un bit ms en la direccin... (0+1 = 1)

Desborda por primera vez... un bit ms y se duplica el directorio

00

1 2
(los registros se reparten: los que acaban en 0 al cubo 1, y los que acaben en 1 al cubo 2)

Desborda por segunda vez...

CD=101110
CD=101100
CD=010000

00
0

01
1

10
0

11
1

32

CD=011001
CD=110001

cubo 2

(2 bits, 22 posiciones)

CD=001011
CD=001111
CD=011111
CD=101111

cubo 3

cubo 1
2008 LaBDa Universidad Carlos III Madrid

FF - 44

22

10/12/2008

Tema 4.3.7: Disp. Virtual Extensible


( basada en directorio II )
Qu habra que hacer si, al repartir los registros del cubo desbordado,
fuesen todos al mismo cubo? (coinciden en la nueva terminacin)
000
00
0

101110
101100
010000

cubo 1

001
01
10
1 010
0

011
11
1

X
2

100
00 101
01 110
10

111
11

32

011101
001101
011001
010101
cubo
2
101101
110001

PERO...
NO SE REPARTEN!!
cubo 3

DESBORDA!

Pasos:
Anular el puntero de la direccin virtual sin elementos (asignar a NIL)
Repetir el proceso provocado por el desbordamiento (copio, desdoblo, ...)
FF - 45

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.7: Disp. Virtual Extensible


( basada en directorio II )
DESBORDA!

Qu ocurre si los elementos de un cubo no se pueden repartir nunca?


011101
011101
011101
011101
011101
011101

Claves de Direccionamiento Homnimas:


Producen la misma direccin
Por ms desdoblamientos que se practiquen,
esos elementos nunca se repartirn !

SOLUCIN:

Poltica secundaria de Gestin de Desbordamientos

Antes de realizar una extensin se comprobar que es til (que distribuye)


Si no es as, se aplicar la poltica secundaria (encadenamiento de un
cubo de desbordamiento, aumento dinmico del espacio de cubo, etc.)
Esta tcnica tambin puede utilizarse para retrasar desdoblamientos

2008 LaBDa Universidad Carlos III Madrid

FF - 46

23

10/12/2008

Tema 4.3.7: Disp. Virtual Extensible


( basada en directorio III )
Desborda por tercera vez...

00
000

01 010
10
001

11
011

100
00

101
01 110
10

42

111
11

Pero si ahora desborda el cubo real 1... no necesito duplicar el directorio!


Slo necesito desdoblar el cubo 1...

000 001 010

011 100 101

51

101100
010000
110000

110 111

51

101110
001110
011010

cubo 1

cubo 5

Y si vuelve a desbordar el cubo 1... tampoco hay que duplicar el directorio


Slo hay que desdoblar el cubo 1...
000 001 010 011 100 101 110 111
1

61

3
FF - 47

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.7: Disp. Virtual Extensible


(basada en directorio y IV)
Qu hacer si, al operar el archivo, sucede que 2+4 caben en un cubo?
Combinacin: dos cubos pasan a ser uno: 000 001 01 011 100 101 110 111
1

bits direccin 

cubo 2

cubo 4

05

24

 puedo liberar el cubo 4


(espacio libre para reutilizar)

Y qu deber ocurrir si se vaca el cubo 6? . . .


 En primer lugar, puedo liberar ese cubo (6)
cubo 6
 Despus, se elimina el apuntamiento (NIL)
 Finalmente, ambas mitades del directorio son idnticas  plegado
2

Plegado: prescindir de un bit de direccin


y de la mitad del directorio (copia)

2008 LaBDa Universidad Carlos III Madrid

00

01

10

11

3
FF - 48

24

10/12/2008

Tema 4.3.7: Disp. Virtual Extensible


Se va a considerar un espacio de direccionamiento mximo, y un
subespacio actual (menor que el mximo) de 2j direcciones (de j bits)
Se crear un directorio de 2j punteros a bloque, cada uno en su direccin
(vector de punteros). Cada puntero sealar al bloque que contiene el cubo
(correspondiente a la direccin donde se hallaba el puntero).

Se van utilizando slo los j ltimos bits de la direccin de un dato.


Algoritmo de localizacin:
0 - Se toma la direccin, y se extraen los j ltimos bits.
1 - Se mira en el directorio el puntero correspondiente a esa direccin.
2 - FIN (se recupera el bloque apuntado)

2008 LaBDa Universidad Carlos III Madrid

FF - 49

Tema 4.3.7: Disp. Virtual Extensible


Qu ocurre si un cubo desborda?
I - Se comprueba cuntas direcciones virtuales coinciden en ese cubo
0 Cont inicializado a cero. K inicializado a j (tamao direccin virtual)
1 Se cambia el bit K-simo, y si el puntero es distinto FIN.
Se tendran 2cont direcciones apuntando al mismo bloque.
2 Se incrementa cont (1 unidad), se decrementa K (1 unidad)
3 Si K > 0, volver al paso 1
II - Si hay varias direcciones para un cubo (K < j), este se separa en dos
en base al bit (K+1)-simo (el de menor peso que an coincida)
El bloque apuntado (cubo de datos) habr de ser duplicado
III - Si todo el cubo lo ocupa una sola direccin, habr que desdoblar:
- Se duplica todo el directorio, y se incrementa j en uno
(siendo el bit j+1 el que discrimina entre ambas copias del directorio)
2008 LaBDa Universidad Carlos III Madrid

FF - 50

25

10/12/2008

Tema 4.3.8: Disp. Virtual Dinmica


Se va a considerar un espacio de direccionamiento mximo, cuyas
direcciones expresadas en binario tendrn n bits.
Se van utilizando slo los k primeros bits de esa direccin. A medida
que se van necesitando, se usan ms bits o menos:
Inicialmente se tiene un cubo de datos, y no se necesita ningn bit.
Cuando este desborda, se tendrn dos cubos, y se usar un bit
(el primero de la direccin) para dispersar los datos en esos cubos
Esta organizacin se apoya en un directorio estructurado en forma
de rbol binario, con dos tipos de nodos:
hojas: tienen el puntero al bloque que contiene ese cubo
internos: tienen dos punteros, uno para bit 0 y otro para bit 1
FF - 51

2008 LaBDa Universidad Carlos III Madrid

Tema 4.3.8: Disp. Virtual Dinmica


Algoritmo de Localizacin:
0123-

Se toma el primer nodo y el primer bit de la direccin


Si es hoja, FIN (tenemos el puntero externo, la direccin del cubo)
Si no es hoja, si el bit es 0 tomar el nodo izquierdo, y si es 1 el derecho
Tomar el siguiente bit de la direccin y volver al paso 1.

Ejemplos: Sobre el directorio de la derecha...


1

Y qu pasa si este ltimo desborda?


2008 LaBDa Universidad Carlos III Madrid

1
1

1 0

1 3

0
0

En qu cubo est el 1 0 0 1 1 0 1 0 1 0 0 1 ?
Y dnde debo almacenar un elemento
cuya direccin es 1 0 0 0 1 1 0 1 1 1 0 1 ?

En qu cubo est el dato cuya direccin es:


0 0 1 1 0 1 0 1 0 0 1 1?

5
8

1
10
9

7
FF - 52

26

10/12/2008

Tema 4.5: Comparativa


Organizaciones Seriales: (ms utilizadas de lo que pueda parecer)
Adecuadas para: la insercin y procesos de consulta a la totalidad
Factores que se optimizan:
- espacio de almacenamiento (y tiempo en un full-scan)
- programacin simple

Ventajas

Inconvenientes

Sencillez (diseo & implementacin) Rigidez


Permite fich. variables y heterogneos

Tiempos de respuesta elevados

Permite bsquedas complejas

Algunos procesos precisan orgs. auxiliares

Vlida en cualquier soporte

Reorganizacin pesada (compactacin)

FF - 53

2008 LaBDa Universidad Carlos III Madrid

Tema 4.5: Comparativa


Organizaciones Secuenciales:
Tipo de proceso: - los mismos que para orgs. seriales, y alguno ms:
- mejora la localizacin de registros (pero slo para una clave)
- los procesos ordenados (por esa clave) tambin mejoran
Factores que se optimizan:
- espacio de almacenamiento y sencillez de programacin
- tiempo de acceso (con respecto al acceso serial, y para pocos procesos)

Ventajas

Inconvenientes

Casi todas las de la org. serial

Casi todos los de la org. serial

El ordenamiento fsico

Precisa soporte secuencial (o direccionado)

Mejora algunos procesos

Mejora pocos procesos (en nm.)


Degenera (necesita reordenaciones)

2008 LaBDa Universidad Carlos III Madrid

FF - 54

27

10/12/2008

Tema 4.5: Comparativa


Consecutividad
vs.
No Consecutividad
Las organizaciones consecutivas aprovechan mejor el espacio, y
sern ms convenientes si proliferan los procesos a la totalidad
Por otro lado, un registro cuya localizacin se conoce (a travs de
un ndice o por un vnculo entre archivos) puede estar partido
entre dos bloques y requerir dos accesos.
Para organizaciones fuertemente indizadas  no consecutividad
La no consecutividad conlleva localizacin del primer registro
completo almacenado y espacio libre distribuido, lo que la hace
habitual de las organizaciones secuenciales.

Proceso Predominante
Consulta a la Totalidad

Interesa
Consecutiva

Acceso por la direccin (Indizado)

No consecutiva
FF - 55

2008 LaBDa Universidad Carlos III Madrid

Tema 4.5: Comparativa


Organizaciones Direccionadas
Tipo de proceso: de seleccin a travs de una clave
Rasgos: clave de direccionamiento, algoritmo de transformacin, tamao del
espacio de direccionamiento, tamao del cubo, gestin desbordamientos
Factores que se optimizan: tiempo de respuesta (aprox. 1 acceso a disco)
(pero slo para acceder mediante la CD)

Poco almacenamiento auxiliar

Ventajas

Inconvenientes
Mala ocupacin (baja densidad)

Acceso inmediato (ptimo) ... ...

... pero slo para un proceso!!

Excelente si no sufre actualizaciones

Alta degeneracin: desbordamientos,...


Mantenimiento muy costoso
Mala localizacin por cl. alternativas

2008 LaBDa Universidad Carlos III Madrid

FF - 56

28

10/12/2008

Tema 4.5: Comparativa


Organizaciones Direccionadas Avanzadas
Tipo de proceso: de seleccin a travs de una clave
Rasgos: los de los direccionamientos
Factores que se mejoran (con respecto al resto de direccionamientos):
- densidad (disp. virtual) y consulta por cl.alternativas
- tiempo de acceso en consultas

Ventajas

Inconvenientes

Mejor densidad (disp. virtual)

Precisa alm. auxiliar (en Mint)

Mejora acceso por cl. alternativas

Acceso por cl. alternativas

Localizacin por CD en 1 acceso

Desdoblamientos y Plegados

Mejora acceso por cl. alternativas Cl. alternativas precisan org. auxiliar
Minimiza impacto mala dispersin
(disp.dinmica)

2008 LaBDa Universidad Carlos III Madrid

FF - 57

29

21/8/2016

Leccin38Formasderecorrerunrbolbinario

EstructuradeDatos

Leccin38Formasderecorrerunrbolbinario
Losrbolesbinarios,sonestructurasdedatosnolineales,sonconsideradoscomoestructuras
jerrquicasycomotalsuformaderecorrerlosdifieresustancialmenteencomparacinconlas
listasenlazadasquesonestructurasdedatosdetipolineal.Eneseordendeideas,elrecorrido
deunrbolbinariosellevaacaboentressentidos:Preorden,InordenyPostorden.A
continuacinsedetallacadacaso.
RecorridoenPreorden
Recorrerunrbolenpreordenconsisteenprimerlugar,examinareldatodelnodoraz,
posteriormenteserecorrerelsubrbolizquierdoenpreordenyfinalmenteserecorreelsubrbol
derechoenpreorden.Estosignificaqueparacadasubrbolsedebeconservarelrecorridoen
preorden,primerolaraz,luegolaparteizquierdayposteriormentelapartederecha.

Enlafigura70,sevisualizaunrbolbinario,perfectamenteequilibrado,enelquesusnodosson
detipocarcter.Deacuerdoconladefinicindelrecorridoenpreordenelresultadosera:
Figura70Recorridodelrbolbinarioenpreorden

Otroejemploderecorridoenpreorden,dondesusnodossondetiponumricoparaelsiguiente
rbolbinariodelafigura71.

Figura71Resultadodelrecorridoenpreordendelrbol

http://datateca.unad.edu.co/contenidos/301305/Contenido_en_linea/Modulo_3013052012_HTML/leccin_38__formas_de_recorrer_un_rbol_binario.html

1/4

21/8/2016

Leccin38Formasderecorrerunrbolbinario

Unaformadeimplementarlosrecorridosdeunrbolbinarioesatravsdefuncionesespecficas
paradichatarea.
voidpreorden(tarbol*a)
{
if(a!=NULL){
visitar(a)
preorden(a>izq)
preorden(a>der)
}
}
RecorridoenInorden
RecorrerunrbolenInordenconsisteenprimerlugarenrecorrerelsubrbolizquierdoen
Inorden,luegoseexaminaeldatodelnodoraz,yfinalmenteserecorreelsubrbolderechoen
Inorden.EstosignificaqueparacadasubrbolsedebeconservarelrecorridoenInorden,es
decir,primerosevisitalaparteizquierda,luegolarazyposteriormentelapartederecha.
Heaquunaaplicacinunejemplo:
Manosalaobra...
Setieneelrbolbinariodelafigura72,condatosdetiponumrico.
Elrecorridoiniciaconelsubrbolizquierdo,elprimernodoavisitaresel3luegosevisitael5y
posteriormenteel7,conestosegarantizaqueelrecorridodelsubrbolizquierdosehizoen
Inorden.
Finalizadoelrecorridodelsubrbolizquierdosevisitaelnododelaraz,queparaestecasoes
elnumero10.
SoloquedarecorrerelsubrbolderechoenInorden,esdecirsevisitael11luegoel12yse
finalizaconlavisitadelnodo15
ElresultadocompletodelrecorridoenInordenparaelrboldelafigura72es:3571011
1215Talcomosemuestraenlafigura.

Figura72RepresentacingrficadelrecorridoenInorden

SepuedeimplementarelrecorridoenInordendeunrbolbinarioesatravsdeunafuncin
especficasparadichatarea.

voidinorden(tarbol*a)

http://datateca.unad.edu.co/contenidos/301305/Contenido_en_linea/Modulo_3013052012_HTML/leccin_38__formas_de_recorrer_un_rbol_binario.html

2/4

21/8/2016

Leccin38Formasderecorrerunrbolbinario

voidinorden(tarbol*a)
{
if(a!=NULL){
inorden(a>izq)
visitar(a)
inorden(a>der)
}
}
Porltimosoloquedadescribirlaterceraformaderecorrerunrbolbinario.
RecorridoenPostorden
RecorrerunrbolenPostordenconsisteenprimerlugarenrecorrerelsubrbolizquierdoen
Postorden,luegoserecorreelsubrbolderechoenPostordenyfinalmentesevisitaelnodoraz.
EstosignificaqueparacadasubrbolsedebeconservarelrecorridoenPostorden,esdecir,
primerosevisitalaparteizquierda,luegolapartederechayporltimolaraz.
Heaqulaaplicacinconunejemplobasadoenelrboldelafigura72:
Manosalaobra...
Elrecorridoiniciaconelsubrbolizquierdo,elprimernodoavisitaresel3luegosevisitael7y
posteriormenteel5queeslaraz,conestosegarantizaqueelrecorridodelsubrbolizquierdo
sehizoenPostorden.
FinalizadoelrecorridodelsubrbolizquierdoseinicialavisitaalsubrbolderechoenPostorden,
esdecir,sevisitael11luegoel15ysefinalizaconlavisitadelnodo12queseralarazdeeste
subrbol.
Soloquedarecorrerlarazdelrbolqueparaestecasoeselnmero10.
ElresultadocompletodelrecorridoenPostordenparaelrboldelafigura72es:
37511151210Talcomosemuestraenlasiguientefigura73.
Figura73RecorridoenPostordendelrbolbinario.

SepuedeimplementarelrecorridoenPostordendeunrbolbinarioesatravsdeunafuncin
especficasparadichatarea.
voidpostorden(arbol*a)
{
if(a!=NULL){
postorden(a>izq)
postorden(a>der)
visitar(a)
}
}
Comoaplicacinalostresrecorridosdeunrbolbinariosepresentaelsiguienterbolbinariode
lafigura74,condatosdetipocarcterconelpropsitodeidentificarlosrecorridosesPreorden,
Inorden,Postorden.
Figura74rbolbinariocomoaplicacinalostresrecorridos

http://datateca.unad.edu.co/contenidos/301305/Contenido_en_linea/Modulo_3013052012_HTML/leccin_38__formas_de_recorrer_un_rbol_binario.html

3/4

21/8/2016

Leccin38Formasderecorrerunrbolbinario

Elresultadoquearrojaalrealizarlostresrecorridoseselsiguiente:
Preorden:PQSTRUWXVYZ
Inorden:SQTPWUXRYVZ
Postorden:STQPWXUYZVRP

Anterior|Siguiente
PorlaCalidadEducativaylaEquidadSocial

http://datateca.unad.edu.co/contenidos/301305/Contenido_en_linea/Modulo_3013052012_HTML/leccin_38__formas_de_recorrer_un_rbol_binario.html

4/4

21/8/2016

Indexamiento

6.Indexamiento
6.1Definicindendice(index)
Tomemoscomoanalogaelndicedeloslibros.
"Esunatablaquecontieneunalistadeelementos(llaves)ynmerosdereferencia
dondedichoselementosseencuentran(camposdereferencia)".
Qunospermiteunndice??
a)Imponerunordenenunarchivosintenerquereordenarlo

ArchivoIndiceenmemoria(indexfile)
KeyPosicin
Bell
k

Archivo
PosicinRegistro
1
Itaca|56|Chicago

Harris

Kellog|77|NewYork

Itaca

Harris|99|California

Kellog

Bell|32|Denver

b)Proveermltiplescaminosdeaccesoaunarchivo

ArchivoIndiceenmemoria(indexfile)
KeyPosicin
California

Chicago

Kellog|77|NewYork

Denver

Harris|99|California

NewYork

Archivo
PosicinRegistro
1
Itaca|56|Chicago

Bell|32|Denver

Indicesparabsquedas,noserequiereacceso
secuencialalosdatos
(Nonindexedsequentialaccess)
6.2Simpleindex
http://ict.udlap.mx/people/carlos/is215/ir06.html

1/10

21/8/2016

Indexamiento

Recordemosqueelobjetivoinicialparausarndiceserapoderhacerbsquedas
binariasenlosarchivosdemaneraqueencontrramosmsrpidamentelosregistros
deseados
Dichasbsquedasserealizanenbaseala"llaveprimaria"o"primarykey"que
identificademaneranicaanuestroregisto.Dichallavepuedeestarcompuestapor
varioscampos,comosemuestraenelejemplosiguiente.

ArchivoIndiceen
memoria(indexfile)

Key
Posicin
(Label+ID)
ANG3795

152

COL31809

338

COL38358

196

DG139201

382

DG18807

241

FF245

427

LON2312

17

MER75016

285

RCA2626

62

WAR23699

117

Archivo

Posicin

Registro(Label,ID,Title,Composer)

17

LON|2312|RomeondJuliet|Prokofiev

62

RCA|2626|QuartetinCSharpMinor|Beethoven

117 WAR|23699|Touchstone|Corea
152 ANG|3795|SymphonyNo.9|Beethoven
196 COL|38358|Nebraska|Springsteen
241 DG|18807|SymphonyNo.9|Beethoven
285 MER|75016|Coqd'OrSuite|RimskyKorsakov
338 COL|31809|SymphonyNo.9|Dvorak
382 DG|139201|VilinConcerto|Beethoven
427 FF|245|GoodNews|SweetHoneyintheRock

6.3Operacionesparaelmantenimientodeun
archivoindexado.
Asumiendoquetodoelndicecabeenmemoria
Crearlosarchivos
Algunavezdeberncrearseambosarchivos,elindexfileyeldatafile
Alprincipioestarnvacos
Cargarelndiceenmemoria
Leerlosregistrosdelarchivodedatos,crearelndiceenmemoriayordenarlo
bajoelcriteriodelallaveprimaria
Puedeexistirpreviamenteunarchivondice,enestecasohabraquecargarloen
memoriaysoloactualizarloconlosnuevosdatos
Reescribirelarchivondice(indexfile)dememoria
Bajarelndiceadiscoparausarloposteriormente
http://ict.udlap.mx/people/carlos/is215/ir06.html

2/10

21/8/2016

Indexamiento

Nota:debemosasegurarnosdequeestaoperacintengaalgunasmedidas
contradesastres
Comoseestdestruyendoelarchivondiceunasolucinseraponeruna
bandera,demodoquesielprocesonosecompleta,laprximavezsesabe
quequedopendienteesatareayhayqueejecutarladenuevo.
AgregarRegistros
Alinsertarunregistronuevorecordaragregarloenamboslados,elarchivode
datos(noimportaelorden)yenelndiceenmemoria(manteniendoordenadoel
ndice)
Nota:aquestamosasumiendoqueelndicepuedemanejarse"todo"en
memoria,posteriormentetrataremoselcasoenqueno.
EliminarRegistros
CompactacinyReutilizacindeEspacio
Aquipodramoshacerunamezcladeambos,losregistrosdedatosalestaren
discopodramosreutilizarlos(colocndolesunamarcayagregndolosalapilade
disponibles,seconocencomo"pinnedrecords"),peroelndicecomoesten
memoriapodemoscompactarlosinmayordificultad(usandomemoriadinmica)
ActualizarRegistros
Existen2posibilidades
Laactualizacincambiaelvalordela"llave":enestecasodebemosreordenarel
ndiceyquizs(debidoalcambiodetamao)moverelregistroenelarchivode
datos.Lamejoropcinseraeliminareinsertardenuevo.
LaactualizacinNOafectaelvalordela"llave":enestecasoslohabraquever
siesnecesarioreacomodarelarchivodedatosporelcambiodetamao,aqula
solucindeeliminareinsertaresopcionalperoenocasionesconveniente.

6.4Indicesenrelacinconsutamao
6.4.1IndicesDensoseIndicesEsparcidos
Cuandohablamosdendicespodemoshacerunadivisindeacuerdoalnmerode
elementosqueposeeenrelacinconelarchivodedatos
Demaneraquetenermos2categoras:
Indicesdensos:aquellosqueposeenunnmerodeelementosigualalderegistrosen
elarchivodedatos
Indicesesparcidos:aquellosquesonmsreducidosquesurespectivoarchivodedatos
Ventajas:
Indicedenso:poderencontrarcualquierregistrorpidamenteobiendeterminarsu
inexistencia,ademsdepoderaccesaralainfomacinenO(1).
Indiceesparcido:sutamaohacequepuedasermantenidoenmemoriaramsin
ningnproblema
Desventajas:
Indicedenso:sugrantamaoaunqueenrealidadnoestansignificanteydeahique
seanlosmsutilizados
http://ict.udlap.mx/people/carlos/is215/ir06.html

3/10

21/8/2016

Indexamiento

Indiceesparcido:porlogeneral,forzosamentetienequeaccesaralarchivooriginal
paradeterminarlaexistenciadealgunregistro,obienhaceralgunosaccesos
secuencialespararecuperarlo.

ArchivoIndicedenso
KeyPosicin
10
1
20

30

40

50

Archivo
PosicinRegistro
1
10|Itaca|Chicago
2

20|Kellog|NewYork

30|Harris|California

4 40|Williams|Portland
k

50|Bell|Denver

ArchivoIndiceesparcido
KeyPosicin
10
1
30

50

70

90

Archivo
PosicinRegistro
1
10|Itaca|Chicago
2

20|Kellog|NewYork

30|Harris|California

4 40|Williams|Portland
k

50|Bell|32|Denver

6.4.2Indicesquesondemasiadograndesparaprocesarseen
memoria
Loquesehamencionadohastaelmomento,ydesafortunadamentemuchasdelas
ventajasquepresentaesqueestamosasumiendoqueelndicetieneunciertotamao
quepuedeseralmacenadoyprocesadoenmemoriaRAM.Encasodequesucedalo
contrarioloquesedebehaceresprocesardirectamenteelndiceendisco
(almacenamientosecundario)locualpresentaciertasdesventajas:

BsquedaBinariaendiscorequieremuchos"seeks",locualhacequeel
procedimientoseamslento
Elreacomodamientodelosndices(poralgunadelasoperacionesde
mantenimiento)requiereelrecorreruordenarciertosregistros,estoesmillones
devecesmslentoquehacerloenmemoriaprimaria.
http://ict.udlap.mx/people/carlos/is215/ir06.html

4/10

21/8/2016

Indexamiento

Soluciones:
UnaorganizacinbasadaenHash,silavelocidadesprioridad
Unaestructuraderbol,ndicesmultinivel,ejBTree,paramejorarelaccesoy
elreacomodamiento.
Importante:
Elhechodequeexistanestasdesventajasnoquieredecirquenoseuseestemtodo,
enrealidadpresentaventajas:
Elposibleusarunndicesimple(cuyalongitudgeneralmenteesfija)para
encontrarregistrosdelongitudvariable
Ancuandosepuedentenermuchoselementosenelndice,steesms
pequeoqueprocesarelarchivodedatos.
Reutilizarelespacioconlos"pinnedrecords"

6.5MltiplesLlaves
6.5.1IndexadoparaaccesoporMltiplesllaves
Enelejemplo6.2indexamoslosregistrosporsuLabelysuID,peroenlaprctica
nicamentenosinteresarabsquedasporestasllaves??
No,eslgicopensarenbsquedasporotroscampos,porejemplotodoslosregistros
cuyoautorsea"Beethoven"obientodaslascancionescuyottulosea"SymphonyNo.
9",demodoquepudieramosobteneralgunareferencia(primarykey)haciatodoslos
registrosquecumplanconnuestrocriteriodebsqueda.
Demaneraqueloprimeroquesenosvienealamenteescrearotros"ndices"basados
enestoscamposquesondeinters,aestoscamposselesconocecomo"llaves
secundarias"o"secondarykeys".
Unadiferenciadeestosndicesdellavessecundariasesquedebemosobtenerprimero
lallaveprimariaparaentoncespoderrecuperarlaposicin(ubicacin)dedicho
registro,aestoseleconocecomo"entrysequenced".
Pensemosenunregistrodeunalicenciademanejo,llegamosahacernuestroexamen
ynospidennuestronombre,nosbuscanyobtienenelnmerodelicenciaygraciasa
stesepuedenrecuperartodoslosdemsdatosyaplicarelexamencorrespondiente.

SecondaryIndex(composer)Primary
Key
BEETHOVEN ANG3795
BEETHOVEN

DG139201

BEETHOVEN

DG18807

BEETHOVEN

RCA2626

COREA

WAR23699

http://ict.udlap.mx/people/carlos/is215/ir06.html

SecondaryIndex(title)Primary
key
CODD'ORSUITE

MER75016

GOODNEWS

FF245

NEBRASKA

COL38358

QUARTETINSHARP
5/10

21/8/2016

Indexamiento

RCA2626

DVORAK

COL31809

PROKOFIEV

LON2312

ROMEOANDJULIET

LON2312

RIMSKY
KORSAKOV

MER75016

SYMPHONYNO.9

ANG3795

SYMPHONYNO.9

COL31809

SYMPHONYNO.9

DG18807

TOUSHSTONE

WAR23699

VIOLINCONCERTO

DG139201

SPRINGSTEEN COL38358
SWEET
HONEYINT

FF245

Esclaronotarqueasimplevistaresultaramejortenerdirectamentelaposicindel
registroenlugardelprimarykey,peroanalizandolasoperacionesrelacionadascon
dichosarchivosdescubriremoselmotivo.
AgregacindeRegistros
Cuandoseinsertaunregistronuevoelprocesoesmuysimilaraldeagregarel
ndiceprimario,sedebehacerunreordenamientodelosregistros,sistoscaben
enmemoriaestoncesnohaymuchoproblemayseharrpidamente.
Esimportartenotarquelasllavessecundariassealmacenanenforma"cannica",
esdecir:
Enmaysculasparafacilitarlasbsquedasycomparaciones
Conlongitudfijayquizsdeuntamaomuchomenorqueladelcampo,de
maneraquealgunosdatosse"truncan"
Otracaractersticaimportanteesqueaquelndicesecundariopuedecontener
duplicados(adiferenciadelprimarykeydondecadallaveidentificademanera
nicaelregistro).Estosduplicadossecolocanjuntosamaneradegrupoyse
ordendeacuerdoalprimarykey.
EliminacindeRegistros
Aqutienesentidoelnousarlaposicinrealdelregistroenelndicesecundarioy
ensulugarusarlallaveprimaria.
Situvieramosentodoslosndiceslasposicionesentoncesaleliminartendramos
queactualizartodosesosarchivos(ndicessecundarios)locualconsumira
demasiadotiempo,perodeotraformatendramosreferenciasaregistrosqueya
noexistenobienyasonreutilizadosycontienenotrainformacin.
Teniendolareferenciaalprimarykeylonicoquedebemoshacereseliminarel
registrodelarchivodedatosyeliminarlodelndiceprimario.Aqupodemosver
quelaventajaesquenoseafectantantosarchivosycuandonecesitamoshacer
unabsquedasolo"validamos"sielregistrosigueexistiendoono,locualesms
rpido.
Esconvenienteenmuchoscasosrealizarunacompactacinperidicadetodoslos
archivosparaaprovecharelespacio"basura"quesegeneraenlosarchivos
ndice.
ActualizacindeRegistros
Nuevamenteelhechodenoutilizarlaposicindelregistroencadaunodelos
ndicesnosevitaeltenerqueactualizarmuchosarchivoscuandoenrealidadsolo
tenemosqueactualizarelndiceprimario.
Peroexisten3posibilidadesdecambios:
http://ict.udlap.mx/people/carlos/is215/ir06.html

6/10

21/8/2016

Indexamiento

Actualizaralgunallavesecundaria:entoncesdebemosreordenar
nicamenteelndicesecundario.
Actualizarlallaveprimaria:debemosactualizarelndiceprimarioycambiar
lasreferenciasquetenamosdesdelosndicessecundarios(tenercuidado
queparaestoltimosepuederequerirreordenar,debidoalosregistros
duplicadosquecambiarandeorden)
Actualizarotroscampos:nicamenteactualizarelarchivodedatos,esto
puedeconvertirseenunaaccindeeliminareinsertar.

6.5.2Recuperacinusandocombinacionesdellavessecundarias
Porlogeneralloquesenecesitaes"restringir"o"delimitar"lasbsquedas,demanera
queutilizamosvarioscriteriosparadefinirloqueestamosbuscando.
Estonoesnadanuevo,lohemosusadoenbuscadorestradicionales"udlaand
biblioteca",soloqueaquestamosdefiniendoqubuscarenqullavesecundaria:
"universidad=udlaanddepartamento=biblioteca".
Paraelejemploqueestamospresentandoseraalgocomo:
Encuentratodoslosdatosdelosregistroscon:
composer='BEETHOVEN'andtitle='SYMPHONYNO.9'.
Buscandoenelndicesecundariopor"composer"obtenemos:

ANG3795
DG139201
DG18807
RCA2626
Ydelndicesecundariopor"title":

ANG3795
COL31809
DG18807
demaneraque:

Composer
ANG3795
DG139201
DG18807
RCA2626

Title
ANG3795
COL31809
DG18807

Match
ANG3795
DG18807

BuscandoelMatchenelndiceprimario:
http://ict.udlap.mx/people/carlos/is215/ir06.html

7/10

21/8/2016

Indexamiento

ANG3795nosdalaposicin:152
ANG|3795|SymphonyNo.9|Beethoven
DG18807nosdalaposicin:241
DG|18807|SymphonyNo.9|Beethoven

6.6ArchivosInvertidos(ListasInvertidas)
Losndicessecundariosquehemosmanejadohastaelmomentopresentanalgunas
dificultades:

Tenemosquereorganizarelarchivondicecadavezqueunnuevoregistroes
agregado.
Siexistenllavessecundariasduplicadas,elcampodedichallaveserepitemuchas
vecesydesperdiciamosespacio(unosdelosmotivosporelcualnoesposible
almacenarloenmemoria).
Algunasolucinquehasurgido
Colocarunarreglodendicesdentrodelmismoregistro

BEETHOVEN

ANG3795DG139201DG18807RCA2626

COREA

WAR23699

DVORAK

COL31809

PROKOFIEV

LON2312

RIMSKYKORSAKOV

MER75016

SPRINGSTEEN

COL38558

SWEETHONEYINT

FF245

Lasventajasdeesteesquema,oloqueseesperadel:
Norequierereordenarelarchivocuandohaynuevoselementosoaleliminarlos
Permitirmuchasreferencias(llavesprimarias)asociadasacadallavesecundaria
(nonicamente4)
Eliminaeldesperdiciodeespaciodebidoafragmentaciones.
Elplanteamientoanteriorsuenamuybien,pero....comoseimplementara??
Elproblema:
NopodemostenerunregistroinfinitoquenospermitaalmacenarNnmerode
referencias.
Nuevamentelasestructurasdedatosvanasolucionaresteproblema.
Utilizaremosalgoqueseconocecomo"listasinvertidas"o"archivosinvertidos",las
cualessonlistasligadasquenospermitenagregaroeliminarreferencias.
Eltrminode"invertida"nicamenteserefierealprocedimientoquetenemosque
http://ict.udlap.mx/people/carlos/is215/ir06.html

8/10

21/8/2016

Indexamiento

seguirporqueprimerobuscamosenelndicesecundarioyposteriormentelaprimaria.

>
ANG3795
DG139201
DG18807
RCA2626

BEETHOVEN>
DVORAK>

>
WAR23699

PROKOFIEV>

>

COREA>

COL31809
>
LON2312
XXX99999
Yaimplementadosera:

SecondaryIndexfile
BEETHOVEN
3
COREA

DVORAK

PROKOFIEV

10

RIMSKYKORSAKOV 6
SPRINGSTEEN

SWEETHONEIN
TH

LabelIDListfile
0 LON2312
1
1

RCA2626

WAR23699

ANG3795

COL38358

DG18807

MER75016

COL31809

DG139201

FF245

10 ANG36193

Losarchivosinvertidostienenalgunasventajas:
Elnicoreacomodamientonecesarioenelndicesecundarioescuando
agregamosnuevasllavessecundarias
Enelcasodereacomodarelndicesecundariolatareaesmenorymuchoms
rpidadebidoaquetienemenosregistros
Debidoaqueahoratenemosmenoselementosqueordenar,elhechodequeel
ndiceseguardeendiscoynoenmemorianotienetrascendencia.
Lalistaligada(enelejemploLabelIDListfile)nuncarequiereordenarse,es
"entrysequenced"
http://ict.udlap.mx/people/carlos/is215/ir06.html

9/10

21/8/2016

Indexamiento

Elespacioendichalistaligadasepuedereutilizarfcilmentepuestoquelos
registrossondelongitudfija.

http://ict.udlap.mx/people/carlos/is215/ir06.html

10/10

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

4.Operacionesfundamentalesde
ProcesamientodeArchivos

4.1TiposdeArchivosporsulocalizacin
PhysicalFile:Coleccindebytesalmacenadosenundiscoocinta
LogicalFile:Un"canal"(comounalneatelefnica)queencapsulalosdetalles
acercadelalocalizacinyformatofsicodeunarchivo
Cuandounarchivodeseautilizarunarchivoparticularej."data",elsistemaoperativo
debebuscarelarchivofsico"data"yhacerelsupuestoenlacehaciaelasignndoleun
archivolgico.Estearchivolgicotieneunnombrelgico.

4.2TiposdeArchivosporsucontenido(Binariosy
deTexto)
Unarchivosedicequeesdetipotextositodosucontenidoestalmacenadoenforma
decadenasdecaracteres.
ej:"cadenadetexto12345"
Unarchivobinarioporsuparteguardalarepresentacinenbytesdeltipodedatosque
seestmanejando
ej:"cadenadetextocf"

4.3AbriendoyCerrandoArchivos
AbriendoArchivos
Unavezquesehaentabladoelenlaceconelarchivoesnecesariodeclararloque
intentamoshacerconel:
Abrirunarchivoexistente
Crearunarchivonuevo
Estohacequeelarchivoestelistoparausarseporelprograma
Estamosposicionadosalprincipiodelarchivo,listosparaleeroescribir
fd=open(filename,flags[,pmode])
fd=filedescriptor
filename=physicalfilename
http://ict.udlap.mx/people/carlos/is215/ir04.html

1/8

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

flags=O_APPEND,O_CREAT,O_EXCL,O_RDOINLY,O_RDWR,O_TRUNC,
O_WRONLY
pmode=rwe(Owner)rwe(Group)rwe(Others)
Cerrandoarchivos

Ponecomodisponibleelnombrelgicoempleadoparaestearchivo
Seaseguradequetodoslosdatosmandadosalarchivosehayanguardado,
incluyendoaquellosqueanestabanenlosbufferdememoria
Elsistemaoperativoseencargaderealizarestaoperacin,amenosqueel
programatengaunasalidaanormal.
fclose(fd)

4.4Modosdeaccesoaunarchivo
Secuencial
Existeunapuntadorqueindicalaposicinactualaleeroescribir
Seabreelarchivoysevaleyendo/escribiendosecuencialmente,deinicioafin
AleatoriooDirecto
Existeunapuntadorqueindicalaposicinactualaleeroescribir
Esteapuntadoresmvil,sepuededesplazaracualquierposicindelarchivo
(adelanteoatrs)
Seabreelarchivoysepuedeleer/escribirencualquierposicin

4.5Operacionescomunesalempleararchivos
Lectura
Dedndevamosaleer(archivodeentrada)
Dndevamosaguardarloqueleemos(variablesoatributos)
Cuntovamosvamosaleer(bytecount)
Escritura
Dndevamosaescribir(archivodesalida)
Quvamosaguardar(variablesoatributos)
Cuntosbytesvamosaescribir
Seeking
Unprogramanonecesariamentetienequeleersecuencialmentepuede"brincar"
alocalizacionesespecficasdelarchivo(archivosdeaccesoaleatorio)
Aestaoperacinseleconocecomo"seeking"
Alnmerodeposicionesquesemueveelapuntadorseleconocecomo"offset"
http://ict.udlap.mx/people/carlos/is215/ir04.html

2/8

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

4.6Streams

Stream(streamofwater)
Esunasecuenciaordenadadebytesdeunalongitudsindeterminacin.
Existen2tiposdestreams
Inputstreams:muevenbytesdedatoshaciaalgnprogramadesdealgunafuente
(generalmenteexterna)
Outputstreams:muevenbytesdedatosdesdealgnprogramahaciaundestino
externo.
Nota:loanteriornoesunareglapuedehaberstreamsquetrabajencondatos
haciaydesdeprogramas.
Estosstreamsestnrelacionadosconlosdispositivosdeentradaysalidaquese
mencionanacontinuacinytambiensepuedenredireccionardesdelosmismos
programas
EjemplodesdeJava:System.setErr(PrintStreamerr),System.setIn(InputStreamin)
DispositivosdeI/O
Stdin,Stdout,Stderr
(0)Stdin:dispositivoestndardeentrada(teclado)
(1)Stdout:dispositivoestndardesalida(consola)
(2)Stderr:dispositivoestndardeerror(denuevolaconsola)

Redireccionamiento:
1>filename
#Redirectstdouttofile"filename".
1>>filename
#Redirectandappendstdouttofile"filename".
2>filename
#Redirectstderrtofile"filename".
2>>filename
#Redirectandappendstderrtofile"filename".
&>filename
#Redirectbothstdoutandstderrtofile"filename".
2>&1
#Redirectsstderrtostdout.
#Errormessagesgetsenttosameplaceasstandardoutput.
0<FILENAME
<FILENAME
#Acceptinputfromafile.

http://ict.udlap.mx/people/carlos/is215/ir04.html

3/8

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

4.7I/OApisenloslenguajesdeprogramacin

4.7.1Java
EnJavalasclasesdeI/Osedividenen2gruposdependiendosimanejanbytesochars
(elanlogoseranlosarchivosbinariosydetextoenotroslenguajes)
CharacterStreams

ByteStreams

http://ict.udlap.mx/people/carlos/is215/ir04.html

4/8

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

Mtodosdelassuperclases:
Entrada
Reader
intread()
intread(charcbuf[])
intread(charcbuf[],intoffset,intlength)
InputStream
intread()
intread(bytecbuf[])
intread(bytecbuf[],intoffset,intlength)
Salida
Writer
intwrite(intc)
intwrite(charcbuf[])
intwrite(charcbuf[],intoffset,intlength)
OutputStream
intwrite(intc)
intwrite(bytecbuf[])
intwrite(bytecbuf[],intoffset,intlength)

I/OStreams
TypeofI/O

Streams
CharArrayReader
CharArrayWriter

ByteArrayInputStream
ByteArrayOutputStream

Memory
StringReader
StringWriter
StringBufferInputStream

Description
Usethesestreamstoreadfromandwritetomemory.You
createthesestreamsonanexistingarrayandthenuse
thereadandwritemethodstoreadfromorwritetothe
array.
UseStringReadertoreadcharactersfromaStringin
memory.UseStringWritertowritetoaString.
StringWritercollectsthecharacterswrittentoitina
StringBuffer,whichcanthenbeconvertedtoaString.
StringBufferInputStreamissimilartoStringReader,except
thatitreadsbytesfromaStringBuffer.

PipedReader

Pipe

PipedWriter
PipedInputStream
PipedOutputStream
FileReader

File

FileWriter

Implementtheinputandoutputcomponentsofapipe.
Pipesareusedtochanneltheoutputfromonethreadinto
theinputofanother.

Collectivelycalledfilestreams,thesestreamsareusedto
readfromorwritetoafileonthenativefilesystem.The
section

FileInputStream
FileOutputStream
http://ict.udlap.mx/people/carlos/is215/ir04.html

5/8

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

Concatenation N/A

SequenceInputStream

Object
Serialization

Concatenatesmultipleinputstreamsintooneinput
stream.Thesection

N/A

ObjectInputStream

Usedtoserializeobjects.

....implementsjava.io.Serializable
ObjectOutputStream

Readorwriteprimitivedatatypesinamachine
independentformat..
DataInputStream
readFully(byte[]b)
readFloat()
readDouble()
readInt()

Data
Conversion

N/A
DataInputStream

DataOutputStream

DataOutputStream
writeChars(Strings)
writeFloat(floatv)
writeDouble(doublev)
writeInt(intv)

Counting

LineNumberReader
LineNumberInputStream

Peeking
Ahead

PushbackReader
PushbackInputStream

Printing

PrintWriter
PrintStream
BufferedReader

Buffering

BufferedWriter
BufferedInputStream
BufferedOutputStream

Keepstrackoflinenumberswhilereading.
Theseinputstreamseachhaveapushbackbuffer.When
readingdatafromastream,itissometimesusefultopeek
atthenextfewbytesorcharactersinthestreamto
decidewhattodonext.
Containconvenientprintingmethods.Thesearethe
easieststreamstowriteto,soyouwilloftenseeother
writablestreamswrappedinoneofthese.
Bufferdatawhilereadingorwriting,therebyreducingthe
numberofaccessesrequiredontheoriginaldatasource.
Bufferedstreamsaretypicallymoreefficientthansimilar
nonbufferedstreamsandareoftenusedwithother
streams.

FilterReader

Filtering

FilterWriter

http://ict.udlap.mx/people/carlos/is215/ir04.html

Theseabstractclassesdefinetheinterfaceforfilter
streams,whichfilterdataasit'sbeingreadorwritten.
6/8

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

FilterInputStream
FilterOutputStream

Converting
InputStreamReader
betweenBytes
and
OutputStreamWriter
Characters

Areaderandwriterpairthatformsthebridgebetween
bytestreamsandcharacterstreams.
AnInputStreamReaderreadsbytesfromanInputStreamand
convertsthemtocharacters,usingthedefaultcharacter
encodingoracharacterencodingspecifiedbyname.
AnOutputStreamWriterconvertscharacterstobytes,using
thedefaultcharacterencodingoracharacterencoding
specifiedbynameandthenwritesthosebytestoan
OutputStream.
Youcangetthenameofthedefaultcharacterencoding
bycallingSystem.getProperty("file.encoding").

EsimportanterevisarelAPIdeJava,ascomoeltutorialdeI/O
http://java.sun.com/j2se/1.4.1/docs/api/
http://java.sun.com/docs/books/tutorial/essential/io/index.html

4.7.2C#
Class
Stream
FileStream

MemoryStream

BufferedStream

TextReader

StreamReader
StringReader

http://ict.udlap.mx/people/carlos/is215/ir04.html

Description
TheabstractbaseclassStreamsupportsreadingand
writingbytes.
InadditiontobasicStreambehavior,thisclass
supportsrandomaccesstofilesthroughitsSeek
methodandsupportsbothsynchronousand
asynchronousoperation.
Anonbufferedstreamwhoseencapsulateddatais
directlyaccessibleinmemory.Thisstreamhasno
backingstoreandmightbeusefulasatemporary
buffer.
AStreamthataddsbufferingtoanotherStream,such
asaNetworkStream.(FileStreamalreadyhas
bufferinginternally,andaMemoryStreamdoesn't
needbuffering.)ABufferedStreamobjectcanbe
composedaroundsometypesofstreamstoimprove
readandwriteperformance.
TheabstractbaseclassforStreamReaderand
StringReaderobjects.Whiletheimplementationsof
theabstractStreamclassaredesignedforbyteinput
andoutput,theimplementationsofTextReaderare
designedforUnicodecharacteroutput.
ReadscharactersfromaStream,usingEncodingto
convertcharacterstoandfrombytes.
ReadscharactersfromaString.StringReaderallows
youtotreataStringwiththesameAPIthus,your
7/8

21/8/2016

ict.udlap.mx/people/carlos/is215/ir04.html

TextWriter

StreamWriter
StringWriter
BinaryReader
BinaryWriter

outputcanbeeitheraStreaminanyencodingora
String.
TheabstractbaseclassforStreamWriterand
StringWriterobjects.Whiletheimplementationsof
theabstractStreamclassaredesignedforbyteinput
andoutput,theimplementationsofTextWriterare
designedforUnicodecharacterinput.
WritescharacterstoaStream,usingEncodingto
convertcharacterstobytes.
WritescharacterstoaString.StringWriterallowsyou
totreataStringwiththesameAPIthus,youroutput
canbeeitheraStreaminanyencodingoraString.
Readsbinarydatafromastream.
Writesbinarydatatoastream.

C#API
ClassBrowser

4.7.3C/C++
ParaelcasodeC/C++serecomiendaleerlossiguientesdocumentos:
CaptulodeAccesoaArchivosenC
CaptulodeAccesoaArchivosenC++
Estoscaptuloscontomadosdellibro:C++thecompleteReference,HerbertSchildt,
EditorialOsborne
Otrabuenareferencia:C++asualcance,unenfoqueorientadoaobjetos,LuisJoyanes
Aguilar
Apisonline:
CPPReference(C/C++)
CPlusPlusResources

4.7.4Ejemplos
ArchivoZIP

http://ict.udlap.mx/people/carlos/is215/ir04.html

8/8

Sistema de informacin geogrca


compartir y mostrar la informacin geogrcamente referenciada. En un sentido ms genrico, los SIG son herramientas que permiten a los usuarios crear consultas interactivas, analizar la informacin espacial, editar datos,
mapas y presentar los resultados de todas estas operaciones.
La tecnologa de los SIG puede ser utilizada para
investigaciones cientcas, la gestin de los recursos, la
gestin de activos, la arqueologa, la evaluacin del impacto ambiental, la planicacin urbana, la cartografa,
la sociologa, la geografa histrica, el marketing, la
logstica por nombrar unos pocos. Por ejemplo, un SIG
podra permitir a los grupos de emergencia calcular fcilmente los tiempos de respuesta en caso de un desastre
natural, o encontrar los humedales que necesitan proteccin contra la contaminacin, o pueden ser utilizados por
una empresa para ubicar un nuevo negocio y aprovechar
las ventajas de una zona de mercado con escasa competencia.

En la imagen capas raster y vectoriales en el SIG de cdigo libre


QGIS.

1 Funcionamiento de un SIG

Un ejemplo de uso de la superposicin de capas en una aplicacin


SIG. En este ejemplo la capa de la cubierta forestal (en verde) ubicada en la parte inferior, se encuentra superpuesta por la capa
topogrca conformada por las curvas de nivel y por las capas
de la red hidrogrca y los lmites poltico administrativos. En
los SIG la superposicin toplogica crea nuevas capas de informacin requeridas para obtener una visualizacin correcta del
mapa nal. Ntese que la capa que recoge las lminas de agua
se encuentra justo por debajo de la capa de los ros, de modo que
una lnea de ujo conforma cada uno de los estanques.

Un SIG puede mostrar la informacin en capas temticas para


realizar anlisis multicriterio complejos.

El SIG funciona como una base de datos con informacin


geogrca (datos alfanumricos) que se encuentra asociada por un identicador comn a los objetos grcos de
los mapas digitales. De esta forma, sealando un objeto se conocen sus atributos e, inversamente, preguntando
por un registro de la base de datos se puede saber su localizacin en la cartografa.

Un sistema de informacin geogrca (tambin conocido con los acrnimos SIG en espaol o GIS en ingls)
es un conjunto de herramientas que integra y relaciona diversos componentes (usuarios, hardware, software,
procesos) que permiten la organizacin, almacenamiento, manipulacin, anlisis y modelizacin de grandes cantidades de datos procedentes del mundo real que estn
vinculados a una referencia espacial, facilitando la incorporacin de aspectos sociales-culturales, econmicos y
ambientales que conducen a la toma de decisiones de una
manera ms ecaz.

La razn fundamental para utilizar un SIG es la gestin de


informacin espacial. El sistema permite separar la informacin en diferentes capas temticas y las almacena independientemente, permitiendo trabajar con ellas de manera rpida y sencilla, facilitando al profesional la posibiEn el sentido ms estricto, es cualquier sistema de in- lidad de relacionar la informacin existente a travs de la
formacin capaz de integrar, almacenar, editar, analizar, topologa geoespacial de los objetos, con el n de generar
1

HISTORIA DE SU DESARROLLO

otra nueva que no podramos obtener de otra forma.


Las principales cuestiones que puede resolver un sistema
de informacin geogrca, ordenadas de menor a mayor
complejidad, son:
Localizacin: preguntar por las caractersticas de un
lugar concreto.
Condicin: el cumplimiento o no de unas condiciones impuestas al sistema.
Tendencia: comparacin entre situaciones temporales o espaciales distintas de alguna caracterstica.
Rutas: clculo de rutas ptimas entre dos o ms puntos.
Pautas: deteccin de pautas espaciales.
Modelos: generacin de modelos a partir de fen- Mapa original del Dr. John Snow. Los puntos son casos de clera
durante la epidemia en Londres de 1854. Las cruces representan
menos o actuaciones simuladas.
los pozos de agua de los que beban los enfermos.

Por ser tan verstiles, el campo de aplicacin de los sistemas de informacin geogrca es muy amplio, pudiendo
utilizarse en la mayora de las actividades con un componente espacial. La profunda revolucin que han provocado las nuevas tecnologas ha incidido de manera decisiva
en su evolucin.

Historia de su desarrollo

Hace unos 15.000 aos[1] en las cuevas de Lascaux


(Francia) los hombres de Cro-Magnon pintaban en las paredes los animales que cazaban, asociando estos dibujos
con trazas lineales que, se cree, cuadraban con las rutas de
migracin de esas especies.[2] Si bien este ejemplo es simplista en comparacin con las tecnologas modernas, estos antecedentes tempranos imitan a dos elementos de los
sistemas de informacin geogrca modernos: una imagen asociada con un atributo de informacin.[3]
En 1854, el pionero de la epidemiologa, el Dr. John
Snow, proporcionara otro clsico ejemplo de este concepto cuando cartogra, en un ya famoso mapa, la incidencia de los casos de clera en el distrito de Soho en
Londres.[4]
Este protoSIG, uno de los ejemplos ms tempranos del
mtodo geogrco,[5] permiti a Snow localizar con precisin un pozo de agua contaminado como la fuente causante del brote.
Si bien la cartografa topogrca y temtica ya exista
previamente, el mapa de John Snow fue el nico hasta el
momento, que, utilizando mtodos cartogrcos, no solo
representaba la realidad, sino que por primera vez analizaba conjuntos de fenmenos geogrcos dependientes.
Al comienzo del siglo XX, se desarroll la "foto
litografa", donde los mapas eran separados en capas.

El avance del hardware impulsado por la investigacin


en armamento nuclear dara lugar, a comienzos de los
aos 60, al desarrollo de aplicaciones cartogrcas para
computadores de propsito general.[6]
El ao 1962 vio la primera utilizacin real de los SIG en el
mundo, concretamente en Ottawa (Ontario, Canad) y a
cargo del Departamento Federal de Silvicultura y Desarrollo Rural. Desarrollado por Roger Tomlinson, el llamado Sistema de informacin geogrca de Canad (Canadian Geographic Information System, CGIS) se utiliz
para almacenar, analizar y manipular datos recogidos para el Inventario de Tierras Canad (Canada Land Inventory, CLI) - una iniciativa orientada a la gestin de los
vastos recursos naturales del pas con informacin cartogrca relativa a tipos y usos del suelo, agricultura, espacios de recreo, vida silvestre, aves acuticas y silvicultura,
todo ello a una escala de 1:50.000. Se aadi, as mismo,
un factor de clasicacin para permitir el anlisis de la
informacin.
El Sistema de informacin geogrca de Canad fue el
primer SIG en el mundo similar a tal y como los conocemos hoy en da, y un considerable avance con respecto a las aplicaciones cartogrcas existentes hasta entonces, puesto que permita superponer capas de informacin, realizar mediciones y llevar a cabo digitalizaciones
y escaneos de datos. Asimismo, soportaba un sistema nacional de coordenadas que abarcaba todo el continente,
una codicacin de lneas en arcos que posean una verdadera topolgica integrada y que almacenaba los atributos de cada elemento y la informacin sobre su localizacin en archivos separados. Como consecuencia de
esto, Tomlinson est considerado como el padre de los
SIG, en particular por el empleo de informacin geogrca convergente estructurada en capas, lo que facilita
su anlisis espacial.[7] El CGIS estuvo operativo hasta la

3
dcada de los 90 llegando a ser la base de datos sobre recursos del territorio ms grande de Canad. Fue desarrollado como un sistema basado en una computadora central y su fortaleza radicaba en que permita realizar anlisis complejos de conjuntos de datos que abarcaban todo
el continente. El software, decano de los sistemas de informacin geogrca, nunca estuvo disponible de manera
comercial.
En 1964, Howard T. Fisher form en la Universidad de
Harvard el Laboratorio de Computacin Grca y Anlisis Espacial en la Harvard Graduate School of Design
(LCGSA 1965-1991), donde se desarrollaron una serie
de importantes conceptos tericos en el manejo de datos
espaciales, y en la dcada de 1970 haba difundido cdigo
de software y sistemas germinales, tales como SYMAP,
GRID y ODYSSEY - los cuales sirvieron como fuentes
de inspiracin conceptual para su posterior desarrollos
comerciales - a universidades, centros de investigacin y
empresas de todo el mundo.[8]

formtico internacional que hicieron generalizarse a esta


tecnologa.
En la dcada de los noventa se inicia una etapa comercial para profesionales, donde los sistemas de informacin geogrca empezaron a difundirse al nivel del usuario domstico debido a la generalizacin de los ordenadores personales o microordenadores.
A nales del siglo XX principio del XXI el rpido crecimiento en los diferentes sistemas se ha consolidado, restringindose a un nmero relativamente reducido de plataformas. Los usuarios estn comenzando a exportar el
concepto de visualizacin de datos SIG a Internet, lo que
requiere una estandarizacin de formato de los datos y
de normas de transferencia. Ms recientemente, ha habido una expansin en el nmero de desarrollos de software SIG de cdigo libre, los cuales, a diferencia del
software comercial, suelen abarcar una gama ms amplia
de sistemas operativos, permitiendo ser modicados para
llevar a cabo tareas especcas.

En la dcada de los 80, M&S Computing (ms tarde Intergraph), Environmental Systems Research Institute (ESRI) y CARIS (Computer Aided Resource Informa- 3
tion System) emergeran como proveedores comerciales
de software SIG. Incorporaron con xito muchas de las
caractersticas de CGIS, combinando el enfoque de primera generacin de sistemas de informacin geogrca 3.1
relativo a la separacin de la informacin espacial y los
atributos de los elementos geogrcos representados con
un enfoque de segunda generacin que organiza y estructura estos atributos en bases de datos.

Tcnicas utilizadas en los sistemas de informacin geogrca


La creacin de datos

En la dcada de los aos 70 y principios de los 80 se inici en paralelo el desarrollo de dos sistemas de dominio
pblico. El proyecto Map Overlay and Statistical System
(MOSS) se inici en 1977 en Fort Collins (Colorado, EE.
UU.) bajo los auspicios de la Western Energy and Land
Use Team (WELUT) y el Servicio de Pesca y Vida Silvestre de Estados Unidos (US Fish and Wildlife Service). En
1982 el Cuerpo de Ingenieros del Laboratorio de Investigacin de Ingeniera de la Construccin del Ejrcito de los
Estados Unidos (USA-CERL) desarrolla GRASS como
herramienta para la supervisin y gestin medioambiental
de los territorios bajo administracin del Departamento La teledeteccin es una de las principales fuentes de datos para
los SIG. En la imagen artstica una representacin de la constede Defensa.
lacin de satlites RapidEye.

Esta etapa de desarrollo est caracterizada, en general,


por la disminucin de la importancia de las iniciativas inLas modernas tecnologas SIG trabajan con informacin
dividuales y un aumento de los intereses a nivel corporadigital, para la cual existen varios mtodos utilizados en
tivo, especialmente por parte de las instancias gubernala creacin de datos digitales. El mtodo ms utilizado
mentales y de la administracin.
es la digitalizacin, donde a partir de un mapa impreso
Los 80 y 90 fueron aos de fuerte aumento de las em- o con informacin tomada en campo se transere a un
presas que comercializaban estos sistemas, debido el cre- medio digital por el empleo de un programa de Diseo
cimiento de los SIG en estaciones de trabajo UNIX y Asistido por Ordenador (DAO o CAD) con capacidades
ordenadores personales. Es el periodo en el que se ha ve- de georreferenciacin.
nido a conocer en los SIG como la fase comercial. El inDada la amplia disponibilidad de imgenes ortoters de las distintas grandes industrias relacionadas directicadas (tanto de satlite y como areas), la digitarecta o indirectamente con los SIG crece en sobremanera
lizacin por esta va se est convirtiendo en la principal
debido a la gran avalancha de productos en el mercado infuente de extraccin de datos geogrcos. Esta forma de

3 TCNICAS UTILIZADAS EN LOS SISTEMAS DE INFORMACIN GEOGRFICA

digitalizacin implica la bsqueda de datos geogrcos


directamente en las imgenes areas en lugar del mtodo
tradicional de la localizacin de formas geogrcas sobre
un tablero de digitalizacin.

3.2

La representacin de los datos

Los datos SIG representan los objetos del mundo real (carreteras, el uso del suelo, altitudes). Los objetos del mundo real se pueden dividir en dos abstracciones: objetos
discretos (una casa) y continuos (cantidad de lluvia cada, una elevacin). Existen dos formas de almacenar los
datos en un SIG: raster y vectorial.

con un slo propsito: mostrar una imagen detallada de


un mapa base sobre la que se realizarn labores de digitalizacin. Otros conjuntos de datos raster podrn contener informacin referente a las elevaciones del terreno
(un Modelo Digital del Terreno), o de la reexin de la
luz de una particular longitud de onda (por ejemplo las
obtenidas por el satlite LandSat), entre otros.
Los datos raster se compone de las y columnas de celdas, cada celda almacena un valor nico. Los datos raster pueden ser imgenes (imgenes raster), con un valor
de color en cada celda (o pxel). Otros valores registrados para cada celda puede ser un valor discreto, como el
uso del suelo, valores continuos, como temperaturas, o un
valor nulo si no se dispone de datos. Si bien una trama de
celdas almacena un valor nico, estas pueden ampliarse
mediante el uso de las bandas del raster para representar
los colores RGB (rojo, verde, azul), o una tabla extendida
de atributos con una la para cada valor nico de clulas.
La resolucin del conjunto de datos raster es el ancho de
la celda en unidades sobre el terreno.

Los SIG que se centran en el manejo de datos en formato


vectorial son ms populares en el mercado. No obstante,
los SIG raster son muy utilizados en estudios que requieran la generacin de capas continuas, necesarias en fenmenos no discretos; tambin en estudios medioambientales donde no se requiere una excesiva precisin espacial
(contaminacin atmosfrica, distribucin de temperatuLos datos raster se almacenan en diferentes formatos,
ras, localizacin de especies marinas, anlisis geolgicos,
desde un archivo estndar basado en la estructura de
etc.).
TIFF, JPEG, etc. a grandes objetos binarios (BLOB), los
datos almacenados directamente en Sistema de gestin
de base de datos. El almacenamiento en bases de datos,
3.2.1 Raster
cuando se indexan, por lo general permiten una rpida
Un tipo de datos raster es, en esencia, cualquier tipo de recuperacin de los datos raster, pero a costa de requerir
imagen digital representada en mallas. El modelo de SIG el almacenamiento de millones registros con un imporraster o de retcula se centra en las propiedades del espa- tante tamao de memoria. En un modelo raster cuanto
cio ms que en la precisin de la localizacin. Divide el mayores sean las dimensiones de las celdas menor es la
espacio en celdas regulares donde cada una de ellas repre- precisin o detalle (resolucin) de la representacin del
senta un nico valor. Se trata de un modelo de datos muy espacio geogrco.
adecuado para la representacin de variables continuas en
el espacio.
3.2.2 Vectorial
En un SIG, las caractersticas geogrcas se expresan con
frecuencia como vectores, manteniendo las caractersticas geomtricas de las guras.

Interpretacin cartogrca vectorial (izquierda) y raster (derecha) de elementos geogrcos.

Cualquiera que est familiarizado con la fotografa digital


reconoce el pxel como la unidad menor de informacin
de una imagen. Una combinacin de estos pxeles crear
una imagen, a distincin del uso comn de grcos vectoriales escalables que son la base del modelo vectorial.
Si bien una imagen digital se reere a la salida como una
representacin de la realidad, en una fotografa o el arte
transferidos a la computadora, el tipo de datos raster reejar una abstraccin de la realidad. Las fotografas areas son una forma de datos raster utilizada comnmente

Representacin de curvas de nivel sobre una supercie tridimensional generada por una red irregular de triangulos TIN.

En los datos vectoriales, el inters de las representaciones


se centra en la precisin de la localizacin de los elementos geogrcos sobre el espacio y donde los fenmenos
a representar son discretos, es decir, de lmites denidos. Cada una de estas geometras est vinculada a una

3.3

Ventajas y desventajas de los modelos raster y vectorial

la en una base de datos que describe sus atributos. Por


ejemplo, una base de datos que describe los lagos puede contener datos sobre la batimetra de estos, la calidad
del agua o el nivel de contaminacin. Esta informacin
puede ser utilizada para crear un mapa que describa un
atributo particular contenido en la base de datos. Los lagos pueden tener un rango de colores en funcin del nivel
de contaminacin. Adems, las diferentes geometras de
los elementos tambin pueden ser comparadas. As, por
ejemplo, el SIG puede ser usado para identicar aquellos
pozos (geometra de puntos) que estn en torno a 2 kilmetros de un lago (geometra de polgonos) y que tienen
un alto nivel de contaminacin.

Dimensin espacial de los datos en un SIG.

Los elementos vectoriales pueden crearse respetando una


integridad territorial a travs de la aplicacin de unas normas topolgicas tales como que los polgonos no deben
superponerse. Los datos vectoriales se pueden utilizar
para representar variaciones continuas de fenmenos. Las
lneas de contorno y las redes irregulares de tringulos
(TIN) se utilizan para representar la altitud u otros valores
en continua evolucin. Los TIN son registros de valores
en un punto localizado, que estn conectados por lneas
para formar una malla irregular de tringulos. La cara de
los tringulos representan, por ejemplo, la supercie del
terreno.

5
ferrocarriles, rastros, lneas topogrcas o curvas de nivel. De igual forma que en las entidades puntuales, en pequeas escalas pueden ser
utilizados para representar polgonos. En los
elementos lineales puede medirse la distancia.
Polgonos
Los polgonos bidimensionales se utilizan para
representar elementos geogrcos que cubren
un rea particular de la supercie de la tierra.
Estas entidades pueden representar lagos, lmites de parques naturales, edicios, provincias,
o los usos del suelo, por ejemplo. Los polgonos
transmiten la mayor cantidad de informacin
en archivos con datos vectoriales y en ellos se
pueden medir el permetro y el rea.

3.3 Ventajas y desventajas de los modelos


raster y vectorial
Existen ventajas y desventajas a la hora de utilizar un modelo de datos raster o vector para representar la realidad.
3.3.1 Ventajas
3.3.2 Desventajas

3.4 Datos no espaciales

Los datos no espaciales tambin pueden ser almacenados junto con los datos espaciales, aquellos representaPara modelar digitalmente las entidades del mundo real dos por las coordenadas de la geometra de un vector o
se utilizan tres elementos geomtricos: el punto, la lnea por la posicin de una celda raster. En los datos vectoriales, los datos adicionales contiene atributos de la entidad
y el polgono.[9]
geogrca. Por ejemplo, un polgono de un inventario forestal tambin puede tener un valor que funcione como
Puntos
identicador e informacin sobre especies de rboles. En
los datos raster el valor de la celda puede almacenar la
Los puntos se utilizan para las entidades geoinformacin de atributo, pero tambin puede ser utilizagrcas que mejor pueden ser expresadas por
do como un identicador referido a los registros de una
un nico punto de referencia. En otras palatabla.
bras: la simple ubicacin. Por ejemplo, las localizaciones de los pozos, picos de elevaciones o
3.5 La captura de los datos
puntos de inters. Los puntos transmiten la menor cantidad de informacin de estos tipos de
La captura de datos, y la introduccin de informacin en
archivo y no son posibles las mediciones. Tamel sistema consume la mayor parte del tiempo de los probin se pueden utilizar para representar zonas a
fesionales de los SIG. Hay una amplia variedad de mtouna escala pequea. Por ejemplo, las ciudades
dos utilizados para introducir datos en un SIG almacenaen un mapa del mundo estarn representadas
dos en un formato digital.
por puntos en lugar de polgonos.
Lneas o polilneas
Las lneas unidimensionales o polilneas[10] son
usadas para rasgos lineales como ros, caminos,

Los datos impresos en papel o mapas en pelcula PET


pueden ser digitalizados o escaneados para producir datos
digitales.
Con la digitalizacin de cartografa en soporte analgico
se producen datos vectoriales a travs de trazos de pun-

3 TCNICAS UTILIZADAS EN LOS SISTEMAS DE INFORMACIN GEOGRFICA

Dangles

Switchbacks

Knots
Con un par de fotografas areas tomadas en dos puntos
desplazados, como las de la imagen, se consigue realizar la
estereoscopa. Mediante este paralaje se crea una ilusin de profundidad que permite al observador reconocer informacin visual tridimensional como las elevaciones y pendientes del rea
fotograada.

tos, lneas, y lmites de polgonos. Este trabajo puede ser


desarrollado por una persona de forma manual o a travs
de programas de vectorizacin que automatizan la labor
sobre un mapa escaneado. No obstante, en este ltimo caso siempre ser necesario su revisin y edicin manual,
dependiendo del nivel de calidad que se desea obtener.
Los datos obtenidos de mediciones topogrcas pueden
ser introducidos directamente en un SIG a travs de instrumentos de captura de datos digitales mediante una tcnica llamada geometra analtica. Adems, las coordenadas de posicin tomadas a travs un Sistema de Posicionamiento Global (GPS) tambin pueden ser introducidas
directamente en un SIG.

Loops

Overshoots

Undershoots

Los sensores remotos tambin juegan un papel importante en la recoleccin de datos. Son sensores, como cmaras, escneres o LIDAR acoplados a plataformas mviles
como aviones o satlites.
Actualmente, la mayora de datos digitales provienen de
la interpretacin de fotografas areas. Para ello se utiSlivers
lizan estaciones de trabajo que digitalizan directamente
elementos geogrcos a travs de pares estereoscpicos
de fotografas digitales. Estos sistemas permiten capturar
datos en dos y tres dimensiones, con elevaciones medidas
directamente de un par estereoscpico de acuerdo a los
Errores topolgicos y de digitalizacin en los sistemas de inforprincipios de la fotogrametra.
La teleobservacin por satlite proporciona otra fuente
importante de datos espaciales. En este caso los satlites
utilizan diferentes sensores para medir la reectancia de
las partes del espectro electromagntico, o las ondas de
radio que se envan a partir de un sensor activo como el
radar. La teledeteccin recopila datos raster que pueden
ser procesados usando diferentes bandas para determinar
las clases y objetos de inters, tales como las diferentes
cubiertas de la tierra.

macin geogrca (SIG).

que no solo inuye en la interpretacin de la informacin,


sino tambin en el costo de su captura.

Adems de la captura y la entrada en datos espaciales,


los datos de atributos tambin son introducidos en un
SIG. Durante los procesos de digitalizacin de la cartografa es frecuente que se den fallos topolgicos invoCuando se capturan los datos, el usuario debe considerar luntarios (dangles, undershoots, overshoots, switchbacks,
si estos deben ser tomados con una exactitud relativa o knots, loops, etc.) en los datos vectoriales y que debern
con una absoluta precisin. Esta decisin es importante ya ser corregidos. Tras introducir los datos en un SIG, estos

3.8

Anlisis espacial mediante SIG

normalmente requerirn de una edicin o procesado posterior para eliminar los errores citados. Se deber de hacer una correccin topolgica antes de que puedan ser
utilizados en algunos anlisis avanzados y, as por ejemplo, en una red de carreteras las lneas debern estar conectadas con nodos en las intersecciones.
En el caso de mapas escaneados, quizs sea necesario eliminar la trama resultante generada por el proceso de digitalizacin del mapa original. As, por ejemplo, una mancha de suciedad podra unir dos lneas que no deberan
estar conectadas.

3.6

Conversin de datos raster-vectorial

7
System 1989 - ETRS89 funciona bien en Europa pero
no en Amrica del Norte).
La proyeccin es un componente fundamental a la hora de crear un mapa. Una proyeccin matemtica es la
manera de transferir informacin desde un modelo de la
Tierra, el cual representa una supercie curva en tres dimensiones, a otro de dos dimensiones como es el papel
o la pantalla de un ordenador. Para ello se utilizan diferentes proyecciones cartogrcas segn el tipo de mapa
que se desea crear, ya que existen determinadas proyecciones que se adaptan mejor a unos usos concretos que
a otros. Por ejemplo, una proyeccin que representa con
exactitud la forma de los continentes distorsiona, por el
contrario, sus tamaos relativos.

Dado que gran parte de la informacin en un SIG proviene de cartografa ya existente, un sistema de informacin geogrca utiliza la potencia de procesamiento de
la computadora para transformar la informacin digital,
obtenida de fuentes con diferentes proyecciones y/o diferentes sistemas de coordenadas, a una proyeccin y sistema de coordenadas comn. En el caso de las imgenes
(ortofotos, imgenes de satlite, etc.) este proceso se deLa vectorizacin no asistida de imgenes raster mediante nomina recticacin.
algoritmos avanzados es una tcnica que se viene desarrollado desde nales de los aos 60 del siglo XX. Para ello se
recurre a la mejora del contraste, imgenes en falso color 3.8 Anlisis espacial mediante SIG
as como el diseo de ltros mediante la implementacin
de transformadas de Fourier en dos dimensiones.
Los SIG pueden llevar a cabo una reestructuracin de
los datos para transformarlos en diferentes formatos. Por
ejemplo, es posible convertir una imagen de satlite a un
mapa de elementos vectoriales mediante la generacin de
lneas en torno a celdas con una misma clasicacin determinando la relacin espacial de estas, tales como proximidad o inclusin.

Al proceso inverso de conversin de datos vectorial a una


estructura de datos basada en un matriz raster se le denomina rasterizacin.
Dado que los datos digitales se recogen y se almacenan en
ambas formas, vectorial y raster, un SIG debe ser capaz
de convertir los datos geogrcos de una estructura de
almacenamiento a otra.

3.7

Proyecciones, sistemas de coordenadas


y reproyeccin

Antes de analizar los datos en el SIG la cartografa debe estar toda ella en una misma proyeccin y sistemas
de coordenadas. Para ello muchas veces es necesario
reproyectar las capas de informacin antes de integrarlas
en el sistema de informacin geogrca.
La Tierra puede estar representada cartogrcamente por
varios modelos matemticos, cada uno de los cuales pueden proporcionar un conjunto diferente de coordenadas
(por ejemplo, latitud, longitud, altitud) para cualquier
punto dado de su supercie. El modelo ms simple es asumir que la Tierra es una esfera perfecta. A medida que
se han ido acumulando ms mediciones del planeta los
modelos del geoide se han vuelto ms sosticados y ms
precisos. De hecho, algunos de estos se aplican a diferentes regiones de la Tierra para proporcionar una mayor
precisin (por ejemplo, el European Terrestrial Reference

Ejemplo de un proceso llevado a cabo en un SIG vectorial para


la obtencin de ejes de calles mediante el uso de polgonos de
Thiessen.

Dada la amplia gama de tcnicas de anlisis espacial que


se han desarrollado durante el ltimo medio siglo, cualquier resumen o revisin slo puede cubrir el tema a una
profundidad limitada. Este es un campo que cambia rpidamente y los paquetes de software SIG incluyen cada
vez ms herramientas de anlisis, ya sea en las versiones
estndar o como extensiones opcionales de este. En muchos casos tales herramientas son proporcionadas por los
proveedores del software original, mientras que en otros
casos las implementaciones de estas nuevas funcionalidades se han desarrollado y son proporcionados por terceros. Adems, muchos productos ofrecen kits de desarrollo
de software (SDK), lenguajes de programacin, lenguajes de scripting, etc. para el desarrollo de herramientas
propias de anlisis u otras funciones.

8
3.8.1

3 TCNICAS UTILIZADAS EN LOS SISTEMAS DE INFORMACIN GEOGRFICA


Modelo topolgico

Clculo de una ruta ptima para vehculos entre un punto de


origen (en verde) y un punto de destino (en rojo) a partir de datos
del proyecto OpenStreetMap.

3.9 Redes
Un SIG destinado al clculo de rutas ptimas para servicios de emergencias es capaz de determinar el camino
Desde la elaboracin del mapa del Metro de Londres estos se
ms corto entre dos puntos teniendo en cuenta tanto
han convertido en el paradigma de los mapas topolgicos para
ilustrar una red. En la imagen el plano de metro de la red de direcciones y sentidos de circulacin como direcciones
prohibidas, etc. evitando reas impracticables. Un SIG
Madrid.
para la gerencia de una red de abastecimiento de aguas
sera capaz de determinar, por ejemplo, a cuantos abonados afectara el corte del servicio en un determinado
Un SIG puede reconocer y analizar las relaciones espaciapunto de la red.
les que existen en la informacin geogrca almacenada.
Estas relaciones topolgicas permiten realizar modeliza- Un sistema de informacin geogrca puede simular uciones y anlisis espaciales complejos. As, por ejemplo, jos a lo largo de una red lineal. Valores como la pendiente,
el SIG puede discernir la parcela o parcelas catastrales el lmite de velocidad, niveles de servicio, etc. pueden ser
que son atravesadas por una lnea de alta tensin, o bien incorporados al modelo con el n de obtener una mayor
saber qu agrupacin de lneas forman una determinada precisin. El uso de SIG para el modelado de redes suele
ser comnmente empleado en la planicacin del transcarretera.
porte, hidrolgica o la gestin de infraestructura lineales.
En suma podemos decir que en el mbito de los sistemas de informacin geogrca se entiende como topologa a las relaciones espaciales entre los diferentes ele- 3.10 Superposicin de mapas
mentos grcos (topologa de nodo/punto, topologa de
red/arco/lnea, topologa de polgono) y su posicin en el La combinacin de varios conjuntos de datos espaciales
mapa (proximidad, inclusin, conectividad y vecindad). (puntos, lneas o polgonos) puede crear otro nuevo conEstas relaciones, que para el ser humano pueden ser ob- junto de datos vectoriales. Visualmente sera similar al
vias a simple vista, el software las debe establecer me- apilamiento de varios mapas de una misma regin. Estas
diante un lenguaje y unas reglas de geometra matemti- superposiciones son similares a las superposiciones maca.
temticas del diagrama de Venn. Una unin de capas suPara llevar a cabo anlisis en los que es necesario que
exista consistencia topolgica de los elementos de la base
de datos suele ser necesario realizar previamente una validacin y correccin topolgica de la informacin grca.
Para ello existen herramientas en los SIG que facilitan la
recticacin de errores comunes de manera automtica o
semiautomtica.

perpuestas combina las caractersticas geogrcas y las


tablas de atributos de todas ellas en una nueva capa. En
el caso de realizar una interseccin de capas esta denira la zona en las que ambas se superponen, y el resultado
mantiene el conjunto de atributos para cada una de las
regiones. En el caso de una superposicin de diferencia
simtrica se dene un rea resultante que incluye la su-

3.13

Geocodicacin

percie total de ambas capas a excepcin de la zona de


interseccin.
En el anlisis de datos raster, la superposicin de conjunto
de datos se lleva a cabo mediante un proceso conocido como lgebra de mapas, a travs de la aplicacin de mtodos
matemticos simples que permiten combinar los valores
de cada matriz raster. En el lgebra de mapas es posible
ponderar determinadas coberturas que asignen el grado
de importancia de diversos factores en un fenmeno geogrco.

3.11 Cartografa automatizada


1:500

1:10.000

Modelo de relieve sombreado generado por interpolacin a partir


de un Modelo Digital de Elevaciones (MDE) de una zona de los
Apeninos (Italia)

uso de la teora de grafos y de matrices algebraicas para


reducir el nmero de parmetros en los datos. Tras ello,
el anlisis de los datos asociados a entidad geogrca se
llevara a cabo en segundo lugar.

Precisin y generalizacin de un mapa en funcin de su escala.

Tanto la cartografa digital como los sistemas de informacin geogrca codican relaciones espaciales en representaciones formales estructuradas. Los SIG son usados
en la creacin de cartografa digital como herramientas
que permiten realizar un proceso automatizado o semiautomatizado de elaboracin de mapas denominado cartografa automatizada.
En la prctica esto sera un subconjunto de los SIG que
equivaldra a la fase de composicin nal del mapa, dado
que en la mayora de los casos no todos los software de
sistemas de informacin geogrca poseen esta funcionalidad.

Cuando se miden los fenmenos, los mtodos de observacin dictan la exactitud de cualquier anlisis posterior.
Debido a la naturaleza de los datos (por ejemplo, los patrones de trco en un entorno urbano, las pautas meteorolgicas en el ocano, etc.), grado de precisin constante
o dinmico se pierde siempre en la medicin. Esta prdida de precisin se determina a partir de la escala y la
distribucin de los datos recogidos. Los SIG disponen de
herramientas que ayudan a realizar estos anlisis, destacando la generacin de modelos de interpolacin espacial.

3.13 Geocodicacin

El producto cartogrco nal resultante puede estar tanto en formato digital como impreso. El uso conjunto que
en determinados SIG se da de potentes tcnicas de anlisis espacial junto con una representacin cartogrca
profesional de los datos, hace que se puedan crear mapas de alta calidad en un corto perodo. La principal dicultad en cartografa automatizada es el utilizar un nico
conjunto de datos para producir varios productos segn
diferentes tipos de escalas, una tcnica conocida como
generalizacin.

3.12 Geoestadstica

Geocodicacin mediante SIG. Por un lado existen unos nmeros


de polica conocidos y por otro lneas discontinuas entre esos nmeros de portal presupuestos, las cuales representan los tramos
en los cuales se aplica el mtodo de interpolacin.

La geoestadstica analiza patrones espaciales con el n de


conseguir predicciones a partir de datos espaciales concretos. Es una forma de ver las propiedades estadsticas Geocodicacin es el proceso de asignar coordenadas
de los datos espaciales. A diferencia de las aplicaciones geogrcas (latitud-longitud) a puntos del mapa (direcestadsticas comunes, en la geoestadstica se emplea el ciones, puntos de inters, etc.). Uno de los usos ms co-

10

SOFTWARE SIG

munes es la georreferenciacin de direcciones postales.


Para ello se requiere una cartografa base sobre la que referenciar los cdigos geogrcos. Esta capa base puede
ser, por ejemplo, un tramero de ejes de calles con nombres de calles y nmeros de polica. Las direcciones concretas que se desean georreferenciar en el mapa, que suelen proceder de tablas tabuladas, se posicionan mediante
interpolacin o estimacin. El SIG a continuacin localiza en la capa de ejes de calles el punto en el lugar ms
aproximado a la realidad segn los algoritmos de geocodicacin que utiliza.
La geocodicacin puede realizarse tambin con datos Visualizando capas WMS con el SIG 2.5D de cdigo abierto
reales ms precisos (por ejemplo, cartografa catastral). Capaware.
En este caso el resultado de la codicacin geogrca se
ajustar en mayor medida a la realizada, prevaleciendo
sobre el mtodo de interpolacin.
En el caso de la geocodicacin inversa el proceso sera al
revs. Se asignara una direccin de calle estimada con su
nmero de portal a unas coordenadas x,y determinadas.
Por ejemplo, un usuario podra hacer clic sobre una capa
que representa los ejes de va de una ciudad y obtendra
la informacin sobre la direccin postal con el nmero de
polica de un edicio. Este nmero de portal es calculado de forma estimada por el SIG mediante interpolacin
a partir de unos nmeros ya presupuestos. Si el usuario
hace clic en el punto medio de un segmento que comienza en el portal 1 y termina con el 100, el valor devuelto
para el lugar seleccionado ser prximo al 50. Hay que
tener en cuenta que la geocodicacin inversa no devuelSIG SAGA abriendo diferentes tipo de datos y una vista en 2.5D
ve las direcciones reales, sino slo estimaciones de lo que
debera existir basndose en datos ya conocidos.

Software SIG

ad-hoc de programas SIG, productos de cdigo abierto


o software especializado que responda a una necesidad
bien denida.
El manejo de este tipo de sistemas son llevados a cabo
generalmente por profesionales de diversos campos del
conocimiento con experiencia en sistemas de informacin geogrca (cartografa, geografa, topografa, etc.),
ya que el uso de estas herramientas requiere una aprendizaje previo que necesita de conocer las bases metodolgicas sobre las que se fundamentan. Aunque existen herramientas gratuitas para ver informacin geogrca, el
acceso del pblico en general a los geodatos est dominado por los recursos en lnea, como Google Earth y otros
basados en tecnologa web mapping.

Editando una capa vectorial de polgonos con el sistema de informacin geogrca de cdigo libre gvSIG.

Originalmente hasta nales de los 90, cuando los datos


del SIG se localizaban principalmente en grandes ordenadores y se utilizan para mantener registros internos, el
software era un producto independiente. Sin embargo con
el cada vez mayor acceso a Internet/Intranet y a la demanda de datos geogrcos distribuidos, el software SIG
ha cambiado gradualmente su perspectiva hacia la distribucin de datos a travs de redes. Los SIG que en la
actualidad se comercializan son combinaciones de varias
aplicaciones interoperables y APIs.

La informacin geogrca puede ser consultada, transferida, transformada, superpuesta, procesada y mostradas utilizando numerosas aplicaciones de software. Dentro de la industria empresas comerciales como
ESRI, Intergraph, MapInfo, Bentley Systems, Autodesk
o Smallworld ofrecen un completo conjunto de aplicaciones. Los gobiernos suelen optar por modicaciones Hoy por hoy dentro del software SIG se distingue a me-

4.1

Comparativa de software SIG

nudo seis grandes tipos de programas informticos:


SIG de escritorio. Son aquellos que se utilizan para crear, editar, administrar, analizar y visualizar los
datos geogrcos. A veces se clasican en tres subcategoras segn su funcionalidad:
Visor SIG. Suelen ser software sencillos que
permiten desplegar informacin geogrca a
travs de una ventana que funciona como visor y donde se pueden agregar varias capas de
informacin.
Editor SIG. Es aquel software SIG orientado
principalmente al tratamiento previo de la informacin geogrca para su posterior anlisis. Antes de introducir datos a un SIG es necesario prepararlos para su uso en este tipo
de sistemas. Se requiere transformar datos en
bruto o heredados de otros sistemas en un formato utilizable por el software SIG. Por ejemplo, puede que una fotografa area necesite ser ortorrecticada mediante fotogrametra
de modo tal que todos sus pxeles sean corregidos digitalmente para que la imagen represente una proyeccin ortogonal sin efectos de
perspectiva y en una misma escala. Este tipo
de transformaciones se pueden distinguir de
las que puede llevar a cabo un SIG por el hecho de que, en este ltimo caso, la labor suele
ser ms compleja y con un mayor consumo de
tiempo. Por lo tanto es comn que para estos
casos se suela utilizar un tipo de software especializado en estas tareas.
SIG de anlisis. Disponen de funcionalidades
de anlisis espacial y modelizacin cartogrca de procesos.

11
Servidores cartogrcos. Se utilizan para distribuir mapas a travs de Internet (vase tambin los
estndares de normas Open Geospatial Consortium
WFS y WMS).
Servidores SIG. Proporcionan bsicamente la misma funcionalidad que los SIG de escritorio pero permiten acceder a estas utilidades de geoprocesamiento a travs de una red informtica.
Clientes web SIG. Permiten la visualizacin de datos y acceder a funcionalidades de anlisis y consulta
de servidores SIG a travs de Internet o intranet. Generalmente se distingue entre cliente ligero y pesado. Los clientes ligeros (por ejemplo, un navegador
web para visualizar mapas de Google) slo proporcionan una funcionalidad de visualizacin y consulta, mientras que los clientes pesados (por ejemplo,
Google Earth o un SIG de escritorio) a menudo proporcionan herramientas adicionales para la edicin
de datos, anlisis y visualizacin.
Bibliotecas y extensiones espaciales. Proporcionan caractersticas adicionales que no forman parte fundamental del programa ya que pueden no
ser requeridas por un usuario medio de este tipo de software. Estas nuevas funcionalidades pueden ser herramientas para el anlisis espacial (por
ejemplo, SEXTANTE), herramientas para la lectura de formatos de datos especcos (por ejemplo,
GDAL/OGR), herramientas para la correcta visualizacin cartogrca de los datos geogrcos (por
ejemplo, PROJ4), herramientas para funciones geomtricas fundamentales (JTS), o para la implementacin de las especicaciones del Open Geospatial
Consortium (por ejemplo, GeoTools).

Sistemas de gestin de bases de datos espaciales


SIG mviles. Se usan para la recogida de datos
o geogrcas (SGBD espacial). Se emplean para alen campo a travs de dispositivos mviles (PDA,
macenar la informacin geogrca, pero a menudo
telfonos inteligentes, tabletas, etc.). Con la adoptambin proporcionan la funcionalidad de anlisis y
cin generalizada por parte de estos de dispositivos
manipulacin de los datos. Una base de datos geode localizacin GPS integrados, el software SIG pergrca o espacial es una base de datos con extenmite utilizarlos para la captura y manejo de datos en
siones que dan soporte de objetos geogrcos percampo. En el pasado la recogida de datos en campo
mitiendo el almacenamiento, indexacin, consulta y
destinados a sistemas de informacin geogrca se
manipulacin de informacin geogrca y datos esrealizaba mediante la sealizacin de la informacin
paciales. Si bien algunas de estas bases de datos geogeogrca en un mapa de papel y, a continuacin, se
grcas estn implementadas para permitir tambin
volcaba esa informacin a formato digital una vez de
el uso de funciones de geoprocesamiento, el prinvuelta frente al ordenador. Hoy en da a travs de la
cipal benecio de estas se centra en la capacidades
utilizacin de dispositivos mviles los datos geogrque ofrecen en el almacenamiento de datos especialcos pueden ser capturados directamente mediante
mente georrefenciados. Algunas de estas capacidalevantamientos de informacin en trabajo de campo.
des incluyen un fcil acceso a este tipo de informacin mediante el uso de estndares de acceso a bases
de datos como los controladores ODBC, la capaci- 4.1 Comparativa de software SIG
dad de unir o vincular fcilmente tablas de datos o la
posibilidad de generar una indexacin y agrupacin Listado incompleto de los principales programas SIG
de datos espaciales, por ejemplo.
existentes en el sector y los sistemas operativos en los que

12

EL FUTURO DE LOS SIG

pueden funcionar sin emulacin,[11] as como su tipo de interoperabilidad de los datos espaciales, ha impulsado la
licencia.
tecnologa web mapping, con el surgimiento de numerosas aplicaciones que permiten la publicacin de informacin geogrca en la web. De hecho este tipo de servicios web mapping basado en servidores de mapas que se
5 El futuro de los SIG
acceden a travs del propio navegador han comenzado a
adoptar las caractersticas ms comunes en los SIG traMuchas disciplinas y especializaciones se han beneciadicionales, lo que ha propiciado que la lnea que separa
do de la tecnologa subyacente en los SIG. El activo merambos tipos de software se difumine cada vez ms.
cado de los sistemas de informacin geogrca se ha traducido en una reduccin de costes y mejoras continuas
en los componentes de hardware y software de los sistemas. Esto ha provocado que el uso de esta tecnologa ha- 5.2 La tercera dimensin
ya sido asimilada por universidades, gobiernos, empresas
e instituciones que lo han aplicado a sectores como los Los sistemas existentes en la actualidad en el mercado esbienes races, la salud pblica, la criminologa, la defensa tn bsicamente sustentados en la gestin y anlisis en dos
nacional, el desarrollo sostenible, los recursos naturales, dimensiones de los datos, con las limitaciones que esto sula arqueologa, la ordenacin del territorio, el urbanismo, pone. Existen sistemas hbridos a medio camino entre el
2D y el 3D que poseen capacidades, fundamentalmente
el transporte, la sociologa o la logstica entre otros.
de visualizacin, denominadas de dos dimensiones y meEn la actualidad los SIG estn teniendo una fuerte im- dia (2.5D) o falso 3D.
plantacin en los llamados Servicios Basados en la Localizacin (LBS) debido al abaratamiento y masicacin No obstante hoy en da cada vez ms se requieren aplide la tecnologa GPS integrada en dispositivos mviles caciones avanzadas con funcionalidades capaces de gesde consumo (telfonos mviles, PDAs, ordenadores por- tionar conjuntos de datos complejos tal y como se perttiles). Los LBS permiten a los dispositivos mviles con ciben en el mundo real por el usuario, es decir, en tres
GPS mostrar su ubicacin respecto a puntos de inters - dimensiones. Este entorno proporciona un conocimiento
jos (restaurantes, gasolineras, cajeros, hidrantes, etc. ms mucho mejor de los fenmenos y patrones geoespaciales,
cercanos), mviles (amigos, hijos, autobuses, coches de ya sea a pequea o gran escala, por ejemplo en la planila minera, la gestin de redes
polica) o para transmitir su posicin a un servidor central cacin urbana, la geologa,
[13]
de
abastecimiento,
etc.
para su visualizacin u otro tipo de tratamiento.
Otra de las lineas a destacar dentro de la rama de espe- Las dicultades con que se enfrenta un SIG completacializacin de anlisis de datos espaciales es el auge de mente 3D son grandes y van desde las gestin de geolas modelizaciones cartogrcas. Gracias a ellas podemos metras 3D y su topologa hasta su visualizacin de una
modelizar y evaluar tanto aspectos o escenarios actuales manera sencilla, pasando por el anlisis y geoprocesado
como los futuribles en base a variables que les concrete- de la informacin.
mos. Es una gran herramienta de prediccin y evaluacin
y nos permiten evaluar casuisticas que reejen el comportamiento por ejemplo de las zonas con mayor vulnerabilidad frente a determinados riesgos; la distribucin potencial de especies o la dispersin de contaminantes por la
atmsfera.[12]

5.1

Actualmente el Open Geospatial Consortium trabaja en


cmo abordar la combinacin de los diferentes tipos de
modelados resultantes de las distintas tecnologas SIG,
CIM, CAD y BIM de la forma ms ntegra posible. La
interoperabilidad de estos formatos y modelos de datos
constituye el primer paso hacia la creacin de modelos
3D inteligentes a diferentes escalas.[14]

Cartografa en entornos web

Por otro lado el mundo de los SIG ha asistido en los


ltimos aos a una explosin de aplicaciones destinadas a mostrar y editar cartografa en entornos web como
Google Maps, Bing Maps u OpenStreetMap entre otros.
Estos sitios web dan al pblico acceso a enormes cantidades de datos geogrcos. Algunos de ellos utilizan software que, a travs de una API, permiten a los usuarios
crear aplicaciones personalizadas. Estos servicios ofrecen
por lo general callejeros, imgenes areas o de satlite,
geocodicacin, bsquedas en nomencltores o funcionalidades de enrutamiento.

5.3 Semntica y SIG

Las herramientas y tecnologas emergentes desde la W3C


Semantic Web Activity estn resultando tiles para los problemas de integracin de datos en los sistemas de informacin. De igual forma, esas tecnologas se han propuesto como un medio para facilitar la interoperabilidad y
la reutilizacin de datos entre aplicaciones SIG[15] [16] y
tambin para permitir nuevos mecanismos de anlisis.[17]
En suma la incorporacin de cierta inteligencia articial
que dote a estos sistemas de nuevas funcionalidades de
aprendizaje automtico, tales como la recuperacin selecEl desarrollo de Internet y las redes de comunicacin, as tiva de informacin, el anlisis estadstico, la generalizacomo el surgimiento de estndares OGC que facilitan la cin automtica de mapas o la interpretacin automtica

13
de imgenes geoespaciales.[18]
Las ontologas son un componente clave de este enfoque
semntico, ya que facilitan una legibilidad por parte de
las mquinas de conceptos y relaciones en un dominio
dado. Esto a su vez permite al SIG centrarse en el signicado de los datos en lugar de su sintaxis o estructura. Por
ejemplo, podemos razonar que un tipo de cobertura del
suelo clasicada como bosques de frondosas caducifolias
son un conjunto de datos detallados de una capa sobre
cubiertas vegetales de tipo forestal con una clasicacin
menos minuciosa, lo que podra ayudar a un SIG a fusionar automticamente ambos conjuntos de datos en una
capa ms general de clasicacin de la cubierta vegetal
terrestre.
Pero el desarrollo futuro de los SIG con la inclusin de
la semntica en la gestin no solo permitira la generalizacin o coacin de datos geoespaciales con cierta similitud, sino que, por ejemplo, facilitara la generacin
automatizada o semiasistida de una tarea tradicionalmente considerada como tediosa y poco graticante como
es la creacin de metadatos para las diferentes capas de
informacin geogrca.[19]
Ontologas muy profundas y exhaustivas han sido desarrolladas en reas relacionadas con el uso de los SIG, como por ejemplo la Ontologa de Hidrologa desarrollada
por el Ordnance Survey en el Reino Unido, la ontologa
geopoltica de la FAO,[20] las ontologas OWL hydrOntology y Ontologa GML y las ontologas SWEET llevadas
a cabo por el Laboratorio de Propulsin a Chorro de la
NASA.

5.4

Los SIG temporales

sin y divergencia de la informacin, as como la escasa


normalizacin de los datos. Para solventar este problema y lograr una informacin unicada, de calidad, normalizada, sustentable y de acceso pblico se han vneido
desarrollando las denominadas Infraestructuras de Datos
Espaciales (IDE) locales y regionales. Mediante estas se
persigue obtener una convergencia de los esfuerzos sobre la gestin de la informacin pblica, as como tambin de la que corresponde a organismos de investigacin
[cita requerida]

6 Vase tambin
Ciencias de la Tierra
Geomtica
Geotecnologa
Neogeografa
Servicio basado en localizacin

7 Notas y referencias
[1] Lascaux Cave. Ministerio de Cultura francs. Archivado desde el original el 29 de noviembre de 2015. Consultado el 13 de febrero de 2008.
[2] Curtis, Gregory. The Cave Painters: Probing the Mysteries
of the Worlds First Artists. NY, USA: Knopf. ISBN 14000-4348-4.
[3] Dr David Whitehouse. Ice Age star map discovered.
BBC. Consultado el 9 de junio de 2007.

Una de las principales fronteras a las que se enfrenta los


sistemas de informacin geogrca es la de agregar el elemento tiempo a los datos geoespaciales. Los SIG temporales incorporan las tres dimensiones espaciales (X, Y y
Z) aadiendo adems el tiempo en una representacin 4D
que se asemeja ms a la realidad. La temporalidad en los
SIG recoge los procesos dinmicos de los elementos representados. Por ejemplo, imaginmonos las posibilidades que ofrecera un sistema de informacin geogrca
que permita ralentizar y acelerar el tiempo de los procesos geomorfolgicos que en l se modelizan y analizar las
diferentes secuencias morfogenticas de un determinado
relieve terrestre; o modelizar el desarrollo urbano de una
rea determinada a lo largo de un perodo dado.[14]

[4] Cerda Lorca, Jaime; Gonzalo Valdivia C. (13 de julio de


2007). John Snow, la epidemia de clera y el nacimiento
de la epidemiologa moderna (pdf). Consultado el 20 de
septiembre de 2013.

5.5

[9] Es comn en el mbito de los sistemas de informacin


geogrca referirse a estos elementos grcos que representan elementos del mapa con su denominacin inglesa
feature. Su traduccin ocial y normalizada en Espaa es
la de objeto geogrco.

Los SIG y las Infraestructuras de Datos Espaciales (IDE)

[5] John Snows Cholera Map. York University. Consultado


el 9 de junio de 2007.
[6] Joseph H. Fitzgerald. Map Printing Methods. Consultado el 9 de junio de 2007.
[7] GIS Hall of Fame - Roger Tomlinson. URISA. Archivado desde el original el 29 de noviembre de 2015. Consultado el 9 de junio de 2007.
[8] Lucia Lovison-Golob. Howard T. Fisher. Harvard University. Archivado desde el original el 29 de noviembre de
2015. Consultado el 9 de junio de 2007.

El crecimiento exponencial de los Sistemas de Informacin Geogrca, de sus herramientas y de la facilidad de


acceso a las mismas, ha producido un efecto no deseado [10] Lneas de mltiples nodos, tambin denominadas multilneas.
en los organismos de gobierno que es la excesiva disper-

14

8 BIBLIOGRAFA

[11] Ntese que aquellos productos en los que existen versiones


para Unix y/o Linux, la disponibilidad para MacOS X y
BSD es tambin muy factible dado que el sobrecoste de su
compilacin es escaso para el desarrollador, especialmente cuando el cdigo fuente es pblico. Las aplicaciones
Java funciona en todas las plataformas en cuyas versiones
existen una Mquina Virtual de Java o un compilador de
Java (en estos momentos Windows, MacOS X, Linux y
Solaris).
[12] Matellanes Ferreras, Roberto (2014). Gua de orientacin formativa y laboral en SIG En qu especializarse y
para qu?. Asociacin Geoinnova (Asociacin Geoinnova): 24. Consultado el 16 de febrero de 2016.
[13] 3D and Beyond. Alias Abdul Rahman (en ingls). Consultado el 19 de abril de 2011.
[14] Matt Ball (2009). What are some of the technological
frontiers for GIS advancement? (en ingls). Consultado
el 2 de febrero de 2009.
[15] Federico Fonseca y Amit Sheth (2002). The Geospatial
Semantic Web (en ingls). Consultado el 18 de octubre
de 2008.
[16] Federico Fonseca y Max Egenhofer (1999). OntologyDriven Geographic Information Systems (en ingls).
Consultado el 18 de octubre de 2008.
[17] Perry, Matthew; Hakimpour, Farshad; Sheth, Amit
(2006), Analyzing Theme, Space and Time: an
Ontology-based Approach (PDF), Proc. ACM International Symposium on Geographic Information Systems,
pp. 147-154
[18] Mnica Medina (2011). Cambio de paradigma: Sistemas
de Informacin Geogrca gobernados por ontologas.
Consultado el 20 de noviembre de 2011.
[19] Rafael Oliva-Santos, Leonid Mendoza-Robaina, Cynthia
Costales-Llerandi3, Eduardo Garea- Llano y Francisco
Maci Prez (2009). Modelo de anotacin semntica para Sistemas de Informacin Geogrca. Consultado el 6
de octubre de 2012. A. Beltran Fonollosa, C. Granell Canut y J. Huerta Guijarro (2011). Descripcin de recursos
multimedia georreferenciados. Consultado el 6 de octubre de 2012.
[20] http://www.fao.org/countryprofiles/geoinfo.asp?lang=es

Bibliografa
Berry, J.K. (1993) Beyond Mapping: Concepts, Algorithms and Issues in GIS. Fort Collins, CO: GIS
World Books.
Bolstad, P. (2005) GIS Fundamentals: A rst text
on Geographic Information Systems, Second Edition.
White Bear Lake, MN: Eider Press, 543 pp.
Bosque Sendra, J. (1992) Sistemas de Informacin
Geogrca. Rialp. Madrid.

Burrough, P.A. and McDonnell, R.A. (1998) Principles of geographical information systems. Oxford
University Press, Oxford, 327 pp.
Busai, G.D.; Baxendale, C.A. (2011) Anlisis Socioespacial con Sistemas de Informacin Geogrca.
Tomo 1: Perspectiva Cientca / temticas de base
raster. Buenos Aires, Lugar Editorial, 302 pp.
Buzai, G.D.; Baxendale, C.A. (2012) Anlisis Socioespacial con Sistemas de Informacin Geogrca.
Tomo 2: Ordenamiento territorial / temticas de base
vectorial. Buenos Aires, Lugar Editorial, 315 pp.
Calvo, M. (1992) Sistemas de Informacin
Geogrca Digitales: Sistemas geomticos. IVAPEUSKOIKER, Oati, 616 pp.
Calvo, M. (2012) Geo-conceptualizacin y modelado del espacio geogrco. EAE. Saarbrcken,
492 pp.
Chang, K. (2007) Introduction to Geographic Information System, 4th Edition. McGraw Hill.
Coulman, Ross (2001 - present) Numerous GIS
White Papers
de Smith M J, Goodchild M F, Longley P A (2007)
Geospatial analysis: A comprehensive guide to principles, techniques and software tools, 2nd edition,
Troubador, UK available free online at:
Elangovan, K (2006)"GIS: Fundamentals, Applications and Implementations, New India Publishing
Agency, New Delhi"208 pp.
Harvey, Francis(2008) A Primer of GIS, Fundamental geographic and cartographic concepts. The Guilford Press, 31 pp.
Heywood, I., Cornelius, S., and Carver, S. (2006) An
Introduction to Geographical Information Systems.
Prentice Hall. 3rd edition.
Longley, P.A., Goodchild, M.F., Maguire, D.J. and
Rhind, D.W. (2005) Geographic Information Systems and Science. Chichester: Wiley. 2nd edition.
Maguire, D.J., Goodchild M.F., Rhind D.W. (1997)
Geographic Information Systems: principles, and
applications Longman Scientic and Technical,
Harlow.
Matellanes, R., (2014) Gua de orientacin formativa y laboran en los Sistemas de Informacin Geogrca En qu especializarse y por qu?" Asociacin Geoinnova, 24 pp.
Moreno Jimnez, A. (coord.); Gmez Garca, N.,
Vidal Domnguez, M. J., Rodrguez Esteban, J. A.,
Martnez Surez, P., Prieto Flores, M. E., Cervera

15
Cruaes, B. y Fernndez Garca, F. (2008): Sistemas y anlisis de la informacin geogrca: manual
de auto-aprendizaje con ArcGIS, Madrid, Ra-Ma, 2.
ed., 940 pp.
Ott, T. and Swiaczny, F. (2001) Time-integrative
GIS. Management and analysis of spatio-temporal
data, Berlin / Heidelberg / New York: Springer.
Olaya, V., (2012) Sistemas de Informacin Geogrca. Vctor Olaya. 877 pp. (Creative Common Atribucin BY 3.0).
Thurston, J., Poiker, T.K. and J. Patrick Moore.
(2003) Integrated Geospatial Technologies: A Guide to GPS, GIS, and Data Logging. Hoboken, New
Jersey: Wiley.
Tomlin, C.Dana (1991) Geographic Information
Systems and Cartographic Modelling. Prentice Hall.
New Jersey.
Tomlinson, R.F., (2005) Thinking About GIS: Geographic Information System Planning for Managers.
ESRI Press. 328 pp.
Wise, S. (2002) GIS Basics. London: Taylor & Francis.
Worboys, Michael, and Matt Duckham. (2004) GIS:
a computing perspective. Boca Ratn: CRC Press.
Wheatley, David and Gillings, Mark (2002) Spatial Technology and Archaeology. The Archaeological Application of GIS. London, New York, Taylor
& Francis.

Enlaces externos

Wikimedia Commons alberga contenido multimedia sobre sistemas de informacin geogrca.


Commons

Estudio sobre Sistemas de Localizacin e Informacin Geogrca publicado por el Observatorio Regional de la Sociedad de la Informacin de Castilla
y Len (ORSI)
Comparativa sobre caractersticas y funcionalidades
de los SIG de cdigo libre.

16

10 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

10
10.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Sistema de informacin geogrca Fuente: https://es.wikipedia.org/wiki/Sistema_de_informaci%C3%B3n_geogr%C3%A1fica?oldid=


93102168 Colaboradores: Moriel, JorgeGG, SpeedyGonzalez, Lourdes Cardenal, Robbot, Corso, Pleira, Tony Rotondas, Ejmeza, Avm,
Elwikipedista, Sufrostico, Tano4595, Jsanchezes, Yakoo, Pablopda, Marayaf, Canopus, Benjavalero, Txuspe, Renabot, JMPerez, Rembiapo pohyiete (bot), Magister Mathematicae, Orgullobot~eswiki, RobotQuistnix, Superzerocool, Yrbot, BOT-Superzerocool, FlaBot, Vitamine, YurikBot, GermanX, Gaijin, Afrodriguez, Mriosriquelme, Kekkyojin, Paracelso, Ppja, Lasneyx, Arcturus2103, Rutseg, Wissons,
Fev, CEM-bot, Isabbagh~eswiki, Damifb, Harpon, Golgialvarez~eswiki, LCaballero, Aromeo, Mister, Rosarinagazo, Dorieo, Ggenellina, Thijs!bot, RoyFocker, Cratn, Isha, MSBOT, X eduardo X, JAnDbot, Isilanes~eswiki, Antipatico, DelPlata, Rafa3040, Maxidigital, CommonsDelinker, TXiKiBoT, Gbarrer, ColdWind, Netito777, Nioger, Idioma-bot, Dhidalgo, Delphidius, Musikas, AlnoktaBOT,
Cinevoro, VolkovBot, Iberdiego, Urdangaray, Technopat, Erl, Matdrodes, BlackBeast, Shooke, Muro Bot, Feministo, Jmcordero, BotMultichill, SieBot, PaintBot, DaBot~eswiki, Carlos.rovira, Cobalttempest, Drinibot, Bigsus-bot, BOTarate, Fronate, Hok celta, Raul.lara,
Correogsk, Mutari, Javierito92, HUB, DragonBot, Estirabot, Eduardosalg, Tenija, Leonpolanco, Akito17~eswiki, BodhisattvaBot, AipniLovrij, MataGigantes, Kadellar, Camilo, UA31, AVBOT, Standarsig~eswiki, Jones29, LucienBOT, Ginosbot, SpBot, Diegusjaimes, Madalberta, Luckas-bot, GEOteca, Dangelin5, Boincpc, M3thod.mdf, SuperBraulio13, Miguel calvo melero, Xqbot, Jkbw, Rubinbot, Dreitmen,
Bot0811, Marcelo raul romero, Jcdy, RedBot, Marsal20, Alacant3d, Jerowiki, Dinamik-bot, Tarawa1943, Bioche, Miss Manzana, EmausBot, ChessBOT, Sergio Andres Segovia, Grillitus, WikitanvirBot, Ruos, Ptanjun, MerlIwBot, Franco68, KLBot2, Bambadee, Mechita
korn, Vetranio, Elvisor, Helmy oved, Alfgarciaw, MaKiNeoH, Addbot, Balles2601, Jhernand59, Das MiMaMi, Jarould, Anuar martinez74,
Foldgeo, Uli fernando, BenjaBot, Lectorina, GnniX, Fernando2812l, C lozadar, Jujitman y Annimos: 247

10.2

Imgenes

Archivo:Accuracy_and_generalization.svg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/9/90/Accuracy_and_
generalization.svg Licencia: Public domain Colaboradores: Trabajo propio Artista original: Tony Rotondas
Archivo:Capaware_rc1.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/8/85/Capaware_rc1.jpg Licencia: CC BY-SA 3.0
Colaboradores: Trabajo propio Artista original: Isabbagh
Archivo:Commons-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licencia: Public domain Colaboradores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used
to be slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
Archivo:Dem.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/45/Dem.jpg Licencia: GPL Colaboradores: ? Artista original: ?
Archivo:Digitales_Gelndemodell.png
Fuente:
https://upload.wikimedia.org/wikipedia/commons/9/97/Digitales_Gel%C3%
A4ndemodell.png Licencia: CC BY-SA 3.0 de Colaboradores: Transferido desde de.wikipedia a Commons.
Artista original: The original uploader was Robert Kropf de Wikipedia en alemn
Archivo:Digitizing_errors.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/1/13/Digitizing_errors.svg Licencia: Public
domain Colaboradores: Trabajo propio Artista original: Tony Rotondas
Archivo:DimensionesdelosdatosSIG.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f2/DimensionesdelosdatosSIG.
jpg Licencia: GFDL Colaboradores: Modicada de [1] (GNUFDL) Artista original: Modicado por Corso de [2] (GNUFDL)
Archivo:GisLayers.png Fuente: https://upload.wikimedia.org/wikipedia/commons/a/a8/GisLayers.png Licencia: CC BY 3.0 Colaboradores: Transferido desde en.wikipedia a Commons. Artista original: Jaknouse de Wikipedia en ingls
Archivo:GvSIG_-_GIS.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/33/GvSIG_-_GIS.jpg Licencia: CC BY 2.5 Colaboradores: Trabajo propio Artista original: Emilio Gmez Fernndez
Archivo:Housenumber-karlsruhe-de-OSM.png
Fuente:
https://upload.wikimedia.org/wikipedia/commons/7/7e/
Housenumber-karlsruhe-de-OSM.png Licencia: CC BY-SA 2.0 Colaboradores: http://wiki.openstreetmap.org/index.php/Image:
Housenumber-karlsruhe-de.png Artista original: Bahnpirat
Archivo:Madrid_Metro_+113.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f5/Madrid_Metro_%2B113.svg Licencia: GFDL Colaboradores: Otros mapas hechos por Benedicto16. Artista original: Javitomad
Archivo:Maruyama-Senmaida_Stereogram.jpg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/b/b2/
Maruyama-Senmaida_Stereogram.jpg Licencia: Attribution Colaboradores: CKK-76-6 c17b 16 & 17 in 1976,AerialPhotographmlitJP Artista original: Tawashi2006
Archivo:OpenStreetMap_routing_service.png Fuente: https://upload.wikimedia.org/wikipedia/commons/e/e7/OpenStreetMap_
routing_service.png Licencia: Public domain Colaboradores: Trabajo propio Artista original: Tony Rotondas
Archivo:QGIS_2.0.1_Dufour_-_Screenshot_showing_relief.png Fuente: https://upload.wikimedia.org/wikipedia/commons/2/2f/
QGIS_2.0.1_Dufour_-_Screenshot_showing_relief.png Licencia: CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original:
Tobias1984
Archivo:RapidEye_Satellites_Artist_Impression.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/c8/RapidEye_
Satellites_Artist_Impression.jpg Licencia: CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: Rmatt
Archivo:Raster_vector_gis.png Fuente: https://upload.wikimedia.org/wikipedia/commons/8/8b/Raster_vector_gis.png Licencia: Public
domain Colaboradores: Trabajo propio Artista original: Teni
Archivo:SAGA_screenshot.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/a/ab/SAGA_screenshot.jpg Licencia: GPL
Colaboradores: sourceforge Artista original: ?

10.3

Licencia del contenido

17

Archivo:Sig.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/e/ef/Sig.jpg Licencia: CC-BY-SA-3.0 Colaboradores: Transferido desde es.wikipedia a Commons. Artista original: Corso
Archivo:Snow-cholera-map.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/c7/Snow-cholera-map.jpg Licencia: Public domain Colaboradores: ? Artista original: ?
Archivo:Voronoi_centerlines_skeleton.gif Fuente: https://upload.wikimedia.org/wikipedia/commons/9/92/Voronoi_centerlines_
skeleton.gif Licencia: CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: Emilio Gomez Fernandez

10.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

ActiveX Data Objects


ActiveX Data Objects (ADO) es uno de los mecanis- -----------+ | ADO.NET | +------------+ | ADO.NET 2 |
mos que usan los programas de computadoras para comu- +------------+ | ADO.NET 3.5| +------------+
nicarse con las bases de datos, darles rdenes y obtener
resultados de ellas.

2 Funcionamiento

Con ADO, un programa puede leer, insertar, editar, o


borrar, la informacin contenida en diferentes reas de
almacenamiento dentro de la base de datos llamadas tablas. Adems, se puede manipular la propia base de datos
para crear nuevas reas para el almacenamiento de informacin (tablas), como tambin alterar o eliminar las ya
existentes, entre otras cosas.

ADO es un intermediario entre el programa y la base de


datos. El programa no ve la base de datos directamente,
sino que hace todo el trabajo a travs de ADO. Usando ADO, el programa se comunica con la base de datos,
consulta, edita, inserta, borra, registros, aade tablas, etc.
Fue desarrollado por Microsoft y es usado en ambien- ADO a su vez se comunica con la base de datos a travs
tes Windows por lenguajes de programacin como Visual de un proveedor de datos.
Basic, C++, Delphi entre otros, como tambin en la Web El programa usa ADO para hacer una solicitud a la base
mediante el uso de Active Server Pages (ASP) y el len- de datos: Dame el nombre y apellido de todos los emguaje VBScript.
pleados que vivan en Venezuela Programa ---> ADO --> Proveedor de datos ---> Base de datos

En la direccin contraria, la base de datos responde, comunicndose con el proveedor de datos, ste con ADO,
y al nal, la informacin llega al programa.

Evolucin

ADO substituy tanto a DAO (Data Access Object), como a RDO (Remote Data Object), que eran los sistemas
previos que se usaban para acceder a las bases de datos y
bases de datos remotas, respectivamente. Tiene la mayor
parte de la funcionalidad de ambos modelos y sin embargo es ms sencillo de usar y de entender y por lo tanto
ms fcil y menos engorroso de programar.

La base de datos responde Programa <--- ADO <--- Proveedor de datos <--- Base de datos +--------+-----------+ |
Nombre | Apellido | +--------+-----------+ | Jos | Pereira |
| Juan | Prez | | Mara | Hernndez | +--------+-----------+
Una vez que el programa tiene la informacin proveniente
de la base de datos, puede hacer con ella lo que considere,
como por ejemplo, puede desplegarla en una pgina Web.

La ltima versin de ADO, creada por Microsoft, se llama ADO.NET, y se usa en los entornos de programacin Los usuarios solicitados son los siguientes:
de la plataforma .NET, de Microsoft, para manejar bases de datos tanto en Windows como en la Web mediante
ASP.NET, que es la nueva versin del ASP para la plata- 3 Componentes de ADO
forma.NET.

En la plataforma de programacin de software libre Principales componentes de ADO


llamada Mono tambin existe una biblioteca similar a
ADO.NET, lo que signica que ahora, la tecnologa
Connection (Permite establecer una conexin con la
ADO.NET se puede usar en otros sistemas operativos
base de datos)
aparte de Windows, como Linux, Mac OS X, BSD, y
Recordset (Maneja un conjunto de records de la base
Solaris.
de datos)
ADO.NET es mucho ms poderoso que ADO pero tambin es muy diferente, por lo que es necesario redisear
Command (Permite enviar rdenes SQL para ser
los programas hechos con ADO, para que funcionen en
ejecutados por la base de datos)
l.
Est previsto que para el 2006 salga una nueva versin Otros componentes de ADO
del entorno.NET que tendr una versin mejorada de
ADO.NET, denominada ADO.NET 2.
Record (Permite manejar un registro, tpicamente
+-----+------+ | DAO | RDO | +-----+------+ | ADO | +pero no exclusivamente, de una fuente diferente a
1

4 OBJETOS CONNECTION, RECORDSET Y COMMAND


una base de datos. Uno de sus usos es la representacin de datos que no estn estructurados en forma de
Tablas, como por ejemplo que tengan una estructura
tipo rbol.
Field (Permite manipular un campo perteneciente a
un Record o un Recordset)

datos por cada tipo de base de datos. As, las bases de datos de tipo Access, SQL Server, Oracle, MySQL, tienen,
cada una, un proveedor de datos especco.
La conexin ADO puede usar dos tipos de proveedores
de datos, OLE DB y ODBC, siendo OLE DB el tipo de
proveedor nativo.

Cuando no existe un proveedor de OLE DB especco


para una base de datos determinada, y en cambio existe un proveedor ODBC, la conexin ADO puede usarlo
para comunicarse con la base de datos, sin embargo, no
Stream (Permite manejar ujos de datos (streams), directamente, sino a travs de un proveeor OLE DB esprovenientes de cheros de texto, pginas web, etc) pecial que sirve de intermediario entre ADO y ODBC.
Parameter (Permite congurar un parmetro para
una consulta SQL. Se usa con Command)

Error (Indica las caractersticas de los errores que La gura de abajo muestra, a la izquierda, un esquema de
pudieran suceder al ejecutar mtodos de los objetos los diferentes componentes que existen entre un programa y la base de datos, y, a la derecha, muestra el camino
de ADO)
que recorre la informacin, usando por un lado OLE DB,
Property (Contiene informacin perteneciente a un y por el otro ODBC. Ntese que al usar ODBC, la ruta es
ms larga porque tiene que pasarse por ms componenobjeto determinado)
tes. Esto hace la comunicacin un poco ms lenta.
Con OLE DB Con ODBC +---------------+ +-------------4 Objetos Connection, Recordset y -+ +---------------+ | Programa | | Programa | | Programa
| +---------------+ | | | | | | | ADO | | ADO | | ADO | +-Command
-------------+ | | | | | | | OLE DB | | OLEDB | | OLEDB
(OLE DB especial para | +--------+ | | | | | comunicacin
Los 3 principales componentes de ADO son Connection, con cualquier ODBC) | | ODBC | | | | | ODBC | +------+-Recordset y Command (la conexin, el recordset, y la or- ------+ | | | | | | | Base de datos | | Base de datos | | Base de
datos | +---------------+ +---------------+ +---------------+
den).
+------------+ +----| Connection |----+ | +------------+ | | | +- Todo esto es transparente al usuario de ADO, quien, en
----+-----+ +-----+-----+ | Recordset |----------| Command lneas generales, no tiene por que enterarse ni conocer
estos mecanismos.
| +-----------+ +-----------+
ADO tiene un alto grado de abstraccin, lo que signica
que, al mantener una interface sencilla, oculta los detalles
4.1 La Conexin
complejos del manejo de la base de datos.
La conexin es como una autopista que permite el ujo
de datos entre el programa y la base de datos. Por ella
pueden viajar las rdenes que desde el programa se usan
para hacer solicitudes de informacin a la base de datos
o para realizar una operacin dentro de ella como borrar
registros, aadir registros, modicar tablas, etc. Tambin,
por esta autopista, pueden ir y venir los datos, desde y
hacia la base de datos, entre otras cosas.

Un programa puede saltarse completamente el ADO, y


acceder a la base de datos directamente de 3 maneras diferentes, a travs de OLDB, ODBC, o por ODBC usando
una capa intermedia de OLE DB. Al trabajar de esta manera, se tiene la ventaja de una mayor funcionalidad que
no contiene ADO a cambio de una mayor complejidad
en la programacin. Esto es necesario algunas veces, en
ciertos tipos de programas y para ciertas necesidades, pero no es lo comn.

Tanto el recordset como la orden usan la conexin para


+------------------------+ | Programa | +---+-------+-----comunicarse con la base de datos.
-+----+ 1 2 3 +---+----+--+---+---+----+ | OLE DB |
La conexin se comunica con la base de datos a travs de ODBC | OLE DB | | | +--------+ | | | ODBC | +-------un intermediario llamado proveedor de datos.
+------+--------+ | Base de datos | +------------------------+
+----------+ +-----------+ +---------+ | Conexin | ------> |
Proveedor | ------> | Base de | | | <------ | de datos | <-----4.2
| datos | +----------+ +-----------+ +---------+

El Recordset

El Recordset es, como su nombre lo indica, un conjunto de records. En general, sus datos tienen su origen en
4.1.1 El proveedor de datos
una base de datos, aunque tambin pueden generarse inEl proveedor de datos es un componente que se relaciona dependientemente de sta.
directamente con la base de datos. Hay un proveedor de Un recordset puede contener cero o ms records (regis-

3
tros). Cada recordset tiene una coleccin de campos, que
es comn a todos los records. Podemos verlo como una
matriz o tabla, en donde las las son los records, y las
columnas son los campos.
Recordset con algunos datos de la tabla de empleados:
+------------+---------+----------+ | IdEmpleado | Nombre
| Apellido | +------------+---------+----------+ | 1 | Luis |
Prez | <-- Record 1 +------------+---------+----------+ | 5
| Jos | Abreu | <-- Record 2 +------------+---------+---------+ | 3 | Pedro | Len | <-- Record 3 +------------+--------+----------+ | 7 | Mara | Marcano | <-- Record 4 +-----------+---------+----------+ | | | | | +------- Campo Apellido
| | | +------------------ Campo Nombre | +---------------------------- Campo IdEmpleado

5 Ejemplo de uso de ADO desde


Visual Basic
En este ejemplo se asume un Formulario con un DataGrid. Se usar la base de datos "Neptuno.mdb" que viene
en las instalaciones en espaol de Microsoft Oce y de
Visual Basic.

5.1 Referencia a ADO

Para poder usar ADO desde Visual Basic, lo primero que


debemos hacer es referenciar el componente ADO. Esto
se hace por el men Proyecto\Referencias y en la venUn recordset puede tener varias caractersticas que el pro- tana que sale, seleccionamos ADO, que en la lista se ver
gramador dene a su conveniencia. Puede ser de solo lec- como
tura, o de lectura-escritura, por ejemplo.
Microsoft ActiveX Data Objects X.XX Library
La informacin con que se carga el recordset puede pro- en donde X.XX representa la versin de ADO que quevenir de una tabla o varias tablas, de la base de datos.
remos usar, que puede ir desde la 1.5 hasta la 2.8. DFA
El recordset, tiene capacidades de navegacin entre su Nota: Un computador pudiera tener instalada una o ms
versiones simultneamente y debemos elegir una de ellas.
conjunto de registros. Puede:
Las versiones ms recientes tienen ms funcionalidades y
tienen menos errores que las antiguas.
Moverse al siguiente registro
Moverse al anterior
Moverse al primero
Moverse al ltimo
y otros

5.2 La conexin con la base de datos


Para trabajar con una base de datos, primero debemos
establecer una conexin con sta.
En el Formulario, declaramos el objeto MiConexin, que
nos permitir la conexin con la base de datos

En un recordset, se ve y se pueden editar los datos de


un solo registro en un tiempo dado, se pueden manipular ' declaro el objeto MiConexion como una variable de mlos datos de los campos del registro actual en donde se dulo. ' Cuando se instancie ser la conexin con la base
de datos Dim MiConexion As ADODB.Connection
encuentra.
Adems de editar registros, tambin se puede:
Insertar registros nuevos
Borrar registros

En este momento, el objeto MiConexion solo est declarado, pero todava no existe porque no ha sido instanciado.
En el evento Form_Load, instanciamos el objeto MiConexion, y establecemos la conexin con la base de datos
para poder comunicarnos con ella.

Las edicin, la insercin y el borrado de registros en el


Private Sub Form_Load() ' Instancio la conexin
recordset, se reejarn en la Base de Datos.
(ahora la conexin existe) Set MiConexin = New
ADODB.Connection With MiConexin ' Cursor en
Cliente para poder usar un DataGrid .CursorLocation =
4.3 El Comando
adUseClient ' Abro la conexin con la base de datos NepLa orden (command) es el componente ADO que per- tuno.mdb usando su DSN .Open DSN=Neptuno End
mite hacer solicitudes o dar rdenes a la base de datos With End Sub
mediante una sentencia SQL.
Ya tengo la conexin instanciada y ya me he conectado
Se puede especicar la insercin de registros nuevos en
una tabla, as como tambin, la eliminacin la actualizacin y la obtencin de registros con determinadas condiciones.

con la base de datos. La autopista est abierta y funcionando.

Ahora puedo hacer cosas con la informacin que contiene


la base de datos. Puedo leerla, escribirla, borrarla, modiAdems, se pueden crear, alterar y modicar las caracte- carla, etc. Tambin puedo manipular la propia base de
rsticas de las tablas que conforman la base de datos.
datos. Puedo crear tablas, modicarlas, puedo crear usua-

rios, etc.

Dim rs As ADODB.Recordset

5.3

Leo informacin de la base de datos

EJEMPLO DE USO DE ADO DESDE VISUAL BASIC

La variable rs recibir los datos provenientes de la base


de datos.

Ahora usamos la conexin para enviar la orden a la base


Ahora que tenemos la conexin establecida con la base de datos para que nos devuelva la informacin.
de datos, queremos leer informacin de sta y mostrarla Set rs = MiConexion.Execute(SQL)
en la pantalla.
Cuando se ejecuta la sentencia previa, la conexin MiConexion, ejecuta la orden contenida en la variable
SQL. Esto signica que la orden es enviada a la base
5.3.1 Especicamos la informacin que queremos
de datos y sta responde devolviendo la informacin rePrimero, debemos especicarle, a la base de datos, qu querida. MiConexion lee esa informacin proveniente
informacin queremos. Esto se hace mediante una sen- de la base de datos, y la convierte en un Recordset, el cual
es asignado al objeto rs.
tencia SQL.
Por ejemplo. Queremos el ID y el Nombre del producto Ahora el Recordset rs tiene la informacin que lleg
para todos los productos cuyo Nombre contenga la pala- desde la base de datos, lista para ser usada. All tenemos,
todos los registros de la Tabla Productos que cumplan
bra Queso.
con la condicin de que en el campo NombreProducto
Esta es la sentencia SQL que necesitamos SELECT Id- contenga la palabra queso. En el Recordset solo se enProducto, NombreProducto FROM Productos WHERE cuentran los campos que especicamos, IdProducto y
NombreProducto LIKE '%Queso%'
NombreProducto.
La sentencia SQL de arriba signica lo siguiente:
Indicamos, a la base de datos, que nos devuelva dos campos, IdProducto y NombreProducto SELECT IdProducto, NombreProducto Indicamos en qu Tabla, de la base
de datos, estn los campos previamente sealados Estn
en la Tabla Productos FROM Productos Indicamos una
condicin. Queremos solo los registros en cuyo nombre
est la palabra Queso WHERE NombreProducto LIKE
'%Queso%'
En Visual basic, creamos una variable de string a la que
llamaremos SQL. Podramos llamarla como querramos, podramos llamarla Aguacate, Visual Basic lo manejara sin problemas, pero es mejor darle un nombre que
tenga sentido para nosotros y que corresponda con el uso
que se le va a dar.

5.4 Mostramos la informacin que contiene el Recordset en un DataGrid


En el Recordset rs tenemos la informacin. Esta informacin es usable de muchas maneras, ya que con el Recordset tal y como est podemos recorrer esa informacin
y manipularla, aadir registros, borrarlos, etc.
Sin embargo, en este ejemplo, queremos mostrarla en un
DataGrid.
Para ello, solo tenemos que asignar el Recordset a la propiedad DataSource del DataGrid. Una vez hecho esto, el
DataGrid mostrar el contenido del recordset.
Set DataGrid1.DataSource = rs

Dim SQL As String


A esa variable le asignamos un texto que ser la orden 5.5 Cdigo completo del programa
que le vamos a enviar a la base de datos. Este texto es la
sentencia SQL que acabamos de crear arriba.
Nota: Para que el programa funcione solo hay que aaSQL = SELECT IdProducto, NombreProducto & dir un control DataGrid al Formulario y una referencia a
vbCrLf & _ FROM Productos & vbCrLf & _ WHE- Microsoft ActiveX Data Objects X.XX Library.
RE NombreProducto LIKE '%Queso%'"
Option Explicit ' --------------------------------------------------------- ' Declaro el objeto MiConexion como
una variable de mdulo. ' Cuando se instancie ser
la conexin con la base de datos. ' --------------------------------------------------------- Dim MiConexin As
ADODB.Connection ' --------------------------------------------------------- ' Al cargarse el Formulario hago el trabajo. ' (Aqu, a lo sumo, solo debera establecerse la cone5.3.2 Usamos un Recordset para recibir la informa- xin con la base de datos, ' y las dems cosas se deberan
cin desde la base de datos
hacer en otro lado, ' pero este es solo un ejemplo sencillo) '
---------------------------------------------------------- PrivaDeclaramos el objeto Recordset que recibir la informa- te Sub Form_Load() ' ---------------------------------------cin de la base de datos
------------------ ' Instancio la conexin y me conecto con
Ya tenemos especicado la orden que le vamos a enviar
a la base de datos para que nos devuelva los registros con
la informacin que queremos. Ahora debemos crear un
Recordset, que es el objeto de ADO donde se recibir la
informacin proveniente de la base de datos.

5
la base de datos ' --------------------------------------------- MDAC (Microsoft Data Access Compo------------ Set MiConexin = New ADODB.Connection
nents)
With MiConexin ' Cursor en Cliente para poder usar
OLE DB (Object Linking and Embedun DataGrid .CursorLocation = adUseClient ' Abro la
ding for Databases)
conexin con la base de datos usando un DSN .Open
ODBC (Open Database Connectivity)
DSN=Neptuno End With ' --------------------------------------------------------- ' Especico qu informacin quie ADO.NET
ro de la base de datos ' --------------------------------------------------------- Dim SQL As String SQL = SELECT Id DAO (Data Access Objects)
Producto, NombreProducto & vbCrLf & _ From Pro RDS (Remote Data Services)
ductos & vbCrLf & _ WHERE NombreProducto LI Microsoft Jet Database Engine
KE '%Queso%'" ' --------------------------------------------------------- ' Cargo el recordset con la informacin proveniente de la base de datos ' -------------------------------- Plataformas de desarrollo y lenguajes de programa-------------------------- Dim rs As ADODB.Recordset Set cin
rs = MiConexin.Execute(SQL) ' --------------------------------------------------------- ' Muestro la informacin en el
.NET
DataGrid ' ---------------------------------------------------- Mono
----- Set DataGrid1.DataSource = rs End Sub
Embarcadero Delphi

5.6

Imagen del programa

Se muestran los artculos de la Tabla Productos cuyos


nombres contengan la palabra queso.

Visual Basic
Lenguaje de programacin

7 Enlaces externos
Pgina de inicio de ADO 2.8

Vase tambin

Bases de datos
Base de datos
Base de datos relacional
RDBMS (Relational Data Base Management System)
Lenguaje de consultas para bases de datos relacionales
SQL (Structured Query Language)
Componentes para manejo de bases de datos

8 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

8.1

Texto

ActiveX Data Objects Fuente: https://es.wikipedia.org/wiki/ActiveX_Data_Objects?oldid=78615982 Colaboradores: Zuirdj, Robbot,


Dodo, Ejmeza, KeyStorm~eswiki, Ascnder, Jachguate, Cookie, Tano4595, Intrad, Murtasa, Orgullomoore, JMPerez, Edub, Caiser, Further (bot), RobotQuistnix, Yrbot, BOT-Superzerocool, FlaBot, .Sergio, YurikBot, GermanX, KnightRider, Kepler Oort, Chlewbot, CommonsDelinker, TXiKiBoT, Rei-bot, Matdrodes, Muro Bot, Loveless, Botito777, King Willan Bot~eswiki, LucienBOT, Manuelt15, Xqbot,
FrescoBot, LoliBot, EmausBot, KLBot2 y Annimos: 41

8.2

Imgenes

Archivo:DataGrid_mostrando_unos_registros.png
Fuente:
https://upload.wikimedia.org/wikipedia/commons/6/6c/DataGrid_
mostrando_unos_registros.png Licencia: Public domain Colaboradores: ? Artista original: ?

8.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

21/8/2016

ExplicacindepermisosdeficherosycarpetasenUbuntu

Qusonlospermisos?
Lospermisosoatributosdeunacarpetaounficherosonunosnmerosoletrasqueindicansielarchivoola
carpetapuedenserusadosportodoelmundoosloporalgunos.
Fichero=Archivo
Laexplicacinesvlidaparatodotipodecarpetasoficheros(png,txt,jpg,avi,rmvb,wav,mp3).
Paraverlospermisosdeunfichero,abrimosunaterminal,Aplicaciones>Accesorios>Terminal,vamosala
carpetadondeestelfichero(conelcomandocdylaruta)yescribimos:
lsl
Osiqueremosdirectamenteverelficheroocarpeta:
lsl|grepPrueba
DondedicePrueba,ponedlacarpetaofichero(lista.txt)
Yalprincipiodecadafila,enlaprimeracolumna,veremosalgoas:
rwxrwxrwxelguininicialindicaqueesunarchivo.
drwxladinicialindicaqueesundirectorioocarpeta(directory).
Cadacarpetaoficherotiene3gruposdepermisoscon3permisoscadauno.
*Elprimergrupoindicalospermisosdelusuariodueodelfichero.
*Elsegundogrupoindicalospermisosdelgrupodeusuariosdelfichero.
*Eltercergrupoindicalospermisosparaelrestodeusuarios.
Los3tiposdepermisosquehayson:
*Lectura(r):Serepresentaconlaletrar,quevienedelinglsRead.Indicasipuedesabrirelficheroyversu
contenido.
*Escritura(w):Serepresentaconlaletraw,quevienedelinglsWrite.Indicasipuedesmodificarel
contenidoodelfichero.
*Ejecucin(x):Serepresentaconlaletrax,quevienedelinglseXecution.Indicasipodemosejecutarel
archivo(script,instalador).
Elresumenalahoradelaverdadesquenosotrosvemosquelosficherostienenlospermisosdeltipo:
rwxrwxrwx>777(seleesiete,siete,siete)
rwrxrx>655(seleeseis,cinco,cinco)
r>400(seleecuatro,cero,cero)
Elequivalentenmericovienedelbinario.
el7equivaleenbinarioa111yel0a000.
111>RWX>7
110>RW>6
101>RX>5
100>R>4
011>WX>3
010>W>2
001>X>1
000>>0
Elbinariovaporpotenciasdedos,entonces111enbinario=2+2+2=4+2+1=7.101=2+0+2=5
Otraformadeverloesqueel1equivaleaqueseponealgoyelceroaquenoseponenada,entonces
sabiendoqueelordendelospermisosesrwx,podemosdeducirqueun7,queequivalea111querrdecir
queescribimosrwxyun5,queequivalea101,quieredecirquepongamospermisosdondehayun1
siguiendoelorden,esdecirrx.
Ahorasiaplicamosestounavezporcadagrupo(usuario,grupo,otros)nossalenlospermisosdelaforma
rwxrwxrwx.
http://www.tutorialesubuntu.com/2009/11/11/explicaciondepermisosdeficherosycarpetasenubuntu/

1/1

22/8/2016

CmohackearunacuentadeWindowsusandoelcomandoNetUser

CmohackearunacuentadeWindowsusandoel
comandoNetUser
2mtodos:

Conaccesodeadministrador

Sinaccesodeadministrador

Siadministrasunacomputadoraynecesitasaccederalacuentadeotrousuario,puedescambiarsucontraseausandoel
comando"netuser".Situcomputadoraestbloqueadaonotienesaccesodeadministrador,puedesaccederalcomandonet
userusandoeldiscodeinstalacindeWindowsycambiarlacontraseadecualquierusuario.

Mtodo1de2:Conaccesodeadministrador

IniciasesinenWindowsusandounacuentaconaccesodeadministrador.Sipuedesiniciarsesinen
Windowsconunacuentadeadministrador,entoncespuedescambiarfcilmentelacontraseadecualquier
otracuenta.
SinopuedesingresarentucuentadeWindowsonotienesaccesoaunacuentadeadministrador,leela
prximaseccin.

Abreelintrpretedecomandoscomoadministrador.Tienesquehacerloinclusoaunquehayasiniciado
sesinenunacuentaconaccesodeadministrador.
Windows7yversionesanteriores:abreelmenInicio,hazclicderechoen"Smbolodelsistema"y
selecciona"EjecutarcomoAdministrador".Confirmaquequieresabrir"Smbolodelsistema".
Windows8yversionesposteriores:hazclicderechoenelbotndeWindowsyselecciona"Smbolodel
sistema(Administrador)".Cuandoaparezcaelcarteldel"Controldecuentasdeusuario",confirmaque
quieresabrirlo.

Escribe net u s er ypresiona Enter .Aparecerunalistadetodaslascuentasdeusuariodela

Escribe net u s ern om br e _de _ usu a rio * ypresiona Enter .Tepedirnquecreesunanueva

Ingresalanuevacontrasea.Tendrsqueingresarlacontraseadosvecesparaconfirmarla.Lanueva
contraseatendrefectodeinmediato.

Iniciasesincontunuevacontrasea.Puedesusarlacontraseaqueacabasdecrearparainiciarsesin
enlacuentadeeseusuario.Cierratusesinactualeiniciasesinconlanuevacontrasea.

computadora.Lascuentasestarnlistadasencolumnassegnelniveldepermisoquetengan.

contraseaparaelusuarioquehayasingresado.

Mtodo2de2:Sinaccesodeadministrador

BuscaocreaundiscodeinstalacindeWindows.Sinotienesaccesoaningunacuentadeadministrador
delacomputadora,puedessolucionarloconundiscodeinstalacindeWindows.Parausarestemtodo,el
discodebeserdelamismaversindeWindowsalacualvasaintentaracceder.Nohacefaltaquesea
exactamenteelmismodiscoquevenaconlacomputadora.[1]
SitienesunacopiaISOdeldiscodeinstalacindeWindows,puedesgrabarlaenunDVDenblancoo
ponerlaenunUSBdearranque.ParamayorinformacinsobrecmocrearunamemoriaUSBdearranque
conlosarchivosdeinstalacindeWindows,lee"CmoinstalarWindows7usandounamemoriaUSB".

http://es.wikihow.com/hackearunacuentadeWindowsusandoelcomandoNetUser

1/3

22/8/2016

CmohackearunacuentadeWindowsusandoelcomandoNetUser

InsertaeldiscoolamemoriaUSBenlacomputadoraalacualquierasacceder.Tienesqueusareldisco
deinstalacinparaaccederaloscontrolesdeadministradorycambiarlacontraseadelosusuarios.

ReinicialacomputadorayabreelmendearranqueoelBIOS.Debeshacerloantesdequeaparezcael
logodeWindows.ElprocesovaralevementesegnlaversindeWindowsquetengainstaladala
computadora:
Windows7yversionesanteriores:presionalateclaindicadaparaaccederalBIOS,SETUPoBOOT
mientraslacomputadoraestarrancando.Lateclavarasegnelfabricante,perotemostrarnculesenla
pantalladellogodearranque.Normalmenteesalgunadelassiguientes: F2 , F10 , F11 o Supr .Unavez
quehayasabiertoelmendearranqueoelBIOS,seleccionalaopcin"BOOT"(arranque).
Windows8yversionesposteriores:abreelmenInicioolapantallaInicioyhazclicderechoenelbotn
"Inicio/Apagado".Mantnpresionadalatecla Mays yhazclicen"Reiniciar".Eligelaopcin"Resolucinde
problemas"yluego"Opcionesavanzadas".Seleccionalaopcin"ConfiguracindefirmwareUEFI"enel
men.Abreelmen"Arranque".

SeleccionatudiscodeinstalacinomemoriaUSBcomodispositivoprimariodearranque.Elproceso
exactopuedevariar,peroengeneralsimplementetienesquereasignarlaprioridaddearranquedemodoque
lacomputadoraarranquedesdeeldiscoomemoriaUSBynodesdeeldiscoduro.

ReiniciayabreelasistentedeinstalacindeWindows.Presionaunateclaparaabrirelprogramade
instalacindeWindowsyesperaaquesecarguenlosarchivos.Estopuedetardaraproximadamenteun
minuto.

Seleccionatuidiomaytusopcionesdeentrada.Generalmentetienesquedejarestasopcionesensus
valorespredeterminados.

Hazclicenelbotn"Repararequipo"enlaesquinainferiorizquierda.Estebotnapareceenlamisma
pantallaqueelbotn"Instalarahora".

SeleccionalainstalacindeWindowsalacualquierasacceder.Generalmentehayunasolaopcinenla
lista.

Enelmen"Opcionesderecuperacindelsistema"selecciona"Smbolodelsistema".Seabrirel
intrpretedecomandosenunanuevaventana.

10

Ingresaloscomandosnecesariosparaaccedera"Smbolodelsistema"desdeelmendeiniciode
sesin.Lossiguientescomandostepermitirnaccedera"Smbolodelsistema"desdelapantalladeinicio
desesindeWindows.Deestaformapodrscambiarlacontraseadecualquiercuenta.Parahacerlo,escribelos
siguientescomandosunoalavezyenorden:
cd\ Enter
cd windows \sy s tem 3 2 Enter
ren utilma n.e x eu t ilm a n. e x e . b a k Enter
cop ycmd.e xe u til m an. e xe Enter

11

Quitaeldiscodeinstalacinyreinicialacomputadora.Ahoraquehashecholoscambiosnecesarios,
puedesreiniciarlacomputadoraycomenzaracambiarlascontraseas.QuitaeldiscoolamemoriaUSB
antesdereiniciar,demodoquelacomputadoraarranquenormalmente.

12

EnlapantalladeiniciodesesindeWindows,presiona Win + U .Estasteclasnormalmenteabriran

elAdministradordeaccesibilidad,perocomohicistecambiosenlosarchivosdelsistema,seabriruna
ventanade"Smbolodelsistema".
Sinoaparecenada,presionarpidamentelasteclas Alt + Tab .Esposiblequelaventanaestoculta
detrsdelapantalladeiniciodesesin.

13

http://es.wikihow.com/hackearunacuentadeWindowsusandoelcomandoNetUser

2/3

22/8/2016

CmohackearunacuentadeWindowsusandoelcomandoNetUser

13

Escribe net u s er ypresiona Enter .Aparecerunalistadelascuentasdetucomputadora.Los

14

Escribe net u s ern om br e _de _ usu a rio * ypresiona Enter .Reemplazanombre_de_usuariopor

15

Creaunanuevacontrasea.Escribeunanuevacontraseacuandotelopidanyescrbelaunasegunda
vezparaconfirmarlo.Tambinseraunabuenaideaeliminarcompletamentelacontraseapresionando

administradoresselistanenlacolumnaizquierda,lascuentascomunesenelmedioylascuentasde
invitadoenlacolumnaderecha.

elnombredelacuentaalacualquierasacceder.

Enter encadalnea.Estosermenossospechosoquecrearunacontraseacompletamentenuevaqueelusuario

noreconocercuandointenteentrar.

16

Iniciasesinenlacuentadelusuariocontunuevacontrasea.Elcambiodecontraseaseaplicar
inmediatamente,asquepuedesregresaralapantalladeiniciodesesindeWindowsyusartunueva
contraseaparaaccederalacuenta.

Referencias
1.https://www.technibble.com/bypasswindowslogonsutilman/

http://es.wikihow.com/hackearunacuentadeWindowsusandoelcomandoNetUser

3/3

Registro de Windows
El registro de Windows es una base de datos jerrquica que almacena los ajustes de conguracin y opciones
en los sistemas operativos Microsoft Windows. Contiene la conguracin de los componentes de bajo nivel del
sistema operativo, as como de las aplicaciones que hay
funcionando en la plataforma: hacen uso del registro el
ncleo (kernel, en ingls), los controladores de dispositivos, los servicios, el SAM, la interfaz de usuario y las
aplicaciones de terceros. El registro tambin proporciona un medio de acceso a los contadores para generar un
perl del rendimiento del sistema.

partan el mismo equipo, y tambin permite que los programas funcionen para usuarios con menos privilegios.
Adems se han simplicado las copias de seguridad y la
restauracin, ya que es posible acceder al registro a travs
de una conexin de red para realizar labores de soporte
y mantenimiento remotas, o incluso desde scripts usando
el conjunto estndar de API, siempre y cuando el servicio de registro remoto est funcionando y las reglas del
cortafuegos lo permitan.
El registro dispone de caractersticas que mejoran la integridad del sistema, ya que est diseado como una base
de datos y cuenta con funciones parecidas a las de las
bases de datos, como actualizaciones atomizadas. Si dos
procesos intentan actualizar a la vez el mismo valor del registro, un cambio del proceso siempre preceder al otro y
la coherencia general de los datos se mantendr. Cuando
se hacen cambios en los archivos INI, como en la condicin de carrera, se pueden producir datos incoherentes que no coincidan con ninguna de las actualizaciones
que se pretendan. Tanto Windows Vista como los sistemas operativos posteriores, proporcionan actualizaciones
transaccionales del registro por medio del Administrador de transacciones de ncleo[necesita atribucin], extendiendo las garantas que proporciona la atomicidad a
mltiples cambios en las claves y valores, con la semntica commit-abort tradicional. (Ntese, sin embargo, que
el NTFS proporciona el mismo soporte al sistema de archivos, por lo que, en teora, se podran obtener las mismas garantas con los archivos de conguracin tradicionales.)

Cuando se introdujo por primera vez con Windows 3.1,


el propsito fundamental del registro de Windows era almacenar informacin sobre la conguracin de componentes basados en COM. Con la introduccin de Windows 95 y Windows NT, su utilizacin se extendi para
ordenar la profusin de archivos INI de cada programa,
los cuales se haban utilizado anteriormente para almacenar los ajustes de conguracin de los programas basados
en Windows.[1][2] Las aplicaciones porttiles normalmente no escriben los datos relativos a la conguracin en el
registro de Windows, sino que guardan los datos de conguracin en archivos ubicados dentro de un nico directorio desde el cual se ejecuta la aplicacin.

Fundamentos

Antes de la existencia del registro, los archivos.INI almacenaban los ajustes de cada programa en un archivo
de texto, a menudo en una ubicacin compartida que no
permita ajustes especcos para cada usuario en entornos de mltiples usuarios. Por el contrario, el registro de
Windows almacena todos los ajustes de las aplicaciones
en un solo repositorio lgico (con un nmero pequeo de
archivos) y de forma estandarizada. Segn Microsoft, este sistema ofrece varias ventajas sobre los archivos INI.
Como el anlisis de archivos se realiza de forma mucho
ms eciente con el formato binario, se puede leer o escribir en l ms rpidamente que en un archivo INI. As
mismo, los datos fuertemente tipados se pueden almacenar en el registro, lo que no ocurra con la informacin
de texto almacenada en los archivos INI.[3] Esto es una
ventaja cuando se editan las claves manualmente usando
regedit, el editor integrado para el registro de Windows.
Dado que los ajustes del registro especcos para un usuario se cargan desde una ruta concreta para ese usuario,
en lugar de hacerlo desde una ubicacin de solo lectura
del sistema, el registro permite que varios usuarios com-

2 Estructura
2.1 Claves y valores
El registro contiene dos elementos bsicos: claves y valores.
Las claves del registro son similares a carpetas: adems
de los valores, cada clave puede contener subclaves, que a
su vez pueden contener ms subclaves, y as sucesivamente. Las claves estn referenciadas con una sintaxis parecida a los nombres de las rutas de Windows, y usan barras
diagonales inversas para indicar los distintos niveles jerrquicos. Cada subclave tiene obligatoriamente un nombre: una cadena que no puede contener barras diagonales
inversas y en la que no se distingue entre maysculas y
minsculas.
1

nicamente se puede acceder a la jerarqua de las claves


del registro desde un identicador de clave raz conocido (que es annimo, pero cuyo valor efectivo es un identicador numrico constante) asignado al contenido de
una clave de registro precargada por el ncleo desde un
subrbol almacenado, o asignado al contenido de una
subclave dentro de otra clave raz, o tambin asignado a
un servicio registrado o DLL que proporciona acceso a
los valores y subclaves contenidos en ste.

ESTRUCTURA

pero esto los hace difciles de distinguir de sus rutas de


clave cuando se utilizan algunas funciones API del registro de Windows (cuyo uso est obsoleto en Win32).

La terminologa puede inducir a error, ya que cada clave de registro es similar a un vector asociativo, en el que
la terminologa estndar denomina clave a la parte del
nombre de cada valor de registro. Los trminos son un
vestigio del registro de 16 bits de Windows 3, en el cual
las claves de registro no podan contener pares de nomEjemplo: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
bres/datos, sino que contenan nicamente un valor sin
se reere a la subclave Windows de la subclave Mi- nombre (que tena que ser una cadena). En este sentido,
crosoft de la subclave Software de la clave raz todo el registro era como un nico vector asociativo en
HKEY_LOCAL_MACHINE.
el que las claves de registro (tanto en el sentido de regisHay siete claves raz predenidas, las cuales tradicional- tro como en el del diccionario) formaban una jerarqua,
mente se nombran segn su identicador constante de- y los valores del registro eran todos cadenas. Cuando se
nido en la API de Win32, **por sus abreviaturas corres- cre el registro de 32 bits, tambin se cre la capacidad
adicional de crear mltiples valores con nombre por clapondientes (dependiendo de las aplicaciones):
ve y, de algn modo, se distorsion el signicado de los
nombres.[4] Para mantener la compatibilidad con el com HKEY_LOCAL_MACHINE o bien HKLM
portamiento anterior, todas las claves de registro pueden
HKEY_CURRENT_CONFIG o bien HKCC (ni- tener un valor por defecto, cuyo nombre es la cadena
camente en Windows 9x/Me y en las versiones ba- vaca.
sadas en NT de Windows)
HKEY_CLASSES_ROOT o bien HKCR
HKEY_CURRENT_USER o bien HKCU
HKEY_USERS o bien HKU

Cada valor puede almacenar datos arbitrarios de longitud


y codicado variables, pero asociados a un tipo simblico
de datos (denido como una constante numrica) que expresa cmo analizar estos datos. Los tipos estndar son:

2.2 Subrboles

HKEY_PERFORMANCE_DATA (nicamente en
las versiones de Windows basadas en NT, pero invi- El registro comprende varias secciones lgicas o
sible para el editor del registro)
subrboles[5] (la palabra inglesa para subrbol, hive,
[6]
HKEY_DYN_DATA (nicamente en Windows es un chiste interno). Los subrboles normalmente se
9x/Me, y visible en el editor de registro de Win- nombran segn las deniciones de sus API de Windows,
las cuales empiezan siempre por HKEY. Con frecuendows)
cia se abrevian en un nombre de tres o cuatro letras que
empieza con HK (p. ej., HKCU y ). Tcnicamente, se
Al igual que otros archivos y servicios de Windows, todas trata de indicadores predenidos (con valores constantes
las claves de registro pueden restringirse mediante listas predenidos) para claves especcas que se mantienen en
de control de acceso (ACL), dependiendo de los privile- la memoria o se almacenan en archivos de subrbol algios del usuario, los tokens de seguridad obtenidos por las macenados en el sistema de archivos local y cargados por
aplicaciones, o las directivas de seguridad aplicadas por el ncleo del sistema en el tiempo de arranque, y a conel sistema (estas restricciones pueden ser denidas por el tinuacin se comparten (con varios derechos de acceso)
mismo sistema y conguradas por los administradores lo- entre todos los procesos que se estn ejecutando en el siscales del sistema o por administradores de dominio). Los tema local, o cargados y asignados en todos los procesos
diferentes usuarios, programas, servicios y sistemas re- iniciados en una sesin de usuario cuando el usuario acmotos podrn ver nicamente una parte de la jerarqua o cede al sistema. Los nodos HKEY_LOCAL_MACHINE
de las distintas jerarquas de las mismas claves raz.
(datos de conguracin local especcos del equiLos valores del registro son pares de nombres y datos al- po) y HKEY_CURRENT_USER (datos de conguramacenados dentro de las claves. Los valores del registro cin especcos del usuario) tienen una estructura sise referencian separados de las claves de registro. Cada milar entre s; las aplicaciones del usuario normalvalor de registro almacenado en una clave de registro po- mente buscan su conguracin buscndolos primero
see un nombre nico, sin distinguie entre maysculas y en HKEY_CURRENT_USER\Software\Vendors naminsculas. Las funciones API de Windows que consul- me\Applications name\Version\Setting name, y si no se
tan y manipulan los valores del registro toman nombres de encuentra la conguracin, miran en la misma ubicacin,
valor independientes de la ruta de la clave o el indicador en la clave HKEY_LOCAL_MACHINE [necesita cita].
que identica la clave principal. Los valores del registro Sin embargo, se puede aplicar lo opuesto en congurapueden contener barras diagonales inversas en el nombre, ciones de directivas aplicadas por el administrador, en las

2.2

Subrboles

que el HKLM puede estar por encima del HKCU. El programa del logotipo de Windows tiene requisitos especcos sobre dnde se pueden almacenar los distintos tipos
de datos de usuario para que se siga el principio del privilegio mnimo, de forma que no se necesite acceso a nivel
de administrador para usar una aplicacin.[7]
2.2.1

HKEY_LOCAL_MACHINE (HKLM)

HKEY_LOCAL_MACHINE, abreviado como HKLM,


almacena conguraciones especcas del equipo local.[8]
Las claves ubicadas como HKLM realmente no se almacena en el disco, sino que el ncleo del sistema la mantiene en la memoria para asignar all las dems subclaves. Las aplicaciones no pueden crear subclaves adicionales. En las versiones NT de Windows, esta clave contiene
cuatro subclaves: SAM, SECURITY, SYSTEM
y SOFTWARE, las cuales se cargan en el tiempo de
arranque en sus respectivos archivos ubicados en la carpeta %SystemRoot%\System32\cong. Hay una quinta
subclave, HARDWARE, que es voltil y se crea dinmicamente y, como tal, no se almacena en un archivo (muestra una vista de todos los dispositivos Plug-andPlay detectados en ese momento). En Windows Vista y
versiones superiores, el ncleo asigna una sexta subclave
en la memoria y se llena con datos de la conguracin de
arranque (BCD).
La clave HKLM\SAM normalmente aparece vaca para la mayora de los usuarios (a no ser que los
administradores del sistema local o los administradores de dominios que administran el sistema local
les hayan concedido acceso). Se utiliza para referenciar todas las bases de datos administrador de
cuentas de seguridad (SAM) para todos los dominios en los cuales el sistema local ha sido autorizado o congurado administrativamente (incluyendo
el dominio local del sistema en ejecucin, cuya base de datos SAM est almacenada en una subclave
llamada tambin SAM; se crearn otras subclaves segn se necesiten, una por cada dominio adicional). Cada base de datos SAM contiene todas las
cuentas integradas (principalmente alias de grupo)
y cuentas conguradas (usuarios, grupos y sus alias,
incluyendo cuentas invitadas y cuentas de administrador), creadas y conguradas en su respectivo dominio, ya que cada cuenta en ese dominio contiene
el nombre de usuario que se puede utilizar para iniciar sesin en ese dominio, el identicador interno
y exclusivo del usuario en el dominio, una funcin
hash criptogrca de la contrasea de cada usuario
para cada protocolo de autenticacin habilitado, la
ubicacin del almacenamiento de su subrbol de registro de usuario, varios indicadores de estado (por
ejemplo si la cuenta se puede enumerar y hacer visible en la ventana emergente de inicio de sesin), y
la lista de dominios (incluido el dominio local) en el

3
que se congur la cuenta.
La clave HKLM\SECURITY generalmente aparece vaca para la mayora de los usuarios (excepto cuando un usuario con privilegios de administrador les concede acceso) y est vinculada a la base
de datos de seguridad del dominio en el que ha iniciado sesin el usuario (si el usuario ha iniciado sesin en el dominio del sistema local, esta clave estar
vinculada al subrbol de registro almacenado en el
equipo local y gestionado por administradores locales del sistema o por la cuenta Sistema integrada y
los instaladores de Windows). El ncleo acceder a
ella para leer y aplicar la directiva de seguridad que
sea de aplicacin al usuario actual y a todas las aplicaciones y operaciones ejecutadas por este usuario.
Tambin contiene una subclave SAM, vinculada
dinmicamente a la base de datos SAM del dominio en el cual el usuario actual ha iniciado sesin.
Normalmente, la clave HKLM\SYSTEM nicamente es editable por usuarios con privilegios de
administrador en el sistema local. Contiene informacin sobre el programa de instalacin del sistema
de Windows, datos para el generador seguro de nmeros aleatorios (RNG), la lista de los dispositivos
montados actualmente que contienen un sistema de
archivos, varios HKLM\SYSTEM\Control Sets
numerados que contienen conguraciones alternativas de los servicios y controladores del hardware
del sistema que est en funcionamiento en el sistema
local (incluyendo el que est en uso y una copia de
seguridad), una subclave HKLM\SYSTEM\Select
que contiene el estado de este conjunto de controles,
y un HKLM\SYSTEM\CurrentControlSet el cual,
durante el tiempo de arranque, se vincula dinmicamente al conjunto de controles usado en esos momentos en el sistema local. Cada conjunto de controles congurado contiene:
Una subclave Enum que enumera todos los dispositivos Plug-and-Play conocidos y los asocia a los
controladores de sistema instalados (y almacena las
conguraciones especcas de cada dispositivo de
dichos controladores).
Una subclave Services en la que se enumeran
todos los controladores de sistema instalados
(sin conguracin especca para dispositivos
y con una enumeracin de los dispositivos para los cuales se ha creado una instancia de los
mismos) y todos los programas que funcionan
como servicios (cmo y cundo se pueden iniciar automticamente).
Una subclave Control, la cual organiza los
diversos controladores de hardware y programas que estn funcionando como servicios, y
la conguracin del resto del sistema.

ESTRUCTURA

Una subclave Hardware Proles, que enumera los diversos perles que se han optimizado (cada uno de ellos con la conguracin de
sistema o software usada para modicar el
perl predeterminado en servicios y controladores del sistema o en las aplicaciones), as como la clave Hardware Proles\Current, que
se vincula dinmicamente a uno de esos perles.

del usuario. El subrbol de clases especco del usuario, a


diferencia del subrbol HKCU, no forma parte del perl
de usuario mvil.

La clave HKLM\SOFTWARE\Wow6432Node
se usa con aplicaciones de 32 bits en los SO Windows de 64 bits y, aunque es independiente, es equivalente a HKLM\SOFTWARE. En aplicaciones
de 32 bits, WoW64 presenta de forma transparente la ruta de la clave como HKLM\SOFTWARE[9]
(similar a la forma en que las aplicaciones de 32
bits ven %SystemRoot%\Syswow64 como %SystemRoot%\System32)

cin mediante datos de rendimiento proporcionados por


el propio ncleo NT o por controladores del sistema, programas y servicios en funcionamiento que proporcionen
datos de rendimiento. Esta clave no se almacena en ningn subrbol y no aparece en el Editor de registro, pero es
visible a travs de las funciones de registro en el API de
Windows, en una vista simplicada a travs de la pestaa Rendimiento del Administrador de tareas (nicamente
para algunos datos de rendimiento del sistema local) o a
travs de paneles de control ms avanzados (como el Monitor de rendimientos o el Analizador de rendimientos,
los cuales permiten recoger y registrar esta informacin,
incluyendo la de sistemas remotos).

2.2.3 HKEY_USERS (HKU)

HKEY_USERS, abreviado como HKU, contiene subclaves correspondientes a las claves


HKEY_CURRENT_USER de cada perl de usuario
La subclave HKLM\SOFTWARE contiene
cargado activamente en el equipo, aunque normalmente
ajustes de software y de Windows (en el perl
slo se cargan los subrboles de usuario correspondientes
predeterminado de hardware). Resulta modia los usuarios con sesin iniciada en esos momentos.
cada principalmente por los instaladores del
sistema y de las aplicaciones. Se ordena por
vendedor de software (con una subclave para
2.2.4 HKEY_CURRENT_USER (HKCU)
cada uno), pero tambin contiene una subclave
Windows para algunas conguraciones de la
HKEY_CURRENT_USER, abreviado como HKinterfaz de usuario de Windows, una subclaCU, almacena conguraciones especcas del usuario
ve Classes que contiene todas las asociaciocon sesin iniciada en esos momentos.[11] La clave
nes registradas de extensiones de archivo, tiHKEY_CURRENT_USER es un enlace a la subclave
pos de MIME, Id. de clases de objetos e Id.
de HKEY_USERS correspondiente al usuario; se puede
de interfaces (para OLE, COM/DCOM y Acacceder a la misma informacin en ambas ubicaciones.
tiveX), para las aplicaciones o DLL instalados
En los sistemas NT de Windows la conguracin de
que probablemente manejen estos tipos en el
cada usuario se almacena en sus propios archivos, llaequipo local (sin embargo, dichas asociaciones
mados NTUSER.DAT y USRCLASS.DAT dentro de su
son congurables para cada usuario, ver ms
subcarpeta Documents and Settings (o en su subcarpeta
adelante), y una subclave Policies (tambin
Usuarios en Windows Vista y versiones superiores). Las
ordenada por vendedor) para aplicar las direcconguraciones contenidas en este subrbol siguen de
tivas de uso general en aplicaciones y servicios
equipo en equipo a los usuarios con perl mvil.
del sistema (incluyendo el almacn central de
certicados usado para autenticar, autorizar
o desautorizar a sistemas y servicios remotos 2.2.5 HKEY_PERFORMANCE_DATA
que funcionan desde fuera del dominio de la
red local).
Esta clave proporciona informacin del tiempo de ejecu-

2.2.2

HKEY_CLASSES_ROOT (HKCR)

HKEY_CLASSES_ROOT, abreviado como HKCR,


contiene informacin sobre aplicaciones registradas, como asociaciones de archivos e Id. de clase de objetos OLE, ligndolos a las aplicaciones utilizadas para identicar estos elementos. En Windows 2000 y
versiones superiores, HKCR es una compilacin de
HKCU\Software\Classes basada en el usuario y de
HKLM\Software\Classes basada en el equipo. Si un valor
dado existe en las dos subclaves anteriores, la contenida
en HKCU\Software\Classes prevalece.[10] El diseo permite el registro de objetos COM especco del equipo o

2.2.6 HKEY_DYN_DATA
Esta clave se usa slo en Windows 95, Windows 98 y
Windows Me.[12] Contiene informacin sobre dispositivos de hardware, incluyendo estadsticas de rendimiento
de Plug and Play y de red. La informacin contenida en
este subrbol tampoco se almacena en el disco duro. La
informacin sobre Plug and Play se recoge y congura en
el inicio, y se almacena en la memoria[13]

3.1

Edicin manual

Edicin

3.1

Edicin manual

El registro de Windows se puede editar manualmente


mediante programas como regedit.exe y, en versiones
ms antiguas de Windows, regedt32.exe, aunque estas
herramientas[14] no muestran algunos de los metadatos
del registro, como por ejemplo los ltimos datos modicados. Tambin implementan soluciones alternativas en
cdigo, las cuales permiten renombrar las claves del registro, ya que las API subyacentes no admiten esta funcionalidad. Dado que cualquier descuido en los cambios
podra causar daos irreversibles, Microsoft recomienda
hacer una copia de seguridad del registro antes de editarlo. Los cambios incorrectos hechos en el registro con
el editor de registro pueden provocar problemas en Windows que abarcan a todo el sistema, y que pueden requerir
la reinstalacin de Windows para solucionarlos.[15] A veces es necesario editar el registro cuando se intentan soluciones alternativas a problemas especcos de Windows.
Por ejemplo, los problemas surgidos al iniciar sesin en
un dominio se pueden resolver editando el registro.[16]
En Windows 3.x apareci una implementacin sencilla
de la herramienta de registro actual, llamada Editor de
informacin de registro o Editor de registro. En esencia, se trataba de una base de datos de aplicaciones usadas para editar objetos OLE incrustados en los documentos. Los sistemas operativos Windows 9x incluan REGEDIT.EXE, el cual se poda usar en Windows y tambin en MS-DOS en modo real.[17] Windows NT introdujo los permisos para editar el registro. Windows NT
4.0 y Windows 2000 se distribuyeron con el programa
REGEDIT.EXE de Windows 9x y con el programa REGEDT32.EXE de Windows NT 3.x. Haba varias diferencias entre los dos editores de estas plataformas:
REGEDIT.EXE tena a la izquierda una vista de rbol que comenzaba en Mi equipo y enumeraba todos los subrboles cargados. REGEDT32.EXE tena una vista de rbol a la izquierda, pero cada subrbol tena su propia ventana, por lo que el rbol slo
mostraba las claves.
REGEDIT.EXE representaba los tres componentes
de un valor (nombre, tipo y datos) en columnas independientes de una tabla. REGEDT32.EXE representaba dichos componentes en forma de lista de cadenas.
REGEDIT.EXE admita hacer clic con el botn secundario del ratn sobre las entradas de una vista de
rbol para ajustar las propiedades y otras conguraciones. REGEDT32.EXE requera que todas las
acciones se realizaran desde la barra de men superior.

5
mientras que REGEDT32.EXE slo admita la bsqueda por nombre de la clave en un nico subrbol
cada vez.
Las versiones anteriores de REGEDIT.EXE no eran
compatibles con los permisos de edicin. Por ello,
en las versiones anteriores slo REGEDT32.EXE
poda acceder a toda la funcionalidad de un registro
NT. REGEDIT.EXE en Windows XP y versiones
superiores es compatible con los permisos de edicin.
REGEDIT.EXE slo admita valores de cadena
(REG_SZ), binarios (REG_BINARY) y DWORD
(REG_DWORD). REGEDT32.EXE admita
estos valores, adems de la cadena expandible (REG_EXPAND_SZ) y la cadena mltiple
(REG_MULTI_SZ). Al intentar editar tipos de
clave no compatibles con REGEDIT.EXE en
Windows 2000 o Windows NT 4.0 se produca su
conversin irreversible en un tipo compatible.[18]
Windows XP fue el primer sistema que integr los dos
programas en uno solo, adoptando la interfaz del antiguo REGEDIT.EXE y aadiendo la funcionalidad de
REGEDT32.EXE. Las diferencias enumeradas anteriormente no son aplicables a Windows XP ni a los sistemas
posteriores; REGEDIT.EXE es el editor mejorado y REGEDT32.EXE est en desuso. En Windows XP y superiores, el Editor de registro tambin admite varias instancias cuando se especica el modicador -m. El Editor de
registro permite que los usuarios ejecuten las siguientes
funciones:
Crear, manipular, renombrar y borrar claves, valores
y datos de valores del registro.
Importar y exportar archivos.REG, exportar datos
en formato de subrbol binario
Cargar, manipular y descargar archivos del registro
con formato de subrbol (nicamente en sistemas
basados en Windows NT)
Congurar permisos basados en ACL (nicamente
en sistemas basados en Windows NT)
Marcar como favoritas claves del registro seleccionadas por el usuario.
Encontrar determinadas cadenas en nombres de clave, nombres de valor y datos de valor.
Editar remotamente el registro desde otro equipo
que est en red.

Tambin es posible editar el registro en Linux usando el


REGEDIT.EXE admita la bsqueda por todo el editor de cdigo abierto Oine NT Password & Registry
registro de nombres, valores o datos de las claves, Editor para editar los archivos[19]

3.2

EDICIN

Archivos.REG

datos del registro. Para eliminar una clave (y todas las


subclaves, valores y datos), el nombre de la clave debe
Los archivos.REG (tambin conocidos como entradas estar precedida por el signo menos ("-").[20]
de registro) son archivos legibles de texto para impor- Por
ejemplo,
para
eliminar
la
clave
tar y exportar partes del registro. En Windows 2000 y HKLM\SOFTWARE\Microsoft (y todas las subclasistemas operativos posteriores basados en NT, contie- ves, valores y datos),
nen la cadena Windows Registry Editor Version 5.00 al
principio, y se basan en Unicode. En sistemas Windows [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
9x y NT 4.0, contienen la cadena REGEDIT4 y se basan en ANSI.[20] Plantilla:Failed verication El formato Para eliminar un valor (y sus datos), los valores que se van
de los archivos.REG de Windows 9x es compatible con a eliminar deben tener un signo menos ("-") despus del
Windows 2000 y sistemas posteriores basados en NT. El signo igual ("=").[20]
Editor de registro de Windows para estos sistemas tambin admite la exportacin de archivos.REG en forma- Por ejemplo, para eliminar nicamente los valores del
to Windows 9x/NT. Los datos se almacenan en archi- Value A and Value B (y sus datos) de la clave
HKLM\SOFTWARE\Microsoft,
vos.REG con la siguiente sintaxis:[19]
[<Hive Name>\<Key Name>\<Subkey Name>] Value [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
Value A"=- Value B"=Name"=<Value type>:<Value data>
Se puede editar el valor predeterminado de una clave Value A"=- Value B"=- Para eliminar nicamente el valor (predeterminado) de la clave
usando @ en lugar de Value Name":
HKLM\SOFTWARE\Microsoft (y sus datos),
[<Hive Name>\<Key Name>\<Subkey Name>] @=<Va[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
lue type>:<Value data>
@=Los valores de cadena no requieren un <Value type>
(ver ejemplo), pero backslashes ("\") necesita ser escrita como una doble barra invertida ("\ \") Por ejemplo,
para aadir los valores Value A, Value B, Value
C, Value D, Value E, Value F, Value G, Value H, Value I, Value J, and Value K a la clave
HKLM\SOFTWARE\Microsoft,

Las lneas que comienzan con un punto y coma se consideran comentarios:


;
This
is
a
comment.
This
can
be
placed
in
any
part
of
a
.reg
le
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
Value"="Example string

Windows
Registry
Editor
Version
5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
Value
A"="<String
value
data>"
Value
3.3 Edicin de la lnea de comandos
B"=hex:<Binary data (as comma-delimited list of
hexadecimal values)> Value C"=dword:<DWORD Se puede manipular el registro de varias formas desde la
value integer> Value D"=hex(7):<Multi-string value lnea de comandos. Las utilidades Reg.exe y RegIni.exe
data (as comma-delimited list of hexadecimal values)> estn incluidas en Windows XP y en las versiones
Value E"=hex(2):<Expandable string value data (as posteriores de Windows. Otras ubicaciones posibles
comma-delimited list of hexadecimal values)> Value en versiones antiguas de Windows pueden ser los CD
F"=hex(b):<QWORD value (as comma-delimited list of del kit de recursos o el CD de instalacin original
8 hexadecimal values, in little endian byte order)> Va- de Windows. Adems, se puede importar un archivo
lue G"=hex(4):<DWORD value (as comma-delimited .REG desde la lnea de comandos mediante el siguiente
list of 4 hexadecimal values, in little endian byte comando: RegEdit.exe /s le La /s signica que el
order)> Value H"=hex(5):<DWORD value (as comma- archivo se fusionar silenciosamente con el registro.
delimited list of 4 hexadecimal values, in big endian byte Si se omite el parmetro /s se le pedir al usuario que
order)> Value I"=hex(8):<REG_RESOURCE_LIST conrme la operacin. En Windows 98, Windows 95 y
(as comma-delimited list of hexadecimal values)> Value algunas conguraciones de Windows XP, el modicador
J"=hex(a):<REG_RESOURCE_REQUIREMENTS_LIST /s tambin hace que RegEdit.exe ignore los ajustes
(as comma-delimited list of hexadecimal values)> Value del registro que permite que los administradores lo
K"=hex(0):
deshabiliten. Cuando se utiliza el modicador /s RegELos datos de archivos.REG se pueden aadir o fusionar
con el registro haciendo doble clic sobre esos archivos o
usando el modicador /s en la lnea de comandos. Los
archivos.REG tambin se pueden utilizar para eliminar

dit.exe no devuelve un cdigo de retorno adecuado si la


operacin falla, al contrario que Reg.exe, que s lo hace.
RegEdit.exe /e le exporta todo el registro a un archivo
.REG, mientras que cualquiera estos RegEdit.exe /e le
HKEY_CLASSES_ROOT[\<key>]

3.6

Funcionalidad avanzada

RegEdit.exe /e le HKEY_CURRENT_CONFIG[\<key>]
RegEdit.exe /e le HKEY_CURRENT_USER[\<key>]
RegEdit.exe /e le HKEY_LOCAL_MACHINE[\<key>]
RegEdit.exe /e le HKEY_USERS[\<key>] exporta
nicamente la clave o subclave especicada. La asociacin predeterminada para los archivos .REG en
muchas versiones de Microsoft Windows. Tambin
se puede utilizar Reg.exe. ste es un ejemplo para
mostrar la versin del valor del registro: Version Reg.exe
QUERY HKLM\Software\Microsoft\ResKit /v Version
Otras opciones de lnea de comandos incluyen un
VBScript o un JScript junto con un CScript, WMI
o WMIC.exe y Windows PowerShell. Los permisos del registro se pueden manipular a travs de la
lnea de comando usando RegIni.exe y la herramienta SubInACL.exe. Por ejemplo, los permisos para
la clave HKEY_LOCAL_MACHINE\SOFTWARE
se pueden mostrar usando: SubInACL.exe /keyreg
HKEY_LOCAL_MACHINE\SOFTWARE /display

3.4

Programas o scripts

7
del inerno de las DLL habitualmente se pueden reparar
con RegSvr32.exe o con el conmutador /RegServer sin tener que volver a invocar los programas de instalacin.[26]

3.6 Funcionalidad avanzada


Windows muestra las API que permiten que las aplicaciones de modo de usuario se registren para recibir
un evento de noticacin si se cambia una clave de
RegConnectRegistry.[27] Las API tambin estn disponibles para permitir que las aplicaciones de modo ncleo
ltren y modiquen las llamadas al registro hechas por
otras aplicaciones.[28]
Adems, Windows admite el acceso remoto al registro de
otro equipo a travs de la funcin RegConnectRegistry[29]
si el servicio Registro remoto se est ejecutando, est correctamente congurado y su trco de red no est protegido por cortafuegos

4 Ubicaciones

El registro puede editarse mediante las API de la biblioEl registro se almacena fsicamente en varios archivos,
teca avanzada API de Windows 32 (advapi32.dll).[21]
generalmente ocultos de los API de modo de usuario utiMuchos lenguajes de programacin ofrecen clases o funlizados para manipular datos del interior del registro. Deciones integradas de biblioteca en tiempo de ejecucin
pendiendo de la versin de Windows, habr diferentes
que rodean las API de Windows subyacentes, permitienarchivos y diferentes ubicaciones para dichos archivos,
do de este modo que los programas almacenen congupero todos ellos se encuentran en el equipo local. La ubiraciones en el registro (p. ej., Microsoft.Win32.Registry
cacin de los archivos de registro del sistema en Windows
en VB.NET y C#, o TRegistry en Delphi y Free PasNT es \Windows\System32\Cong; el subrbol de regiscal). Las aplicaciones habilitadas para COM, como Vitro especco del usuario HKEY_CURRENT_USER se
sual Basic 6, pueden usar el objeto WScript.Shell. Otro
almacena en Ntuser.dat dentro del perl del usuario. Hay
mtodo es usar la herramienta del kit de recursos de Winuno para cada usuario; si un usuario tiene un perl mdows, Reg.exe, ejecutndola desde el cdigo,[22] aunque
vil, entonces dicho archivo se copiar desde y al servidor
esto se considera un estilo de programacin muy pobre.
al iniciar sesin y al cerrar sesin respectivamente. Un
Anlogamente, los lenguajes para scrips como Perl (con
segundo archivo de registro especco del usuario llamaWin32::TieRegistry), Windows Powershell y Windows
do UsrClass.dat contiene entradas de registro COM y por
Scripting Host tambin posibilitan la edicin del registro
defecto no es mvil.
desde scripts.

3.5

Autorregistro COM

Antes de la introduccin del COM de registro libre,


se animaba a los desarrolladores a que aadieran cdigo de inicializacin a los cdigos binarios in-process
y out-of-process para realizar la conguracin requerida para que funcionara ese objeto. Para binarios inprocess como los archivos de tipo.DLL y.OCX, normalmente los mdulos exportaban una funcin denominada
DllInstall()[23] que poda ser llamada por los programas
de instalacin o ser invocada manualmente con utilidades
como Regsvr32.exe;[24] los binarios out-of-process normalmente eran compatibles con los argumentos de la lnea de comandos /Regserver y /Unregserver que creaban
o eliminaban la conguracin del registro requerida.[25]
Las aplicaciones COM que se daan debido a problemas

4.1 Sistemas operativos basados en Windows NT


Los sistemas basados en Windows NT almacenan el registro en un formato de subrbol binario que puede ser
exportado, cargado y descargado por el editor de registro de estos sistemas operativos. Los siguientes archivos de registro del sistema se almacenan en %SystemRoot%\System32\Cong\:
Sam HKEY_LOCAL_MACHINE\SAM
Security HKEY_LOCAL_MACHINE\SECURITY
Software HKEY_LOCAL_MACHINE\SOFTWARE
System HKEY_LOCAL_MACHINE\SYSTEM

6 DIRECTIVAS

5 Copias de seguridad y recuperacin

Default HKEY_USERS\.DEFAULT

Userdi - No asociado a un subrbol. Utilizado nicamente cuando se actualiza a una versin superior
del sistema operativo.[30]
A lo largo de los aos, las distintas ediciones de Windows
han utilizado diversos mtodos para hacer copias de seEl siguiente archivo se almacena en la carpeta del perl guridad y restaurar el registro, algunas de las cuales estn
obsoletas hoy en da:
de cada usuario:
%UserProle%\Ntuser.dat
HKEY_USERS\<User SID>
HKEY_CURRENT_USER)

(linked

to

by

Restaurar sistema puede hacer copia de seguridad


del registro y restaurarlo, siempre y cuando se pueda
arrancar Windows, o desde el Entorno de recuperacin de Windows arrancando con Windows Vista.

Para Windows 2000, Server 2003 y Windows XP, el siguiente archivo adicional, especco para cada usuario, se
usa para asociaciones entre archivos e informacin COM:

NTBackup puede hacer copia de seguridad del registro como parte del Estado del sistema y restaurarla. Recuperacin automtica del sistema tambin
puede restaurar el registro en Windows XP.

%UserProle%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat


(path
is
localized) HKEY_USERS\<User SID>_Classes
(HKEY_CURRENT_USER\Software\Classes)

En sistemas basados en Windows NT, la opcin ltima conguracin vlida conocida en


el men de inicio vuelve a enlazar la clave
HKLM\SYSTEM\CurrentControlSet, la cual almacena informacin sobre controladores de hardware
y de dispositivos.

Para Windows Vista y posteriores, la ruta se cambi a:

Windows 98 y Windows Me incluyen herramientas


%UserProle%\AppData\Local\Microsoft\Windows\Usrclass.dat
de comprobacin del registro de lnea de comandos
(path is not localized) alias %LocalApp(Scanreg.exe) y GUI (Scanregw.exe) para comproData%\Microsoft\Windows\Usrclass.dat
bar y arreglar la integridad del registro, crear por

HKEY_USERS\<User
SID>_Classes
defecto hasta cinco copias automticas de forma re(HKEY_CURRENT_USER\Software\Classes)
gular y restaurarlas manualmente o cuando se detecten daos. La herramienta de comprobacin del
Windows 2000 guardaba una copia alternativa de los
registro hace por defecto una copia de seguridad del
subrboles del registro (.ALT) e intentaba cambiar a ella
registro en %Windir%\Sysbckup Scanreg.exe tamcuando detectaba daos.[31] Windows XP y Windows
bin puede ejecutarse desde MS-DOS.
Server 2003 no guardan un subrbol System.alt porque
El CD-ROM de Windows 95 inclua una Utilidad de
NTLDR en esas versiones de Windows puede procesar el
recuperacin de emergencia (ERU.exe) y una Hearchivo System.log para actualizar un subrbol de sisterramienta de copia de seguridad de conguracin
ma que se ha vuelto incloherente durante un apagado o
(Cfgback.exe) para hacer copia de seguridad del reun bloqueo. Adems, la carpeta %SystemRoot%\Repair
gistro y restaurarlo. Adicionalmente, Windows 95
contiene una copia de los subrboles del registro del sistehace copia de seguridad de los archivos system.da0
ma que se crearon despus de la instalacin y del primer
y user.da0 en cada arranque correcto.
inicio correcto de Windows.

4.2

Windows 95, 98, y Me

Los archivos de registro estn almacenados en el directorio %WINDIR% con los nombres USER.DAT y SYSTEM.DAT aadindose a ellos CLASSES.DAT en Windows Me. Adems, cada perl de usuario (si estn activados los perles) tiene su propio archivo USER.DAT,
ubicado en el directorio del perl del usuario en %WINDIR%\Proles\<username>\.

4.3

Windows 3.11

Windows NT 4.0 inclua RDISK.EXE, una utilidad


para hacer copia de seguridad y restaurar todo el
registro.[32]
El kit de recursos de Windows 2000 contena un
par de utilidades sin soporte tcnico llamadas Regback.exe y RegRest.exe para hacer copias de seguridad y restaurar el registro[33]

6 Directivas
6.1 Directiva de grupo

El nico archivo de registro se llama REG.DAT y se al- Windows 2000 y las versiones posteriores de Windows
macena en el directorio %WINDIR%.
usan directivas de grupo para aplicar la conguracin del

9
registro. La directiva puede ser aplicada localmente a un funcin se pensara originalmente para aplicaciones de 16
nico equipo usando gpedit.msc, o a varios usuarios y bits.
equipos dentro de un dominio usando gpmc.msc.

6.2

Sistemas heredados

Con Windows 95, Windows 98, Windows Me y Windows


NT, los administradores pueden usar un archivo especial
y fusionarlo con el registro. Este archivo se llama archivo
de directiva (POLICY.POL). El archivo de directiva permite que los administradores impidan a los usuarios sin
privilegios de administrador cambiar las conguraciones
del registro, por ejemplo el nivel de seguridad de Internet
Explorer o el fondo de pantalla. El archivo de directiva
se usa principalmente en los negocios con un gran nmero de equipos, en los que el negocio necesita protegerse
de usuarios malintencionados o descuidados. La extensin predeterminada del archivo de directiva es .POL. El
archivo de directiva ltra las conguraciones que aplica
por usuario y por grupo (un grupo es un conjunto denido de usuarios). Para hacerlo, el archivo de directiva se
fusiona con el registro, impidiendo que los usuarios lo esquiven volviendo a cambiar la conguracin. El archivo
de directiva normalmente se distribuye a travs de una
red LAN, pero puede introducirse en un equipo local.
El archivo de directiva est creado por una herramienta gratuita de Microsoft denominada poledit.exe, vlida
para Windows 95/Windows 98, y con un mdulo de administracin del equipo para sistemas basados en NT. El
editor necesita permisos de administrador para ejecutarse en los sistemas que usan permisos. El editor tambin
puede cambiar directamente la conguracin actual del
registro del equipo local y, si el servicio de registro remoto est instalado e iniciado en otro equipo, tambin puede
cambiar el registro de ese equipo. El editor de directivas
carga la conguracin que puede cambiar desde archivos
.ADM, uno de los cuales est incluido, que contienen la
conguracin que proporciona el shell de Windows. El
archivo .ADM es de texto sin formato y admite fcil localizacin, al permitir que todas las cadenas se almacenen
en un lugar.

8 Virtualizacin del registro


Windows Vista ha introducido una virtualizacin del registro limitada, por lo que las aplicaciones escritas incorrectamente que no respetan el principio del privilegio
mnimo y en su lugar tratan de escribir datos de usuario en una ubicacin de slo lectura (como el subrbol
HKEY_LOCAL_MACHINE), pueden ser redireccionadas a una ubicacin ms adecuada sin cambiar dicha aplicacin. La operacin es transparente para la aplicacin,
ya que sta no sabe que sus operaciones de registro se han
dirigido a otro lugar.
Anlogamente, la virtualizacin de la aplicacin redirige todas las operaciones de registro de una aplicacin a
una ubicacin distinta al registro, como puede ser un archivo. Utilizado junto con la virtualizacin del archivo,
este enfoque permite que las aplicaciones se ejecuten sin
instalarlas en el equipo de la ubicacin.
Los procesos de baja integridad tambin pueden utilizar
la virtualizacin del registro. Por ejemplo, cuando Internet Explorer 7 y 8 funcionan en modo protegido en
Windows Vista y superiores, automticamente redirigir
la escritura del registro por parte de controles ActiveX a
una ubicacin en un espacio aislado (sandbox), para frustrar algunos tipos de vulnerabilidades de seguridad.
Por ltimo, el Kit de herramientas de compatibilidad
de aplicaciones proporciona correcciones de compatibilidad (shims) que pueden redirigir de forma
transparente operaciones HKEY_LOCAL_MACHINE
o
HKEY_CLASSES_ROOT
del
registro
a
HKEY_CURRENT_USER para abordar errores
LUA que causan que las aplicaciones no funcionen
para usuarios limitados.

9 Equivalencias en otros sistemas


operativos

Virtualizacin de archivos.INI

Los ncleos de Windows NT admiten el redireccionamiento de las API relacionadas con archivos INI a
un archivo virtual en una ubicacin de registro como
HKEY_CURRENT_USER utilizando una funcin llamada InileMapping.[34] Esta funcionalidad fue introducida para permitir que las aplicaciones antiguas escritas para versiones de Windows de 16 bits funcionaran en
plataformas Windows NT, en las cuales la carpeta Sistema ya no est considerada como una ubicacin adecuada
para datos o conguraciones especcas de un usuario.
Las aplicaciones de 32 bits no compatibles tambin pueden ser redireccionadas de esta forma, incluso aunque la

A diferencia del modelo de base de datos binario del registro de Windows, algunos sistemas operativos usan archivos separados de texto sin formato para el proceso
daemon y la conguracin de la aplicacin, pero agrupan
estas conguraciones para facilitar su administracin.
En los sistemas operativos de tipo Unix como Linux, que siguen el estndar de jerarqua del sistema
de archivos, los archivos de conguracin de todo
el sistema (una informacin similar a la que aparecera en HKEY_LOCAL_MACHINE en Windows) se almacenan tradicionalmente en archivos
en /etc/ y sus subdirectorios, o algunas veces en

10

10
/usr/local/etc. La informacin por usuario (informacin que sera aproximadamente equivalente a la
de HKEY_CURRENT_USER) se almacena en directorios y archivos ocultos (que comienzan con un
punto) dentro del directorio de inicio del usuario.
Sin embargo, las aplicaciones compatibles con XDG
deben referirse a las variables de entorno denidas
en la especicacin del directorio base.[35]

Las aplicaciones que funcionan en el sistema operativo Mac OS X de Apple Inc. normalmente almacenan las conguraciones en archivos lista de propiedades que generalmente se almacenan en la carpeta
Biblioteca de cada usuario.
RISC OS usa directorios para los datos de conguracin, lo que permite copiar las aplicaciones en directorios de aplicaciones, a diferencia del proceso
de instalacin separado tpico de las aplicaciones de
Windows; este enfoque tambin se usa en el ROX
Desktop para Linux.[36] Esta conguracin basada
en directorios tambin permite usar diferentes versiones de la misma aplicacin, ya que la conguracin se hace sobre la marcha.[37][38] Si se desea eliminar la aplicacin, es posible borrar simplemente
la carpeta perteneciente a la aplicacin. A menudo
esta accin no eliminar los ajustes de conguracin
que se almacenan separados de la aplicacin, normalmente dentro de la estructura !Boot del equipo,
en !Boot.Choices, o puede que en cualquier lugar de
un servidor de la red. Cuando se est ejecutando el
SO RISC, se pueden copiar programas entre equipos copiando los directorios de las aplicaciones pertenecientes a dichos programas. Sin embargo, algunos programas pueden requerir su reinstalacin, por
ejemplo cuando los archivos compartidos estn ubicados fuera del directorio de una aplicacin.[39][40]
IBM AIX (una variante de Unix) usa un componente
de registro llamado Object Data Manager (ODM).
El ODM se usa para almacenar informacin de la
conguracin del sistema y de los dispositivos. Un
amplio conjunto de herramientas y utilidades proporcionan a los usuarios los medios para ampliar,
comprobar y corregir la base de datos ODM. El
ODM almacena su informacin en varios archivos;
la ubicacin predeterminada es /etc/objrepos.
El entorno de escritorio GNOME usa una interfaz
parecida a un registro denominada GConf, para almacenar los ajustes de conguracin del escritorio y
de las aplicaciones. Sin embargo, en GConf todas las
conguraciones de aplicaciones se almacenan en archivos independientes; de este modo se elimina parcialmente el punto nico de fallo.
La Iniciativa Elektra proporciona un back-end alternativo para los archivos de texto de conguracin
del sistema operativo Linux, parecido al registro.

REFERENCIAS

Aunque no es un sistema operativo, la capa de


compatibilidad Wine, que permite que el software de Windows funcione en un sistema de tipo
Unix, tambin emplea un registro del mismo tipo que el registro de Windows, a modo de archivos de texto, en la carpeta WINEPREFIX: system.reg (HKEY_LOCAL_MACHINE), user.reg
(HKEY_CURRENT_USER) y userdef.reg.[41]

10 Referencias
[1] Windows 2000 Registry: Latest Features and APIs Provide the Power to Customize and Extend Your Apps.
Consultado el 19 de julio de 2007.
[2] The System Registry.
[3] Windows 95 Architecture Components. Microsoft.
http://www.microsoft.com/technet/archive/win95/
rk31_arc.mspx?mfr=true. Retrieved 2008-04-29. The
following table shows other diculties or limitations
caused by using INI les that are overcome by using the
Registry.
[4] Raymond Chen, Why do registry keys have a default value?"
[5] Registry hives. Consultado el 19 de julio de 2007.
[6] Chen, Raymond (8 de agosto de 2011). Why is a registry
le called a hive"?. The Old New Thing. Consultado el
29 de julio de 2011.
[7] Designed for Windows XP Application Specication.
Microsoft. 20 de agosto de 2002. Archivado desde el original el 28 de noviembre de 2015. Consultado el 8 de abril
de 2009.
[8] HKEY_LOCAL_MACHINE. Microsoft. 2009. Consultado el 8 de abril de 2009.
[9] http://msdn.microsoft.com/en-us/library/aa384253(v=
vs.85).aspx
[10] Description of the Microsoft Windows registry. Consultado el 25 de septiembre de 2008.
[11] Description of the Microsoft Windows registry. Consultado el 25 de septiembre de 2008.
[12] Description of the HKEY_DYN_DATA Registry Key in
Windows 95, Windows 98, and Windows 98 SE
[13] A Closer Look at HKEY_DYN_DATA
[14] registry-repair-tools.net. Consultado el Registry Repair
Tools Reviews.
[15] Incorrect Icons Displayed for .ico Files. 15 de noviembre de 2006. Consultado el 31 March, 2012.
[16] Using Registry Editor in Real Mode
[17] Using Registry Editor in Real Mode

11

[18] Microsofts Windows 2000 Security Hardening Guide version 1.3, published May 15, 2003
[19] Oine Registry Editor user manual/doc
[20] How to add, modify, or delete registry subkeys and values
by using a registration entries (.reg) le
[21] Reading and Writing Registry Values with Visual Basic.
Consultado el 19 de julio de 2007.
[22] REG command in Windows XP. Consultado el 19 de
julio de 2007.
[23] DllInstall Function. Microsoft. 7 de marzo de 2012.
Consultado el 22 de marzo de 2012.
[24] Regsvr32. Microsoft. Consultado el 22 de marzo de
2012.
[25] How to: Register Automation Servers. Microsoft. Consultado el 22 de marzo de 2012.
[26] How to re-register PowerPoint 2000, PowerPoint 2003,
PowerPoint 2007 and PowerPoint 2010. Microsoft.
enero de 2012. Consultado el 22 de marzo de 2012.
[27] RegNotifyChangeKeyValue function. Microsoft.
[28] Registering for Notications. Microsoft.
[29] How to Manage Remote Access to the Registry. Microsoft.
[30] Overview of the Windows NT Registry. Consultado el
2 de diciembre de 2011.
[31] Inside the Registry. Consultado el 28 de diciembre de
2007.
[32] How To Backup, Edit, and Restore the Registry in Windows NT 4.0
[33] Technical Reference to the Registry: Related Resources. Microsoft. Consultado el 9 de septiembre de 2011.
[34] Chapter 26 - Initialization Files and the Registry.
Microsoft. Consultado el 3 de marzo de 2008.
[35] XDG Base Directory Specication.
[36] Application directories. Archivado desde el original el
28 de noviembre de 2015. Consultado el 17 de mayo de
2012.
[37] RISC OS tour. Consultado el 19 de julio de 2007.
[38] The RISC OS Products Directory. 2 de noviembre de
2006. Consultado el 1 April, 2012.
[39] RISC OS tour. Consultado el 19 de julio de 2007.
[40] The RISC OS Products Directory. 2 de noviembre de
2006. Consultado el 1 April, 2012.
[41] 3.2. Using the Registry and Regedit (Wine User Guide)

11

Enlaces externos

Windows Registry info & reference en la biblioteca


de MSDN

12

12 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

12
12.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Registro de Windows Fuente: https://es.wikipedia.org/wiki/Registro_de_Windows?oldid=92553369 Colaboradores: Robbot, Dodo,


Murphy era un optimista, WingMaster, Jcb, Xirick, BOT-Superzerocool, BOTijo, Icvav, GermanX, Ferbr1, KnightRider, Eskimbot,
CEM-bot, -jem-, Retama, JPerez45, Montgomery, Thijs!bot, Mahadeva, Yeza, RoyFocker, TuvicBot, JAnDbot, Miguelo on the road,
Humberto, Ale ashero, Rei-bot, Biasoli, Cinevoro, Technopat, BotMultichill, SieBot, Mushii, PaintBot, Pyabo~eswiki, El bot de la dieta,
Tirithel, HUB, PixelBot, UA31, AVBOT, David0811, LucienBOT, MastiBot, NicolasAlejandro, Diegusjaimes, Luckas-bot, Ptbotgourou,
DiegoFb, ArthurBot, Lcpousa, SuperBraulio13, Gsobrevilla, Manuelt15, Xqbot, Jkbw, Rubinbot, Andrestand, MondalorBot, Gabo arg,
Kizar, Born2bgratis, HMC.Puebla, Leugim1972, TorQue Astur, PatruBOT, TjBot, Nachosan, WikiAnthony, EmausBot, AVIADOR, Grillitus, Guerrero4, Kasirbot, KLBot2, AvicBot, Deivis, Sebrev, Invadibot, Pablot2007, Gesifred, Sfssj, Tximitx, Lord of Night99, Jr JL,
Elvisor, Moorjev, Makecat-bot, Matangaweb, Jarould, Jerloc y Annimos: 111

12.2

Imgenes

12.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

UNIVERSIDAD DE CASTILLA-LA MANCHA


ESCUELA SUPERIOR DE INFORMTICA

Modelos Avanzados de Bases de Datos.


Funcionalidad 1

Bases de datos Orientadas a Objetos y


Bases de Datos Objeto-Relacionales

Alejandro Alberca Manzaneque


Jess Galvez Daz-Tendero

Modelos Avanzados de Bases de Datos

Funcionalidad 1

ndice
Parte Bases de datos orientadas a objetos:

1.- Introduccin

2.- Conceptos relacionados con las bases de datos orientadas a objetos

3.- Origen de las Bases de Datos Orientadas a Objetos

4.- Caractersticas de las Bases de Datos Orientadas a Objetos y diferencias de

stas con respecto a las relacionales


5.- Manifiesto Malcolm Atkinson: caractersticas de un BDOO

6.- Ventajas e inconvenientes de las BDOO

7.- ODMG: el estndar de facto para modelos de objetos

Parte Bases de datos objeto-relacionales:

1.- Introduccin a las Bases de datos Objeto-Relacionales

10

2.- Caractersticas de las Bases de datos Objeto-Relacionales

10

3.- Tipos de Datos definidos por el Usuario

11

4.- Herencia de tipos

13

5.- POSTGRES

14

6.- SQL 99

14

Modelos Avanzados de Bases de Datos

Funcionalidad 1

1.- Introduccin
Las bases de datos orientadas a objetos (BDOO) son aquellas cuyo modelo de datos est
orientado a objetos y almacenan y recuperan objetos en los que se almacena estado y
comportamiento. Su origen se debe a que en los modelos clsicos de datos existen problemas para
representar cierta informacin, puesto que aunque permiten representar gran cantidad de datos, las
operaciones que se pueden realizar con ellos son bastante simples.
Las clases utilizadas en un determinado lenguaje de programacin orientado a objetos son
las mismas clases que sern utilizadas en una BDOO; de tal manera, que no es necesaria una
transformacin del modelo de objetos para ser utilizado por un SGBDOO. De forma contraria, el
modelo relacional requiere abstraerse lo suficiente como para adaptar los objetos del mundo real a
tablas.
Las bases de datos orientadas a objetos surgen para evitar los problemas que surgen al
tratar de representar cierta informacin, aprovechar las ventajas del paradigma orientado a objetos
en el campo de las bases de datos y para evitar transformaciones entre modelos de datos (usar el
mismo modelo de objetos).

2.- Conceptos relacionados con las bases de datos orientadas a objetos


En este apartado se explican los conceptos relacionados con las BDOO:
Base de datos orientada a objetos (BDOO): una coleccin persistente y compatible de
objetos definida por un modelo de datos orientado a objetos.
Modelo de datos orientado a objetos: Un modelo de datos que captura la semntica de
los objetos soportados en la programacin orientada a objetos.
Sistema Gestor de Bases de Datos Orientadas a Objetos (SGBDOO): El gestor de una
base de datos orientada a objetos.

3.- Origen de las Bases de Datos Orientadas a Objetos


El origen de las BDOO se encuentra bsicamente en las siguientes razones:
la existencia de problemas para representar cierta informacin y modelar ciertos aspectos
del mundo real, puesto que los modelos clsicos permiten representar gran cantidad de
datos, pero las operaciones y representaciones que se pueden realizar sobre ellos son
bastante simples.

Modelos Avanzados de Bases de Datos

Funcionalidad 1

El paso del modelo de objetos al modelo relacional genera dificultades que en el caso de
las BDOO no surgen ya que el modelo es el mismo.
Por lo tanto, las bases de datos orientadas a objetos surgen bsicamente para tratar de paliar
las deficiencias de los modelos anteriores y para proporcionar eficiencia y sencillez a las
aplicaciones.
Las debilidades y limitaciones de los SGBDR son:
Pobre representacin de las entidades del mundo real.
Sobrecarga y poca riqueza semnticas.
Soporte inadecuado para las restricciones de integridad y empresariales
Estructura de datos homognea
Operaciones limitadas
Dificultades para gestionar las consultas recursivas
Desadaptacin de impedancias
Problemas asociados a la concurrencia, cambios en los esquemas y el inadecuado acceso
navegacional.
No ofrecen soporte para tipos definidos por el usuario (slo dominios)
Mientras que las necesidades de las aplicaciones actuales con respecto a las bases de datos son:
Soporte para objetos complejos y datos multimedia
Identificadores nicos
Soporte a referencias e interrelaciones
Manipulacin navegacional y de conjunto de registros
Jerarquas de objetos o tipos y herencia
Integracin de los datos con sus procedimientos asociados
Modelos extensibles mediante tipos de datos definidos por el usuario
Gestin de versiones
Facilidades de evolucin
Transacciones de larga duracin
Interconexin e interoperabilidad

Modelos Avanzados de Bases de Datos

Funcionalidad 1

Debido a las limitaciones anteriormente expuestas, el uso de BDOO es ms ventajoso si se


presenta en alguno de los siguientes escenarios:
Un gran nmero de tipos de datos diferentes
Un gran nmero de relaciones entre los objetos
Objetos con comportamientos complejos
Se puede encontrar este tipo de complejidad acerca de tipos de datos, relaciones entre
objetos y comportamiento de los objetos principalmente en aplicaciones de ingeniera,
manufacturacin, simulaciones, automatizacin de oficina y en numerosos sistemas de
informacin. No obstante, las BDOO no estn restringidas a estas reas. Ya que al ofrecer la misma
funcionalidad que su precursoras relacionales, el resto de campos de aplicacin tiene la posibilidad
de aprovechar completamente la potencia que las BDOO ofrecen para modelar situaciones del
mundo real.

4.- Caractersticas de las Bases de Datos Orientadas a Objetos y


diferencias de stas con respecto a las relacionales.
Mientras que en una BDR los datos a almacenar se almacenan representados en tablas en
un BDOO los datos se almacenan como objetos. Un objeto en BDOO como en POO es una entidad
identificable unvocamente que describe tanto el estado como el comportamiento de una entidad
del mundo real. El estado de un objeto es descrito mediante atributos mientras que su
comportamiento es definido mediante mtodos.
Los caractersticas asociadas a las BDOO son:
Objetos: cada entidad del mundo real se modela como un objeto.
La forma de identificar objetos es mediante un identificador de objetos (OID, Object
Identifier), nico para cada objeto. Generalmente este identificador no es accesible ni
modificable para el usuario (modo de aumentar la integridad de entidades y la integridad
referencial). Los OID son independientes del contenido. Es decir, si un objeto cambia los
valores de atributos, sigue siendo el mismo objeto con el mismo OID. Si dos objetos tienen
el mismo estado pero diferentes OID, son equivalentes pero tienen identidades diferentes.
Encapsulamiento: cada objeto contiene y define procedimientos (mtodos) y la interfaz
mediante la cual se puede acceder a l y otros objetos pueden manipularlo. La mayora de
los SGBDOO permite el acceso directo a los atributos incluyendo operaciones definidas
por el propio SGBDOO las cuales leen y modifican los atributos para evitar que el usuario

Modelos Avanzados de Bases de Datos

Funcionalidad 1

tenga que implementar una cantidad considerable de mtodos cuyo nico propsito sea el
de leer y escribir los atributos de un objeto. Generalmente, los SGBDOO permiten al
usuario especificar qu atributos y mtodos son visibles en la interfaz del objeto y pueden
invocarse desde afuera.
Otros conceptos utilizados de la misma manera que en la POO son:
o

Clases

Herencia simple, mltiple y repetida.

Polimorfismo de operacin, de inclusin y paramtrico; ligadura tarda (late


binding); sobrecarga (overloading) y suplantacin o anulacin (overriding).

Objetos complejos

5.- Manifiesto Malcolm Atkinson: caractersticas de un BDOO


En 1989 se hizo el Manifiesto de los sistemas de base de datos orientados a objetos el cual
propuso trece caractersticas obligatorias para un SGBDOO y cuatro opcionales. Las trece
caractersticas obligatorias estaban basadas en dos criterios: deba tratarse de un sistema orientado a
objetos y un SGBD.
Caractersticas obligatorias de orientacin a objetos:
1) Deben soportarse objetos complejos
2) Deben soportarse mecanismos de identidad de los objetos
3) Debe soportarse la encapsulacin
4) Deben soportarse los tipos o clases
5) Los tipos o clases deben ser capaces de heredar de sus ancestros
6) Debe soportarse el enlace dinmico
7) El DML debe ser computacionalmente complejo
8) El conjunto de todos los tipos de datos debe ser ampliable
Caractersticas obligatorias de SGBD:
9) Debe proporcionarse persistencia a los datos
10) El SGBD debe ser capaz de gestionar bases de datos de muy gran tamao
11) El SGBD debe soportar a usuarios concurrentes
12) El SGBD debe ser capaz de recuperarse de fallos hardware y software
13) El SGBD debe proporcionar una forma simple de consultar los datos.

Modelos Avanzados de Bases de Datos

Funcionalidad 1

Caractersticas opcionales:
1) Herencia mltiple
2) Comprobacin de tipos e inferencia de tipos
3) Sistema de base de datos distribuido
4) Soporte de versiones

6.- Ventajas e inconvenientes de las BDOO


Aunque los SGBDOO pueden proporcionar soluciones apropiadas para muchos tipos de
aplicaciones avanzadas de bases de datos, tambin tienen sus desventajas.
Las ventajas de un SGBDOO son:
Mayor capacidad de modelado. El modelado de datos orientado a objetos permite
modelar el mundo real de una manera mucho ms fiel. Esto se debe a:
o

un objeto permite encapsular tanto un estado como un comportamiento

un objeto puede almacenar todas las relaciones que tenga con otros objetos

los objetos pueden agruparse para formar objetos complejos (herencia).

Ampliabilidad. Esto se debe a:


o

Se pueden construir nuevos tipos de datos a partir de los ya existentes.

Agrupacin de propiedades comunes de diversas clases e incluirlas en una


superclase, lo que reduce la redundancia.

Reusabilidad de clases, lo que repercute en una mayor facilidad de mantenimiento


y un menor tiempo de desarrollo.

Lenguaje de consulta ms expresivo. El acceso navegacional desde un objeto al siguiente


es la forma ms comn de acceso a datos en un SGBDOO. Mientras que SQL utiliza el
acceso asociativo. El acceso navegacional es ms adecuado para gestionar operaciones
como los despieces, consultas recursivas, etc.
Adecuacin a las aplicaciones avanzadas de base de datos. Hay muchas reas en las que
los SGBD tradicionales no han tenido excesivo xito como el CAD, CASE, OIS, sistemas
multimedia, etc. en los que las capacidades de modelado de los SGBDOO han hecho que
esos sistemas s resulten efectivos para este tipo de aplicaciones.
Mayores prestaciones. Los SGBDOO proporcionan mejoras significativas de rendimiento
con respecto a los SGBD relacionales. Aunque hay autores que han argumentado que los
bancos de prueba usados estn dirigidos a aplicaciones de ingeniera donde los SGBDOO
son ms adecuados. Tambin est demostrado que los SGBDR tienen un rendimiento

Modelos Avanzados de Bases de Datos

Funcionalidad 1

mejor que los SGBDOO en las aplicaciones tradicionales de bases de datos como el
procesamiento de transacciones en lnea (OLTP).
Los inconvenientes de un SGBDOO son:
Carencia de un modelo de datos universal. No hay ningn modelo de datos que est
universalmente aceptado para los SGBDOO y la mayora de los modelos carecen una base
terica.
Carencia de experiencia. Todava no se dispone del nivel de experiencia del que se
dispone para los sistemas tradicionales.
Carencia de estndares. Existe una carencia de estndares general para los SGBDOO.
Competencia. Con respecto a los SGBDR y los SGBDOR. Estos productos tienen una
experiencia de uso considerable. SQL es un estndar aprobado y ODBC es un estndar de
facto. Adems, el modelo relacional tiene una slida base terica y los productos
relacionales disponen de muchas herramientas de soporte que sirven tanto para
desarrolladores como para usuarios finales.
La optimizacin de consultas compromete la encapsulacion. La optimizacin de
consultas requiere una compresin de la implementacin de los objetos, para poder acceder
a la base de datos de manera eficiente. Sin embargo, esto compromete el concepto de
encapsulacin.
El modelo de objetos an no tiene una teora matemtica coherente que le sirva de base.

7.- ODMG: el estndar de facto para modelos de objetos


ODMG es un grupo de representantes de la industria de bases de datos el cual fue
concebido en el verano de 1991 con el objetivo de definir estndares para los SGBDOO. Uno de
sus estndares, el cual lleva el mismo nombre del grupo (ODMG), es el del modelo para la
semntica de los objetos de una base de datos. El modelo de objetos ODMG es un superconjunto
del modelo de objetos de OMG, que permite portar tanto los diseos como las implementaciones
entre diversos sistemas compatibles.
La ltima versin del estndar,

ODMG 3.0, propone los siguientes componentes

principales de la arquitectura ODMG para un SGBDOO:


Modelo de objetos
Lenguaje de definicin de objetos (ODL, Object Definition Language)
Lenguaje de consulta de objetos (OQL, Object Query Language)
Conexin con los lenguajes C++, Smalltalk y Java (al menos)

Modelos Avanzados de Bases de Datos

Funcionalidad 1

El modelo de objetos ODMG permite que tanto los diseos como las implementaciones,
sean portables entre los sistemas que lo soportan.
ODL es un lenguaje para definir la especificacin de los tipos de objetos para sistemas
compatibles con ODMG. ODL es el equivalente de DDL (Data Definition Languaje o lenguaje de
definicin de datos) de los SGBD tradicionales. Define los atributos y las relaciones entre tipos y
especifica la signatura de las operaciones. Su principal objetivo es el de facilitar la portabilidad de
los esquemas entre sistemas compatibles al mismo tiempo que proporciona interoperabilidad entre
distintos SGBD. La sintaxis de ODL extiende el lenguaje de definicin de interfaces (IDL) de la
arquitectura CORBA (Common Object Request Broker Architecture).
OQL es un lenguaje declarativo del tipo de SQL que permite realizar consultas sobre bases
de datos orientadas a objetos, incluyendo primitivas de alto nivel para conjuntos de objetos y
estructuras. Est basado en SQL-92, proporcionando un superconjunto de la sentencia SELECT.
OQL no posee primitivas para modificar el estado de los objetos, ya que stas se deben realizar a
travs de los mtodos que dichos objetos poseen. La sintaxis bsica de OQL es una estructura
SELECT...FROM...WHERE..., como en SQL.

You might also like