Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
,
r
e rodL!Jcci
a la el n e I a de la
a la el de la
,
d~ L<1 M<1NipuL<1ciN d~ d<1to!
<1 L<1 t~ori<1 d~ L<1 cOMput<1ciN
Diseado pora el curso introductorio a lo ciencia de la computacin, este libro tiene como objetivo
c \'-' (i] eI
cubrir lo que lodo estudiante de ingeniera e informtica necesito saber antes de pasor a cursos
ms especializados. El au lor desarrolla el texto e n cinco porles: Computadoras y da los, de LCl MClNit:>uLClciN de dCltoJ
Hardware, Software, Organizacin de dotos y Temas avanzados {compresin de dolos,
LCl teo~Cl de LCl COMt:>utClc i N
seguridad y teora de la computacin}, o fin de abordar, uno a uno, los principales lemas bsicos.
Adems de lo anterior, esta obro presento los siguientes caroctersticos:
Behrouz A. Forouzan
De Anza College
con colaboracin de
Sophia Chung Fegan
THOMSON
.-
Australia Brasil. Canad. Espaa. Estados Unidos. Mxico. Reino Unido. Singapur
THOIVISON
...
Introduccin a la ciencia de la computacin
De la manipulacin de datos a la teora de la computacin
Behorouz A. Forouzan
Divisin Iberoamericana
El Caribe: Espaa:
Thomson Learning Thomson Learning
598 Aldebarn Calle Magallanes nm. 25
Altamira San Juan, 28015 Madrid, Espaa
Puerto Rico Tel34 (0)91 4463350
Tel (787) 641 1112 Fax 34 (0)914456218
Fax (787) 641 11 19 clientes@paraninfo.es
Ihomson@coqui.net
Cono Sur:
Tel/Fax (54114) 582 26 84
Buenos Aires, Argentina Esta obra se termin de imprimir en el 2003
sdeluque@thomsonlearning.com.ar en los talleres de Grupo GEO Impresores S.A. de C.v.
enido
v
.. Contenido Contenido ..
7
al Contenido
F.2 Transformacin inversa 359
Apndice G Acrnimos
Glosario 361
360
elo
ndice 377
Las ciencias de la computacin son una disciplina joven que est evolucionando y pro-
gresando. Las redes de computadoras han conectado a personas desde lugares remotos
del mnndo. La realidad virtual est creando imgenes tridimensionales que sorprenden
a la vista. La exploracin espacial debe parte de su xito a las computadoras. Los efectos
especiales creados por computadora han cambiado la industria del cine. Y las computa-
doras han jugado papeles importantes en la gentica.
xix
.. Prefacio Prefacio ..
Captulo 2: Representacin de datos Captulo 8: Algoritmos En este captulo, estudiamos los algoritmos, los cuales juegan un
Computadoras y datos
Captulo 3: Representacin de nmeros papel tan importante en las ciencias de la computacin que algunas personas creen que cien-
Captulo 4: Operaciones de bits cias de la computacin significa el estudio de los algoritmos. Definimos el concepto de algo-
ritmos y usamos algunas herramientas para representar algoritmos. Una discusin completa
Captulo 5: Organizacin de la computadora
Hardware de computadora de estas herramientas se presenta en los apndices e, D y E.
Captulo 6: Redes de computadoras
Organizacin de datos Captulo 12: Tipos de datos abstractos Parte IV: En la parte IV, estudiamos nuevamente los datos, pero desde el punto de vista del usuario.
Figura 1'.1 Esquema del libro Captulo 12: Tipos de datos abstractos En este captulo analizamos los tipos de datos
abstractos (ADT). En el procesamiento de datos, se necesita definir a los datos como un pa-
Parte 1: En la parte 1 estudiarnos una computadora y los datos que sta procesa. Esta parte contiene quete incluyendo las operaciones definidas para el paquete. Se describen listas, pilas, colas,
Computadoras cuatro captulos. rboles y grficas de tal manera que los estudiantes piensen en los datos en abstracto.
y datos Captulo 1: Introduccin En este captulo se considera a la computadora como una enti- Captulo 13: Estructuras de archivos En este captulo analizamos las estructuras de ar-
dad procesadora de datos. Presentamos el concepto de von Neumann y analizarnos los com- chivos. Mostramos cmo los archivos se organizan lgicamente y analizamos los archivos de
ponentes generales de una computadora. Posponemos el anlisis detallado de los acceso secuencial y de acceso aleatorio. Un estudiante necesita conocer estos conceptos an-
componentes de computadoras hasta el captulo 5. tes de tomar un primer curso en programacin.
Captulo 2: Representacin de datos En este captulo, estudiamos la representacin de Captulo 14: Bases de datos Este captulo analiza las bases de datos. Los archivos en una
texto, imgenes, audio y video como patrones de bits. La representacin de nmeros se pos- organizacin rara vez se almacenan por separado y de manera aislada. Con frecuencia, stos
pone hasta el captulo 3. se organizan en una entidad llamada base de datos. Presentamos la base de datos relacional
y mencionamos un lenguaje (SQL) que puede recuperar informacin de este tipo de base de
Captulo 3: Representacin de nmeros En este captulo presentamos la representacin
datos.
de nmeros. Mostramos cmo los enteros y los nmeros de punto flotante se almacenan en
una computadora.
Parte V: Temas En esta parte analizamos tres temas avanzados que estn ganando importancia en las ciencias
Captulo 4: Operaciones de bits En este captulo, estudiarnos la manipulacin de patro- avanzados de la computacin, compresin de datos, seguridad y la teora de la computacin. Estos te-
nes de bits, tanto aritmticos como lgicos. mas pueden omitirse si el tiempo es un factor importante o si los estudiantes no tienen una
formacin previa.
Parte 11: Hardware En la parte n, estudiarnos el hardware de computadora. Esta parte se divide en dos captulos.
de computadora Captulo 15: Compresin de datos En este captulo presentamos dos categoras de com-
Captulo 5: Organizacin de la computadora En este captulo, consideramos a la compu- presin de datos: sin prdida y con prdida. Analizamos la codificacin de longitud de ejecu-
tadora como una mquina independiente. Describimos las partes del hardware de computa- cin, la codificacin Huffman y el algoritmo de Lempel Ziv como ejemplos de compresin
dora y cmo funcionan. sin prdida. Analizamos JPEG y NIPEG corno ejemplos de compresin con prdida.
Prefacio ~
.. Prefacio
Siempre que se considera apropiado, se usan ejemplos para demostrar el concepto y el mo- nologa de New Jersey.
Ejemplos Damos las gracias tambin a nuestro editor, Hill Stenquist; a la editora de adquisiciones,
delo matemtico. Kallie Swanson; a la asistente editorial, Carla Vera, y al editor de produccin, Kesley McGee.
Tambin deseamos agradecer a Merrill Peterson de Matriz Productions, al corrector Frank
El material al final de cada captulo contiene tres partes: trminos clave, resumen y prctica. Rubert y a la lectora de pruebas Amy Dorr.
Material de fin
Por ltimo, y obviamente no lo menos importante, est el agradecimiento al apoyo reci-
de captulo bido por parte de nuestras familias y amigos. Hace muchos aos un autor defini el proceso
Trminos clave Los trminos clave proporcionan una lista de los trminos importantes
de escribir un texto como "encerrarse en un cuarto". Mientras los autores sufren a travs del
presentados en el captulo. Cada trmino clave se define en el glosario.
proceso de escritura, sus familias y amigos sufren a travs de su ausencia. Slo podemos es-
Resumen Los resmenes contienen una descripcin general concisa de todos los puntos perar que en cuanto vean el producto final, sientan que su sacrificio vali la pena.
clave del captulo. Se listaron con vietas para que sean ms fciles de leer.
Prctica Cada prctica se compone de tres partes: preguntas de repaso, preguntas de op-
cin mltiple y ejercicios.
111 Las preguntas de repaso evalan los puntos clave y conceptos generales del captulo.
111 Las preguntas de opcin mltiple estn diseadas para probar la comprensin de los
materiales.
111 Los ejercicios estn diseados para ver si los estudiantes pueden aplicar los conceptos y
las frmulas.
Se incluyen siete apndices para una referencia rpida a las tablas o materiales que se estu-
Apndices
dian en varios captulos. Los apndices son:
7
J:____________________________________________ ~~ ________________________ ~
1.1 la computadora como una caja negra ..
Puede pensar en una computadora como un procesador de datos. Usando esta definicin,
una computadora acta como una caja negra que acepta datos de entrada, procesa los datos
y crea datos de salida (figura 1.1). Aunque este modelo puede definir la funcionalidad de una
computadora hoy da, es demasiado general. Bajo este modelo, una calculadora de bolsillo
tambin es una computadora (lo cual es cierto, literalmente).
La frase ciencia de la computacin tiene un significado muy amplio en la actualidad. Sin Otro problema con este modelo es que no especifica el tipo de procesamiento o si es po-
embargo, en este libro la definimos como "temas relacionados con la computacin". Este ca- sible ms de un tipo de procesamiento. En otras palabras, no queda claro cuntos tipos de
ptulo introductorio primero trata de averiguar qu es la computadora y luego descubre otros conjuntos de operaciones puede realizar una mquina basada en este modelo. Se trata de
aspectos relacionados con las computadoras. Consideramos a la computadora como una ca- una mquina para propsito especfico o una mquina para propsito general?
ja negra y tratamos de adivinar su comportamiento. Luego tratamos de penetrar en esta caja Este modelo podra representar una computadora para propsito especfico (o procesa-
para dejar al descubierto lo que es comn a todas las computadoras. Esto nos lleva al mode- dor) que est diseada para realizar alguna tarea en especial como controlar la temperatura
lo de von Neumann, el cual es universalmente aceptado como la base de la computadora. En- de un edificio o controlar el uso de combustible en un automvil. Sin embargo, las compu-
seguida analizamos brevemente las repercusiones y los inconvenientes de aceptar el modelo tadoras, segn se usa el trmino en la actualidad, son mquinas de propsito general. Pue-
de Van Neumann. En este punto, nos referimos al captulo o los captulos del texto relaciona- den realizar muchos tipos distintos de tareas. Esto implica que necesitamos cambiar nuestro
dos con estos problemas. El captulo termina con una breve historia de este recurso cambian- modelo para reflejar las computadoras reales de hoy.
te de la cultura: la computadora.
PROCESADOR Un mejor modelo para una computadora de propsito general se muestra en la figura 1.2. Es-
DE DATOS ta figura aade un elemento extra a la computadora: el programa. Un programa es un con-
PROGRAMABLE junto de instrucciones que indican a la computadora qu hacer con los datos. En los
primeros das de las computadoras, las instrucciones se ejecutaban al cambiar el cableado o
apagar y encender una serie de interruptores. Actualmente, un programa es una serie de ins-
trucciones escritas en un lenguaje de computadora.
Programa
Datos Datos
de entrada de salida
-
.. Introduccin 1.2 El modelo de von Neumann ..
En el nuevo'modelo, los datos de salida dependen de la combinacin de dos factores: los Mismos datos Desde luego, usted espera el mismo resultado cada vez que tanto los datos de entrada como
datos de entrada y el programa. Con los mismos datos de entrada, usted puede generar dis- de entrada, el programa son los mismos. En otras palabras, cuando el mismo programa se ejecuta con
tintas salidas si cambia el programa. De manera similar, con el mismo programa, puede ge- mismo programa la misma entrada, usted espera la misma salida.
nerar diferentes salidas si cambia la entrada. Finalmente, si los datos de entrada y el programa
permanecen igual, la salida deber ser la misma. Veamos tres casos.
Mismo programa, La figura 1.3 muestra el mismo programa de ordenamiento con datos distintos. Aunque el 1.2 EL MODELO DE \ION NEUMANN
diferentes datos programa es el mismo, la salida es diferente porque se procesan distintos datos de entrada.
En la actualidad cada computadora se basa en el modelo de Von Neumann (que lleva el nom-
de entrada bre de John van Neumann). El modelo examina el interior de la computadora (la caja negra)
y define cmo se realiza el procesamiento. Se basa en tres ideas.
Programa CUATRO
SUBSISTEMAS El modelo define una computadora como cuatro subsistemas: memoria, unidad lgica arit-
mtica, unidad de control y entrada/salida (figura 1.5).
Programa
Computadora
'::,',r
14,6,8,12 ~fG()mputadOl'# .I----I~ 6, 8, 12, 14
Figura 1,3 Mismo programa, diferentes datos Datos Unidad lgica Datos
de aritmtica de
entrada salida
Mismos datos La figura 1.4 muestra los mismos datos de entrada con diferentes programas. Cada programa
de entrada,
diferentes
hace que la computadora realice distintas operaciones con los mismos datos de entrada. El
primer programa ordena los datos, el segundo suma los datos y el tercero encuentra el nme-
ro ms pequeo.
Unidad de contr6 I
programas
Figura 1,5 Modelo de von Neumann
Memoria La memoria es el rea de almacenamiento, donde los programas y los datos se almacenan
durante el procesamiento. Ms adelante en este captulo se analiza la razn de ser del alma-
3, 12, 8, 22 4----1~ 3,8,12,22 cenamiento de programas y datos.
'-----"
Programa Unidad lgica La unidad lgica aritmtica (ALU: arithmetic logic unit) es donde el clculo aritmtico y
aritmtica las operaciones lgicas toman lugar. Si una computadora es un procesador de datos, usted
debera poder realizar operaciones aritmticas con los datos (por ejemplo, sumar una lista de
nmeros). Tambin debera poder realizar operaciones lgicas con ellos (por ejemplo, en-
3, 12, 8, 22 - 1--- 45 contrar el menor de dos elementos de datos, como en el ejemplo de clasificacin previo).
Programa
Unidad de control La unidad de control determina las operaciones de la memoria, de la ALU y del subsiste-
ma de entrada/salida.
Entrada/Salida El subsistema de entrada acepta datos de entrada y el programa desde el exterior de la com-
3, 12, 8, 22 1--3 putadora; el subsistema de salida enva el resultado del procesamiento al exterior. La defini-
cin del subsistema de entrada/salida es muy amplia; tambin incluye los dispositivos de
almacenamiento secundarios como un disco o cinta que almacena datos y programas para
Figura 1.4 Mismos datos, diferentes programas
Introduccin 1.5 Software de computadora ..
procesamiento. Un disco se considera un dispositivo de salida cuando almacena los datos ORGANIZACiN Aun cuando los datos deben almacenarse slo en una fonna (un patrn binario) dentro de
que se obtienen como resultado del procesamiento y se considera un dispositivo de entrada DE DATOS una computadora, los datos fuera de una computadora pueden tomar muchas fonnas. Ade-
cuando usted lee datos del disco. ms, las computadoras (y la nocin del procesamiento de datos) han creado un nuevo cam-
po de estudio conocido como organizacin de datos. Puede usted organizar sus datos en
CONCEPTO El modelo de von Neumann establece que el programa debe almacenarse en la memoria. Es- diferentes entidades y formatos antes de ahnacenarlos dentro de una computadora? Hoy da,
DE PROGRAMA to es totalmente diferente de la arquitectura de las primeras computadoras en las cuales slo los datos no se tratan como una secuencia de informacin, sino que se organizan en unida-
ALMACENADO se almacenaban los datos en la memoria. El programa para una tarea se implementaba me- des pequeas, las cuales a su vez estn organizadas en unidades ms grandes, y as sucesi-
diante la manipulacin de una serie de interruptores o al cambiar el sistema de cableado. vamente. En los captulos 2 a 4, estudiaremos los datos desde este punto de vista.
La memoria de las computadoras modernas aloja tanto un programa como sus datos co-
rrespondientes. Esto implica que ambos, tanto los datos como el programa, deben tener el
mismo fonnato porque se ahnacenan en la memoria. De hecho, se guardan como patrones bi-
narios (una secuencia de ceros y unos) en la memoria.
1.5 SOfTWARE DE LA COMPUTADORA
EJECUCiN Un programa en el modelo de van Neumann se conforma de un nmero fmito de instruc-
La caracterstica principal del modelo de van Neumann es el concepto del programa ahnace-
SECUENCiAL ciones. En este modelo, la unidad de control trae una instruccin de la memoria, la interpre-
nado. Aunque las primeras computadoras no usaron este modelo, s usaron el concepto de pro-
DE INSTRUCCIONES ta y luego la ejecuta. En otras palabras, las instrucciones se ejecutan una. despus de otra.
gramas. La programacin de estas primeras computadoras implicaba cambiar los sistemas de
Desde luego, una instruccin puede requerir que la unidad de control salte a algunas instruc-
cableado o encender y apagar una serie de interruptores. La programacin era una tarea reali-
ciones previas o posteriores, pero esto no significa que las instrucciones no se ejecutan de
zada por un operador o ingeniero antes de que comenzara el procesamiento de los datos.
manera secuencial.
El modelo de van Neumann cambi el significado del trrrrino "programacin". En es-
te modelo, hay dos aspectos de la programacin que deben ser comprendidos.
LOS PROGRAMAS En el modelo de von Neumann, los programas se almacenan en la memoria de la computa-
1.3 HARDWARE DE LA COMPUTADORA DEBEN dora. No slo se necesita memoria para mantener los datos, sino que adems se requiere me-
ALMACENARSE moria para mantener el programa (figura 1.6).
Sin lugar a dudas, el modelo de van Neumann establece el estndar de los componentes
esenciales de una computadora. Una computadora fsica debe incluir los cuatro componen-
tes, a los que se hace referencia como hardware de la computadora, definidos por van Neu-
mann. Pero usted puede tener diferentes tipos de memoria, diferentes tipos de subsistemas
de entrada/salida, y as por el estilo. El hardware de la computadora se analiza con ms de-
talle en el captulo 5.
1.4 DATOS
Datos
Este modelo define claramente a una computadora como una mquina de procesamiento de
datos que acepta datos de entrada, los procesa y produce el resultado.
Memoria
ALMACENAMIENTO El modelo de van Neumann no define cmo deben ahnacenarse los datos en una computa-
DE DATOS dora. Si una computadora es un dispositivo electrnico, la mejor manera de almacenar los Figura 1.6 Programa y datos en memoria
datos es en fonna de seal elctrica, especficamente su presencia o ausencia. Esto implica
que una computadora puede ahnacenar datos en uno de dos estados.
Evidentemente, los datos que usted usa en la vida diaria no estn slo en uno de dos es- UNA SECUENCIA Otro requisito del modelo es que el programa debe ser una secuencia de instrucciones. Cada
tados. Por ejemplo, nuestro sistema de numeracin emplea dgitos que pueden estar en uno DE INSTRUCCIONES instruccin opera en una o ms piezas de datos. De esta manera cada instruccin puede cam-
de diez estados (O a 9). Este tipo de infonnacin no se puede (todava) almacenar en una biar el efecto de una instruccin previa. Por ejemplo, la figura 1.7 muestra un programa que
computadora. Necesita ser cambiada a otro sistema que use slo dos estados (O y 1). introduce dos nmeros, luego los suma e imprime el resultado. Este programa consiste de
Usted necesita adems procesar otros tipos de datos (texto, imgenes, audio, video). stos cuatro instrucciones individuales.
tampoco pueden almacenarse en una computadora directamente, sino que deben cambiarse a Una persona podra preguntar por qu un programa debe estar hecho de instrucciones. La
la forma apropiada (ceros y unos). respuesta es por su capacidad para usarse de nuevo. Actuahnente, las computadoras realizan
En los captulos 2 y 3, aprender cmo almacenar distintos tipos de datos como un pa- millones de tareas. Si el programa para cada tarea fuera una entidad independiente sin una
trn binario, una secuencia de ceros y unos. En el captulo 4, mostraremos la manera en que seccin comn con otros programas, la programacin sera difcil. El modelo de van Neu-
se manipulan los datos como un patrn binario, dentro de una computadora. mann facilita la programacin mediante una definicin cuidadosa de diferentes instruccio-
Introduccin 1.6 Historia ..
!II La primera computadora de propsito general totalmente electrnica fue fabricada por
John Mauchly y 1. Presper Eckert y recibi el nombre de ENIAC (Electronic Numeri- 1.1 TRMINOS CLAVE
cal Integrator and Calculator: Calculadora e integrador numrico electrnico). Se ter-
min en 1946. Utilizaba 18 000 tubos de vaco, meda 100 pies de largo por 10 pies de algoritmo instruccin programa
alto y pesaba 30 toneladas. caja negra lenguaje de computadora sistema operativo
ciencia de la comiJUtacin memoria software
Computadoras Las cinco computadoras precedentes utilizaron memoria slo para almacenar datos. Se pro- circuito integrado microcomputadora unidad de control
basadas gramaron externamente usando cables o interruptores. 10hn von Neumann propuso que el datos de entrada modelo de von Neumann unidad lgica aritmtica (ALU)
en el modelo programa y los datos deberan almacenarse en la memoria. De esa manera, cada vez que us- datos de salida procesador de datos
ted utilizara una computadora para realizar una tarea nueva, slo necesitara cambiar el pro- ingeniera de software procesador de datos programable
de von Neumann
grama en lugar de volver a conectar los cables de la mquina o encender y apagar cientos de
interruptores.
La primera computadora basada en la idea de von Neumann se construy en 1950 en la
Universidad de Pennsylvania y se llam EDVAC. Al mismo tiempo, Maurice Wilkes constru-
y una computadora similar llamada EDSAC en la Universidad de Cambridge en Inglaterra.
GENERACIONES DE Las computadoras construidas despus de 1950 siguieron, ms o menos, al modelo de von
1.8 RESUMEN
COMPUTADORAS Neumann. Las computadoras se han vuelto ms rpidas, ms pequeas y ms baratas, pero
el principio es casi el mismo. Los historiadores dividen este periodo en generaciones, con 111 Ciencia de la computacin, en este texto, se refiere a te- 111 El modelo de von Neumann especifica un subsistema
(1950-hoy da) mas relacionados con una computadora. de memoria, un subsistema de unidad lgica aritmtica,
cada generacin presenciando un cambio importante en el hardware o el software (pero no
en el modelo). un subsistema de unidad de control y un subsistema de
11 Una computadora es un procesador de datos programa-
entrada/salida.
ble que acepta datos de entrada y programas, y datos de
Primera La primera generacin (aproximadamente de 1950 a 1959) se caracteriza por la aparicin de
salida.
11 Los datos y los programas se almacenan en la memoria
generacin computadoras comerciales. Durante este periodo, las computadoras eran utilizadas slo por de la computadora.
profesionales. Estaban encerradas en habitaciones con acceso restringido nicamente al ope- 111 Un programa es una serie de instrucciones ejecutadas 11 Una solucin paso a paso para un problema se llama al-
rador o a especialistas en computacin. Las computadoras eran voluminosas y usaban tubos de manera secuencial que indican a la computadora qu goritmo.
de vaco como interruptores electrnicos. En esta poca las computadoras eran asequibles hacer con los datos.
l1li Un programa es escrito en un lenguaje de computadora.
slo para las grandes organizaciones.
l1li Actualmente todas las computadoras se basan en el mo- !II La ingeniera de software es el diseo y la escritura de
delo de von Neumann. programas de forma estructurada.
Segunda Las computadoras de la segunda generacin (aproximadamente de 1959 a 1965) utilizaban
generacin transistores en lugar de tubos de vaco. Esto redujo su tamao as como su costo y las puso al
alcance de las empresas medianas y pequeas. Dos lenguajes de programacin de alto nivel,
FOR1RAN y COBOL (vase el Cap. 9), se inventaron y facilitaron la programacin. Estos
dos lenguajes separaron la tarea de la programacin de la tarea de la operacin de la compu-
tadora. Un ingeniero civil poda escribir un programa en FORmAN para resolver un proble-
ma sin involucrarse en detalles electrnicos de la arquitectura de la computadora.
1.9 PRCTICA
Tercera La invencin del circuito integrado (transistores, cableado y otros componentes en un solo PREGUNTAS DE REPASO 9. Cul es la funcin del subsistema de entrada/salida en
1. Cmo se define a la ciencia de la computacin en este el modelo de von Neumann?
generacin chip) redujeron el costo y el tamao de las computadoras an ms. Las minicomputadoras apa-
recieron en el mercado. Los programas empaquetados, populannente conocidos como paque- libro? 10. Compare y contraste el contenido de la memoria de las
tes de software, se vol vieron disponibles. Una pequea empresa poda comprar un paquete que 2. Qu modelo es la base para las computadoras de hoy? primeras computadoras con el contenido de la memoria
necesitaba (por ejemplo, para contabilidad) en lugar de escribir su propio programa. Una nue- 3. Por qu no se debe llamar a una computadora un pro- de una computadora basada en el modelo de von Neu-
va industria naci, la industria del software. La generacin dur ms o menos de 1965 a 1975. cesador de datos? mann.
4. Qu requiere un procesador de datos programable pa- 11. De qu manera el modelo de von Neumann cambi el
Cuarta La cuarta generacin (aproximadamente de 1975 a 1985) vio nacer las microcomputado- ra producir datos de salida? concepto de la programacin?
generacin ras. Las primera calculadora de escritorio (Altair 8800) se volvi disponible en 1975. Los 5. Cules son los subsistemas del modelo de computado-
avances en la industria de la electrnica permitieron que subsistemas de computadoras com- ra von Neumann? PREGUNTAS DE OPCIN MLTIPLE
pletos cupieran en una sola tarjeta de circuito. Esta generacin tambin vio la aparicin de 6. Cul es la funcin del subsistema de memoria en el 12. El modelo _____ es la base para las computadoras
las redes de computadoras (Cap. 6). modelo de von Neumann? de hoy.
7. Cul es la funcin del subsistema ALU en el modelo a. Ron Neumann
Quinta Esta generacin de duracin indefinida comenz en 1985. Presenci la aparicin de las com- de von Neumann? b. von N eumann
generacin putadoras laptop y palmtop, mejoras en los medios de almacenamiento secundarios (CD- 8. Cul es la funcin del subsistema de unidad de control c. Pascal
ROM, DVD, etc.), el uso de la multimedia y el fenmeno de la realidad virtual. en el modelo de von Neumann? d. Charles Babbage
1.9 Prctica ..
.. Introduccin
31. Un lenguaje de programacin tiene diez instrucciones 36. Utiliza Internet o acude a la biblioteca para encontrar
13. En el modelo de von Neumann, el subsistema 21. es una serie de instrucciones en un lengua-
ms informacin sobre la Rueda de Leibnitz.
je de computacin que indica a la computadora qu ha- diferentes. Cuntos programas de cinco instrucciones
_ _ _ _ almacena datos y programas.
cer con los datos. pueden escribirse con este lenguaje sin repetir ninguna 37. Utiliza Internet o acude a la biblioteca para encontrar
a. ALU
a. un sistema operativo hardware instruccin? Cuntos programas de siete instrucciones? ms informacin sobre el telar de Jacquard y su impac-
b. entrada/salida
c. memoria b. un algoritmo 32. Actualmente qu es ms costoso, el hardware o el soft- to social.
d. unidad de control c. un procesador de datos 38. Utiliza Internet o acude a la biblioteca para encontrar
ware?
d. un programa ms informacin sobre la Mquina Analtica.
14. En el modelo de von Neumann, el subsistema 33. Qu es ms valioso para una organizacin hoy da, el
_ _ _ _ realiza clculos y operaciones lgicas. 22. es el diseo y la escritura de un programa de hardware, el software o los datos? 39. Utiliza Internet o acude a la biblioteca para encontrar
a. ALU forma estructurada. ms informacin sobre Hollerit y su tabuladora.
a. ingeniera de software 34. Cmo impone la organizacin de los datos un progra-
b. entrada/salida
b. ingeniera de hardware ma procesador de palabras?
c. memoria
d. unidad de control c. desarrollo de algoritmos 35. Utiliza Internet o acude a la biblioteca para encontrar
d. arquitectura de instrucciones ms informacin sobre la Pascalina.
15. En el modelo de van Neumann, el subsistema
_ _ _ _ acepta datos y programas y enva los resul- 23. La primera computadora electrnica para un uso espe-
tados del procesamiento a dispositivos de salida. cial se llam _ _ _ __
a. ALU a. Pascal
b. entrada/salida b. Pascalina
c. memoria c. ABC
do unidad de control d. EDVAC
16. En el modelo de van Neumann, el subsistema 24. Una de las primeras computadoras basadas en el mode-
_ _ _ _ sirve como un administrador de los otros lo de von Neumann se llam _ _ _ __
subsistemas. a. Pascal
a. ALU b. Pascalina
b. entrada/salida c. ABC
c. memoria d. EDVAC
d. unidad de control 25. La primera mquina computadora en usar la idea de al-
17. Segn el modelo de van Neumann, ____ se alma- macenamiento y programacin se llam _ _ _ __
cenan en la memoria. a. la Madeline
a. slo los datos b. EDVAC
b. slo los programas c. la mquina de Babbage
c. los datos y los programas d. el telar de Jacquard
d. ninguno de los anteriores 26. Los separaron la tarea de la programacin
18. Una solucin paso a paso para un problema se llama de las tareas de operacin de la computadora.
a. algoritmos
a. hardware b. procesadores de datos
b. un sistema operativo c. lenguajes de programacin de alto nivel
c. un lenguaje de computadora d. sistemas operativos
d. un algoritmo
19. FORTRAN Y COBOL son ejemplos de _ _ _ _ ' EJERCICIOS
a. hardware 27. Utiliza Internet o acude a la biblioteca para averiguar
b. sistemas operativos cundo se inventaron los teclados.
c. lenguajes de computadora 28. Utiliza Internet o acude a la biblioteca para averiguar
d. algoritmos cundo se inventaron las impresoras.
20. Una mquina computadora del siglo XVII que poda rea- 29. Utiliza Internet o acude a la biblioteca para averiguar
lizar operaciones de suma y resta era la _ _ __ cundo se inventaron los discos magnticos.
a. Pascalina
b. telar de J acquard 30. Segn el modelo de von Neumann, los discos duros
c. mquina analtica actuales pueden utilizarse como entrada o como salida?
d. mquina de Babbage Explica,
2.1 Tipos de datos ..
Representacin
de datos Datos
'--
Video I
Figura 2.1 Diferentes tipos de datos
I!I Un programa de ingeniera uti1iza una computadora principalmente para procesar nme-
ros: hacer aritmtica, resolver ecuaciones algebraicas o trigonomtricas, encontrar las
races de una ecuacin diferencial, y as por el estilo.
Como se estudi en el captulo 1, una computadora es una mquina que procesa datos. Pe- 11 Un programa de procesamiento de palabras, por otra parte, utiliza una computadora ms
ro antes de que podamos hablar sobre el procesamiento de datos, necesita comprender la na- que nada para procesar texto: justificarlo, moverlo, eliminarlo, etctera.
turaleza de los mismos. En este captulo y en el siguiente se analizan los diferentes tipos de
111 Un programa de procesamiento de imgenes usa una computadora para manipular im-
datos y cmo se representan dentro de una computadora. En el captulo 4 se muestra cmo
genes: crearlas, reducirlas, ampliarlas, rotadas, etctera.
se manipulan los datos en una computadora.
11 Una computadora tambin puede manejar datos de audio. Usted puede reproducir msi-
ca en una computadora e introducir su voz como datos.
liI Finalmente, una computadora puede usarse no slo para mostrar pelculas, sino tambin
para crear los efectos especiales que se ven en ellas.
La solucin ms eficaz es usar una representacin uniforme de los datos. Todo tipo de da- ,
tos que entran del exterior a una computadora se transforman en esta representacin unifonne 2.3 REPRESENTACION DE DATOS
cuando se almacenan en una computadora y se vuelven a transformar en su representacin
original cuando salen de la computadora. Este formato universal se llama patrn de bits. Ahora podemos explicar cmo pueden representarse diferentes tipos de datos usando patro-
nes de bits.
BIT Antes de continuar con el anlisis de los patrones de bits, se debe definir un bit. Un bit (bi-
nary digit: dgito binario) es la unidad ms pequea de datos que puede almacenarse en una TEXTO Una pieza de texto en cualquier idioma es una secuencia de smbolos usados para represen-
computadora; puede ser ya sea O o 1. Un bit representa el estado de un dispositivo que pue- tar una idea en ese idioma. Por ejemplo, el idioma ingls utiliza 26 smbolos (A, B, C, , . , ,
de tomar uno de dos estados. Por ejemplo, un interruptor puede estar ya sea apagado o en- Z) para representar las letras maysculas, 26 smbolos (a, b, c, ... , z) para representar las le-
cendido. La convencin es representar el estado de encendido como 1 y el estado de apagado tras minsculas, 9 smbolos (O, 1, 2, ... , 9) para los caracteres numricos (no nmeros; la di-
como O. Un interruptor electrnico puede representar un bit. En otras palabras, un interruptor ferencia se ver ms adelante) y smbolos (., ?, :, : ... , !) para representar la puntuacin. Otros
puede almacenar un bit de informacin. Actualmente las computadoras utilizan varios dispo- smbolos corno el espacio en blanco, la lnea nueva y el tabulador se usan para alineacin de
sitivos binarios de dos estados para almacenar datos. texto y legibilidad.
Usted puede representar cada smbolo con un patrn de bits. Dicho de otra forma, texto
PATRN DE BITS Un solo bit no puede resolver el problema de la representacin de datos, si cada pieza de da-
como la palabra "BYTE", formada por cuatro smbolos, puede representarse como 4 patro-
tos pudiera representarse por un 1 o un O, entonces slo se necesitara un bit. Sin embargo,
nes de bits, en los que cada patrn define un solo smbolo (figura 2.4).
usted necesita almacenar nmeros ms grandes, necesita almacenar texto, grficos y otros ti-
pos de datos.
Para representar diferentes tipos de datos se utiliza un patrn de bits, una secuencia o, co-
mo a veces se le llama, una cadena de bits. La figura 2.2 muestra un patrn de bits formado
por 16 bits, es una combinacin de ceros (O) y unos (1). Esto significa que si usted quiere
almacenar un patrn de bits formado por 16 bits, necesita 16 interruptores electrnicos. Si
quiere almacenar 1000 patrones de bits, cada uno de 16 bits, necesita 16000 bits y as suce-
sivamente.
1000101010111111 La pregunta es: Cuntos bits se necesitan en un patrn de bits para representar un smbo-
lo en un idioma? Depende de cuntos smbolos haya en la secuencia. Por ejemplo, si usted
Figura 2.2 Patrn de bits
crea un idioma imaginario que utilice slo las letras maysculas del idioma ingls, slo ne-
cesita 26 smbolos. Un patrn de bits en este idioma requiere representar al menos 26 smbo-
Ahora la pregunta es: Cmo sabe la memoria de la computadora qu tipo de datos repre- los, Para otro idioma, como el chino, pueden necesitarse muchos smbolos ms, La longitud
senta el patrn de bits? No lo sabe. La memoria de la computadora slo almacena los datos del patrn de bits que representa lill smbolo en un idioma depende del nmero de smbolos
como patrones de bits. Es responsabilidad de los dispositivos de entrada/salida o de los pro- usados en ese idioma. Ms smbolos significan un patrn de bits ms grande.
gramas interpretar un patrn de bits como un nmero, texto o algn otro tipo de datos. En Aunque la longitud del patrn de bits depende del nmero de smbolos, la relacin no es li-
otras palabras, los datos se codifican cuando entran a la computadora y se decodifican cuan- neal~ es logartmica. Si se requieren dos smbolos, la longitud es 1 bit (ellog22 es 1). Si se ne-
do se presentan al usuario (figura 2.3). cesitan cuatro smbolos, la longitud es 2 bits (10g24 es 2). La tabla 2.1 muestra esta relacin, la
cual es fcilmente perceptible. Un patrn de bits de 2 bits puede tomar cuatro formas diferen-
tes: 00,01, 10 Y 11; cada una de las cuales representa un smbolo. Del mismo modo, un pa-
Texto --1 Codilicacin I~ 1001.".,111--) r--+ 1111 , , ." 111 ------+1 Decodificacin 1--+ Texto trn de tres bits puede tomar ocho formas diferentes: 000, 001. 010, Oll. 100, 101. 110 y 111.
M
Nmero --1 Codilic"cin I~ 1111"",101--) e ~ 1101."" 101------+lnccodificucin r--+ N(mero
m Nmero de sinbolos Longitud del patrn de bits
Imagen ~-----+1111 .... ,111-----1 O ~ 1011 "'" OOO------+IDecOditicocin f---+ Imagen 2 1
Audio --1 Codificacin 1-----+ 1000 .. ,.,000----0 r
i ~0101.""OOI------+IDeCodjficacin ~ Audio 4 2
Video ---1 Codificaci" 1-----+ 1011 ." .. 00 1 -----: a
J-+ 1111 , , 111 ------+1 Decodificacin r--+ Video 8 3
16 4
.. . ...
Figura 2.3 Ejemplos de patrones de bits
128 7
256 8
BYTE Por tradicin, un patrn de bits con una longitud de 8 bits se llama byte, Este trmino tam-
bin se ha utilizado para medir el tamao de la memoria o de otros dispositivos de almacena- ... ...
miento. Por ejemplo, se dice que la memoria de una computadora que puede almacenar 8 65536 16
millones de bits de infonnacin es una memoria de 1 milln de bytes. Tabla 2.1 Nmero de smbolos y longitud de un patrn de bits
.. Representacin de datos 2.3 Representacin de datos ..
Cdigos Se han diseado diferentes secuencias de patrones de bits para representar smbolos de texto. Unicode Ninguno de los cdigos anteriores representa smbolos que pertenecen a idiomas
A cada secuencia se le conoce como cdigo y al proceso de representar los smbolos se le lla- distintos al ingls. Por eso, se requiere un cdigo con mucha ms capacidad. Una coalicin
ma codificacin. En esta seccin explicamos los cdigos comunes. de fabricantes de hardware y software ha diseado un cdigo llamado Unicode que utiliza 16 ~'
bits y puede representar hasta 65536 (2 16) smbolos. Diferentes secciones del cdigo se asig-
ASCII El Instituto Nacional Norteamericano de Estndares (ANSI: American Nacional nan a los smbolos de distintos idiomas en el mundo. Algunas partes del cdigo se usan para
Standards Institute) desarroll un cdigo llamado Cdigo norteamericano de estndares smbolos grficos y especiales. El lenguaje Java utiliza este cdigo para representar carac-
para intercambio de informacin (ASen: American Standard Cade far Infonnation Inter- teres. Microsoft Windows usa una variacin de los primeros 256 caracteres. En el apndice B
change). Este cdigo utiliza siete bits para cada smbolo. Esto significa que 128 (27) smbo- hay un pequeo conjunto de smbolos Unicode.
los distintos pueden definirse mediante este cdigo. Los patrones de bits completos para el
cdigo ASCII estn en el apndice A. La figura 2.5 muestra cmo se representa la palabra ISO La Organizacin Internacional para la Estandarizacin (Internacional Standard
"BYTE" en cdigo ASCII. Organization), conocida como ISO, ha diseado un cdigo que utiliza patrones de 32 bits. Es-
te cdigo representa hasta 4294967 296 (232) smbolos, definitivamente lo suficiente para re-
presentar cualquier smbolo en el mundo actual.
B Y T E NMEROS En una computadora, los nmeros se representan usando el sistema binario. En este sistema,
un patrn de bits (una secuencia de ceros y unos) representa un nmero. Sin embargo, un c-
I I I I digo como el ASCII no se usa para representar datos. La razn para ello y un anlisis de la
representacin de nmeros se presentan en el captulo 3.
1000010 1011001 1010100 1000101
IMGENES Hoy da las imgenes se representan en una computadora mediante uno de dos mtodos: gr R
Figura 2.5 Representacin de la palabra "BYTE" en cdigo ASCII ficos de mapa de bits o grficos de vectores (figura 2.6).
l1li ASCII utiliza un patrn de siete bits que vara de 0000000 a 1111111.
11 El primer patrn (0000000) representa el carcter nulo (la ausencia de carcter).
l1li El ltimo patrn (1111111) representa el carcter de eliminacin.
111 Hay 31 caracteres de control (no imprimibles).
11 Los caracteres numricos (O a 9) se codifican antes que las letras.
Bitmap I 1
,-1_\\_e_ct_or_..
Figura 2.7 Mtodo de grficos de mapa de bits de una imagen blanca y negra Figura 2.9 Representacin de audio
----+
~ ~ ~
Rojo (con intensidad de 100%) 11111111 00000000 00000000 VIDEO El video es una representacin de imgenes (llamadas cuadros o frames) en el tiempo. Una
Verde (con intensidad de 100%) ~ 00000000 11111111 00000000 pelcula es una serie de cuadros desplegados uno tras otro para crear la ilusin de movimien-
Azul (con intensidad de 100%) ~ 00000000 00000000 11111111 to. As que si usted sabe cmo almacenar una imagen dentro de una computadora, tambin
Blanco (con intensidad de 100%) ----+ 1I111111 11I11111 1Il11l11 sabe cmo almacenar un video; cada imagen o cuadro cambia a una serie de patrones de bits
y se almacena. La combinacin de las imgenes representa el video. Observe que el video ac-
tual se comprime normalmente. En el captulo 15 estudiaremos MPEG, una tcnica de com-
Figura 2.11 Representacin de pixeles de color
presin de video comn.
Grficos El problema con el mtodo de los grficos de mapa de bits es que los patrones de bits exac-
de vectores tos para representar una imagen particular deben guardarse en una computadora. Posterior- 2.4 NOTACIN HEXADECIMAL
mente, si usted desea cambiar el tamao de la imagen debe cambiar el tamao de los pixeles,
lo cual crea una apariencia difusa y granulada. No obstante, el mtodo de grficos de vector El patrn de bits se dise para representar datos cuando stos se almacenan dentro de una
no guarda los patrones de bits. Una imagen se descompone en una combinacin de curvas y computadora. Sin embargo, para la gente es difcil manipular los patrones de bits. Escribir
lneas. Cada curva o lnea se representa por medio de una fnnula matemtica. Por ejemplo, una serie de nmeros O y 1 es tedioso y propenso al error. La notacin hexadecimal ayuda.
una lnea puede describirse mediante las coordenadas de sus puntos extremos y un crculo La notacin hexadecimal se basa en 16 (hexadec es la palabra griega para 16). Esto sig-
puede describirse mediante las coordenadas de su centro y la longitud de su radio. La combi- nifica que hay 16 smbolos (dgitos hexadecimales): O, 1,2,3,4,5,6,7,8,9. A, B. C. D. E
nacin de estas fnnulas se almacena en una computadora. Cuando la imagen se va a desple- Y F. La importancia de la notacin hexadecimal se hace evidente cuando se convierte un pa-
gar o imprimir, el tamao de la imagen se proporciona al sistema como una entrada. El trn de bits a notacin hexadecimal.
sistema redisea la imagen con el nuevo tamao y usa la misma frmula para dibujar la ima- Cada dgito hexadecimal puede representar cuatro bits y cuatro bits pueden representarse
gen. En este caso, cada vez que una imagen se dibuja, la frmula se vuelve a evaluar. mediante un dgito hexadecimal. La tabla 2.2 muestra la relacin entre un patrn de bits y un
dgito hexadecimal.
AUDIO El audio es una representacin de sonido o msica. Aunque no hay un estndar para almace-
nar el sonido o la msica, la idea es convertir el audio a datos digitales y usar patrones de
bits. El audio por naturaleza es informacin anloga. Es continuo (anlogo), no discreto (di- Un patrn de 4 bits puede representarse mediante un dgito hexadecimal, y vice-
gital). La figura 2.9 muestra los pasos a seguir para cambiar los datos de audio a patrones de versa.
bits. Estos pasos son los siguientes:
.. Representacin de datos 2.5 Notacin octal ..
Un patrn de tres bits puede representarse por medio de un dgito octal y viceversa.
CONVERSiN La conversin de un patrn de bits a notacin hexadecimal se realiza por medio de la organi-
zacin del patrn en grupos de cuatro y luego hallar el valor hexadecimal para cada grupo de
cuatro bits. Para una conversin de hexadecimal a patrn de bits se convierte cada dgito he-
xadecimal a su equivalente de cuatro bits (figura 2.10).
Patrn de bits Dgito octal Patrn de bits Dgito octal
000 O 100 4
Observe que la notacin hexadecimal se escribe en dos formatos. En el primer formato, CONVERSIN La conversin de un patrn de bits a notacin octal se realiza mediante la organizacin del
usted aade una x minscula (o mayscula) antes de los dgitos para mostrar que la represen- patrn en grupos de tres y la determinacin del valor octal de cada grupo de tres bits. Para la
tacin est en hexadecimal. Por ejemplo, xA34 representa un valor hexadecimal en esta con- conversin de octal a patrn de bits, se convierte cada dgito octal a su equivalente de tres bits
vencin. En otro formato, usted indica la base del nmero (16) como el subndice despus de (figura 2.11).
cada notacin. Por ejemplo, A34 16 muestra el mismo valor en la segunda convencin. En es-
te libro se usan ambas convenciones.
EJEMPLO!
Determine el hexadecimal equivalente del patrn de bits 110011100010.
SOLUCIN
Cada grupo de cuatro bits se traduce a un dgito hexadecimal. El equivalente es xCE2. l1li Figura 2.11 Transformacin de binario a octal y de octal a binario
EJEMPLO 2
Determine el hexadecimal equivalente del patrn de bits 0011100010. Observe que la notacin octal tambin se escribe en dos formatos. En el primer fonnato,
usted aade O (cero) antes de los dgitos para mostrar que la representacin est en notacin
SOLUCIN octal (a veces se utiliza una o minscula). Por ejemplo, 0634 representa un valor octal en esta
El patrn de bits se divide en grupos de cuatro bits (a partir de la derecha). En este caso, convencin. En el otro formato, usted indica la base del nmero (8) como el subndice des-
se aaden dos O ms a la izquierda para hacer el nmero total de bits divisible entre cua- pus de la notacin. Por ejemplo, 634 8 muestra el mismo valor en la segunda convencin. En
tro. As que usted tiene 000011100010, 10 cual se traduce a xOE2. llII este libro se usan ambas convenciones.
EJEMPLO 3 EJEMPLO 4
Cul es el patrn de bits para x24C?
Muestre el equivalente octal del patrn de bits 101110010.
SOLUCIN
Cada dgito hexadecimal se escribe como su patrn de bits equivalente y se obtiene
SOLUCIN
001001001100. llII Cada grupo de tres bits se traduce a un dgito octal. El equivalente es 0562, 0562 o 5628 . lIlI
.. Representacin de datos 2.8 Prctica ..
EJEMPLOS
Muestre el equivalente octal del patrn de bits 1100010.
2.8 PRCTICA
SOLUCIN PREGUNTAS DE REPASO 15. Cuntos smbolos pueden representarse mediante un
1. Nombre cinco tipos de datos que puede procesar una patrn de bits con 10 bits?
El patrn de bits se divide en grupos de tres bits (a partir de la derecha). En este caso, se
computadora. a. 128
aaden dos O ms a la izquierda para hacer el nmero total de bits divisible entre 3. As b, 256
que usted tiene 001100010, lo cual se traduce a 0142, 0142 o 1428' l1li 2. Cmo maneja una computadora todos los tipos de da-
c. 512
tos que debe procesar?
d, 1024
EJEMPLO 6
3, Qu es un patrn de bits? 16. En ASCII extendido cada smbolo es _ _ _ _ bits.
Cul es el patrn de bits para 248?
4. Cul es la diferencia entre ASCII y ASCII extendido? a,7
SOLUCIN b.8
5. Qu es EBCDIC?
c, 9
Cada dgito octal se escribe como su patrn de bits equivalente para obtener 010100. 11 6. Cmo se relaciona la longitud de un patrn de bits con d. 10
el nmero de smbolos que puede representar?
17. Si el cdigo ASCII para E es 1000101, entonces el cdi-
, 7. Cmo representa el mtodo de grficos de mapa de bits go ASCII para e es _ _ _ __
2.6 TERMINOS CLAVE una imagen como un patrn de bits? a. 1000110
b, 1000111
8. Cul es la ventaja del mtodo de grficos de vector so-
cuantificacin notacin hexadecimal c. 0000110
anlogo bre el mtodo de grficos de mapa de bits?
notacin octal d, 1100101
ASCII extendido digital
9. Qu pasos deben seguirse para convertir datos de audio
bit dgito binario Organizacin Internacional para la Es- 18, En cdigo ASCII extendido, un ____ del patrn de
en patrones de bits?
byte elemento de imagen tandarizacin (ISO) bits para el cdigo ASCII regular.
cdigo grfico de mapa de bits patrn de bits 10. Cul es la relacin entre los datos de imagen y los da- a. bit O se aade a la izquierda
Cdigo extendido de intercambio grfico de vectores pixel tos de video? b. bit O se aade a la derecha
decimal codificado en binario imagen sistema binario c. bit 1 se aade a la izquierda
(EBCDIC) Instituto Nacional Norteamericano de texto d. bit 1 se aade a la derecha
Cdigo norteamericano de estndares Estndares (ANSI) Unicode PREGUNTAS DE OPCIN MLTIPLE 19, _ _ _ _ _ es un cdigo usado en los mainframes de
para intercambio de informacin interruptor video 11. De lo siguiente, qu puede clasificarse como datos? IBM.
(ASCII) muestreo a. nmeros a. ASCII
b, video b, ASCII extendido
c. audio c. EBCDIC
d. todos los anteriores d, Unieode
2.7 RESUMEN 12. Para ahnacenar un byte, usted necesita _ _ _ _ inte- 20. es un cdigo de 16 bits que puede represen-
rruptores electrnicos. tar smbolos en idiomas distintos al ingls.
11 Los nmeros, el texto, las imgenes, el audio y el video, 111 ASCII es un cdigo popular para los smbolos. a, I a, ASCII
todos son formas de datos. Las computadoras necesitan b,2 b. ASCII extendido
111 EBCDIC es un cdigo utilizado en los mainframes de
procesar todo tipo de datos. c.4 C, EBCDIC
IBM.
11 Todos los tipos de datos se transforman en una represen- d. 8 d. Unicode
111 Unicode es un cdigo de 16 bits y la ISO ha desarrolla-
tacin uniforme llamada patrn de bits para su procesa- 21. _ _ _ _ es un cdigo usado por el lenguaje Java pa-
do un cdigo de 32 bits. Ambos cdigos permiten un 13. Un byte consiste de _ _ _ _ bits.
miento por la computadora. ra representar caracteres.
mayor nmero de smbolos. a. 2
111 Un bit es la unidad ms pequea de datos que puede al- a. ASCII
11 Las imgenes utilizan el mtodo de grficos de mapa de b.4
macenarse en una computadora. b. ASCII extendido
bits o grficos de vectores para representacin de datos. c, 8
c. EBCDIC
11 Un interruptor, con sus dos estados de encendido y apa- La imagen se divide en pixeles a los que luego pueden
d, 16
d, Unicode
gado, puede representar un bit. asignarse patrones de bits.
14. En un conjunto de 64 smbolos, cada smbolo requiere 22. Un cdigo de 32 bits se desarroll por _ _ _ _ para re-
111 Un patrn de bits es una secuencia de bits que pueden I!I Los datos de audio se transforman a patrones de bits a una longitud de patrn de bits de bits. presentar smbolos en todos los idiomas.
representar un smbolo. travs del muestreo, la cuantificacin y la codificacin. a.4 a. ANSI
11 Un byte son ocho bits. b,5 b, ISO
111 Los datos de video son una serie de imgenes en se-
c. 6 c. EBCDIC
11 La codificacin es el proceso de transformar datos en un cuencia. d,7 d. Harnming
patrn de bits.
.. Representacin de datos
23. Una imagen puede representarse en una computadora 31. Vuelva a hacer el ejercicio 30 para un placa que tiene
usando el mtQdo de ~~~~ dos dgitos seguidos por tres letras maysculas (A a Z).
a. grficos de mapa de bits 32. Una mquina tiene ocho ciclos diferentes. Cuntos bits
b. grficos de vectores se necesitan para representar cada ciclo?
c. grficos de matrices 33. La calificacin de un estudiante en un curso puede ser A,
Representac.in
d. aob B. C, D, F, R (retirado) o 1 (incompleto). Cuntos bits
24. El mtodo de grficos de mapa de bits y el mtodo de se requieren para representar la calificacin?
grficos de vectores se usan para representar ~~~_ 34. Una compaa ha decidido asignar un patrn de bits ni-
en una computadora. co a cada empleado. Si la compaa tiene 900 emplea-
a.
iJ.
c.
d.
audio
video
imgenes
nmeros
dos, cul es el nmero mnimo de bits necesarios para
crear este sistema de represent?cin? Cuntos patrones
no son asignados? Si la compaa contrata otros 300 em-
pleados, debe aumentar el nmero de bits? Explique su
de nmeros
respuesta.
25. En el mtodo de grficos para la representa-
cin de una imagen en una computadora, a cada pixel se 35. Si utiliza un patrn de cuatro bits para representar los d-
asigna uno o ms patrones de bits. gitos O a 9, cuntos patrones de bits se usan?
a. de mapa de bits 36. Una imagen en escala de grises se digitaliza usando cua-
b. de vectores tro niveles de gris distintos. Si la imagen se compone de
c. cuantificado 100 x 100 pixeles, cuntos bits se necesitan para repre-
d. binario sentar la imagen?
37. Una seal de audio se muestrea 8000 veces por segun-
26. En el mtodo de grficos ~~~~_para la representa-
do. Cada muestra se representa mediante 256 niveles En el captulo 2 mostramos cmo el texto, el audio, las imgenes y el video pueden repre-
cin de una imagen en una computadora, la imagen se
distintos. Cuntos bits por segundo se necesitan para sentarse en una computadora mediante patrones de bits. Pospusimos el anlisis de la represen-
descompone en una combinacin de curvas y lneas.
representar esta seal? tacin de los nmeros porque sta es muy diferente de la representacin de los datos no
a. de mapa de bits
38. Cambie los siguientes patrones de bits a notacin hexa- numricos. Algunas de las razones de esta diferencia son las siguientes:
b. de vectores
c. cuantificado decimal: 11 Un cdigo de caracteres como el ASCII no es eficiente para representar nmeros. ASCII
3. 100011110000
d. binario puede representar 128 smbolos, pero el sistema decimal necesita slo 10. (Observe que
b. 1000001101 si se consideran otros smbolos como +, - y el punto decimal, se necesitan an ms
27. En el mtodo de grficos _ _ _ _ _ para la represen- c. 10001 smbolos, pero todava menos que 128.) Por ejemplo, si usted quiere almacenar el nme-
tacin de una imagen en una computadora, al cambiar el d. 11111111 ro 65 535 usando ASCII, necesita cinco bytes (un byte para cada dgito). Pero si el n-
tamao de la imagen se crea una imagen difusa y granu- 39. Cambie los siguientes a patrones de bits: mero se representa como un entero sin signo (usted ver esta representacin
lada. a. x120 posteriormente en este captulo), slo necesita dos bytes.
a. de mapa de bits b. x2A34
b. de vectores 11 Las operaciones con los nmer-Os (por ejemplo, la suma y la resta) son muy complicadas
c. xOO
c. cuantificado si los dgitos de un nmero se representan en un cdigo de caracteres.
d. xFF
d. binario 40. Cambie los siguientes patrones de bits a notacin octal: 11 La representacin de la precisin de un nmero (por ejemplo, el nmero de lugares
despus del punto decimal) requiere muchos bytes. Por ejemplo, para almacenar
28. Cuando usted quiere descargar msica a una computa- 3. 10001111 0000
b. 1000001101 23454.00001 se requieren 11 bytes, pero si el mismo nmero se representa en un pun-
dora, la seal de audio debe ser _ _ _~
to flotante (esta representacin se ver ms adelante en este captulo), necesita slo
a. muestreada c. 10001
d. 11111111 unos cuantos bytes.
b. cuantificada
c. codificada 41. Cambie los siguientes a patrones de bits:
d. todos los anteriores a. 012
b.027
c. 045
EJERCICIOS d.020
29. Dados cinco bits, cuntos patrones de cinco bits distin- 42. Cuntos dgitos hexadecimales se necesitan para con-
tos puede tener? vertir un patrn de 19 bits?
30. En cierto pas las placas de la licencia vehicular tienen 43. Cuntos dgitos octales se requieren para convertir un
dos dgitos decimales (O a 9). Cuntas placas distintas patrn de 19 bits?
puede tener? Si el dgito O no est pernritido en las pla- 44. Cuntos dgitos hexadecimales se necesitan para con-
cas, cuntas placas distintas puede tener? vertir un patrn de 6 bytes?
Ea Representacin de nmeros
3.2 Conversin ..
Hoy da, el mundo utiliza el sistema decimal para los nmeros desarrollado por matemticos Comenzaremos por convertir un nmero del sistema binario al sistema decimal. Tome el
SISTEMA DECIMAl.. CONVERSiN nmero binario y multiplique cada dgito binario por el valor de su posicin. Como cada
rabes en el siglo VIII. Los primeros en usar un sistema numrico decimal fueron los antiguos DE BINARIO
egipcios. Los babilonios mejoraron el sistema egipcio al dar un significado a las posiciones bit binario puede ser slo O o 1, el resultado ser ya sea O o el valor posicional. Despus
A DECIMAl.. de multiplicar todos los dgitos sume los resultados. La conversin de binario a decimal
del sistema numrico. Todos comprendemos fcilmente el sistema numrico decimal.
De hecho lo hemos usado tanto que es bsicamente intuitivo. Pero, realmente entende- se muestra en la figura 3.3.
mos por qu la segunda posicin en el sistema decimal representa las decenas y la tercera, las
centenas? La respuesta yace en las potencias de la base del sistema, que es lOen el sistema
decimal. De esta manera la primera posicin es 10 elevado a la potencia O, la segunda posi- 0101101 nmero binario
cin es 10 elevado a la potencia 1 y la tercera posicin es 10 elevado a la potencia 2. La figu-
ra 3.1 muestra la relacin entre las potencias y el nmero 243. 64 32 16 8 4 2 1 valores posicionales
'" O + 32 + O + 8 + 4 + O + 1 / resultado
10'
10000
lo'
1000
10'
100
t
45 nmero decimal
Posiciones decimales
Figura 3.3 Conversin de binario a decimal
EJEMPLO 1
Convierta el nmero binario 10011 a decimal.
22 2' 2
4 2 I
Para convertir del sistema decimal al binario utilice la divisin repetitiva. El nmero original,
CONVERSiN
~ll0~
45 en el ejemplo, se divide por 2. El residuo (1) se vuelve el primer dgito binario y el segun-
DE DECIMAl.. do dgito se obtiene dividiendo el cociente (22) por 2 para determinar la siguiente posicin.
A BINARIO Este proceso contina hasta que el cociente es O. La conversin de decimal a binario se
),128 + h64 + Id2 + h16 + 0*8 + 0*4 + h2 + hl
muestra en la figura 3.4.
EJEMPLO 2
1 2 5 11 I
I
I Sin signo J I Con signo I
o 1 1 I I I
Binaria I Signo
y magnitud
1I Complemento
a uno
1I Complemento
a dos
I
Figura 3.4 Conversin decimal a binaria
Figura 3.6 Taxonoma de enteros
,
3.3 REPRESENTACION DE ENTEROS Intervalo: Q... (2 N -1)
Ahora que sabe cmo convertir del sistema decimal al sistema binario, veamos cmo alma-
cenar enteros dentro de una computadora. Los enteros son nmeros ntegros (es decir, n-
meros sin una fraccin). Por ejemplo, 134 es un entero, pero 134.23 no lo es. Como otro
La tabla 3.1 muestra dos intervalos comunes para las computadoras de hoy.
ejemplo, -134 es un entero, pero -134.567 no lo es.
Un entero puede ser positivo o negativo. Un entero negativo vara del infinito negativo
a O; un entero positivo vara de O al infmito positivo (figura 3.5). Sin embargo, ninguna Nmero d~ bits Intervalo
computadora puede almacenar todos los enteros en este intervalo. Para hacerlo, requerira un 8 O. . . 255
nmero infinito de bits, lo cual significa una computadora con una capacidad de almacena-
16 O. .. 65535
miento infinita.
Tabla 3.1 Intervalo de enteros sin signo
Representacin El almacenamiento de los enteros sin signo es un proceso sencillo segn se esboza en los pa-
-= += sos siguientes:
SOLUCIN positivos que comienzan a partir de O (el primer byte de memoria) y continan hasta un
Primero se cambia el nmero a binario: 111. Se aaden cinco O para hacer un total de N nmero que representa la capacidad de memoria total en bytes. De nuevo, usted no ne-
(8) bits: 00000111. El nmero se almacena en la memoria. lIi cesita nmeros negativos. Los enteros sin signo pueden hacer el trabajo fcilmente.
EJEMPLO 4 FORMATO El almacenamiento de un entero en el formato de signo y magnitud requiere 1 bit para repre-
Almacene 258 en una localidad de la memoria de 16 bits. DE SIGNO sentar el signo (O para positivo, 1 para negativo). Esto significa que en una asignacin de ocho
bits, usted slo puede usar siete bits para representar el valor absoluto del nmero (nmero
Y MAGNITUD
SOLUCIN sin el signo). Por consiguiente, el mximo valor positivo es la mitad del valor sin signo. Lo
Primero se cambia el nmero a binario: 100000010. Se aaden siete O para hacer un total siguiente define el intervalo de enteros de signo y magnitud en una computadora, donde N es
de N (16) bits: 0000000100000010. El nmero se almacena en la localidad de la memoria. el nmero de bits asignados para representar a un entero de signo y magnitud:
La tabla 3.2 muestra cmo se ahnacenan los enteros no asignados en dos computadoras
diferentes: una usa localidades de ocho bits y la otra usa localidades de 16 bits. Observe que Intervalo:
los nmeros decimales 258 y 24760 no pueden almacenarse en una computadora que usa
localidades de ocho bits para un entero sin signo. El nmero decimal 1 245 678 no puede al-
macenarse en ninguna de estas dos computadoras; a esta condicin se le llama desbordamien- La tabla 3.3 muestra los intervalos comunes para las computadoras actuales. Observe que
to (se estudia en el captulo 4). en este sistema hay dos O: +0 y ~O.
Decimal' Localidad de 8 bits Localida<i ,de-\16 -bits En la representacin de signo y magnitud hay dos O: positivo y negativo. En una
7 00000111 0000000000000111 asignacin de ocho bits:
234 11101010 0000000011101010
258 Desbordamiento 0000000100000010 +0 00000000
24760 Desbordamiento 0110000010111000 -O 10000000
1245678 Desbordamiento Desbordamiento
Tabla 3.2 Almacenamiento de enteros sin signo en dos computadoras
diferentes 'me~o .d" b[ts .. Rango .
l1li Conteo. Cuando se cuenta, no se necesitan los nmeros negativos. Usted comienza con-
tando a partir de 1 (a veces de O) y contina. EJEMPLO 6
11 DireccionaITento. Algunos lenguajes de computacin almacenan la direccin de una lo- Almacene +7 en una localidad de memoria de ocho bits usando una representacin de sig-
calidad de memoria dentro de otra localidad de memoria. Las direcciones son nmeros no y magnitud.
.. Representacin de nmeros 3.3 Representacin de enteros ..
SOLUCIN EL FORMATO DE Tal vez haya notado que la representacin de un nmero en el sistema binario es una cuestin
Primero se cambia el nmero a binario: 111. Se aaden cuatro O para hacer un total de COMPLEMENTO de convencin. En la representacin de signo y magnitud adoptamos la convencin de que el
N - 1 (7) bits: 0000111. Luego se aade un cero ms, que aqu se muestra en negritas, ya DE UNO bit que est en el extremo izquierdo representa el signo; este bit no es parte del valor.
que el nmero es positivo. El resultado es 0000111. 11 Los diseadores de la representacin del complemento a uno adoptaron una convencin
diferente: para representar un nmero positivo, usan la convencin adoptada para un entero
EJEMPLO 7 sin signo. Y para representar un nmero negativo, complementan el nmero positivo. En otras
palabras, +7 se representa justo como un nmero sin signo, mientras que -7 se representa
Almacene -258 en una localidad de memoria de 16 bits usando una representacin de sig-
como el complemento de +7. En el complemento a uno, el complemento de un nmero se
no y magrtitud.
obtiene al cambiar todos los O a 1 y todos los 1 a O.
SOLUCIN A continuacin se define el intervalo de los enteros complemento a uno en una computa-
dora, donde N es el nmero de bits asignados para representar un entero complemento a uno:
Primero se cambia el nmero a binario: 100000010. Se aaden seis O para hacer un total
de N - 1 (15) bits: 000000100000010. Se aade un 1 ms, que aqu se muestra en negri-
tas, puesto que el nmero es negativo. El resultado es 1000000100000010. 111
Intervalo: _(2 N - 1 -1) +(ZN-l -1)
La tabla 3.4 muestra cmo se almacenan los nmeros de signo y magnitud en dos compu-
tadoras diferentes; una que usa localidad de ocho bits y una que usa localidad de 16 bits.
Interpretacin Cmo se interpreta una representacin binaria de signo y magnitud en decimal? El proceso
es simple: Nmero de bits Intervalo
1. Ignore el primer bit (el que est en el extremo izquierdo). 8 -127 ... -O +0 .. +127
2. Cambie los N - 1 bits de binario a decimal como se explic al principio del captulo. 16 -32767 ... -O +0 .. +32767
3. Agregue un signo +o- al nmero con base en el bit que est en el extremo izquierdo. 32 2147483647 ... O +0 ... +2147483647
Tabla 3,5 Rango de los enteros complemento de uno
EJEMPLOS
Interprete 10111011 en decimal si el nmero se almacen como un entero de signo y mag-
nitud. Representacin Para almacenar los enteros complemento de uno se siguen estos pasos:
Aplicaciones Actualmente, la representacin de signo y magnitud no se usa para que las computadoras
actuales almacenen nmeros con signo. Hay cuando menos dos razones para ello. Primero, las En la representacin del complemento de uno, el bit que est en el extremo izquier-
operaciones como la suma y la resta no son sencillas para esta representacin. Segundo, hay dos do define el signo del nmero. Si ste es 0, el nmero es positivo. Si es 1, el nme-
Oen esta representacin que vuelven las cosas difciles para los programadores. Sin embargo, ro es negativo.
la representacin de signo y magnitud tiene una ventaja: la transformacin de decimal a bina-
rio y viceversa es muy fcil. Esto hace que esta representacin sea conveniente para aplicacio-
nes que no necesitan operaciones con nmeros. Un ejemplo es el cambio de seales analgicas EJEMPLO 9
a seales digitales. Usted muestrea la seal analgica, asigna un nmero positivo o negativo a Ahnacene + 7 en una localidad de memoria de ocho bits usando la representacin de com-
la muestra y lo cambia a binario para enviarlo por canales de comunicacin de datos. plemento a uno.
.. Representacin de nmeros 3.3 Representacin de enteros ..
SOLUCIN Desbordamiento Si se intenta almacenar un entero complemento a uno como +256 en una localidad de memo-
ria de ocho bits, se obtiene una condicin llamada desbordamiento.
Primero se cambia el nmero a binario: 111. Se aaden cinco O de modo que haya un total
de N(8) bits: 00000111. El signo es positivo as que no se requiere realizar otra accin. 11
Actualmente la representacin del complemento a uno no se usa para almacenar nmeros en
Aplicaciones computadoras. Hayal menos dos razones para ello. Primero, las operaciones como la suma y
EJEMPLO 10
la resta no son sencillas para esta representacin. Segundo, hay dos Oen esta representacin,
Almacene -256 en una localidad de memoria de 16 bits usando la representacin del
lo cual vuelve las cosas difciles para los programadores. Sin embrago, esta representacin
complemento de uno.
tiene cierta relevancia. Primero, es la base para la siguiente representacin (el complemento
SOLUCIN a dos). Segundo, tiene propiedades que la vuelven interesante para aplicaciones de comuni-
cacin de datos tales como la deteccin y correccin de errores.
Primero se cambia el nmero a binario: 100000010. Se aaden siete O con el fin de que
haya un total de N(l6) bits: 0000000100000010. El signo es negativo, de manera que ca-
Como se mencion previamente, la representacin del complemento a uno tiene dos O ( +0 Y
da bit complementa. El resultado es 1111111011111101. 111 FORMATO DEL
-O). Esto puede crear un poco de confusin en los clculos. Adems, en el siguiente captu-
COMPLEMENTO lo se ver que si se suma un nmero y su complemento (+4 Y -4) en esta representacin, se
La tabla 3.6 muestra cmo se almacenan los nmeros complemento a uno en dos computa-
doras distintas: una que usa localidades de ocho bits y otra que usa localidades de 16 bits.
A DOS obtiene -O negativo en lugar de +0 positivo. La representacin del complemento a dos re-
suelve todos estos problemas.
Decimal Localidades de 8 bits Looalidades de 16 bits
+7 00000111 0000000000000111
El complemento a dos es la representacin de enteros ms comn, ms impor-
-7 11111100 1111111111111000
tante y de ms amplio uso en la actualidad.
+124 01111100 0000000001111100
-124 10000011 1111111110000011
+24760 Desbordamiento 0110000010111000 A continuacin se define el intervalo de los enteros complemento a dos en una computa-
-24760 Desbordamiento 1001111101000111 dora, donde N es un nmero de bits asignados a un entero complemento a dos:
Tabla 3,6 Almacenamiento de enteros complemento a uno en dos compu-
tadoras distintas Intervalo: +(2N - 1
-1)
Interpretacin Cmo se interpreta una representacin binaria del complemento a uno en decimal? El pro-
ceso implica estos pasos: La tabla 3.7 muestra los intervalos comunes actuales para las computadoras. Observe que
1. Si el bit que est en el extremo izquierdo es O (nmero positivo), en este sistema hay slo un O y que el principio del intervalo es 1 menos que aquel para el
a. se cambia el nmero entero de binario a decimal. complemento a uno.
b. se pone un signo ms ( +) enfrente del nmero.
2. Si el bit que est en el extremo izquierdo es 1 (bit negativo), Nmero de bits Intervalo
a. se complementa el nmero entero (cambiando todos los O a 1, y viceversa). 8 -128 -o +0 +127
b. se cambia el nmero entero de binario a decima1.
16 -32768 -o +0 +32767
c. se pone un signo negativo (-) enfrente del nmero.
32 -2147483648 -o +0 +2147483647
EJEMPLO 11 Tabla 3,7 Intervalo de nmeros complemento a dos
Interprete 11110110 en decimal si el nmero se almacen como un entero complemento
a uno. Para almacenar el complemento a dos se deben seguir estos pasos:
Representacin
SOLUCIN 1. El nmero se cambia a binario; el signo se ignora.
El bit en el extremo izquierdo es 1, de modo que el nmero es negativo. Primero se com- 2. Si el nmero de bits es menor que N se aaden O a la izquierda del nmero de manera
plementa. El resultado es 00001001. El complemento en decimal es 9, de manera que el que haya un total de N bits.
nmero original era -9. Observe que el complemento de un complemento es el nmero
3. Si el signo es positivo, no se necesita una accin posterior. Si el signo es negativo, to-
original. lIiI
dos los Oen el extremo derecho y el primer 1 permanecen sin cambios. El resto de los
bits se complementa.
La operacin complemento a uno significa invertir todos los bits. Si se aplica la
operacin complemento a uno a un nmero positivo, se obtiene el nmero negati-
vo correspondiente. Si Se aplica la operacin complemento a uno a un nmero ne- En la representacin del complemento a dos, el bit en el extremo izquierdo define
gativo, se obtiene el nmero positivo correspondiente. Si un nmero se el signo del nmero. Si ste es 0, el nmero es positivo. Si es 1, el nmero es ne~
complementa dos veces, se obtiene el nmero original. gativo.
.. Representacin de nmeros 3.3 Representacin de enteros ..
EJEMPLO 12 EJEMPLO 14
Almacene +7 en una localidad de memoria de ocho bits usando la representacin del Interprete 11110110 en decimal si el nmero se almacen como un entero complemento
complemento a dos. a dos.
SOLUCIN SOLUCIN
Primero se cambia el nmero a binario: 111. Se aaden cinco O con el fin de que haya un El bit en el extremo izquierdo es 1. El nmero es negativo. E11 O a la derecha se deja tal
total de N(8) bits: 00000111. El signo es positivo, as que no se requiere realizar ninguna corno est y el resto se complementa. El resultado es 00001010. El nmero complemento
otra accin. 111 a dos es 10, as que el nmero original era -10.
EJEMPLO 13
Almacene -40 en una localidad de memoria de 16 bits usando la representacin del com-
plemento a dos. La operacin complemento a dos puede lograrse al invertir todos los bits, excepto
los bits que estn en el extremo derecho hasta el primer 1 (inclusive). Si se aplica la
SOLUCIN operacin complemento a dos a un nmero positivo, se obtiene el nmero negativo
Primero se cambia el nmero a binario: 101000. Se aaden diez O de modo que haya un correspondiente. Si se aplica la operacin complemento a dos a un nmero negati-
total de N(16) bits: 0000000000101000. El signo es negativo. as que los O en el extremo vo, se obtiene el nmero positivo correspondiente. Si un nmero se complementa
derecho permanecen sin cambio hasta el primer 1 (inclusive) y el resto se complementa. dos veces, se obtiene el nmero original.
El resultado es 1111111111011000. l1li
La tabla 3.8 muestra cmo se almacenan los nmeros complemento a dos en dos computado-
Aplicaciones La representacin del complemento a dos es la representacin estndar actual para almacenar
ras distintas, una que usa localidad de ocho bits y otra que usa localidad de 16 bits.
enteros en las computadoras. En el captulo siguiente, usted ver por qu ocurre esto cuando
se considera la simplicidad de las operaciones que usan el complemento a dos.
u . Decimal Localidad de 8 bits Localidad.de 16 bits
+7 00000111 0000000000000111 RESUMEN DE LA Para darse una idea general de los mtodos de representacin de nmeros, examine la tabla
3.9. En esta tabla, suponga que N es 4. La localidad de memoria puede almacenar slo cua-
-7 11111001 1111111111111001 REPRESENTACiN
tro bits. Si usted mira el contenido de la localidad de memoria, puede interpretar el nmero
+124 01111100 0000000001111100 DE ENTEROS en una de las cuatro representaciones. Aun cuando la interpretacin es la misma para los en-
-124 10000100 1111111110000100 teros positivos, es diferente para los enteros negativos.
+24760 Desbordamiento 0110000010111000
-24760 Desbordamiento 1001111101001000
Contenido Signo Complemento Comp,lemento
Tabla 3.8 Ejemplo de representaciones de complementos a dos en dos de''!a memoria y magJitud auno ~(dos
Sin signo
computadoras
0000 O +0 +0 +0
0001 1 +1 +1 +1
Slo hay un O en el complemento a dos: En una asignacin de ocho bits: 0010 2 +2 +2 +2
0011 3 +3 +3 +3
o 00000000 0100 4 +4 +4 +4
0101 5 +5 +5 +5
0110 6 +6 +6 +6
0111 7 +7 +7 +7
Interpretacin Cmo se interpreta una representacin binaria del complemento a dos en decimal? El pro-
ceso involucra los pasos siguientes:
1000 8 -o -7 -8
1001 9 -1 -6 -7
1. Si el bit en el extremo izquierdo es O (nmero positivo), -2 -5 -6
1010 10
a. se cambia todo el nmero de binario a decimaL 1011 11 -3 -4 -5
b. se pone un signo ms (+) enfrente del nmero. 1100 12 -4 -3 -4
2. Si el bit en el extremo izquierdo es 1 (nmero negativo), 1101 13 -5 -2 -3
a. se dejan los bits en el extremo derecho hasta el primer 1 (inclusive) como estn. 1110 14 -6 -1 -2
b. se cambia todo el nmero de binario a decimal. 1111 15 -7 -O -1
c. se pone un signo negativo ( -) enfrente del nmero. Tabla 3.9 Resumen de la representacin de enteros
.. Representacin de nmeros 3.5 Representacin de punto flotante ..
Representacin Para representar un nmero en Excess, utilice el procedimiento siguiente: Parar cuando
EJEMPLO 15
Represente -125 en Excess_127 usando localidades de ocho bits. o . L_O_ _ _ _ _O _ _ _ _ ----.J
Binario
SOLUCIN
Primero se suma 127 a -25 y se obtiene 102. Este nmero en binario es 1100110. Aada Figura 3.7 Cambio de fracciones a binario
un bit para obtener una longitud de ocho bits. La representacin es 01100110. lIlII
Binario: O. 1 1 1 111
, EJEMPLO 18
3.5 REPRESENTACION DE PUNTO FLOTANTE Transforme la fraccin 004 a un binario de 6 bits.
Para representar un nmero de punto flotante (un nmero que contiene un entero y una SOLUCIN
fraccin), el nmero se divide en dos partes: el entero y la fraccin. Por ejemplo, el nmero La fraccin se escribe en la esquina izquierda. El nmero se multiplica continuamente por
de punto flotante 14.234 tiene un entero de 14 y una fraccin de 0.234. 2 y se extrae la parte entera como dgito binario. En este caso, usted no puede obtener la
representacin binaria exacta debido a que reaparece la fraccin original. Sin embargo,
CONVERSiN Para convertir un nmero de punto flotante a binario, utilice el procedimiento siguiente: puede continuar con el proceso hasta obtener seis bits.
A BINARIO 1. Convierta la parte entera a binario. Fraccin 0.4 --> 0.8 --> 1.6 --> 1.2 --> 0.4 --> 0.8 --> 1.6
2. Convierta la fraccin a binario. t t t t t t
3. Ponga un punto decimal entre las dos partes. Binario: O O 1 1 O O 1 ~
l
3.5 Representacin de punto flotante ..
.. Representacin de nmeros
Para indicar el valor original del nmero, ste se multiplica por 2e , donde e es el nmero de
bits en que se desplaz el punto decimal: positivo para el desplazamiento izquierdo y negati-
vo para el desplazamiento derecho. Un signo positivo o negativo se aade luego dependien-
do del signo del nmero original. La tabla 3.10 muestra ejemplos de la normalizacin.
GJ 11
52
28. En la representacin de nmeros (de) ____, hay 36. En la representacin de nmeros Excess_X, general- 44. La precisin del nmero fraccionario almacenado en
PREGUNTAS DE OPCiN MLTIPLE una computadora se define por el (la) _ _ __
una representacin para O. mente cul es la relacin entre X y N, la asignacin de
20. Los nicos dgitos usados en el sistema numrico ~__ _
bits? 3. signo
sonOy 1. a. enteros sin signo
a.X~2N-l b. exponente
a. decimal b. complemento a uno
c. complemento a dos b.X~2N+l c. mantisa
b. octal 1
d. a y c c. X = 2N - - 1 d. ninguno de los anteriores
c. binario
d. a o c 45. Cmo se almacena la mantisa en una computadora?
d. hexadecimal 29. Si el bit en el extremo izquierdo es O en la representa-
cin de nmeros de , entonces el nmero deci- 37. Cuando una computadora almacena una fraccin, el 3. en el complemento a uno
21. Cuando se convierte un nmero decimal a binario, se di-
mal es positivo. ____ por lo general se expresa como una potencia b. en el complemento a dos
vide repetidamente en ~~~_.
3. signo y magnitud de 2. c. como un entero sin signo
a.2
b. complemento a uno 3. numerador d. en signo y magnitud
b. 8
c. complemento a dos b. denominador
c. 10 46. Un dgito octal convertido a binario se compone por
d. todas las anteriores c. nmero entero ____ bits.
d. 16
30. Si el bit en el extremo izquierdo es 1 en la representa- d. aob
22. Cul de los siguientes mtodos de representacin de en- a. 2
cin de nmeros de , entonces el nmero deci- 38. Si el denominador de una fraccin es 1024, entonces el b.3
teros maneja tanto nmeros positivos como negativos? mal es positivo. numerador tiene de longitud. c.4
a. signo y magnitud a. signo y magnitud a. 2 d.8
b. complemento a uno b. complemento a uno
c. complemento a dos
b.8
c. complemento a dos c. 10
d. todos los anteriores d. ninguna de las anteriores d. 16 EJERCICIOS
23. En los enteros sin signo, una asignacin de cuatro bits 31. Cul es el mtodo de representacin de nmeros de uso 47. Cambie los siguientes nmeros decimales a enteros de
39. Si el numerador de una fraccin tiene tres bits de longi-
pennite ~~~_ nmeros negativos. ms difundido hoy da para almacenar nmeros en una ocho bits sin signo si es posible.
tud, entonces el denominador es ____ o
a. 7 computadora? a.23
b. 8 a. 2
a. signo y magnitud b. 121
b.8
c. 15 b. complemento a-uno c. 34
d. 16 c. 10
c. complemento a dos d.342
d. 16
24. En todas las representaciones de enteros sin signo, una d. enteros sin signo
40. Cul es la representacin de 5 en Excess_128? 48. Cambie los siguientes nmeros decimales a enteros sin
asignacin de cuatro bits permite nmeros no 32. Cul mtodo de representacin de nmeros se usa con
a. 00000101 signo de 16 bits.
negativos. frecuencia para convertir seales analgicas en seales
digitales? b. 10000100 a. 41
a. 7
c. 10000101 b.411
b. 8 a. enteros sin signo
b. signo y magnitud d. 10000001 c. 1234
c. 15
d.342
d. 16 c. complemento a uno 41. Cuando una fraccin se nonnaliza, hay un ____ a
d. byc la izquierda del punto decimal. 49. Cambie los siguientes nmeros decimales a enteros de
25. En la representacin de nmeros (de) ____ o 1111
33. Los enteros sin signo pueden utilizarse para ~___. a. bit O signo y magnitud de ocho bits.
en la memoria representa -O.
a. conteo b. bit 1 a. 32
a. enteros sin signo
b. direccionaITento c. secuencia de bits aleatoria b. -101
b. signo y magnitud
c. procesamiento de seales d. aob c. 56
c. complemento a uno
d. ayb d. 129
d. complemento a dos 42. Un nmero normalizado se multiplica por _ _ __
34. Cul mtodo de representacin de nmeros se usa con donde e es el nmero de bits que se desplaz el punto 50. Cambie los siguientes nmeros decimales a enteros de
26. En la representacin de nmeros (de) ____ , 1111 frecuencia para almacenar el valor exponencial de una decimal. signo y magnitud de 16 bits.
en la memoria representa -1. fraccin? 3. 2e a. 142
3. enteros sin signo
a. enteros sin signo b. e!2 b. -180
b. signo y magnitud b. complemento a uno
c. complemento a uno c. e2 c. 560
c. complemento a dos d.2' d.2456
d. complemento a dos d. Excess_X
43. Cuando una fraccin se nonnaliza, la computadora al- 51. Cambie los siguientes nmeros decimales a enteros
27. En la representacin de nmeros (de) ~~~. hay dos 35. En una conversin Excess_X, usted el nme-
representaciones para O. macena el (la) ~~~_. complemento a uno de 16 bits.
ro mgico X al nmero que se va a convertir.
a. signo y magnitud a. suma
3. signo a. 162
b. complemento a uno b. resta b. exponente b. -110
c. complemento a dos c. multiplica
c. mantisa c. 2560
d. ayb d. todos los anteriores d. 12123
d. divide
.. Representacin de nmeros 3.9 Prctica ..
52. Cambie los siguientes nmeros decimales a enteros 60. Los nmeros siguientes son nmeros binarios comple- 66. Normalice los siguientes nmeros binarios de punto flo- Original Nuev~ Original Nueva
complemento a dos de ocho bits. mento a dos. Muestre cmo cambiar el signo del nmero. tante. Muestre de manera explcita el valor del expone- 1/ 0.25 1/4
0.5 2
a. -12 a. 01110111 nente despus de la normalizacin. 1/
0.125 '/s 0.0625 16
b. - 101 b. 11111100 a. 1.10001
0.03125 1/ 0.015625 '/64
c. 56 c. 01110111 b. 2 3 X 111.1111 32
,
4.1 OPERACIONES ARITMETICAS
Las operaciones aritmticas involucran la suma, la resta, la multiplicacin, la divisin y as
por el estilo. Usted puede aplicar estas operaciones a los enteros y a los nmeros de punto flo-
Operaciones OPERACIONES
tante. Primero nos concentraremos en los enteros.
Todas las operaciones aritmticas como la suma, la resta, la multiplicacin y la divisin pue-
den aplicarse a los enteros. Sin embrago, slo nos concentraremos en la suma y la resta. La
Suma en el La suma de nmeros en el complemento a dos es como la suma de nmeros en el sistema de-
complemento cimal; usted suma columna por columna y si existe un acarreo, ste se suma a la siguiente
columna. Sin embargo, debe recordar que est tratando con dgitos binarios, no con dgitos
a dos
En los captulos 2 y 3 mostramos la manera de almacenar diferentes tipos de datos en una decimales. Cuando se suman dos bits el resultado es O o 1. Asimismo, se debe acarrear un
computad?ra. En este ~~p~tulo, mostramos cmo hacer operaciones con bits. Las operacio- 1 que se transmite a la siguiente columna. Por consiguiente, necesita ser cuidadoso al sumar
nes con bIts pueden diVIdIrse en dos amplias categoras: operaciones aritmticas y opera- dos o tres bits. La tabla 4.1 es una gua para sumar bits.
ciones lgicas (figura 4.1).
Nmero de {' Resultado Acarreo ..
Ninguno O ..
Uno 1 .
Operaciones
con bits Dos 2 I
Tres 3 1
I Tabla 4.1 Suma con bits
l
I Aritmticas
I I Lgicas
I Ahora podemos definir la regla para sumar dos enteros en el complemento a dos:
.
FIgura 4.1 OperacIones con bits
EJEMPLO!
Sume dos nmeros en la representacin del complemento a dos:
SOLUCIN
Estos nmeros en el complemento a dos se representan como 00010001 y 00010110 para una
localidad de memoria de ocho bits. El resultado es similar para cualquier tamao de asig-
nacin.
Ea Operaciones con bits
4.1 Operaciones aritmticas ..
Acarreo 1
Un error resalta de inmediato aqu. El bit en el extremo izquierdo del resultado es 1, 10
00010001+ cual significa que el nmero es negativo (esperamos un nmero positivo). Cul es este
O O O 101 1 O nmero? El complemento a dos es 126. Esto significa que el nmero es -126 en lugar de
130. En la siguiente seccin sobre desbordamiento tratamos este problema. 11
Resultado 00100111
El resultado es 39 en decimal. El desbordamiento es un error que ocurre cuando usted intenta almacenar un nmero que no
Desbordamiento
est dentro del intervalo definido por la asignacin. Cuando sume nmeros en el complemen-
EJEMPLO 2
to a dos usando N bits, asegrese de que cada nmero y el resultado estn en el intervalo de-
Sume 24 Y -17. Ambos nmeros estn en formato de complemento a dos. finido para la representacin del complemento a dos. En el captulo 3, mencionamos que el
intervalo de nmeros que pueden representarse en el complemento a dos est entre _2N - 1 y
(+24) + (-17) ---> (+7) 2N - 1 _1.
SOLUCIN
Los nmeros en el complemento a dos pueden representarse como sigue:
Intervalo de nmeros en la representacin del complemento a dos:
Acarreo 1 1 1 11 _(2N - 1) - - o - - + (2"-1 -1)
00011000+
1 1 1 O1 1 1 1
Resultado OOOOO1 1 1 Para el ejemplo 4, el intervalo es -2 8 - 1 a +28-1 -1, lo cual es -128 a 127. El resultado
de la suma (130) no est en el intervalo. Pero otra pregunta sigue sin respuesta: Por qu la
Observe que el resultado es +7 Y que el ltimo acarreo (a partir de la columna en el ex- respuesta es -1267 La respuesta puede encontrarse si usted visualiza los nmeros en el com-
tremo izquierdo) se descarta. plemento a dos como puntos de un crculo (Fig, 4.2).
EJEMPLO 3
Sume - 35 Y 20. Ambos nmeros estn en formato de complemento a dos.
SOLUCIN
Los nmeros en el complemento a dos pueden representarse como sigue:
Acarreo 111
-64 63
11011101+
O O O 1 O 100
Resultado 11110001
Observe que el resultado es -15 (si se aplica la operacin complemento a dos al resulta-
do, se obtiene 15). -128 127
( +127) + (+3) ---> (+ 130) Comience desde O y sume 1 sin interrupcin hasta que obtenga 127. Si suma un 1 ms no ob-
tiene 128, sino -128. Si suma otro 1, obtiene -127. Sume un 1 ms y obtendr -126. Esto
SOLUCIN
fue lo que ocurri en el ejemplo 4.
Los nmeros en el complemento a dos pueden representarse como sigue:
Acarreo 1 1 1 1 1 1 1
01111111+ Cuando realice operaciones aritmticas con nmeros en una computadora. recuer-
OOOOOO 1 1 de que cada nmero y el resultado deben estar en el intervalo definido por la asig-
nacin con bits.
Resultado 10000010
.. Operaciones con bits 4.2 Operaciones lgicas El
Resta en el Una de las ventajas de la representacin del complemento a dos es que no hay diferencia en- SOLUCIN
complemento tre la suma y la resta. Para restar, se invierte (complemento a dos) el segundo nmero y se su- El exponente del primer nmero es 132-127, o 5. El exponente del segundo nmero es
a dos ma. En otras palabras, las dos expresiones siguientes son lo mismo: 130-127, o 3. Por consiguiente, los nmeros son:
OPERACIONES Todas las operaciones aritmticas como la suma, la resta, la multiplicacin y la divisin pue-
ARITMTICAS den aplicarse a los nmeros de punto flotante (flotantes). Sin embargo, slo nos concentra-
EN NMEROS mos en la suma y la resta porque la multiplicacin es simplemente una suma sucesiva y la
divisin, una resta sucesiva.
DE PUNTO
La suma y la resta en los flotantes, cuando se almacenan en formato IEEE, son muy com-
FLOTANTE
plicadas y detalladas. No podemos cubrir todos los detalles y casos especiales aqu, as que 4.2 OPERACIONES LGICAS
slo damos el concepto general.
Un solo bit puede ser ya sea O o l. Usted puede interpretar el O como el valor lgico falso y
el 1 como el valor lgico verdadero. De esta manera, un bit almacenado en la memoria de una
Suma y resta La suma y la resta para los nmeros de punto flotante son un proceso. Los pasos son como computadora puede representar un valor lgico que es ya sea falso o verdadero.
sigue: Si un bit se interpreta como un valor lgico, entonces pueden aplicarse las operaciones l-
gicas a este bit. Una operacin lgica acepta uno o dos bits para crear slo un bit. Si la ope-
111 Revise los signos.
racin se aplica slo a una entrada, es una operacin unaria. Si sta se aplica a dos bits es
a. Si los signos Son iguales, sume los nmeros y asigne el signo al resultado. una operacin binaria (figura 4.3).
b. Si los signos Son diferentes, compare los valores absolutos, reste el menor del mayor
y asigne el signo del mayor al resultado.
111 Desplace los puntos decimales para igualar los exponentes. Esto significa que si los ex-
I-I--'~
ponentes no son iguales, el punto decimal del nmero con el exponente menor se mue-
l1li
111
111
ve a la izquierda para igu~ar los exponentes.
a. Operador unario
Salida
Entrada1
Entrada ---+1
Binario
b. Operador binario
Salida
o 10000100 10110000000000000000000 En esta seccin se analiza un operador unario y tres operadores binarios, los cuales se
O 10000010 01100000000000000000000 muestran en la figura 4.4.
.. Operaciones con bits 4.2 Operaciones lgicas ..
Operacin NOT .
lgica
1 --j---i NOT'>o--l-- o
O--~--~Nm~J--i---
Entrada Salida
AND OR XOR
,><>-+-0
Figura 4.4 Operaciones lgicas
TABLAS DE VERDAD Una manera de mostrar el resultado de una operacin lgica es con una tabla de verdad. Una Figura 4.6 Operador NOT
tabla de verdad lista todas las combinaciones de entrada posibles con su salida correspon-
diente. En el caso de un operador unaria como NOT, hay dos posibilidades de salida. En el
caso de un operador binario hay cuatro posibilidades de salida. La figura 4.5 muestra las ta-
En esta seccin se analizan los operadores binarios: AND, OR Y XOR.
blas de verdad para NaT, AND, OR Y XOR. OPERADORES
BINARIOS
AND El operador AND es un operador binario. Este operador toma dos entradas (dos patrones con
Operador AND
x y xAl'IDy bits) y crea una salida (patrn con bits). AND aplica la tabla de verdad a un par con bits, uno
Nar o o o de cada entrada y crea la salida correspondiente (figura 4.7). Se utiliz el smbolo AND que
~x NOTx" o 1 o aplica disyuncin a cada par con bits y un cuadro AND que es una operacin que se aplica a
o o o
cada par de patrones. Para cada par con bits de entrada, el resultado es 1 si y slo si ambos
bits son 1; de lo contrario, es o.
OR XOR
x y x OR y x y xXORy
o o o o o o
o 1 o 1
o o Entrada
o
OPERADOR UNARIO El nico operador unano que analizamos es el operador NOT. AND O
AND
Operador NOT El operador NOT tiene una entrada (un patrn con bits). Este operador invierte los bits, es de- Salida
cir, cambia el O a 1 y ella O. La figura 4.6 muestra el resultado de aplicar el operador NOT
a un patrn con bits. En ella, aparece el smbolo NOT convencional que convierte cada bit y 1
un cuadro NOT que es una operacin aplicada a todo el patrn. Observe que una tabla de ver-
dad se aplica a cada bit individual.
1 O
EJEMPLO 7 Entrada
Use el operador NOT en el patrn con bits 10011000.
Figura 4.7 Operador AND
SOLUCIN
La solucin es:
SOLUCIN EJEMPLO 9
La solucin es: Utilice el operador OR en los patrones con bits 10011000 y 00110101.
Operador OR El operador OR es un operador binario. Este operador toma dos entradas (dos patrones con
Operador XOR El operador XOR es un operador binario, que toma dos entradas (dos patrones con bits) y
bits) y crea una salida (patrn de bis). OR aplica la tabla de verdad a un par con bits, uno de
crea una salida (un patrn con bits). XOR aplica la tabla de verdad a un par con bits, uno de
cada entrada, y crea la salida correspondiente (figura 4.9). En la figura se utiliz el smbolo
cada entrada, y crea la salida correspondiente (figura 4.11). En la figura se utiliz el smbolo
OR convencional que incluye cada par con bits y un cuadro OR que es una operacin aplica-
XOR convencional que aplica exclusin a cada par con bits y un cuadro XOR que es una ope-
da al par de patrones. Para cada par con bits de entrada, el resultado es O si y slo si ambos
bits son O; de lo contrario, es 1. racin aplicada al par de patrones. Para cada par con bits de entrada el resultado es Osi y s-
lo si ambos bits son iguales; de lo contrario es 1.
Entrada Entrada
o O 1 '" o 1
}-I--- O O
OR XOR
Salida Salida
-----r--l--
, ,
, "
O O
Entrada Entrada
EJEMPLO 10
Objetivo
Use el operador XOR en los patrones con bits 10011000 y 00110101.
X X X X X X X X
SOLUCIN I l I I l I I I
La solucin es la siguiente:
II ) O O O O O X X X
Salida
Patrn 2 00110101
O O O O O 1 1 1
Resultado 10101101 Mscara
Regla inherente del operador XOR Un aspecto interesante sobre el operador XOR es Figura 4.14 Ejemplo de apagado con bits especficos
que si un bit en una entrada es 1, el resultado es el inverso del bit correspondiente en la otra
entrada. Definimos este hecho como la regla inherente del operador XOR (figura 4.12).
EJEMPLO 11
Use una mscara para apagar (borrar) los cinco bits en el extremo izquierdo de un patrn.
Pruebe la mscara con el patrn 10100110.
(1) XOR (X) NOT(X)
SOLUCIN
La mscara es 00000111. El resultado de aplicar la mscara es:
(X) XOR (1) NOT(X)
Objetivo 10100110 AND
Figura 4.12 Regla inherente del operador XOR
Mscara 00000111
Resultado 00000110 l1li
APLICACIONES Las tres operaciones binarias lgicas pueden utilizarse para modificar un patrn con bits. Pue-
den hacer disyuncin, conjuncin o invertir bits especficos. El patrn con bits que se va a EJEMPLO 12
modificar se aplica disyuncin (AND), conjuncin (OR) o exclusin (XOR) con un segundo
Imagine una planta de energa que bombea agua a una ciudad usando ocho bombas. Los
patrn con bits, el cual se conoce como mscara. La mscara se usa para modificar otro pa-
estados de las bombas (encendido o apagado) pueden representarse mediante un patrn de
trn con bits (figura 4.18).
ocho bits. Por ejemplo, el patrn 11000111 muestra que las bombas 1 a 3 (a partir de la
derecha), 7 y 8 estn encendidas, mientras que las bombas 4, 5 Y 6 estn apagadas. Ahora
suponga que la bomba 7 se apaga. Cmo puede mostrar esta situacin una mscara?
--
Objetivo ----'.!
Operador SOLUCIN
binario I--~ Salida
Mscara ---+1 Se utiliza la mscara 10111111 operada AND con el patrn objetivo. El nico bit O (bit 7)
en la mscara apaga el sptimo bit en el objetivo.
Por ejemplo, suponga que quiere encender los cinco bits en el extremo izquierdo de un pa- Para comprender por qu operan estas reglas, remtase a la regla inherente del operador XOR
trn de ocho bits. La mscara debe tener cinco 1 a la izquierda seguidos por tres O (figura 4.15). en la figura 4.12.
Por ejemplo, para complementar los cinco bits en el extremo izquierdo de un patrn de
ocho bits, haga una mscara que comience con cinco 1 a la izquierda seguidos por tres O (fi-
gura 4.16).
Objetivo
xxxxxxxx
Objetivo
1 1 1 I 1 I I I
~~~~OFR-F-F~~~l
X X X X X X X X
1 1 1 1 X X X
l l l l l I I I Nota: X es el complemento de X.
11111000
I Salida
I i I I
XOR
I ~ X X
-
X X X
Salida
X X X
Mscara
1 1 1 1 1 O O O
Figura 4.15 Ejemplo de determinacin con bits especficos Mscara
SOLUCIN Utilice una mscara para revertir los cinco bits en el extremo izquierdo de un patrn. Prue-
be la mscara con el patrn 10100110.
La mscara es 11111000. El resultado de aplicar la mscara es:
SOLUCIN
Objetivo 10100110 OR
La mscara es 11111000. El resultado de aplicar la mscara es:
Mscara 11111000
Entrada Entrada
4.5 RESUMEN
abcdefgh abcdefo-h
Desplazamiento I
I I I I I I I I
.' .' ,'/" ".-,,;' I
I I I I I
\, '-, ", I'-, I I Desplazamiento a
11 Usted puede realizar operaciones aritmticas o lgicas
sobre bits.
11 El resultado de la operacin binaria AND es verdadero
slo si ambas entradas son verdaderas.
a la izquierda ~>~F>"'"~~""'";"'F""'";...~. .. '.. '.. '... '.. '~ '~ ~ la derecha
t..
11 La mayora de las computadoras utiliza el mtodo de re- 11 El resultado de la operacin binaria OR es falso 'slo si
I I I I presentacin de enteros del complemento a dos. ambas entradas son falsas.
bcdefghO Oabcdefg
Salida Salida 11 Si hay un acarreo despus de la suma de los dgitos en el l1li El resultado de la operacin binaria XOR es falso si am-
extremo izquierdo, el acarreo se descarta. bas entradas son iguales.
Figura 4.17 Operaciones de desplazamiento 11 Para restar en el complemento a dos slo se complemen- 11 Una mscara es un patrn con bits que se aplica a un pa-
ta el nmero a ser restado y se suma. trn con bits objetivo para lograr un resultado especfico.
11 Para apagar (borrar) un bit en un patrn con bits objeti-
11 Los nmeros a ser sumados deben estar dentro del inter-
SOLUCIN vo, se pone el bit de la mscara correspondiente en O y
valo definido por la asignacin con bits.
Si un patrn con bits representa un nmero sin signo, una operacin de desplazamiento a se utiliza el operador AND.
11 El trmino desbordamiento describe una condicin en la
11 Para encender un bit en un patrn con bits objetivo, se
la derecha divide el nmero por 2 (divisin de enteros). El patrn 00111011 representa 59.
cual un nmero no est dentro del intervalo definido por
Cuando el nmero se desplaza a la derecha, se obtiene 00011101, el cual es 29. Si el n- pone el bit de la mscara correspondiente en 1 y se utili-
la asignacin con bits.
mero original (59) se desplaza a la izquierda, se obtiene 01110110, el cual es 118. lIiI za el operador ORo
111 La operacin lgica sobre bits puede ser unaria (una en- 11 Para complementar un bit en un patrn con bits objetivo,
trada) o binaria (dos entradas). se pone el bit de la mscara correspondiente en 1 y se uti-
EJEMPLO 17
11 El operador NOT unario invierte su entrada. liz~ el operador XOR.
Utilice una combinacin de operaciones lgicas y de desplazamiento para encontrar el va-
lor (O o 1) del cuarto bit (a partir de la derecha) en un patrn.
SOLUCIN
Se utiliza la mscara 00001000 operada AND con el objetivo para mantener el cuarto bit 4.6 PRCTICA
y borrar el resto de los bits.
PREGUNTAS DE REPASO 14. Cul es la regla inherente del operador AND?
abcdefgh AND
1. Cul es la diferencia entre una operacin aritmtica y 15. Cul es la regla inherente del operador OR?
O OO O 1 O O O
una operacin lgica? 16. Cul es la regla inherente del operador XOR?
OOOOe OOO
2. Cmo se relaciona la multiplicacin con la suma? D un
17. Qu operacin binaria puede usarse para encender bits?
ejemplo.
Para tener aCCeso al valor del cuarto bit (e), se desplaza el nuevo patrn tres posiciones a Qu patrn con bits debe tener la mscara?
la derecha de modo que el bit especfico se coloque en la posicin del extremo derecho. 3. Qu sucede con un acarreo de la columna en el extremo
18. Qu operacin binaria puede usarse para apagar bits?
izquierdo en la suma final?
Qu patrn con bits debe tener la mscara?
OOOOeOOO ~ OOOOOeOO ~ OOOOOOeO ~ OOOOOOOe 4. Puede N, la asignacin con bits, ser igual al? Por qu
s o por qu no? 19. Qu operacin binaria puede usarse para revertir bits?
Ahora es muy fcil probar el valor del nuevo patrn como un entero sin signo. Si el valor Qu patrn con bits debe tener la mscara?
es 1, el bit original fue 1; si el valor es O, el bit original fue O. 111 5. Cul es la definicin del trmino desbordamiento?
6. En la suma de nmeros de punto flotante, cmo se ajusta
la representacin de nmeros con diferentes exponentes? PREGUNTAS DE OPCiN MlTIPLE
, 7. Cul es la diferencia entre una operacin unaria y una 20. es una operacin aritmtica con bits.
4.4 TERMINOS CLAVE operacin binaria?
a. El OR exclusivo
8. Menciona cules son las operaciones binarias lgicas. b. El NOT unario
acarreo forzar a 1 operacin unaria 9. Qu es una tabla de verdad? c. La resta
apagar mantisa operador binario 10. Qu hace el operador NOT? d. Todos los anteriores
borrar mscara operador NOT
11. Cundo es verdadero el resultado de una operacin 21. es un operador lgico con bits.
complementar nmero de punto flotante operador OR
AND?
complemento a dos operador Ai'lD operador unario a. El OR exclusivo
desbordamiento operacin aritmtica operador XOR 12. Cundo es verdadero el resultado de una operacin OR? b. El NOT unario
encender operacin binaria tabla de verdad 13. Cundo es verdadero el resultado de una operacin c. El AND binario
forzar a O operacin lgica XOR? d. Todos los anteriores
.. Operaciones con bits 4.6 Prctica ..
22. El mtodo de representacin de enteros de es 29. Si usted est sumando dos nmeros, uno de los cuales tie- 37. Para complementar todos los bits de un patrn con bits, 43. Sin hacer reahnente el problema, puede decir cul de las
el mtodo ms comn para almacenar enteros en la me- ne un valor de exponente de 7 y el otro un valor exponen- hace una mscara de todos los bits en 1 y luego _ _ __ siguientes opciones crea desbordamiento si los nmeros y
moria de la computadora. te de 9, necesita desplazar el punto decimal del nmero el patrn con bits y la mscara. el resultado estn en notacin de complemento a dos de
menor _ _ __ ocho bits?
a. signo y magnitud a. operaAND
b. complemento a uno a. un lugar a la izquierda b. opera OR a. 32 + 105
c. complemento a dos b. un lugar a la derecha b. 32 - 105
c. operaXOR
d. enteros no asignados c. dos lugares a la izquierda c. -32 + 105
d.operaNOT
d. dos lugares a la derecha d. -32 - 105
23. En la suma del complemento a dos, si hay un acarreo fi- 38. Para apagar (forzar a O) todos los bits de un patrn con
nal despus de la suma de la columna en el extremo iz- 30. El operador binario ____ toma dos entradas para 44. Muestre el resultado de las operaciones siguientes supo-
producir una salida. bits, hace una mscara de todos los los bits en O y luego
quierdo, ____ el patrn con bits y la mscara. niendo que los nmeros se almacenan en la representa-
a. ste se suma a la columna en el extremo derecho
a. AND cin de complemento a dos en 16 bits. Muestre el resul-
b.OR a. operaAND tado en notacin hexadecimal.
b. ste se suma a la columna en el extremo izquierdo
c. XOR b. opera OR
c. ste se descarta a. x012A + xOE27
d. todos los anteriores c. operaXOR b. x712A + x9EOO
d. aumenta la longitud con bits
31. El operador unario _ _ _ _ invierte su nica entrada. d.operaNOT c. x8011 + xOOO 1
24. Para una asignacin de ocho bits, el nmero decimal ms
a. AND 39. Para encender (forzar a 1) todos los bits de un patrn d. xE12A + x9E27
pequeo que puede representarse en la forma de comple-
mento a dos es _ _ __ b.OR con bits, hace una mscara de todos los bits en 1 y luego 45. Muestre el resultado de las siguientes operaciones de
c. NOT _ _ _ _ el patrn con bits y la mscara. punto flotante. Primero convierta cada nmero a notacin
a. -8
d. XOR a. operaAND binaria y realice la operacin; luego convierta el resulta-
b. -127
32. Para el operador binario ____ , si la entrada es dos O b. opera OR do de nuevo a notacin decimal.
c. -128
d. -256 la salida es un O. c. opera XOR a. 34.075 + 23.12
a. AND d. opera NOT b. -12.00067 + 451.00
25. Para una asignaci~ de ocho bits, el nmero decimal ms b.OR c. 33.677 - 0.00056
grande que puede representarse en la forma de comple-
c. XOR d. -344.23 - 123.8902
mento a dos es _ _ __
d. todos los anteriores EJERCICIOS
46. Muestre el resultado de las siguientes operaciones de
a. 8 40. Usando una asignacin de ocho bits, primero convierta
33. Para el operador binario _ _ _ _ ., si la entrada es dos 1 punto flotante. Primero convierta cada nmero a notacin
b. 127 cada uno de los siguientes nmeros a complemento a
la salida es O. binaria y realice la operacin; luego convierta el resulta-
c. 128 dos, realice la operacin y luego convierta el resultado a
a. AND do de regreso a notacin decimal.
d.256 decimal.
b.OR a. 23.125 + 12.45
26. En la representacin del complemento a dos con una c. XOR a. 19 + 23
b. 0.234 - 7.192
asignacin de cuatro bits, usted obtiene cuan- d. todos los anteriores b. 19 - 23
c. -0.345 + 45.123
do le suma 1 a 7.
34. Para la operacin binaria AND, slo una entrada de c. -19 + 23 d. -0.234 + 5.345
a. 8 ____ da una salida de 1. d. -19 - 23
47. En cul de las siguientes situaciones nunca ocurre un
b. 1 a. dos O 41. Usando una asignacin de 16 bits, primero convierta ca- desbordamiento? Justifique su respuesta.
c. -7 b. dos 1 da uno de los siguientes nmeros a complemento a dos, a. la suma a dos enteros positivos
d. -8 c. unOyun 1 realice la operacin y luego convierta el resultado a deci- b. la suma de un entero positivo y un entero negativo
27. En la representacin del complemento a dos con una d. cualquiera de los anteriores mal. c. la resta de un entero positivo y un entero negativo
asignacin de cuatro bits, usted obtiene cuan- 35. Para la operacin binaria OR, slo una entrada de a. 161 + 1023 d. la resta de dos enteros negativos
do le sumaS a 5. ____ da una salida de O. b. 161 - 1023
48. Muestre el resultado de las operaciones siguientes:
a. -5 a. dos O c. -161 + 1023
b. -6 a. NOTx99
b. dos 1 d. -161 - 1023
c. -7 c. uuOyun 1 b. NOTxFF
d. 10 d. cualquiera de los anteriores 42. Cul de las siguientes situaciones crea desbordamiento c. NOTxOO
si los nmeros y el resultado se representan en la nota- d. NOTxOI
28. Si el exponente en Excess_127 es el binario 10000101. el 36. Usted utiliza un patrn con bits llamado ____ para
cin de ocho bits usando complemento a dos? 49. Muestre el resultado de las operaciones siguientes:
exponente en decimal es ____ o modificar otro patrn con bits.
a. mscara a. 11000010 + 00111111 a. x99 AND x99
a.6
b. acarreo b. 00000010 + 00111111 b. x99 AND xOO
b. 7
c. 8 c. flotante c. 11000010 + 11111111 c. x99 AND xFF
d. 9 d. byte d. 00000010 + 11111111 d. xFF AND xFF
Operaciones con bits
50. Muestre el resultado de las operaciones siguientes: 54. Necesita encender (forzar a 1) los cuatro bits en el extre-
a. x990Rx99 mo derecho de un patrn. Muestre la mscara y la opera-
b. x99 OR xOO cin.
c. x990RxFF
55. Necesita complementar los tres bits en el extremo dere-
d. xFFORxFF cho y los dos bits en el extremo izquierdo de un patrn.
51. Muestre el resultado de las operaciones siguientes: Muestre la mscara y la operacin.
a. x99 XOR x99
56. Necesita apagar los tres bits en el extremo izquierdo y
b. x99 XOR xOO encender los dos bits en el extremo derecho de un patrn.
c. x99 XOR xFF Muestre las mscaras y las operaciones.
d. xFF XOR xFF
57. U se la operacin de desplazamiento para dividir un n-
52. Muestre el resultado de las operaciones siguientes:
mero sin signo por 4.
a. NOT (x99 OR x99)
b. x99 OR (NOT xOO) 58. Use la operacin de desplazamiento para multiplicar un
c. (x99 AND '(33) OR (xOO AND xFF) nmero sin signo por 8.
d. (x99 OR x33) AND (xOO OR xFF)
59. Utilice una combinacin de operaciones lgicas y de des-
53. Necesita apagar (forzar a O) los cuatro bits en el extremo plazamiento para extraer el cuarto y el quinto bits de un
izquierdo de un patrn. Muestre la mscara y la opera- nmero sin signo.
cin.
5.1 Unidad central de procesamiento (CPU) ..
OrganJ;~acinde
unidad de control y una serie de registros (figura 5.2).
la co."putadora -';<
~=~!RI
~=~!R2
ALU
~=~!R3
'---_---'! 1
Unidad de control
Registros
Operacin lgica La operacin unaria lgica ms simple es la operacin NOT. Las operaciones binarias lgi-
-----------------------------------~ ,,
.. ====
cas ms simples son AND, OR YXOR. Estudiamos estas operaciones en el captulo 4. La uni-
CPU
,,,
Memoria dad de control es responsable de la seleccin de una de estas operaciones.
,
,,, REGISTROS Los registros son localidades de almacenamiento independientes que alojan los datos tempo-
ralmente. Se necesitan varios registros para facilitar la operacin del CPU. Algunos de estos
,,
registros estn en la figura 5'.2.
I
, ., .. I
,,
,,
I I ?/<\ I
,,,
,, Registros de datos En el pasado, las computadoras slo tenan un registro para alojar por turnos uno de los da-
,
,,, ef) ,,, tos de entrada (el otro dato de entrada venia directamente de la memoria) o el resultado. Ac-
"
tualmente las computadoras utilizan docenas de registros dentro del CPU para acelerar las
, ,
,,, ,,, operaciones debido a que cada vez ms las operaciones complejas se realizan usando hard-
Entrada/salida ware (en vez de usar software) y se requieren varios registros para mantener los resultados in-
-----------------------------------~ termedios. Por simplicidad, slo mostramos tres registros generales: dos para entrada de datos
Hardware de computadora
y uno para salida de datos (registros RI, R2 Y R3) en la figura 5.2.
Figura 5.1 Hardware de computadora
Registro Hoy da, las computadoras almacenan en la memoria no slo datos sino tambin el programa
de instruccin correspondiente. El CPU es responsable de buscar las instrucciones, una por una, desde la
memoria, almacenarlas en el registro de instrucciones (registro 1 en la figura 5.2), interpre-
tarlas y ejecutarlas. Este tema se estudiar en una seccin posterior.
5.2 Memoria principal ..
.. Organizacin de la computadora
Contador Otro registro comn en el CPU es el contador de programa (registro PC en la figura 5.2).
de programa El contador de programa hace un seguimiento de la instruccin que se ejecuta actualmente.
Despus de la ejecucin de la instruccin, el contador se incrementa para apuntar a la direc-
cin de la siguiente instruccin en la memoria.
0000000000000000 01111001
0000000000000001 10010100
UNIDAD El tercer componente de cualquier CPU es la unidad de control. La unidad de control es co- 0000000000000010 lOOOOIlOO ..... .
DE CONTROl.. mo la parte del cerebro humano que controla la operacin de cada parte del cuerpo. El con-
trol se logra a travs de lneas de control que pueden estar activas o inactivas. Por ejemplo,
una ALU simple necesita realizar tal vez diez operaciones diferentes. Para especificar estas
operaciones se necesitan cuatro lneas de control desde la unidad de control al ALU. Cuatro
lneas de control pueden defInir 16 situaciones diferentes (24 ), diez de las cuales pueden usar-
se para operaciones aritmticas y lgicas. El resto puede utilizarse para otros propsitos. Pue-
de designar una linea de control inactiva como O y una lnea de control activa como 1; los
estados de las lneas de control pueden designarse como 0000, 0001, 0010 ... 1111. Se puede
1111111111111101
definir 0000 (todas las lneas de control inactivas) para denotar ninguna operacin, 0001 pa-
ra denotar incremento, 0010 para denotar decremento y as por el estilo. 1111111111111110
Memoria
La memoria principal es otro subsistema en una computadora (figura 5.3). Es una coleccin
de localidades de almacenamiento, cada una con un identificador nico conocido como direc- Direcciones como Puesto que las computadoras operan mediante el almacenamiento de nmeros como patrones
cin. Los datos se transfieren hacia y desde la memoria en grupos de bits llamados palabras. patrones de bits de bits, la direccin en s misma tambin se representa como un patrn de bits. As que si una
computadora tiene 64 kilobytes (2 16) de memoria con un tamao de palabra de 1 byte, enton-
Una palabra puede ser un grupo de 8 bits, 16 bits, 32 bits o en ocasiones 64 bits. Si la pala-
bra es de ocho bits, se hace referencia a ella como un byte. El trmino byte es tan comn en ces para definir una direccin, se necesita un patrn de 16 bits. Recuerde del captulo 3 que las
direcciones pueden representarse como enteros sin signo (usted no tiene direcciones negativas).
las ciencias de la computacin, que a veces se hace referencia a una palabra de 16 bits como
una palabra de 2 bytes, o a una palabra de 32 bits como una palabra de 4 bytes. En otras palabras, la primera localidad se refiere como una direccin 0000000000000000 (di-
reccin O) y la ltima locacin se refiere como una direccin 1111111111111111 (direccin
65535). En general, si una computadora tiene N palabras de memoria, se necesita un entero sin
Para tener acceso a una palabra en la memoria se requiere un identificador. Aunque los pro- signo con un tamao de log2 N bits para referirse a cada localidad de memoria.
ESPACIO DE
DIRECCIONAMIENTO gramadores utilizan un nombre para identificar una palabra (o una coleccin de palabras), en
el nivel. del hardware cada palabra se identifica por una direccin. El nmero total de loca-
lidades nicas identificables en la memoria se llama espacio de direccionamiento. Por ejem-
Las direcciones de memoria se defmen usando enteros binarios sin signo.
plo, una memoria con 64 kilobytes y un tamao de palabra de un byte tienen un espacio de
direccionamiento que vara de O a 65535.
La tabla 5.1 muestra las unidades usadas para referirse a la memoria. Observe que la tenni-
nologa es engaosa; aproxima el nmero de bytes en potencias de 10, pero el nmero de by- EJEMPLO 1
tes real est en potencias de 2. Las unidades en potencias de 2 facilitan el direccionamiento.
Una computadora tiene 32 MB (megabytes) de memoria. Cuntos bits se necesitan para
asignar una direccin a cualquier byte individual en la memoria?
Unidad Nmero exc,to,' rl:e bytes Aproximacin
kilobyte 10
2 (1024) bytes 103 bytes SOLUCIN
megabyte 220 (1048576) bytes 106 bytes El espacio de direccionamiento de memoria es 32 MB o 225 (25 X 220). Esto significa que
se necesitan log2 225 o 25 bits para asignar una direccin a cada byte. lIlI
gigabyte 2 30 (1 073741824) bytes 109 bytes
40 12
terabyte 2 (1 024) bytes 10 bytes EJEMPLO 2
petabyte 250 (1024) bytes 10 15
bytes Una computadora tiene 128 ME de memoria. Cada palabra en esta computadora tiene
exabyte 260 (1024) bytes 10 18 bytes ocho bytes. Cuntos bits se necesitan para asignar una direccin a cualquier palabra in-
dividual en la memoria?
Tabla 5.1 Unidades de memoria
.. Organizacin de la computadora
5.2 Memoria principal ..
SOLUCIN
JERARqUA Los usuarios necesitan computadoras con mucha memoria, especialmente con memoria q~e
El espacio de direccionamiento de memoria es 128 ME, 10 cual significa 2 27 Sin embargo, DE LA MEMORIA sea muy rpida y muy barata. No siempre es posible satisfacer esta de~anda. La ~~mona
3
cada palabra es de ocho (2 ) bytes, lo cual significa que usted tiene 224 palabras. Esto sig- muy rpida por lo general no es barata. Se requiere hacer un compro~so,. La solUClOn son
24
nifica que se necesitan log2 2 , o 24 bits, para asignar una direccin a cada palabra. 11 niveles jerrquicos de memoria (figura 5.4). La jerarqua se basa en lo SIgUIente:
RAM La memoria de acceso aleatorio (RAM: random access memory) constituye la mayor par-
te de la memoria principal en una computadora. El trmino es confuso debido a que tambin
se puede tener acceso a la ROM en fanna aleatoria. Lo que distingue a la RAM de la ROM
es que el usuario puede leer de y escribir en la RAM. El usuario puede escribir algo en la Velocd~d;~pida (memoria principal)
RAM y posterionnente borrarlo simplemente al sohrescribirlo. Otra caracterstica de la RAM
es que es voltil; la nfo1TIIacin (programa o datos) se borra si el sistema se apaga. En otras
palabras, toda la informacin en la RAM se borra si usted apaga la computadora o si hay un
Figura 5.4 Jerarqua de la memoria
apagn. La tecnologa de la RAM se divide en dos categoras generales: SRAM y DRAM.
11 Utilice una cantidad muy pequea de memoria de alta velocidad cuando la velocidad sea
SRAM La tecnologa de RAM esttica (SRAM: slaUe RAM) utiliza compuertas flip-flap crucial. Los registros dentro del CPU son de este tipo.
(compuertas con dos estados, O y 1) para almacenar datos. Las compuertas alojan su estado
(O o 1), lo cual significa que los datos se almacenan mientras haya suministro de corriente; 11 Utilice una cantidad moderada de memoria de velocidad media para almacenar datos a
no hay necesidad de refrescar. La SRAM es rpida pero costosa. los cuales se accede con frecuencia. La memoria cach, que se analiza enseguida, es de
este tipo.
DRAM La tecnologa de RAM dinmica (DRAM: dynamic RAM) utiliza capacitares. Si II!II Utilice una gran cantidad de memoria de baja velocidad para datos a los cuales no se a-
el capacitor est cargado, el estado es 1; si est descargado el estado es O. Como un capaci- cede con frecuencia. La memoria principal es de este tipo de memoria.
tor pierde un poco de su carga con el tiempo, las celdas de la memoria necesitan refrescarse
peridicamente. Las DRAM son lentas pero econmicas.
MEMORIA CACH La memoria cach es ms rpida que la memoria principal pero ms lenta que el CPU y los
ROM El contenido de la memoria de slo lectura (ROM: read-only memory) es escrito por el fa- registros dentro del CPU. La memoria cach, la cual por lo general es pequea en tamao, se
bricante; el usuano puede leer la ROM pero no escribir en ella Su ventaja es que no es vol- coloca entre el CPU y la memoria principal (ligura 5.5).
til; su contenido no se borra si usted apaga la computadora. Normalmente la utilizan
programas o datos que no deben ser borrados o cambiados aun cuando usted apague la com-
putadora. Por ejemplo, algunas computadoras vienen con una ROM que aloja el programa de
arranque que se ejecuta cuando usted enciende la computadora. CPU
Este procedimiento puede acelerar las operaciones; si la palabra est en la cach, se tiene ac~
ceso a ella de inmediato. Si la palabra no est en la cach, la palabra y un bloque entero se Cabeza de
lectura/escritura
copian a la cach. Puesto que es muy probable que el CPU, en su ciclo siguiente, necesite ob-
tener acceso a las palabras que siguen a la primera palabra, la existencia de la cach acelera
e
i
Disco o
el procesamiento. n
Tal vez ellectOI se pregunte por qu la memoria cach es tan eficiente a pesar de su tama-
l' o pequeo. La respuesta est en la regla 80-20. Se ha observado que la mayora de las com-
t
r
putadoras por lo general invierte el 80 por ciento del tiempo en obtener acceso slo al 20 por o
ciento de los datos. En otras palabras, se tiene acceso a los mismos datos una y otra vez. La 1
il memoria cach, con su gran velocidad, puede alojar este 20 por ciento para hacer que el ac- a
I ceso sea ms rpido al menos el 80 por ciento del tiempo. d
1'1 o
r
Cabeza de
5.3 ENTRADA/SALIDA lectura/escritura
El tercer subsistema en una computadora es la coleccin de dispositivos conocidos como el Figura 5.6 Distribucin fsica de un disco magntico
subsistema de entrada/salida (E/S). Este subsistema pennite a una computadora comuni-
carse con el mundo exterior y almacenar programas y datos aun cuando no est encendida.
Los dispositivos de entrada/salida pueden dividirse en dos categoras generales: dispositivos
de almacenamiento y dispositivos que no son de almacenamiento.
DISPOSITIVOS Los dispositivos que no son de almacenamiento penniten al CPU o a la memoria comuni-
QUE NO SON DE carse con el mundo exterior, pero no pueden almacenar informacin.
ALMACENAMIENTO
Teclado y monitor El teclado y el monitor son dos de los dispositivos de entrada/salida que no son de almacena-
miento. El teclado proporciona la entrada; el monitor despliega la salida y al mismo tiempo
repite la entrada que se introduce en el teclado. Los programas, comandos y datos son entra-
da o salida que utiliza cadenas de caracteres. Los caracteres se codifican usando un cdigo
como ASen (vase el apndice A).
Impresora Una impresora es un dispositivo de salida que crea un registro permanente; se trata de un dis-
positivo que no es de almacenamiento porque el material impreso no puede introducirse otra Figura 5.7 Organizacin de la superficie de un disco
vez directamente en una computadora a menos que alguien lo teclee o 10 digitalice en un es-
cner.
DISPOSITIVOS DE Los dispositivos de abnacenamiento, aun cuando se clasifican como dispositivos de entra- !II Organizacin de la superficie. Para organizar los datos almacenados en el disco, cada
ALMACENAMIENTO da/salida, pueden almacenar grandes cantidades de informacin que se recuperar 1 en un mo- superficie se divide en pistas, las cuales a su vez se dividen en sectores (figura 5.7). Las
mento posterior. Son ms econmicos que la memoria principal y su contenido no es voltil pistas estn separadas por un espacio entre pistas y los sectores estn separados por un
(no se borra cuando se apaga la computadora). A veces se les llama dispositivos de almace- espacio entre sectores.
namiento auxiliares. Los clasificamos como magnticos u pticos.
11 Acceso a datos. Un disco magntico se considera un dispositivo de acceso aleatorio. No
Dispositivos de Este tipo de dispositivos utiliza la magnetizacin para almacenar bits de datos. Si un punto se obstante, un sector es el rea de almacenamiento ms pequea a la que puede tener ac-
almacenamiento magnetiza, representa un 1; s no se magnetiza, representa un O. ceso a la vez. Un bloque de datos puede almacenarse en uno o ms sectores y recuperar-
magnticos se sin necesidad de recuperar el resto de la informacin en el disco.
Disco magntico Un disco magntico es uno o ms discos apilados uno encima de otro.
Los discos se cubren con una pelcula magntica delgada. La informacin se almacena y se
111 Rendimiento. El rendimiento de un disco depende de varios factores; los ms importan-
recupera de la superficie del disco usando una cabeza de lectura/escritura para cada super-
tes son la velocidad de rotacin, el tiempo de bsqueda y el tiempo de transferencia. La
ficie magnetizada del disco. La figura 5.6 muestra el diagrama de un disco magntico.
velocidad de rotacin define qu tan rpido gira el disco. El tiempo de bsqueda de-
fine el tiempo para mover la cabeza de lectura/escritura a la pista deseada donde se al-
1 N. del T. Bajo este contexto, recuperar significa tener acceso al dispositivo o a la localidad de almace- macenan los datos. El tiempo de transferencia define el tiempo para mover los datos
namiento para obtener la infonnacin. del disco al CPU o a la memoria.
.. Organizacin de la computadora
5.3 Entrada/Salida ..
CD-ROM El disco compacto de memoria de slo lectura (eD-ROM: compact disc read-
Carrete de la cinta Carrete receptor on/y memory) utiliza la misma tecnologa que el CD (disco compacto), originalmente desa-
~~
rrollado por Phi11ips y Sony para grabar msica. La nica diferencia entre estas dos
tecnologas es la mejora; una unidad de CD-ROM es ms robusta y busca errores. La figura
5.10 muestra los pasos en la creacin y el uso de un CD-ROM.
(Lalld) (Lalld) (Land) (Land) (Lalld)
Cabeza de lectura/escritura
a. Disco maestro
Pista 1 b. Molde
l
,iBlioquellliBiloque.
r
~ 1I1I1I1!lIlllIllIiill(
Pista 9 Polieacbonato'
Resina
Figura 5.9 Organizacin de la superficie de una cinta
Cinta magntica Una cinta magntica viene en varios tamaos. Un tipo comn es una
cinta de plstico de media pulgada cubierta con una pelcula magntica gruesa. La cinta se Detector lser
Origen del lser
monta en dos carretes y utiliza una cabeza de lectura escritura que lee o escribe la infonna-
cin cuando la cinta pasa por ella. La figura 5.8 muestra la configuracin mecnica de una
cinta magntica. c.CD-ROM
11 Organizacin de la superficie. El ancho de la cinta se divide en nueve pistas. Cada Figura 5.10 Creacin y uso de un CD-ROM
punto de una pista puede almacenar un bit de infonnacin. Nueve puntos verticales
pueden almacenar 8 bits de informacin referente a un byte, ms un bit para deteccin
de error (figura 5.9).
11 Creacin. La tecnologa de CD-ROM utiliza tres pasos para crear un gran nmero de
11 Acceso a datos. Una cinta magntica se considera un dispositivo de acceso secuencial. discos:
Aunque la superficie puede dividirse en bloques, no hay un mecanismo de direcciona-
a. Un disco maestro se crea usando un lser infrarrojo de alta potencia que hace patro-
miento para acceder a cada bloque. Para recuperar un bloque especifico en una cinta, se
necesita pasar por todos los bloques previos. nes de bits en plstico cubierto. El lser traduce el patrn de bits en una secuencia de
agujeros (pits: hoyos) y superficies (lands: superficies sin hoyos). Los agujeros por
11 Rendimiento. Aunque una cinta magntica es ms lenta que un disco magntico, es ms lo general representan los Oy las superficies, los 1. Sin embargo, sta es slo una con-
econmica. Actualmente, la gente usa cintas magnticas para respaldar grandes cantida- vencin y puede ser revertida. Otros esquemas utilizan una transicin (agujero a hoyo
des de informacin.
u hoyo a agujero) para representar el 1 y la falta de transicin para representar el O.
Dispositivos de Los dispositivos de almacenamiento ptico son una nueva tecnologa que utiliza luz (l- b. Desde el disco maestro se hace un molde. En el molde, los agujeros (hoyos) se rem-
almacenamiento ser) para almacenar y recuperar datos. El uso de la tecnologa de almacenamiento ptico su- plazan por protuberancias.
ptico cedi a la invencin del CD (disco compacto), utilizado para almacenar infonnacin de c. Resina de policarbonato fundida se inyecta en el molde para producir los mismos
audio. Hoy da, la misma tecnologa (ligeramente mejorada) se utiliza para alrnacenar infor- agujeros que el disco maestro. Una capa muy delgada de aluminio (que sirve como una
macin en una computadora. Los dispositivos que usan esta tecnologa incluyen CD-ROM, superficie reflectante) se aade al policarbonato. Encima de ste, se aplica una capa
CD-R, CD-RW y DVD.
protectora de laca y se aade una etiqueta. Se repite slo este paso para cada disco.
.. Organizacin de la computadora 5.3 Entrada/Salida ..
II1II Lectura. El CD-ROM se lee usando un rayo lser de baja potenca que proviene de la CD-R Como se mencion, la tecnologa de CD-ROM es justificable slo si el fabricante pue-
unidad de la computadora. El rayo lser se refleja en la superficie de aluminio cuando de crear una gran cantidad de discos. Por otra parte, el disco compacto grabable (CD-R: Com-
pasa a travs de una superficie. Se refleja dos veces cuando se encuentra un agujero, una pact disc recordable) permite a los usuarios crear uno o ms discos sin incurrir en el gasto
vez por el borde del agujero y una vez por el borde del aluminio. Las dos reflexiones tie- implicado en la creacin de CD-ROM. Es particulannente til para hacer respaldos. El usuario
nen un efecto destructivo debido a que la profundidad del agujero se elige para ser exac- puede escribir slo una vez en este disco, pero puede leerlo varias veces. Por esta razn, en oca-
tamente un cuarto de la longitud de onda del rayo. En otras palabras, el sensor instalado siones se le llama WORM (write once, read many: escribir una vez, leer muchas).
en el dispositivo detecta ms luz cuando el punto es una zona y menos luz cuando el pun-
to es un agujero; puede leer lo que se registra en el disco maestro original. 11 Creacin. La tecnologa de CD-R utiliza los mismos principios que el CD-ROM para
crear un disco (figura 5.12). A continuacin se listan las diferencias:
11 Formato. La tecnologa de CD-ROM utiliza un formato distinto a un disco magntico
a. No hay disco maestro o molde.
(figura 5.11). El formato de datos en un CD-ROM se basa en:
b. La capa reflectante est hecha de orO en lugar de aluminio.
a. Un bloque de datos de ocho bits se transforma en un smbolo de 14 bits que usa un
c. No hay agujeros (hoyos) fsicos en el policarbonato; los agujeros y las superficies s-
mtodo de correccin de errores llamado cdigo Hamming.
lo se simulan. Para hacerlo, se aade una capa ms de tinte, similar al material utili-
b. Se forma un Frarne de 42 smbolos (14 bits/smbolo).
zado en fotografa, entre la capa reflectante y el policarbonato.
e, Se forma un sector de 96 fIarnes (2352 bytes). d. Un rayo lser de alta potencia, creado por el quemador de CD de la unidad, forma un
l1li Velocidad, Las unidades de CD-ROM vienen en diferentes velocidades. La velocidad punto negro en el tinte (cambiando la composicin qumica) lo cual simula un aguje-
simple se llama 1x, la doble se llama 2x y as sucesivamente. Si la unidad es de veloci- ro. Las reas que no son golpeadas por el rayo son las superficies.
dad simple puede leer hasta 153 600 bytes por segundo. La tabla 5.2 muestra las velo-
l1li Lectura, Los CD-R pueden leerse mediante una unidad de CD-ROM o de CD-R. Esto
cidades y la tasa de transferencia de datos correspondiente.
significa que cualquier diferencia debe ser transparente para la unidad. El mismo rayo
lser de baja potencia pasa enfrente de los agujeros simulados y las superficies. Para una
Velocidad ' Tsa de transferencia Aproxilacin superficie, el rayo alcanza la capa reflectante y se refleja. Para un agujero simulado, el
Ix 153 600 bytes por segundo 150 KB/s punto es opaco de modo que el rayo no puede reflejarse de regreso.
2x 307 200 bytes por segundo 300 KB/s
l1li Formato y velocidad, El formato, la capacidad y la velocidad de los CD-R son los mis-
4x 614 400 bytes por segundo 600 KB/s
mos que los del CD-ROM.
6x 921 600 bytes por segundo 900 KB/s
8x 1 228 800 bytes por segundo 1.2 MB/s 111 Aplicacin. Esta tecnologa es muy atractiva para la gente que desea crear y distribuir
12x 1 843 200 bytes por segundo 1.8 ME/s un pequeo nmero de discos; tambin es muy til para hacer depsitos de archivos (ar-
16x 2 457 600 bytes por segundo 2.4 MB/s chives) y respaldos.
24x 3 688 400 bytes por segundo 3.6 ME/s
32x 4915200 bytes por segundo 4.8 ME/s
40x 6 144 000 bytes por segundo 6 MB/s
11
Sector (98 Frames) Origen del lser
CD-RW Aunque los CD-R se han vuelto muy populares, slo se puede escribir en ellos una 111 Capacidad. Estas mejoras dan como resultado mayores capacidades (tabla 5.3).
vez. Para sobrescribir materiales previos, existe una nueva tecnologa que Crea un nuevo tipo
de disco llamado disco compacto de reescritura (CD-RW: compact disc rewritable). A ve-
ces se le llama disco ptico borrable. Ca,ra(!terstica Capa(:idad
111 Creacin. La tecnologa de CD-RW utiliza los mismos principios que el CD-ROM pa- Una cara, capa simple 4.7GB
ra crear el disco (figura 5.13). Las diferencias se listan enseguida: Una cara, capa dual 8.5 GB
a. En lugar de tinte la tecnologa utiliza una aleacin de plata, indio, antimonio y telu- Doble cara, capa simple 9.4GB
rio. Esta aleacin tiene dos estados estables: cristalino (transparente) y amorfo (no Doble cara, capa dual 17GB
transparente).
Tabla 5.3 Capacidades de OVO
b. La unidad usa lser de alta potencia para crear agujeros simulados en la aleacin
(cambindola de cristalina a amorfa).
111 Lectura. La unidad utiliza el mismo rayo lser de baja potencia que el CD-ROM y el 111 Compresin. La tecnologa de DVD utiliza el fonnato MPEG (vase el captulo 15) pa-
CD-R para detectar agujeros y zonas. ra compresin. Esto significa que un DVD de una sola cara y capa simple puede alojar
11 Borrado. La unidad Usa un rayo lser de potencia media para cambiar los agujeros a 133 minutos (2 horas y 13 minutos) de video a una alta resolucin. Esto tambin ~nc1u
superficies. El rayo cambia un punto del estado amorfo al estado cristalino. ye tanto audio como subttulos.
111 Formato y velocidad. El formato, la capacidad y la velocidad de los CD-RW son los l1li Aplicacin. Actualmente, la gran capacidad de los DVD atrae a muchas aplicaciones
mismos que los del CD-ROM. que necesitan almacenar un volumen grande de datos.
lIiII Aplicacin. Esta tecnologa es definitivamente ms atractiva que la tecnologa de CD-R.
Sin embargo, los CD-R son ms populares por dos razones. Primero, los discos CD-R
vrgenes son menos costosos que los discos CD-RW vrgenes. Segundo, los discos CD-
R son preferibles en casos donde el disco creado no debe cambiar, ya sea de manera ac- 5.4 INTERCONEXIN DE SUBSISTEMAS
cidental o intencional.
Las secciones previas explicaron resumidamente las caractersticas de los tres subsistemas
DVD La industria ha sentido la necesidad de medios de ahnacenamiento digital con una ca- (CPU, memoria principal y E/S) en una computadora independiente. En esta seccin, explo-
pacidad an mayor. La capacidad de un CD-ROM (650 ME) no es suficiente para almacenar ramos cmo se interconectan estos tres subsistemas. La interconexin representa un impor-
informacin de video. El dispositivo de almacenamiento de memoria ptica ms reciente en tante papel porque la infonnacin requiere ser intercambiada entre los tres subsistemas.
el mercado se llama disco verstil digital (DVD: digital versatile disc). Este disco utiliza una CONEXiN DEL CPU
tecnologa similar al CD-ROM pero con las diferencias siguientes: El CPU Y la memoria normalmente se conectan por medio de tres grupos de lneas, cada una
Y LA MEMORIA
1. Los agujeros son ms pequeos: 0.4 micras de dimetro en lugar de 0.8 micras usados llamada bus: bus de datos, bus de direcciones y bus de control (figura 5.14).
en los CD.
2. Las pistas estn ms cercanas entre S.
3. El rayo es un lser rojo en vez de un infrarrojo.
CPU Memoria
4. El DVD usa una de dos capas de grabacin y puede ser de una cara o de doble cara. c-;-
D
W D
D
D
Bus de datos
Bus de direcciones
=
== ,
~
O D
Bus de control --'---
Cristalino (superficie)
Resina'
de policarbonato Bus de datos El bus de datos est fonnado por varias lneas de control, cada una de las cuales transporta
1 bit a la vez. El nmero de lneas depende del tamao de la palabra. Si la palabra mide 32
bits (4 bytes) en una computadora, se necesita un bus de datos con 32 lneas de modo que to-
dos los 32 bits de una palabra puedan transmitirse al mismo tiempo.
Detector lser
Origen del Bus de direcciones El bus de direcciones permite el acceso a una palabra en particular en la memoria. El nme-
ro de lneas en el bus de direccin depende del espacio de direccionamiento de la memoria.
Si la memoria tiene 2/1 palabras, el bus de direcciones necesita transportar n bits a la vez. Por
Figura 5.13 Creacin de un CO-RW consiguiente, debe tener n lneas.
.. Organizacin de la computadora 5.4 Interconexin de subsistemas ..
Bus de control El bus de control lleva la comunicacin entre el CPU y la memoria. Por ejemplo, debe ha- hasta a 1.5 ME/s. Tiene un bus de cuatro lneas de control; dos de ellos llevan energa elc-
ber un cdigo enviado desde el CPU a la memoria para especificar una operacin de lectura trica al dispositivo. La figura 5.18 muestra la conexin de un USB a los buses.
y escritura. El nmero de lneas utilizadas en el bus de control depende del nmero total de
comandos de control que necesita la computadora. Si una computadora tiene 2m acciones de
control, necesita m lneas para el bus de control porque m bits pueden definir 2m operaciones CPU Memoria
Bus de datos
diferentes. o
CONEXiN DE Los dispositivos E/S no pueden conectarse directamente a los buses que conectan el CPU y
W O
O
O
DISPOSITIVOS E/S la memoria, dado que la naturaleza de los dispositivos EIS es diferente de la naturaleza del
CPU y la memoria. Los dispositivos EIS son dispositivos electromecnicos, magnticos u p-
D EJ
ticos, nrientras que el CPU y la memoria son dispositivos electrnicos. Los dispositivos E/S
operan a una velocidad mucho ms lenta que el CPU/memoria. Existe la necesidad de que un
intermediario maneje esta diferencia. Los dispositivos de entrada/salida se conectan a los bu-
Ses a travs de lo que se conoce como controlador de entrada/salida o interfaz. Existe un
controlador especfico para cada dispositivo de entrada/salida (figura 5.15). ID=5 ID=4
,....,
w O
O
O
O
Bus de dato,s
= Figura 5.16
Disco
Controlador SCSI
CD-ROM Escner Cinta
D O
Bus de
direcciones ~
Bus de control~
CPU Memoria
, 8
CPU Memoria
,1I del momtor'Won"."dj
Controlador Control~dor de la Contro!ador Bus de
1
del teclado impresora 1 del drsco "1
~ DO
Figura 5.15 Conexin de los dispositivos E/S a los buses
Controladores Los controladores o interfaces quitan el obstculo entre la naturaleza del dispositivo E/S yel
CPU/memoria. Un controlador puede ser un dispositivo serial o paralelo. Un controlador se-
rial tiene slo una linea de conexin al dispositivo. Un controlador paralelo tiene varias lneas
de conexiones al dispositivo de modo que varios bits pueden transferirse a la vez.
Diversos tipos de controladores estn en uso. Los ms comunes actualmente son SCSI, Fi-
reWire y USE.
Figura 5.17 Controlador FireWire
SCSI La interfaz pequea de sistemas de computadoras (SCSI: small computer system
inteiface) fue desarrollada en un principio para las computadoras Macintosh en 1984. Hoy
da se utiliza en muchos sistemas. Tiene una interfaz paralela con 8, 16 Y 32 lneas. La inter-
faz SCSI ofrece una conexin en cadena margarita como se muestra en la figura 5.16. Ambos
extremos de la cadena deben estar terminados y cada dispositivo debe tener una direccin ni-
CPU
O
Bus de datos ,....,
Memoria
ca (ID objetivo).
W O
O
O
Bus de direcciones
~
FireWire El estndar IEEE 1394 define una interfaz serial comnmente llamada FireWi~ Bus de control ~
D O
re, la cual es una interfaz serial de alta velocidad que transfiere datos en paquetes, logrando
una velocidad de tasa de hasta 50 ME/s. Puede utilizarse para conectar hasta 63 dispositivos I ~
en una cadena o una conexin de rbol (usando slo una lnea). La figura 5.17 muestra la co- r~~~lad9~::I
:F : JJ~",;;:
nexin del dispositivo de entrada/salida a un controlador FireWire. No hay necesidad de ter-
minacin como en el controlador SCSI. 1
USB Un competidor para el controlador FireWire es el controlador bus serial universaJ l Ratn
JI Teclado I
(USB: universal serial bus). USE tambin es un controlador serial utilizado para conectar a
una computadora dispositivos ms lentos como el teclado y el ratn. Puede transferir datos Figura 5.18 Controlador USB
.. Organizacin de la computadora 5.5 Ejecucin de programas ..
DIRECCIONAMIENTO El CPU por lo general utiliza el mismo bus para leer la memoria principal y el dispositivo EfS
DE DISPOSITIVOS DE o escribir datos en ellos. La nica diferencia es la instruccin. Si la instruccin se refiere a CPU Memoria
ENTRADA/SALIDA una palabra en la memoria principal, la transferencia de datos se realiza entre la memoria Bus del sistema O
O
principal y el CPU. Si la instruccin identifica un dispositivo de entrada/salida, la transferen-
cia de datos es entre el dispositivo de entrada/salida y el CPU. Existen dos mtodos para ma- ti O
O
O 101
nejar el direccionamiento de dispositivos E/S: E/S aislado y EIS por mapas de memoria. Read 101
O D Read 64001
64000
E/S aislado En el mtodo E/S aislado, las instrucciones utilizadas para la memoria de lectura/escritura
de la memoria son totalmente diferentes de las instrucciones de lectura/escritura usadas pa-
ra los dispositivos E/S. Hay instrucciones para probar, controlar, leer de y escribir en dispo-
sitivos de entrada/salida. Cada dispositivo de entrada/salida tiene su propia direccin. Las
direcciones de entrada/salida pueden traslaparse con las direcciones de memoria sin ningu-
na ambigedad debido a que la instruccin en s misma es diferente. Por ejemplo, el CPU Controlador
puede usar el comando Read 05 para leer de la memoria la palabra 05 y utilizar el comando
Input 05 para leer del dispositivo de entrada/salida 05. No hay confusin debido a que el co. Figura 5.20 Direccionamiento de E/S por mapas de memoria
mando Read es para leer de la memoria y el comando Input es para leer desde un dispositi-
vo de entrada/salida (figura 5.19).
~~~~~~~~~~~~j
de salida a partir de los datos de entrada. Tanto el programa como los datos se almacenan en
101 la memoria,
Read 101
65535
CICLO DE MQUINA El CPU utiliza ciclos de mquina repetidos para ejecutar instrucciones en el programa, una
por una, de principio a fin, Un ciclo simplificado puede consistir en tres pasos: buscar y traer
103 (fetch), decodificar (decode) y ejecutar (execute) (figura 5.21).
Controlador
("_lni""'rliO_.',,,'
Figura 5.19 Direccionamiento de E/S aislado
E/S por mapas En el mtodo E/S por mapas de memoria, el CPU trata a cada registro en el controlador de
de memoria entrada/salida como una palabra en la memoria, En otras palabras, el CPU no tiene instruc-
ciones separadas para transferir datos desde la memoria o desde dispositivos de entrada/sali-
da, Por ejemplo, slo existe una instruccin Read. Si la direccin define una palabra desde la
memoria, los datos se leen desde esa palabra. Si la direccin define un registro de un disposi-
tivo de entrada/salida, los datos se leen desde ese registro, La ventaja de la configuracin por
mapas de memoria es un pequeo nmero de instrucciones; todas las instrucciones de la me-
moria pueden ser utilizadas por los dispositivos de entrada/salida. La desventaja es que la par-
te del espacio de direccionamiento usado para la memoria se asigna a los registros en los
controladores de entrada/salida. Por ejemplo, si usted tiene cinco controladores de entrada/sa-
lida y cada uno tiene cuatro registros, se utilizan 20 direcciones para este propsito. El tama- ( Alto, )
o de la memoria se reduce en 20 palabras. La figura 5.20 muestra el concepto de E/S por
mapas de memoria. Figura 5.21 Pasos de un ciclo
Organizacin de la computadora 5,5 Ejecucin de programas ..
Buscar y traer En el paso buscar y traer, la unidad de control ordena al sistema copiar la siguiente instruc-
cin en el registro de instruccin en el CPU. La direccin de la instruccin a ser copiada se
mantiene en el registro del contador del programa. Despus de copiar, el contador del progra- .14
I Rl 070
Rl 07( ,
ma se incrementa para referirse a la siguiente instruccin en la memoria. 071
Load 200 Rl
Load 2m R2 07 , Load 200 Rl
Load 201 R2
I R2 072 "AddRIR2R3 -10 R2 072 AddRl R2 R3
073 Slme 202,R3 073 Sto[e202 R3
I R3 R3
Decodificar Cuando la instruccin est en el registro de instruccin, la unidad de control la decodifica. El Load 200Rl I1 200
'+14" :;>&2 Lom::l 201 R2 1 21~
+14i<:'&;
(decode) resultado de este paso de decodificacin es cdigo binario para algunas operaciones que rea-
Ipc
20 1
202
-10
'" 072 ,<X' ,;':-:1 PC
20 I
20?-
10"
I AddRl R2 R3
I1 , 200
.'4 :
1 200
,
f!1
20 10 20
UN EJEMPLO DE Veamos una operacin muy simple como la suma de dos enteros. Una computadora con una
Ipc 202
~~~I:~ PC -
CICLO DE MQUINA arquitectura simple necesita al menos cuatro instrucciones para este trabajo. Las cuatro ins-
trucciones y los dos enteros de entrada residen en la memoria antes de la ejecucin del pro-
073
""
grama; el resultado estar en la memoria despus de la ejecucin del programa. c. Despus de la tercera instruccin d. Despus de la cuarta instruccin
Aunque todo se representa mediante patrones de bits, por simplicidad suponga que los n-
meros y las direcciones estn en decimales. Tambin suponga que las instrucciones estn en
las localidades de memoria 70, 71, 72 y 73. Los datos de entrada se almacenan en las loca- Figura 5.23 Contenido de la memoria y el registro despus de cada ciclo
lidades 200 y 201. Los datos de salida se almacenarn en la localidad de memoria 202.
La figura 5.22 muestra la memoria y el CPU antes de la ejecucin del programa. R1, R2
Primera operacin En la primera operacin (Load 200 RI), la mquina pasa por los tres pasos de buscar y traer,
Y R3 son registros generales. R1 y R2 alojan la entrada de datos; R3 aloja la salida de datos.
decodificar y ejecutar para cargar el contenido de la localidad de memoria 200 en el registro
El registro 1 es el registro de instruccin y PC es el contador del programa. La figura 5.23
muestra los resultados de cuatro operaciones en la memoria y los registros. de datos R1.
Segunda operacin En la segunda operacin (Load 201 R2), la mquina pasa por los tres pasos de buscar y traer,
decodificar y ejecutar para cargar el contenido de la localidad de memoria 201 en el registro
de datos R2.
Bus de datos
Tercera operacin En la tercera operacin (Add Rl R2 R3), la mquina pasa por los tres pasos de buscar y traer,
decodificar y ejecutar para sumar los datos en Rl y R2, Y almacenar el resultado en R3.
,,,- -
R1 070
071 Cuarta operacin En la cuarta operacin (Store 202 R3), la mquina pasa por los tres pasos de buscar y traer, de-
- ,
1- - -
R2 codificar y ejecutar para almacenar el resultado de la operacin en la localidad de memoria 202.
'8 , L __
072
073
o=
R3
,
"'" , L __
1 OPERACiN DE Existe la necesidad de comandos para transferir datos desde los dispositivos E/S al CPU y la
'"i!<l= , memoria. Debido a que los dispositivos de entrada/salida operan a velocidades mucho ms
200
~
201
ENTRADA/SALIDA
lentas que el CPU, la operacin del CPU debe sincronizarse de alguna manera con el dispo-
PC 202
Unidad de control sitivo de entrada/salida. Se han ideado tres mtodos para esta sincronizacin: E/S programa-
da, E/S manejada por interrupciones y acceso directo a memoria (DMA: direct memory
access).
Bus de direcciones E/S programada En el mtodo de E/S programada, la sincronizacin es muy primitiva; el CPU espera el dis-
positivo E/S. La transferencia de datos entre el dispositivo E/S y el CPU se realiza mediante
Figura 5.22 Contenido de la memoria y el registro antes de la ejecucin una instruccin en el programa. Cuando el CPU encuentra una instruccin E/S, no hace na-
.. Organizacin de la computadora 5.5 Ejecucin de programas ..
est listo (figura 5.24). El gran prob1emaaqu es que el tiempo del CPU se gasta en la revi
M".n.,hh, para No
sin del estado del dispositivo E/S para cada unidad de datos a ser transferida. Observe que transferir?
los datos se transfieren a la memoria despus de la operacin de entrada; los datos se trans-
fieren desde la memoria antes de la operacin de salida.
Instruccin previa
-----,
Ms palai?;Ills ,para No
transfet;i-;:'r Interrupcin
---- . . . . . . . . . . . . . ~~~~
Siguiente instmccin
E/S manejada En el mtodo de E/S manejada por interrupciones, el CPU infonna al dispositivo E/S que
va a ocurrir una transferencia, pero no prueba el estado del dispositivo E/S de manera conti-
por interrupciones
nua. El dispositivo E/S infonna (interrumpe) al CPU cuando est listo. Durante este tiempo,
el CPU puede hacer otros trabajos como ejecutar otros programas o transferir datos desde o
hacia otros dispositivos E/S (figura 5.25).
En este mtodo, el tiempo del CPU no se desperdicia. Mientras que el dispositivo E/S len-
Disco
to est terminando una tarea, el CPU puede hacer algo ms. Observe que, al igual que la E/S
programada, este mtodo tambin transfiere datos entre el dispositivo y el CPU. Los datos se
transfieren a la memoria despus de la operacin de entrada; los datos se transfieren desde la Figura 5.26 Conexin DMA al bus general
memoria despus de la operacin de salida.
Acceso directo El tercer mtodo de transferencia de datos es el acceso directo a memoria (D:MA). Este m- lida), la direccin de inicio de la localidad de memoria y el nmero de bytes a ser transferi-
todo transfiere un bloque grande dE datos entre un dispositivo E/S de alta velocidad, por ejem- dos. El CPU ahora est disponible para otros trabajos.
a memoria (DMA)
plo un disco, y la memoria directamente (sin pasar por el CPU). Esto requiere un controlador Cuando est listo para transferir datos, el controlador DMA infonna al CPU que necesita
DMA que libera al CPU de algunas de sus funciones. El controlador DMA tiene registros pa- tomar control de los buses. El CPU deja de usar los buses y permite que el controlador los
ra mantener un bloque de datos antes y despus de la transferencia a la memoria. La figura use. Despus de la transferencia de datos, directamente entre el nMA y la memoria, el CPU
5.26 muestra la conexin DMA para el bus general. En este mtodo, para una operacin E/S contina su operacin nonnal (figura 5.27). Observe que en este mtodo el CPU queda inac-
el CPU enva un mensaje al DJ\!1A. El mensaje contiene el tipo de transferencia {entrada o sa- tivo durante un breve lapso.
L
.. Organizacin de la computadora
5.8 Resumen ..
Instruccin previa RISC RISC son las siglas en ingls de computadora con conjunto de instrucciones reducidas (re-
duced instruction set computer). La estrategia en que se basa la arquitectura RISC es tener un
mstruccin de E/S
,---------- -----------, conjunto pequeo de instrucciones que realicen un nmero mnimo de operaciones simples.
Las instrucciones complejas se simulan usando un subconjunto de instrucciones simples. Es-
Transferencia de DMA to provoca que la programacin en RISC sea ms difcil y extensa que en el otro diseo, porque
la mayora de las instrucciones complejas son simuladas usando instrucciones simples.
Un ejemplo de la arquitectura RISC es la serie de procesadores PowerPC utilizada en las
computadoras App1e.
,
5.7 TERMINOS CLAVE
Instruccin
siguiente acceSO directo a memoria (DMA) almacenamiento memoria slo de lecutra programable
I agujero E/S aislado (PROM)
bus EIS manejada por interrupciones memoria de slo lectura (ROM)
Siguiente instruccin bus de datos E/S por mapas de memoria memoria principal
bus de control E/S programada Monitor
Figura 5.27 Entrada/salida de DMA bus de direcciones ejecutar operacin aritmtica
bus serial universal (USB) escribir una vez, leer muchas operacin lgica
buscar y traer (WORM) pista
No obstante, la duracin del tiempo de inactividad es muy corta comparada con otros mto- cabeza de lectura/escritura espacio de direccionamiento patrn de bits
dos; el CPU est inactivo slo durante-la transferencia de datos entre el DMA y la memoria, ciclo de mquina espacio entre pistas RAM dinmica (DRAM)
no cuando el dispositivo prepara los datos. cinta magntica espacio entre sectores RAM esttica (SRAM)
contador de programa FireWire registro
controlador de entrada/salida frame registro de datos
computadora con conjunto de instruc- impresora registro de instrucciones
5.6 DOS ARQUITECTURAS DIFERENTES ciones complejas (CISC) interfaz pequea de sistemas de resina de policarbonato
computadora con conjunto de computadoras (SCSI) sector
El diseo de computadoras ha pasado por muchos cambios durante las ltimas dcadas. Los instrucciones reducidas (RISC) memoria subsistema de entrada/salida (E/S)
dos diseos fundamentales que dominan el mercado son CISC y RISC. Estas dos metodolo- disco compacto de reescritura memoria cach superficie
gas de diseo se analizan brevemente a continuacin. (CD-RW) memoria de acceso aleatorio (RAM) teclado
disco compacto grabable (CD-R) memoria de slo lectura de disco tiempo de bsqueda
disco maestro compacto (CD-ROM) tiempo de transferencia
CISC CISC son las siglas en ingls de computadora con conjunto de instrucciones complejas disco magntico memoria de slo lectura programable unidad central de procesamiento
(complex instruction set computer). La estrategia en que se basa la arquitectura CISC es te- disco verstil digital (DVD) y borrable electrnicamente (CPU)
ner un conjunto grande de instrucciones, incluyendo las complejas. La programacin en
dispositivo de almacenamiento (EEPROM) unidad de control
CISC es ms fcil que en el otro diseo debido a que hay una instruccin para una tarea sim- dispositvo de almacenamiento ptico memoria de slo lectura programable unidad lgica aritmtica (ALU)
ple o compleja. Los programadores no tienen que escribir un conjunto de instrucciones para
dispositivo que no es de y borrable (EPROM) velocidad rotacional
que realicen una tarea compleja.
La complejidad del conjunto de instrucciones hace que el sistema de circuitos del CPU y
la unidad de control sean muy complicadas. Los diseadores de la arquitectura CISC han
ideado una solucin para reducir esta complejidad. La programacin se realiza en dos nive- 5.8 RESUMEN
les. Una instruccin en el lenguaje de mquina no se ejecuta directamente por el CPU. El
CPU ejecuta slo operaciones simples llamadas microoperaciones. Una instruccin comple- Una computadora tiene tres subsistemas: el CPU, la me- 11 La unidad de control supervisa las operaciones en una
ja se transforma en un conjunto de estas operaciones simples y entonces son ejecutadas por moria principal y el subsistema de entrada/salida. computadora.
el CPU. Esto requiere la adicin de una memoria especia1llamada micromemoria que aloja 11 La memoria principal es una coleccin de localidades de
El CPU realiza operaciones en los datos y tiene un ALU,
el conjunto de operaciones para cada instruccin compleja el conjunto de la mquina. El tipo almacenamiento.
una unidad de control y una serie de registros.
de programacin que utiliza microoperaciones se llama microprogramacin. 11 Las direcciones de memoria se definen usando enteros
Una objecin a la arquitectura CISC es la sobrecarga asociada con la microprogramacin El ALU realiza operaciones lgicas y aritmticas. binarios sin signo.
y el acceso a la micromemoria. Sin embargo, los defensores de la arquitectura sostienen que
Los registros son dispositivos de almacenamiento inde- 11 La RAM provee la mayor parte de la memoria en una
esto se compensa por los programas ms pequeos en el nivel de la mquina.
pendientes que alojan los datos temporalmente. Los re- computadora. La SRAM utiliza las compuertas flip-flop
Un ejemplo de la arquitectura CISC puede verse en la serie de procesadores Pentium de- gistros pueden alojar datos e instrucciones, y tambin tradicionales para alojar los datos y la DRAM usa capa-
sarrollada por Inte!.
funcionan como un contador de programa. citores.
5.9 Prctica ..
.. Organizacin de la computadora
Cul es la ventaja del CD-RW sobre el CD-ROM y el 43. Una unidad de control con cinco lneas de control puede
111 El contenido de la ROM viene del fabricante; slo se 11 Un CD-RW es un dispositivo de almacenamiento ptico
CD-R? definir hasta ____ operaciones.
pennite a los usuarios leerla, pero no escribir en ella. en el cual el usuario quema los datos en el disco. Los da-
!II Las computadoras necesitan una memoria de alta velo- tos pueden borrarse y se puede volver a escribir en el Compare y contraste los agujeros y las superficies en los a. 5
cidad para los registros, memoria de velocidad media disco varias veces. tres tipos de discos compactos. b. lO
para la memoria cach y memoria de baja velocidad pa- c. 16
111 Un DVD es un dispositivo de almacenamiento ptico de 27. Compare y contraste la lectura de los datos en los tres ti-
d. 32
ra la memoria principal. pos de discos compactos.
gran capacidad.
l1li El subsistema de entrada/salida es una coleccin de dis- 44. Una palabra es _ _ _ _ bits.
28. Cmo se borran los datos en un CD-RW?
positivos que permite a una computadora comunicarse 11 Un bus de datos, un bus de direcciones y un bus de con- a. 8
trol conectan el CPU a la memoria. 29. En qu difiere un DVD de un disco compacto?
con el mundo exterior. b. 16
111 Estos dispositivos son ya sea dispositivos de almacena- 30. Cules son las funciones de los tres buses que conectan c. 32
111 Un controlador maneja las operaciones de EIS entre el
miento o dispositivos que no son de almacenamiento. el CPU con la memoria? d. cualquiera de los anteriores
CPU/memoria y los dispositivos E/S ms lentos. SCSI,
111 El teclado, el monitor y la impresora son ejemplos de 31. Cul es la funcin de los controladores de dispositivos 45. Si el espacio de direccionamiento de la memoria es 16
FireWire y USB son controladores comunes.
dispositivos que no son de almacenamiento. E/S? ME Y el tamao de palabra es ocho bits, entonces se re-
11 Un disco magntico es un dispositivo de almacenamien- 111 Existen dos mtodos para manejar el direccionamiento 32. Qu es un controlador SCSI? quieren bits para tener acceso a cada palabra.
to formarlo por discos apilados, con cada disco en la pi- de dispositivos E/S: E/S aislado y E/S por mapas de me-
moria. 33. Qu es la interfaz FireWire? a. 8
la dividido en pistas y sectores. b. 16
34. Qu es el controlador USB?
Al La cinta magntica es un dispositivo de almacenamien- 111 Para ejecutar una instruccin en un programa, el CPU c. 24
to en el cual la cinta se divide en pistas. El acceso a los 35. Compare y contraste los dos mtodos para manejar el di-
primero busca y trae la instruccin, la decodifica y lue- d. 32
datos es secuencial. reccionamiento de dispositivos E/S.
go la ejecuta. 46. Los datos en _ _ _ _ se borran si la computadora se
11 Un CD-ROM es un dispositivo de almacenamiento pti- 36. Cules son los pasos en un ciclo de mquina?
11 Hay tres mtodos para sincronizar el CPU con el dispo- apaga.
co en el cual el fabricante quema los datos en el disco. 37. Compare y contraste los tres mtodos para manejar la
Los datos no pueden borrarse.
sitivo E/S: E/S programada, E/S manejada por interrup- a. RAM
sincronizacin del CPU con los dispositivos E/S.
ciones y DMA. b. ROM
11 Un CD-R es un dispositivo de almacenamiento ptico en 38. Compare y contraste la arquitectura CISC con la arqui- c. una unidad de cinta
el cual el usuario quema los datos en el disco. Los datos 111 Los dos diseos para la arquitectura de CPU son CISC tectura RISC. d. unCD-ROM
no pueden borrarse. y RISC.
47. es un tipo de memoria con capacitores que
PREGUNTAS DE OPCiN MLTIPLE necesitan refrescarse peridicamente.
, 39. El ____ es un subsistema de computadora que rea- a. SRAM
5.9 PRACTICA liza operaciones con los datos. b. DRAM
a. CPU c. ROM
PREGUNTAS DE REPASO 14. Comente los niveles de velocidad de la memoria y el ti- b. memoria d. todas las anteriores
1. Cules son los tres subsistemas que forman una compu-
po de memoria que usa cada uno. c. hardware de E/S 48. es un tipo de memoria con puertas flip-flop
15. D ejemplos de dispositivos E/S que no sean de almace- d. ninguno de los anteriores tradicionales para alojar datos.
tadora?
namiento. 40. - - - es una localidad de ahnacenamiento indepen-
2. Cules son las partes de un CPU? a. SRAM
16. Cules son las dos clases principales de dispositivos de diente que aloja los datos temporalmente. b. DRAM
3. Cul es la fimcin del ALU?
almacenamiento? a. Un ALU c. ROM
4. Cules son los diferentes tipos de registros? Descnbalos.
17. Describa los componentes fsicos de un disco magntico. b. Un registro d. todas las anteriores
5. Cul es la funcin de la unidad de control? c. Una unidad de control
18. Cmo est organizada la superficie de un disco mag- 49. Hay _ _ _ _ bytes en 16 terabytes.
6. Cul es la diferencia entre una palabra y un byte? ntico? d. Una unidad de cinta
a. i 6
7. Cul es la funcin de la memoria principal? 19. Qu factores afectan el rendimiento de un disco mag- 41. ____ es una unidad que puede sumar dos entradas. b. 240
8. Cmo se relaciona la aproximacin de un megabyte ntico? a. Un ALU C. 244
con el nmero real de bytes? 20. Describa los componentes fsicos de una cinta magntica. b. Un registro d. 256
9. Qu tipo de representacin de nmeros se utiliza para 21. Cmo est organizada la superficie de una cinta mag- c. Una unidad de control 50. La puede programarse Y borrarse usando
representar direcciones de memoria? ntica? d. Una uuidad de cinta impulsos electrnicos, pero puede permanecer en una
10. Cul es la diferencia entre RAM y ROM? 22. Cmo se accede a los datos en una cinta magntica? 42. Un registro en un CPU puede alojar _ _ __ computadora durante el borrado.
11. Cul es la diferencia entre SRAM y DRAM? 23. Mencione cinco tipos de dispositivos de almacenamien- a. ROM
a. datos
12. Comente las diferencias entre PROM, EPROM Y EE- to ptico. b. instrucciones b. PROM
PROM. c. valores del contador de programa c. EPROM
24. Quin escribe los datos en un CD-ROM?, en un
d. todos los anteriores d. EEPROM
13. Cul es el propsito de la memoria cach? CD-R?, en un CD-RW?
.. Organizacin de la computadora 5.9 Prctica ..
51. La ____ es un tipo de memoria en la cual el usua- 59. El es un dispositivo de almacenamiento que Un bus de ____ conecta el CPU y la memoria. 75. En el mtodo para sincronizar la operacin
rio, no el fabricante, almacena programas que no pueden puede sufrir mltiples escrituras y borrados. del CPU con el dispositivo E/S. el dispositivo E/S infor-
a. datos
sobrescribirse. a. CD-ROM b. direcciones ma al CPU cuando est listo para transferir datos.
a. ROM b. CD-R c. control a. E/S programada
b. PROM c. CD-RW d. todos los anteriores b. E/S manejada por interrupciones
c. EPROM d. todos los anteriores
Si el tamao de palabra es 2 bytes, se necesita un bus de c. DMA
d. EEPROM
60. El rea de almacenanriento ms pequea en un disco datos con lneas. d. E/S aislado
52. Los registros del CPU deben tener memoria de _ __ magntico a la cual se puede tener acceso a la vez es a. 2 76. En el mtodo para sincronizar la operacin
a. alta velocidad
b. 4 del CPU con el dispositivo E/S. el CPU est inactivo
b. velocidad media a. pista c. 8 hasta que se termina la operacin de E/S.
c. baja velocidad b. sector d. 16 a. E/S programada
d. cualquiera de las anteriores c. frame
Si la memoria tiene 2 32
palabras, el bus de direcciones b. E/S manejada por interrupciones
53. La memoria principal en una computadora por lo ge- d. cabeza c. DMA
necesita tener lneas.
neral consiste de grandes cantidades de memoria de d. E/S aislado
61. Para un disco magntico, el tiempo de es el a. 8
tiempo que le toma a la cabeza de lectura/escritura mo- b. 16 77. En el mtodo para sincronizar la operacin
a. alta velocidad verse a la pista deseada donde se almacenan los datos. c. 32 del CPU con el dispositivo E/S, un bloque de datos gran-
b. velocidad media
a. rotacin d. 64 de puede pasarse directamente de un dispositivo E/S a la
c. baja velocidad
b. bsqueda memoria.
d. cualquiera de las anteriores Un bus de control con ocho lneas puede definir
c. transferencia a. E/S programada
54. La memoria contiene una copia de una por- ____ operaciones.
d. localidad b. E/S manejada por interrupciones
cin de la memoria principal. a. 8
62. La resina de policarbonato se utiliza en los _ _ __ b. 16 c. DMA
a. CPU
a. CD-ROM d. E/S aislado
b. cach c. 256
b. CD-R d. 512
c. principal
c. CD-RW EJERCICIOS
d. ROM 71. El controlador presenta una interfaz paralela y
d. todos los anteriores
55. ____ es un dispositivo E/S que no es de almacena- una conexin en cadena para dispositivos E/S. 78. Una computadora tiene 64 MB (megabytes) de memo-
miento. 63. En un , un rayo lser de alta potencia simula a. SCSI ria. Cada palabra mide 4 bytes. Cuntos bits se necesi-
agujeros en una aleacin de plata, indio, antimonio y te- b. FireWire tan para asignar una direccin a cada palabra individual
a. el teclado
lurio. en la memoria?
b. el monitor c. USB
c. la impresora a. CD-ROM d. IDE 79. Cuntos bytes de memoria se necesitan para almacenar
d. todos los anteriores b. CD-R
72. El controlador es un dispositivo serial que co- una pantalla de datos completa si la pantalla se forma de
c. CD-RW
56. Un ____ es un dispositivo de almacenamiento p- necta dispositivos lentos como el teclado y el ratn a la 24 lneas con 80 caracteres en cada lnea? El sistema uti-
d. todos los anteriores
tico. computadora. liza cdigo ASCII. cada carcter ASCII es almacenado
a. CD-ROM 64. En un , un rayo lser de alta potencia simula a. SCSI como un byte.
b. CD-R agujeros en la capa de tinte. b. FireWire 80. Una computadora imaginaria tiene cuatro registros de
c. CD-RW a. CD-ROM c. USB datos (RO a Rl). 1 024 palabras en la memoria y 16 ins-
d. todos los anteriores b. CD-R d. IDE trucciones diferentes (sumar, restar, etc.). Cul es el
c. CD-RW tamao mnimo de una instruccin en bits, si una ins-
57. El es un dispositivo de almacenanriento en el 73. El controlador ____ es una interfaz serial de alta
cual el fabricante escribe informacin en el disco. d. todos los anteriores truccin tpica utiliza el formato add 565 R2?
velocidad que transfiere datos en paquetes.
a. CD-ROM 65. Cul dispositivo de almacenanriento ptico tiene la ma- a. SCSI 81. Si la computadora del ejercicio 80 utiliza el mismo ta-
b. CD-R yor capacidad? b. FireWire mao de palabra para los datos y las instrucciones, cul
c. CD-RW a. CD-ROM c. USB es el tamao para cada registro de datos?
d. todos los anteriores b. CD-R d. IDE
82. Cul es el tamao del registro de instrucciones de la
58. El es un dispositivo de almacenamiento en el c. CD-RW
74. Los tres pasos en la ejecucin de un programa en una computadora del ejercicio 80?
cual el usuario puede escribir informacin slo una vez d. DVD
computadora se realizan en este orden especfico:
en el disco. 66. En un DVD, un rayo ____ lee el disco. 83. Cul es el tamao del contador de programa de la com-
a. CD-ROM putadora del ejercicio 80?
a. lser de alta potencia a. buscar y traer, ejecutar y decodificar
b. CD-R b. infrarrojo 84. Cul es el tamao del bus de datos en el ejercicio 80?
b. decodificar, ejecutar y buscar y traer
c. CD-RW c. lser rojo C. buscar y traer, decodificar y ejecutar 85. Cul es el tamao del bus de direcciones en el ejercicio
d. todos los anteriores d. lser azul d. decodificar, buscar y traer, y ejecutar 80?
Organizacin de la computadora
86. Cul es el tamao nnimo del bus de control en el ejer- 88. Una computadora utiliza direccionamiento de E/S por
cicio 80? mapas de memoria. El bus de direcciones utiliza 10 l-
87. Una computadora utiliza direccionamiento de E/S aisla- neas (lO bits). Si la memoria est fonuada por 1000 pa-
do. La memoria tiene 1024 palabras. Si cada controla- labras, a cuntos controladores de cuatro registros se
dor tiene 16 registros, a cuntos controladores se puede puede tener acceso mediante esta computadora?
tener acceso mediante esta computadora?
e es de f~~0;~\
omputiihorJf
Una red de computadoras es una combinacin de sistemas (por ejemplo, una computadora)
conectados mediante un medio de transmisin (por ejemplo, un alambre, un lnea de control
61 Presentacin
o el aire). Una red de computadoras puede abarcar un rea geogrfica pequea, mediana o
grande. En el primer caso. la red es nna red de rea local (LAN: local area network). En el
51 Sesin
segundo, la red es una red de rea metropolitana (MAN: metropolitan aTea network), y en el
tercero se trata de una red de rea amplia (WAN: wide area network). Discutiremos las redes
41 Transporte
LAN, MAN Y WAN ms adelante en este captulo. Estos tres tipos de redes tambin pueden
conectarse por medio de dispositivos de conexin para fonnar un conjunto de redes interco~ 31 Red
nectadas (o interred).
21 Enlace de datos
MODELO En este captulo, usamos con frecuencia dos trminos: modelo y protocolo. Un modelo es la
Fsico
Y PROTOCOLO especificacin establecida por una organizacin de estndares como un estndar para el dise- 1
o de redes. Un protocolo, por otra parte, es un conjunto de reglas que controla la interaccin
de diferentes dispositivos en una red o en un conjunto de redes interconectadas. La seccin si- Figura 6.1 El modelo OSI
guiente presenta la recomendacin OSI como un modelo. Posterionnente, se define TCPIIP
como el conjunto de protocolos oficial de Internet.
Dispositivo Dispositivo
6.2 MODELO OSI A B
Para lograr que todos los componentes de una red o de un conjunto de redes interconectadas
se coordinen correctamente, se requiere un modelo que muestre la relacin entre los compo-
~ e : Red ~
~
nentes y la funcin de cada componente. La Interconexin de sistemas abiertos (OSI: Open
Systems Interconnection) es un modelo de stos. El modelo OSI fue diseado por la Organi- m~ rn ~
zacin para la Estandarizacin Internacional (ISO: Intemational Standard Organization). En 7 7
teora, el modelo permite que dos sistemas distintos (por ejemplo, computadoras) se comuni- I
6 6
quen sin importar su arquitectura subyacente.
5 5
2
SIETE CAPAS El modelo OSI es un marco de referencia de siete capas que da a los diseadores de redes una
idea de la funcionalidad de cada capa independiente pero relacionada. Cada capa tiene un
nombre: fsico (capa 1), de enlace de datos (capa 2). de red (capa 3), de transporte (capa 4). ) .. ?~..........I
de sesin (capa 5), de presentacin (capa 6) y de aplicacin (capa 7) (figura 6.1). El modelo
Medio fsico
OSI no establece que cada dispositivo involucrado en una red debe implementar las siete
capas. U TI dispositivo puede necesitar slo una capa, dos capas, tres capas o todas las capas. Figura 6.2 Flujo de datos en el modelo OSI
El nmero de capas depende de la funcionalidad del dispositivo y de su ubicacin en la red.
La figura 6.2 representa la funcin de las capas cuando un mensaje se enva desde un dis-
positivo A hasta un dispositivo B. Conforme el mensaje viaja de A a B, puede atravesar mu-
chos nodos intennedios (no aparecen en la figura). Estos nodos intermedios por lo general
FUNCIONES Esta seccin describe brevemente las funciones de cada capa en el modelo OSI.
involucran slo las primeras tres capas del modelo OSI.
Como lo muestra la figura, antes de que los datos se enven al medio de transmisin, s- DE LAS CAPAS
tos se desplazan hacia abajo a travs de las siete capas hasta que negan a la capa fsica. En
cada capa se aade infonnacin de control a los datos en fonna de encabezados (headers)-o
caracteres de control (trailers). Los encabezados se aaden a los datos en las capas 7, 6, 5, Capa fsica La capa fsica es responsable de la transmisin de un flujo de bits a travs de un medio fsi-
4, 3 Y 2. Los caracteres de control se aaden en la capa 2. En la mquina receptora, el enca- co. Codifica y decodifica los bits en grupos de bits. Luego transforma un flujo de bits en una
bezado o los caracteres de control se dejan caer en cada capa a medida que se desplazan ha- seal. Las especificaciones fsicas y mecnicas de los dispositivos fsicos se determinan me-
cia la sptima capa. diante la capa fsica.
.. Redes de computadoras 6.3 Categoras de redes ..
Capa de enlace La capa de enlace de datos organiza los bits en unidades lgicas llamadas bloques de da. descomprime los datos para un mejor rendimiento. Cifra y descifra los datos por razones de
de datos tos iframes)l. Un bloque de datos contiene informacin de la capa de red. La capa de seguridad (vase el captulo 16). Al igual que ocurre con la capa de sesin, actualmente la ma-
de datos aade un encabezado y caracteres de control para deflnir el bloque de datos para yora de las implementaciones no utiliza una capa de presentacin. Esto no significa que las
estaciones receptora o intermedia. En particular, a los datos se aade informacin de funciones definidas para la capa de presentacin no sean necesarias, simplemente significa
cionamiento, por lo general en forma de dos direcciones. Esto define las direcciones de que las redes actuales han asignado estas responsabilidades a otras capas. Por ejemplo, el ci-
estaciones contiguas, una que enva y otra que recibe. Observe que la capa de enlace de frado/descifrado se realiza tanto en la capa de red como en la capa de aplicacin.
tos es responsable slo de la entrega nodo a nodo del bloque de datos (de una estacin
otra). Cuando una estacin recibe un bloque de datos (no destinado para s misma), cambia de aplicacin La capa de aplicacin permite que el usuario, ya sea una persona o software, tenga acceso a
la direccin de origen a su propia direccin y la direccin de destino a la direccin de la la red. Define aplicaciones comunes que pueden implementarse para simplificar el trabajo del
tacin siguiente. La capa de enlace de datos a menudo es responsable del manejo de usuario. Analizaremos algunas de estas aplicaciones ms adelante en este captulo en la sec-
entre dos estaciones contiguas. Los datos redundantes se aaden en los caracteres de cin sobre Internet.
ya sea para detectar errores o para corregirlos.
Capa de red La capa de enlace de datos se encarga de la entrega nodo a nodo de un bloque de datos entre
dos estaciones contiguas; la capa de red es responsable de la entrega de un paquete (la unidad CATEGORAS DE REDES
de datos manejada por la capa de red se llama paquete) entre el origen y el destino final. Para
realizar esta tarea, la capa de red aade un encabezado a la unidad de datos proveniente de la Ahora que se tiene un modelo para la comunicacin, podemos dividir las redes en tres cate-
capa superior que incluye, entre otras cosas, una direccin de origen y una direccin de desti- goras principales: redes de rea local CLAN), redes de rea metropolitana (MAN) y redes de
no. Estas direcciones comnmente se llaman direcciones lgicas (o, como se ver posterior- rea amplia (WAN) (figura 6.3).
mente en este captulo, direcciones IP) para distinguirlas de las direcciones fsicas. Para la
comunicacin global, una direccin lgica debe ser nica. Note que cuando un paquete se tras-
lada del origen a un destino, la direccin sica (aadida a la capa de enlace de datos) cambia
de estacin a estacin, pero la direccin lgica permanece intacta del origen al destino.
Redes
Capa de transporte La capa de transporte es responsable de la entrega del origen al destino (punto a punto)
del mensaje completo. Observe la diferencia entre la responsabilidad de la capa de red y la
capa de transporte. La capa de red es responsable de la entrega punto a punto de paquetes in-
dividuales. La capa de transporte, en cambio, es responsable de la entrega punto a punto de
todo el mensaje. Un mensaje puede conformarse por uno o ms paquetes. La capa de trans-
porte es responsable de dividir el mensaje en varios paquetes y entregarlos a la capa de red,
la cual enva los paquetes al exterior uno a uno, independientes uno del otro. Algunos paque-
tes pueden llegar desordenados a su destino, mientras que otros pueden perderse en el cami- Figura 6.3 Categoras de redes
no. La capa de transporte es responsable de asegurar que se transmita el mensaje completo
desde el origen al destino. Si los paquetes se pierden, deben retransmitirse. Si los paquetes
llegan desordenados, deben reorganizarse. En resumen, la capa de transporte considera al RED DE REA Una red de rea local (LAN) est diseada para permitir el uso compartido de recursos
mensaje como una entidad integral que debe entregarse a la capa de transporte en el destino. LOCAL (LAN) (hardware, software y datos) entre computadoras. Una LAN puede definirse simplemente co-
mo una combinacin de computadoras y dispositivos perifricos (por ejemplo, impresoras)
Capa de sesin La capa de sesin est diseada para controlar el dilogo entre los usuanos. Establece, man- conectados mediante un medio de transmisin (por ejemplo, lnea de control). La figura 6.4
tiene y sincroniza el dilogo entre sistemas que se comunican. Tambin aade lo que se llama muestra tres ejemplos de LAN.
puntos de sincronizacin para respaldar la entrega en caso de un fallo en el sistema o la red. La primera LAN en la figura utiliza una topologa de bus en la cual las computadoras se
Los puntos de sincronizacin dividen un mensaje largo en mensajes ms pequeos y se asegu- conectan a travs de un medio comn llamado bus. En esta configuracin, cuando una esta-
ran de que el receptor reciba y reconozca cada seccin. En este caso, si hay una falla en el sis- cin enva un bloque de datos a otra computadora, todas las computadoras reciben el bloque
tema o la red, no es necesario que el emisor reenve el mensaje completo. El emisor puede de datos y revisan su direccin de destino. Si la direccin de destino en el encabezado del blo-
desplazarse al ltimo punto de sincronizacin y reenviar el mensaje desde ese punto. La ma- que de datos coincide con la direccin fsica de la estacin, el bloque de datos se acepta y los
yora de las implementaciones de red actuales no utiliza una capa de sesin separada. Si se re- datos contenidos en l se procesan; de lo contrario, el bloque de datos se desecha. Un proble-
quieren los servicios de una capa de sesin, por lo general se incluyen en la capa de aplicacin. ma importante en este tipo de topologa es la eliminacin del bloque de datos. Una topologa
de bus utiliza terminadores de lnea de control diseados para dar fin electrnicamente a la
Capa de La capa de presentacin se ocupa de la sintaxis (formato) y la semntica (significado) de la seal que reciben. Si los terminadores de lnea de control no estn funcionando, la seal re-
presentacin informacin intercambiada entre dos sistemas. Se enfrenta al hecho de que diferentes siste- botar de ida y vuelta entre los dos puntos de manera que cada estacin la recibir una y otra
mas utilizan mtodos de codificacin distintos (por ejemplo, ASCII y Unicode). Comprime Y vez, lo cual es una situacin poco deseable.
La segunda LAN en la figura utiliza una topologa de estrella en la cual las computado-
l N. del traductor. En la literatura de computacin a los bloques de datos tmnbin se les conoce como ras se conectan a travs de un concentrador (hub), un dispositivo que facilita la conexin, o
tramas. un conmutador (switch), un concentrador sofisticado que controla el envo del bloque de da-
la Redes de computadoras 6.4 Dispositivos de conexin ..
a. LAN en bus
Red pblica de una ciudad
b. LAN en estrena
CJ
c. LAN en anillo
REDES DE REA Una red de rea metropolitana (MAN) utiliza servicios proporcionados por una empresa de
METROPOLITANA comunicaciones (proveedor de servicios de red) comn, tal como la compaa telefnica.
(MAN) Abarca una ciudad o un pueblo y ofrece sus servicios a usuarios individuales u organizacio- Figura 6.6 WAN
nes. Los usuarios individuales pueden conectar sus computadoras a la red y las organizacio-
nes pueden conectar sus LAN a la red (figura 6.5). Muchas compaas telefnicas proveen un
servicio de MAN generalizado llamado servicios de datos conmutados mutlimegabit (SMDS:
switched multimegabit data sendces).
6.4 DISPOSITIVOS DE CONEXIN
RED DE REA Una red de rea amplia (WAN) es la conexin de computadoras individuales o LAN distri-
AMPLIA (WAN) buidas en una gran rea (estado, pas, el mundo). Las WAN, al igual que las MAN, estn ins- Los tres tipos de redes que acabamos de presentar pueden conectarse usando dispositivos de
taladas y administradas por empresas de comunicaciones comunes (figura 6.6). Observe que conexin. La interconexin de redes hace posible la comunicacin global desde un extremo
una persona que usa una lnea telefnica para conectarse a un proveedor de servicios de In- del mundo al otro. Los dispositivos de conexin pueden dividirse en cuatro tipos con base en
ternet (PSI) utiliza una WAN. El PSI negocia las cuotas de los servicios directamente con la su funcionalidad segn su relacin con las capas del modelo OSI: repetidores, puentes, enru-
compaa telefnica y recibe el pago de sus clientes (usuarios de Internet). tadores y gateways. Los repetidores y los puentes por lo general conectan dispositivos en una
.. Redes de computadoras 6.4 Dispositivos de conexin
red. Los enrutadores y las gateways habitualmente interconectan redes en un conjunto de re- Cuando una red utiliza una topologa de bus, todas las estaciones comparten el medio. En
des (interred) (figura 6.7). otras palabras, cuando una estacin enva un bloque de datos, esta estacin ocupa el bus co-
mn y ninguna otra estacin tiene permitido enviar un bloque de datos (si 10 hace, los dos blo-
ques colisionan). Esto implica una disminucin en el rendimiento. Las estaciones necesitan
esperar a que se libere el bus. Esto es similar a un aeropuerto que slo tiene una pista de ate-
I Dispositivos
de conexin
I rrizaje; cuando un avin utiliza la pista, otro avin listo para despegar debe esperar.
Un puente es un controlador de trfico. Puede dividir un bus grande en segmentos ms pe-
queos de manera que cada segmento sea independiente respecto al trfico. Un puente insta-
I lado entre dos segmentos puede pasar o bloquear el paso de bloques de datos con base en la
I I
I
Dispositivos
de red
I Dispositivos de redes
interconectadas
direccin de destino que tengan los mismos. Si se origina un bloque de datos en un segmen-
to y la direccin de destino est en el mismo segmento, no hay razn para que el bloque pa-
se el puente y viaje por otros segmentos. El puente utiliza una tabla para decidir si el bloque
I I
debe reenviarse a otro segmento. Con un puente, dos o ms pares de estaciones pueden co-
I I I I municarse al mismo tiempo (figura 6.9).
I Repetidores I I Puentes I I Enrutadores I I Gateways I
Figura 6.7 Dispositivos de conexin
REPETIDORES Un repetidor es un dispositivo electrnico que regenera los datos. Extiende la longitud fsi-
o
a. Sin puente
ca de una red. Conforme se transmite una seal, sta puede perder fuerza y un receptor pue-
de interpretar una seal dbil errneamente. Un repetidor puede regenerar una seal y
enviarla al resto de la red. La figura 6.8 muestra una red con y sin repetidor.
b. Con puente
a. Sin repetidor
Figura 6.9 Puente
IJ
Adems de sus deberes de control de trfico, un puente tambin funciona como un repe-
b. Con repetidor
tidor al regenerar el bloque de datos. Como se vio anteriormente, esto significa que un puen-
te opera en la capa fsica, pero debido a que necesita interpretar la direccin incrustada en el
Figura 6.8 Repetidor
bloque de datos para tomar decisiones de filtrado, tambin opera en la capa de enlace de da-
tos del modelo OSI.
Los repetidores operan slo en la capa fsica del modelo OSI. No reconocen las direccio-
nes fsicas ni lgicas. Simplemente regeneran cada seal que reciben. Los repetidores, cuyo
Los puentes operan en las dos primeras capas del modelo OSI.
uso se volvi generalizado cuando la topologa de bus era la dominante, con frecuencia co-
nectaban dos buses para ampliar la longitud de la red.
mentas (con una estacin por segmento) usando un conmutador de 20 interfaces. En este ca~
so, un conmutador aumenta el rendimiento; una estacin que necesita enviar un bloque de da-
tos los enva directamente al conmutador. Los medios no se comparten; cada estacin Se
conecta directamente al conmutador (figura 6.10).
WAN
--Conmutador
'Enrutador
Los enruadores operan en las primeras tres capas del modelo OSI. Figura 6.12 Dispositivos de conexin y el modelo OSI
En tanto que un puente puede conectar dos segmentos de un LAN o dos LAN pertenecien- MODELO OSI La figura 6.12 presenta la relacin entre los dispositivos de conexin y el modelo OSI.
tes a la misma organizacin, un enrutador puede conectar dos redes independientes: una LAN
Y DISPOSITIVOS
a una WAN, una LAN a una MAN, una WAN a otra WAN, y as sucesivamente. El resultado
es un conjunto de redes interconectadas (o interred). Usted ver en breve que Internet (la ni-
DE CONEXiN
ca interred a escala mundial), la interred que conecta al mundo entero, es un ejemplo de un
conjunto de redes interconectadas donde muchas redes se conectan entre s por medio de en-
rutadores. La figura 6.11 muestra un ejemplo de un conjunto de redes interconectadas.
BBBEJ ]
1 Figura 6.14
Notacin con punto decimal
Red En la capa de transporte, TCPIIP define dos protocolos: el protocolo de control de transmi~
DE
<
LAII'A
sin (TCP) y el protocolo de datagrama de usuario (UDP: user datagram protocol). El
IP protocolo de datagrama de usuario es el ms simple de los dos. Es un protocolo de capa de
transporte de punto a punto que proporciona slo las necesidades bsicas para la entrega pun-
4 4
3 J
Direccionamiento TCPIIP requiere que cada computadora conectada a Internet se identifique mediante una di-
1-2
1-2
reccin internacional nica. Esta direccin a veces se conoce como direccin Internet o di-
reccin IP.
Internet
~ada direccin Internet consiste de 4 bytes (32 bits). Para abreviar la forma de 32 bits y .",
faCIlItar su lectura, las direcciones Internet por lo general se escriben en forma decimal con
puntos decimales que separan los bytes: notacin con punto decimal. La figura 6.14 mues-
tra el patrn de bits y el fonnato decimal de una posible direccin. Figura 6.15 Modelo cliente-servidor
.. Redes de computadoras 6.5 Internet Y TCP/IP ..
Protocolo de El protocolo estndar en Internet para transferir un archivo desde una mquina a otra es
Equipo
transferencia protocolo de transferencia de archivos (FTP: file transfer protocol)o FTP se dise de escritorio
de archivos (FTP) responder a los problemas tradicionales relativos a la transferencia de archivos. Uno de
problemas son los diferentes sistemas de codificacin en uso; una mquina puede utilizar
en y la otra, Unicode. Otro problema son los distintos formatos de archivo en uso. FTP
dise para resolver estos problemas.
FTP establece dos conexiones entre las computadoras que se comunican: uno para
transferencia de datos y el otro para informacin de control (comandos y respuestas). La co- Cliente
nexin de control est presente durante toda la sesin FTP; la conexin de datos est presen- SMTP
te slo cuando hay datos a transferir (figura 6.16).
Internet
5 1 1 5
1-4 T Control
T 1-4
Parte local l@ll__ .:.N:.:o:::m:::h:.:,.:..e:.:d:.:e:.:d:.:o.:.m.:.i_n_io_ _
Jo Internet )
...".". Datos Figura 6.18 Direcciones de correo electrnico
Figura 6.16 FTP
Protocolo simple Por mucho, la aplicacin ms popular en Internet de hoyes el correo electrnico (email). Pero no existe un programa cliente-servidor en Internet llamado "crear un programa", "com-
de transferencia de protocolo que soporta el correo electrnico en Internet es el protocolo simple de transfe- pilar un programa" o "ejecutar un programa". Actualmente hay muchas tareas diferentes que
rencia de correo (SMTP: simplemail transfer protocol) (figura 6.17). El servicio de correo
correo (SMTP) un usuario necesita realizar en una computadora remota. No hay manera de tener un progra-
electrnico por naturaleza es diferente de otras aplicaciones. Para enviar y recibir correo elec- ma cliente-servidor especfico para cada tarea.
trnico, el usuario debe instalar software SMTP tanto cliente como servidor en su computa- La solucin es un programa cliente-servidor de uso general que permita a un usuario eje-
dora. Adems, SMTP siempre debe ejecutarse para recibir correo electrnico. Una mquina cutar un programa de aplicacin en una computadora remota como si el usuario estuviera ac-
apagada no recibir correo electrnico. Para resolver este problema, SMTP siempre se utiliza cediendo a esa computadora localmente. Cuando un usuario va a un laboratorio de
con otro protocolo tal como el protocolo de oficina postal (pOP: post office protocoT). El computadoras y accede directamente a una computadora, se le llama inicio de sesin locaL
usuario an utiliza el cliente SMTP para enviar mensajes por correo electrnico. Sin embar- Por otro lado, cuando un usuario permanece en casa y accede a la misma computadora en for-
go, los mensajes no se reciben directamente sino que en vez de ello se dirigen a otra compu- ma remota, se le llama inicio de sesin remoto.
tadora (la cual siempre est en ejecucin). El servidor SMTP se ejecuta en esta computadora TELNET (TEnninaL NETwork: red terminal) es un programa cliente-servidor general en
y recibe los mensajes y los almacena en el buzn de correo del usuario (un archivo especial). Internet que permite el inicio de sesin remoto. TELNET permite el establecimiento de una
Cuando el usuario quiere recuperar el correo electrnico, utiliza el cliente POP para entrar en conexin desde un sistema local a un sistema remoto de tal manera que la tenmnallocal pa-
contacto con el servidor POP (en la misma computadora que ejecuta el servidor SMTP) y rece ser una terminal en el sistema remoto (figura 6.19).
transfiere el correo electrnico. Normalmente hay una interraz de usuario llamada agente de
usuario (VA: user agent) que facilita estas transacciones.
Direcciones SMTP utiliza un sistema de direccionamiento nico que consiste de dos par-
~
tes: una parte local y un nombre de dominio separado por un signo @ (figura 6.18). La parte
local define el nombre de un archivo especial, llamado buzn de correo del usuario, donde to- Cliente Servidor
do el correo recibido por un usuario se almacena para su recuperacin posterior por el agen- TELNET TELNET Programas de aplicacin
te de usuario. El nombre de dominio define la computadora (a menudo de manera simblica)
que sirve como servidor SMIT Temilnal 1 1 11 .. I
TELNET FTP y SMTP proporcionan servicios especficos para el usuario. FIP se utiliza para transfe-
rir archivos; SMTP se usa para enviar correo electrnico. Existen otros servicios que necesi-
ta un usuario en Internet. Por ejemplo, los estudiantes que toman un curso de programacin
necesitan tener acceso a una de las computadoras del laboratorio de la universidad para hacer
L Le :rJ L...........---J
Internet
la programacin. Necesitan, adems, crear un programa, compilarlo y ejecutarlo (vase el ca~ Figura 6.19 TElNET
ptulo 9). Todas estas tareas deben realizarse en forma remota.
.. Redes de computadoras 6.5 Internet y TCP /IP 111
Protocolo de El protocolo de transferencia de hipertexto (HTTP: hypertext transfer protocoT) es un pro-
transferencia grama cliente-servidor que se utiliza para tener acceso a y transferir documentos en el World Desde el teclado
de hipertexto Wide Web. Aunque transfiere los datos en forma de texto simple, hipertexto, audio, video y
as por el estilo, est diseado particularmente para transferir documentos de hipertexto (va~
(HTTP)'
se la seccin siguiente). L-~c~on~tr~o~l=ad~o=r__~1 ~
Un cliente HTTP enva una solicitud al servidor. El servidor enva la respuesta al cliente,
Los comandos del cliente al servidor se incrustan en un mensaje tipo carta. El contenido del Al monitor
archivo solicitado u otra informacin se incrusta en un mensaje de respuesta tipo carta.
Mtodos (HTTP... )
Localizador uniforme de recursos (URl) HITP utiliza un tipo especial de direcciona-
miento llamado localizador unifonne de recursos (URL: unifotm resource Zocator), el cual
es un estndar para especificar cualquier tipo de informacin en Internet. El URL define cua-
A Internet
tro cosas: mtodo, computadora anfitrin, puerto y ruta (figura 6.20).
Documento Web
Figura 6.20 URL
El mtodo es el programa cliente-servidor usado para transferir los documentos, HTTP en Figura 6.22 Categoras de documentos Web
este caso (el URL puede utilizarse por otros programas de aplicacin). El anfitrin es la com-
putadora donde se localiza la informacin, aunque el nombre de la computadora puede ser un
alias, que por lo general comienza con los caracteres "www". Tipos de documentos Generalmente hay tres tipos distintos de documentos en Internet:
El puerto, el cual defme el nmero de puerto del servidor, es opcional. La ruta es el nom- esttico, dinmico y activo (figura 6.22).
bre de ruta del archivo donde se localiza la informacin. Observe que la ruta puede contener
diagonales que, en el sistema operativo UNIX, separan los directorios de los subdirectorios y l1li Los documentos estticos tienen contenido fijo. Se crean en el lado del servidor y slo
archivos. pueden copiarse. Un documento esttico norrnahnente utiliza el lenguaje para marcado de
hipertexto (HTML: hypertext markup language) para el formato de pantalla y los vncu-
los en el documento. En el captulo 9 se estudia el HTML.
World Wide Web El World Wide Web (WWW), o Web, se basa en la idea de informacin distribuida. En lu-
(WWW) gar de mantener toda la infonnacin en un lugar, cada entidad (individuo u organizacin) que lB Los documentos dinmicos son programas que residen en el lado del servidor. Cuando
tiene informacin para compartir almacena esa informacin en su propia computadora y per- un explorador enva una solicitud el servidor ejecuta el programa y enva el resultado (no
mite el acceso a la misma a los usuarios de Internet. El WWW es una coleccin de documen- el programa en s) al explorador. Por ejemplo, el explorador puede solicitar al servidor
tos multimedia. que ejecute el programa de fecha y enve el resultado del programa al cliente. Los docu-
mentos dinmicos usan una tecnologa llamada Interfaz de Compuerta Comn (CGI:
common gateway inteiface) que incluye lenguajes de programacin corno PerI (vase el
Hipertexto El WWW utiliza el concepto de hipertexto, el cual es un documento que con-
captulo 9) y HT1VlL para manejar la creacin y la interpretacin del documento.
tiene texto, palabras y frases especiales que pueden crear un vnculo a otros documentos que
contienen texto, imgenes, audio o video. Un documento de hipertexto disponible en el Web
11 Los documentos activos tambin son programas, pero no es posible ejecutarlos en el
se llama pgina. La pgina central de una organizacin o individuo se conoce como pgina
servidor. En vez de ello, el explorador debe solicitar la transferencia del programa. Des-
principal.
pus de la transferencia, el programa se ejecuta en el lado del explorador. La diferencia
entre un documento dinmico y un documento activo es que el primero se ejecuta en el
Explorador Para obtener acceso a una pgina en el WWW, se necesita un explorador que lado del servidor y su resultado se transfiere al explorador, y el ltimo se transfiere alIa-
por lo general consiste de tres partes: un controlador, un mtodo y un intrprete (figura 6.21). do del explorador y luego se ejecuta. Un documento activo es necesario cuando el pro-
El controlador es la parte medular del explorador; coordina todas las actividades. El mtodo eS grama no puede ejecutarse en el lado del servidor. Por ejemplo, cuando un programa
un programa de aplicacin cliente que recupera el documento. Aunque puede ser cualquiera de involucra animacin, debe ejecutarse en el lado del explorador. Un documento activo por
los programas de aplicacin que hemos analizado, por lo general es HTTP. El intrprete des- lo general se escribe en lenguaje Java (vase el captulo 9). El explorador requiere un in-
pliega el documento en la pantalla. trprete Java para interpretar (ejecutar) un documento activo.
.. Redes de computadoras 6.8 Prctica 111
El Protocolo de Datagrama de Usuario (UDP) y el Pro- 1II El Protocolo de Transferencia de Hipertexto (HTTP) es
6.6 TRMINOS CLAVE tocolo de Control de Transmisin (TCP) son los proto- un programa cliente-servidor para tener acceso y trans-
colos de TCP/IP en la capa de transporte. ferir documentos en el World Wide Web (WWW), una
bloque de datos entrega de nodo a nodo Protocolo de Datagrama de Usuario El Protocolo de Transferencia de Archivos (FTP) es una coleccin de documentos multimedia.
capa de aplicacin entrega de origen a destino (UDP) aplicacin cliente-servidor para copiar archivos de lUl 111 El Localizador Uniforme de Recursos (URL) es un
capa de enlace de datos explorador Protocolo de Transferencia de anfitrin a otro. identificador estndar para especificar informacin en
capa fsica gateway Archivos (FTP) El protocolo que soporta correo electrnico (emaif) en Internet.
capa de presentacin inicio de sesin local protocolo Internet (IP) Internet es el Protocolo Simple de Transferencia de co- 11 Se requiere un explorador para tener acceso a una pgi-
capa de red inicio de sesin remoto protocolo para transferencia de rreo (SMTP). na en elWWW.
capa de sesin Interconexin abierta de sistemas hipertexto (HTTP)
TELNET es una aplicacin cliente-servidor que pennite 11 Un documento en Internet puede clasificarse como est-
capa de transporte (OSI) protocolo simple de transferencia de
a un usuario iniciar una sesin en lUla mquina remota, tico, dinmico o activo.
caracteres de control (trailer) Internet correo (SMTP)
dando al usuario acceso al sistema remoto.
cliente lenguaje para marcado de hipertexto puente
conjunto de redes interconectadas (HTML) punto de sincronizacin
conmutador Localizador Uniforme de Recursos red de rea amplia (WAN)
correo electrnico (email) (URL) red de rea local (LAN)
datagrama topologa de bus red de rea metropolitana (MAN) PRCTICA
datagrama IP modelo red de computadoras
direccin tIsica modelo cliente-servidor repetidor PREGUNTAS DE OPCiN MLTIPLE
PRIEGUNTAS DE REPASO
direccin Internet nodo segmento
direccin IP notacin con punto decimal servidor Cul es la diferencia entre un modelo y un protocolo? 18. Un es un conjunto de reglas que controla la
dispositivos de conexin pgina principal TELNET (red tenninal) D un ejemplo de cada uno. interaccin de distintos dispositivos en una red o en un
documento activo protocolo topologa conjunto de redes interconectadas.
Cules son las capas del modelo OSI?
documento dinmico Protocolo de Control de Transmisin topologa de anillo a. modelo
documento esttico (TCP) topologa de estrella Cules son las capas del conjunto de protocolos TC- b. protocolo
encabezado Protocolo de Control de Transmisin! Web PIIP? c. dilogo
enrutador Protocolo Internet (TCP/IP) World Wide Web (WWW) d. punto de sincronizacin
Qu funcin tiene cada capa del modelo OSI?
19. El modelo OSI tiene ____ capas.
Cul es la diferencia entre la entrega nodo a nodo y la
a. cinco
6.1 RESUMEN entrega origen a destino?
b. seis
Cul es la diferencia entre bloque de datos y paquete? c. siete
111 Una red de computadoras es una combinacin de dispo- 111 Un repetidor es un dispositivo de conexin que regene- d. cualquiera de las anteriores
sitivos conectados mediante un medio de transmisin. 7. Cul es el propsito de un punto de sincronizacin?
ra los datos y extiende la longitud fsica de una red.
20. La capa _ _ _ _ del modelo OSI organiza los bits en
lIIl El modelo de Interconexin de sistemas abiertos (OSI) I!I Un puente es un dispositivo de conexin que filtra el ,8. Cules son las tres topologas comunes? Cul de ellas
unidades de datos lgicas llamadas bloques de datos
es un modelo terico que muestra cmo dos sistemas di- trfico. es la ms popular hoy en da?
(!rames).
ferentes cualesquiera pueden comunicarse entre s.
111 Un enrutador es un dispositivo de conexin que enruta 9. Mencione cuatro tipos de dispositivos de conexin y sus a. fsica
lIIIl Las siete capas del modelo OSI son la capa fsica, la capa
los paquetes. funciones respectivas. b. de enlace de datos
de enlace de datos, la capa de red, la capa de transporte,
10. Cul es la diferencia entre TCP y UDP? c. de red
la capa de sesin, la capa de presentacin y la capa de 111 Una gateway pennite a dos redes, cada una con un con-
d. de transporte
aplicacin. junto de protocolos completamente diferentes, comuni-
11. Por qu las direcciones Internet son necesarias?
111 Una red de rea local (LAN) permite el uso compartido carse entre s. 21. La capa _ _ _ _ del modelo OSI permite a una perso-
de recursos (hardware, software y datos) entre computa- 12. Cmo difiere la capa de aplicacin de TCP/IP de aque- na tener acceso a Internet.
l1li Un conjunto de redes interconectadas es dos o ms
doras. lla del modelo OSI? 3. de enlace de datos
LAN, MAN o WAN.
111 Una LAN puede configurarse en una topologa de bus, 13. Cul es el propsito de FrP? b. de transporte
111 El Protocolo de Control deTransmisinlProtocolo Inter- c. de aplicacin
anillo o estrella.
net (TCP/IP) es el conjunto de protocolos utilizados por 14. Cul es el propsito de TELNET? d. fsica
l\III Una red de rea metropolitana (MAN) utiliza los servi- Internet, un conjunto de redes de computadoras interco-
dos proporcionados por una empresa de comunicacio- nectadas en todo el mundo. 15. Cul es el propsito de SMTP? 22. La capa del modelo OSI comprime y descom-
nes comn. prime los datos.
lIII El Protocolo Internet (IP) es el protocolo poco confiable 16. Cul es la diferencia entre un inicio de sesin local y un
lIII Una red de rea amplia (WAN) es la conexin de com- 3. fsica
de TCP/IP en la capa de interred. inicio de sesin remoto?
putadoras individuales o LAN sobre un rea de gran ex- b. de enlace de datos
tensin. Las WAN se instalan y ejecutan por empresas l1li Una direccin IP identifica a cada computadora coneC- 17. Compare y contraste los tres tipos de documentos In- c. de sesin
de comunicaciones comunes. tada a Internet. ternet. d. de presentacin
.. Redes de computadoras 6.8 Prctica ..
23. La capa ____ del modelo OSI cifra los datos. 30. Los Postres Divinos de Cindy es una panadera con , ;Un(a) es un dispositivo de conexin que acta 45. ____ es un protocolo para transferencia de archi-
a. fsica tro puntos de venta en San Francisco. Los puntos de como un convertidor de protocolo. vos.
ta necesitan comunicarse unos con otros. Este tipo
b. de enlace de datos repetidor 3. FTP
red probablemente es una _ _ __
c. de sesin puente b. SMTP
3. LAN enrutador C. TELNET
d. de presentacin b. MAN gateway d. HTTP
24. La capa del modelo OSI transmite un flujo de c. WAN
____ es un dispositivo de conexin que seg- 46. es un protocolo para servicio de correo elec-
bits sobre un medio fsico. d. ninguna de las anteriores
el trfico. trnico (email)
a. fsica 31. La compaa Papas Irlandesas de Kate tiene su base repetidor a. FTP
b. de enlace de datos Irlanda pero tiene sucursales en Boston y San
puente b. SMTP
Las sucursales se comunican entre s mediante
c. de red enrutador c. TELNET
d. de transporte gateway d. HITP
3. LAN
25. La capa del modelo OSI es responsable de la ____ es un dispositivo que puede enrutar un pa- 47. es un protocolo para tener acceso y transferir
b. MAN
entrega nodo a nodo de un bloque de datos entre dos es- quete con base en su direccin de capa de red. documentos en el WWW.
c. WAN
taciones contiguas. d. ninguna de las anteriores puente a. FTP
enrutador b. SMTP
a. de transporte
32. Vecchiarelli Consultores ocupa dos reas contiguas en repetidor c. TELNET
b. de red edificio Coffland. La red, que consiste en cuatro todos los anteriores d. HTTP
c. de enlace de datos nes de trabajo y una impresora, probablemente es
VHI'",_",e opera en ____ del modelo OSl. 48. Un documento ____ tiene contenido fijo.
d. de sesin
3. LAN la primera capa a. esttico
26. La capa del modelo OSI es responsable de la las primeras dos capas b. dinmico
b. MAN
entrega de origen a destino del mensaje completo. c. las primeras tres capas c. activo
c. WAN
a. de transporte d. todas las capas d. todos los anteriores
d. ninguna de las anteriores
b. de red Una gateway opera en ____ del modelo OSI.
c. de enlace de datos
33. Cul es el nombre de dominio de la direccin de EJERCICIOS
electrnico kayla@pit.arc.nasa.gov? a. la primera capa
49. Cul o cules de las capas OSI estn involucradas en ca-
d. de sesin b. las primeras dos capas
3. kayla da una de las actividades siguientes:
c. las primeras tres capas
27. La capa del modelo OSI es responsable de la b. pit.arc.nasa.gov a. enVo de un bloque de datos a la siguiente estacin
d. todas las capas
entrega de origen a destino de un paquete individual. c. kayla@pit.arc.nasa.gov b. envo de un paquete desde el origen al destino
a. de transporte d. nasa.gov La capa de de TCP/IP tiene funciones simila- c. envo de un mensaje largo desde el origen al destino
res a aquellas de las capas de aplicacin, presentacin y d. inicio de una sesin en una computadora remota
b. de red 34. Cul topologa utiliza un concentrador o un conmu- sesin del modelo OSl. e. cifrado y descifrado de datos
c. de enlace de datos tador?
a. transporte f. cambio de los datos de cdigo de mquina a Unicode
d. de sesin a. bus b. red
b. anillo 50. Una pequea parte de una LAN en bus con 200 estacio-
28. La capa del modelo OSI controla el dilogo c. aplicacin
c. estrella nes est daada. A cuntas estaciones afecta este dao?
entre los usuarios. d. sesin
d. todas las anteriores 51. Una pequea parte de una LAN en estrella con 200 es-
a. de transporte La direccin IP actualmente mide ____ de longi- taciones est daada. A cuntas estaciones afecta este
b. de sesin 35. Cul topologa necesita tenninadores de cable? tud. dao?
c. de presentacin a. bus a. 4 52. Una pequea parte de una LAN en anillo con 200 esta-
d. de aplicacin b. anillo b. 8 ciones est daada. A cuntas estaciones afecta este
c. estrella c. 32 dao?
29. A travs de la capa del modelo OSI los servi- d. todas las anteriores d. ninguno de los anteriores
cios de correo y de directorio estn disponibles para los 53. Si usted tiene una habitacin cuadrada con una compu-
usuarios de red. 36. Un(a) es un dispositivo de conexin que slo 44. El protocolo de la capa de transporte de Tep/IP se llama tadora en cada esquina, cul topologa necesita menos
regenera la seal. cableado? Justifique su respuesta.
a. de conexin de datos
a. repetidor a. Tep a. una LAN en bus
b. de sesin
b. puente b. UDP b. una LAN en anillo
c. de transporte c. enrutador c. IP c. una LAN en estrella con un concentrador en el cen-
d. de aplicacin d. gateway d. incisos a y b tro de la habitacin
.. Redes de computadoras
54. Si usted tiene una habitacin cuadrada con una compu- 60. Cambie las siguientes direcciones IP de notacin binaria
tadora en cada esquina, cul topologa es ms confia- a notacin de punto decimal:
ble? Justifique su respuesta. a. 011111101111000101100111 01111111
b. 10111111110111001110000000000101
a. una LAN en bus
b. una LAN en anillo
c. una LAN en estrella con un concentrador en el cen-
tro de la habitacin
55. Un ingeniero observa que los datos que reciben las com-
c. 00011111111100000011111111011101
d. 100011111111010111000011 00011101
e. 11110111100100111110011101011101
61. Explique el modelo cliente-servidor en Internet. En
cul capa del conjunto de protocolos TCPIIP est imple-
oftwa
putadoras en los dos extremos de una LAN en bus con-
tienen muchos errores. Cul cree que sea el problema?
Qu se puede hacer para resolver el problema?
56. Un ingeniero nota una gran cantidad de trfico en una
LAN en bus grande. Qu puede hacer para mejorar la
mentado el modelo?
62. Separe la parte local y el nombre de dominio en las si-
guientes direcciones de correo electrnico:
a. madeleine@belle.gov
b. lindsey@jasmine.com
ec
situacin? c. wuteh@hunan.int
57. Cul es la ventaja de tener dos protocolos de transpor- d. honoris@queen.org
te en TCPIIP? 63. Explique la diferencia entre una direccin de correo
58. Cules son las ventajas y desventajas de tener una capa electrnico y una direccin IP. Existe una relacin uno
de aplicacin en el conjunto de protocolos TCP/IP en a uno entre las dos direcciones?
vez de tres capas (sesin, presentacin y aplicacin) co- 64. Explique la diferencia entre FTP y TELNET. Cundo
mo en el modelo OSI? se utiliza FTP y cundo TELNET?
59. Cambie las siguientes direcciones IP de notacin de 65. Un usuario utiliza un explorador para descargar un jue-
punto decimal a notacin binaria: go. Qu tipo de documento descarga?
,
1.1 DEFINieRON
Un sistema operativo es tan complejo que es dificil dar una simple definicin universal. En
vez de ello, he aqu algunas definiciones comunes:
Sistemas 11.
11
Un sistema operativo es una interfaz entre el hardware de una computadora y el usuario
(programas o personas).
Un sistema operativo es un programa (o una serie de programas) que facilita la ejecu-
operativos 11
cin de otros programas.
Un sistema operativo acta como un gerente general que supervisa la actividad de cada
componente en el sistema de computacin. Como gerente general, el sistema operativo
revisa que los recursos de hardware y software se utilicen de manera eficiente y cuan-
do existe un conflicto al usar un recurso, el sistema operativo acta como mediador para
resolverlo.
1.2 EVOLUCiN
Sistema de
computacin
Los sistemas operativos han pasado por una larga historia de evolucin, la cual resumimos a
continuacin.
Hardware Los sistemas operativos por lotes se disearon en la dcada de 1950 para controlar a las
SISTEMAS
POR LOTES computadoras mainframe. En ese entonces, una computadora era una mquina grande que
utilizaba tarjetas perforadas para entrada de datos, impresoras de lnea para salida y unidades
de cinta para medios de almacenamiento secundarios.
Sistema Programas
operativo de aplicacin
Cada programa a ejecutarse se llamaba tarea. Un programador que deseaba ejecutar una
tarea enviaba una solicitud a la sala de operaciones junto con tarjetas perforadas para el pro-
grama y los datos. El programador no tenia ningn controlo interaccin con el sistema. Un
Figura 7.1 Sistema de computacin operador procesaba las tarjetas perforadas. Si el programa era satisfactorio, el resultado se en-
viaba al programador; de lo contrario, se enviaba un listado del error.
Los sistemas operativos de esta poca eran muy simples; slo se aseguraban de que todos
los recursos se transfirieran de una tarea a la siguiente.
SISTEMAS Para utilizar los recursos del sistema de computacin eficientemente, se introdujo la multi-
DE TIEMPO programacin. La idea es mantener varias tareas en memoria y slo asignar un recurso a una
COMPARTIDO tarea que 10 necesite con la condicin de que el recurso est disponible. Por ejemplo, cuando
111 Organizacin de la computadora 7.3 Componentes ..
un programa est usando un dispositivo de entrada/salida, el CPU est libre y puede ser uti.
lizado por otro programa. La multiprogramacin se estudia posteriormente en este captulo. Sistema operativo
La multiprogramacin trajo la idea del tiempo compartido: los recursos pueden compar.
tirse entre diferentes tareas. A cada tarea puede asignrsele una parte del tiempo para usar el Interfaz
recurso. Como una computadora es mucho ms rpida que una persona, el tiempo comparti- de usuario
do es transparente para el usuario. Cada usuario tiene la impresin de que todo el sistema es-
t trabajando para l o para ella.
La multiprogramacin y finalmente el tiempo compartido mejoraron en gran medida la
eficiencia de un sistema de computacin. No obstante, sta requera un sistema operativo
ms complejo. El sistema operativo ahora tena que hacer una planificacin: asignacin de
los recursos a los distintos programas y decidir cul programa debera utilizar cul recurso Figura 7.2 Componentes de un sistema operativo
y cundo.
Durante esta poca, la relacin entre una computadora y un usuario tambin cambi. El
usuario poda interactuar directamente con el sistema sin pasar por un operador. Un nuevo tr- Una de las responsabilidades de un sistema de computacin moderno es la administracin de
mino tambin se acu: proceso. Una tarea es un programa a ejecutar; un proceso es un pro- la memoria. Aun cuando en aos recientes el tamao de la memoria de las computadoras ha
MEMORIA aumentado enormemente, tambin lo ha hecho el tamao de los programas y los datos a ser
grama que est en la memoria en espera de recursos.
procesados. La asignacin de memoria debe ser administrada para evitar el sndrome de "que-
Cuando las computadoras personales se introdujeron, haba una necesidad de un sistema ope- darse sin memoria". Los sistemas operativos pueden dividirse en dos amplias categoras de
SISTEMAS
rativo de este tipo de computadora. Durante esta poca, se introdujeron los sistemas operati- administracin de memoria: la monoprogramacin y la multiprogramacin.
PERSONALES
vos monousuario tales como DOS (disk operating system: sistema operativo de disco).
La monoprogramacin pertenece al pasado, pero vale la pena mencionarla puesto que le
SISTEMAS La necesidad de una mayor velocidad y eficiencia condujo al diseo de los sistemas parale~ Monoprogramacin ayudar a comprender la multiprogramacin. En la monoprogramacin, la mayor parte de la
PARALELOS los: varios CPU en la misma mquina. Cada CPU poda utilizarse para servir a un programa capacidad de la memoria se dedica a un solo programa; nicamente se necesita una pequea
o a una parte de un programa, 10 cual significa que muchas tareas pueden lograrse en parale- parte para alojar el sistema operativo. En esta configuracin, todo el programa est en la me-
lo en vez de en fonna seria1. El sistema operativo para estos sistemas es ms complejo que moria para su ejecucin. Cuando el programa termina de ejecutarse, se reemplaza con otro
aquellos con un solo CPU.
programa (figura 7.3).
SISTEMAS La conectividad en red y la interconectividad en red, como se vio en el captulo 6, han creado
DISTRIBUIDOS una nueva dimensin en sistemas operativos. Una tarea realizada previamente por completo
en una computadora ahora poda compartirse entre computadoras que podan estar a miles de
millas de distancia. Un programa puede ejecutarse parcialmente en una computadora y parcial-
mente en otra si stas estn conectadas mediante un conjunto de redes interconectadas como Sistema
operativo
Internet. Adems, los recursos pueden distribuirse. Un programa puede necesitar archivos lo-
calizados en distintas partes del mundo. Los sistemas distribuidos combinan caractersticas
de la generacin anterior con nuevos servicios tales como el control de la seguridad.
Programa
y
datos
7.3 COMPONENTES
En la actualidad, los sistemas operativos son muy complejos. Un sistema operativo necesita
Memoria
administrar diferentes recursos en un sistema de computadoras. Se parece a una organizacin
con varios gerentes de alto nive1. Cada gerente es responsable de administrar su departamen-
Figura 7.3 Monoprogramacin
to, pero tambin necesita cooperar con otros y coordinar las actividades. Un sistema operati-
vo moderno tiene al menos cuatro funciones: administrador de memoria, administrador de
procesos, administrador de dispositivos y administrador de archivos. Al igual que muchas or-
ganizaciones que tienen un departamento, el cual no necesariamente est bajo las rdenes de El administrador de memoria entra en accin justo aqu, ya que carga el programa en la me-
algn administrador, un sistema operativo tambin tiene un componente semejante, el cual moria, lo ejecuta y 10 remplaza con el programa siguiente. Sin embargo, hay varios proble-
por lo general se conoce como interfaz de usuario o consola de comandos (shell). La interfaz mas con esta tcnica:
de usuario es responsable de la comunicacin del sistema operativo con el exterior (como un
departamento de relaciones pblicas). La figura 7.2 muestra los componentes de un sistema llIII El programa debe caber en la memoria. Si el tamao de la memoria es menor que el ta-
operativo. mao del programa, ste no puede ejecutarse.
la Sistemas operativos
7.3 Componentes ..
I!II Cuand~ un ~:ograma est en ejecucin, ningn otro programa puede ejecutarse. Particionamiento La primera tcnica usada en la multiprogramacin se llama particiona-
te su ~JecuclOn, u~ pro?~ama a menudo necesita recibir datos de dispositivos de miento. Bajo este esquema, la memoria se divide en secciones de longitud variable. Cada sec-
y enVIar datos a dISpOSItIVOS de salida. Los dispositivos de entrada/salida en realidad cin o particin aloja un programa. El CPU alterna entre los programas. Comienza con un
lentos c~mparados con el CPU. As que cuando se llevan a cabo las operaciones de programa. Ejecuta algunas instrucciones hasta que se encuentra una operacin de entrada/sa-
trada/salida el C~PU est in~ctivo. No puede atender a otro programa porque este lida o el tiempo asignado a ese programa expira. El CPU guarda la direccin de la localidad
programa no esta en memona. Se hace un uso poco eficiente de la memoria y del de memoria donde se ejecut la ltima instruccin y se traslada al siguiente programa. El mis-
mo procedimiento se repite con el segundo programa. Despus de que se han atendido todos
Multiprogramacin En la ~ultiprogramacin, en la memoria hay ms de un programa al mismo tiempo, los
los programas, el CPU regresa al primer programa. Desde luego, puede haber niveles de prio-
ridad en el acceso al CPU (figura 7.6).
les se eJe~utan concurrentemente. El CPU alterna entre los programas. La figura 7.4
la memona en un entorno de multiprogramacin.
I~I
Sistema . . Sistema Sistema
operativo operativo
operativo
CPU
Programa 1 I~I Programa 1
Programa 1
Programa 2 CPU Programa 2
Programa 2
.. Programa 3 Programa 3
.
Programa 3
.... ....... Memoria Memoria
Programa 4 a. El CPU inicia la ejecucin del programa 1. b. El CPU inicia la ejecucin del programa 2.
Con esta tcnica, cada programa est completamente en la memoria y ocupa localidades
contiguas. El particionamiento mejora la eficiencia del CPU, pero an hay otros problemas:
Desde la dca~a de 1960, la multiprogramacin ha sufrido varias mejoras que pueden ver-
se en la taxonorrua de la figura 7.5. En las secciones siguientes analizamos cada esquema de
11. El tamao de las particiones debe ser determinado de antemano por el administrador de
una manera muy breve. Dos tcnicas pertenecen a la categora de no intercambio; esto signi-
memoria. Si los tamaos de particin son pequeos, algunos programas no pueden car-
f~ca que el programa permanece en la memoria durante toda la ejecucin. Las otras dos tc-
garse en la memoria. Si los tamaos de particin son grandes, podra haber algunos es-
mcas pertenecen. a la cate~ora de intercambio. Esto significa que, durante la ejecucin, el
pacios vacos (localidades sin utilizar) en la memoria.
programa puede mtercambwrse entre la memoria y el disco una o ms veces.
111 Aun si el particionamiento es perfecto cuando la computadora se inicia, debe haber al-
gunos espacios vacos despus de que los programas se remplazan con otro nuevos.
11 Cuando hay muchos espacios vacos, el administrador de memoria puede compactar las
Multiprogramacin particiones para eliminar los espacios vacos y crear particiones nuevas, pero esto crea
una sobrecarga adicional en el sistema.
Programa B
1-
L
,.-
.. operativo
Bloque 1
Blo ue 2-
bas, se utiliza en casi todos los sistemas operativos actuales.
PlIina 1 Bloque 3
Pgina 2 Bloque 4
Paina 3 Bloque 5
Programa e Bloaue 6
BlOQue 7
I Poina 1 t-
I P,ina 2 .. Memoria ftiiJtij Sistema
operativo
Segmentacin bajo demanda Una tcnica similar a la paginacin es la segmentacin. Programa Un programa es una serie de instrucciones no activas escritas por un programa-
En la paginacin, un programa se divide en pginas de igual tamao, lo cual no es la manera dor y almacenadas en disco (o cinta). Esto puede o no convertirse en una tarea.
como piensa un programador, ya que ste piensa en trminos de mdulos, no de pginas de
igual tamao. Como ver en captulos posteriores, un programa por 10 general se compone Tarea Un programa se vuelve una tarea a partir del momento en que ste se selecciona pa-
de un programa principal y de subprogramas. En la segmentacin bajo demanda el progra- ra su ejecucin hasta que finaliza la misma y se convierte de nuevo en un programa. Duran-
ma se divide en segmentos que coinciden con la idea del programador. stos se cargan en te este periodo, una tarea puede o no ejecutarse. Puede residir en el disco esperando a ser
la memoria, se ejecutan, se remplazan por otros mdulos del mismo programa o de un pro- cargada en la memoria o puede residir en la memoria esperando que el CPU la ejecute. Tam-
grama distinto. bin puede residir en el disco o en la memoria en espera de un evento de entrada/salida o pue-
de residir en la memoria cuando el CPU la est ejecutando. El programa se comporta como
Paginacin y segmentacin bajo demanda La paginacin y segmentacin bajo de una tarea en todas estas situaciones. Cuando un trabajo ha terminado de ejecutarse (ya sea
manda incluso pueden combinarse para mejorar an ms la eficiencia del sistema. Un seg- normalmente o de manera anonnal), se vuelve un programa y de nuevo reside en el disco. El
mento puede ser demasiado grande para caber en cualquier espacio libre disponible en la sistema operativo ya no gobierna el programa. Observe que cada tarea es un programa, pero
memoria. La memoria puede dividirse en bloques y un mdulo puede dividirse en pginas. no todos los programas son tareas.
Las pginas de un mdulo pueden cargarse despus en la memoria y ejecutarse una a una.
Proceso Un proceso es un programa en ejecucin. Es un programa que ha iniciado pero
no se ha tenninado. En otras palabras, un proceso es una tarea que reside en la memoria. Se
Memoria virtual La paginacin bajo demanda y la segmentacin bajo demanda implican que parte del progra- ha seleccionado entre otras tareas en espera y se ha cargado en la memoria. Un proceso pue-
ma est en la memoria principal y parte en el disco mientras el programa est en ejecucin. de ejecutarse en el momento o puede estar esperando tiempo del CPU. Mientras que la tarea
Esto significa que, por ejemplo, una memoria que mida 10 MB puede ejecutar 10 programas, est en la memoria, es un proceso. Observe que cada proceso es una tarea, pero no todas las
cada uno de 3 MB, para un total de 30 ME. En cualquier momento, los 10 ME de los 10 pro- tareas son procesos.
.. Sistemas operativos 7.3 Componentes 111
Diagrama La relacin entre un programa, una tarea y un proceso se esclarece si se considera cmo un Para cambiar una tarea o proceso de un estado a otro, el administrador de procesos utiliza
de estado programa se vuelve una tarea y cmo una tarea se vuelve un proceso. Esto puede ilustrarse dos planificadores: el planificador de tareas y el planificador de procesos.
con un diagrama de estado que muestra los diferentes estados de cada una de estas entida~
des. La figura 7.9 es un diagrama de estado que utiliza lineas divididas para los lmites entre
Planificador de tareas El planificador de tareas cambia una tarea del estado de espera al
un programa, una tarea y un proceso.
estado de listo, o del estado de ejecucin al estado de terminacin. En otras palabras, un pla-
nificador de tareas es responsable de crear un proceso a partir de una tarea y de terminar un
proceso. La figura 7.10 muestra el planificador de tareas con respecto al diagrama de estado.
Programa
----------------------------------------------------~
En espera
I 6"nnina~
Se vuelve unlpm'grama I
Planifica :
Planificador
de tareas
: Planifica
1
.,- --~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ --------- ----------------~ --,.
_'______
: __________________________________________
~
Procesos :
J
Entra a la memoria Sale
: !,_r.?~~~?
" Obtener acceso al
Figura 7.10 Planificador de tareas
Listo
de espacio
E/S resuelta solicitada
ti ocurri Planificador de procesos El planificador de procesos cambia un proceso de un estado a
una interrupcin otro. Cambia un proceso del estado de ejecucin al estado de espera cuando el proceso est es-
"
, .. -------------------------------- -------------. perando que ocurra un evento. Cambia un proceso del estado de ejecucin al estado de listo si
ha expirado el tiempo asignado. Cambia el proceso del estado de espera al estado de listo cuan-
do el evento ha ocurrido. Cuando el CPU est listo para ejecutar el proceso, el planificador de
procesos cambia el proceso del estado de listo al estado de ejecucin. La figura 7.11 muestra
Figura 7.9 Diagrama de estado con los lmites entre un programa, una
el planificador de procesos con respecto a un diagrama de estado.
Y un proceso
Un programa se vuelve una tarea cuando es seleccionado por el sistema operativo y lleva- Planificador
do al estado de espera. Permanece en este estado hasta que puede cargarse en la memoria. de procesos
Cuando hay espacio disponible en la memoria para cargar el programa total o parcialmente, d'
d'
la tarea cambia al estado de listo. Ahora se convierte en un proceso. Permanece en la memo- s:
". S:
".
ria y en este estado hasta que el CPU puede ejecutarlo; cambia al estado de ejecucin en es- ~: '": ".
te momento. Cuando est en el estado en ejecucin, ocurre una de las tres cosas siguientes: Listo }---'--~-"';"'--..( En eJecuci6n
t
11 El proceso se ejecuta hasta que necesita E/S. "
En el primer caso el proceso va al estado de espera y espera hasta que la E/S se haya CoIll- Figura 7.11 Planificador de procesos
pletado. En el segundo caso, va directamente al estado listo. En el tercer caso, va al estado
de tenninacin y ya no es ms un proceso. Un proceso puede moverse entre los estados de
ejecucin, espera y listo varias veces antes de que entre en el estado de terminacin. Obser-
ve que el diagrama puede ser mucho ms complejo si el sistema utiliza memoria virtual y a1~ Otros planificadores Algunos sistemas operativos utilizan otros tipos de planificadores
terna los programas dentro y fuera de la memoria principa1. para alternar entre procesos de una manera ms eficiente.
.. Sistemas operativos 7.3 Componentes ..
Colas de espera Nuestro diagrama de estado muestra una tarea o proceso que cambia de un estado a otro. En
realidad, hay muchas tareas y muchos procesos que compiten unos con otros por los recursos
Se asigna a Ha solicitado
de la computadora. Por ejemplo, cuando algunas tareas estn en la memoria, otras deben es-
perar hasta que haya espacio disponible. O cuando un proceso est en ejecucin usando el
CPU, otros deben esperar hasta que el CPU est libre. Para manejar varios procesos y tareas,
el administrador de procesos utiliza colas de espera (listas de espera). Asociada con cada ta-
rea o proceso hay un bloque de control de tareas o bloque de control de procesos que guar-
da informacin sobre esa tarea o proceso. El administrador de procesos almacena el bloque Archivo 1 Archivo 2
de control de tareas o de procesos en las colas de espera, en vez de la tarea o el proceso mis-
mo. La tarea o el proceso permanece en la memoria o en el disco, es demasiado grande para
ser duplicado en una cola de espera. El bloque de control de tareas o el bloque de control de
procesos es el representante de la tarea o el proceso en espera.
Un sistema operativo puede tener varias colas de espera. Por ejemplo, la figura 7.12 mues-
tra la circulacin de las tareas y los procesos a travs de tres colas de espera: la cola de tareas,
la cola de listo y la cola de E/S. La cola de tareas aloja las tareas que estn esperando memo-
'-------c.l. ~ .I
Ha solicitado " ":,::'
,"
...o(---------'
Se asigna a
Tarea
,-----------------------------------------------------------------
Proceso
:- --- --------- -----------------------CP --- Figura 7.14 Punto muerto en un puente
Cola de tareas : Cola de listo ...... o
Inicio: Realizado
) DDDDI ,Al~,:;DDDD lA']"",",;' ~~ ) Como analoga, la figura 7.14 muestra un punto muerto en un puente estrecho. La situa-
cin es similar debido a que el recurso (parte del puente) est ocupado por un vehculo que
~
~ I EspaclO de tiempo agotado I~ .~
no lo libera hasta que llega a la otra parte del puente, la cual est ocupada por el otro vehcu-
lo, y viceversa.
El punto muerto ocurre si el sistema operativo permite que empiece la ejecucin de un pro-
ia--1DDDD ~ ceso sin revisar primero si los recursos requeridos estn listos y pennite al proceso ocupar ese
Cola de E/S recurso todo el tiempo que lo desee. Debe haber alguna condicin en el sistema para impedir
los puntos muertos. Una solucin es no permitir que un proceso inicie su ejecucin hasta
que los recursos se liberen, pero posteriormente ver que esta solucin genera otro problema.
La segunda solucin es limitar el tiempo que un proceso puede ocupar un recurso.
Figura 7.12 Colas para el administrador de procesos
El administrador de procesos puede tener diferentes polticas para seleccionar la siguiente ta-
rea o proceso de una cola de espera; podra ser primero en llegar, primero en salir (FIFO:first Los puntos muertos ocurren cuando el sistema operativo no pone restricciones de
in, first out), primero el ms corto, aquel con mayor prioridad y as por el estilo. recursos a los procesos.
Proceso de La idea global que sustenta al administrador de procesos es sincronizar distintos procesos con
diferentes recursos. Los recursos pueden utilizarse en cualquier momento por cualquier usua-
sincronizacin El punto muerto no siempre ocurre. Hay cuatro condiciones necesarias para un punto muer-
rio (procesos en este caso); se pueden presentar dos situaciones: punto muerto y privacin. A
to: exclusin mutua (slo un proceso puede ocupar un recurso), ocupacin de un recurso (un
continuacin se presenta una breve explicacin de ambas situaciones.
proceso ocupa un recurso aun cuando ste no pueda utilizarse hasta que otros recursos estn
Punto muerto En lugar de una defInicin formal de punto muerto, daremos un ejemplo. disponibles), sin derechos preferentes (el sistema operativo no puede reasignar un recurso
Suponga que hay dos procesos llamados A y B. El proceso A aguarda uu archivo llamado Ar- temporalmente) y espera circular (todos los procesos y recursos involucrados forman un ci-
chivo 1 (el Archivo 1 se asign a A) y no puede liberarse hasta que tenga otro archivo llama- clo, como en la figura 7.13). Se requiere que ocurran las cuatro condiciones para que haya un
do Archivo 2 (A solicit el Archivo 2). El proceso B aguarda al Archivo 2 (el Archivo 2 se punto muerto. Sin embargo, estas condiciones slo son condiciones necesarias (no suficien-
asign a B) y no puede liberarlo hasta que tenga el Archivo 1 (B ha solicitado el Archivo 1). tes), lo cual significa que deben estar presentes para que ocurra un punto muerto, pero podra
Los archivos en la mayora de los sistemas no son compartidos; cuando un proceso utiliza un no ser suficiente. En otras palabras, si falta una de estas condiciones, el punto muerto nunca
archivo, este ltimo no puede ser usado por otro proceso. Si no existe una condicin en esta ocurre. Esto le proporciona un mtodo para impedir o evitar el punto muerto: No permita que
situacin para forzar a un proceso a liberar un archivo, se crea un punto muerto (figura 7.13), alguna de estas condiciones ocurra.
.. Sistemas operativos 7.3 Componentes ..
Privacin La privacin es 10 opuesto al punto muerto. Puede ocurrir cuando el sistema ope~
rativo pone demasiadas restricciones a los recursos en lill proceso. Por ejemplo, imagine un
sistema operativo que especifica la posesin de todos los recursos requeridos antes de que un
proceso pueda ejecutarse. En la figura 7.15 imagine que el proceso A necesita dos archivos
CII
'@I ~
el Archivo 1 y el Archivo 2. El Archivo 1 est en uso por el proceso B y el Archivo 2, por ei
~@~
proceso E. El proceso B termina primero y libera al Archivo l. El proceso A no puede iniciar~
se porque el Archivo 2 an no est disponible. En este momento se pennite la ejecucin del
proceso e, el cual necesita slo al Archivo 1. Ahora el proceso E termina y libera al Archivo
2, pero el proceso A todava no puede ejecutarse porque el Archivo 1 no est disponible. .. . . . . . @.
fIII""'"
Arroz
......~.; ......
@@
Un problema de privacin clsico es aquel presentado por Dijkstra. Cinco filsofos estn
sentados a una mesa redonda (figura 7.16). Cada filsofo necesita dos palillos para comer un
tazn de arroz. Sin embargo, uno o ambos palillos podran ser usados por su vecino. Un fil-
sofo podra "pasar hambre" si no tiene dos palillos disponibles al mismo tiempo.
a. El proceso A necesita tanto al Archivo 1 como al Archivo 2.
liII Archivo I
sitivo de entrada/salida, no est disponible para otros procesos durante un periodo. El admi-
nistrador de dispositivos es responsable del uso eficiente de los dispositivos de entrada/salida.
"'-~
Un anlisis detallado del administrador de dispositivos requiere un conocimiento avanza-
do de los principios del sistema operativo y est ms all del mbito de este libro. Sin embar-
go, podemos describir brevemente las responsabilidades del administrador de dispositivos:
H, ;olioit,do
.-----1()I-----,
1 ;~)1 1 Ho ;oli"todo
111
te en la lista.
El administrador matiene constantemente una fila para cada dispositivo de entrada/sali-
da o una o varias filas para dispositivos similares. Por ejemplo, si hay dos impresoras r-
-=1 A"h',ol
111
pidas en el sistema, el administrador puede generar una fila para cada una, o una sola
para ambas.
El administrador controla las polticas de acceso a los dispositivos de entrada/salida. Por
A"gn,do" ejemplo, puede utilizar FIFO para un dispositivo y primero el ms corto para otro.
G
c. El proceso A todava necesita tanto al Archivo 1 como al Archivo 2 (privacin).
ADMINISTRADOR
DE ARCHIVOS
Hoy los sistemas operativos utilizan el administrador de archivos para controlar el acceso a
stos. Un anlisis detallado del administrador de archivos requiere un conocimiento profundo
de los principios de sistemas operativos, lo cual queda ms all de los propsitos de este libro.
En el captulo 13 se estudian algunos problemas relacionados con el acceso a archivos, pero
esto no es adecuado para comprender la operacin real de un administrador de archivos. A
Figura 7.15 Privacin continuacin se listan las principales responsabilidades de un administrador de archivos:
.. Sistemas operativos 7.6 Resumen 111
11 El administrador de archivos controla el acceso a los archivos. El acceso est pemtitillo Linux, desarrollado por Linus Torvalds en Finlandia, est basado en UNIX. D~ hecho, es tan
slo a aquellos que cuentan con permiso, y el tipo de acceso puede variar. Por parecido a UNIX que algunas personas lo consideran un clan de UNIX. La Idea. era lograr
un proceso (o un usuario que llama a un proceso) puede tener permiso para leer un que UNIX fuera ms eficiente cuando se ejecutara en un microprocesador Intel. LllluX ahora
chivo pero no para escribir (hacer cambios) en l. A otro proceso se le puede POll111Jtlf est disponible para todas las plataformas y se est volviendo ms y ms popular entre los
ejecutar un archivo pero no se le permite ver el contenido. programadores y los usuarios comerciales.
I!I El administrador de archivos supervisa el almacenamiento de los archivos: Cmo se al. TRMINOS CLAVE
macenan, dnde se almacenan y as por el estilo.
lministrwoor de archivos monoprograrnacin punto puerto
111 El administrador de archivos es responsable de archivar y hacer los respaldos. lministra,dor de dispositivos multiprogramacin segmentacin bajo demanda
,dnrinistrad,or de memoria pgina sincronizacin de procesos
INTERFAZ Cada sistema operativo tiene una interfaz de usuario, la cual es un programa que acepta so~ dmini,;tra.dor de procesos paginacin sistema distribuido
DE USUARIO licitudes de los usuarios (procesos) y las interpreta para el resto del sistema operativo. Una de datos (frame) paginacin bajo demanda sistema operativo
interfaz de usuario en algunos sistemas operativos, tales como UNIX, se conoce COmo intr. paginacin y segmentacin bajo sistema operativo monousuario
prete de comandos (Shell). En algunos otros sistemas se le llama ventana para denotar que demanda sistema paralelo
est manejada por mens y tiene un componente GUI (graphical User interface: interfaz gr- particionamiento sistema operativo por lotes
fica de usuario). planificacin software
planificador de procesos tarea
de terminacin planificador de tareas tiempo compartido
UNIX
7.4 SISTEMAS OPERATIVOS MS COMUNES de usuario privacin
proceso
~CID<,m()ria virtual programa
En esta seccin presentamos algunos sistemas operativos comunes como una motivacin
para un estudio posterior. Elegimos tres sistemas operativos que son familiares para la mayo-
ra de los usuarios de computadoras.
WINDOWS 2000 Windows 2000 (de Microsoft) es un buen ejemplo de un sistema operativo que ha avanzado
un gran tramo en su evolucin. Comenz como una interfaz para ejecutarla con el DOS (sis-
RESUMEN
tema operativo de disco). Ahora es una sistema operativo complejo manejado por mens que
incluye una GUI robusta, la cual utiliza memoria virtual que permite la multiprogramacin. Un sistema operativo facilita la ejecucin de otro soft- 11 En la paginacin, la memoria se divide en secciones de
Tiene una capacidad de conectividad en red integral que lo vuelve un sistema operativo pa- ware, acta como el administrador general de un sistema igual tamao llamadas bloques y el programa se divide
ra redes. Windows 2000 tambin incluye una caracterstica de seguridad que lo vuelven con~ de computacin y garantiza el uso eficiente de los recur- en secciones de igual tamao llamadas pginas. Las p-
veniente para situaciones donde la seguridad es un problema. sos de hardware y software. ginas de un programa no necesitan ser contiguas, pero
todas ellas deben estar presentes en la memoria para la
La evolucin de los sistemas operativos ha incluido sis-
UNIX ejecucin del programa.
UNIX es un sistema operativo conocido entre los programadores de computadoras y cient~ temas operativs--por lotes, sistemas de tiempo compar-
ficos de la computacin. Es un sistema operativo muy poderoso con tres caractersticas so- tido, sistemas monousuario y sistemas distribuidos. 11 La paginacin bajo demanda es similar a la paginacin
bresalientes. Primero, UNIX es un sistema operativo porttil que puede trasladarse de una con la excepcin de que no es necesario que todas las
El sistema operativo supervisa al administrador de me-
plataforma a otra sin muchos cambios. La razn es que est escrito en su mayora en lengua- pginas estn en la memoria.
moria, el administrador de procesos, el administrador de
je C (en lugar de un lenguaje de mquina para un sistema especfico). Segundo, UNIX tiene
dispositivos, el administrador de archivos y la interfaz de 11 La segmentacin bajo demanda es similar a la pagina-
una serie de utileras (comandos) poderosas que pueden combinarse (en un archivo ejecuta-
usuario. cin con la excepcin de que en lugar de secciones de
ble llamado script) para resolver muchos de los problemas que en otros sistemas operativos
requieren programacin. Tercero, es independiente de los dispositivos debido a que incluye En la monoprogramacin, la mayor parte de la capaci- igual tamao, el programa se divide para corresponder
los controladores de los dispositivos en el sistema operativo mismo, 10 cual significa que pue- dad de la memoria est dedicada a un solo programa. con las divisiones del programa.
de configurarse fcilmente para ejecutar cualquier dispositivo. En resumen, UNIX cuenta con
En la multiprogramacin, hay ms de un programa en 111 La paginacin bajo demanda y la segmentacin bajo de-
todas las caractersticas que tiene un sistema operativo poderoso, incluyendo la multiprogra-
memoria al mismo tiempo. manda pueden combinarse para mejorar la eficiencia de
macin, la memoria virtual y sistemas de directorios y archivos muy bien diseados. La ni-
un sistema de computacin.
ca crtica que se hace a UNIX con frecuencia es que los comandos son cortos y complicados En el particionamiento, la memoria se divide en seccio-
para los usuarios normales; de hecho es muy conveniente para los programadores que nece- nes de longitud variable, cada una de las cuales aloja un 111 La suma de los tamaos de todos los programas en la
sitan comandos cortos. programa. memoria es la memoria virtual.
.. Sistemas operativos 7.7 Prcticas ..
liII Un programa es una serie de instrucciones no activas es- 111 El punto muerto es una situacin en la cual un Un sistema operativo se necesita para tareas 33. En el (la) el programa puede dividirse en sec-
eritas por un programador y almacenadas en un disco o es incapaz de ejecutarse debido al uso irrestricto de ;;;,:onlp,rrtidas entre computadoras conectadas a distancia. ciones de diferente tamao.
cinta. por lotes 3. particionamiento
cursos por otros procesos.
de tiempo compartido b. paginacin
l1li Una tarea es un programa seleccionado para su ejecucin. l1li La privacin es una situacin en la cual un proceso es c. paginacin bajo demanda
paralelo
liII Un proceso es una tarea que reside en la memoria. capaz de ejecutarse debido a que hay demasiadas restric_ distribuido d. segmentacin bajo demanda
ciones en los recursos.
liII Un diagrama de estado muestra la relacin entre un pro- La multiprogramacin requiere un sistema operativo 34. En el (la) el programa puede dividirse en sec-
grama, una tarea y un proceso. Una tarea puede estar en 111 El administrador de dispositivos controla el acceso ciones de igual tamao llamadas pginas, pero no es ne-
los modos de espera, terminacin, listo, ejecucin o es- dispositivos de E/S. por lotes cesario que las pginas estn en la memoria al mismo
pera. Un proceso puede estar en uno de los tres ltimos l1li El administrador de archivos controla el acceso a los de tiempo compartido tiempo para la ejecucin del programa.
estados. chivos. paralelo 3. particionamiento
distribuido b. paginacin
l1li El planificador de tareas crea un proceso a partir de una 111 La interfaz de usuario es software que acepta
tarea y cambia un proceso de regreso a una tarea. DOS se considera un sistema operativo _ _ __ c. paginacin bajo demanda
de los procesos y los interpreta para el resto del sistema
a. por lotes d. segmentacin bajo demanda
l1li El administrador de procesos cambia un proceso de un operativo.
b. de tiempo compartido
estado a otro. 35. Un proceso en el estado de ____ puede entrar ya
111 Windows 2000, UNIX Y Linux son tres sistemas opera- paralelo
sea en el estado de listo, tenrllnacin o espera.
11 Las tareas y los procesos esperan en colas de espera. tivos muy comunes. personal
a. espera
Un sistema con ms de un CPU requiere un sistema ope-
b. virtual
rativo _ _ __
c. ejecucin
, por lotes
d. incisos a y c
7.7 PRACTICAS de tiempo compartido
paralelo 36. Un proceso en el estado de listo entra en el estado de eje-
distribuido cucin cuando _ _ __
PREGUNTAS DE REPASO 17. Por qu un sistema operativo necesita colas de espera?
____ es multiprogramacin con intercambio. a. entra a la memoria
le Cul es la diferencia entre un programa de aplicacin y 18. Cul es la diferencia entre un punto muerto y la priva-
el particionamiento b. solicita EIS
un sistema operativo? cin?
c. obtiene acceso al CPU
19. Cules son las funciones de un administrador de dispo- la paginacin
2. Cmo ha cambiado la conectividad en red y la interco- d. termina su ejecucin
la paginacin bajo demanda
nectividad entre redes a los sistemas operativos? sitivos?
la asignacin a colas de espera 37. Un programa se convierte en un(a) cuando el
3. Cul es la diferencia entre monoprogramacin y multi- 20. Cules son las funciones de un administrador de archi-
____ es multiprogramacin sin intercambio. sistema operativo lo selecciona y lo lleva al estado de es-
programacin? vos?
el particionamiento pera.
4. Cules son los componentes de un sistema operativo? la memoria virtual a. tarea
PREGUNTAS DE OPCiN MLTIPLE la paginacin bajo demanda b. proceso
5. En qu difiere la paginacin del particionamiento?
21. es un programa que facilita la ejecucin de la asignacin a colas de espera c. punto muerto
6. Cul es la diferencia entre una pgina y un bloque?
otros programas. En la (el) slo un programa puede residir en d. particin
7. Por qu la paginacin bajo demanda es ms eficiente
a. un sistema operativo la memoria para su ejecucin. 38. Todos los procesos son
que la paginacin nonnal?
b. el hardware a. monoprogramacin a. tareas
8. Qu es la segmentacin bajo demanda?
c. una cola de espera b. multiprogramacin b. programas
9. Cmo se relaciona la memoria virtual con la memoria d. un programa de aplicacin c. particionamiento c. particiones
fsica? d. paginacin
22. supervisa la actividad de cada componente en d. incisos a y b
10. Cmo se relaciona un programa con una tarea? Cmo ____ es un mtodo de multiprogramacin en el cual
un sistema de cmputo. 39. El planificador crea un proceso a partir de una
se relaciona una tarea con un proceso? Cmo se rela- varios programas estn completamente en la memoria,
ciona un programa con un proceso? a. un sistema operativo tarea y cambia un proceso de regreso a tarea.
cada uno de los cuales ocupa un espacio contiguo.
b. el hardware 3. de tareas
11. Dnde reside un programa? Dnde reside una tarea? a. el particionamiento
c. una cola de espera b. de procesos
Dnde reside un proceso? b. la paginacin
d. un programa de aplicacin c. virtual
12. Cul es el propsito de un diagrama de estado? c. la paginacin bajo demanda
d. de colas de espera
23. El primer sistema operativo, llamado sistema operativo d. la segmentacin bajo demanda
13. En qu tipos de estado se puede encontrar un proceso?
____ , slo tena que garantizar que los recursos se En la paginacin un programa se divide en secciones de 40. El planificador ____ cambia un proceso de un esta-
14. En qu tipos de estado se puede encontrar una tarea? do a otro.
transfirieran de una tarea a la siguiente. igual tamao llamadas ____
15. Si un proceso est en el estado de ejecucin, a qu es- a. pginas 3. de tareas
a. por lotes
tados puede cambiar despus? b. bloques b. de procesos
b. de tiempo compartido
16. Cul es la diferencia entre un planificador de tareas y c. personal c. segmentos c. virtual
un planificador de procesos? d. paralelo d. particiones d. de colas de espera
.. Sistemas operativos
41. Para evitar la (un) _ _ _ _ un sistema operativo puede tercero necesita 10.5 ME Y ocupa la segunda
poner restricciones a los recursos en los procesos. Finahnente, el cuarto programa necesita 20 ME Y
a. privacin la cuarta particin. Cul es el total de memoria
b. sincronizacin da? Cul es el total de memoria desperdiciada?
c. paginacin porcentaje de memoria se desperdicia?
d. punto muerto
50. Repita el ejercicio 49 si todos los programas
42. _ _ _ _ puede ocurrir si un proceso tiene demasiadas !O MB de memoria.
restricciones en los recursos.
51. Un sistema operativo multiprogramacin utiliza la
a. la privacin
IgoritlTlos
nacin. La memoria disponible es 60 ME divididos
b. la sincronizacin
15 pginas. cada una de 4 ME. El primer programa
c. la paginacin
cesita 13.ME. El segundo programa necesita 12 ME.
d. un punto muerto
tercer programa necesita 27 ME.
43. El adnllnistrador de _ _ _ _ es responsable del archi- a. Cuntas pginas utiliza el primer programa?
vo y el respaldo. b. Cuntas pginas utiliza el segundo programa?
a. memoria c. Cuntas pginas utiliza el tercer programa?
b. procesos d. Cuntas pginas quedan sin utilizarse?
c. dispositivos e. Qu cantidad total de memoria se desperdicia?
d. archivos f. Qu porcentaje de memoria se desperdicia?
44. El administrador de _ _ _ _ es responsable del acce- 52. Un sistema operativo utiliza O memoria virtual pero
so a los dispositivos de E/S.
quiere que todo el programa est en la memoria
a. memoria durante la ejecucin (sin paginacin o segmentacin).
b. procesos este captulo presentamos el concepto de algoritmos, los cuales son procedimientos paso
tamao de la memoria fsica es 100.ME. El tamao de
c. dispositivos para resolver un problema. Despus analizamos las herramientas util~zadas. para. de-
memoria virtual es 1 GB. Cuntos programas de 10
d. archivos algoritmos. Finalmente, damos algunos ejemplos comunes de algontmos IteratIvos
puede ejecutar simultneamente este sistema operativ()?,
45. El planificador de tareas y el planificador de procesos Cuntos de ellos pueden estar en memoria en cualquier
estn bajo el control del administrador de _ _ __ momento? Cuntos de ellos deben estar en disco?
a. memoria
53. Cul es el estado de un proceso en cada una de las si-
b. procesos
guientes situaciones (segn la figura 7.9)?
c. dispositivos
a. El proceso est utilizando al CPU.
d. archivos
b. El proceso ha terminado de imprimir y necesita la
atencin del CPU de nuevo.
EJERCICIOS c. El proceso se ha detenido porque su espacio de tiem-
46. Una computadora tiene un sistema operativo de mono- po ha ternrinado.
programacin. Si el tamao de la memoria es 64 MB Y d. El proceso est leyendo los datos desde el teclado.
el sistema operativo residente necesita 4 NIB, cul es el e. El proceso est imprimiendo los datos.
tamao mximo de un programa que puede ejecutar es-
54. Tres procesos CA, B Y C) se estn ejecutando simult
ta computadora?
neamente. El proceso A tiene al Archivo 1, pero necesi-
47. Repita el ejercicio 46 si el sistema operativo asigna au- ta el Archivo 2. El proceso B tiene al Archivo 3, pero
tomticamente 10 ME de memoria a los datos. necesita el Archivo 1. El proceso C tiene al Archivo 2,
48. Un sistema operativo de monoprogramacin ejecuta pero necesita el Archivo 3. Dibuje un diagrama similar
programas que en promedio necesitan 10 microsegun- al de la figura 7.13 para estos procesos. Es una situa-
dos para tener acceso al CPU Y 70 microsegundos para cin de punto muerto?
acceder a los dispositivos de E/S. Qu porcentaje de 55. Tres procesos (A, B Y C) se estn ejecutando de manera
tiempo est inactivo el CPU? simultnea. El proceso A tiene al Archivo 1. El proceso
49. Un sistema operativo multiprogramacin utiliza un es- B tiene al Archivo 2, pero necesita el Archivo 1. El pro~
quema de reparticin y divide los 60 ME de memoria ceso C tiene al Archivo 3, pero necesita el Archivo 2. Di-
disponibles en cuatro particiones de 10 MB, 12 ME, 18 buje un diagrama similar al de la figura 7.13 para estoS
MB Y 20 ME. El primer programa a ser ejecutado nece- procesos. Se trata de una situacin de punto muerto? Si
sita 17 MB Y ocupa la tercera particin. El segundo pro- su respuesta es "No", muestre cmo los procesos ternu-
grama necesita 8 ME Y ocupa la primera particin. El naran sus tareas finalmente.
Algoritmos 8.1 Concepto la
8.1 CONCEPTO
L,.;';'''';;'''''';;''''';_';';'...1 Lista de entrada
En esta seccin definimos de manera infonnallo que es un algoritmo y elaboramos el con- EncontrarMayor
cepto utilizando un ejemplo.
Paso 1
DEFINICiN Una definicin informal de un algoritmo es:
INFORMAL f;::,- ---------j~;-;':~~;,~;- ---.-'-~:
: - - - - - - - - - - - - - - 7,-;:,~ ;,~ - - - - - - - - - - - - -
.M~yorl 12 L>b, 8 L+f <:~I~f\Al?A\hJ LIsta:
~~:::.;.;:,,_ .. ------ -- --~ -- -- ---- ------------ -- --------- ---'--'-- ----_ ..
Paso 2
Algoritmo: un mtodo paso a paso para resolver un problema o realizar una tarea.
~~;;'~j' ul~" i" i' '~~~~ifK;~.;" "" ';;" ~i;~i~~'i"'" ui;~1
._------~._._--------------_._-----------~------------------_
Paso 3
..
En esta definicin un algoritmo es independiente del sistema de cmputo. Ms especfica-
mente, tambin debemos notar que el algoritmo acepta una lista de datos de entrada y crea i~~~~~i" 'i;" i" jj~;,:ii u,u~f"" U", 9'" j":'" ';;;,1
una lista de datos de salida (figura 8.1). .. _----_ ..
._~-_
Paso 4
_-----~-~~---_.-._._-----------_ ... ---------_._~
.-------------------------------------------------- .. _~------
:Mayor! 13 I1
?L;~<,;I{ h;11 U;t, 1 ;/;1 I
~-----------_._-------------~--~--_ .. ------------------------
Paso 5
Lista de entrada
Lista de salida Procesamiento El algoritmo utiliza los siguientes cinco pasos para encontrar el entero mayor.
PASO 1 En este paso, el algoritmo examina el primer entero (12). Puesto que no ha mane-
Figura 8.1 Definicin informal de un algoritmo utilizado en una computadora
jado al resto de los enteros (observe que no revelamos los enteros restantes debido a que el
algoritmo no los examina en este momento), decide que el entero mayor (hasta ahora), es
el primer entero. El algoritmo define un elemento de datos, llamado Mayor y establece el pri-
EJEMPLO Elaboremos esta simple definicin con un ejemplo. Queremos desarrollar un algoritmo para mer entero (12) como su valor.
encontrar el entero ms grande entre una lista de enteros positivos. El algoritmo debe encon-
trar el entero mayor entre una lista de enteros de cualquier valor (5. 1000, 10 000, 1 000000. PASO 2 El entero mayor hasta ahora es 12, pero el nuevo nmero puede cambiar la situa-
etc.). El algoritmo debe ser general y no depender del nmero de enteros. cin. El algoritmo hace una comparacin entre el valor del Mayor (12) y el valor del segun-
Es obvio que encontrar el entero ms grande entre muchos enteros {por ejemplo, 1 milln) do entero (8). Encuentra que el Mayor es ms grande que el segundo entero, lo cual significa
es una tarea que no puede realizarse en un solo paso (por una persona o por una computado- que el Mayor an est manteruendo al entero ms grande. No hay necesidad de cambiar el
ra). El algoritmo necesita probar cada entero uno por uno. valor del Mayor.
Para resolver este problema usted necesita un mtodo intuitivo. Primero utilice un nme-
ro pequeo de enteros (por ejemplo, cinco) y luego extienda la solucin a cualquier nmero PASO 3 El entero mayor hasta ahora es 12, pero el nuevo nmero (13) es ms grande que
de enteros. Su solucin de cinco enteros sigue los mismos principios y restricciones para 1000 el Mayor. Esto significa que el valor del Mayor ya no es vlido. El valor del Mayor debe rem-
o ~ 000 000 de enteros. Suponga, incluso para el caso de cinco enteros, que el algoritmo ma- plazarse con el tercer nmero (13). El algoritmo cambia el valor del mayor a 13 y se mueve
neJa los enteros uno a uno. Observa el primer entero sin conocer los valores de los enteros al paso siguiente.
restantes. Despus de observar el primero, calcula el segundo entero y as sucesivamente. La
figura 8.2 muestra Una manera de resolver este problema. PASO 4 Nada se cambia en este paso debido a que el Mayor es ms grande que el cuarto
entero (9).
Llamamos al algoritmo Encontrarl\tIayor. Cada algoritmo tiene un nombre que 10 distin-
gue ~e otros algoritmos. El algoritmo recibe una lista de cinco enteros (como entrada) y pro- PASO 5 De nuevo nada se cambia debido a que el Mayor es ms grande que el quinto en-
porCIOna el mayor como salida.
tero (11).
Salida Como ya no hay ms enteros a procesar, el algoritmo da el resultado del valor del Mayor, el
Entrada El algoritmo acepta la lista de cinco enteros como entrada. cual es 13.
.. Algoritmos
8.2 Tres estructuras de control l1li
DEFINICiN La figura 8.2 no muestra qu debe hacerse en cada paso. Usted puede modificar la figura pa~
DE ACCIONES ra que muestre ms detalles. En el paso 1, establezca el valor del primer entero como el Ma-
yor. No obstante, en los pasos 2 a 5 se requieren acciones adicionales para comparar el valor r 12 8 13 9 11 J Lista de entrada
del Mayor con el entero que se est procesando en ese momento. Si el entero actual es ms
EncontrarMayor
"'....-....I
t"..;;;....;;.............
grande que el Mayor, se establece el entero actual como el valor del Mayor (figura 8.3).
'-''"c'-- ------- ---,
~
EncontrarMayor Paso 1
,'" -- -.,-,-- .... --,:, ",- -,. ---oo- -_. ---_.. --___ --_.. _,_ -.,_ ------_.. ---_. -------_.. ------';
:'-st,a~leza er'prinl6r nlhei6 co~o el:MaYor. ,
~---;~--~--------------------------------------
Paso 1 . _------~----------------~ ---- .. _._--------:--~-------..-- ----------_
. .. ---------_._ .... _--_._-----_ ..
: Si ~1 nmero actuar ~,;~~: ~d~ que 'el M'ayor, establezca el nmero actual corno el Mayor.
,- - ~,,- - - - ",- - -,,~':7 - - ;'~ - - -", - - -,,~: - -.., '::;- - ~ ,~," - - ~,- - - -',"- - -- .. - - - ;:- - -,"":,:",- - - -: ___ .. ________ -; :- -- -----.',- ---;. -',:::~'~ -'- - -"~- ---------- --------- --- --------.' oo. ------ -oo. -- _.. __
: Siel segllndo numero es ms grande qu'e el Mayor. establezca el segundo nmero como el Mayor. PasoS
~-~------------~-----------~-----------------~-------~~-------------~---~
Paso 2
~~:,? - - .... -- - ,~,,- _.. -," - - -,,~, - - ~,~ - .. ~,~,- - -,~,,-- - -,-, - - - - - - - -," -- - - - - - -~, - - - - - - - - - - - .. - - - .. - - -";
t
!JI] Resultado de salida
;- Si d',tercer rimero es ms grnde que el Mayor,' establezca el tercer nmero corno el Mayor: :
'- ---~,~ ---'- ---'-- -- . ---
Paso 3 -- ---------- . --------.. _- ----- -- ----~- -- -- ------ -. -- ~
," - - .. - - - - -- - - --7'- - - - - - - - - - - .. - - - .. - - - .. - - - _ .. ___ .,. ___ .. _____________ .. _________ ,__ ";
Figura 8.4 EncontrarMayor refinado
: s el cuart nnie;o es'ms,'gr.mde'9ue 'el Mayor. es'tblezca el cuarto numero corno el Mayor. ,
~---
Paso. _-~-------------
4 . _--------------- . _--------------------- . _---------~
'
' -----------------------------------------------------------------------
-' ,
.. -,,
: 'Si el quinto nmero es ms gr.mde qe el Mayor': establezca el quinto nmero corno el Mayor:. ,
~----~-_
Paso S .. _-----------.~-----_ .. _ .. _---_ .. _----~~-_ .. _-------------~---------~ r Lista de entrada J
~ EncontrarMayor
W
Figura 8,3 Definicin de acciones en el algoritmo EncontrarMayor
Resultado de salida :---------_ ...
: Establezca el Mayr a O. :
, '
~~-~~
realiza la accin 1
realiza la accin 2
------------------,
Otra secuencia Una secuencia Una secuencia
realiza la accin n
a. Secuencia
:
....... j........ :' ,r,
de acciones de acciones de acciones
accin n accin
DECISiN Algunos problemas no pueden resolverse slo con una secuencia de instrucciones simples. En ------------------------ accin End while
a. Secuencia ~----------------------
ocasiones usted necesita probar una condicin. Si el resultado de la prueba es verdadero, us- c. Repeticin
ted sigue una secuencia de instrucciones; si es falso, usted sigue una secuencia de instruccio- End i f
nes diferente. A esto se le llama estructura de decisin (seleccin). b. Decisin
REPETICiN En algunos problemas, debe repetirse la misma secuencia de instrucciones. Esto se maneja Figura 8.8 Pseudocdigo para las tres estructuras de control
con la estructura de repeticin. Encontrar el nmero mayor entre una serie de nmeros (que
se vio al principio del captulo) es una estructura de este tipo.
EJEMPLO!
Escriba un algoritmo en pseudocdigo que encuentre la estructura de dos nmeros.
DiAGRAMA Un diagrama de flujo es tilla representacin pictrica de un algoritmo. Oculta todos los de- Algoritmo 8.1 Promedio de dos
DE FLUJO talles de un algoritmo en un intento por dar la idea global; muestra cmo el algoritmo
de principio a fin. Los diagramas de flujo se cubren con detalle en el Apndice C. Aqu slo PromedioDeDos
mostramos cmo se representan las tres estructuras en diagramas de flujo (figura 8.7). Entrada: Dos nmeros
1. Suma los dos nmeros
PSEUDOCDIGO El pseudocdigo es una representacin de un algoritmo parecida al ingls. No hay un estn- 2. Divide el resultado entre 2
dar para pseudocdigo; algunas personas utilizan muchos detalles y otras usan menos. Algu- 3. Devuelve el resultado del paso 2
nos utilizan un tipo de cdigo que se parece al ingls y otros utilizan una sintaxis como el End
lenguaje Pascal. El pseudocdigo se cubre con detalle en el Apndice D. Aqu slo mostra-
mos cmo pueden representarse las tres sentencias mediante pseudocdigo (figura 8.8).
111 Algoritmos 8.3 Representacin de algoritmos ..
Algoritmo 8.2 Traduccin a aprobado/reprobado Observe que las instrucciones if no necesitan el se porque no ocurre nada si la condicin
es falsa.
Aprobado/reprobado
EJEMPLO 4
Entrada: Un nmero
Escriba un algoritmo para encontrar el nmero mayor de una serie de enteros. Usted no
1. i f (el nmero es mayor o igual que 70)
then conoce el nmero de enteros.
1.1 Establece la calificacin a l/aprobado"
SOLUCIN
else
1.2 Establece la calificacin a "reprobado" Utilice el concepto de la figura 8.5 para escribir un algoritmo para este problema (algorit-
End i f mo 8.4).
2. Devuelve la calificacin
Algoritmo 8.4 Encontrar el mayor
End
EncontrarMayor
Entrada: Una lista de enteros positivos
EJEMPLO 3 1. Establece el Mayor en O
Escriba un algoritmo para cambiar una calificacin numrica a una calificacin de letra. 2. while (ms enteros)
2.1 i f (el entero es ms grande que el Mayor)
SOLUCIN then
2.1.1 Establece el valor del entero como el Mayor
Este problema necesita ms de una decisin. El pseudocdigo en el algoritmo 8.3 mues-
End if
tra una forma (no la mejor, sino una fcil de comprender) para resolver el problema. De
End while
nuevo, se da un nmero entre O y 100 Y usted quiere cambiarlo a una calificacin de letra
3. Devuelve el Mayor
CA, B, e, D o F).
End
Algoritmo 8.3 Calificacin con letra
CalificacinLetra EJEMPLOS
Entrada: Un nmero Escriba un algoritmo para encontrar el nmero mayor entre 1000 nmeros.
1. if (el nmero est entre 90 y 100, inclusive)
then SOLUCIN
1.1 Establece la calificacin a /lA" En este caso se necesita un contador para contar el nmero de enteros. Inicialice el conta-
End if dor en O y aumntelo en cada repeticin. Cuando el contador sea 1000, salga del ciclo
2. if (el nmero est entre 80 y 89, inclusive) (loop) (algoritmo 8.5).
then
2.1 Establece la calificacin a /lB" Algoritmo 8.5 Encontrar el nmero mayor entre 1000 nmeros
End if
3. i f (el nmero est entre 70 y 79, inclusive) EncontrarMayor
then Entrada: 1000 enteros positivos
3.1 Establece la calificacin a "C" 1. Establece el Mayor en O
End i f 2. Establece el Contador en O
.. Algoritmos 8.5 Subalgoritmos El
3. while (el Contador es menor que 1000)
3.1 i f (el entero es ms grande que el Mayor)
EncontrarMayor
then
End if
3.1.1 Establece el valor del entero como el Mayor
Entrada: Una lista de enteros
1. Establece el Mayor en O
2. while (ms enteros)
Encontr'arMsGrande
Entrada: El Mayor y el enter~' . e,
1. if (el entero ms grande que el Mayor)
3.2 Incrementa el contador then
End while 2.1' EncontrarMs
1.1 Bstablece el valor del entero como el
Grande
4. Devuelve el Mayor Jvlayor
End End while Erid' ifc
3. Devuelve el Mayor End
111 End
, ,
8.4 DEFINICION MAS fOR.MAL Figura 8.9 Concepto de subalgoritmo
PRODUCE Un algoritmo debe producir un resultado; de lo contrario es intil. El resultado pueden ser da- El algoritmo 8.6 muestra en pseudocdigo cmo utilizar un subalgoritmo dentro de un al-
UN RESULTADO tos que se devuelven al algoritmo que hace la llamada o algn otro algoritmo (por ejemplo, goritmo.
imprimir).
Algoritmo 8.6 Encontrar el nmero mayor
TERMINAR EN UN Un algoritmo debe terminar (detenerse). Si no lo hace (por ejemplo que tenga un ciclo infi-
TIEMPO FINITO nito), entonces no se ha creado un algoritmo. En el captulo 17, estudiaremos problemas so- EncontrarMayor
lubles e insolubles, y usted ver que un problema soluble tiene una solucin en la fonna de Entrada: Una lista de enteros positivos
un algoritmo que tenruna. l. Establece el Mayor en O
2. while (ms enteros)
2.1 EncontrarMayor
8.5 SUBALGORITMOS End while
3. Devuelve el Mayor
End
Con las tres estructuras que se han escrito se puede crear un algoritmo para cualquier proble-
ma soluble. No obstante, los principios de la programacin estructurada requieren que un
EncontrarMsGrande
algoritmo se divida en pequeas unidades llamadas sllbalgoritmos (los trminos subprogra-
Entrada: El nmero mayor y el entero actual
mas, subrutinas, procedimientos, funciones, mtodos y mdulos tambin se utilizan). Ca-
1. if (el entero es ms grande que el Mayor)
da subalgoritmo a su vez se divide en subalgoritmos ms pequeos. El proceso contina hasta
then
que los subalgoritmos se vuelven intrnsecos (comprensibles de inmediato).
1.1 Establece el valor del entero como el Mayor
Usted puede diviilir el algoritmo 8.4 en un algoritmo principal y en un subalgoritmo. Es-
End if
te algoritmo es un buen candidato para este propsito debido a que repite una tarea muchas
End
veces. En cada iteracin, el algoritmo encuentra el nmero mayor entre dos enteros. Usted
puede separar esta parte de la tarea y crear una pequea subtarea fuera de ella (figura 8.9). lIi
.. Algoritmos 8.6 Algoritmos bsicos 111
CARTA Otra herramienta que los programadores utilizan es la carta estructurada, la cual es una he~
ESTRUCTURADA rramienta de alto nivel que muestra la relacin entre diferentes mdulos en un algoritmo. Se
utiliza principalmente en el nivel de diseo y no en el nivel de programacin. En el apndice
E se estudia la carta estructurada.
,
8.6 ALGORITMOS BASICOS
Varios algoritmos se utilizan en la ciencia de la computacin con tanta frecuencia que se les
considera bsicos. En esta seccin estudiamos los ms comunes. El anlisis es muy general,
ya que su implementacin depende del lenguaje.
SUMATORIA Uno de los algoritmos ms comunes en las ciencias de la computacin es la sumatoria. Us-
ted puede sumar dos o tres nmeros muy fcilmente, pero cmo puede sumar muchos n-
meros o una serie variable de nmeros? La solucin es simple: Utilice el operador de suma
en un ciclo (figura 8.10). Un algoritmo que suma tiene tres partes lgicas: Figura 8.11 Multiplicatoria
,... "'." ...... y MAYOR Estudiamos el algoritmo para encontrar el nmero mayor entre una lista de nmeros al prin-
cipio del captulo. La idea era escribir una estructura de decisin para encontrar el ms gran-
de de dos nmeros. Si usted pone esta estructura en un ciclo, puede encontrar el nmero
mayor de una lista de nmeros.
Detenninar el nmero menor entre una lista de nmeros es similar con dos diferencias me-
nores. Primero, se utiliza una estructura de decisin para encontrar el menor de dos nmeros.
Segundo, se inicializa con un nmero muy grande en lugar de uno muy pequeo.
En la ordenacin por seleccin, la lista se separa en dos sublistas -ordenada y sin ordenar-
MULTIPlICATORIA Otro algoritmo comn es hallar el producto de una lista de nmeros. La solucin es simple: seleccin las cuales se dividen por una pared imaginaria. Usted encuentra el elemento ms pequeo de
Use el operador de multiplicacin en un ciclo (figura 8.11). Un algoritmo de producto tiene la sublista sin ordenar y 10 intercambia por el elemento al principio de los datos sin ordenar.
tres partes lgicas: Despus de cada seleccin e intercambio, la pared imaginaria entre las dos sublistas mueve
un elemento hacia delante, aumentando el nmero de elementos ordenados y disminuyendo
1. Inicializacin del producto al principio. el nmero de aquellos sin ordenar. Cada vez que usted mueve un elemento de la sublista sin
2. El ciclo, el cual multiplica en cada iteracin un nuevo nmero por el producto. ordenar a la lista ordenada, usted ha completado un paso de ordenacin. Una lista de n ele-
mentos requiere n - 1 pasos para reacomodar los datos completamente. El orden de seleccin
3. Devuelve el resultado despus de salir del ciclo. se presenta grficamente en la figura 8.12.
111 Algoritmos
8.6 Algoritmos bsicos ..
Pared Inicio
;~ ~t~~~~:1:11~:~~~\::,d:~
Lista original :Esto pJ~~:hacer~q;~,n
su~~~rpgram~\ irnpIic~\m
Sin ordenar
El elemento ms pequeo
se intercambia con el primer
.. Sin ordenar
Despus del paso 1 elemento de la lista sin ordenar
Alto
Despus del paso 3
11 ID
Ordenados Sin ordenar Figura 8.14 Algoritmo de ordenacin por seleccin
La figura 8.13 ubica un conjunto de seis enteros y como son ordenados. Muestra cmo
p~ed entre las sublistas ordenada y sin ordenar se mueve en cada paso. A medida que estu-
dIe la figura Se dar cuenta de que la lista est ordenada despus de cinco pasos, lo cual es Pared Burbujas que suben
uno menos que el nmero de elementos en la lista. De esta manera, si usted utiliza un ciclo
para controlar el ordenamiento, el ciclo tendr una iteracin menos que el nmero de elemen-
tos en la lista.
Algoritmo El a.lgori.tmo .utiliza dos ciclos, uno dentro del otro. El ciclo exterior se itera para cada paso;
de la ordenacin el cIclo mtenor encuentra el elemento ms pequeo en la lista sin ordenar. La figura 8.14 Ordenados Sin ordenar
por seleccin mue~s~a el diagrama de flujo para el algoritmo de ordenacin por seleccin. Dejamos el pseu-
docodlgO como un ejercicio . Figura 8.15 Ordenacin por burbuja
.
Algoritmos 8.6 Algoritmos bsicos ..
La figura 8.16 muestra cmo la pared se mueve un elemento en cada paso. Al observar el
primer paso, usted comienza con 56 y 10 compara con 32. Puesto que 56 no es menor que 32,
ste no se mueve y usted se mueve un elemento hacia abajo. No ocurre ningn intercambio Pared
hasta que se compara 45 con 8. Puesto que 8 es menor que 45, se intercambian los dos ele~
mentos y usted se mueve hacia abajo un elemento. Debido a que 8 se movi hacia abajo, aho~
ra se compara con 78 y estos dos elementos se intercambian. Finalmente, el 8 se compara Con
el 23 y se intercambian. Esta serie de intercambios coloca al 8 en la primera ubicacin y la
pared se mueve una posicin hacia arriba.
El orden de burbuja se escribi originalmente para "burbujear hacia abajo" el elemento en la Ordenados Sin ordenar
posicin superior de la lista. Desde el punto de vista de la eficiencia, no hay diferencia entre que
sea el elemento en la posicin superior el que burbujea hacia abajo o sea el elemento inferior, Figura 8.17 Ordenacin por insercin
Desde el punto de vista de la consistencia, sin embargo, hace que las comparaciones entre los
ordenamientos sean ms fciles si los tres trabajan del mismo modo. Por esa razn, hemos ele~
gido burbujear el valor inferior en cada paso.
Lista original
ij 23178145 1321 56 1
...L. 11 lfI
Despus del paso 1
Despus del paso 2
Sin ordenar
Otros algoritmos Existen otros algoritmos de ordenacin: ordenacin rpida, ordenacin de pila, ordenacin
de ordenacin Shell, ordenacin por balde, ordenacin por fusin, etc. La mayora de estos algoritmos
ordenacin avanzados se analiza en libros sobre estructuras de datos.]
Tal vez se pregunte por qu hay tantos algoritmos de ordenacin. La razn es el tipo
datos que necesitan ser clasificados. Un algoritmo es ms eficiente para una lista que se or-
dena ms frecuentemente, mientras que otro algoritmo es ms eficiente para una lista que
t completamente desordenada. Para decidir cul algoritmo es adecuado para una aplicaci'n
en particular, se necesita una medicin llamada complejidad de algoritmos. Este tema se
tudia en el captulo 17, pero una comprensin a fondo requiere tomar cursos adicionales
programacin y estructuras de datos.
BSQUEDA. Otro algoritmo comn en las ciencias de la computacin es la bsqueda, la cual es el proce-
so de encontrar la ubicacin de lill objetivo entre una lista de objetos. En el caso de una
la bsqueda significa que dado un valor, usted desea encontrar la ubicacin (ndice) del primer
elemento en la lista que contiene ese valor. El concepto de bsqueda se ilustra en la figura 8.19.
El algoritmo de bsqueda secuencial es muy lento. Si usted tiene una lista de 1 milln de ele-
>BIsc~uleda binaria mentos, debe hacer un milln de comparaciones en el peor de los casos. Si la lista no est or-
denada, sta es la nica solucin. Sin embargo, si la lista est ordenada puede usar un
algoritmo ms eficiente llamado bsqueda binaria. En trminos generales, los programado-
res utilizan una bsqueda binaria cuando una lista es grande.
Una bsqueda binaria comienza al probar los datos en el elemento que est a mitad de la
lista. Esto determina si el objetivo est en la primera o la segunda mitad de la lista. Si est en
la primera mitad no hay necesidad de hacer una revisin posterior en la segunda mitad. Si es-
Figura 8.19 Concepto de bsqueda t en la segunda mitad, no hay necesidad de revisar la primera. En otras palabras, usted des-
carta el estudio de la mitad de la lista en cada paso. Repita este proceso hasta que se encuentre
el objetivo o compruebe que ste no est en la lista. La figura 8.21 muestra cmo encontrar el
Hay dos bsquedas bsicas para listas: bsqueda secuencial y bsqueda binaria. La bs- objetivo, 22, en la lista usando tres referencias: primero, medio y ltimo.
queda secuencial puede utilizarse para localizar un elemento en cualquier lista, mientras que
la bsqueda binaria requiere que la lista se ordene.
1. Al principio, el primero muestra O y el ltimo muestra 11. Sea el medio la posicin de
en medio. (O + 11)/2, o 5. Ahora se compara el objetivo (22) con los datos en la posi-
Bsqueda La bsqueda secuencial se utiliza si la lista en la que se est realizando la bsqueda no est
cin 5(21). El objetivo es mayor que este valor, as que se ignora la primera mitad.
secuencial ordenada. Por 10 general usted utiliza esta tcnica slo para listas pequeas o listas que no se
consultan a menudo. En otro casos, es mejor primero ordenar la lista y luego realizar la bs-
2. El primero se mueve despus del medio a la posicin 6. Sea el medio la parte media de
queda usando la bsqueda binaria que se estudia ms adelante.
la segunda mitad, (6 + 11)/2, u 8. Ahora se compara el objetivo (22) con los datos de la
En una bsqueda secuencial usted comienza buscando el objetivo desde el principio de la
posicin 8 (62). El objetivo es menor que este valor, as que los nmeros de este valor
lista y contina hasta que encuentre el objetivo o est seguro de que ste no est en la lista
(debido a que usted ha llegado al final de la lista). La figura 8.20 esboza los pasos para en- (62) se ignoran hasta el final.
contrar el valor 62.
3. El ltimo se mueve antes del medio a la posicin 7. El medio se calcula de nuevo, (7 +
6)/2. o 6. El objetivo (22) se compara con el valor de esta posicin (22). Usted ha en-
1 Vase Richard E Gilberg y BehrouzA. Forouzan, Data Stmctures: A PseudocodeApproach with C++, contrado el objetivo y puede salir.
(Padic Grove, California, Brooks/Cole, 2001), pp. 502-559.
.. Algoritmos 8.7 Recursividad 111
primero medio ltimo -
si n = O
Factorial (n) =
n X Factorial (n - 1) si n > O
~ -
Factorial (1) ~ 1 X 1 ~ 1
Un algoritmo se defme de manera recursiva siempre que el algoritmo aparece dentro de la de-
finicin misma. Por ejemplo, la funcin factorial puede definirse de manera recursiva como
Figura 8.21 Ejemplo de una bsqueda binaria en la figura 8.23.
La descomposicin de factorial (3), usando la recursividad, se muestra en la figura 8.24.
Si usted estudia la figura con cuidado, notar que la solucin recursiva para un problema in-
volucra un proceso de dos sentidos. Primero se descompone el problema de arriba abajo y
luego se resuelve de abajo para arriba.
8.7 RECURSIVIDAD A juzgar por este ejemplo, parece como si el clculo recursivo es mucho ms grande y ms
difcil. As que por qu querra usar el mtodo recursivo? Aunque el mtodo recursivo pare-
En general, hay dos mtodos para escribir algoritmos que resuelvan un problema. Uno utili- ce ms difcil cuando se usa papel y pluma, a menudo es una solucin mucho ms fcil y ms
za iteraciones y el otro usa la recursividad. La recursividad es un proceso mediante el cual elegante cuando se usan computadoras. Asimismo, ofrece una simplicidad conceptual para el
un algoritmo se llama a s mismo. creador y el lector.
DEFINICiN Para estudiar un ejemplo simple, considere el clculo de un factorial. El factorial de un n- Solucin iterativa Escribamos un algoritmo para resolver el problema factorial de modo iterativo. Esta solucin
ITERATIVA mero es el resultado de los valores absolutos desde 1 hasta el nmero. La definicin es itera- por lo general implica un ciclo como el que aparece en el algoritmo 8.7.
tiva (figura 8.22). Un algoritmo es iterativo siempre que la definicin no involucra al
algoritmo mismo. Algoritmo 8.7 Factorial iterativo
Factorial
Entrada: Un entero positivo num
1. Establece FactN en 1
si n = O 2. Establece i en 1
3. whi 1 e (i menor o igual que num)
Factorial (n) ~
3.1 Establece FactN a FactN X i
3.2 Incrementa i
n X (n - 1) X (n - 2) X ... X 3 X 2 X 1 si n > O
End while
4. Devuelve FactN
Figura 8.22 Definicin iterativa de factorial End
.. Algoritmos
8.10 Prctica la
Solucin recursiva La solucin recursiva para un factorial se ve en el algoritmo 8.8. No se necesita un ciclo; el La bsqueda secuencial se usa para listas sin ordenar. 11 Un algoritmo iterativo implica slo los parmetros y no
concepto por s mismo implica repeticin. En la versin recursiva, usted permite que el algo-
el algoritmo mismo.
ritmo factorial se llame a si mismo. '111 La bsqueda binaria se usa para listas ordenadas.
11 Un algoritmo recursivo implica el algoritmo mismo.
Factorial ,
Entrada: Un entero positivo num
1. i f (num es igual a O)
PRACTICA
then
1.1 devuelve 1 DE REPASO 18. En las ciencias de la computacin hay _ _ _ _ estruc-
else Cul es la definicin formal de algoritmo? turas bsicas.
1.2 devuelve num x Factorial (num - 1) a. una
Defina las tres estructuras utilizadas en la programacin b. dos
End if estructurada.
End c. tres
3. Cmo se relaciona un diagrama de flujo con un algo- d. cuatro
ritmo?
19. La estructura _ _ _ _ prueba una condicin .
. 4. Cmo se relaciona el pseudocdigo con un algoritmo? a. de secuencia
,
5. Cules son los otros trminos para las unidades que b. de decisin
8.8 TERMINOS CLAVE conforman un algoritmo? c. de repeticin
d. lgica
algoritmo funcin procedimiento Cmo utilizan los programadores la carta estructurada?
bsqueda iteracin pseudocdigo Cul es el propsito del algoritmo de sumatoria? 20. La estructura _ _ _ _ es cualquier accin.
bsqueda binaria mdulo recursividad a. de secuencia
Cul es el propsito del algoritmo de multiplicatoria?
bsqueda secuencial ordenacin subalgoritmo b. de decisin
carta estructurada ordenacin por burbuja subprograma Cul es el propsito de un algoritmo de ordenacin? c. de repeticin
datos de entrada ordenacin por insercin subrutina Cules son los tres tipos de algoritmos de ordenacin? d. lgica
datos de salida ordenacin por seleccin sumatoria
En qu se parecen los tres algoritmos de ordenacin? 21. La estructura _ _ _ _ maneja acciones repetitivas.
diagrama de flujo paso de ordenacin
En qu difieren? a. de secuencia
Cul es el propsito de un algoritmo de bsqueda? b. de decisin
c. de repeticin
Cules son los dos tipos de bsqueda principales?
d. lgica
8.9 RESUMEN Cul es la diferencia entre ellos?
22. _ _ _ _ es una representacin pictrica de un algorit-
D una definicin y un ejemplo de un proceso iterativo.
l1li De manera informal, un algoritmo es un mtodo paso a II1II Una carta estructurada es una herramienta de diseo de mo.
D una definicin y un ejemplo de un proceso recursivo.
paso para resolver un problema o realizar una tarea. alto nivel que muestra la relacin entre diferentes mdu- a. Un diagrama de flujo
los de un programa. b. U na carta estructurada
l1li Un algoritmo acepta una lista de entrada de datos y crea
UNTAS DE OPCiN MLTIPLE c. El pseudocdigo
una lista de salida de datos. l1li La sumatoria es un algoritmo bsico en el cual los n-
d. Un algoritmo
lIlI Un programa es una combinacin de estructuras de se- meros se suman. ____ es un mtodo paso a paso para resolver un
cuencia, estructuras de decisin y estructuras de repeti- llII La multiplicacin es un algoritmo bsico en el cual los problema o realizar una tarea. 23. es una representacin del cdigo parecida al
cin. nmeros se multiplican. a. Una estructura ingls.
!IIII Un diagrama de flujo es una representacin pictrica de liII Encontrar el mnimo o el mximo en una lista de nme- b. Una recursividad a. Un diagrama de flujo
un algoritmo. ros es un algoritmo bsico. c. Una iteracin b. Una carta estructurada
c. El pseudocdigo
!IIII El pseudocdigo es una representacin de un algoritmo 111 La ordenacin, un proceso para acomodar los datos en d. Un algoritmo
d. Un algoritmo
parecida al ingls. orden, es un algoritmo bsico. Para establecer el valor de una variable antes de que ocu-
l1li Formalmente, un algoritmo es una serie ordenada de pa- 111 La ordenacin por seleccin, la ordenacin por burbuja Y 24. es una herramienta de alto nivel que muestra
rra cualquier procesamiento, usted la variable.
sos precisos que produce un resultado y termina en un la relacin entre diferentes mdulos de un programa.
la ordenacin por insercin son algoritmos de ordenacin a. estructura
tiempo finito. de uso comn. a. Un diagrama de flujo
b. itera
b. Una carta estructurada
l1li Un algoritmo puede dividirse en unidades ms pequeas l1li La bsqueda, un proceso para localizar un objetivo en c. inicializa c. El pseudocdigo
llamadas subalgoritmos. una lista de datos, es un algoritmo bsico. d. incrementa d. Un algoritmo
Algoritmos 8.10 Prctica ..
25. Un subalgoritmo tambin se conoce como _ _ __ 33. En la ordenacin por , el elemento que va a la Haga un diagrama de flujo para un algoritmo que en- 54. Una lista contiene los siguientes elementos. Los prime-
a. funcin lista ordenada siempre es el primer elemento en la lista cuentre el nmero menor entre N nmeros. ros dos elementos se han ordenado usando el algoritmo
b. subrutina sin ordenar. 43. Escriba un pseudocdigo para el algoritmo del nmero de ordenacin por insercin. Cul es el valor de los ele-
c. mdulo a. seleccin menor del ejercicio 42. mentos en la lista despus de tres pasos ms de la or-
d. todos los anteriores b. burbuja denacin por insercin?
44. Haga un diagrama de flujo para un algoritmo que en-
c. insercin
cuentre el nmero mayor entre N nmeros. 3 13 7 26 44 23 98 57
26. es un algoritmo bsico que encuentra el pro- d. todos los anteriores
ducto de una lista de nmeros. Escriba un pseudocdigo para el algoritmo del nmero 55. Una lista contiene los siguientes elementos. Usando el
34. En la ordenacin por , el elemento ms peque~ mayor del ejercicio 44.
a. La sumatoria algoritmo de bsqueda binaria, detalle los pasos que se
o de la lista sin ordenar se intercambia con el elemen-
b. La multiplicatoria Escriba un pseudocdigo para el algoritmo de ordenacin siguieron para encontrar el nmero 88. En cada paso,
to al principio de la lista sin ordenar.
c. EIMenor por seleccin. muestre los valores del primero, ltimo y medio.
a. seleccin
d. El Mayor b. burbuja Haga un diagrama de flujo y escriba un pseudocdigo 8 13 17 26 44 56 88 97
c. insercin para el algoritmo de ordenacin por burbuja.
27. La _ _ _ _ es un algoritmo bsico que acomoda los 56. Una lista contiene los siguientes elementos. Usando el
d. todos los anteriores Dibuje un diagrama de flujo y escriba un pseudocdigo
datos de acuerdo con sus valores. algoritmo de bsqueda binaria. detalle los pasos que se
35. En la ordenacin por , el elemento ms peque- para el algoritmo de ordenacin por insercin. siguieron para encontrar 20. En cada paso, muestre los
a. solicitud de informacin
b. ordenacin o se mueve al principio de la lista sin ordenar. No hay Usando el algoritmo de ordenacin por seleccin, orde- valores de primero, ltimo y medio.
c. bsqueda intercambio uno a uno. ne la siguiente lista en forma manual y muestre su traba- 8 13 17 26 44 56 88 97
d. recursividad a. seleccin jo en cada paso:
b. burbuja 57. Escriba un algoritmo recursivo para encontrar el mxi-
14 7 23 31 40 56 78 9 2
28. ____ es un algoritmo bsico que suma una lista de c. insercin mo comn divisor (mcd) de dos enteros utilizando la de-
nmeros. d. todos los anteriores Usando el algoritmo de ordenacin por burbuja, ordene finicin de la figura 8.25.
la siguiente lista en forma manual y muestre su trabajo
a. La sumatoria 36. es un algoritmo bsico en el cual usted quie- en cada paso:
b. La multiplicatoria re encontrar la localidad de un objetivo en una lista de
c. El Menor 14 7 23 31 40 56 78 9 2 mCd (y. x)
elementos.
d. El Mayor a. La ordenacin Usando el algoritmo de ordenacin por insercin, orde- med (x, y) = x
b. La bsqueda ne la siguiente lista en forma manual y muestre su traba- [
29. ____ es un algoritmo bsico que encuentra el n- med (y, x mod y)
c. La multiplicatoria jo en cada paso:
mero menor de una lista de nmeros.
d. La sumatoria 14 7 23 31 40 56 78 9 2
a. La sumatoria Figura 8.25 Ejercicio 57
b. La multiplicatoria 37. Utilice una bsqueda _ _ _ para una lista sin ordenar.
Una lista contiene los siguientes elementos. Los prime-
c. El Menor a. secuencial
ros dos elementos se han ordenado usando el algoritmo
d. El Mayor b. binaria
de ordenacin por seleccin. Cul es el valor de los ele-
c. por burbuja 58. Escriba un algoritmo recursivo para encontrar la combi-
mentos en la lista despus de tres pasos ms de la or-
30. En la ordenacin por , los elementos se divi- d. por insercin denacin por seleccin? nacin de n objetos tomando k a la vez utilizando la de-
den en dos listas: ordenados y sin ordenar. 38. Utilice una bsqueda ____ para una lista ordenada. finicin de la figura 8.26.
78264413239857
a. seleccin a. secuencial
b. burbuja b. binaria Una lista contiene los siguientes elementos. Los primeros
c. insercin c. por burbuja dos elementos se han ordenado usando el algoritmo de
. ~ ;Le ~ Oo n ~ ;j
d. todos los anteriores d. por insercin ordenacin por burbuja. Cul es el valor de los elemen-
C(n k) si k
31. Para la ordenacin por ____ , se necesitan n - 1 pa- 39. La ____ es un proceso en el cual un algoritmo se
tos en la lista despus de tres pasos ms de la ordenacin
por burbuja?
(n - l. k) + e
(n -l. k - 1) si n > k > O J
sos para ordenar los datos. llama a s mismo.
7 8 26 44 13 23 57 98 Figura 8.26 Ejercicio 58
a. seleccin a. insercin
b. burbuja b. bsqueda
c. recursividad
c. insercin
d. iteracin
d. todos los anteriores
EVOLUCIN
Para escribir un programa para computadora, usted debe utilizar un lenguaje de computado-
ra. Un lenguaje de computadora es una serie de palabras predefinidas que se combinan en
Le"guajes . e,
un programa de acuerdo con reglas predefinidas (sintaxis).
Con los aos, los lenguajes de computadora han evolucionado desde lenguaje de mqui-
na a lenguajes naturales. Una lnea de tiempo para lenguajes de computadora se presenta en
la figura 9.1.
programaclon "
;y~ o' C>
;f' ,,0'
S>~
lo"" ",0 -so'>
0
<$'
'"
~~ 0
'>
.o' ~:s:
<:>~ :::,.0--,
y~
,}
'0'
",'"
y~
",
,
.'
'0'
yO
&-'6
'0"
v'>'
""P
v~"" '":i
::toO '00
L..!!<:>
En este captulo damos una visin general de los lenguajes de programacin para dar a
estudiantes una idea de los distintos lenguajes y cundo se usan. Primero estudiamos En los primeros das de las computadoras, los nicos lenguajes de programacin disponibles
evolucin de los lenguajes. Enseguida clasificamos los lenguajes de acuerdo con su eran los lenguajes de mquina. Cada computadora tena su propio lenguaje de mquina, el
para resolver problemas y los tipos de problemas que pueden resolver. Luego estudiamos cual est formado por cadenas de O y 1. El programa 9.1 muestra un ejemplo de un progra-
lenguaje popular y analizamos sus elementos y capacidades. ma en lenguaje de mquina. Este programa multiplica dos nmeros e imprime el resultado.
los programas se orientan en torno a lneas de cdigo mientras que la mayor parte del procesa-
miento de texto se orienta en torno a caracteres y lneas. Despus de completar un programa,
usted guarda su archivo en el disco. Este archivo se meter al compilador; a este archivo se le
conoce como archivo fuente.
LlGADOR Un lenguaje de alto nivel tiene muchos subprogramas, algunos de los cuales estn escritoS
DE PROGRAMAS por usted y son parte de su programa fuente. Sin embargo, existen otros subprogramas CO-
mo los procesos de entrada/salida y subrutinas de biblioteca matemticas que existen en al-
gunas otras partes y deben ser adjuntadas a su programa. Elligador ensambla todas estas
funciones, las de usted y las del sistema, en su programa ejecutable finaL Figura 9.4 Categoras de lenguajes
liI Lenguajes de programacin
9.4 Categoras de lenguajes ..
(OBOI.. COBOL (COmmon Business-Oriented Language: Lenguaje comn orientado a negocios) LENGUAJES La programacin orientada a objetos utiliza un mtodo para la solucin de problemas total-
fue diseado por un grupo de cientficos de computacin dirigido por Grace Hopper de la ORIENTADOS mente diferente de la programacin de procedimientos. Usted puede pensar en un elemento
Armada de Estados Unidos. COBOL tiene una meta de diseo especfica: servir como un A. OBJETOS de datos en ambos lenguajes como un objeto. Un programa puede imaginarse como una se-
lenguaje de programacin para negocios. Los problemas a resolver en el medio empresarial rie de operaciones que desea realizar en el objeto.
son completamente diferentes de aquellos en un entorno de ingeniera. Los programas para En la programacin procedural, los objetos estn completamente separados y son totalmen-
negocios no necesitan los clculos precisos que requieren los programas de ingeniera. Las te independientes de las operaciones. Los objetos pueden almacenarse en una computadora y
necesidades de programacin del mundo de los negocios pueden resumirse como sigue: diferentes programas que utilizan aplicaciones distintas se aplican a ellos. En otras palabras,
en la programacin procedurallos objetos son pasivos. No tienen ninguna operacin definida
11 Acceso rpido a archivos y bases de datos para ellos. Los programadores definen las operaciones y las aplican a los objetos.
11 Actualizacin rpida de archivos y bases de datos En la programacin orientada a objetos, los objetos y las operaciones que se van a aplicar
ilI Generacin de una gran cantidad de informes en ellos estn ligados. El programador primero define un objeto y los tipos de operaciones
11 Salida con un formato comprensible para el usuario que pueden aplicarse a este objeto. El programador (u otro programador) puede entonces usar
COBOL se dise para satisfacer todas estas necesidades, esta combinacin e invocar algunas o todas las operaciones definidas para resol ver un proble-
ma. En otras palabras, los objetos en la programacin orientada a objetos estn activos.
L
lenguajes de programacin 9.4 Categoras de lenguajes ..
La idea es similar para los objetos en la vida reaL Existen objetos que son pasivos, como vidor y se ejecuta por un explorador. El explorador puede descargar el applet y ejecutarlo 10-
una piedra. No hay operacin incluida con la piedra. Si alguien quiere realizar una opera~ cahnente.
cin en una piedra, l o ella define la operacin y la realiza. Por otro lado, un automvil En Java, un programa de aplicacin (o un applet) es una coleccin de clases e instancias de
un objeto activo. Hay varias operaciones definidas para un automvil. El conductor slo ne~ esas clases. Una caracterstica interesante de Java es la biblioteca de clases, una coleccin
cesita invocar a una de estas operaciones. de clases. Aunque C++ tambin ofrece una biblioteca de clases, en Java el usuario puede
Varios lenguajes orientados a objetos se han desarrollado. Estudiamos brevemente construir nuevas clases con base en aquellas provistas por la biblioteca.
caractersticas de dos: C++ y Java. La ejecucin de un programa en Java tambin es nica. Usted crea una clase y la pasa al
intrprete que llama a los mtodos de clase.
El lenguaje C++ fue desarrollado por Bjarne Stroustrup en BeU Laboratories como un len~ Otra caracterstica interesante en Java es la ilacin mltiple (multithreading). Un hilo (th-
c++ read) es una secuencia de acciones ejecutadas una despus de otra. C++ slo permite una
guaje e mejor. Utiliza clases para definir las caractersticas generales de objetos similares y
las operaciones que pueden aplicarse a eUas. Por ejemplo, un programador puede definir una ilacin individual (todo el programa se ejecuta como un solo hilo), pero Java permite la ila-
clase Formas_geomtricas y todas las caractersticas comunes para dos formas geom~ cin mltiple (ejecucin concurrente de varias lneas de cdigo).
tricas bidimensionales tales como el centro, el nmero de lados y as por el estilo. La clase
tambin puede definir operaciones (funciones o mtodos) que pueden aplicarse a una forma
geomtrica tales corno el clculo y la impresin del rea, el clculo y la impresin del peri~ En la programacin funcional, un programa se considera una funcin matemtica. En este
metro, la impresin de las coordenadas del punto central, etc. Por tanto, se puede escribir un contexto, tilla funcin es una caja negra que correlaciona una lista de entradas con una lista
programa para crear diferentes objetos del tipo Formas_geomtricas. Cada objeto pue- de salidas (figura 9.5).
de tener un centro localizado en un punto distinto y un nmero diferente de lados. El pro- Por ejemplo, la suma puede considerarse una funcin con n entradas y slo una salida.
grama puede entonces calcular e imprimir el rea, el permetro y la ubicacin del centro para La funcin toma las n entradas, las suma y crea el resultado de la suma. Un lenguaje fun-
cada objeto. cional realiza lo siguiente:
En el diseo del lenguaje C++ se utilizaron tres principios: encapsulamiento, herencia y
polimorfismo. 1. Predefine una serie de funciones primitivas (atmicas) que puede usar cualquier pro-
gramador.
Encapsulamiento El encapsulamiento es la idea de ocultar los datos y algunas operacio~ 2. Permite al programador combinar funciones primitivas para crear funciones nuevas.
nes que pueden realizarse en los datos dentro del objeto. El usuario de objetos normalmen-
te no tiene acceso directo a los datos. En vez de ello, se accede a los datos a travs de una Por ejemplo, usted puede definir una funcin primitiva llamada primero que extrae el primer
interfaz (una llamada a una serie particular de operaciones). En otras palabras, el usuario sa~ elemento de una lista. Puede tener tambin una funcin llamada resto que extraiga todos los ele-
be qu se hace con los datos sin saber cmo se hace. mentos excepto el primero. Un programa puede definir una funcin que extrae el tercer elemen~
to de una lista al combinar estas dos funciones como se muestra en la figura 9.6.
Herencia En C++, como en la nahrraleza, un objeto puede heredar algo de otro objeto. A
este concepto se le conoce como herencia. Cuando se define una clase general, usted pue~
de definir una clase ms especfica que hereda algunas de las caractersticas de la clase ge~
neral, pero tambin tiene nuevas caractersticas. Por ejemplo, cuando un objeto de tipo
Formas_geomtricas se define, usted puede definir una clase llamada Rectngulos.
Los rectngulos son formas geomtricas con caractersticas adicionales. En C++ se permite
herencia mltiple. Una clase puede heredar algo de ms de una clase. n entradas m salidrts
Java Java se desarroll en Sun Microsystems, Inc. Se basa en C y en C++, pero algunas caracte~
Lista Resultado
rsticas de C++, como la herencia mltiple, se quitaron para hacer el lenguaje ms robusto.
Adems el lenguaje est totalmente orientado a clases. En C++ uno puede resolver un pro~
blema incluso sin definir una clase. En Java, cada elemento de datos pertenece a una clase. Tercero
Un programa en Java puede ya sea ser una aplicacin o un applet. Una aplicacin es un pro-
grama independiente completo que puede ejecutarse de manera independiente (como un
programa C++). Un applet, por otro lado, se incrusta en lenguaje HTM, se almacena en un ser- Figura 9.6 Extraccin del tercer elemento de una lista
.. Lenguajes de programacin 9.4 Categoras de lenguajes ..
Un lenguaje funcional tiene dos ventajas sobre un lenguaje de procedimiento: fOlnenta Un problema asociado con los lenguajes declarativos es que un programa es especfico
programacin modular y pennite al programador hacer nuevas funciones adems de las para un dominio particular porque la recopilacin de todos los hechos en un programa hace
tentes. Estos dos factores ayudan a un programador a crear programas grandes y menos que el programa se vuelva enorme. sta es la razn por la cual la programacin declarativa
pensas a errores a partir de programas ya probados. est limitada hasta ahora slo a campos especficos corno la inteligencia artificial.
Estudiamos brevemente LISP y Scheme como ejemplos de lenguajes funcionales.
Uno de los lenguajes declarativos famosos es Prolog (PROgramming in LOGic: programa-
LlSP LlSP (USt Programming) fue diseado por un equipo de investigadores del MIT a cin en lgica), desarrollado por A. Colmerauer en Francia en 1972. Un programa en Pro-
pios de la dcada de 1960. Es un lenguaje de programacin de procesamiento de listas en log est formado por hechos y reglas. Por ejemplo, los hechos anteriores sobre los seres
cual todo se considera una lista. humanos pueden exponerse como sigue:
humano (Johnl
Sc:heme El lenguaje LISP sufri de una carencia de estandarizacin. Despus de un tiempo, haba di-
ferentes versiones de LISP por todas partes; el estndar de facto es el desarrollado por el mortal (humano)
MIT a principios de la dcada de 1970, llamado Scherne.
El usuario puede entonces preguntar:
El lenguaje Scheme define un conjunto de funciones primitivas que resuelve problemas,
El nombre de la funcin y la lista de entradas a la funcin se colocan entre parntesis. El re- ? - mortal (John)
sultado es una lista de salida que puede usarse como la lista de entrada a otra funcin. Por
ejemplo, existe una funcin, car, que extrae el primer elemento de una lista. Hay una fun- y el programa le responder que s.
cin, llamada edr, que extrae el resto de los elementos de una lista excepto el primero. En
otras palabras usted tiene: Durante las ltimas dcadas, han aparecido algunos lenguajes nuevos que no pueden colo-
carse en las cuatro categoras que acabarnos de analizar. Algunos son una combinacin de
(car 2 3 7 8 11 17 2 O) ====> 2 dos o ms modelos y otros pertenecen a una tarea especfica. Los clasificamos bajo el rubro
(cdr 2 3 7 8 11 17 2 O) ====> 3 7 8 11 17 20 de lenguajes especiales.
Ahora puede combinar estas dos funciones para extraer el tercer elemento de cualquier lista. El HTML (lenguaje para marcado de ltipertexto) es un pseudolenguaje que incluye marcas
que sirven como sugerencias de formato y vnculos a otros archivos. Un archivo HTML es-
(car (cdr (cdr list))) t formado por texto y etiquetas. Una etiqueta aparece entre dos parntesis angulares y por
lo general viene en pares. Un archivo HTML (pgina) se guarda en el servidor y puede des-
Si usted aplica la-funcin anterior a 2 3 7 8 11 17 20,staextraee17debidoaque cargarse mediante un explorador. El explorador elimina las etiquetas y las interpreta como
el resultado del parntesis ms interior es 3 7 8 11 17 2 O. Esto se convierte en la en- sugerencias de formato o vnculos a otros archivos. Un lenguaje de marcado como el HTML
trada para el parntesis medio con el resultado 7 8 11 17 20. Esta lista ahora se vuel- le permite incrustar instrucciones de formato en el archivo mismo. Las instrucciones se al-
ve la entrada para la funcin car la cual extrae el primer elemento, 7. macenan con el texto. De esta manera, cualquier explorador puede leer las instrucciones y
dar formato al texto de acuerdo con la estacin de trabajo que se est usando.
LENGUAJES Un lenguaje declarativo utiliza el principio del razonamiento lgico para responder a las Uno podra preguntar: Por qu no se usan las capacidades de formato de los procesado-
DECLARATIVOS consult3. Se basa en la lgica formal definida por los matemticos griegos y desarrollada res de palabras para crear y guardar el texto con formato? La respuesta es que los distintos
(LGICOS) posteriormente en lo que se llama clculo de predicados de primer orden. procesadores de palabras utilizan tcnicas o procedimientos diferentes para dar formato al
El razonamiento lgico se basa en la deduccin. Se dan algunas instrucciones (hechos) texto. El HTML le permite usar slo caracteres ASCII tanto para el texto principal como pa-
que se supone son verdaderas; la lgica utiliza reglas rigurosas de razonamiento lgico pa- ra las instrucciones de fonnato. De esta manera, cada computadora puede recibir el docu-
ra deducir nuevas instrucciones (hechos). mento entero corno un documento ASCII. El texto principal son los datos y el explorador
puede usar las instrucciones .de formato para dar forma a los datos. Un programa HTML se
Por ejemplo, la famosa regla de deduccin en lgica es:
compone de dos partes: el encabezado y el cuerpo.
Si (A es igual a Bl y (B es igual a el, entonces (A es
igual a el Encabezado (Head) El encabezado es la primera parte que contiene el ttulo de la pgi-
na y otros parmetros que utilizar el explorador.
Usando esta regla y los dos hechos siguientes,
Hecho 1: Scrates es un ser humano ---- A es igual a B Cuerpo (Body) El contenido real de una pgina est en el cuerpo, el cual incluye el tex-
Hecho 2: Un humano es mortal ---- B es igual a e to y las etiquetas. Mientras que el texto es la informacin real contenida en una pgina, las
etiquetas definen la apariencia del documento. Cada etiqueta HTML es un nombre seguido
podernos deducir un nuevo hecho: por una lista opcional de atributos, encerrados entre parntesis angulares and.
Hecho 3: Scrates es mortal ---- A es igual a e
Etiquetas (Tags) El explorador torna una decisin respecto a la estructura del texto basa-
Los programadores deben estudiar el dominio de su terna (conocer todos los hechos en el do en las etiquetas, las cuales son marcas que se incrustan en el texto. Una etiqueta est en-
dominio) u obtener los hechos de expertos en el campo. Adems los programadores deben cerrada entre dos parntesis angulares y usualmente viene por pares. Una etiqueta puede tener
ser expertos en lgica para definir cuidadosamente las reglas. Luego el programa puede de- una lista de atributos, cada uno de los cuales puede estar seguido por un signo igual y un va-
ducir y crear nuevos hechos. lor asociado con el atributo. La tabla 9.1 muestra algunas de las etiquetas ms comunes.
.. Lenguajes de programacin 9.5 Un lenguaje procedural: e
DE DATOS Un tipo de dato define un conjunto de valores y una serie de operaciones que pueden apli-
<HTML>
carse a aquellos valores. El conjunto de valores para cada tipo se conoce como el dominio
para el tipo. Por ejemplo, un interruptor de luz puede compararse con un tipo de computa-
<HEAD>
dora. Tiene un conjunto de dos valores: encendido y apagado. Dado que el dominio de un
<TITLE> Documento de muestra </TITLE> interruptor de luz consiste en slo estos dos valores, su tamao es dos. Slo hay dos opera-
<!HEAD> ciones que pueden aplicarse a un interruptor de luz: encender y apagar.
<BODY> e contiene tres tipos estndar: int (abreviatura para enteros), char (abreviatura para ca~
sta es la imagen de un libro: racteres), f 1 oa t (abreviatura para punto flotante). Los tipos estndar son atmicos: no pueden
<IMG SRC=/tlmgenes!librol.gif/t ALIGN=MIDDLE> dividirse. Tambin sirven como los bloques de construccin bsicos para los tipos derivados.
Los tipos derivados son estructuras complejas que se construyen usando los tipos estndar.
</BODY>
Los tipos derivados son: apuntador, tipo enumerado, unin, arreglo y estructura.
<!HTML>
Un tipo in t (integer: entero) es un nmero sin una parte fraccionaria. Tambin se conoce co-
Programa 9.4 Programa HTML
mo un nmero integral. e soporta tres tamaos distintos del tipo de datos entero: short
int, int y long int. Un short int tambin puede referirse como short y a long int
tambin se le puede llamar long. Ya definimos un entero en el captulo 3; las denominacio-
nes short y long definen el nmero de bytes asignados para un entero por el compilador.
PEoRL El lenguaje prctico de extraccin e infonnes (PERL: Practical Extraction and Report Lan-
guage) es un lenguaje de alto nivel con una sintaxis similar al lenguaje e pero ms eficien- El segundo tipo es char (character: carcter). Aunque pensamos en los caracteres como si
te. La fuerza de Ped radica en su uso bien diseado de expresiones regulares que permiten fueran letras del alfabeto, el lenguaje e tiene otra definicin. Para e, un carcter es cualquier
al programador hacer un anlisis sintctico de una cadena de caracteres en sus componentes valor que puede representarse en el alfabeto de la computadora. e utiliza el alfabeto del e-
y extraer la informacin requerida. digo norteamericano de estndares para intercambio de infoanacin (ASeII, que se pronun-
cia as-qui). Los caracteres ASCII se presentan en foana de tabla en el apndice A.
variables dor establece el primer valor que la variable contendr. Para inicializar una variable cuando
VARIABLES Las ~ariables son nombres de localidades de memoria. Como se vio en el captulo 5, sta es definida el nombre es seguido por el operador de asignacin (el signo igual) y luego
localidad de memoria (o palabra) en una computadora tiene una direccin. Aunque la por el inicializador. El formato de inicializacin simple es:
putadora utiliza las direcciones internamente es muy inconveniente para el programador
float pr,e'ici>';tZ\~'3'~' 45 ;
direcciones debido a que el programador no sabe dnde se almacenan el programa y los
tos en la memoria. Los nombres como un sustituto de las direcciones, liberan al Pf()grLllmL';
dor de pensar en el nivel que se ejecuta el programa. Un programador puede usar Las constantes son valores de datos que no pueden cambiarse durante la ejecucin de un
variable, tal como puntaje para almacenar el valor entero de una calificacin recibida programa. Por ejemplo, tal vez un programador necesite usar el valor de pi (3.14) varias ve-
una prueba (97). La computadora puede usar la localidad de memoria 245,876 para ilHIlac,. ces. Es muy conveniente definir una constante al principio de un programa y usarla. En al-
nar este valor. Cuando se hace una referencia a puntaj e durante la ejecucin del un).,.,.,. < gunas ocasiones el valor puede cambiar, pero no cada vez que se ejecute el programa. Por
ma, la computadora sabe que esto significa la localidad 245,876. La figura 9.7 muestra ejemplo, el valor de gravamen puede cambiar cada ao, pero se fija durante el ao. Un pro-
concepto de una variable. gramador puede definir una constante para el valor de gravamen y revisar cada ao para ver
si ste ha cambiado.
Las constantes pueden aparecer en un programa en una de tres formas: constante literal,
constante nombrada o constante simblica.
literal Una constante literal es un valor sin nombrar que se usa en un programa tal cual es. Por
ejemplo, a continuacin'se muestra cmo se utiliza una constante literal en una instruccin
en C. El valor 2 es una constante literal. Las variables son longitud, ancho y circunferencia.
Una constante nombrada es un valor que se almacena en la memoria; usted no quiere que
el programa la cambie. Enseguida se muestra cmo el lenguaje C crea una constante nom-
brada:
Programa Memoria const pi "" 3 .14, ,',}
Declaracin C requiere que una variable se declare y defina antes de usarla. Una declaracin se usa para
Al igual que las variables, las constantes tienen un tipo. La mayora de los lenguajes de pro-
y definicin nombrar una variable. Las definiciones se utilizan para crear la variable y asignar una loca-
gramacin utilizan constantes enteras, constantes de punto flotante, constantes de carcter y
de variables lidad de memoria a ella.
constante de cadena. Por ejemplo, el cdigo siguiente muestra diferentes constantes en el
Cuando usted crea una variable la declaracin le da un nombre simblico y la definicin
lenguaje C. Las literales de carcter se almacenan en comillas simples; las literales de cade-
reserva memoria para ella. Una vez definidas, las variables se utilizan para alojar los datos
na estn entre comillas dobles. Observe que el texto encerrado entre /* y */ es un comenta-
que requiere el programa para su operacin.
rio que ignora el compilador.
El tipo de variable puede ser cualquiera de los tipos de datos, como char, int o float.
Para crear una variable se especifica el tipo y el nombre. Por ejemplo, lo siguiente puede 23 /* Liter~l de entero */
usarse para declarar y definir una variable llamada precio en C. El nombre de la variable 23.12 /* Literal efe punto flotante */
es precio y su tipo es float (nmero de punto flotante). 'A' /* Litral de carcter */
float preciq'
"Hola" 1* Literal de cadena */
...
-
.. lenguajes de programacin 9.5 Un lenguaje procedural: e ..
ENTRADA Casi todos los programas necesitan leer y/o escribir datos. Estas operaciones pueden ser bas- Operador Definicin Ejempl" < >
tante complejas, en especial cuando se leen o escriben archivos grandes. La mayora de los
Y SALIDA < Menor que Numl < 5
lenguajes de programacin utilizan una funcin predefinida para entrada y salida.
<= Menor o igual que Numl <= 5
> Mayor que Num2 > 3
Entrada La introduccin de los datos se da ya sea por una instruccin o por una funcin predefinida. >= Mayor o igual que Num2 >= 3
El lenguaje e tiene varias funciones de entrada. Por ejemplo, la funcin scanf lee datos des- Igual que Numl == Num2
de el teclado y los almacena en una variable. Vase el siguiente ejemplo: No igual que Numl != Num2
Cuando el programa encuentra esta instruccin, espera a que el usuario teclee un entero. Lue- Operadores lgicos Los operadores lgicos combinan valores lgicos (verdadero o fal-
go almacena el valor en la variable numo La %d indica al programa que espere un entero. so) para obtener un nuevo valor. El lenguaje e utiliza tres operadores lgicos como se mues-
tra en la tabla 9.4.
La salida de los datos se da ya sea por una instruccin o por una funcin predefinida. El len-
Salida
guaje e tiene varias funciones de salida. Por ejemplo, la funcin printf despliega una cade- p~rdor Definicin Ejemplo '.
, .' ....
na en el monitor. El programador puede incluir el valor de una variable o variables como parte
de una cadena. Enseguida aparece el valor de una variable al final de una cadena literal.
! NO ! (Numl < Num2)
&& y (Num1 < 5) && (Num2 > 10)
printf ("El :Yl.1pr del :'n;~~ero es: %d" I nUIn ) i
11 O (Numl < 5) II (Num2 > 10)
Tabla 9.4 Operadores lgicos
EXPRESIONES U na expresin es una secuencia de operandos y operadores que se reduce a un solo valor.
Por ejemplo, la siguiente expresin tiene un valor de 10.
Operadores de asignacin Un operador de asignacin almacena un valor en una va-
2 * 5 riable. El lenguaje e define varios operadores de asignacin, algunos de los cuales se mues-
tran en la tabla 9.5.
Operador Un operador es un elemento sintctico de un lenguaje especfico que requiere que se reali-
ce una accin. Los operadores ms conocidos se tomaron de las matemticas. Por ejemplo, '., '
Operador Ejemplo Significado '.
multiplicar (*) es un operador. Indica que dos nmeros se van a multiplicar. Todos los len-,
= num = 5 ; Almacena 5 en la variable num
guajes tienen operadores y su uso se especifica rigurosamente en la sintaxis, o reglas, del
+= num += 5 ; Lo mismo que num = nUID + 5
lenguaje.
- num - 5 ; Lo mismo que num = num - 5
*= num *= 5 ; Lo mismo que num = nUID * 5
Operadores aritmticos El lenguaje e define varios operadores aritmticos, algunos
1= nUID 1= 5 ; Lo mismo que num = nUID I 5
de los cuales se muestran en la tabla 9.2.
%= nUID %= S ; Lo mismo que nUID = num % 5
Instrucciones Una expresin se convierte en instruccin al colocar un punto y coma (;) despus de ella.
Operadores relacionales Los operadores relacionales comparan los datos para ver si un
de expresin Cuando e ve el punto y coma evala la expresin. Si hay una asignacin involucrada (exis-
valor es mayor que, menor que o igual que otro valor. El resultado de aplicar operadores r~ tencia de un operador de asignacin, un ++ o --), el valor se almacena en la variable. Si no
lacionales es los valores lgicos verdadero (tme) o falso (jalse). El lenguaje e utiliza seIS hay asignacin el valor se descarta. A continuacin se presentan algunos ejemplos de ins~
operadores relacionales (tabla 9.3). trucciones de expresin:
lenguajes de programacin 9.5 Un lenguaje procedural: e Ea
---l Instruccin
de expresin
Instruccin
compuesta
l Instruccin
de seleccin
Instruccin 1-
---1 Instruccin
etiquetada
---l Instruccin
de salto
Figura 9.9 Efecto secundario de una funcin
Figura 9.8 Instrucciones
archivo, o el cambio del valor de una variable en la funcin que llama. El concepto de fun-
"a++ cin aparece en la figura 9.9.
b
e = * Las funciones en e deben tanto declararse como definirse. La declaracin de funciones se
realiza con una declaracin prototipo. Usted utiliza la funcin al llamarla. La definicin de
Una instruccin compuesta es una unidad de cdigo que consiste en cero o ms instruccio- funcin contiene el cdigo requerido para completar la tarea. La figura 9.10 muestra las in-
Instrucciones nes. Tambin se conoce como bloque. La instruccin compuesta permite a un grupo de ins- terrelaciones entre estos componentes de funcin. Observe que el nombre de funcin se uti-
compuestas trucciones volverse una sola entidad. Una instruccin compuesta se compone de una llave liza tres veces: cuando se declara la funcin, cuando se llama y cuando se defme.
de apertura y una seccin de instrucciones opcional, seguida por un corchete de cierre. En-
seguida se muestra la composicin de una instruccin compuesta.
U.,1"in icin La definicin de funcin contiene el cdigo para una funcin. La definicin se compone de
funcin dos partes: el encabezado de funcin y el cuerpo de funcin, el cual es una instruccin com-
{ puesta.
x= 1;
y = 20:
Encabezado de funcin Un encabezado de funcin consiste en tres partes: el tipo de re-
}
greso, el nombre de funcin y la lista de parmetros formales.
EN e, una subrutina se conoce como funcin. Un programa en e est formado por una o Cuerpo de funcin El cuerpo de funcin contiene las declaraciones e instrucciones para
FUNCIONES la funcin. El cuerpo inicia con definiciones locales que especifican las variables requeridas
ms funciones, una y slo una de las cuales debe llamarse main (principal). La ejecucin
del programa siempre inicia y termina con main, pero esta funcin puede llamar a otras fun~ por la funcin. Despus de las declaraciones locales, se codifican las instrucciones de fun-
ciones para que realicen tareas especiales. cin, terminando con una instruccin return. Si un tipo de retorno de funcin es void
Una funcin en C (incluyendo a main) es un mdulo independiente que se llama para que puede escribirse sin una instruccin return.
realice una tarea especfica. La funcin main es llamada por el sistema operativo; main a su
vez llama a otras funciones. Cuando main se ha completado el control regresa al sistema de funcin Una llamada de funcin se utiliza para llamar a la funcin. La llamada contiene los par-
operativo. metros reales, los cuales identifican los valores que se van a enviar a la funcin llamada.
En general, el propsito de una funcin es recibir cero o ms piezas de datos, realizar stos corresponden a los parmetros formales de la funcin en tipo y orden en la lista de pa-
operaciones en ellos y devolver a lo ms una pieza de datos. Al mismo tiempo, una funcin rmetros. Si hay varios parmetros actuales, stos se separan por comas.
puede tener un efecto secundario, el cual es una accin que resulta en un cambio de estado
del programa. Si hay un efecto secundario, ste ocurre cuando la funcin se est ejecutando
y antes de que regrese la funcin. El efecto secundario puede implicar la aceptacin de da~
de parmetros En C, se puede pasar un parmetro a una funcin de dos maneras: paso por valor ypaso por
referencia.
tos desde fuera del programa, el envo de datos fuera del programa hacia el monitor o a un
.. Lenguajes de programacin 9.5 Un lenguaje procedural: e ..
instruccionl
int main {voidJ
{
e 1 se
La llamada se
la seccin de jrIstnJCeln:""
instruccion2
switch (expresin)
instruccion
REPETICIN En el captulo 8 se vio que se necesitan instrucciones de repeticin. El lenguaje C define tres
if-else Para implementar una seleccin de dos sentidos en C, se puede usar la instruccin if~ tipos de instrucciones de ciclo: while, for y do-while.
el se. La figura 9.11 muestra el flujo lgico para if-else. La expresin puede ser cua1~
quier expresin C. Despus de que sta se ha evaluado, si su valor es verdadero (no O) se Cid O while La instruccin de repeticin principal en e1lenguaje e es el ciclo while (figura 9.13). Un ci-
ejecuta instruccionl; de lo contrario, se ejecuta la instruccion2. Es imposible que clo while es un ciclo preprobado. Revisa el valor de una expresin de prueba. Si el valor es
lenguajes de programacin
9.6 Trminos clave .. ii
i::
while I expresin
do
{
}while ( expresin );
Salida
a. Diagrama de flujo b. Lenguaje C
a. Diagrama de flujo b. Lenguaje e
Figura 9.15 Ciclo do-while
Figura 9.13 Ciclo while
Cido do-while El ciclo do-while es tambin un ciclo controlado por eventos; no obstante, a diferencia del
ciclo while es un ciclo post prueba (figura 9.15). El ciclo realiza una iteracin y prueba
el valor de una expresin. Si es falso, tennina. Si es verdadero, realiza una iteracin ms y
I prueba de nuevo.
for ( expr1
expr2
expr3 TIPOS DE DATOS Adems de los datos simples estudiados anteriormente, el lenguaje C tambin permite tipos
Accin
{I Accin I DER.IVADOS de datos derivados: arreglos, apuntadores, uniones y estructuras. Estudiaremos algunos de
estos tipos de datos en el capitulo 11 sobre la estructura de datos.
Accin I Accin I El lenguaje C soporta la recursividad (analizada en el captulo 8). Una funcin en C puede
llamarse a s misma.
Accin I Accin I
TRMINOS CLAVE
Salida constante simblica FORTRAN
'~cblivoejecutable cuerpo de funcin funcin
a. Diagrama de flujo b. Lenguaje e
archlvo fuente declaracin herencia
Figura 9.14 Ciclo for bloque declaracin de funcin HTML
~argador definicin identificador
definicin de funcin inicializador
verdadero (no es cero), pasa por una iteracin del ciclo y prueba de nuevo el valor. El ciclo ciclo do-while directiva de preprocesador instruccin
whi le se considera un ciclo controlado por eventos. El ciclo contina en iteracin hasta que editor de textos instruccin compuesta
ocurre un evento que cambia el valor de la expresin de prueba de verdadero a falso. efecto secundario instruccin de expresin
encapsulamiento instruccin if-else
encabezado de funcin instruccin swi tch
Ciclo for El ciclo for tambin es un ciclo de preprueba (figura 9.14). Sin embargo, a diferencia del
compilador ensamblador Java
ciclo while, es un ciclo controlado por el contador. Un contador se fija en un valor inicial
COnstante entero lenguaje e
y aumenta (o disminuye) en cada iteracin. El ciclo se termina cuando el valor del contador
constante literal expresin lenguaje C++
coincide con un valor predetenninado.
constante nombrada float lenguaje declarativo
.mi lenguajes de programacin
9.8 Prctica ..
i
~
la lenguajes de programacin 9.8 Prctica 111
37. El compilador consiste de un ____ y un _ _ __ 46. , el primer lenguaje de alto nivel, an es Un ejemplo de un lenguaje ____ es Prolog. 62. Investigue y encuentre el formato de la instruccin com-
a. preprocesador; cargador pular en las comunidades cientficas y de ingeniera. a. procedural puesta en FORTRAN. COBOL Y Pascal. Comprelo y
b. editor de texto; cargador a. FORTRAN b. funcional contrstelo con el formato definido para el lenguaje e en
c. preprocesador; traductor b. C++ c. declarativo este captulo. Utilice una tabla para la comparacin.
d. ligador; preprocesador c. C d. orientado a objetos
d. COBOL 63. Investigue y encuentre el formato de las instrucciones Ite-
38. es el cdigo en lenguaje de mquina. HTML, PERl Y SQL caen dentro de la clasificacin de rativas (ciclo for, ciclo while, ciclo do-while, etc.)
a. Una unidad de traduccin 47. es un programa diseado para ensear lenguajes _ _ __ en FORTRAN, COBOL Y PascaL Comprelo y contrs-
b. Un mdulo objeto gramacin a los novatos que enfatiza el mtodo tela con el formato definido para el lenguaje C en este ca-
a. modernos
c. Un archivo fuente gramacin estruchIrado. ptulo. Utilice una tabla para la comparacin.
b. especiales
d. Un subprograma
a. C++ c. declarativos
39. Un programa de sistema operativo llamado _ _ __ b. C d. orientados a objetos 64. Investigue y encuentre el fonnato de las instrucciones de
lleva el programa ligador en la memoria. c. Pascal decisin (it y swi tch) en FORTRAN. COBOL Y Pas-
d. Scheme Un tipo de datos estndar en el lenguaje C _ _ __ cal. Comprelo y contrstelo con el formato definido pa-
a. cagardor
b. vinculador a. int ra el lenguaje C en este captulo. Utilice una tabla para la
48. El sistema operativo UNIX est escrito en un lerlguaje. b. char comparacin.
c. traductor
llamado _ __ c. float
d. procesador
a. C++ d. todos los anteriores 65. Investigue y encuentre la instruccin de salto (por ejem-
40. Un lenguaje _ _ _ _ utiliza el mtodo tradicional pa- b. C plo, goto y continue) en FORTRAN, COBOL Y Pas-
fa programacin y tambin se conoce como lenguaje El tipo de datos estndar _ _ _ _ describe un nmero cal. Comprela y contrstela con el fonnato definido para
c. Pascal
imperativo. d. LISP
con una parte fraccionaria. el lenguaje e en este captulo. Utilice una tabla para la
a. procedural 3. int comparacin.
b. funcional 49. Un lenguaje procedural muy popular en el DaD b. char
c. declarativo c. float 66. Investigue y encuentre cmo se manejan las funciones en
d. orientado a objetos a. Ada d. todos los anteriores FORTRAN. COBOL Y Pascal. Comprelas y contrste-
b. Java las con las funciones definidas para el lenguaje C en es-
41. FORTRAN es un lenguaje _ _ __ El tipo de datos estndar ____ describe un nmero
c. C++ te captulo. Utilice una tabla para la comparacin.
a. procedural sin una parte fraccionaria.
d. Scheme
b. funcional 3. int 67. Investigue y encuentre si la recursividad est soportada
c. declarativo 50. Un lenguaje popular orientado a objetos es _ _ __ b. char en FORTRAN. COBOL Y Pascal.
d. orientado a objetos c. float
a. FORTRAN
d. todos los anteriores 68. Identifique cada uno de los siguientes identificadores en
42. Pascal es un lenguaje _ _ __ b. COBOL
a. procedural c. C++
e como vlidos o no vlidos. Justifique su respuesta.
El tipo de datos estndar describe cualquier
b. funcional d. LISP valor que pueda representarse en el alfabeto de la com- a. 2AB
c. declarativo putadora. b. A2B
51. En C++. la(el)____ es ocultar los datos y las
d. orientado a objetos
raciones al usuario. a. int c. AC
43. C++ es un lenguaje a. encapsulamiento b. char
d. 999
a. procedural b. herencia c. float
b. funcional c. polimorfismo d. todos los anteriores 69. Declare y defina las siguientes variables en el lenguaje C:
c. declarativo d. modularidad
d. orientado a objetos 3. Una variable int llamada i.
52. Un programa ____ puede ser una aplicacin o b. Una variable float llamada f.
44. LISP es un lenguaje
applet.
a. procedural Investigue y encuentre los operadores aritmticos en c. Una variable char llamada c.
b. funcional a. FORTRAN FORTRAN, COBOL Y Pascal. Comprelos y contrs-
c. declarativo b. C++ telas con los operadores aritmticos definidos para el 70. Repita el ejercicio 69 pero inicialice cada variable con
d. orientado a objetos c. C lenguaje C en este captulo. Utilice una tabla para la un valor apropiado.
d. Java comparacin.
45. es un lenguaje comn en el mundo de los ne- 71. En el lenguaje e, muestre cmo leer dos enteros desde
gocios. 53. LISP y Scbeme son lenguajes _ _ __ Investigue y encuentre los operadores relacionales en el teclado usando slo una instruccin.
a. FORTRAN a. procedurales FORTRAN, COBOL Y Pascal. Comprelos y contrs-
b. C++ b. funcionales telos con los operadores aritmticos definidos para el 72. En el lenguaje C, muestre cmo imprimir el valor de
c. C c. declarativos lenguaje C en este captulo. Utilice una tabla para la dos variables de nmeros enteros usando slo una ins-
d. COBOL d. orientados a objetos comparacin. truccin.
ID lenguajes de programacin
73. Escriba las siguientes instrucciones en lenguaje C: 74. Escriba un ciclo f or en e para imprimir el mensaje
a. Multiplique el valor de la variable x por el valor de "Hola mundo!" diez veces.
la variable y y almacene el resultado en la variable z. 75. Repita el ejercicio 74 utilizando un ciclo while.
b. Aumente el valor de la variable x. 76. Repita el ejercicio 74 utilizando un ciclo do-while.
c. Disminuya el valor de la variable y. ',e ~.
enlerla
77. Escriba una instruccin en Scheme para hacer una nue~
d. Compare el valor de las variables x y y para probar va lista aparte de la lista existente que contenga slo el
una igualdad, tercer y el cuarto elementos.
e software
El proceso de desarrollo comienza con la fase de anlisis, la cual muestra qu debe hacer el
10.1 CICLO DE VIDA DEL SOfTWARE paquete. En esta fase, el analista de sistemas define los requisitos que especifican lo que el
sistema propuesto va a lograr. Los requisitos por lo general se establecen en los trminos que
Un concepto fundamental en la ingeniera de software es el ciclo de vida del el usuario comprende. Hay cuatro pasos en la fase de anlisis: definicin del usuario, defini-
El software, al igual que muchos otros productos pasa por un ciclo de fases rel)etiti" cin de las necesidades, definicin de los requisitos y definicin de los mtodos.
(figura 10.1).
El software primero se desarrolla por un grupo de desarrolladores/programadores. Un paquete de software puede disearse para un usuario genrico o para un usuario especfi-
general, est en uso durante algn tiempo antes de que se requiera hacerle ill()dific,aci'Dt co. Por ejemplo, un paquete de contabilidad puede crearse para que lo utilice cualquier em-
Las modificaciones a menudo son necesarias debido a errores encontrados en el sof'tware presa. Por otra parte, un paquete bancario personalizado puede ser creado para un banco
cambios en las nonnas o leyes, o a cambios en la compaa misma. El software debe especfico. El usuario del paquete debe definirse con claridad.
, ficarse antes para su uso posterior. Estos dos pasos, usar y modificar, continan hasta
software se vuelve obsoleto. Por "obsoleto" queremos decir que el software pierde su !finici,n de Despus de que se ha identificado al usuario, los analistas definen claramente las necesida-
debido a su ineficiencia, la obsolescencia del lenguaje, cambios importantes en la necesidades des. En este paso, la mejor respuesta viene del usuario. El usuario, o el representante del mis-
u otros factores. Algunos ejemplos de desarrollos de software que normalmente pasan mo, define con claridad sus expectativas del paquete.
te ciclo son los sistemas de registro de estudiantes, los sistemas de facturacin y los
de contabilidad. efinid,n de Con base en las necesidades del usuario, el analista puede definir con precisin los requisitos
El proceso de desarrollo en el ciclo de vida del software implica cuatro fases: anlisis, requisitos para el sistema. Por ejemplo, si un paquete va a imprimir cheques al final del mes para cada
sea, implementacin y pruebas. La figura 10.2 muestra estas fases como parte del empleado, qu nivel de seguridad y precisin debe emplearse?
de desarrollo.
Finalmente, despus de que se definen los requisitos en trminos claros, el analista puede ele-
gir los mtodos apropiados para cumplir estos requisitos.
( INICIO La fase de diseo define cmo lograr el sistema lo que se defini en la fase de anlisis. En
la fase de diseo, se deternlnan los sistemas y el diseo de archivos y/o bases de datos se
Desarrollo
completa.
del sistema
I Actualmente la fase de diseo utiliza un principio bien establecido llamado modularidad.
-( Obsoleto? S Todo el paquete se divide en pequeos mdulos. Cada mdulo se disea, se prueba y se vin-
cula a otros mdulos a travs de un programa principal. La modularidad se estudia posterior-
Uso del La fase de diseo utiliza varias herramientas, siendo la ms comn un diagrama de estructu-
sistema
ra (analizada en el captulo 8). Un diagrama de estructura muestra cmo dividir un paquete
en pasos lgicos; cada paso es un mdulo independiente. El diagrama de estructura tambin
Modificacin muestra la interaccin entre todas las partes (mdulos).
del sistema
FASE DE PRUEBA Una vez que los programas se han escrito, deben probarse. La fase de prueba puede ser
tediosa y consumir parte del tiempo del desarrollo del programa. Los programadores
completamente responsables de probar sus programas. En los proyectos de desarrollo 1_ Anlisis
des, con frecuencia hay especialistas llamados ingenieros de pruebas quienes son responsa'
Diseo
bIes de probar el sistema como un todo, es decir, de hacer pruebas para comprobar que
los programas trabajan en conjunto.
Hay dos tipos de pruebas: caja negra y caja blanca. La prueba de caja negra es reilliZilda' Implementacin
por el ingeniero de pruebas del sistema y por el usuario. Las pruebas de caja blanca
ponsabilidad del programador.
Pruebas
Pruebas de Las pruebas de caja negra reciben su nombre del concepto de probar un programa sin
caja negra ber qu hay dentro y sin saber cmo funciona. En otras palabras, el programa es como
caja negra en la que usted no puede ver. Figura 10.3 Modelo de cascada
Dicho en forma simple, los planes de pruebas de caja negra se desarrollan considelcan,lo
slo los requisitos. Por esta razn es muy importante tener un buen conjunto de requisitos
flnidos. El ingeniero de pruebas utiliza estos requisitos, su conocimiento en el desarrollo
sistemas y el entorno de trabajo del usuario para crear un plan de pruebas. Este plan se lisis de todo el proyecto debe_ completarse antes de que su fase de diseo se inicie. La fase de
zar despus cuando el sistema se pruebe como un todo. Usted debe pedir que le mUleS!Ien diseo completa debe terminarse antes de que la fase de implementacin pueda iniciarse.
estos planes de pruebas antes de escribir su programa. Hay ventajas y desventajas en el modelo de cascada. Una ventaja es que cada fase se com-
pleta antes de que comience la siguiente. El grupo que trabaja en la fase de diseo, por ejem-
Pruebas de Mientras que las pruebas de caja negra suponen que no se sabe nada acerca del pr,oll'canla,Ia; plo, sabe exactamente qu hacer debido a que se ha completado la fase de anlisis. La fase de
caja blanca pruebas de caja blanca asumen que usted sabe todo acerca del programa. En este caso, pruebas puede evaluar el paquete completo ya que todo el proyecto est listo.
programa es como una casa de vidrio en la cual todo es visible. Una desventaja del modelo de cascada es la dificultad para localizar un problema. Todo el
Las pruebas de caja blanca son responsabilidad del programador, quien sabe eXi,ctament,'. proceso debe investigarse.
qu sucede dentro del programa. Usted debe asegurarse de que todas las instrucciones
bIes y todas las situaciones posibles se hayan probado. Y sta no es una tarea simple)
La experiencia ayudar al programador a disear un buen plan de pruebas, pero algo En el modelo incremental, el proceso se desarrolla en una serie de pasos. El grupo de soft-
puede hacer desde el principio es adquirir el hbito de escribir planes de prueba. Comenzar. ware primero completa una versin simplificada de todo el paquete. La versin representa el
su plan de pruebas cuando est en la etapa de diseo. A medida que construya su dlilgrama 01:.< paquete completo pero no incluye los detalles.
estructura, se preguntar a s mismo qu situaciones necesita probar, especialmente las Esta primera versin por lo general consiste slo en los mdulos principales con llamadas
les, y las anotar de inmediato, pues puede suceder que no las recuerde una hora ms tarde. a submdulos vaCos. Por ejemplo, si el paquete tiene diez submdulos, el mdulo principal
Cuando el programador escribe sus diagramas de flujo o pseudocdigo, debe re,riSirrlo,i, llama a cada uno de ellos, con cada submdulo devolviendo slo un mensaje indicando que
poniendo atencin a casos de prueba y tomar nota de los casos que necesita. se le llam.
Al llegar el momento de construir sus casos de prueba, debe revisar sus notas y or:anizru:,:: En la segunda versin, se completan uno o ms submdulos, mientras que el resto quedan
las en conjuntos lgicos. Excepto por programas tipo estudiante muy simples, un conjunto de sin terminar (slo se comunican). El paquete se prueba de nuevo para demostrar que el m-
datos de prueba no validar completamente un programa. Para proyectos de desarrollo a dulo principal puede utilizar estos submdulos sin problemas. Si hay un problema aqu, el de-
escala, tal vez sea necesario ejecutar 20, 30 o ms casos de prueba para validar un pflOIl'ama, sarrollador sabe que el problema es con estos submdulos y no con el mdulo principal. No
Finalmente, cuando realiza las pruebas, pensar en ms casos de prueba. De nuevO, se aaden ms submdulos hasta que el paquete trabaja en forma apropiada.
anotar e incorporar a su plan de pruebas. Despus de que se ha terminado el programa Este proceso contina hasta que todos los submdulos se aaden. La figura 1004 muestra
ste est en produccin, el programador necesitar nuevamente los planes de prueba el concepto del modelo incremental.
modifique el programa.
Las funciones tienen un acoplamiento de sello si los parmetros son objetos compuestos co~ En un lugar El corolario es que una cosa que realiza una funcin debe realizarse en un so-
Acoplamiento lo lugar. Si el cdigo para un proceso se esparce en varias partes distintas del programa y que
IDO arreglos o estructuras. El acoplamiento de sello no es malo y con frecuencia es necesariO.
de sello no guardan ninguna relacin, es muy difcil hacer cambios. Por lo tanto, todo el procesamien-
El peligro con el acoplamiento de sello es que a menudo es muy fcil enviar una estructura
cuando no se requieren todos los datos de la estructura. Cuando se envan datos adicionales, to para una tarea debe colocarse en una funcin y, de ser necesario, en sus subfunciones.
usted comienza a abrirle la puerta a errores y efectos secundarios indeseables.
Un mdulo con cohesin secuencial contiene dos o ms tareas relacionadas que se vinculan
Acoplamiento El acoplamiento de control es el paso de banderas que pueden utilizarse para dirigir el flujo estrechamente, por lo general con la salida de una que fluye como entrada para la otra. Un
de control lgico de una funcin. Es muy parecido al acoplamiento de datos con la excepcin de que en ejemplo de cohesin secuencial son los clculos para una venta. El diseo para esta funcin
vez de datos se pasa una bandera. Cuando se usa adecuadamente, el acoplamiento de control podra ser el siguiente:
es un mtodo de comunicacin entre dos funciones necesario y vlido. No obstante, al igual
que el acoplamiento de sello, puede hacerse un uso incorrecto del mismo. Si se usa correcta~
1. Determinar los precios de los artculos
mente, comunica 'el estado: Se lleg al final del archivo. Se encontr el valor de bsqueda. 2. Sumar los artculos
Por lo general un uso pobre de las banderas es una indicacin de un diseo pobre del pro~ 3. Calcular el impuesto sobre las ventas
grama, tal es el caso de un proceso que se divide entre dos o ms funciones independientes. Las
4. Calcular el total
banderas utilizadas para la comunicacin horizontal entre varias funciones en el diagrama de
estructura con frecuencia son una indicacin de un diseo pobre. Las banderas de accin, con~ En este ejemplo, el primer proceso multiplica la cantidad adquirida por el precio. El proceso
trariamente a las banderas de estado, que requieren que la funcin receptora realice algn pro~ que calcula la suma de los artCulos adquiridos utiliza los precios determinados. Esta suma
cesamiento especial tambin son sumamente sospechosas. Un ejemplo de bandera de accin es luego se usa para calcular el impuesto sobre las ventas, el cual finalmente se suma al resulta-
aquel en que se rechaza la solicitud de compra de un cliente, en lugar de simplemente reportar do para obtener el total de la venta. En cada caso, la salida de un proceso se utiliz como la
que se ha excedido el limite de crdito o que no se recibi ningn pago en el ltimo mes. entrada del siguiente proceso.
.. Ingeniera de software 10.4 Calidad ..
Aunque es bastante comn encontrar el cdigo detallado para estos procesos comt,in"dos Cada uno de estos atributos de buen software recae de lleno en el diseador y programador
en una sola funcin, esto vuelve a la funcin ms compleja y menos reutilizable. La del sistema. Observe que colocamos en el programador la carga de satisfacer no slo los re-
dad de reutilizacin es un motivo de preocupacin si ocurren los mismos clculos o "'lo",~ quisitos explcitos del usuario sino tambin sus necesidades implcitas. Con frecuencia los
similares en distintas partes de un programa. usuarios no saben completamente qu necesitan. Cuando esto ocurre, es tarea del programa-
dor determinar sus requisitos implcitos, los cuales estn ocultos en el fondo. sta es una ta-
Cohesin La cohesin de comunicacin combina procesos que trabajan en los mismos datos. Es rea verdaderamente formidable.
ral tener una cohesin de comunicacin en los mdulos superiores en un programa, pero Pero el software de calidad no es slo un concepto vago, Si quiere alcanzarlo, tendr que
de comunicacin ser capaz de medirlo. Siempre que sea posible, estas mediciones pueden ser cuantitativas; es
ted nunca debe encontrarla en el nivel primario. Por ejemplo, considere una funcin que
un archivo de inventario, imprime el estado actual de las partes y luego lo revisa para ver decir, deben ser susceptibles de ser medidas numricamente. Por ejemplo, si una organiza-
alguna parte necesita ordenarse. cip. es seria respecto a la calidad, debe ser capaz de indicarle el nmero de errores (bugs) por
Los primeros tres niveles de cohesin se consideran principios de programacin bien es~ cada mil lneas de cdigo y el tiempo promedio entre las fallas de cada sistema de software
tructurados. Sin embargo, ms all de este punto, la facilidad de comprensin e im!p1ementa~ que mantiene. stas son estadsticas de medicin.
cin, la capacidad de mantenimiento y la precisin comienzan a caer rpidamente. Por otra parte, algunas de las mediciones pueden ser cualitativas, lo cual significa que no
siguientes niveles deben utilizarse slo en los niveles ms altos de un diagrama de estru(:tura. pueden medirse numricamente. La flexibilidad y la capacidad de pruebas son ejemplos de
y luego casi nunca. mediciones de software cualitativas. Esto no significa que no puedan medirse, sino ms bien
que se basan en el juicio de una persona para evaluar la calidad de un sistema.
Cohesin El cuarto nivel, la cohesin de procedimiento, combina procesos no relacionados que
de procedimiento vinculados mediante un flujo de control. (Esto difiere de la cohesin secuencial, donde La calidad del software puede dividirse en tres mediciones generales: operabilidad, capaci~
datos fluyen de un proceso al siguiente.) dad de mantenimiento y capacidad de transferencia. Cada una de estas mediciones se puede
dividir posteriormente como se muestra en la figura 10.5.
Cohesin El quinto nivel, la cohesin temporal, es aceptable slo sobre una variedad limitada de pro~
temporal cesos. Combina procesos no relacionados que siempre ocurren juntos. Dos funciones
ralmente cohesivas son la inicializacin y la tennmacin de una tarea. Son aceptables debido
a que se utilizan slo una vez en el programa y porque nunca son portables. Sin embargo, ad~
Calidad del
mita que an deben contener llamadas para las funciones primarias funcionalmente cohesi~
software
vas siempre que sea factible.
I I I
Cohesin lgica Los dos ltimos niveles pocas veces se encuentran en los programas actuales. La cohesin
r I
~
lgica combina procesos que estn relacionados slo por la entidad que los controla. Una fun~ Capacidad de Capacidad de
y cohesin casual Operabilidad
cin que condicionalmente abri diferentes series de archivos con base en una bandera que I mantemITllento I transferencia
pasa como un parmetro sera lgicamente cohesiva. Finalmente, la cohesin casual combi~ Eficiencia Capacidad Interoperabilidad
na procesos que no guardan ninguna relacin entre s. La cohesin casual existe slo en teo~ Fiabilidad de correccin Portabilidad
ra. Nunca hemos visto un programa profesional que contenga cohesin casual. Facilidad de uso Capacidad Reutilizacin
Pertinencia de pruebas del cdigo
Precisin Flexibilidad
Seguridad Variabilidad
10.4 CAUDAD
Figura 10.5 Factores de calidad
No encontrar a nadie que haya llegado a considerar siquiera reducir al mnimo la calidad del
software, al menos no 10 ha hecho pblicamente. Todos quieren el mejor software disponible
y al escuchar a los creadores de sistemas en el mercado, todos sus sistemas son perfectos. Aun La operabilidad se refiere a la operacin bsica de un sistema. Las primeras cosas que un
as, como usuarios de software, a menudo pensamos que el concepto de software de calidad usuario nota respecto a un sistema son su apariencia y sensacin. Esto significa, en especial
es una contradiccin. Todos tenemos nuestros productos de software favoritos, pero ninguno para un sistema en lnea interactivo, qu tan fcil e intuitivo es usarlo. Se adapta al sistema
de ellos carece de una imperfeccin o dos. operativo bajo el cual se est ejecutando? Por ejemplo, si se est ejecutando en un ambiente
La gente que anda por el mundo queriendo ser uno de esos creadores de software necesi~ Windows, sus mens desplegables y de aparicin instantnea deben trabajar del mismo mo~
ta estar consciente de los conceptos bsicos de la calidad del software. En esta seccin, estu~ do que los mens del sistema operativo. En pocas palabras, la operabilidad responde a la pre-
diamos algunos de los atributos de un producto de calidad y cmo hacer para lograr la gunta: "Cmo se maneja?"
calidad. Pero estos factores son subjetivos; no son mesurables. As que he aqu los factores que
confonnan la operabilidad; se listan en orden alfabtico.
DEIFINlcON El software de calidad se define como sigue:
Eficiencia La eficiencia es, en general, un trmino subjetivo. En algunos casos el usuario
DECAUDAD Software que satisface los requisitos explcitos e implcitos del usuario, est bien docu~ especificar una norma de rendirriiento, tal como una respuesta en tiempo real que debe reci-
mentado, cumple con las normas operativas de la organizacin y se ejecuta de manera efi~ birse en un segundo el 95 por ciento de las veces. Esto es sin duda medible.
ciente en el hardware para el cual se desarroll.
Ingeniera de software 10.4 Calidad
Fiabilidad La fiabilidad es en realidad la suma de los otros factores. Si los usuarios cueo.., zacin de un cambio solicitado. Si se lleva mucho tiempo, tal vez se deba a que es difcil cam-
tan con el sistema para lograr terminar su trabajo y tienen confianza en l, entonces lo ms biar el sistema. Esto es especialmente cierto para los sistemas viejos.
probable es que sea confiable. Por otro lado, algunas medidas hablan directamente de la fia- Hay herramientas de medicin de software en el mercado actual que calculan la comple-
bilidad de un sistema, en particular el tiempo promedio entre fallas. jidad y estructura de un programa. Deben utilizarse regularmente, y si la complejidad de un
programa es alta, debe considerarse volver a escribir el programa. Los programas que han
Facilidad de uso sta es otra rea muy subjetiva. La mejor medicin de la facilidad de cambiado muchas veces con los aos, a menudo pierden sus centros estructurados y es dif-
uso es observar a los usuarios y ver si estn usando el sistema. Las entrevistas a los usuarios cil cambiarlos. Tambin deben rescribirse.
a menudo revelan problemas con la facilidad de uso de un sistema.
La capacidad de transferencia se refiere a la capacidad para mover datos y/o un sistema de una
Pertinencia La pertinencia en la ingeniera de software puede significar varias cosas dis- plataforma a otra y para reutilizar el cdigo. En muchas situaciones no es un factor importan-
transferencia
tintas. El sistema proporciona su salida de manera oportuna? Para los sistemas en lnea, el te. Por otra parte, si usted est escribiendo software generalizado, sta puede ser crtica.
tiempo de respuesta satisface los requisitos de los usuarios? Para los sistemas por lotes, los
reportes se entregan oportunamente? Tambin es posible, si el sistema tiene una buena ca- Interoperabilidad La interoperabilidad es la capacidad de enviar datos a otros sistemas.
pacidad de inspeccin para detenninar si los datos en el sistema son pertinentes u oportu- En los sistemas sumamente integrados de hoy, ste es un atributo deseable. De hecho se ha
nos. Es decir, los datos se registran dentro de un tiempo razonable despus de que ocurre vuelto tan importante que los sistemas operativos ahora soportan la capacidad para mover da-
la actividad que los crea? tos entre sistemas, tales como un procesador de palabras y una hoja de clculo.
)OC1umlel'litaci?n en En esta fase, la informacin recopilada debe documentarse con cuidado. Adems, el analista
fase de anlisis debe definir la fuente de informacin. Los requisitos y mtodos elegidos deben exponerse cla-
ramente con las razones en las que se basan.
en En esta fase, las herramientas utilizadas en la copia fInal deben documentarse. Por ejemplo,
fase de diseo si un diagrama de estructura sufre varios cambios, la copia final debe documentarse con ex-
plicaciones completas.
En esta fase debe documentarse cada herramienta y cada programa. Adems, el programa por
lo general debe autodocumentarse. Hay dos niveles de documentacin de programas. El pri-
mero es la documentacin general al principio del programa. El segundo nivel se encuentra
dentro de cada bloque.
Documentacin general Cada programa debe comenzar con una descripcin general del
programa. Enseguida est el nombre del autor y la fecha en que se escribi el programa. A
Figura 10.6 Crculo de la calidad continuacin se incluye el historial de cambios del programa. Para un programa de produc-
cin que abarca varios aos, el historial de cambios puede ser bastante grande.
el programador ha completado las pruebas de unidad, el programa pasa a otro ingeniero de
software para su integracin y las pruebas del sistema. En un proyecto pequeo, es muy pro- Documentacin de funcin Adems, cuando sea necesario, debe incluirse un breve co-
bable que el programa pase al analista de sistemas y/o al usuario. En un proyecto grande hay mentario para bloques de cdigo. Un bloque de cdigo es muy parecido a un prrafo en un
Un equipo de pruebas separado. informe. Contiene un pensamiento, es decir, una serie de instrucciones que realizan una tarea
El desarrollo de los sistemas grandes toma meses y en ocasiones aos. Es muy natural que especfica. Los bloques de cdigo en su programa deben estar separados por lneas en blan-
durante periodos largos, ocurran cambios en los requisitos y en el diseo. Para asegurar la ca: co, justo como las que inserta en sus reportes entre prrafos.
lidaq, cada cambio debe revisarse y aprobarse por una junta de control de cambios. El impac-
to de un cambio solicitado en cada programa necesita evaluarse y planearse apropiadamente.
Un cambio incontrolado provoca que el calendario se extienda y el presupuesto se rebase, y mentadn en Finalmente, los desarrolladores deben documentar cuidadosamente la fase de pruebas. Cada
que los productos sean de baja calidad. fase de pruebas tipo de prueba aplicada al producto fInal debe mencionarse junto con el resultado. Incluso los
Finalmente, un entorno de buena calidad mide todos los aspectos de la calidad y reporta resultados poco favorables y los datos que los produjeron deben documentarse.
los resultados con regularidad. Sin medicin, usted no puede saber si la calidad es buena o
mala, si mejora o empeora. Al mismo tiempo, las normas publicadas proveen el patrn para Observe que la documentacin es un proceso en curso. Si el paquete tiene problemas despus
muchas mediciones de la calidad. de su lanzamiento al mercado, stos deben documentarse. Si el paquete se modifIca, todas las
.(01l1li0 UN PROCESO
modifIcaciones y sus relaciones con el paquete original tambin deben documentarse. La do-
CURSO
cumentacin se detiene cuando el paquete se vuelve obsoleto.
~
10.5 DOCUMENTACION
Para que un paquete de software se utilice en forma adecuada y se mantenga eficientemente,
se necesita la documentacin. Por 10 general, dos conjuntos independientes de documenta- TRMINOS CLAVE
cin se preparan para un paquete de software: la documentacin del usuario y la documen-
tacin del sistema. cohesin casual fase de diseo
de contenido cohesin de comunicacin fase de implementacin
DOCUMENTACiN Para ejecutar el paquete adecuadamente, el usuario necesita documentacin, habitualmente de control cohesin de procedimientos fase de pruebas
DEl USUARIO llamada el manual, que muestra cmo utilizar el paquete paso a paso. Por lo general contie- de datos cohesin funcional fiabilidad
ne una seccin de tutonal para guiar al usuario a travs de cada caracterstica del paquete. global cohesin lgica flexibilidad
Un buen manual del usuario puede ser una herramienta de marketing muy poderosa. Debe de sello cohesin secuencial ingeniera de software
escribirse tanto para el usuario novato como para el experto. La importancia de la documen- holgado cohesin temporal interoperabilidad
tacin del usuario en marketing no puede exagerarse. Un paquete de software con buena do- diagrama de clase modelo de cascada
cumentacin del usuario defInitivamente aumentar las ventas. capacidad de correccin diagrama de estructura modelo incremental
de pruebas diagrama de flujo modularidad
DOCUMENTACIN La documentacin del sistema defIne el paquete mismo. Debe redactarse de modo que el de vida del software documentacin del sistema mdulos
DEl SISTEMA paquete pueda mantenerse y modifIcarse por personas distintas a los desarrolladores origina- crculo de la calidad eficacia operabilidad
les. Debe haber documentacin del sistema para las cuatro fases del desarrollo de sistemas. fase de anlisis pertinencia
al Ingeniera de software 10.8 Prctica ..
portabilidad pruebas de caja negra seguridad DE OPCiN MLTIPLE 17. Realizar pruebas a un paquete de software puede involu-
precisin pseudocdigo software de calidad crar las pruebas de _ _ __
Los principios de ingeniera de software se establecieron
pruebas de caja blanca reutilizacin variabilidad a. caja negra
por primera vez hace aos.
b. caja blanca
a. 10
c. caja de pan
b. 30
c. 100 d. ayb
10.7 RESUMEN d. 1000 18. Las pruebas de caja negra se realizan por el_ __
Un sistema de software se vuelve obsoleto cuan- a. usuano
111 La ingenieria de software es el establecimiento y uso de 11 El acoplamiento es una medida de qu tan do,_ _ _. b. ingeniero de pruebas del sistema
mtodos y principios de ingenieria slidos para obtener te se ligan dos mdulos el uno con el otro. Los tipos a. se encuentra un error en el cdigo c. programador
software confiable que trabaje en mquinas reales. acoplamiento incluyen de datos, de control, global y b. el1enguaje con el cual se escribe ya no se utiliza d. ayb
contenido. c. el programador principal abandona el proyecto 19. Las pruebas de caja blanca se realizan por el_ __
111 El proceso de desarrollo para un paquete de software im-
iII La cohesin es una medida de qu tan estrechamente d. ay b
plica cuatro fases: anlisis, diseo, implementacin y 3. programador
pruebas. relacionan los procesos en un programa. Los tipos de Una fase en el desarrollo de sistemas es _ _ __ b. usuario
hesin incluyen funcional, secuencial, de 3. anlisis c. ingeniero de pruebas del sistema
l1li La fase de anlisis del proceso de desarrollo consiste en de procedimiento, temporal, lgica y casual. b. pruebas d. CTO
la definicin de los usuarios, necesidades, requisitos y
iIIi La calidad del software puede dividirse en tres c. diseo
mtodos. 20. En la primera versin del modelo , cada m-
nes generales: operabilidad, capacidad de mantenimien- d. todas las anteriores
l1li La fase de diseo del proceso de desarrollo consiste en dulo llamado slo devuelve un mensaje indicando que se
to y capacidad de transferencia. La definicin de los usuarios, las necesidades, los requi-
la determinacin de los sistemas y el diseo de los archi- le llam.
111 Factores importantes para la operabilidad del sitos y los mtodos es parte de la fase de _ _ __
vos y/o bases de datos. a. cascada
son la precisin, eficiencia, fiabilidad, seguridad, " 3. anlisis
b. incremental
11 En la fase de implementacin del proceso de desarrollo nencia y facilidad de uso. b. diseo
c. instrumental
se escribe el cdigo real. c. implementacin
111 Factores importantes para la capacidad de mantenimien- d. de caja negra
d. pruebas
l1li En la fase de pruebas del proceso de desarrollo, deben to son la variabilidad, capacidad de correccin,
21. En el modelo de una fase completa del pro-
realizarse las pruebas de caja negra y de caja blanca. dad y capacidad de pruebas. En el proceso de desarrollo de sistemas, la escritura del
yecto se tennlla antes de que comience la fase siguiente.
1111 Factores importantes para la capacidad de cdigo es parte de la fase de _ _ __
111 Existen dos modelos de desarrollo de software: el mode- 3. cascada
son la reutilizacin del cdigo, interoperabilidad y 3. anlisis
lo de cascada y el modelo incremental. b. incremental
tabilidad. b. diseo
l1li En el modelo de cascada cada mdulo se termina com- c. implementacin c. instrumental
pletamente antes de que se inicie el siguiente mdulo. iiII Hay seis pasos para el software de calidad: estndares; d. pruebas d. de caja negra
medicin y creacin de informes, herramientas de ca1i~
11 En el modelo incremental, todo el paquete se construye, dad, revisiones tcnicas, evaluacin formal y controles En el proceso de desarrollo de sistemas, el diagrama de 22. El(la) _ _ _ es la separacin de un programa grande
con cada mdulo compuesto por slo un intrprete de de cambio. estructura es una herramienta utilizada en la fase de en partes pequeas.
comandos; los mdulos ganan complejidad con cada ite- a. acoplamiento
111 La documentacin del usuario y la documentacin del
racin del paquete. 3. anlisis b. aumento incremental
sistema son necesarias para que un paquete de software
b. diseo c. obsolescencia
l1li La modularidad es la divisin de un programa grande en se utilice de manera apropiada y se mantenga de mane-
c. implementacin d. modularidad
partes ms pequeas que pueden comunicarse entre s. ra eficiente.
d. pruebas
23. La modularidad se vuelve ms visible mediante herra-
En el proceso de desarrollo de sistemas, el diagrama de mientas como _ __
flujo es una herramienta usada en la fase de ____ o
3. el diagrama de estructura
a. anlisis
b. el diagrama de clase
b. diseo
10.8 PRCTICA c. implementacin
c. la cascada incremental
d. pruebas d. ayb
PREGUNTAS DE REPASO 5. Qu implica la fase de anlisis del desarrollo de siste- 24. El(la) . es una medida de qu tan estrechamente
En el proceso de desarrollo de sistemas, el pseudocdi-
mas? se ligan dos mdulos el uno con el otro.
1. Defina la ingeniera de software. go es una herramienta usada en la fase de _ _ _ _ o
25. El(la) una medida de qu tan estrechamente se 33. La cohesin combina procesos que slo 43. Una programadora escribe un programa que incluye una
relacionan los procesos en un programa. relacionados por la entidad que los controla. funcin de suma. Posteriormente escribe otro programa
a. modularidad Una funcin se escribe para encontrar el nmero ms
a. lgica que tambin requiere una suma. Cuando trata de usar la
b. acoplamiento pequeo entre una lista de nmeros. La lista se pasa a la
b. de procedimiento funcin anterior, se da cuenta que debe escribir una fun-
c. interoperabilidad ,funcin como un arreglo. El nmero menor se devuelve
c. temporal cin completamente nueva. Qu principio de calidad se
d. cohesin la funcin que llama. Qu tipo(s) de acoplamiento se
d. funcional viola aqu?
entre la funcin que llama y la funcin llamada?
26. El acoplamiento de ___ slo pasa el mlimo de datos
34. La cohesin _ _ _ combina dos o ms tareas Se escribe una funcin para ordenar una lista de nme- 44. Imagine que le asignan la tarea de realizar la documen-
requerido de la funcin que llama a la funcin llamada.
nadas que estn estrechamente ligadas entre S. ros. La funcin utiliza la lista en la funcin que llama, tacin del sistema en la fase de anlisis para un gran pro-
a. datos
pero devuelve una bandera para mostrar si se realiz el yecto. Idee la hoja de plantilla apropiada para utilizarla
b. sello a. funcional
ordenamiento satisfactoriamente o no. Qu tipo(s) de en los cuatro pasos involucrados en esta fase.
c. control b. secuencial acoplamiento se utiliz entre la funcin que llama y la
d. global c. de comunicacin 45. Repita el ejercicio 44 para la fase de diseo.
funcin llamada?
27. El acoplamiento de _ _ _ ocurre cuando una funcin d. lgica
_Se escribe una funcin para intercambiar datos entre dos 46. Repita el ejercicio 44 para la fase de implementacin.
se refiere directamente a los datos o instrucciones en variables. La funcin utiliza directamente una variable
35. La cohesin combina procesos no re],aci,onado~,
otra funcin. definida en la funcin que llama. Qu tipo de acopla- 47. Repita el ejercicio 44 para la fase de pruebas.
que estn ligados por un control de flujo.
a. datos miento se utiHz?
a. funcional
b. sello
c. contenido b. secuencial
d. control c. de procedimiento
d. lgica
28. El acoplamiento de utiliza variables globales
para comunicarse entre dos o ms funciones. 36. La cohesin combina procesos que trabajan so-
a. datos bre los mismos datos.
b. sello a. funcional
c. contenido b. secuencial
d. control c. de comunicacin
29. El acoplamiento de pasa banderas que pueden d. lgica
dirigir el flujo lgico de una funcin.
37. La precisin, eficiencia, fiabilidad, seguridad, pertinen~
a. datos
cia y facilidad de uso son factores importantes para la
b. sello
_ _ _ del software.
c. control
d. global a. operabilidad
b. capacidad de mantenimiento
30. El acoplamiento de pasa parmetros que son c. capacidad de transferencia
objetos compuestos como arreglos o estructuras.
d. longevidad
a. datos
b. sello 38. La variabilidad. capacidad de correccin, flexibilidad Y
c. control capacidad de pruebas son factores importantes para la
d. global _ _ _ del software.
a. operabilidad
31. La cohesin _ _ _ es el nivel de cohesin ms alto.
a. funcional b. capacidad de mantenimiento
b. secuencial c. capacidad de transferencia
c. de comunicacin d. longevidad
d. lgica
39. La reutilizacin de cdigo, la interoperabilidad y la por-
32. La cohesin _ _ _ combina procesos no relacionados tabilidad son factores importantes para la del
que siempre ocurren juntos. software.
a. lgica a. operabilidad
b. de procedimiento b. capacidad de mantenimiento
c. temporal c. capacidad de transferencia
d. funcional d. longevidad
I
t
.1 ARREGLOS
Imagine que tiene un problema que requiere el procesamiento de veinte nmeros. Usted nece-
sita leerlos, procesarlos e imprimirlos. Tambin debe mantener estos veinte nmeros en la me-
Estructuras
moria para la duracin del programa. Puede defInir veinte variables, cada una con un nombre
diferente, como se muestra en la figura 11.1.
Pero tener veinte nombres diferentes crea otro problema. Cmo puede leer veinte nme-
ros desde el teclado y almacenarlos? Para hacerlo, necesita veinte referencias, una para cada
e at s
variable. Adems, una vez que stas estn en la memoria, cmo puede usted imprimirlas?
Para imprimirlas necesita otras veinte referencias. En otras palabras, necesita el diagrama de
flujo de la fIgura 11.2 para leer, procesar e imprimir estos veipte nmeros.
nmero O
k ~'tl~;: 1
nmero 1 ~~.: '2>0<Y:' ~'
:1
nmero 2
1 1
I I
En los captulos anteriores utilizamos variables que almacenan una sola entidad. Aunque
>i~:<~;t ;1
variables individuales se utilizan ampliamente en los lenguajes de programacin, no nmero 18 1
usarse para resolver problemas complejos de una manera eficiente.
nmero 19
1 1
En este captulo presentamos la estructura de datos. Una estructura de datos utiliza una
Nmeros
leccin de variables relacionadas a las que se puede acceder de manera individual o como
todo. En otras palabras, una estructura de datos representa un conjunto de elementos de
Figura 11.1 Veinte variables individuales
tos con una relacin especfica entre ellos.
Analizamos tres estructuras de datos en este captulo: arreglos, registros y listas ligadas.
mayora de los lenguajes de programacin tiene una implementacin implcita de los
ros dos. La tercera, sin embargo, se simula utilizando apuntadores y registros.
En esta seccin estudiamos una aplicacin de los arreglos: el arreglo de frecuencia y su re-
presentacin grfica.
nmero 18 nmero [18J
Las ventajas del arreglo estaran limitadas si usted no tuviera adems constructores de pro~
gramacin que le permitan procesar los datos de una manera ms conveniente. Por fortuna, nmero [OJ L,;C"c<,: frecuencia [O]
hay un poderoso conjunto de constructores de programacin, ciclos, que facilitan el procesa-
nmero [1] frecuencia [1J
miento de arreglos.
Usted puede utilizar ciclos para leer y escribir elementos en un arreglo. Los ciclos se pue- nmero [2] frecuencia [2]
den usar para sumar, restar, multiplicar y dividir los elementos. Usted tambin puede usar ci~
nmero [3J
elos para un procesamiento ms complejo tal como el clculo de promedios. Ahora no
importa si hay 2. 20. 200. 2000 o 20 000 elementos a ser procesados, Los ciclos facilitan el nmero [4]
manejo de todos ellos.
frecuencia [18J
Pero una pregunta sigue sin respuesta: Cmo puede escribir una instruccin de modo que
una vez se refiera al primer elemento de un arreglo y la siguiente vez se refiera a otro elemen- frecuencia [19]
to? En realidad es muy simple: Tan slo se pide prestado el concepto de subndice que se ha Frecuencias
estado usando. No obstante, en lugar de usar subndices, se coloca el valor del subndice en~
nmero [98J
tre corchetes. Usando esta notacin, usted hace referencia al nmero ocomo nmero[O]. ~~-+j
Siguiendo esta convencin, el nInero 1 se convierte en el nmero[IJ y el nmero 19 se nmero [99J
tc=='---'
convierte en el nllleroI19]. Esto se conoce como indexacin. Usando una referencia tpica, Nmeros
usted ahora hace referencia a su arreglo utilizando la variable. El diagrama de flujo para pro~
cesar sus veinte nmeros utilizando un arreglo y los cielos aparece en la figura 11.4. Figura 11.5 Arreglo de frecuencia
.. Estructuras de datos 11.2 Registros 111
Histogramas Un histograma es una representacin pictrica de un arreglo de frecuencia. En lugar de im~
primir los valores de los elementos para mostrar la frecuencia de cada nmero, se imprime un
histograma en forma de grfica de barras. Por ejemplo, la figura 11.6 es un histograma pa~
ra una serie de nmeros en el rango de O a 19. En este ejemplo, los asteriscos (*) se utilizan
para construir la barra. Cada asterisco representa una ocurrencia del valor de datos. Vista del usuario
Los arreglos analizados hasta ahora se conocen como arreglos unidimensionales debido a que' fila O fila 1
ARREGLOS
BIDIMENSIONALES los datos se organizan linealmente en una sola clireccin. Muchas aplicaciones requieren que los 12111 01.11 l,p2~1 !jp!l!1 ~LO~ I
datos se almacenen en ms de una dimensin. Un ejemplo comn es una tabla, que es un arre~ [OliO] [0][1] [0][2] [0][3] [0][4] [1][0] [1][1] [1][2] [1][3J [1][4J
glo que consiste en filas y colunmas. La figura 11.7 muestra una tabla, a la cual por lo general
se le llama arreglo bidimensional. Observe que los arreglos pueden tener tres, cuatro o ms Vista de la memoria
dimensiones. Sin embargo, el anlisis de los arreglos multidimensionales est ms all del
mbito de este libro. Figura 11.8 Disposicin en la memoria
Disposicin Los ndices en la definicin de un arreglo bidimensional representan filas y colLllllllas. Este for-
en la memoria mato relaciona la forma en que los datos se disponen en la memoria. Si usted fuera a consi-
derar la memoria como una fila de bytes con las direcciones inferiores a la izquierda y las
direcciones superiores a la derecha, entonces se podra colocar un arreglo en la memoria con .2 REGISTROS
el primer elemento a la izquierda y el ltimo elemento a la derecha. De manera similar, si el
arreglo es bidimensional, entonces la primera dimensin es una fiJa de elementos que se alma- Un registro es una coleccin de elementos relacionados, posiblemente de distintos tipos, que
cena a la izquierda. Esto se conoce como almacenamiento de '':filas mayores" (figura 11.8). tienen un solo nombre. Cada elemento de un registro se llama campo. Un campo es el ele-
mento ms pequeo de datos con nombre que tiene un significado. Tiene un tipo y existe en
~
la memoria. Se le pueden asignar valores, a los que se tiene acceso por seleccin o manipu-
lacin. Un campo difiere de una variable principalmente en que ste es parte de un registro.
00 La diferencia entre un arreglo y un registro radica en que todos los elementos en un arre-
4**** S;Vete3 glo deben ser del mismo tipo, mientras que los elementos en un registro pueden ser del mis-
mo tipo o de uno diferente.
2 7 *******
3 7 ******* La figura 11.9 contiene dos ejemplos de registros. El primer ejemplo, fraccin, tiene
dos campos, ambos formados por enteros. El segundo ejemplo, es tudian te, tiene tres cam-
pos formados por dos tipos distintos.
. C;;Vero19
18 2 * *
19 O
Figura 11.6 Histograma
o
Primera
dimensin (filas)
o 2 3
estudiante
Segunda dimensin
(columnas
Sin embargo, hay una advertencia de diseo. Los datos de un registro deben estar relacio_
nados a un objeto. En la figura 11.9, los enteros de la fraccin pertenecen a la misma frac-
cin, y los datos en el segundo ejemplo estn relacionados con un estudiante. No combine pLis"C
datos que no estn relacionados por conveniencia de programacin. Una lista ligada vaca
ACCESO Primero se describir cmo acceder a componentes individuales de un registro y despus se figura 11.10 Listas ligadas
A REGISTROS examinar la asignacin de todos los registros.
Acceso a campos
individuales
Se puede tener acceso y manipular cada campo de un registro al emplear expresiones y ope-
radores. Todo lo que se puede hacer con una variable individual se puede hacer tambin con
un campo del registro. El problema est en identificar los campos individuales en los que us-
Datos
I. t
ted est interesado.
Dado que cada campo en un registro tiene un nombre, se puede usar simplemente el nom- Figura 11.11 Nodo
bre. El problema con esta sencilla opcin es que si usted quiere comparar el id de un estu-
diante en un registro con el id de otro estudiante en otro registro, la instruccin podra ser
ambigua. Por lo tanto, necesita identificar de algn modo los registros que contienen identi- el final de la lista. Definimos como lista ligada vaca aquella que tiene un apuntador de enca-
ficadores de campo, en este caso los id. Muchos lenguajes de programacin utilizan un pun- bezamiento nulo. La figura 11.10 tambin contiene un ejemplo de una lista ligada vaca.
to (.) para separar el nombre del registro del nombre del campo.
Por ejemplo, si tiene dos registros (Estudiantel y Estudiante2) del tipo estudiante,
Los elementos de una lista ligada tradicionalmente se llaman nodos. Un nodo de una lista
puede referirse a los campos individuales de esos registros como sigue:
ligada es un registro que tiene al menos dos campos: uno contiene los datos y el otro la direc-
Estudiantel,. ig, Estudiante2.nqmbre y Estudiantel.qrado cin del siguiente nodo en la secuencia (figura 11.11).
Estudiante2. id, Estudiante2.'nombre y Estudiante2.grado Los nodos de una lista ligada se llaman registros autorreferenciaIes. En un registro au-
torreferencial, cada instancia del registro contiene un apuntador a otra instancia del mismo ti-
Tambin puede leer y escribir datos de los miembros de un registro del mismo modo que po estructural.
lo hace en las variables individuales.
Recuperacin Ahora que sabe cmo localizar un nodo en la lista, podemos describir la recuperacin de un
, 156 ~U, de un nodo nodo. Para recuperar un nodo, busque en la lista para localizar los datos. Si stos se encuen-
tran, se mueven al rea de salida en el mdulo que llama. Si stos no se encuentran, no se re-
Despus del paso 1
cuperar nada.
.. . -J[l13~2I&:':5J-1~,;;JC:17~8liiJ~'"
6 Cruce de una lista Los algoritmos que cruzan una lista inician en el primer nodo y examinan cada nodo en su-
Despus del paso 2 cesin hasta que se ha procesado el ltimo nodo. El cruce lgico se utiliza por varios tipos de
algoritmos, tales como el cambio de un valor en cada nodo, la impresin de la lista, la suma
de un campo en la lista o el clculo del promedio de un campo. Cualquier aplicacin que re-
"'-1 quiera que la lista entera se procese utiliza un cruce.
Para cruzar la lista, usted necesita un apuntador auxiliar, el cual es un apuntador que se
mueve de un nodo a otro conforme se procesa cada elemento. Comience por establecer el
Despus del paso 3 apuntador auxiliar para el primer nodo en la lista. Luego, utilizando un ciclo, contine hasta
que todos los datos se han procesado. Cada ciclo llama a un mdulo de proceso y le pasa los
Figura 11.12 Insercin de un nodo datos, luego avanza el apuntador auxiliar al siguiente nodo. Cuando el ltimo nodo se ha pro-
cesado, el apuntador auxiliar se vuelve nulo y el ciclo tennina (figura 11.14).
Lista original
Eliminacin Para eliminar un nodo primero debe ubicar el nodo mismo. Una vez que localice el nodo a eli-
de un nodo minar, simplemente cambie el campo de la liga del predecesor para que apunte al sucesor del
nodo eliminado (figura 11.13). Sin embargo. debe tener cuidado al eliminar el nico nodo de
una lista porque esto dar como resultado una lista vaca. Recuerde que la eliminacin del pri-
mer nodo o del nico nodo son casos especiales que necesitan un manejo especial.
11.4 TRMINOS CLAVE
Bsqueda La bsqueda en una lista se emplea por otras operaciones para localizar datos en una lista. por
en una lista ejemplo, para insertar datos necesita conocer el predecesor lgico de los nuevos datos. Para almacenamiento de filas mayores bsqueda en una lista lista ligada individualmente
eliminar datos, necesita encontrar el nodo a ser eliminado e identificar a su predecesor lgi~ apuntador campo memoria
co. Para recuperar datos de una lista, necesita buscar en la lista y encontrar los datos. Ade~ apuntador nulo ciclo nodo
ms, muchas aplicaciones de usuarios requieren que se realicen bsquedas en las listas para arreglo estructura de datos registro
localizar datos.
arreglo bidimensional grfica de barras registro autorreferencial
Para buscar una lista en una clave, necesita un campo de clave. Para las listas sencillas, arreglo de frecuencia histograma subndice
la clave y los datos pueden estar en el rusmo campo. Para registros ms complejos se nece~ arreglo multidimensional liga variable
sita un campo de clave independiente.
arreglo unidimensional lista ligada
El Estructuras de datos 11.6 Grupo de prcticas ..
_ _ _~ es un conjunto de tamao fijo y secuenciado 25. Cada elemento de un registro se conoce como _ __
11.5 RESUMEN de elementos del mismo tipo de datos. 3. una variable
3. un arreglo b. un ndice
liI Arreglos, registros y listas ligadas son estructuras de da- 11 Cada elemento de un registro se llama campo. b. un registro c. un campo
tos que se estudian en este captulo. c. una lista ligada
111 Una diferencia entre un arreglo y un registro es que to- d. un nodo
111 Un arreglo unidimensional es una secuencia de tamao dos los elementos dentro del arreglo deben ser del mis~ d. una variable
fijo de elementos del mismo tipo. mo tipo, mientras que, los elementos del registro pueden 26. Todos los miembros de un arreglo deben ser de _ _ _ o
muestran el nmero de ocurrencias de valores de datos 11 El nodo en una lista ligada individualmente contiene d. subndice a. el mismo tipo
de otro arreglo. nicamente una liga a un solo sucesor, a menos que sea b. tipos relacionados
el ltimo, en cuyo caso no est ligado con ningn otro Dado el arreglo llamado objeto con veinte elementos,
111 Un histograma es una representacin grfica de un arre- c. tipo entero
nodo. si usted ve el trmino objeto [10], sabr que el arre-
glo de frecuencia. d. tipo carcter
glo tiene una forma de _ __
I!I Un arreglo bidimensional es una presentacin en una ta- R Cuando se desea insertar un elemento en una lista liga~
3. variable 28. Un(a) _ _ _ es un conjunto ordenado de datos en el
bla con filas y columnas. da, deben considerarse cuatro casos: agregar a una lista
b. registro cual cada elemento contiene la ubicacin del siguiente
vaca, agregar al inicio de la lista, agregar a la mitad y
!II Un arreglo multidimensional es una extensin de un c. ndice elemento.
agregar al final.
arreglo bidimensional a uno de tres, cuatro o ms dimen- d. subndice a. arreglo
I!I Cruzar una lista ligada significa recorrer la lista, nodo
siones. b. registro
por nodo, y procesar cada nodo. Tres ejemplos de cruces Un(a) es una representacin grfica de un
c. lista ligada
111 Un registro es un conjunto de elementos relacionados, de listas son el conteo de la cantidad de nodos, la impre~ arreglo de frecuencia.
posiblemente de diferentes tipos, que tienen un solo sin del contenido de los nodos y la suma de los valores d. nodo
a. lista ligada
nombre. de uno o ms campos. b. histograma 29. En una lista ligada, cada elemento contiene _ _ _ o
c. registro 3. datos
d. nodo b. una liga
11.6 GRUPO DE PRCTICAS Un arreglo que consiste simplemente en filas y colum-
c. un registro
nas probablemente es un arreglo _ _ _ o
d. ayb
PREGUNTAS DE REPASO 12. Cul es la funcin del apuntador en una lista ligada?
a. unidimensional 30. E1(la) es un apuntador que identifica el siguien
1. Por qu existe la necesidad de las estructuras de datos? 13. Cmo se puede apuntar hacia el primer nodo en una lis- b. bidimensional te elemento dentro de la lista ligada.
2. Mencione tres tipos de estructuras de datos. ta ligada? c. tridimensional a. liga
3. Qu es un arreglo? 14. A qu apunta el apuntador en el ltimo nodo de una lis- d. multidimensional b. nodo
ta ligada? c. arreglo
4. En qu difiere un elemento en un arreglo de un elemen- En un arreglo bidimensional con cuatro filas, la fila con
15. Qu es una lista ligada individualmente? las direcciones superiores en la memoria es la _ __ d. ao b
to en un registro?
16. Describa el predecesor del apuntador cuando se agrega fila. 31. Dada una lista ligada llamada nios, la variable del
5.. Cul es la diferencia entre un elemento en un arreglo y
un elemento en una lista ligada? un nodo a: a. primera apuntador nios identifica al elemento de la
3. el inicio de una lista ligada b. segunda lista ligada.
6. Por qu debe usar ndices en lugar de subndices para
b. el punto medio de la lista ligada c. tercera a. primer
identificar los elementos de un arreglo?
c. el fmal de una lista ligada, y d. cuarta b. segundo
7. Qu es un arreglo de frecuencia? d. una lista vaca c. ltimo
Un(a) es un conjunto de elementos relaciona-
8. Cmo se relaciona un histograma con un arreglo de fre- d. cualquiera
PREGUNTAS DE OPCiN MLTIPLE dos, posiblemente de distintos tipos, que tienen un solo
cuencia?
nombre. 32. Una lista ligada vaca consiste de _ __
9. Cmo se almacenan los elementos de un arreglo en la 17. Una estructura de datos puede ser _ _ o
33. En un registro autorreferencial, cada instancia del re- 40. Utilizando la figura 11.9, cul es el resultado de las
gistro contiene un apuntador hacia otra instancia de guientes instrucciones, suponiendo que Fr 1 es del
_ _ _ tipo. fraccin?
a. el mismo Frl.numerador = 7;
Frl.denominador = 8;
b. diferente
c. similar
d. ao b
Corno ejemplo, considere a un analista de sistemas que debe simular la fila de espera de
un banco para determinar cuntos cajeros se necesitan para atender a los clientes de manera
eficiente. Este anlisis requiere la simulacin de una cola de espera. Sin embargo, las colas
de espera por lo general no estn disponibles en los lenguajes de programacin. Incluso si un
tipo de cola de espera est disponible, el analista an necesitara alglmas operaciones bsicas,
como la insercin (enqueuing) y la eliminacin (dequeuing) de un elemento, para la simula~
cin de la cola de espera.
Hay dos soluciones posibles a este problema: (1) se puede escribir un programa que simu-
le la cola de espera que el analista necesita (en este caso, la solucin es buena slo para una
aplicacin prxima) o (2) se puede escribir un TDA de cola de espera que se utilice para re- Figura 12.1 Modelo para TDA
solver cualquier problema de cola de espera. Si se elige esta ltima opcin, el analista toda-
va necesitar escribir un programa para simular la aplicacin bancaria, pero hacerlo ser Los datos se introducen, se accede a ellos, se modifican y se eliminan mediante las interfaces
mucho ms fcil y rpido debido a que l o ella podrn concentrarse en la aplicacin en vez
OPERACIONES
operativas dibujadas como rectngulos parcialmente dentro y parcialmente fuera de la estruc-
de concentrarse en la cola de espera. CON TDA
tura. Para el encabezado (header) de cada operacin, hay un algoritmo que realiza una ope-
racin especfica. Slo el nombre de la operacin y sus parmetros estn visibles para el
DEfiNICiN Definamos formalmente un TDA. Un tipo de datos abstracto es una declaracin de datos em- usuario y proporcionan la nica interfaz para el TDA. Operaciones adicionales pueden crear-
pacados junto con las operaciones que tienen sentido para el tipo de datos. Despus se encap- se para cumplir requisitos especficos.
sulan los datos y las operaciones que se aplican a los datos, y se ocultan al usuario.
~
10 ~ .. -1 20 ~ml
I !
30
t
datos
Las listas lineales puec ~n '::1Vidirse en dos categoras: generales y restringidas. En una lis-
ta general, los datos pueden insertarse y eliminarse en cualquier parte, y no hay restricciones
sobre las operaciones que pueden utilizarse para procesar la lista. Las estructuras generales
pueden describirse posteriormente mediante sus datos, ya sea como listas aleatorias ti ordena-
das. En una lista aleatoria no hay un orden en los datos. En una lista ordenada los datos se lista
acomodan segn una clave. Una clave es uno o ms campos dentro de una estructura que se
utilizan para identificar los datos o para controlar de algn otro modo su uso. En un arreglo
simple, los datos tambin son las claves.
/1....1_lO_-,r m _20_-,
11....'
3
L-_ 0_...JI"
En una lista restringida, los datos slo pueden aadirse o eliminarse en los extremos de
la estructura, y el procesamiento est restringido a operaciones de los datos en los extremos Figura 12.4 Insercin en una lista lineal
de la lista. Describimos dos estructuras de lista restringida: la lista primero en entrar, pri-
mero en salir (FIFO: jirs! in, jirs! out) y la lista ltimo en entrar, primero en salir (LIFO: La eliminacin de un elemento de una lista general (figura 12.5) requiere que se realice una
last in, first out). La lista FIFO por lo general se llama cola de espera; la lista LIPO com(m- bsqueda en la lista para localizar los datos que se van a eliminar. Cualquier algoritmo de bs-
mente se llama pila. La figura 12.3 muestra los tipos de listas lineales. queda secuencial puede emplearse para localizar los datos. Una vez localizados, los datos se
eliminan de la lista. El nico problema posible con esta simple operacin es la lista vaca. Si
la lista est vaca, sta se encuentra en un estado de sobre desbordamiento y la operacin
fracasa.
Se elimina el elemento
identificado
por la bsqueda
lista
I azul
I 1
m
verde amarillo
datos
Figura 12.3 Categoras de listas lineales
En esta seccin nos concentramos en un tipo de lista lineal: la lista lineal general con da-
azul .'LI__v_e_r_de_--,~ - hl amarillo
tos ordenados. Las listas lineales restringidas se analizarn posteriormente en el captulo.
Figura 12.5 Eliminacin de una lista lineal
Aun cuando podemos definir muchas operaciones con una lista lineal general, slo analiza-
OPERACIONES CON
LISTAS LINEALES
remos cuatro operaciones de las ms comunes: la insercin, la eliminacin, la recuperacin Y Recuperacin La recuperacin de lista requiere que los datos se localicen en una lista (figura 12.6). Una co-
el recorrido. pia de los datos debe recuperarse sin cambiar el contenido de la lista. Al igual que sucede con
la insercin y la eliminacin, cualquier algoritmo de bsqueda secuencial puede utilizarse pa-
Los datos deben insertarse en listas ordenadas de modo que se mantenga el orden de la lista. ra localizar los datos a recuperar de una lista general. El nico problema posible con esta sim-
Insercin Para mantener el orden se requiere insertar los datos al principio o al final de la lista, pero la ple operacin es una lista vaca. No se puede recuperar un elemento de una lista lineal vaca.
mayor parte del tiempo los datos se insertan en algn lugar dentro de la lista. Para determi-
nar dnde se van a colocar los datos, los cientficos de la computacin utilizan un algoritmO El recorrido de una lista es una operacin en la cual todos los elementos en la lista se proce-
de bsqueda. El nico problema posible con esta simple operacin es que ya no haya espacio san en forma secuencial, uno a uno (figura 12.7). En esta figura, la variable llamada Walker
para el elemento nuevo. Si no hay espacio suficiente, la lista entra en un estado de desborda- apunta al elemento que debe procesarse. El procesamiento aqu puede ser la recuperacin, el
miento y el elemento no puede aadirse. La msercin se muestra grficamente en la figura almacenamiento, etc. El recorrido de listas requiere un algoritmo iterativo en vez de una bs-
12.4. Los datos insertados se identifican mediante el elemento sombreado, en este caso, el ter- queda. Cada iteracin de un ciclo procesa un elemento en la lista. El ciclo termina cuando to-
cer elemento de la lista revisada. dos los elementos se han procesado.
.. Tipos de datos abstractos 12.3 Pilas ..
lista
gato fm -- --1 cebra
Elemento recuperado
II}.:!>I
identificado K !*1$!
por la bsqueda
1&,,1. ,,~I
,
Pila de monedas Pila de libros Pila de computadoras
lista ir-
/~====~~~~~==~~==~I~
,--_ga_t_o_...J~ I, -, ~'""-"""""''''' "-'_ _ _---1 - - - ce_b_ra_--l. Figura 12.8 Tres representaciones de una pila
m jL'_ _
objeto diferente del que est en la cima, primero debe eliminar todos los objetos que estn de-
Figura 12.6 Recuperacin desde una lista lineal
bajo de l. En la figura 12.8 se muestran tres representaciones de una pila.
Aunque podemos definir muchas operaciones para una pila, hay tres que son bsicas: inser-
lista tar, extraer y vaciar.
L
_...,g,at_o_--ll
m
L-=-_--.J
---1____ *cebra Al insertar (push) se aade un elemento en la parte superior de la pila (figura 12.9). Despus
+ de insertar, el elemento se vuelve la cima. El nico problema posible con esta operacin sim-
ple es quedarse sin espacio para el nuevo elemento. Si no hay espacio suficiente, la pila est
en un estado de desbordamiento y el elemento no puede aadirse.
APLICACIONES Las listas lineales se utilizan en situaciones donde se accede a los elementvs en forma alea- Figura 12_9 Operacin de insertar en una pila
DE LISTA LINEAL toria. Por ejemplo, en una universidad una lista lineal puede utilizarse para almacenar infor-
macin sobre los estudiantes que estn inscritos en cada semestre. La informacin puede Cuando usted extrae (pop) un elemento de una pila, elimina el elemento en la parte superior
accederse en forma aleatoria. de la pila y lo devuelve al usuario (figura 12.10). Cuando el ltimo elemento en la pila se eli-
mina, la pila debe establecerse a su estado vaco. Si se hace una llamada a la operacin de ex-
traer cuando la pila est vaca, sta s~ encuentra en un estado de sobre desbordamiento.
12.3 PILAS
Una pila es una lista lineal restringida en la cual las adiciones y eliminaciones se realizan en
un extremo llamado cima. Si usted inserta una serie de datos en una pila y luego la elimina, .
Cima
el orden de los datos se invertir. La entrada de datos como 5, 10, 15,20 debe eliminarse co-
c::::J Cima
mo 20, 15, 10 Y 5. Este atributo de inversin es la razn por la cual las pilas se conocen co- Operacin
mo una estructura de datos ltimo en entrar, primero en salir (LIPO). c::::J
Una persona utiliza en su vida diaria muchos tipos de pila distintos. A menudo hablamos Pila Pila
de una pila de monedas o de una pila de platos. Cualquier situacin en la cual usted simple-
mente pueda aadir o eliminar un objeto en la cima es una pila. Si desea eliminar cualquier Figura 12.10 Operacin de extraer de una pila
.. Tipos de datos abstractos 12.4 Colas de espera ..
Vaciar Esta operacin (empty) hace una revisin para ver si una pila est vaca o no. La respuesta es El retroceso, dar marcha atrs a los datos previos, es un uso de pila que se encuentra en apli-
ya sea verdadera o falsa. caciones como los juegos de computadoras, el anlisis de decisiones y los sistemas expertos.
EJEMPLO 1
Muestre el resultado de las siguientes operaciones en una pila S.
COLAS DE ESPERA
Una cola de espera es una lista lineal en la cual los datos slo pueden insertarse en un extre-
mo, llamado extremo trasero, y eliminarse en el otro extremo, llamado frente. Estas restric-
ciones aseguran que los datos se procesen a travs de la cola de espera en el orden en el cual
se reciben. En otras palabras, una cola de espera es una estructura de primero en entrar, pri-
mero en salir (FIFO).
SOLUCIN Una cola de espera es lo mismo que una fila, De hecho, si usted estuviera en Inglaterra,
no entrara en una fila sino en una cola de espera. Una fila de gente esperando el autobs en
La figura 12.11 muestra las operaciones y el resultado final. una estacin es una cola de espera; una lista de llamadas que se ponen en espera para que les
responda un operador telefnico es una cola de espera, y una lista de tareas que esperan ser
procesadas por una computadora tambin es una cola de espera.
L;rl rL; r
ULJW lliJlliJ Lill
La figura 12.12 exhibe dos representaciones de una cola de espera: la primera, una cola de
12 espera de personas y la otra, una cola de espera de computadora. Tanto las personas como los
datos entran a la cola de espera en la parte trasera y avanzan por la misma hasta que llegan al
S S S S S S frente. Una vez que estn en la parte de adelante, dejan la cola de espera y son atendidos.
IMPLEMENTACIN Aunque una pila puede implementarse. ya sea como un arreglo o como una lista ligada, la for-
Bances I
DE UNA PILA ma ms comn es una lista ligada debido a que las operaciones de extraccin e insercin pue-
den implementarse mucho ms fcilmente en una lista de este tipo.
Las aplicaciones de pila pueden clasificarse en cuatro amplias categoras: inversin de datos, Eliminar
ll tj~tttt
a. Una cola de espera (fila) de personas
Insertar
APLICACIONES
anlisis sintctico de datos, postergacin del uso de los datos y retroceso sobre los pasos. (dequeue) (enqueue)
DE PILA
Inversin de datos La inversin de datos requiere que un conjunto dado de datos se reordene de modo que el pri- ~r--""""""I r-I--'1 -I~,""';;;I '-[--..I~
mer elemento y el ltimo se intercambien, con todas las posiciones entre el primero y el lti-
parte de enfrente parte trasera
mo tambin intercambiadas relativamente. Por ejemplo, 1 2 3 4 se convierte en 4 3 2 1.
b. Una cola de espera de computadora
Anlisis sintctico Otra aplicacin de pilas es el anlisis sintctico. Este tipo de anlisis es cualquier lgica que
Figura 12.12 Representaciones de colas de espera
divide los datos en piezas independientes para su procesamiento posterior. Por ejemplo, para
traducir un programa fuente a lenguaje de mquina, un compilador debe analizar el progra-
ma en partes individuales como palabras clave, nombres y elementos sintcticos (tokens), Aun cuando sea posible definir muchas operaciones para una cola de espera, tres son las b-
OPERACIONES CON
Un problema de programacin comn son los parntesis sin par en una expresin algebrai- sicas: eliminar, insertar y vaciar.
ca. Cuando los parntesis no tienen par pueden ocurrir dos tipos de errores: pueden faltar ya
COLAS DE ESPERA
sea el parntesis de apertura o el parntesis de cierre. Siempre que se encuentra un parntesis Insertar La operacin de insertar (enqueue) en una cola de espera aparece en la figura 12.13. Des-
de apertura, ste se inserta en la pila. Cuando se encuentra un parntesis de cierre, un parnte- pus de que los datos se han insertado en la cola, el nuevo elemento se vuelve la parte trasera.
sis de apertura (de la cima de la pila) se extrae y se descarta, Si al final la pila no est vaca, Como se vio con las pilas, el nico problema posible con la insercin es quedarse sin espa-
significa que hay ms parntesis de apertura que de cierre. Tambin ocurre un error cuando se cio para los datos. Si no hay suficiente espacio para otro elemento en la cola de espera, sta
encuentra un parntesis de cierre y no hay parntesis de apertura en la cima de la fila, entra en un estado de desbordamiento,
Postergacin Cuando se utiliza una pila para invertir una lista, toda la lista es leda antes de que los resul- Eliminar La operacin de eliminar (dequeue) un elemento de una cola de espera se muestra en la fi-
tados se comiencen a generar. Con frecuencia, la lgica de una aplicacin requiere que el uso gura 12.14. Los datos en la parte de enfrente de la cola de espera se eliminan de la misma y
de los datos se postergue hasta un momento posterior. Una pila puede ser til cuando la apli- se devuelven al usuario. Si no hay datos en la cola de espera cuando se intenta una elimina-
cacin requiere la postergacin del uso de los datos, cin, la cola est en un estado de sobre desbordamiento.
12.5 rboles ..
.. Tipos de datos abstractos
Una cola de espera puede implementarse ya sea como un arreglo o como una lista ligada.
parte de enfrente
APILlC.ACIIONES Las colas de espera son una de las estructuras de procesamiento de datos ms comunes. Se
encuentran en prcticamente todo sistema operativo y red en incontables reas distintas. Por
Operacin DE LA COLA DE
ejemplo, las colas de espera se utilizan en aplicaciones de negocios en lnea tales como el pro-
datos ESPERA
cesamiento de solicitudes del cliente, tareas y pedidos. En un sistema de cmputo una cola de
espera es necesaria para procesar tareas y para servicios del sistema tales como los servicios
parte traserd ciruelal I kiwi I L:uva$fl de impresin.
Las colas de espera pueden volverse bastante complejas; damos una implementacin sim-
Cola de espera
ple de cola d~ espera: una aplicacin que es til para clasificar datos. Una cola de espera pre-
serva el orden de los datos. Por ejemplo, usted tiene una lista de nmeros y necesita clasificarlos
Figura 12.13 Operacin de insertar
en grupos (100 o menos, entre 100 y 201. etc,). Puede leer los datos y crear varias colas de es-
pera. Un nmero se inserta en la cola de espera apropiada y puede recuperarse en el orden en
Cola de espera que se ley pero en su propio grupo. Por ejemplo, todos los nmeros en la categora de 100 o
menos pueden imprimirse primero en el orden en que se leyeron. Despus, todos los nmeros
parte de adelante I~ ~ ~ entre 100 y 201 pueden imprimirse en el orden en que se leyeron y as por el estilo .
.
2.5 RBOLES
parte de adelante I~ ~ Los rboles se usan exhaustivamente en las ciencias de la computacin como una estructura
eficiente para realizar bsquedas en listas dinmicas grandes y para aplicaciones diversas co-
Cola de espera
mo los sistemas de inteligencia artificial y los algoritmos de codificacin. En esta seccin
analizamos el concepto bsico de rbol. En la siguiente seccin presentamos un tipo especial
Figura 12.14 Operacin de eliminar
de rbol, llamado rbol binario, el cual es una estructura comn en las ciencias de la compu-
Esta operacin (empty) hace una revisin para ver si una cola de espera est vaca o no. El re- tacin.
Vaciar
sultado es verdadero o falso.
CONCEPTOS Un rbol consiste de un conjunto finito de elementos, llamados nodos, y un conjunto finito
EJEMPLO 2 BSICOS DE RBOL de lneas dirigidas, llamadas ramas, que conectan los nodos. El nmero de ramas asociadas
Muestre el resultado de las siguientes operaciones en una cola de espera Q. con un nodo es el grado del nodo. Cuando la rama se dirige hacia el nodo, es una rama de
grado de entrada, cuando la rama se aleja del nodo, es una rama de grado de salida. La su-
en~~E;~,<~t- :" (Q 23 ,:; ,::",; '::/:\
I
ma de las ramas de grado de entrada y de grado de salida es el grado del nodo. En la figura
i f nClt;eIl\]:?CY (Q), dequeue (Q) 12.16 el grado del nodo B es 3.
enquee ''(0'/20) Si el rbol no est vaco, el primer nodo se conoce como raz. El grado de entrada de la raz
'enqueue(Q; 19) es, por definicin, cero. Con excepcin de la raz todos los nodos en un rbol deben tener un
"J1f"noc emptl!\~: [Q), dequeue,{Q) grado de entrada de exactamente uno. Todos los nodos en el rbol pueden tener cero, una o
ms ramas que salen de ellos, es decir, pueden tener un grado de salida de cero, uno o ms.
SOLUCIN
La figura 12.15 muestra las operaciones y el resultado final.
parte de
enfrente
c== partede~
enfrente 23
partedeC==
enfrente
Q Q Q
partede~ partede~ Partede~
enfrente 20 enfrente 20 19 enfrente 19
Q Q Q
Figura 12.1 S Ejemplo 2 111 Figura 12.16 Representacin de un rbol
El Tipos de datos abstractos 12.6 rboles binarios ..
Terminologa Adems de la raz, muchos tnninos distintos se utilizan para describir los atributos de un
bol. Una hoja es cualquier nodo con un grado de salida de cero. En la figura 12.16, el nodo
es una hoja. Un nodo que no es una raz o una hoja se conoce como nodo interno debido
se encuentra en la parte media de un rbol. En la figura 12.16 el nodo B es un nodo interno.
Un nodo es un padre si tiene nodos sucesores ---es decir, si tiene un grado de salida mayor
que cero. A la inversa, un nodo con un predecesor es un hijo. Un nodo hijo tiene un grado de.
entrada de uno. Dos o ms nodos con el mismo padre son hennanos. Por fortuna, usted
tiene que preocuparse por las tas, los tos, las sobrinas, los sobrinos y los primos. Almque :'lo
gunos libros utilizan el trmino abuelo, nosotros no lo hacemos; preferimos el trmino
general de ancestro. Un ancestro es cualquier nodo en el camino desde la raz hasta el nodo.
Un descendiente es cualquier nodo en el camino debajo del nodo padre; es decir, todos los'
nodos en los caminos de un nodo dado hacia una hoja son descendientes del nodo. La figura Figura 12.18 Subrboles
12.17 muestra el uso de estos trminos.
Las operaciones con un rbol son complejas y su explicacin est ms all del mbito de es-
te libro. Se analizan en un curso de estructura de datos.
NivelO
Rama
NiveLl PI RBOLES BINARIOS
Un rbol binario es un rbol en el cual ningn nodo puede tener ms de dos subrboles. En
otras palabras, un nodo puede tener cero, uno o dos subrboles. Estos subrboles estn dise-
ados como el subrbol izquierdo y el subrbol derecho. La figura 12.19 muestra un rbol bi-
Padres: A, B, F Hojas: C. D, E, F, G, H, 1
nario con sus dos subrboles. Observe que cada subrbol es por s mismo un rbol binario.
Hijos: B, E, F, e, D, G, H, 1 Nodos internos: B, F
He'manos: {B.E.F}. {C.D}, {G.H.I}
les difiere por no ms de 1 (su factor de equilibrio es ~ 1, o + 1) Y sus subrboles tambin
LJ~r:rJ~
estn equilibrados. Esta definicin fue creada por Adelson~ Velskii y Landis en su definicin
de un rbclAVL.
a b d CON Las tres operaciones ms comunes definidas para un rbol binario son insertar, eliminar y re-
correr. Las operaciones de insercin y eliminacin son complejas y su explicacin est ms
AI\''''''-'''''' BINARIOS
all del mbito de este libro. Analizamos el recorrido de rbol binario en esta seccin.
Un recorrido de rbol binario requiere que cada nodo del rbol se procese una vez y slo
una vez en una secuencia predeterminada. Los dos mtodos generales para la secuencia de re-
c. corrido son primero en profundidad y primero en anchura.
~ / Recorrido primero en profundidad Dado que un rbol binario consiste en una raz, un
.9 subrbol izquierdo y un subrbol derecho, podemos definir seis secuencias diferentes de re-
e corrido primero en profundidad. Los cientficos de la computacin han asignado a tres de
o
estas secuencias nombres estndar en la literatura; los otros tres no tienen nombre pero se de-
h.
rivan fcilmente. Los recorridos estndar se muestran en la figura 12.21.
Un rbol con una altura mxima es raro. Ocurre cuando todo el rbol se construye en una
direccin, como se muestra en las figuras l2.20(g) y l2.20(h). La altura mnima del rbol,
H mino se determina mediante la frmula siguiente:
La designacin tradicional de los recorridos utiliza una designacin de node (N) para la
Equilibrio La distancia de un nodo desde la raz determina qu tan eficientemente puede raz, left (L) para el subrbol izquierdo y right (R) para el subrbol derecho.
localizarse. Por ejemplo, los hijos de cualquier nodo en un rbol pueden accederse siguiendo
slo uno camino de rama, aquel que conduce al nodo deseado. Por ejemplo, es posible acce 11 Recorrido en pre orden (NLR). En el recorrido en pre orden, el nodo raz se procesa
der a los nodos en el nivel 2 de un rbol nicamente siguiendo dos ramas desde la raz. por primero, seguido por el subrbol izquierdo y luego por el subrbol derecho. Toma su nom~
10 tanto, es lgico que entre ms corto sea el rbol, ms fcil ser localizar cualquier nodo de~ bre del prefijo en latn pre, el cual significa "va antes de". As, la raz va antes que los su-
seado en el rbol. brboles. La figura 12.22 muestra otra forma de visualizar el recorrido del rboL Imagine
Este concepto nos conduce a una caracterstica muy importante de un rbol binario: su que est caminando alrededor de un rbol, comenzando por la izquierda de la raz y man-
equilibrio. Para determinar si un rbol est en equilibrio, calcule su factor de equilibrio. El tenindose tan cerca de los nodos como le es posible. En el recorrido de orden, usted pro-
factor de equilibrio de un rbol binario es la diferencia en altura entre sus subrboles izquier~ cesa el nodo cuando est a la izquierda del mismo. Esto aparece como una caja negra a la
do y derecho. Si se define la altura del subrbol izquierdo como H y la altura del subrbol izquierda del nodo. El camino se muestra como una lnea que sigue una trayectoria com~
derecho como HD , entonces el factor de equilibrio del rbol, B, est determinado por la si~ pletarnente alrededor del rbol y de regreso a la raz.
guiente fnnula:
11 Recorrido en orden (LNR). El recorrido en orden primero procesa el subrbol iz-
quierdo, luego el nodo raz y finalmente el subrbol derecho. El significado de la pala-
Utilizando esta frmula, los equilibrios de los ocho rboles en la figura 12.20 son (a) por
definicin, (b) 0, (e) 1, (d) ~ 1, (e) 0, (f) 1, (g) ~2 Y (h) 2.
bra en es que la raz se procesa "dentro" de los subrboles. La figura 12.23 muestra otra
forma de visualizar el recorrido de un rbol. Imagine que est caminando alrededor de
un rbol, comenzando por la izquierda de la raz y mantenindose tan cerca de los nodos
Un rbol est equilibrado si su factor de equilibrio es O y sus subrboles tambin estn como le es posible. En el recorrido en orden, usted procesa el nodo cuando est debajo
equilibrados. Debido a que esta definicin ocurre rara vez, una definicin alternativa se apli~ de l. Esto aparece como una caja negra bajo el nodo. El camino se muestra como una
ca de una manera ms general: Un rbol binario est equilibrado si la altura de sus subrbo~ lmea que sigue una trayectoria completamente alrededor del rbol y de regreso a la raz.
.. Tipos de datos abstractos 12.6 rboles binarios ..
hay). Finalmente procesa el nodo raz. La figura 12.24 muestra otra forma de visualizar
el recorrido del rbol. Imagine que usted est caminando alrededor de un rbol, comen-
zando por la izquierda de la raz y mantenindose tan cerca de los nodos como le es po-
sible. En el recorrido en post orden, usted procesa el nodo cuando est a la derecha del
mismo. Esto aparece como una caja negra a la derecha del nodo. El camino se muestra
como una lnea que sigue una trayectoria completamente alrededor del rbol y de regre-
so a la raz.
R4!CCllrr,idc)jj primero En el recorrido primero en anchura de un rbol binario, usted procesa todos los hijos de un
anchura nodo antes de continuar con el siguiente nivel. Dicho de otra forma, dada una raz en el nivel
n, se procesan todos los nodos del nivel n antes de continuar con los nodos del nivel n +
1. Para recorrer un rbol en orden de primero en profundidad, se utiliza una pila. Por otro la-
do, para recorrer un rbol primero en anchura, se utiliza una cola de espera.
Al igual que con-los recorridos de primero en profundidad, se puede trazar el recorrido con
Figura 12.22 Recorrido en pre orden de un rbol binario
un camino. Esta vez, no obstante, el camino contina a modo de escalera, primero atraviesa
el nivel raz, luego atraviesa el nivel 1, enseguida el nivel 2 y as sucesivamente hasta que to-
do el rbol se recorre (figura 1225).
- - /
DEI.. Una interesante aplicacin de rbol binario es el rbol de expresiones. Una expresin es una
BINARIO secuencia sintctica que siguen las reglas prescritas. Un elemento sintctico (token) puede ser
ya sea un operando o un operador. En este anlisis consideramos slo los operadores aritm-
ticos binarios en la forma de operando-operador-operando. Para simplificar el anlisis, usa-
mos nicamente cuatro operadores: suma, resta, multiplicacin y divisin.
Un rbol de expresiones es un rbol binario con las propiedades siguientes:
1. Cada hoja es un operando.
2. La raz y los nodos internos son operadores.
Figura 12.24 Recorrido en post orden de un rbol binario 3. Los subrboles son subexpresiones, con la raz siendo un operador.
Para un rbol de expresiones, los tres recorridos estndar representan tres formatos de expre-
111 Recorrido en post orden (LRN). El ltimo de los recorridos estndar es el recorrido sin diferentes: infijo, posfijo y prefijo. El recorrido en orden produce la expresin de infi-
en post orden, el cual procesa el nodo raz despus (post) de que los subrboles izquier~ jo, el recorrido en post orden genera la expresin de posfijo y el recorrido en pre orden
do y derecho se han procesado. Comienza localizando la hoja en el extremo izquierdo produce la expresin de prefijo. La figura 12.26 muestra una expresin de infijo y su rbol de
y procesndola. Luego procesa el hermano derecho, incluyendo sus subrboles (si los expresiones.
El Tipos de datos abstractos 12.7 Grafos ..
a * (b + e) + d I
Aadir una arista La adicin de una arista conecta un vrtice con un vrtice de destino. Si un vrtice Ie<jui,ete Recorrido primero en profundidad En el recorrido primero en profundidad, usted
mltiples aristas, entonces el mdulo de aadir una arista debe llamarse lUla vez para procesa los descendientes de un vrtice antes de pasar a un vrtice adyacente. Este concepto
vrtice adyacente. Para aadir una arista, deben especificarse dos vrtices. Si el grafo es se explica ms fcilmente cuando el grafo es un rbol. En la figura 12.33 mostramos un re-
dgrafo, uno de los vrtices debe especificarse como la fuente y otro como el destino, La fi- corrido de pre orden, uno de los recorridos primero en profundidad estndar.
gura 12.30 contiene un ejemplo de adicin de la alista {A, El a un grafo. El recorrido primero en profundidad de un grafo comienza con el procesamiento del primer
vrtice del grafo. Despus de procesar el primer vrtice, se selecciona un vrtice adyacente a
ste y se procesa. Conforme se procesa cada vrtice, se selecciona un vrtice adyacente hasta
que se llega a un vrtice sin entradas adyacentes. Esto es similar a llegar a una hoja de un r-
~
bol. Luego usted retrocede sobre sus pasos por la estructura, procesando los vrtices adyacen-
tes mientras avanza. Es evidente que esta lgica requiere una pila (o recursin) para completar
~ el recorrido.
K--<p ~
~
Figura 12.33 Recorrido primero en profundidad de un grafo
~ Recorrido primero en anchura En el recorrido primero en anchura de un grafo, usted
procesa todos los vrtices adyacentes de un vrtice antes de que vaya al siguiente nivel. Al
Figura 12.31 Eliminacin de una arista
observar el rbol de la figura 12.34 usted ve que su recorrido primero en anchura comienza
en el nivelO y luego procesa todos los vrtices del nivell antes de seguir adelante con el pro-
Encontrar La operacin encontrar un vrtice recorre un grafo en busca de un vrtice especificado. Si s- cesamiento de los vrtices del nivel 2.
un vrtice te se encuentra, sus datos son devueltos. Si no se encuentra; se indica un error. En la figura
12.32, encontrar un vrtice recorre el grafo en busca del vrtice C.
Recorrido primero en anchura
AXHPEYMJG
K--<p
~
Figura 12.32 Encontrar un vrtice
Figura 12.34 Recorrido primero en anchura de un grafo
Recorrer un grafo Siempre hay cuando menos una aplicacin que requiere que todos los vrtices en un grafo El recorrido primero en anchura de un grafo sigue el mismo concepto. Comience seleccio-
sean visitados; es decir, al menos una aplicacin requiere que sea recorrido el grafo. Debido nando un vrtice inicial; despus procselo y procese todos sus vrtices adyacentes. Una vez
a que un vrtice en un grafo puede tener mltiples padres, el recorrido de un grafo presenta que haya procesado todos los vrtices adyacentes del primer vrtice, seleccione el primer vr-
algunos problemas que no se presentan en el recorrido de listas lineales y rboles. Especfi~ tice adyacente y procese todos sus vrtices; luego seleccione el segundo vrtice adyacente y
camente, usted debe asegurarse de alguna manera de que procesa los datos en cada vrtice S~ procese todos sus vrtices, y as sucesivamente hasta que haya terminado con todos.
lo una vez. Sin embargo, debido a que hay varios caminos a un vrtice, se puede llegar al
mismo desde ms de una direccin a medida que se recorre el grafo. La solucin tradicional Para representar un grafo, se necesitan dos conjuntos de datos. El primer conjunto represen-
a este problema es incluir una bandera de visitado a cada vrtice. Antes de hacer el recorrido, ta los vrtices del grafo y el segundo, las aristas o arcos. Las dos estructuras ms comunes uti-
DE UN GRAFO
debe desactivarse la bandera de visitado en cada vrtice. Luego, a medida que se recorre el lizadas para almacenar estos conjuntos son el arreglo (matriz de adyacencia) y la lista ligada
grafo, la bandera de visitado se activa para indicar que los datos se han procesado. (lista de adyacencia). La figura 12.35 muestra estas dos implementaciones para un grafo
Los dos recorridos de grafos estndar son primero en profundidad y primero en anchura. simple. Los nmeros entre los vrtices son pesos (por ejemplo, la distancias entre redes en
Ambos utilizan la bandera de visitado. una red interconectada).
El Tipos de datos abstractos
12.9 Resumen ..
54'
523 320
TR.MINOS CLAVE
200 360 245 grado de salida padre
grafo pila
345 555 grafo con pesografo dbilmente posfijo
467 conectado postergacin
A BCD E F grafo dirigido prefijo
A o 523 345 o o o grafo fuertemente conectado primero en entrar, primero en salir
B 523 o 200 54' o o expansin grafo inconexo (FIFO)
C 345 200 o 360 467 o de expansin mrima grafo no dirigido tipo de datos profundidad
D o 54' 360 o 245 320 de expresin abstracto (TDA) raz
E o o 467 245 o 555 nulo hermanos rama
F o o o 320 555 o hijo recorrido
hoja recorrido de rbol binario
Matnz de adyacenCia
infijo recorrido en orden (LNR)
e 345
insertar en la cola de espera recorrido en pre orden
A 523 e 200 D 548 insertar (push) recorrido en post orden
lnea recorrido primero en anchura
A 345 B 200 E 467 lista recorrido primero en profundidad
lista aleatoria recuperacin
F 320
lista de adyacencia red
D 245 F 555 lista general retroceso
E 555
sintctico lista lineal simulacin de cola de espera
Lista de vrtices
de la cola de espera lista ordenada sobre desbordamiento
Lista de adyacencia
lista restringida subrbol
Figura 12.35 Implementaciones de grafos matriz de adyacencia ltimo en entrar, primero en salir
nivel (LIFO)
APLICACIONES Los grafos tienen muchas aplicaciones en las ciencias de la computacin. Mencionamos dos nodo vrtice
nodo interno vrtices adyacentes
DE GRAFOS de ellas aqu: las redes y los rboles de expansin mnima.
Redes Una red es un grafo con lneas pesadas. Tambin se le conoce como grafo con peso. El sig~
nificado de los pesos depende de la aplicacin. Por ejemplo, una aerolnea podra utilizar un
grafo para representar las rutas entre las ciudades en las que da servicio. En este ejemplo los R.ESUMEN
vrtices representan las ciudades, y la arista es un camino entre dos ciudades. El peso de las
aristas podrla representar las millas de vuelo entre las dos ciudades o el precio del vuelo. Una En una lista lineal cada elemento tiene un sucesor nico. Una pila es una lista lineal en la cual las adiciones y eli-
red para una aerolnea hipottica pequea se exhibe en la figura 12.35. En este caso, los pe- Las listas lineales pueden dividirse en dos categoras: minaciones estn restringidas a un extremo llamado ci-
sos representan el millaje entre las ciudades. ma, Una pila tambin se conoce como lista LIFO,
general y restringida.
Debido a que el peso es un atributo de una arista, se ahnacena en la estructura que contie- 111 Definimos dos operaciones para una pila: msertar (push)
En una lista general, los datos puede insertarse y elimi-
ne la arista. En una matriz de adyacencia, el peso se almacenara como el valor de intersec-
narse en cualquier parte, y no hay restricciones a las y extraer (pop).
cin. En una lista de adyacencia, ste se almacenara como el valor en la lista ligada de
adyacencia. operaciones que pueden usarse para procesar la lista, La msercin aade un elemento a la parte superior de la
En una lista restringida, los datos pueden aadirse o eli- pila. Despus de la msercin, el nuevo elemento se vuel-
rbol de expansin Podemos derivar uno o ms rboles de expansin desde una red conectada. Un rbol de ex minarse en los extremos de la estructura, y el procesa- ve la cima.
mnima pansin (spanning free) es un rbol que contiene todos los vrtices del grafo. Un rbol de miento est restringido a las operaciones aplicadas a los lIlII La extraccin elimina el elemento en la parte superior de
expansin mnima es un rpol de expansin tal que la suma de sus pesos es el mnimo. Hay datos en los extremos de la lista, la pila. Despus de la extraccin, el elemento que le si-
muchas aplicaciones para los rboles de expansin mrima, todas con los requisitos para mi- Dos estructuras de lista restringidas comunes son pilas gue, si hay alguno, se convierte en la cima.
nimizar algn aspecto del grafo, como la distancia entre todos los vrtices del grafo. por (listas ltimo en entrar, primero en salir [FlFO]) y las I!II En este captulo se analizaron cuatro aplicaciones de pi-
ejemplo, dada una red de computadoras, usted podra crear un rbol que conecte todas las colas de espera (listas primero en entrar, primero en sa- las: mversin de datos, anlisis sintctico de datos, pos-
computadoras. El rbol de expansin mnima le da la menor longitud de cable que puede em- lir [PIFO]). tergacin del uso de los datos y retroceso sobre los pasos,
plearse para conectar todas las computadoras en tanto que asegura que haya un camino entre Cuatro operaciones comunes estn asociadas con listas li- llII Una cola de espera es una lista lineal en la cual los da-
dos computadoras cualesquiera.
neales: msercin, eliminacin, recuperacin y recorrido, tos slo pueden insertarse en un extremo, llamado parte
El Tipos de datos abstractos 12,10 Prctica
trasera, y eliminarse en el otro extremo, la parte frontal. a. En el recorrido en pre orden, primero se procesa la Para representar un grafo en una computadora, se nece- BI En el mtodo de matriz de adyacencia, se usa un arreglo
Una cola de espera es una estructura primero en entrar, raz, seguida por el subrbol izquierdo y luego el su~ sita almacenar dos conjuntos de informacin: El primer para almacenar los vrtices y una matriz para almacenar
primero en salir (FIFO). brbol derecho. conjunto representa los vrtices y el segundo representa las aristas.
11 En este captulo analizamos dos operaciones de cola de b. En el recorrido en orden, primero se procesa el sl~ las aristas. 111 En el mtodo de lista de adyacencia, se utiliza una lista
espera: la insercin (enqueuing) y la eliminacin (de- brbol izquierdo, luego la raz y por ltimo el subr.:, ligada para almacenar los vrtices y una matriz para al-
queuing) de un elemento. bol derecho. Los mtodos ms comunes utilizados para almacenar un macenar las aristas.
c. En el recorrido en post orden, primero se procesa el grafo son el mtodo de matriz de adyacencia y el mto- 11 Definimos dos aplicaciones para un grafo en este captu-
11 Una cola de espera puede usarse para clasificar los datos.
subrbol izquierdo, luego el derecho y al ltimo la do de lista de adyacencia. lo: una red y un rbol de expansin mnima.
11 Un rbol consiste en un conjunto finito de elementos lla- raz.
mados nodos y un conjunto finito de lneas dirigidas lla-
madas ramas que conectan los nodos. El nmero de 111 En el mtodo primero en anchura, usted procesa todos
ramas asociadas con un nodo es el grado del nodo. Cuan- los nodos en un nivel antes de continuar con el nivel si~
do la rama se dirige hacia el nodo, es una rama de grado guiente. PRCTICA
de entrada; cuando se dirige hacia afuera del nodo, es una 11 Definimos una aplicacin para un rbol binario en este
rama de grado de salida. La suma de las ramas de grado jRE~c;,UII,IT)\S DE REPASO 17. Un(a) _ _ _ _ podra ser un TDA.
captulo: rbol de expresin.
a. matriz
de entrada y de grado de salida es el grado del nodo. Qu es un tipo de datos abstracto?
11 Un grafo es una coleccin de nodos llamados vrtices, y b, lista ligada
11 Si el rbol no est vaco, el primer nodo se llama raz, la una coleccin de segmentos de lnea que conectan pares En un TDA, qu se conoce y qu est oculto? e, rbol
cual tiene un grado de entrada de cero. Todos los nodos de nodos llamados aristas o arcos. Qu es una lista lineal? d. todas las anteriores
en el rbol, excepto la raz, deben tener un grado de en-
l1li Los grafos pueden ser dirigidos o no dirigidos. En un Cul es la diferencia entre una lista general y una lista 18, En un TDA, _ __
trada de uno.
grafo dirigido o dgrafo cada lnea tiene una direccin. restringida? a. los datos se declaran
11 Una hoja es un nodo con un grado de salida de cero. En un grafo no dirigido no hay direccin en las lneas.' b. las operaciones se declaran
Cules son dos implementaciones comunes de una lis-
a Un nodo interno no es ni raz ni hoja. Una lnea en un grafo dirigido se llama arco. Una lnea ta general? c. los datos y las operaciones estn encapsulados
111 Un nodo puede ser padre, hijo o ambos. Dos o ms no- en un grafo no dirigido se llama arista. d. todas las anteriores
Qu ventaja tiene la implementacin de una lista liga-
dos con el mismo padre se llaman hennanos. 111 En un grafo se dice que dos vrtices son adyacentes si 19. Un(a) _ _ _ _ es una lista en la cual cada elemento
da de una lista lineal general sobre la implementacin
!iI!I Un camino es una secuencia de nodos en la cual cada una arista los conecta directamente. con un arreglo de una lista lineal general? tiene un sucesor nico.
nodo es adyacente al siguiente. 111 Un camino es una secuencia de vrtices en la cual cada a. matriz
Cul es la diferencia entre la operacin de insertar y la
111 Un antecesor es cualquier nodo en el camino desde la b, red
vrtice es adyacente al siguiente. operacin de extraer?
raz hasta un nodo dado. Un descendiente es cualquier e. lista lineal
II1II Un ciclo es un camino de al menos tres vrtices que ini- Cules son tres operaciones de pila comunes? d, lista ligada
nodo en todos los caminos de un nodo dado a una hoja.
cia y termina con el mismo vrtice.
111 El nivel de un nodo es su distancia desde la raz. Describa las operaciones de insercin (enqueuing) y eli- 20, Una lista FIFO es una lista lineal _ _ __
11 Un bucle es un caso especial de ciclo en el cual un solo minacin (dequeuing). a, general
iIiI La altura de un rbol es el nivel de la hoja en el camino
arco comienza y termina con el mismo nodo. Qu significa que un rbol binario est equilibrado? b, restringida
ms largo desde la raz ms 1; la altura de un rbol va-
Co es-l. 11 Se dice que un grafo est conectado si, para dos vrtices Cul es la diferencia entre un recorrido primero en pro-
e, sin ordenar
cualesquiera, hay un camino del uno al otro. Un grafo es d, aob
!III Un subrbol es cualquier estructura conectada debajo de fundidad y un recorrido primero en anchura de un rbol
inconexo si no est conectado. binario? 21. Una lista lineal puede ser ordenada o sin or-
la raz.
111 El grado de un vrtice es el nmero de vrtices adyacen- Cul es la relacin entre un camino y un ciclo? denar.
Un rbol puede definirse de manera recursiva como un
tes al mismo. El grado de salida de un vrtice es el n- a, general
conjunto de nodos que ya sea (1) est vaco o (2) tiene Cul es la diferencia entre un recorrido primero en
mero de arcos que salen del nodo, mientras que el grado b, restringida
un nodo designado llamado raz desde el cual descien- profundidad y un recorrido primero en amplitud de un
de entrada es el nmero de arcos que entran al nodo. e, FIFO
den jerrquicamente cero o ms subrboles, los cuales grafo? d. LIFO
tambin son rboles. ti Se definieron seis operaciones para un grafo: aadir un
Cul es la principal limitacin de usar un arreglo para 22, Una lista tambin se conoce como cola de es-
fII En un rbol binario, ningn nodo puede tener ms de vrtice, quitar un vrtice, aadir una arista, quitar una
implementar un grafo? Por qu esto representa un pro-
arista, encontrar un vrtice y recorrer un grafo. pera.
dos hijos. blema? a, LIFO
111 Un recorrido de rbol binario visita cada nodo del rbol !II Hay dos recorridos de grafos estndar: primero en pro- Cul es la diferencia entre un grafo y una red? b. FIFO
una y slo una vez en una secuencia predeterminada. fundidad y primero en amplitud.
e, sin ordenar
!II Los dos mtodos del recorrido de rbol binario son pri- !II En el recorrido primero en profundidad, todos los des- UNTAS DE OPCiN MLTIPLE d. ordenada
mero en profundidad y primero en anchura. cendientes de un nodo se procesan antes de moverse a 23, Una lista
En un tipo de datos abstracto, _ _ __ tambin se conoce como pila.
111 Utilizando el mtodo de primero en profundidad, usted un nodo adyacente.
a. se conoce la implementacin de TDA a. LIFO
recorre un rbol binario en seis secuencias diferentes; liI En el recorrido primero en amplitud todos los vrtices b. la implementacin de IDA est oculta b, FIFO
sin embargo, slo tres de estas secuencias reciben nom- adyacentes se procesan antes de procesar a los descen- c. las funciones de IDA estn ocultas e, sin ordenar
bres estndar: pre orden, en orden y post orden. dientes de un vrtice. d. ninguna de las anteriores d, ordenada
El Tipos de datos abstractos 12.10 Prctica
24. Cuando no hay suficiente espacio para insercin, una 32. Cuando los datos se dividen en piezas independientes Si hay 22 nodos a almacenar en un rbol binario, la al- 48. En un recorrido ~~~_, el subrbol izquierdo se pro-
lista ordenada est en un estado ~~~_ para su procesamiento posterior, a esto se le llama tura mxima del rbol es ~~~_ cesa al final.
a. de desbordamiento a. mayor que 22 a. en pre orden
b. de sobre desbordamiento a. inversin de los datos b. menor que 22 b. en orden
c. lento b. postergacin de los datos c. igual que 22 c. en post orden
d. restringido c. anlisis sintctico de los datos d. ninguna de las anteriores d. ninguno de los anteriores
d. retroceso de los datos 49. En un recorrido en orden, la raz se procesa ~~~_
25. Cuando una lista ordenada est en un estado ~~~_ Si hay 16 nodos a almacenar en un rbol binario, la al- a. primero
la lista est vaCa. 33. En una cola de espera, los datos se insertan slo en tura ITnima del rbol es ~~~_ b. en segundo lugar
3. de desbordamiento ~~~_ y se eliminan slo en ~~~_ a. 16 c. al ltimo
b. de sobre desbordamiento a. la parte trasera; la parte frontal o la parte trasera b. 5 d. ao b
c. lento b. la parte frontal; la parte trasera c. 4 50. En un recorrido primero en anchura de un rbol binario
d. restringido c. la parte trasera; la parte frontal d. 1 con tres niveles (O, 1 Y 2), cul nivel se procesa al lti-
d. la parte trasera o la parte frontal; la parte frontal mo?
26. En la de listas para una lista ordenada. los da- Un rbol binario tiene una altura de 5. Cul es el nme-
tos en la lista y el nmero de elementos de la lista per- 34. El grado de entrada de ~~~_ de un rbol siempre es ro ITnimo de nodos? a. O
manecen sin cambio. cero. a. 31 b.
a. insercin a. cualquier nodo c. 2
b. 15
b. eliminacin b. una rama d. ninguno de los anteriores
c. 5
c. recuperacin c. la raz 51. Un(a) es una lnea entre dos vrtices en un di-
d.
d. todos los anteriores d. una hoja grafo.
Un rbol binario tiene una altura de 5. Cul es el nme- a. nodo
27. En la(el) de listas para una lista ordenada, ca- 35. Si un nodo interno tiene cuatro ramas de grado de sali- ro mximo de nodos? b. arco
da elemento de la lista se procesa en forma secuencial. da. su grado es ~~~_ a. 31 c. arista
3. msercin a. 9 b. 15 d. camino
b. eliminacin b. 1 52. Una arista es _~~_ entre dos vrtices en un grafo no
c. 5
c. recuperacin c. 4 dirigido.
d. 1
d. recorrido d. 5 a. unnodo
En un recorrido en pre orden, ~~~_ se procesa pri-
28. Si A es el primer elemento de datos que se introduce en 36. Un nodo de un rbol tiene un grado de 3. Esto significa b. un arco
mero. c. una lnea
una pila seguido por B, e y D, es el primer que su grado de salida es ~_ __
a. el subrbol izquierdo
elemento a ser eliminado. a. O d. uncamino
b. el subrbol derecho 53. Si C Y D son dos vrtices adyacentes en un grafo no di-
a. A b. 2
c. la raz rigido, entonces _~~_
b. B c. 4
d. aob a. hay dos caminos
c. e d. ninguno de los anteriores
d. D En un recorrido _~~_, el subrbol derecho se pro- b. slo hay un camino {C. D}
37. Un(a) es una secuencia de nodos en la cual c. slo hay un camino {D, C}
cesa al final.
29. Si A es el primer elemento de datos que se introduce en cada nodo es adyacente al siguiente. d. no hay caminos
a. en pre orden
una cola de espera seguido por B, e y D, es el a. hoja 54. Un vrtice en un dgrafo tiene cuatro arcos que entran y
b. en orden
primer elemento a ser eliminado. b. raz tres arcos que salen. El grado de salida del vrtice es
c. en post orden
a. A c. descendente
d. aob
b. B d. camino a. 4
c. e En un recorrido en post orden, la raz se procesa b. 3
38. Si la altura de un rbol es lO, el nivel ms alto del rbol
d. D c. 2
es~___ .
a. primero d. 1
30. La operacin de extraer de la pila. a. 10
b. en segundo lugar
a. elimina un elemento de la parte superior b. 9
c. al final EJERCICIOS
b. elimina un elemento de la parte inferior c. 5
d. aob 55. Muestre el contenido de la pila sI despus de las opera-
c. aade un elemento a la parte superior d. 1
cion~s siguientes:
d. aade un elemento a la parte inferior En un recorrido en post orden, el subrbol izquierdo se
39. En un rbol binario, cada nodo tiene ~~~~_ dos push (51, 5)
31. La operacin de insertar de la pila. subrboles. procesa _~~_. push~(51, 3)
a. elimina un elemento de la parte superior a. ms de a. primero push (51, 2)
b. en segundo lugar pop (51)
b. elimina un elemento de la parte inferior b. menos de
c. al fmal pop (51)
c. aade un elemento a la parte superior c. cuando mucho push(sL 6)
d. aade un elemento a la parte inferior d. cuando menos d. aob
111 Tipos de datos abstractos 12.10 Prctica ..
56. Utilice un ciclo whi 1 e para vaciar el contenido de la pi- 69. Un rbol binario tiene 10 nodos. El recorrido en Haga una representacin de la lista de adyacencia del
~-"''''ll
la s2. pre orden del rbol se muestra enseguida. Dibuje el grafo de la figura 12.37.
57. Utilice un ciclo while para mover el contenido de la pi- Trace el grafo para la representacin de la matriz de ad-
En pre orden: JCBADEFIGH
la sI a s2. Despus de la operacin la pila sI debe estar
yacencia de la figura 12.38.
vaCa. En orden: ABCEDFJGlli
58. Utilice un ciclo whi 1 e para copiar el contenido de la pi-
la sI a s2. Despus de la operacin el contenido de las 70. Un rbol binario tiene ocho nodos. El recorrido en
pilas s1 y s2 debe ser el mismo. y en post orden del rbol se muestra enseguida. _ """J'......
el rbol: A 8 e D E F
59. Utilice un bucle whi le para concatenar el contenido de
la pila s2 con el contenido de la pila s 1. Despus de la En post orden: FECHGDBA
A o 3 1
concatenacin los elementos de la pila s2 deben estar en-
8 o o 3
En orden: FECABHDG e ;'01 o' 1
cima de los elementos de la pila sI. La pila s2 debe es- 2 ,Pi, o/ 1 2
D
tar vaca.
71. Un rbol binario tiene siete nodos. El recorrido en orden E o 'o o o ini ,3
60. Un palndromo es una cadena que puede leerse hacia y en post orden del rbol se muestra enseguida. Puede F o ni o o oi o
atrs y hacia delante con el mismo resultado. Por ejem- dibujar el rbol? Si no es as, explique por qu.
plo, la creacin siguiente es un palndromo:
En post orden: GFDABEC 12.38 Ejercicio 77
Anita lava la tina
En orden: ABDCEFG
Escriba un algoritmo utilizando una pila para probar si
una cadena es un palndromo. 72. Dibuje todos los rboles diferentes posibles con tres no-
61. Escriba un algoritmo para comparar el contenido de dos dos (A, B Y C).
pilas.
73. Haga el recorrido primero en profundidad del grafo de la
62. Muestre el contenido de la pila sI y de la cola de espera
figura 12.36 partiendo del vrtice A.
ql despus de las -operaciones siguientes:
p;'sh (s~, 3 1
push (s, 51
enqli.ue (q1,6 1
enqli'ue (ql,:- 9 i: A
P9P ',( s 1 1 (q.~.~. 8
~SIu~ue__ .!;< - 9)
.t.queue ;iCql1
E
63. Utilice un ciclo while para vaciar el contenido de la co- G
la de espera q3.
64. Utilice un ciclo whi 1 e para mover el contenido de la Figura 12.36 Ejercicios 73 y 74
cola de espera q2 a la cola q3. Despus de la operacin
la cola de espera q2 debe estar vaCa.
65. Utilice un ciclo while para copiar el contenido de la co- 74. Haga el recortido primero en anchura del grafo de la fi-
la de espera q2 a q3. Despus de la operacin el conte- gura 12.36 partiendo del vrtice A.
nido de las colas de espera q2 y q3 debe ser el mismo.
75. D la representacin de la matriz de adyacencia del gra-
66. Utilice un ciclo while para concatenar el contenido de
fo de la figura 12.37.
la cola de espera q2 con el contenido de q 1. Despus
de la concatenacin, los elementos de la cola de espera
q2 deben estar al final de los elementos de ql. La cola
de espera q2 debe estar vaca.
67. Escriba un algoritmo para comparar el contenido de dos
colas de espera.
68. Encuentre la raz de cada uno de los rboles binarios si-
guientes:
a. rbol con recorrido en post orden: FCBDG
b. rbol con recorrido en pre orden: IBCDFEN
c. rbol con recorrido en post orden: CBIDFGE
.. Estructuras de archivos 13.3 Archivos indexados El
El cdigo siguiente muestra cmo tener acceso a todos los registros en un archivo se- La figura 13.3 es una representacin grfica de la actualizacin de un archivo secuencial. En
cuencial. esta figura, aparecen los cuatro archivos que se han analizado. Aunque utilizamos el smbolo
de cinta para los archivos, podramos haberlos representado con la misma facilidad median-
te el smbolo de disco. Observe que despus de que se completa el programa de actualizacin,
while Not EOF
el nuevo archivo maestro se enva a almacenamiento fuera de lnea donde se guarda hasta que
{
se le necesita de nuevo. Cuando el archivo va a actualizarse, el archivo maestro se recupera
Lee el registro siguiente
del almacenamiento fuera de lnea y se vuelve el archivo maestro viejo.
Procesa el registro
}
Programa 13.1 Procesamiento de registros en un archivo secuencial Archivo de transaccin Archivo maestro viejo
ACTUALIZACiN Los archivos secuenciales deben actualizarse en forma peridica para reflejar cambios en la Para hacer el proceso de actualizacin eficiente, todos los archivos se almacenan en la mis-
informacin. El proceso de actualizacin es muy problemtico debido a que todos los regis~ ma nave. El proceso de actualizacin requiere que usted compare las llaves de los archivos
DE ARCHIVOS
tros necesitan revisarse y actualizarse Cde ser necesario) en forma secuencial. maestro y de transaccin y, suponiendo que no hay errores, realice una de las tres acciones si-
SECUENCIALES
guientes:
Archivos Hay cuatro archivos asociados con un programa de actualizacin: el archivo maestro nuevo, 1. Si la llave del archivo de transaccin es menor que la llave del archivo maestro, aada
involi.llcrados en el archivo maestro viejo, el archivo de transaccin y el archivo de informe de errores. la transaccin al archivo maestro nuevo.
la adualizacin 11 Archivo maestro nuevo. Primero est el nuevo archivo de datos permanente o, como 2. Si la llave del archivo de transaccin es igual a la llave del archivo maestro, opte por
se le conoce comnmente, el archivo maestro nuevo, el cual contiene los datos ms una de estas dos opciones:
actuales. a. Cambie el contenido de los datos del archivo maestro si la transaccin es una revi-
IJ Archivo maestro viejo. El archivo maestro viejo es el archivo permanente que debe ac~ sin (R).
b. Borre los datos del archivo maestro si la transaccin es una eliminacin (D).
tualizarse. Aun despus de la actualizacin, el archivo maestro viejo debe mantenerse pa-
ra referencia. 3. Si la llave del archivo de transaccin es mayor que la llave del archivo maestro, escri-
ba el registro del archivo maestro viejo en el archivo maestro nuevo. En este caso, el
111 Archivo de transaccin. El tercer archivo es el archivo de transaccin, el cual contiene
cdigo de transaccin debe ser la adicin CA) o hay un error.
los cambios a aplicar en el archivo maestro. Hay tres tipos bsicos de cambios en todas las
actualizaciones de archivos. La adicin de transacciones contiene los datos de un nuevO Este proceso de actualizacin se exhibe en la figura 13.4. En el archivo de transaccin los
registro a aadir en el archivo maestro. La eliminacin de transacciones identifica regis~ cdigos de transaccin son A para la adicin, D para la eliminacin y R para revisin. El pro-
tras a eliminar del archivo. Y el cambio de transacciones contiene revisiones a registroS ceso comienza con la comparacin de las llaves para el primer registro de cada archivo.
especficos en el archivo. Para procesar cualquiera de estas transacciones, usted necesita
una nave. Una llave es uno o ms campos que identifican de forma nica los datos eU el
archivo. Por ejemplo, en un archivo de estudiantes, la nave podra ser el ID (identificador)
de estudiante. En un archivo de empleados, la llave podra ser el nmero del seguro social,
13.3 ARCHIVOS INDEXADOS
11 Archivo de informe de errores. El cuarto archivo requerido en un programa de actua- Para tener acceso aleatorio a un archivo en un registro, se necesita conocer la direccin del
lizacin es un archivo de informe de errores. Es muy raro que un proceso de actuali- registro. Por ejemplo, suponga que una clienta quiere revisar su cuenta bancaria. Ni la clien-
zacin no produzca al menos un error. Cuando un error ocurre, se necesita informarlo al ta ni la cajera conocen la direccin del registro de la clienta. sta slo puede darle a la caje-
usuario. El informe de error contiene un listado de todos los errores descubiertos duran- ra su nmero de cuenta (llave). Aqu, un archivo indexado puede relacionar el nmero de
te el proceso de actualizacin y se presenta al usuario para que lo rectifique. cuenta (llave) con la direccin del registro (figura 13.5).
al Estructuras de archivos 13.4 Archivos Hashed ..
ARCHIVOS HASHED
Llave 11IIIIIIII11IIIIIIII11IIIIIIII*1. En un archivo indexado, el ndice relaciona la llave con la direccin. Un archivo hashed uti-
liza una funcin para lograr esta relacin. El usuario da la llave, la funcin relaciona la llave
con la direccin y la pasa al sistema operativo y el registro se recupera (figura 13.7).
1. Todo el archivo indexado se carga en la memoria principal (el archivo es pequeo y uti-
liza poca memoria). El archivo hashed elimina la necesidad de un archivo (ndice) extra. En un archivo inde-
xado usted debe mantener este ndice en el disco y cuando necesita procesar el archivo de da-
2. Se buscan las entradas, utilizando un algoritmo de bsqueda eficiente tal como una bs-
queda binaria, para encontrar la llave deseada. tos, primero debe cargar el ndice en la memoria, buscarlo para encontrar la direccin del
registro de datos y luego acceder al archivo de datos para tener acceso al registro. En un ar-
3. La direccin del registro se recupera. chivo hashed la direccin se encuentra mediante el uso de una funcin. No hay necesidad de
4. Utilizando la direccin. El registro de datos se recupera y se pasa al usuario. un ndice ni de toda la sobrecarga asociada con l. No obstante, ver que los archivos hashed
tienen sus propios problemas.
ARCHIVOS Una de las ventajas del archivo indexado es que usted puede tener ms de un ndice, cada unO
INVERTIDOS con una llave distinta. Por ejemplo, un archivo de empleados puede recuperarse con base ya
Sea en el nmero del seguro social o en el apellido. Este tipo de archivo indexado por lo ge~ MTODOS Para la relacin de llaves-direcciones, usted puede seleccionar uno de varios mtodos de dis-
nera! se llama archivo invertido. persin, tambin llamado hashing. Analizaremos unos cuantos de ellos en esta seccin.
DE HASHING
'"-
111 Estructuras de archivos
13.4 Archivos Hased ..
Mtodo directo En el hashing directo, la llave es la direccin sin ninguna manipulacin algortmica. El ar~
chivo debe, por tanto, contener un registro para cada nave posible. Aunque las situaciones pa~ Direccin Registro
fa el hashing directo son limitadas, ste puede ser muy poderoso debido a que garantiza que
no haya sinnimos o colisiones (los sinnimos o colisiones se analizan posteriormente en es- 001 ;;;;;;:;;;;;;:;;;:r
te captulo) como sucede con otros mtodos.
002
Veamos un ejemplo trivial. Imagine que una organizacin tiene menos de 100 empleados. 003 ~&67;;;;t;~;;4
A cada empleado se asigna un nmero entre 1 y 100 (ID del empleado). En este caso, si us-
ted crea un archivo de registros de 100 empleados, el nmero de empleado puede utilizarse
directamente como la direccin de un registro individual. Este concepto se muestra en la fi-
gura 13.8. El registro con la llave 025 (Vu Nguyen ... ) se relacion a la direccin (sector) 025.
Observe que no todos los elementos en el archivo contienen un registro de empleado. Una
parte del espacio est desperdiciada.
Figura 13.9 Mdulo de divisin
'Mtollo de Al utilizar el hashing de extraccin de dgitos, los dgitos seleccionados se extraen de la lla-
Direccin Registro
ve y se utilizan como la direccin. Por ejemplo, al usar su nmero de emplea~o de seis ~gitos
para relacionar a una direccin de tres dgitos (000-999), usted puede seleccIOnar el p~ero,
segundo, tercero y cuarto dgitos (a partir de la izquierda) y utilizar el tnnino co~o la direc-
cin. Usando las llaves de la figura 13.9, se relaconan con las direcciones como SIgue:
125870
122801
Si los datos reales que usted inserta en su lista contienen dos o ms sinnimos, tendr co-
Direccin de contenedor Contenedor
lisiones. Una colisin es el evento que ocurre cuando un algoritmo de hashing produce una
direccin para una llave de insercin y esa direccin ya est ocupada. La direccin produci_
da por el algoritmo de hashing se conoce como direccin base. La parte del archivo que con-
tiene todas las direcciones base se conoce como el rea principal. Cuando dos llaves
122803
colindan en una direccin base, usted debe resolver la colisin al colocar una de las llaves y
151354
sus datos en otra localidad.
Resolucin Con excepcin del mtodo directo, 'ninguno de los mtodos que analizamos para hashing crea
de colisiones una relacin uno a uno. Esto significa que cuando usted relaciona una llave nueva a una di-
reccin, puede crear una colisin. Existen varios mtodos para manejar colisiones, cada uno
de ellos independiente del algoritmo de hashing. Es decir. cualquier mtodo de hashing puede
utilizarse con cualquier mtodo de resolucin de colisiones. En esta seccin analizamos a1~ Figura 13.13 Resolucin de hashing de contenedor
gunos de estos mtodos.
Direccionamiento abierto El primer mtodo de resolucin de colisiones, la resolucin de Hashing de contenedor Otro mtodo para manejar el problema de la colisin es direc-
direccionamiento abierto, resuelve colisiones en el rea principal. Cuando ocurre una coli- cionar a contenedores (buckets). La figura 13.13 muestra cmo resolver la colisin en la fi-
sin, las direcciones del rea principal se buscan para un registro abierto o desocupado donde gura 13.10 utilizando el hashing de contenedor. Un contenedor es un nodo que puede
pueden colocarse los nuevos datos. Una estrategia simple para los datos que no pueden alma- acomodar ms de un registro.
cenarse en la direccin base es almacenarlos en la siguiente direccin (direccin base + 1).
La figura 13.11 muestra cmo resolver la colisin de la figura 13.10 utilizando este mtodo. Mtodos de combinacin Hay varios mtodos para resolver colisiones. Como se vio con
El primer registro se almacena en la direccin 4 y el segundo se almacena en la direccin 5. los mtodos de hasrung, una implementacin compleja a menudo utiliza mltiples mtodos.
Direcciona
a la base
t t
122803 4 4 figura 13.14 Interpretaciones de texto y binaria de un archivo
151354 4
Un archivo de texto es un archivo de caracteres. No puede contener enteros, nmeros de pun-
to flotante o cualesquier otras estructuras de datos en su formato de memoria interna. Para al-
TEXTO
macenar estos tipos de datos, deben convertirse a sus formatos equivalentes de caracteres.
Algunos archivos slo pueden utilizar tipos de datos de caracteres. Los ms notables son
cadenas de caracteres para teclados, monitores e impresoras. sta es la razn por la cual us-
ted necesita funciones especiales para dar formato a los datos que entran a o salen de estos
Figura 13.12 Resolucin de listas ligadas dispositivos.
Estructuras de archivos 13,8 Prctica
Veamos un ejemplo. Cuando los datos (una cadena de caracteres) se envan a la impreso~ En el hashing de extraccin de dgitos, la direccin se 11 El mtodo de resolucin de lista ligada utiliza un rea
fa, la impresora toma ocho bits, los interpreta como un byte y los decodifica en el sistema de compone de dgitos seleccionados desde la llave. separada para almacenar las colisiones y encadena a to~
codificacin de la impresora (ASCII o EBCDIC). Si el caracter pertenece a la categora im. Las llaves que se relacionan a la misma direccin se lla- dos los sinnimos en una lista ligada.
primible, ste se imprimir; de lo contrario, se realiza alguna otra actividad, por ejemplo la man sinnimos. lit El hashing de contenedor es un mtodo de resolucin de
impresin de un espacio. La impresora toma los siguientes ocho bits y repite el proceso. Es~ Una colisin es un evento que ocurre cuando un algorit- colisiones que utiliza contenedores, nodos que acomo-
to se realiza hasta que una cadena de caracteres se agota. mo de hashing produce una direccin para una insercin dan mltiples ocurrencias de datos.
y esa direccin ya est ocupada.
ARCHIVOS Un archivo binario es una coleccin de datos almacenados en el formato interno de la Com- Los mtodos de resolucin de colisiones mueven los da- 11 Un archivo de texto es un archivo de caracteres.
BINARIOS putadora. En esta definicin, los datos pueden ser un entero, un nmero de punto flotante, un tos direccionados que no pueden insertarse a una direc~
11 Un archivo binario son datos almacenados en el forma~
caracter o cualquier otra informacin estructurada (excepto un archivo). cin nueva.
to interno de la computadora.
A diferencia de los archivos de texto, los archivos binarios contienen datos que son signi~ El mtodo de resolucin de colisiones de direcciona-
ficativos slo si son interpretados adecuadamente por un programa. Si los datos son textua~ miento abierto busca en el rea principal para una direc-
les, 1 byte se utiliza para representar un caracter. Pero si los datos son numricos, 2 o ms cin abierta (libre) para que se inserten los datos.
bytes se consideran un elemento de datos. Por ejemplo, suponga que est utilizando una com~
putadora personal que usa dos bytes para almacenar un entero. En este caso, cuando usted lee
o escribe un entero, dos bytes se interpretan como un entero.
13.8 PRCTICA
>DIIl'II'I':UNTAS DE REPASO PREGUNTAS DE OPCiN MLTIPLE
13.6 TRMINOS LLAVE 1. Qu es un archivo y cul es su funcin? 18, Un archivo _ _ _ _ puede accederse en forma alea-
2. Cules son los dos tipos generales de mtodos de acce- toria.
acceso aleatorio archivo maestro viejo hashing de extraccin de dgitos a, secuencial
so a archivos?
acceso secuencial archivo secuencial hashing de residuo (mdulo) b, indexado
3. Por qu se necesita lm marcador EOF cuando se proce-
rea principal cinta de divisin e, hashed
san los archivos secuencialmente?
archivo colisin hashing directo d. byc
archivo binario contenedor ndice 4. Cul es la relacin entre el archivo maestro nuevo y el
archivo de datos disco llave archivo maestro viejo? 19. Un archivo _ _ _ _ puede accederse en forma se-
archivo de informe de errores dispositivo de almacenamiento lista ligada 5. Cul es el propsito del archivo de transicin en la ac- cuencial.
archivo de texto dispositivo de almacenamiento auxiliar mtodo de acceso tualizacin de un archivo secuencial? a, secuencial
archivo de transaccin dispositivo de almacenamiento resolucin de colisiones 6. D un ejemplo propio de una situacin en la cual un ar~ b, indexado
archivo hashed secundario resolucin de lista ligada chivo debe accederse en forma aleatoria. e, hashed
archivo indexado direccin base resolucin de direccionamiento abierto d, byc
7. D un ejemplo propio de una situacin en la cual un ar-
archivo invertido divisin de mdulo sinnimo chivo debe accederse en forma secuencial. 20. Cuando un archivo secuencial se actualiza, el archivo
archivo maestro nuevo hashing de contenedor Describa la funcin de la direccin en un archivo al que _ _ _ _ obtiene la actualizacin ms reciente.
se accedi en forma aleatoria. a. maestro nuevo
Cmo se relaciona el ndice con el archivo de datos en b. maestro viejo
los archivos indexados? c. de transaccin
13.7 RESUMEN Cul es la relacin entre la llave y la direccin en el d. de informe de errores
hashing directo de lill archivo? 21. Cuando un archivo secuencial se actualiza, el archivo
11 Un archivo es una coleccin de datos relacionados que 11 Para el acceso aleatorio de un registro, puede utilizarse
11. Cul es la relacin entre la llave y la direccin en el _ _ _ _ contiene una lista de todos los errores que
se tratan como una unidad. un archivo indexado que consiste en un archivo de datos
hashing de divisin de mdulos de un archivo? ocurren durante el proceso de actualizacin.
!II Un registro en un archivo puede accederse en forma se~
y un ndice.
12. Cul es la relacin entre la llave y la direccin en el a. maestro nuevo
cuencial o aleatoria. 11 En el acceso aleatorio a archivos, el ndice relaciona una
hashing de extraccin de dgitos de un archivo? b. maestro viejo
llave con una direccin, la cual se utiliza despus para
111 En el acceso secuencial, cada registro debe accederse en 13. Qu es una colisin? c. de transaccin
recuperar el registro del archivo de datos.
secuencia, uno despus de otro, de principio a fin, 14. Proporcione tres mtodos de resolucin de colisiones. d. de informe de errores
111 Un archivo hashed es un archivo de acceso aleatorio en
11 La actualizacin de un archivo secuencial requiere un el cual una funcin relaciona una llave con una direccin. 15. Cmo funciona el mtodo de resolucin de colisiones 22. Cuando un archivo secuencial se actualiza, el archivo
archivo maestro nuevo, un archivo maestro viejo, un ar~ I!I En el hashing directo, la llave es la direccin y no se ne~ de direccionamiento abierto? _ _ _ _ contiene los cambios a aplicar.
chivo de transaccin y un archivo de informe de errores. cesita ninguna manipulacin de algoritmos. 16. Comente las dos reas de almacenamiento requeridas pa- a. maestro nuevo
11 En el acceso aleatorio, un registro puede accederse sin 111 En el hashing de mdulo de divisin, la llave se divide ra el mtodo de resolucin de colisiones de lista ligada. b. maestro viejo
tener que recuperar ningn registro antes que l. La di- entre el tamao de archivo. La direccin es el residuo 17. Cul es la diferencia ante un archivo de texto y un archi- c. de transaccin
reccin del registro debe conocerse. ms 1. vo binario? d. de informe de errores
.. Estructuras de archivos
13.8 Prctica la
En el mtodo de resolucin de colisiones _ _ _ _ ., un 44. Un archivo hashed utiliza un mtodo de mdulo de divi-
23. Despus de que se actualiza un archivo secuencial, el ar- 31. En el mtodo de dispersin o hashing _ _ _~
nodo puede mantener mltiples piezas de datos. sin con 41 como el divisor. Cul es la direccin para
chivo contiene los datos ms actuales. gitos seleccionados se extraen de la llave y se
a. maestro nuevo a. direccionamiento abierto cada una de las llaves siguientes?
como la direccin.
b. maestro viejo 8. directo b. lista ligada a. 14232
c. de transaccin b. residuo de divisin c. hashing de contenedor b. 12560
d. de informe de errores c. mdulo de divisin d. ayb c. 13450
24. Cuando un archivo secuencial necesita actualizarse, el d. extraccin de dgitos d. 15341
En el mtodo de resolucin de colisiones _ _ __
archivo en almacenamiento se vuelve el ar- 32. En el mtodo de dispersin o hashing _ _ __
tanto el rea principal como el rea de desbordamiento 45. En el mtodo de dispersin o hashing de cuadrado me-
chivo _ _ __ ve se divide entre el tamao de archivo y la direcc:icl"";
almacenan datos, dio, la llave se eleva al cuadrado y la direccin se selec-
a. maestro nuevo; maestro viejo el residuo ms 1,
a. direccionamiento abierto ciona de la mitad del resultado. Utilice este mtodo para
b. maestro viejo; maestro nuevo a. directo seleccionar la direccin de cada una de las llaves siguien-
b. lista ligada
c. de transaccin; maestro nuevo b. mdulo de divisin tes. Use los dgitos 3, 4 Y 5 (a partir de la izquierda).
c. hashing de contenedor
d. de transaccin; maestro viejo c. residuo de divisin
d. extraccin de dgitos
d. ayb a. 142
25. Si la llave del archivo de transaccin es 20 y la llave del
33. En el mtodo de dispersin o hashing _ _ __ b. 125
primer archivo maestro es 25, entonces usted _ _ __ Un archivo _ _ _ _ es un archivo de caracteres.
sinnimos o colisiones. c. 134
a. aade el nuevo registro al archivo maestro nuevo a. de texto
b. revisa el contenido del archivo maestro viejo a. directo b. binario d. 153
c. elimina los datos b. mdulo de divisin c. de caracter 46. En el mtodo de dispersin o hashing de doblado. la lla-
d. escribe el registro del archivo maestro viejo en el ar- c. residuo de divisin d. hashed ve se divide en partes. Las partes se suman para obtener
chivo maestro nuevo d. extraccin de dgitos la direccin. Utilice este mtodo para encontrar la direc-
26. Si la llave del archivo de transaccin es 20 con cdigo de 34. Los( as) son llaves que se direccionan a la cin de las llaves siguientes. Divida la llave en partes de
borrado y la llave del primer archivo maestro es 20, en- misma localidad en el archivo de datos. dos dgitos y sillelas para encontrar la direccin.
tonces usted _ _ __ a. colisiones Dados el archivo maestro viejo y el archivo de transac-
a. 1422
b. contenedores cin en la figura 13.15, encuentre el archivo maestro
a. aade la transaccin al archivo maestro nuevo b. 1257
c. sinnimos nuevo, Si hay algn error, tambin cree un archivo de
b. revisa el contenido del archivo maestro viejo c. 1349
c. elimina los datos d. listas ligadas error.
35. Cuando un algoritmo de hashing produce una direccin
d. 1532
d. escribe el registro del archivo maestro viejo en el ar-
chivo maestro nuevo para una llave de insercin y esa direccin ya est ocu- Archivo de transaccin 47. En el mtodo de dispersin o hashing de lmite doblado,
Archivo maestro viejo
pada. se le llama _ _ __ X4" Joh'\.Vu ,'~:> ;17:00 A 17 Martha Kert >: 17 :{J' la llave se divide en partes. Las partes izquierda y dere-
27. Si un registro necesita accederse , un archivo
a. colisin :;):{LGeorgeBrow~ 1~;00 D i6 cha se invierten y se suman a la parte media para obte-
indexado es el tipo de archivo ms eficiente para usar. "I7'<Duc Loo' 1'foo R 31
b. sonda ner la direccin. Utilice este mtodo para encontrar la
a. en fonna secuencial ::'20"'Li Nguy6n 12.00 D 45,
c. sinnimo A 89' 'Orva Gi1?ert '20,00 direccin 'de las llaves siguientes. Divida la llave en tres
b. en fonna aleatoria :26'1dWhit<:,,' 23.00
d. lista ligada 31 Iojmellibg ~,:27.00, partes de dos dgitos, invierta los dgitos en la primera y
c. en orden 4S Bruce Wu \ 12.00
36. La direccin producida por un algoritmo de hashing es tercera partes y luego sume las partes para obtener la di-
d. ninguno de los anteriores 89 MifrkBlac'k" ';-'>19.00
la direccin _ _ __ ;~,~, Be~y YeIo~ 14.00" reccin.
28. Un archivo indexado consiste en _ _ __
a. de sonda 3. 142234
a. un archivo de datos secuencial
b. de sinnimo b. 125711
b. un ndice Fiq,.ra 13.15 Ejercicio 42
c. de colisin c. 134919
c. un archivo de datos aleatorio
d. base
d. 153213
d. by c
37. El rea es el rea de archivo que contiene to- Cree un archivo de ndice para la tabla 13.1.
29. El ndice de un archivo indexado tiene _ _ _ campos. das las direcciones base, 48. Encuentre la direccin de las llaves siguientes utilizando
a. dos el mtodo de mdulo de divisin y un archivo de tama-
a. de sonda
b. tres Llave Nombre Dep. o 411. Si hay una colisin, utilice el direccionamiento
b. ligada
c. cuatro 123453 JohnAdarn CIS abierto para resolverlo, Dibuje una figura para mostrar la
c. hash
d. cualquier nmero de d. principal 114237 TedWhite MAT posicin de los registros,
30. Para acceder a un registro en fonna aleatoria, se utiliza 38. En el mtodo de resolucin de colisiones _ _ __ 156734 JimmyLions ING 3. 10278
un(a) en el ndice para encontrar una direc- usted intenta poner en la localidad 124 los datos que no 093245 Sophie Grands NEG b. 08222
cin. pueden colocarse en la localidad 123. 077654 Eve Primary CIS c. 20553
a. direccin a. direccionamiento abierto 256743 Eva Lindens ING d. 17256
b. llave b. lista ligada Bob Bauser ECO
423458 49. Repita el ejercicio 48 usando la resolucin de lista li-
c. sinnimo c. hashing de contenedor
d. aob Tabla 13.1 Ejercicio 43 gada.
d. ay b
L
14.1 Sistemas de administracin de bases de datos El
1 SISTEMA DE ADMINISTRACIN DE BASES DE DATOS
Un sistema de administracin de bases de datos (DBMS: Database managernent systern)
define, crea y mantiene una base de datos. El DBMS adems permite a los usuarios acceso
controlado a los datos en la base de datos. Un DBMS es una combinacin de cinco compo-
ases de atos nentes: hardware, software, datos, usuarios y procedimientos (figura 14.1).
DBMS
El hardware es el sistema de cmputo fsico que permite acceso fsico a los datos. Por ejem-
plo, las terminales de usuario, el disco duro, la computadora principal y las estaciones de tra-
bajo se consideran parte del hardware en un DBMS.
Comenzamos por definir un sistema de administracin de bases de datos (DBSM) y anali-
zar sus componentes. Luego presentamos los tres niveles de arquitectura para un DBMS. Nos
El software es el programa que permite a los usuarios acceder, mantener y actualizar los da-
concentr~os en el modelo de bases de datos relacionales con ejemplos de sus operaciones. tos fsicos. Adems, el software controla cul usuario puede tener acceso a qu parte de los
Luego analizarnos un lenguaje (el lenguaje de consultas estructurado o SQL) que opera en las datos en la base de datos.
bases de datos relacionales. Finalmente, estudiamos brevemente otros modelos de bases de
datos.
Los datos en una base de datos se almacenan fsicamente en los dispositivos de almacena-
Una ba~~ de datos es una coleccin de datos que de una manera lgica, pero no necesaria- miento. En una base de datos los datos son una entidad separada del software que accede a
mente fSIca, es coherente. Normalmente, debe haber algn significado inherente a los datos los mismos. Esta separacin permite la organizacin para cambiar el software sin tener que
para justificar la creacin de la base de datos. cambiar los datos fsicos o la manera en que stos se almacenan. Si una organizacin ha de-
cidido utilizar un DBMS, entonces toda la informacin requerida por la organizacin debe
mantenerse bajo una entidad, para que sea accesible por el software en el DBMS.
Usuarios El trmino usuarios en un DBMS tiene un amplio significado. Podemos dividir a los usua-
rios en dos categoras: usuarios finales y programas de aplicacin.
Usuarios finales Los usuarios finales son aquellas personas que pueden acceder a la ba-
se de datos directamente para obtener informacin. Hay dos tipos de usuarios finales: el ad-
ministrador de bases de datos (DBA) y el usuario normal. El administrador de bases de datos
tiene el nivel mximo de privilegios. Puede controlar a los otros usuarios y su acceso al
DBMS. Puede otorgar algunos de sus privilegios a alguien ms pero conserva la capacidad
para revocarlas en cualquier momento. Un usuario normal, por otro lado, slo puede utilizar
parte de la base de datos y tiene acceso limitado.
Programas de aplicacin Los dems usuarios de los datos en una base de datos son los
programas de aplicacin. Las aplicaciones necesitan tener acceso a los datos y procesarlos.
Por ejemplo, un programa de aplicacin de nmina necesita tener acceso a parte de los datos
en una base de datos para crear cheques de pago a fin de mes.
Procedimientos El ltimo componente de un DBMS es una serie de procedimientos o reglas que deben defi-
nirse claramente y que deben seguir los usuarios de la base de datos.
El Bases de datos 14.3 Modelos de bases de datos ..
En un modelo jerrquico, los datos estn organizados como un rbol invertido. Cada entidad
tiene slo un padre, pero puede tener varios hijos. En la parte superior de la jerarqua, el r-
bol es una sola entidad, la cual se llama ralz. La figura 14.3 muestra una vista lgica del mo-
delo jerrquico. Como el modelo jerrquico es obsoleto, no es necesario ningn anlisis de
este modelo.
DEPARTAMENTO
PROFESORES
17;>""= rr.;;;;:::;:ESSTUDIANTES
NIVEl.. CONCEPTUAl.. El nivel conceptual, o comunitario, define el punto de vista lgico de los datos. En este ni-
vel se define el modelo de datos y los diagramas de esquemas. Las funciones principales del
DBMS estn en este nivel. El DBMS cambia la vista interna de los datos a la vista externa de
los mismos que el usuario necesita ver. El nivel conceptual es un intermediario y libera a los
usuarios del manejo de] nivel interno.
NIVEl.. EXTERNO El nivel externo interacta directamente con el usuario (usuarios finales o programas de apli~
cacin). Cambia los datos que llegan del nivel conceptual a un formato y vista que son cono~
cidos por el usuario. Figura 14.4 Modelo de red
b
al Bases de datos
14.5 Operaciones con relaciones ..
MODELO En un modelo relacional, los datos se organizan en tablas bidimensionales llamadas relacio~
RELACIONAL lles. No hay una estructura jerrquica o de red impuesta en los datos. No obstante, las tablas Atributos
o relaciones estn relacionadas entre s, como se ver en breve (figura 14.5).
No. Nombre del curso Unidad
CISl5 Introduccin a e 5
CISl7 Introduccin a Java 5 Tuplas
DEPARTAMENTO CISl9 UNIX 4
CIS51 Conectividad en red 5
CURSOS
,
,1------------------------------- _________________ 1 Cada columna en la tabla debe tener un nombre que sea nico en el mbito de la rela-
CURSOS cin. El nmero total de atributos para una relacin se conoce como el grado de la relacin.
ESTUDIANTES Por ejemplo, en la figura 14.6, la relacin tiene un grado de 3. Observe que los nombres
de los atributos no se almacenan en la base de datos; el nivel conceptual utiliza los atri-
butos para dar significado a cada columna.
'lUpIas. Cada fila en una relacin se conoce como tupla. Una tupla define una coleccin
de valores de atributos. El nmero total de filas en una relacin se llama cardinalidad
de la relacin. Observe que la cardinalidad de una relacin cambia cuando se aaden o
eliminan tuplas. Esto vuelve dinmica a la base de datos.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ______ 1
La operacin de insercin es una operacin unaria; se aplica a una sola relacin. La opera-
14.4 MODELO R.ELACBONAL cin inserta una nueva tupla en la relacin. La figura 14.7 muestra un ejemplo de la ope-
racin de insercin. Un nuevo curso (CIS52) se ha insertado (agregado) a la relacin.
Continuamos nuestro anlisis de las bases de datos con el modelo ms popular, el sistema de
bases de datos relacionales (RDBMS: relational database management system). En este
modelo, los datos (universo del discurso) se representan mediante una serie de relaciones.
CURSOS
No. Nombre del curso Unidad
RELACiN No. Nombre del curso Unidad
Una relacin, en apariencia, es una tabla bidimensional. El RDBMS organiza los datos de ma- CISI5 Introduccin a e 5
nera que la vista externa sea una serie de relaciones o tablas. Esto no significa que los datos CISI5 Introduccin a C 5 Insercin Introduccin a Java 5
se almacenen como tablas; el almacenamiento fsico de los datos es independiente de la for- CISI7 Introduccin a Java 5 (Insert) UNIX 4
CIS19 UNIX 4
ma en que stos estn lgicamente organizados. La figura 14.6 muestra un ejemplo de una re- CIS51 Conectividad en red 5
lacin. CIS51 Conectividad en red 5
CIS52 Protocolos TCP!IP 6
Una relacin en un RDBMS tiene las caractersticas siguientes:
11 Nombre. Cada relacin en una base de datos relacional debe tener un nombre nico en- Figura 14.7 Operacin de insercin
tre otras relaciones.
11 Atributos. Cada columna en una relacin se llama atributo. Los atributos son los enca-
ELIMINACiN La operacin de eliminacin tambin es una operacin unaria. La operacin elimina una tu-
bezados de las columnas en la tabla. Cada atributo da significado a los datos almacena- pla definido por un criterio de la relacin. La figura 14.8 muestra un ejemplo de la operacin
dos bajo l.
de elinllnacin. El curso CISl9 se elinlln.
.. Bases de datos 14.5 Operaciones con relaciones ..
PROYECCiN La operacin de proyeccin tambin es una operacin unaria; se aplica a una sola relacin
CURSOS y crea otra relacin. Los atributos (columnas) en la relacin resultante son un subconjunto de
No. Nombre de) curso Unidad los atributos de la relacin original. La operacin de proyeccin crea una relacin en la cual
No. Nombre del curso Unidad cada tupla tiene menos atributos. El nmero de tuplas (filas) en esta operacin sigue siendo
CIS15 Introduccin a e 5
Introduccin a Java 5 Eliminacin CIS15 Introduccin a e 5 el mismo. La figura 14.11 muestra un ejemplo de la operacin de proyeccin que crea una re-
CIS17
UNIX 4 (Delete) CIS17 Introduccin a Java 5 lacin con slo dos columnas.
CIS19
Conectividad en red 5 CISSl Conectividad en red 5
CIS51
CIS52 Protocolos TCPIIP 6 CIS52 Protocolos TCPIIP 6
CURSOS
Figura 14.8 Operacin de eliminacin
No. Nombre del curso Unidad No. Unidad
CISIS Introduccin a C 5 CIS15 5
CIS17 Introduccin a Java 5 Proyeccin CIS17 5
ACTUALIZACiN La operacin de actualizacin tambin es una operacin unaria; se aplica a una sola rela~ CIS19 UNIX 4 (Project) CIS19 4
cin. La operacin cambia el valor de algunos atributos de una tupla. La figura 14.9 muestra CIS51 Conectividad en red 5 CIS51 5
un ejemplo de la operacin de actualizacin. El nmero de unidades para CIS51 se ha actua- CIS52 Protocolos TCP/IP 6 CIS52 6
lizado (cambiado) de 5 a 6.
Figura 14.11 Operacin de proyeccin
CURSOS La operacin de juntura es una operacin binaria; toma dos relaciones y las combina con
No. Nombre del curso Unidad No. Nombre del curso Unidad base en atributos comunes. Esta operacin es muy compleja y tiene muchas variantes. En la
figura 14.12 aparece un ejemplo muy simple en el cual la relacin de CURSOS se combina
CIS15 Introduccin a e 5 C1S15 Introduccin a e 5
Introduccin a Java 5
con la relacin de IMPARTIDOS POR para crear una relacin que muestra toda la infonna-
CIS17 CIS17 Introduccin a Java 5
CIS19 UNIX 4 CIS19 UNIX 4 cin sobre los cursos, incluyendo los nombres de los profesores que los imparten. En este ca-
CIS51 Conectividad en red 5 CIS51 Conectividad en red 6 so, el atributo comn es el nmero de curso (No.).
CIS52 Protocolos TCPIIP 6 CIS52 Protocolos TCP/IP 6
CIS15 Introduccin a C 5
SELECCiN La operacin de seleccin es una operacin unaria que se aplica a una sola relacin y crea CIS17 Introduccin a Java 5
otra relacin. Las tuplas (filas) de la relacin resultante son un subconjunto de las tuplas de CIS19 UNIX 4
CIS51 Conectividad en red 5
la relacin original. Esta operacin utiliza algunos criterios para seleccionar algunas de las tu- CIS52 Protocolos TCP/lP 6 No. Nombre del curso Unidad Profesor
plas de la relacin original. El nmero de atributos (columnas) en esta operacin permanece
CIS15 Introduccin a C Loe
~
5
igual. La figura 14.10 muestra un ejemplo de la operacin de seleccin. En esta figura, hay IMPARTIDO POR Juntura CISI? Introduccin a Java 5 Lu
una relacin que muestra los cursos ofrecidos por un pequeo departamento. La operacin de (Join) CIS19 UNIX
No. Profesor 4 Walter
ClS51 Conectividad en red 5 Lu
seleccin pennite al usuario seleccionar slo los cursos de cinco unidades. CIS15 Lee CIS52 Protocolos TCPIIP 6 Lee
CIS17 Lu
CIS19 Walter
CIS51 Lu
CIS52 Lee
CURSOS
No. Nombre del curso Unidad Figura 14.12 Operacin de juntura
CIS15 Introduccin a C 5 No. Nombre del curso Unidad
est la lista de tumos para CIS15; en la esquIDa inferior izquierda est la lista para CIS52. El
resultado es una relacin con infonnacin sobre los estudiantes que toma ya sea CIS15,
4.6 lENGUAJE DE CONSULTAS ESTRUCTURADO
CIS52 o ambos.
El lenguaje de consultas estructurado (SQL: structured query language) es el lenguaje es-
tandarizado por el Instituto Nacional Norteamericano de Estndares (ANSI) y la Orgauiza-
cin Internacional para la Estandarizacin (ISO) para usar en las bases de datos relacionales.
INTERSECCiN La operacin de interseccin tambin es una operacin binaria; toma dos relaciones y crea Es un lenguaje declarativo (no de procedimientos), lo cual significa que los usuarios declaran
una nueva relacin. Al igual que la operacin de unin, las dos relaciones deben tener los mis~ lo que quieren sin tener que escribir un procedimiento paso a paso. El lenguaje SQL prime-
mos atributos. La operacin de interseccin, como lo define la teora de conjuntos, crea una ro se implement por Orade Corporation en 1979; desde entonces se han liberado nuevas ver-
nueva relacin en la cual cada tupla es un miembro de ambas relaciones. Por ejemplo, la fi- siones de SQL.
gura 14.14 presenta dos relaciones de entrada. El resultado de la operacin de interseccin es En esta seccin se definen algunas instrucciones comunes en el lenguaje SQL que se re-
una relacin con informacin sobre los estudiantes que toman tanto CIS15 como CIS52. lacionan con las operaciones definidas en la seccin anterior. De ninguna manera es un tuto-
rial para el lenguaje SQL. Para obtener ms informacin, consulte libros sobre SQL.
INSTRUCCIONIES Las instrucciones siguientes estn relacionadas con las operaciones que definimos.
Lista de turnos de CIS15
ID de estudiante Nombre Apellido huen: La operacin insert (insertar) utiliza el formato siguiente. La clusula de valores define todos
los valores de atributos para la tupla correspondiente a insertar.
145-67-6754 Joho Brown
232-56-5690 George Yellow
345-89-6580 Anne Green insert into NOMBRE-RELACION
459-98-6789 Ted Purple values (. .)
Interseccin 1I-+lI-ID:-:-:d,..""',..tu"di",n,..'...'I--oN...,om_h_re-+,,A,..p_elli_d_o...
Lista de turnos de CIS52 (lntersection) 145-67-6754 John Brown
ID de estudiante Nombre Apellido 232-56-5690 George Yellow Por ejemplo, la operacin de insercin en la figura 14.7 puede implementarse en SQL uti-
342-88-9999 Rich White lizando;
145-67-6754 John Brown
232-56-5690 George Yellow insert iht~ QU~sos
values ("CIS52" f "Protocolos TCPlIP" I 6)
Figura 14.14 Operacin de interseccin Observe que los valores de cadena estn entrecomillados; los valores numricos no lo estn.
Delete La operacin delete (eliminar) utiliza el siguiente formato. Los criterios para la eliminacin
DIFERENCIA La operacin de diferencia tambin es una operacin binaria. Se aplica a dos relaciones con se definen en la clusula where.
los mismos atributos. Las tuplas en la relacin resultante son aquellas que estn en la prime-
ra relacin pero no en la segunda. Por ejemplo, la figura 14.15 muestra dos relaciones de en- delete from NQMBRE-RELACION
trada. El resultado de la operacin de diferencia es una relacin con inforinacin sobre los where criterios
estudiantes que tOllan CIS15 pero no CIS52.
Bases de datos 14.6 lenguaje de consultas estructurado ..
Por ejemplo, la operacin de eliminacin en la figura 14.8 puede irilplementarse en SQL Por ejemplo. la operacin de juntura en la figura 14.12 puede implementarse en SQL uti-
utilizando: lizando:
delete from,CURSOS
seletit No. "'~8~re de'1W"~~:~:~t',,: Dnidd. Profesor
wher',',{liI~' ,'~ '/~,iSl,9':;
'from CURSOS. 'IMPARTID0S"':'POR
where gURSOS.No = IMPARTlbO'Ef~:POR::'Nq)
Update La operacin update (actualizar) utiliza el formato siguiente. El atributo a cambiar se define
en la clusula set. Los criterios para la actualizacin se definen en la clusula where.
La operacin uruon (unir) utiliza el formato siguiente. Otra vez, el asterisco significa que se
seleccionan todos los atributos.
update NOMBRE-RELACION
set atributo! = valor1 atributo2 valor2,
where criterios select *
frorn RELACIONl
union
Por ejemplo, la operacin de actualizacin en la figura 14.9 puede implementarse en SQL select *
usando: f rorn RELAC ION2
update CURSOS
set unidad<:",:l: Por ejemplo, la operacin de unin de la figura 14.13 puede implementarse en SQL me-
where ==- ,4G;'*SS1"
diante:
Select La operacin select (seleccionar) utiliza el formato siguiente. El asterisco significa que todos select
los atributos se eligen, from Lista-turnos~CIS15
select *
from NOMBRE-RELACION
where criterios
La operacin intersection (interseccin) usa el formato siguiente, De nuevo, el asterisco sig-
Por ejemplo, la operacin de seleccin en la figura 14.10 puede implementarse en SQL nifica que se seleccionan todos los atributos,
usando:
i:,'select select *
*
from CUR~0iii;i; frorn RELACIONl
intersection
where uni~d = 5
select *
frorn RELACION2
Project La operacin project (proyectar) utiliza el formato siguiente. Los nombres de las columnas
para la nueva relacin se listan de manera explcita.
Por ejemplo, la operacin de interseccin de la figura 14.14 puede implementarse en SQL
select lista-atributos utilizando:
from NOMBRE-RELACION
sele6~;-:; ,)*
from -::-:::\J~tS~:~turnos...:6j?~i;5
Por ejemplo, la operacin de proyeccin en la figura 14.11 puede implementarse en SQL ihter:~ecti'o:h";
mediante: select *
from Lista-turnos-CIS52
sele~_t_ ,N(F:'-~'unidad
from :C;URSOS
La operacin difference (diferencia) utiliza el siguiente formato. Nuevamente, el asterisco
Join La operacin join (juntar) emplea el siguiente formato, La lista de atributos es la combina- significa que se seleccionan todos los atributos,
cin de atributos de las dos relaciones de entrada; los criterios definen explcitamente los atri-
butos utilizados como atributos comunes. select *
from RELACIONl
select lista-atributos minus
from RELACION1, RELACION2 select *
where criterios from RELACION2
.. Bases de datos 14.9 Resumen ..
Por ejemplo, la operacin de diferencia de la figura 14.15 puede implementarse en SQL acceso a los mismos. El objeto departamento puede definir los atributos del departamento y
mediante: cmo puede accederse a ellos. Asimismo, la base de datos puede crear una relacin entre un
objeto empleado y un objeto departamento (un empleado trabaja en un departamento).
'alect *
f:om Lis,ta-turnos-CIS15
minu,fL";'
slect" "'i#i:
from LIsta-trnos-CIS52 ,
TERMINOS CLAVE
Combinacin El lenguaje SQL le permite combinar las instrucciones anteriores para extraer informacin
de instrucciones ms compleja desde una base de datos. de datos modelo de red operacin update (actualizar)
de datos distribuida duplicada modelo jerrquico procedimiento
de datos distribuida fragmentada modelo relacional programa de aplicacin
base de datos distribuida (replicada) nivel conceptual relacin
14.1 OTROS MODELOS DE BASES DE DATOS de datos orientada a objetos nivel externo sistema de administracin de bases
cardinalidad nivel interno de operacin difference
La base de datos relacional es uno de los modelos ms comunes de hoy en da. Los otros dos Comit de planeacin y requisitos operacin difference (diferencia) sistema de administracin de bases
modelos comunes son las bases de datos distribuidas y las bases de datos orientadas a obje- de estndares (SPARC) operacin intersection (interseccin) de datos relacionales (RDBMS)
tos. Analizamos brevemente estos dos modelos en esta seccin y dejamos una exploracin datos (DBMS) operacin join (juntura) software
ms profunda para libros sobre bases de datos. operacin project (proyeccin) tupla
lenguaje de consultas estructurado operacin select (seleccionar) usuario
BASES DE DATOS El modelo de bases de datos distribuidas en realidad no es un modelo nuevo. Est basado en (SQL) operacin union (unin) usuario final
DISTRIBUIDAS el modelo relacional. Sin embargo, los datos se almacenan en varias computadoras que se co-
munican a travs de Internet (o alguna red privada de rea amplia). Cada computadora (o si-
tio, como se le llama) mantiene parte o toda la base de datos. En otras palabras, los datos estn
ya sea fragmentados, con cada fragmento almacenado en un sitio, o duplicados en cada sitio.
RESUMEN
Bases de datos En una base de datos distribuida fragmentada los datos se localizan. Los datos utilizados
distribuidas localmente se almace_nan en el sitio correspondiente. Sin embargo, esto no significa que un
Una base de datos es una coleccin de datos que de ma- 111 El sistema de administracin de ,bases de datos relacio-
fragmentadas sitio no puede tener acceso a los datos almacenados en otro sitio. El acceso es principalmen-
nera lgica, pero no necesariamente fsica, es coherente. nales (RDBMS) es el nico modelo de base de datos de
te local pero de vez en cuando es global. Aunque cada sitio tiene control completo sobre sus
amplio uso hoy en da. Los modelos jerrquico y de red
datos locales, hay un control global a travs de Internet. Por ejemplo, una compaa fanna- Un sistema de administracin de bases de datos son obsoletos.
cutica puede tener mltiples sitios en muchos pases. Cada sitio tiene una base de datos con (DBMS) define, crea y mantiene una base de datos y
info111lacin sobre sus propios empleados, pero un departamento central de personal tiene el permite el acceso controlado a los usuarios. 111 Una relacin puede pensarse como una tabla bidimen-
control de todas las bases de datos. sional.
Un DBMS se compone de hardware, software, datos,
usuarios y procedimientos. i!I Cada columna en una relacin se llama atributo. El n-
Bases de datos En una base de datos distribuida replicada, cada sitio mantiene una rplica exacta de otro
mero de atributos en una relacin es su grado.
distribuidas sitio. Cualquier modificacin en los datos almacenados en un sitio se replica exactamente en
Los usuarios de DBMS pueden ser personas o progra~
cada sitio. La razn para tener una base de datos semejante es la seguridad. Si el sistema en l1li Cada fila en una relacin se llama tupla. El nmero de
replicadas mas de aplicacin.
un sitio falla, los usuarios en este sitio pueden tener acceso a los datos de otro sitio. filas en una relacin es su cardinalidad.
Un DBMS tiene tres niveles: interno, conceptual y exter-
11 Nueve operaciones pueden realizarse con las relaciones.
BASES DE DATOS La base de datos relacional tiene una vista especfica de datos que se basa en la naturaleza de no.
las bases de datos relacionales (tuplas y atributos). La unidad de datos ms pequea en una 11 Una operacin que acta sobre una relacin es un ope-
ORIENTADAS El nivel interno de un DBMS interacta directamente
base de datos relacional es la interseccin de una tupla y un atributo. Sin embrago, actualmen- rador unitario. Los operadores unitarios incluyen las
A OBJETOS con el hardware y se ocupa de los mtodos de acceso de operaciones de insercin, eliminacin, actualizacin, se-
te algunas.aplicaciones necesitan buscar datos en otra fonna. A algunas aplicaciones les gus-
bajo nivel y la transferencia de bytes hacia y desde el leccin y proyeccin.
ta ver los datos como una estructura (captulo 11), por ejemplo un registro hecho de campos.
dispositivo de almacenamiento.
Una base de datos orientada a objetos trata de mantener las ventajas del modelo relaciO- 11 Una operacin que acta sobre dos relaciones es un ope-
nal y al mismo tiempo permite que las aplicaciones accedan a los datos estructurados. En una El nivel conceptual de una DBMS defme la vista lgica rador binario. Los operadores binarios incluyen las ope-
base de datos orientada a objetos, se definen los objetos y sus relaciones. Adems, cada ob- de los datos as como el modelo de datos y los diagra- raciones de juntura, unin, interseccin y diferencia.
jeto puede tener atributos que pueden expresarse como campos. . mas de esquema.
Por ejemplo, en una organizacin, uno puede definir tipos de objetos tales como emplea- l1li El lenguaje de consultas estructurado (SQL) es ellen-
dos, departamentos y clientes. La clase empleados puede definir los atributos de un objeto , El nivel externo de un DBMS interacta directamente guaje estandarizado por el ANSI y la ISO para usarse en
empleado (nombre, apellido, nmero del seguro social, salario, etc.) y cmo se puede tener, con el usuario. las bases de datos relacionales.
, En una arquitectura DBMS de tres niveles, el nivel 35. Si una relacin tiene cinco filas, entonces su _ _ __
14.10 PRACTICA ____ interacta directamente con los usuarios. es cinco.
a. externo a. diferencia
PREGUNTAS DE REPASO 20. Los componentes del DBMS tales como la computado_ b. conceptual b. cardinalidad
ra y los discos duros que permiten acceso fsico a los da- c. interno c. duplicidad
1. Cules son los cinco componentes indispensables de un
tos se conocen como ~_ __ d. relatividad
DBMS? d. fsico
3. hardware 36. Un operador unario se aplica a la(s) relacin(es) _ __
2. Mencione los dos tipos de usuarios de un DBMS. b. software De los diversos modelos de bases de datos, el modelo
y crea una salida de relacin(es).
3. Cmo se relacionan los tres niveles de un DBMS en- c. usuarios ____ es el que ms prevalece hoy en da.
a. una; una
tre s? d. programas de aplicacin a. jerrquico b. una; dos
b. de red c. dos; una
4. Cules son los tres modelos de bases de datos? Cules 21. El ____ de un DBMS puede ser un administrador
c. relacional d. dos; dos
de ellos son populares en la actualidad? de bases de datos o una persona que necesita tener ac-
ceso a la base de datos. d. de lista ligada 37. Un operador binario se aplica a la(s) relacin(es)
5. Qu es una relacin en un RDBMS?
a. usuario final El modelo de bases de datos _ _ _ _ acomoda sus ___~ y crea una salida de relacin(es).
6. En una relacin, qu es un atributo? Qu es una tupla? b. programa de aplicacin datos en forma de un rbol invertido. a. una; una
7. Cul es la diferencia entre una operacin unaria y una c. programador a. jerrquico b. una;dos
operacin binaria? d. b yc b. de red c. dos; una
d. dos; dos
8. Mencione las operaciones unarias que se aplican a las 22. Tanto las personas como ____ pueden considerarse c. relacional
usuarios de una base de datos. d. de lista ligada 38. La operacin unaria de siempre da como re-
relaciones en un RDBMS.
sultado una relacin que tiene exactamente una fila ms
9. Mencione las operaciones binarias que se aplican a las a. los datos 30. En el modelo de bases de datos ____ o cada entidad que la relacin original.
relaciones en un RDBMS. b. el software puede accederse a travs de mltiples caminos. a. insercin
c. los programas de aplicacin a. jerrquico
10. Cul es la diferencia entre las operaciones de insercin b. eliminacin
d. el hardware
y eliminacin? b. de red c. actualizacin
23. En una arquitectura DBMS de tres niveles, la capa que c. relacional d. seleccin
11. Cul es la diferencia entre las operaciones de actualiza- interacta directamente con el hardware es el nivel d. de lista ligada 39. Si se quiere cambiar el valor de un atributo de una tupla,
cin y seleccin?
se utiliza la operacin de _ _ __
La relacin es un conjunto de datos organizado lgica-
12. Cul es la funcin de la operacin de proyeccin? a. externo a. proyeccin
mente como una tabla ____
13. Qu tiene en comn la relacin de salida de la opera- b. conceptual b. juntura
c. interno a. unidimensional
cin de juntura con las relaciones de entrada? c. actualizacin
d. fsico b. bidimensional
d. seleccin
14. Cul es la diferencia entre la operacin de unin y la c. tridimensional
operacin de interseccin? 24. En una arquitectura DBMS de tres niveles, el nivel 40. Si usted tiene tuplas en una relacin que contiene infor-
____ determina dnde se almacenan los datos en
d. de cualquier dimensin
macin de los estudiantes y quiere slo las tuplas de las
15. Cul es la funcin de la operacin de diferencia? realidad en el dispositivo de almacenamiento. Cada columna en una relacin se llama ~_ __ estudiantes mujeres, puede utilizar la operacin de
16. Qu es SQL? a. externo a. atributo
b. conceptual b. tupla a. proyeccin
17. En SQL, cmo se sabe en cules relaciones estn ac-
c. interno b. juntura
tuando los operadores? c. unin
d. fsico c. actualizacin
d. lista ligada
d. seleccin
PREGUNTAS DE OPCiN MLTIPLE 25. El nivel de una arquitectura DBMS de tres ni-
El grado de una relacin es el nmero de ____ en 41. La operacin que toma dos relaciones y las combina con
18. Un DBMS ~___ una base de datos. veles define la vista lgica de los datos.
la relacin. base en atributos comunes es la operacin de ~_ __
a. define a. externo a. atributos a. juntura
b. crea b. conceptual
b. tuplas b. proyeccin
c. mantiene c. interno
c. uniones c. unin
d. todos los anteriores d. fsico
d. posiciones d. interseccin
19. El cdigo DBMS que pennite al usuario tener acceso, 26. El modelo de datos y el esquema de un DBMS a menu- 42. Si se necesita eliminar un atributo en una relacin, pue-
mantener y actualizar es ~_ __ do se definen en el nivel ~_ __ Cada fila en una relacin se llama ____
de utilizarse la operacin de ____
a. el hardware a. externo a. atributo
a. juntura
b. los datos b. conceptual b. tupla b. proyeccin
c. el software c. interno c. unin c. unin
d. el usuario d. fsico d. posicin d. interseccin
14.10 Prctica ..
.. Bases de datos
Las bases de datos relacionales se basan entre entidades 64. Repita el ejercicio 62 para encontrar el tipo de relacin
43. Usted quiere crear una relacin llamada Nueva que con- 49. Usted tiene las relaciones A, B Y e, como se exhibe en
en una organizacin. Encuentre las entidades en el dise- (1: 1, l:M o M:N) entre departamento y profesor.
tenga tuplas pertenecientes tanto a la relacin A como a la figura 14.16. Muestre la relacin resultante si se apli-
la relacin B. Para hacerlo, puede utilizar la operacin can las siguientes instrucciones SQL. o de la figura 14.5. Por ejemplo, el estudiante y el CUI-
65. Repita el ejercicio 62 para encontrar una relacin uno a
de~_ __ so son dos de las entidades de este diseo.
select A3 uno entre dos entidades.
a. seleccin Se dice que las relaciones entre entidades son 1: 1 (uno a
fromA 66. Disee una base de datos relacional para una biblioteca.
b. unin uno, l:M (uno a muchos) y M:N (muchos a muchos).
c. proyeccin 50. Usted tiene las relaciones A, B Y C, segn aparece en la Utilizando el diseo de la figura 14.5, encuentre el tipo 67. Disee una base de datos relacional para una compaa
d. interseccin figura 14.16. Muestre la relacin resultante si se aplican de relacin (1:1, l:M o M:N) entre estudiante y curso. de bienes races.
las siguientes instrucciones SQL. Repita el ejercicio 62 para encontrar el tipo de relacin
44. Cul de las siguientes opciones es un operador unario?
select Bl (1: 1, l:M o M:N) entre estudiante y profesor.
a. interseccin
b. unin from B
c. juntura where B2 ~216
d. proyeccin
51. Usted tiene las relaciones A, B Y C, como se exhibe en
45. Cul de las siguientes opciones es un operador binario? la figura 14.16. Muestre la relacin resultante si se apli-
a. seleccin can las siguientes instrucciones SQL.
b. actualizacin update e
c. diferencia set el ~ 37
d. todas las anteriores
where el ~ 31
46. es un lenguaje declarativo utilizado en las ba- 52. Utilizando el diseo de la figura 14.5, muestre la instruc-
ses de datos relacionales.
cin SQL que crea una nueva relacin que contiene s-
a. PDQ lo el nmero de curso y el nmero de unidades para cada
h. SQL curso.
c. LES
d. PBJ 53. Utilizando el diseo de la figura 14.5, muestre la instruc-
cin SQL que crea una nueva relacin que contiene s-
lo el ID de estudiante y el nombre de estudiante.
EJERCICIOS 54. Utilizando el diseo de la figura 14.5, muestre la instruc-
47. Usted tiene las relaciones A, B Y e, como se exhibe en cin SQL que crea una nueva relacin que contiene s-
la figura 14.16. Muestre la relacin resultante si se apli- lo el nombre de profesor.
can las siguientes instrucciones SQL. 55. Utilizando el diseo de la figura 14.5, muestre la instruc-
select * cin SQL que crea una nueva relacin que contiene s-
lo el nombre de departamento.
fram A
where A2 ~ 16 56. Utilizando el diseo de la figura 14.5, muestre la instruc-
cin SQL que crea una nueva relacin que contiene los
48. Usted tiene las relaciones A, B Y e, como se exhibe en cursos tomados por el estudiante con el ID 2010.
la figura 14.16. Muestre la relacin resultante si se apli-
57. Utilizando el diseo de la figura 14.5, muestre la instruc-
can las siguientes instrucciones SQL.
cin SQL que crea una nueva relacin que contiene los
selectAl A2 cursos impartidos por el profesor Blake.
fromA 58. Utilizando el diseo de la figura 14.5, muestre la instrUc-
whereA2 ~ 16 cin SQL que crea una nueva relacin que contiene s-
lo los cursos que se componen de tres unidades.
59. Utilizando el diseo de la figura 14.5, muestre la instruC-
A B e
cin SQL que crea una nueva relacin que contiene s-
A3 ~1 B2
lo el nombre de los estudiantes que toman el curso
12 100 214 eIS015.
2 16 102 2 216 32 401 1025
3 16 103 3 284 33 405 1065 60. Utilizando el diseo de la figura 14.5, muestre la instnlC-
4 216
4 19 104 cin SQL que crea una nueva relacin que contiene el
nmero de departamento del Departamento de Ciencias
Figu.a 14.16 Ejercicios 47-53 de la Computacin.
15.1 Compresin sin prdida ..
.
resl n
,
En la compresin de datos sin prdida, se conserva la integridad de los datos. Los datos
originales y los datos despus de la compresin y descompresin son exactamente iguales
debido a que, en estos mtodos, los algoritmos de compresin y de descompresin son exac-
tamente inversos uno de otro. Ninguna parte de los datos se pierde en el proceso. Los datos
redundantes se eliminan en la compresin y se aaden durante la descompresin.
Estos mtodos por lo general se utilizan cuando uno no puede pennitirse el lujo de per-
e atos der un solo bit de datos. Por ejemplo, usted no quiere perder datos cuando comprime un ar-
chivo de texto o un programa.
En esta seccin estudiarnos tres mtodos de compresin sin prdida: la codificacin de
longitud de ejecucin, la codificacin de Huffman y el algoritmo de Lempel Ziv.
Mtodos de
compresin de datos
a. Datos originales
000000000000001000011000000000000
Mtodos sin prdida Mtodos con prdida
(texto o programas) (imgenes. video. audio)
Lempel Ziv i
b. Datos comprimidos
Figura 15.1 Mtodos de compresin de datos
Figura 15.3 Codificacin de longitud de ejecucin para dos smbolos
lB Compresin de datos 15.1 Compresin sin prdida 111
Hemos representado los conteos como un nmero binario de cuatro bits (entero sin sig-
no). En una situacin real, usted encontrara un nmero ptimo de bits para evitar introdu- @
cir redundancia extra. En la figura 15.3 hay catorce O antes del primer 1. Estos catorce O 17 12 12 27 32
estn comprimidos en el patrn binario 1110 (14 en binario). El siguiente conjunto de ceros
est comprimido en 0100 debido a que hay cuatro O. Enseguida usted tiene dos 1 en los da-
a.
~1
@
.59
~4@
tos originales, los cuales se representan mediante 0000 en los datos comprimidos. Finalmen-
te, los ltimos doce O en los datos estn comprimidos en 1100.
Observe que, dada una compresin binaria de cuatro bits, si hay ms de quince O, stos 17 27 32 d.
se dividen en dos o ms grupos. Por ejemplo, una secuencia de veinticinco O se cifra como b.
1111 1010. Ahora la pregunta es cmo sabe el receptor que stos son veinticinco O y no lOO
quince O, luego un 1 y despus diez O. La respuesta es que si el primer conteo es 1111, el re-
ceptor sabe que el siguiente patrn de cuatro bits es una continuacin de ceros, Ahora surge
~
otra pregunta: qu pasa si hay exactamente quince O entre dos 1? En este caso el patrn es
1111 seguido por 0000. cC@ 27 32
c. e.
CODIfICACiN En la codificacin de Huffman, usted asigna cdigos ms cortos a smbolos que ocurren
con mayor frecuencia y cdigos ms largos a aquellos que ocurren con menor frecuencia. figura 1.5.4 Codificacin de Huffman
DIE HUfFMAN
Por ejemplo, imagine que tiene un archivo de texto que utiliza slo cinco caracteres (A, B,
C, D, E), Elegimos slo cinco caracteres para hacer el anlisis ms simple, pero el procedi-
miento es igualmente vlido para un nmero de caracteres menor o mayor,
Antes de que pueda asignar patrones de bits a cada carcter, usted asigna a cada carcter
un peso basado en su frecuencia de uso, En este ejemplo suponga que la frecuencia de los
o 1
A: 00 D: 10
caracteres es la que se presenta en la tabla 15.1. El carcter A ocurre 17 por ciento de las ve-
B: 010 E: 11
ces, el carcter B ocurre 12 por ciento de las veces y as por el estilo,
C: 011
Cdigo
Carcter A B C D E
Frecuencia 17 12 12 27 32
Una vez que se ha establecido el peso de cada carcter, se construye un rbol con base en
aquellos valores. El proceso de construccin de este rbol se muestra en la figura 15.4. Si- Observe estos puntos sobre los cdigos. Primero, los caracteres con las frecuencias ms
gue tres pasos bsicos: altas reciben un cdigo ms corto (A, D Y E) que los caracteres con frecuencias ms bajas
(B y C). Compare esto con un cdigo que asigna a cada carcter longitudes de bits iguales.
1. Se pone todo el conjunto de caracteres en una fila. Cada carcter es ahora un nodo en Segundo, en este sistema de codificacin, ningn cdigo es un prefijo de otro cdigo, Los
el nivel inferior de un rbol. cdigos de dos bits, OO. 10 Y 11 no son el prefijo de ninguno de los otros dos cdigos (010)
2. Se encuentran los dos nodos dentro de los pesos ms pequeos y se juntan para for- y (011). En otras palabras. usted no tiene un cdigo de tres bits que comience con 00, 10 u
mar un tercer nodo, el cual d como resultado un rbol simple de dos niveles. El pe- 11. Esta propiedad hace del cdigo Huffman un cdigo instantneo. Explicaremos esta pro-
so del nuevo nodo son los pesos combinados de los dos nodos originales. Este nodo, piedad cuando analicemos la codificacin y la decodificacin en la codificacin de Huffman,
un nivel arriba de las hojas, es idneo para combinarse con otros nodos, Recuerde, la
suma de los pesos de los dos nodos elegidos debe ser ms pequea que la combina-
cin de cualesquier otras opciones posibles, Veamos cmo codificar el texto utilizando el ,?digo para nuestros cinco caracteres. La figu-
3. Repita el paso 2 hasta que todos los nodos, de cada nivel, se combinen en un solo rboL ra 15.6 muestra el texto original y el texto codificado. Vale la pena mencionar dos puntos so-
bre esta figura. Primero, observe que hay un sentido de compresin incluso en este pequeo
Una vez que el rbol est completo, utilcelo para asignar cdigos a cada carcter. Prime- cdigo ficticio. Si usted quiere enviar el texto sin utilizar la codificacin de Huffman, nece-
ro asigne un valor de 1 bit a cada rama. Comenzando desde la raz (nodo superior), asigne sita asignar un cdigo de tres bits a cada carcter. Enviara 30 bits, mientras que con la co-
un O a la rama izquierda y un 1 a la rama derecha, y repita este patrn en cada nodo. dificacin de Huffman usted slo enviara 22 bits.
El cdigo de un carcter se encuentra comenzando en la raz y siguiendo las ramas que Segundo, observe que no hemos utilizado ningn delimitador entre los bits que codifican
conducen a ese carcter. El cdigo mismo es el valor de bits en cada rama del camino toma- cada carcter. Escribimos los cdigos uno despus de otro. La belleza de la codificacin
do en secuencia. La figura 15.5 muestra el rbol final con bits aadidos a cada rama. Obser- Huffman radica en que ningn cdigo es el prefijo de otro cdigo. No hay ambigedad en
ve que movimos los nodos de la hoja para hacer que el rbol pareciera un rbol binario. la codificacin; adems, el receptor puede decodificar los datos recibidos sin ambigedad.
.. Compresin de datos 15.1 Compresin sin prdida ..
usted enva el diccionario est enviando informacin adicional, lo cual va en contra del pro-
Codificador psito general de la compresin)?
Un algoritmo prctico que utiliza la idea de la codificacin adaptativa basada en diccio-
A: 00 D: 10
nario es el algoritmo de Lempel Ziv (LZ). Este algoritmo ha pasado por varias versiones
B: 010 E: 11 EAEBAECDEA
(LZ77, LZ78. etc.). Presentamos la idea bsica del algoritmo con un ejemplo pero no ahon-
C: 011
damos en los detalles de diferentes versiones e implementaciones. En nuestro ejemplo, su-
ponemos que la cadena siguiente est por enviarse. Hemos elegido esta cadena especfica
para simplificar el anlisis.
Envo
( 1100110100011011l0~~ 1 BAABABBBAABBBBAA
CdIgO de Huffman Utilizando nuestra versin simple del algoritmo LZ, el proceso se divide en dos fases: la
compresin de la cadena y la descompresin de la cadena.
lA, 4B, 5A
BAABBBBAA
Figura 15,8 Ejemplo de decodificacin lempel Ziv Figura 15,9 Ejemplo de decodificacin lempel Ziv
carcter por uno CA por A en el primer paso y B por B en el segundo paso) y dos caracteres Veamos unos cuantos pasos en la figura.
por dos CAB por 2B en el tercer paso). Pero en este paso en realidad hemos reducido el n
mero de caracteres (ABB se convierte en 3B). Si la cadena original tiene muchas repetido PASO 1 La primera subcadena de la cadena comprimida se examina. Es B sin un ndice.
nes (lo cual es cierto en la mayora de los casos), podemos reducir en gran medida el nmero Debido a que la subcadena no est en el diccionario, sta se aade al diccionario. La subca-
de caracteres. dena (B) se inserta en la cadena descomprimida.
Los pasos restantes son similares a uno de los cuatro pasos precedentes, as que dejamoS PASO 2 La segunda subcadena (A) se examina; la situacin es similar al paso 1. Ahora la
al lector seguir adelante. Observe que el diccionario slo se utiliz por el emisor para encon- cadena descomprimida tiene dos caracteres (EA) y el diccionario tiene dos entradas.
trar los ndices. ste no se enva al receptor y el receptor debe crear el diccionario para si
mismo como veremos en la siguiente seccin. PASO 3 La tercera subcadena (2B) se examina. El proceso realiza una bsqueda en el dic-
cionario y remplaza el ndice 2 con la subcadenaA. La nueva subcadena (AB) se aade a la
Descompresin La descompresin es el proceso inverso de la compresin. Este proceso extrae las subcade- cadena descomprimida y AB se aade al diccionario.
nas de la cadena comprimida y trata de remplazar los ndices con la entrada correspondien-
te en el diccionario, el cual est vaco al principio y se construye gradualmente. Toda la idea PASO 4 La cuarta subcadena (3B) se examina. El proceso busca en el diccionario y rem-
eS que cuando se recibe un ndice, ya hay una entrada en el diccionario que corresponde a plaza el ndice 3 con la subcadena AB. La subcadena ABB ahora se aade a la cadena des-
ese ndice. La figura 15.9 muestra el proceso de descompresin. comprimida y ABB se aade al diccionario.
111 Compresin de datos 15.2 Mtodos de compresin con prdida
Dejamos la exploracin de los ltimos tres pasos como un ejercicio. Como habr notado, cuadrado del nmero de unidades. Es decir, para toda la imagen, se necesitan 307 2002 ope-
utilizamos un nmero como 1 o 2 para el ndice. En realidad el ndice es un patrn binario raciones (94 371 840000 operaciones). Si se utiliza JPEG, se necesitan 642 operaciones pa-
(posiblemente variable en longitud) para una mayor eficiencia. Tambin advierta que la co- ra cada bloque, lo cual da un total de 64' X 80 X 60 o 19 660 800 operaciones. Esto
dificacin LZ deja el ltimo carcter sin comprimir (lo cual significa menor eficiencia). Una disminuye 4 800 veces el nmero de operaciones.
versin de la codificacin LZ, llamada codificacin de Lempel Ziv Welch (LZW) comprime La idea de JPEG es cambiar la imagen en una serie de nmeros lineales (vector) que re-
incluso este solo carcter. No obstante, dejamos el anlisis de este algoritmo a libros de tex- vela las redundancias. Las redundancias (falta de cambios) pueden entonces eliminarse uti-
to ms especializados. lizando uno de los mtodos de compresin sin prdida que se estudiaron previamente. Una
versin simplificada del proceso aparece en la figura 15.11.
En este paso, cada bloque de 64 pixeles atraviesa por una transformacin llamada la trans-
COMPRESiN DE Como se vio en el captulo 2, una imagen puede representarse mediante un arreglo bidimen~ coseno formacin discreta coseno (DCT: discrete cosine transform). La transformacin cambia
IMGENES: WEG sional (tabla) de elementos de imagen (pixeles); por ejemplo, 640 X 480 ~ 307 200 pixe- los 64 valores de manera que Se mantienen las relaciones relativas entre pixeles, pero las re-
les. Si la imagen es de escala de grises, cada pixel puede representarse por un entero de ocho dundancias se revelan. La frmula se da en el apndice F. P(x, y) define un valor en el blo-
bits (256 niveles). Si la imagen es a color, cada pixel puede representarse por 24 bits (3 X 8 que; T(x, y) define el valor en el bloque transformado. El apndice F muestra la frmula
bits), con cada ocho bits representando uno de los colores en el sistema de colores RBO (o matemtica para una transformacin.
YIQ). Para simplificar el anlisis, nos concentramos en una imagen de escala de grises con Para comprender la naturaleza de esta transformacin, penntanos mostrar el resultado de
640 X 480 pixeles. las transformaciones para tres casos.
Usted puede ver por qu necesita compresin. Una imagen de escala de grises de 307 200
pixeles se representa mediante 2 457 600 bits y una imagen a color se representa por medio Caso 1 En este caso, usted tiene un bloque de escala de grises uniforme y el valor de ca-
de 7 372 800 bits. En JPEG, una imagen de escala de grises se divide en bloques de 8 X 8 da pixel es 20. Cuando se hacen las transformaciones se obtiene un valor diferente de cero
pixeles (figura 15.10). para el primer elemento (esquina superior izquierda). El resto de los pixeles tiene un valor
El propsito de dividir la imagen en bloques es disminuir el nmero de clculos, debido de cero debido a que, de acuerdo con la frmula, el valor de T(O, O) es el promedio de los
a que, como ver en breve, el nmero de operaciones matemticas para cada imagen es el otros valores. Esto se conoce como el valor DC (tomado de las siglas en ingls de corriente
directa, de la ingeniera elctrica). El resto de los valores, llamados valoresAC, en T(x, y) re-
presentan los cambios en los valores de pixel. Pero como stos no tienen cambios, el resto
de los valores son ceros (figura 15.12).
20 20 160 O O O O O O O
20 20 20 20 20 20 20 20 O O O O O O O O
..
..
..
lO
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20 O
O O O O O O O O
O O O O O O O
20 20 20 20 20 20 20 20 O O O O O O O O
lO lO 20 20 20 20 20 20 20 20 O O O O O O O O
20 20 20 20 20 20 20 20 O O O O O O O O
Imagen 20 20 20 20 20 20 20 20 O O O O O O O O
p (x.)') T(m.n)
Figura 15.10 Ejemplo de jPEG en escala de grises, 640 x 480 pixeles Figura 15.12 Caso 1: escala de grises uniforme
Compresin de datos 15.2 Mtodos de compresin con prdida ..
Caso 2 En el segundo caso, usted tiene un bloque con dos secciones diferentes de escala Observe que la nica fase en el proceso que no es reversible es la fase de cuantizacin.
de grises uniforme. Hay un cambio brusco en los valores de los pixeles (de 20 a 50). Cuan_ Usted pierde un poco de informacin aqu que no es recuperable. La verdad es que la nica
do se hacen las transformaciones se obtiene un valor De as como valores AC diferentes de razn por la cual JPEG se llama compresin con prdida es por la fase de cuantizacin.
cero. No obstante, slo hay unos cuantos valores diferentes de cero agrupados alrededor del
valor De. La mayora de los valores son cero (figura 15.13). Despus de la cuantizacin, se leen los valores de la tabla y los ceros redundantes se elimi-
nan. Sin embargo, para agrupar los ceros juntos, el proceso lee la tabla en forma diagonal a
manera de zigzag en vez de fila por fila o columna por columna. La razn es que si la ima-
gen no tiene cambios finos, la esquina inferior derecha de la tabla T son todos ceros, La fi-
2020202050505050 280 - 109 O 39 O -25 O 22 gnra 15.15 muestra el proceso. JPEG por lo general utiliza codificacin de longitud de
2020202050505050 O O O O O O O O
ejecucin en la fase de compresin para comprimr el patrn de bits que resulta de la linea-
2020202050505050 O O O O O O O O
20 20 20 20 50 50 50 50 O O O O O O O O lizacin de zigzag,
20 20 20 20 50 50 50 50 O O O O O O O O
20 20 20 20 50 50 50 50 O O O O O O O O
2020202050505050 O O O O O O O O T(m, n)
Imagen 20 20 20 20 50 50 50 50 O O O O O O O O
P (x, y) T(m,n)
Caso 3 En el tercer caso, se tiene un bloque que cambia gradualmente. Esto significa que
no hay un cambio brusco entre los valores de los pixeles vecinos. Cuando se hacen las trans-
formaciones se obtiene un valor De, tambin con muchos valores AC diferentes de cero (fi-
gura 15.14).
o o
20 30 40 50 60 70 80 90 400 -146 O -31 -1 3 -1 -8
20 30 40 50 60 70 80 90 O O O O O O O O
20 30 40 50 60 70 80 90 O O O O O O O O
2030405060708090 O O O O O O O O 20 15 15 12 17 12 O O O O O ... O
20 30 40 50 60 70 80 90 O O O O O O O O
20 30 40 50 60 70 80 90 O O O O O O O O Resultado
20 30 40 50 60 70 80 90 O O O O O O O O
Imagen 20 30 40 50 60 70 80 90 O O O O O O O O
Figura 15.15 lectura de la tabla
P (x, y) T(m,n)
El mtodo del grupo de expertos de imgenes en movimiento (MPEG) se utiliza para com-
Figura 15.14 Caso 3: escala de grises gradiente primir video. En un principio, una imagen en movimiento es un flujo rpido de una serie de
VIDEO: MPEG
cuadros iframes), donde cada cuadro es una imagen. En otras palabras, un cuadro es una
A partir de las figuras 15.12, 15.13 Y 15.14, podemos establecer lo signiente: combinacin espacial de pixeles y un video es una combinacin temporal de cuadros que se
111 La transformacin crea la tabla T a partir de la tabla P. envan uno despus de otro. La compresin de video, entonces, significa comprimir espa-
cialmente cada cuadro y comprimir temporahnente una serie de cuadros.
111 El valor De da un valor promedio de los pixeles.
Compresin espacial La compresin espacial de cada cuadro se realiza con JPEG (o
111 Los valores AC dan los cambios.
una modificacin de ste), Cada cuadro es una imagen que puede comprimirse de manera
11 La falta de cambios en los pixeles vecinos crea ceros. independiente.
Antes de que cerremos el anlisis de la DCT, observe que la transformacin DCT es rever~ Compresin temporal En la compresin temporal, los cuadros redundantes se elimi-
sible. El apndice F tambin muestra la frmula matemtica para una transformacin inversa. nan, Cuando vemos televisin, recibimos 30 cuadros por segundo. Sin embargo, la mayora
de los cuadros consecutivos son casi iguales. Por ejemplo, cuando alguien est hablando, la
Cuantizacin Despus de que se crea la tabla T, los valores se cuantizan para reducir el nmero de bits ne~ mayor parte del cuadro es la misma que la del cuadro anterior, con excepcin del segmento
cesarlos para la codificacin. Anteriormente a la cuantizacin, dejbamos la fraccin de ca~ del cuadro alrededor de los labios, el cual cambia de un cuadro a otro.
da valor y mantenamos la parte entera. En la actualidad dividimos el nmero entre una Un clculo aproximado apunta a la necesidad de compresin temporal para video, Una
constante y luego dejamos la fraccin. Esto reduce el nmero requerido de bits todava ms. compresin JPEG 20:1 de un cuadro enva 368 640 bits por cuadro; a 30 cuadros por segun-
En la mayora de las implementaciones, una tabla de cuantizacin (8 por 8) define cmo do, esto es 11 059 200 bits por segundo. Necesitamos reducr este nmero.
cuantizar cada valor. El divisor depende de la posicin del valor en la tabla T. Esto se hace Para comprimir los datos temporalmente, el mtodo MPEG primero divide los cuadros
para optimizar el nmero de bits y el nmero de ceros para cada aplicacin en particular. en tres categoras: cuadros 1, cuadros P y cuadros B.
Compresin de datos 15.5 Prctica ..
La compresin de datos toma el mensaje original y re- lIiI La codificacin LZ requiere un diccionario y un algorit-
duce el nmero de bits que se van a transmitir. mo tanto en el emisor como en el receptor.
l1li En los mtodos de compresin con prdida, los datos
En los mtodos de compresin sin prdida, los datos re-
recibidos no necesitan ser una rplica exacta de los da-
cibidos son la rplica exacta de los datos enviados.
tos enviados.
Los tres mtodos de compresin sin prdida son la co- 11 El grupo unido de expertos en fotografa (JPEG) es un
dificacin de longitud de ejecucin, la codificacin de mtodo para comprimir imgenes y grficos.
Huffrnan y la codificacin de Lempel Ziv (LZ),
iI El proceso JPEG involucra la divisin en bloques, la
En la codificacin de longitud de ejecucin, las ocu- transformacin discreta de coseno, la cuantizacin y
rrencias repetidas de un smbolo se remplazan por un la compresin sin prdida.
Figura 15.16 Cuadros MPEG smbolo y el nmero de ocurrencias del smbolo. 11 El grupo de expertos en imgenes en movimiento
11 En la codificacin de Huffman, la longitud del cdigo (MPEG) es un mtodo para comprimir video.
. La figura 15.17 exhibe cmo los cuadros 1, P Y B se construyen a partir de una serie de
SIete cuadros. es una funcin de la frecuencia de smbolos; los smbo- lIiII MPEG involucra tanto la compresin espacial como la
los ms frecuentes tienen cdigos ms cortos que sm- compresin temporal. La primera es similar a JPEG y la
. MPEG ha pasado por muchas versiones. MPEG 1 se dise para un CD- ROM con un n-
bolos menos frecuentes. ltima elimina cuadros redundantes.
dice de datos de 1.5 Mbps, MPEG 2 se dise para DVD de alta calidad con un ndice de
datos de 3-6 Mbps, MPEG 3 (o MP3) es un estndar para compresin de audio,
,
15.5 PRACTICA
PREGUNTAS DE REPASO 5. Qu es la codificacin de Huffman?
1. Cules son las dos categoras de los mtodos de com- 6. Cul es el rol del diccionario en la codificacin LZ?
presin de datos? 7. Cul es la ventaja de la codificacin LZ sobre la codi-
2. Cul es la diferencia entre la compresin sin prdida y ficacin de Huffman?
la compresin con prdida? 8. Cules son dos mtodos de compresin con prdida?
3. Cul es la codificacin de longitud de ejecucin? 9. Cundo utilizara usted JPEG? Cundo utilizara
4. Cmo reduce la codificacin de Lempel Ziv la canti- MPEG?
Figura 15.17 Construccin de cuadros MPEG dad de bits transmitidos? 10. Cmo se relaciona MPEG con JPEG?
-
.. Compresin de datos 15.5 Prctica ..
11. En JPEG. cul es la funcin de dividir en bloques la 23. En la codificacin de , los caracteres que ocu- 36. Puede ser el siguiente un cdigo de Huffrnan? Explique.
imagen? rren con mayor frecuencia tienen cdigos ms cortos A: O B: 1 C: 00 D: 01 E: 10 F: 11
que los caracteres que ocurren con menos frecuencia.
. 31. Codifique el siguiente patrn de bits utilizando la codi-
12. Por qu la DCT se necesita en JPEG? 37. Codifique el mensaje BAABBBBAACAA utilizando el
a. Huffman ficacin de longitud de ejecucin con cdigos de 5 bits:
13. Cmo contribuye la cuantizacin a la compresin? dieciocho ceros, 11, cincuenta y seis ceros, 1, quin- cdigo Huffman siguiente:
b. longitud de ejecucin
ce ceros, 11 A: O B: 10 C: 11
14. Qu es un cuadro en la compresin MPEG? c. LZ
d. todos los anteriores 38. Decodifique el mensaje 0101000011110 utilizando el
15. Qu es la compresin espacial comparada con la com- Codifique el siguiente patrn de bits utilizando codifi-
cdigo Huffman siguiente:
presin temporal? 24. En la codificacin de _ _ _ , PPPPPPPPPPPPPPP cacin de longitud de ejecucin con cdigos de 5 bits:
A: O B: 10 C:11
puede remplazarse por PIS. 1, ocho ceros, 1, cuarenta y cinco ceros, 11
16. Comente los tres tipos de cuadros utilizados en .MPEG. 39. Utilice una transformacin para transformar una tabla
a. Huffman Codifique los caracteres siguientes usando codificacin de cuatro por cuatro. Las reglas son las siguientes:
b. longitud de ejecucin de Huffman con las frecuencias dadas:
PREGUNTAS DE OPCiN MLTIPLE T(O, O) ~ (1/16) [P(O, O) + P(O, 1) +
c. LZ A(12), B(8), C(9), D(20), E(31), F(14), G(8) P(0,2) + ... ]
17. Los datos se comprimen utilizando un diccionario con d. todos los anteriores
ndices a las cadenas. ste es la Codifique los caracteres siguientes utilizando codifica- T(O, 1) ~ (1/16) [0.95 P(O, O) + 0.9 P(O. 1) +
-- 25. En la codificacin de , una cadena se remplaza cin de Huffman. Cada caracter tiene la misma frecuen- 0.85 P(O, 2) + ... ]
a. codificacin diferencial por un apuntador a la cadena almacenada. cia (1); T(O, 2) ~ (1/16) [0.90 P(O, O) + 0.85 P(O, 1)+
b. codificacin de Lempel Ziv a. Huffman A, B, e, D, E, F, G, H, 1, J 0.80 P(O, 2) + ... ]
c. codificacin Morse b. longitud de ejecucin
d. codificacin con prdida c. LZ Puede ser la siguiente, codificacin de Huffman? Ex- Compare y contraste este mtodo con la DCT. La DCT
d. todos los anteriores plique. en realidad es un clculo promedio con peso como la
18. Una- cadena de cien ceros se remplaza con dos marca- A: O B: 10 C: 11 transformacin precedente? De ser as, cul es el peso?
dores, un O y el nmero 100. sta es la _ __ 26. La codificacin LZ requiere _ __
a. codificacin de longitud de ejecucin a. un diccionario
b. codificacin Morse b. un buffer
c. un algoritmo
c. codificacin diferencial
d. todos los anteriores
d. codificacin de Lempel Ziv
27. La codificacin JPEG involucra , un proceso
19. Un ejemplo de la compresin con prdida es _ __
que revela las redundancias en un bloque.
a. la codificacin diferencial
a. divisin en bloques
b. la codificacin de Lempel Ziv b. la DCT
c. la codificacin de longitud de ejecucin c. cuantizacin
d. JPEG d. vectorizacin
20. En un mtodo de compresin de datos , los da- 28. En la codificacin JPEG el proceso de divide
tos recibidos son una copia exacta del mensaje original. la imagen original en bloques ms pequeos y asigna
a. sin prdida un valor a cada pixel en un bloque.
b. con prdida a. divisin en bloques
c. de menor prdida b. la DCT
d. brillantes c. cuantizacin
d. vectorizacin
21. En un mtodo de compresin de datos _ _ _ , los da-
tos recibidos no necesitan ser una copia exacta del men- 29. El ltimo paso en JPEG, la _ _ _ , elimina las redun-
saje original. dancias.
a. sin prdida a. divisin en bloques
b. con prdida b. cuantizacin
c. compresin
c. de menor prdida
d. vectorizacin
d. brillantes
30. es un mtodo de compresin con prdida para
22. La codificacin de es un mtodo de compre-
imgenes y grficos; mientras que es un mto-
sin de datos sin prdida.
do de compresin con prdida para video.
a. Huffman
a. DCT;MPEG
b. longitud de ejecucin
b. MPEG; JPEG
c. LZ c. JPEG; MPEG
d. todos los anteriores d. JPEG;DCT
---------
16.1 Privacidad
Seguridad
PRRVACIDAD
La privacidad requiere que el mensaje se cifre de alguna manera en el sitio del emisor y se
descifre en el sitio del receptor de modo que un intruso potencial (una persona que escuche
conversaciones ajenas) no pueda comprender su contenido.
Privacidad La manera ms simple de cifrar los datos es utilizar una llave secreta. El emisor utiliza es-
I
. con cifrado ta clave y un algoritmo de cifrado para cifrar los datos; el receptor utiliza la misma llave y
de llave secreta el algoritmo de descifrado correspondiente para descifrar los datos (figura 16.2).
Los datos, cuando no se cifran, se llaman texto plano; una vez cifrados se llaman texto
cifrado. Observe que tanto el usuario A como el usuario B utilizan la llave secreta, la cual
es exactamente la misma. Sin embargo, los algoritmos de cifrado y descifrado son inversos
.. Seguridad 16.1 Privacidad ..
Ventajas y desventajas Los algoritmos de llave secreta tienen una gran ventaja: la efi
Figura 16.2 Cifrado de llave secreta ciencia. Les toma menos tiempo cifrar o descifrar en comparacin con los algoritmos de lla
ve pblica que estudiaremos en breve. Son muy buenos candidatos para los mensajes largos.
Sin embargo, los algoritmos de llave secreta tienen dos grandes desventajas. Cada par de
entre s en el sentido de que, por ejemplo, si el algoritmo de cifrado aade algo a los datos, usuarios debe tener una llave secreta. Esto significa que si N personas en el mundo quieren
el algoritmo de descifrado sustrae lo mismo de los datos. utilizar este mtodo, se necesita que haya N (N - 1) I 2 llaves secretas. Por ejemplo, para
que un milln de personas se comuniquen, se requiere medio billn de llaves secretas. Asi-
mismo, la distribucin de las llaves entre dos partes puede ser difcil. En breve se ver c
mo resolver este problema.
En el cifrado de llave secreta, la misma llave se utiliza en el cifrado y en el desci-
frado. Sin embargo, los algoritmos de cifrado y descifrado son inversos entre s.
Privacidad con El segundo tipo de cifrado/descifrado es el cifrado de llave pblica. En este mtodo, hay
d1Frado de llave dos llaves; una llave privada y una llave pblica. La llave privada es mantenida por el re-
ceptor, y la llave pblica se anuncia al pblico (tal vez por medio de Internet).
Observe que frecuentemente se hace referencia a los algoritmos de cifrado de llave secre- Cuando un usuario A quiere enviar un mensaje a un usuario B, A utiliza la llave pblica
ta como algoritmos de cifrado simtrico debido a que la misma llave secreta puede utilizar- para cifrar el mensaje. Cuando B recibe el mensaje, utiliza su llave privada para descifrarlo
se en la comunicacin bidireccional. (figura 16.4).
,______________________ ~:i~~~~~~~~~ 1
,
tndar de cifrado de datos (DES: data encryption standard).
DES cifra y descifra en el nivel de bits. Los datos primero se transforman en una cadena
de bits. Se dividen en segmentos de 64 bits (ceros adicionales se aaden a la ltima seccin Llave privada de B
si sta no es de 64 bits). Cada seccin se cifra luego utilizando una llave de 56 bits (en rea
lidad, la llave mide 64 bits, pero 8 bits son para el control de errores). La figura 16.3 mues-
Texto cifrado
tra la disposicin general de este mtodo.
La idea es revolver los datos y la llave de tal manera que cada bit de texto cifrado depen
Cifrado
I
da de cada bit de texto plano y de la llave. Esto vuelve muy difcil para un usuario adivinar A B
los bits de texto plano a partir de los bits de texto cifrado.
Figura 16.4 Cifrado de llave pblica
Llave de 56 bits La idea de este mtodo es que los algoritmos de cifrado y descifrado no son inversos en
tre s. Aunque un intruso tenga la llave pblica y los algoritmos de cifrado y descifrado, no
puede descifrar el mensaje sin la llave privada.
RSA El algoritmo de llave pblica ms comn recibe su nombre en honor a sus inventores,
cifrado de Rivest-Shamir-Adleman (RSA). La llave privada es un par de nmeros (N, d);
Texto plano _....,.1 :'MI '"'--I~ Texto cifrado la llave pblica es tambin un par de nmeros (N, e). Observe que N es comn a las llaves
(segmento de 64 bits) (segmento de 64 bits) pblica y privada.
El emisor utiliza el siguiente algoritmo para cifrar el mensaje:
Algoritmo de cifrado
~
F-~ , 6-=F ,~ de llave pblica es la complejidad del algoritmo. Si usted quiere que el mtodo sea eficaz,
Texto plano "9'"'t>
Texto plano necesita nmeros grandes. Calcular el texto cifrado a partir del texto plano utilizando las lla-
ves largas toma mucho tiempo. sta es la razn principal de que el cifrado de llave pblica
Figura 16.5 RSA no sea recomendable para grandes cantidades de texto.
PRBVACIDAD Usted puede combinar a ventaja del algoritmo de llave secreta (eficiencia) y la ventaja del
En este algoritmo, P es el texto plano, el cual se representa como un nmero. e es el nrne~ algoritmo de llave pblica (distribucin fcil de las llaves). La llave pblica se utiliza para
ro que representa el texto cifrado. Los dos nmeros e y N son componentes de la llave p-
MEDIANTE LA
cifrar la llave secreta; la llave secreta se utiliza para cifrar el mensaje. El procedimiento es
blica. P se eleva a la potencia e y se divide entre N. El trmino fiad indica que el residuo se
.COMBINACIN
el siguiente:
enva como el texto cifrado.
1. El emisor elige una llave secreta. Esta llave secreta se llama llave de una sesin; slo
El receptor utiliza el siguiente algoritmo para descifrar el mensaje:
se utiliza una vez.
2. El emisor utiliza la llave pblica del receptor para cifrar la llave secreta (como texto)
c~ pdmodN y enva la llave secreta cifrada al receptor. Observe que dijimos que el mtodo de lla-
ve pblica es bueno para un mensaje corto. Una llave secreta es un mensaje corto.
3. El receptor usa la llave privada para descifrar la nave secreta.
4. El emisor utiliza la llave secreta para cifrar el mensaje actual.
En este algoritmo, P y e son los mismos que antes. Los dos nmeros d y N son componen~
tes de la llave privada. La figura 16.6 muestra la idea de la combinacin.
He aqu uu ejemplo. Imagine que la llave privada es el par (119. 77) Y la llave pblica es
,,
el par (119, 5), La emisora necesita enviar el caracter F. Este caracter puede representarse
como el nmero 6. (F es el sexto caracter en el alfabeto). El algoritmo de cifrado calcula Llave pblica de B
e = 65 mod 119 = 41. Este nmero se enva al receptor como texto cifrado. El receptor uti- ~----------------------------
liza el algoritmo de descifrado para calcular P ~ 41 77 mod 119 ~ 6 (el nmero original). El ,
Llave privada de B
nmero 6 luego se interpreta como F. La figura 16.5 muestra el proceso.
El lector puede poner en duda la efectividad de este algoritmo. Si un intruso conoce el al-
goritmo de cifrado y N = 119, lo nico que falta es d = 77. Por qu no podra un intruso
utilizar la prueba y error para encontrar d? La respuesta es que en este ejemplo trivial, un in-
truso fcilmente podra adivinar el valor de d. Pero un concepto importante del algoritmo
RSA es el uso de nmeros muy grandes para d y e. En la prctica, los nmeros son tan gran-
des (en la escala de decenas de dgitos) que el mtodo de ensayo y error para forzar el cdi-
go requiere mucho tiempo (meses, si no es que aos) incluso con las computadoras ms
rpidas disponibles hoy en da.
Figura 16.6 Combinacin
Eleccin de claves pblicas y privadas Una pregunta que viene a la mente es cmo ele-
gir los tres nmeros ~ d Y e para que el cifrado y el descifrado funcionen. Los inventores
del algoritmo RSA probaron matemticamente que utilizar el procedimiento siguiente ga-
rantiza que los algoritmos funcionarn. Aun cuando la prueba est ms all del mbito de 16.2 fiRMA DIGITAL
este libro, damos una idea general del procedimiento:
Sorprendentemente, los otros tres aspectos de la seguridad (integridad, autenticacin y no re-
11 Se eligen dos nmeros primos grandes, p y q. chazo) pueden lograrse utilizando un solo concepto. El concepto viene de la firma (autenti-
l1li Se calculaN ~ p X q. cacin) de un documento por su autor o creador. Cuando un autor firma un documento, ste
no puede cambiarse. Como una analoga, si usted tacha algo en un documento como un che~
l1li Se elige e (menor que N) tal que e y (p - l)(q - 1) sean relativaruente primos (tenien-
que, debe poner su firma o iniciales por el cambio que hizo. De esta manera, no puede ne-
do como factor slo el uno).
garlo posteriormente (no rechazo). Cuando usted enva un documento en forma electrnica,
111 Se elige d tal que (e X ) mod [(p - l)(q - 1)] sea igual a uno. puede adems firmarlo. A esto se le llama firma digital.
.. Seguridad 16.2 Firma digital 111
Hay dos maneras de hacer una fIrma digital. Usted puede firmar todo el documento o
puede firmar un compendio del documento.
FIRMA DE TODO El cifrado de llave pblica puede utilizarse para firmar todo el documento. Sin embargo, el Funcin hash I--~ ;~,;",~
EL DOCUMENTO uso de la llave pblica aqu es diferente de aquel para la llave privada. Aqu el emisor utili-
za su llave pblica o privada (no la llave privada del receptor) para cifrar el mensaje. El re-
ceptor, por otra parte, utiliza la llave pblica del emisor (no su llave privada) para descifrar
el mensaje. En otras palabras, la llave privada se utiliza para cifrado y la llave pblica para
figura 16.8 Firma del compendio
descifrado. Esto es posible debido a que los algoritmos de cifrado y descifrado usados ac-
tualmente, como RSA, son frmulas matemticas y sus estructuras son las mismas. La figu-
ra 16.7 muestra cmo se hace esto.
,
~--------------I
Compendio
-nnnado
1------- ~.---=
Texto P11
Finna Revisin Figura 16.9 Sitio del emisor
A B
El mtodo utiliza una tcnica llamada funcin hash para crear un compendio del mensa-
Figura 16.7 Firma de todo el documento je. No importa qu longitud tenga el mensaje, el compendio es de tamao fijo (por lo gene-
ral, 128 bits) como se aprecia en la figura 16.8.
Las dos funciones hash ms comunes son Message Digest 5 (:rvID5) Y Secure Hash Algo-
ritm 1 (SHA-l). El primero produce un compendio de 128 bits. El segundo produce un com-
Veamos cmo este tipo de cifrado puede proporcionar integridad, autenticacin y no re-
pendio de 160 bits.
chazo. Dijimos que la integridad del mensaje se conserva debido a que, si un intruso inter-
Observe que la funcin hash tiene dos propiedades para garantizar su xito. Primero, el
cepta el mensaje y lo cambia total o parcialmente, el mensaje descifrado sera (con una alta
hashing debe ser en un sentido; el compendio slo puede crearse a partir del mensaje, pero
probabilidad) ilegible e incluso no parecera un mensaje. El mensaje tambin puede auten-
no viceversa. Segundo, el hashing debe ser uno a uno; debe ser muy difcil encontrar dos
ticarse debido a que si un intruso enva un mensaje (fingiendo que viene del verdadero au-
mensajes que crean el mismo compendio. La razn de esta condicin se ver en breve.
tor), utiliza su propia clave privada. El mensaje entonces no se descifra correctamente
Despus de que se ha creado el compendio, ste se cifra (fIrma) usando la llave priva~a
mediante la llave pblica del verdadero autor (es ilegible). El mtodo tambin proporciona
del emisor. El compendio cifrado se adjunta al mensaje original y se enva al receptor. La fl-
no rechazo. Aunque el emisor puede negar el envo del mensaje, debe revelar (en la corte)
gura 16.9 muestra el sitio del emisor.
su llave privada, la cual debe corresponder con la llave pblica. Si usted cifra y descifra el
El receptor recibe el mensaje original y el compendio cifrado, y los separa. Aplica la mis-
mensaje recibido, obtiene el mensaje enviado.
ma funcin hash al mensaje para crear un segundo compendio. Tambin descifra el compen-
Observe dos puntos importantes. Primero, no puede proporcionar estos aspectos de la se-
dio recibido usando la llave pblica del emisor. Si los dos compendios son iguales, es obvio
guridad usando la llave secreta (dejamos el razonamiento para un ejercicio). Segundo, el m-
que los tres aspectos de la seguridad se conserven. La figura 16.10 muestra el sitio del
todo no proporciona confidencialidad; cualquiera puede usar la llave pblica del emisor para
receptor.
leer el mensaje. Para aadir confidencialidad a esta tcnica, se necesita otro nivel de cifrado
Sabemos que estas tres propiedades se conservan para la copia del compendio recibido
(ya sea con el cifrado de llave secreta o de llave pblica).
por el receptor. Ahora veamos por qu estas propiedades se conservan para el mensaje.
...J.
l1li Seguridad 16.5 Prctica ..
,
Mensaje ms
PRACTICA
,
compendio finnado
DE REPASO 18. Una de las ventajas del cifrado de llave pblica es
DesdeA -----~I
Llave pblica de A Cules son las cuatro condiciones necesarias para la
seguridad de los datos transmitidos? a. el poco tiempo requerido para el cifrado/descifrado
b. que se requiere un nmero pequeo de llaves
Cmo se puede asegurar la privacidad de un mensaje?
,
-----------~
c. que se conserva la integridad
Cmo se puede autenticar al emisor de un mensaje? d. que todos conocen todas las llaves
Cmo puede usted conservar la integridad de un men-
t~\rl-----+ Compara +-0 saje?
19. El algoritmo RSA es la base de un mtodo de cifrado
J
.. Seguridad
25~ El mtodo de firma digital no proporciona _ __ 30. Una operacin en un algoritmo de llave secreta es' la
a. privacidad operacin XOR (consulte el captulo 4). A un patrn d
b. autenticacin bits de tamao fijo (texto plano) se le aplica XOR con el
c. integridad
d. no rechazo
mismo tamao de patrn de bits (llave) para crear un
texto cifrado de tamao fijo. Cul es el algoritmo d~ ,
EJERCICIOS
26. Uno de los primeros mtodos de llave secreta se llamaba
sustitucin monoalfabtica (o la Cifra de Csar, atribuido
cifrado aqu? Cul es el algoritmo de descifrado? Cn-
sidere el hecho de que un algoritmo XOR es Un algorit-
mo reversible. eorl f
ela ,
utacln
31. Utilice la llave pblica (15. 3) para cifrar el nmero 7.
a Julio Csar). En este mtodo, cada caracter en texto Use la llave privada (15. 11) para descifrar el resultado
plano se mueve hacia delante n caracteres. Los caracteres del cifrado anterior. Haga un diagrama que muestre el
se envuelven de ser necesario. Por ejemplo, si n es 5, el flujo de informacin entre el emisor y el receptor.
caracter A se remplaza por F, el caracter B por G y as su-
cesivamente. Cul es la llave aqu? Cul es el algorit- 32. Pruebe que el papel de la llave pblica y el papel de la
mo de cifrado? Cul es el algoritmo de descifrado? llave privada pueden cambiar al repetir el ejercicio pre-
vio. pero cifre el nmero 7 con la llave privada (15. ll)
27. Usando la Cifra de Csar y 6 como la llave. cifre el
Y descfrelo con la llave pblica (15. 3). Haga un dia
mensaje Hola.
grama para mostrar el flujo de informacin entre el emi-
28. Comente la efectividad de la Cifra de Csar. Puede un sor y el receptor.
intruso adivinar la llave buscando slo en el texto cifra-
do? De ser as, cmo? 33. Comente por qu el cifrado/descifrado de llave secreta
no puede usarse para el no rechazo.
29. Una de las operaciones utilizadas en un algoritmo de arias preguntas inquietaron a los cientficos de la computacin al principio de la era de las
llave secreta es la permutacin de los bits. Un texto 34. Comente por qu el cifrado/descifrado de llave secreta
plano de 8 bits se permuta (revuelve). El bit 1 se con no puede usarse para la autenticacin.
vierte en el bit 3, el bit 2 se convierte en el bit 7 Y as Cules problemas pueden resolverse mediante una computadora? Cules no?
35. Aada un nivel de cifrado/descifrado de llave secreta a
por el estilo. Dibuje un diagrama que muestre el cifra- Cunto tiempo se lleva la solucin de un problema usando un lenguaje en particular?
la figura 16.7 para proporcionar privacidad.
do y el descifrado. Elija su propia revoltura. Cul es la Un lenguaje es superior a otro? Es decir, un programa de computadora escrito en un
llave aqu? Cul es el algoritmo de cifrado? Cul es el 36. Aada un nivel de cifrado/descifrado de llave pblica a lenguaje puede resolver un problema que otro no puede?
algoritmo de descifrado? la figura 16.7 para proporcionar privacidad.
Cul es el nmero Ilnimo de instrucciones necesarias para que un lenguaje resuelva un
problema?
Antes de ejecutar un programa, puede determinarse si el programa se parar (terntina-
r) o se ejecutar por siempre?
responder estas preguntas, pasamos a una disciplina llamada teora de la computacin.
Prime,ro. presentamos un lenguaje, llamado el Lenguaje simple, para mostrar que el nmero
de instrucciones requeridas para resolver cualquier problema que tiene solucin me-
una computadora es tres. En otras palabras, probamos que todos los lenguajes que tie-
estas tres instrucciones bsicas son iguales. Segundo, presentamos otra herramienta, un
de computadora llamado la mquina de Turing. Mostramos que un problema que
resolverse mediante nuestro Lenguaje simple, tambin puede resolverse por la mqui-
de Turing. Tercero, probamos que ningn programa puede decir si otro programa se detie-
o no. Esta prueba es en s misma una indicacin de que hay problemas que no pueden
re,solvelrse mediante una computadora. Finalmente, comentamos brevemente la complejidad
de los algoritmos.
111 Teora de la computacin
17.1 lenguaje simple
Segunda macro: X f--- n El cdigo siguiente muestra cmo utilizar las instrucciones
17.1 LENGUAJE SIMPLE en este lenguaje para asignar un entero positivo a la variable X. La notacin de macros para
esto es X +-- n. Primero limpie la variable X; luego incremente la X n veces.
Podemos definir un lenguaje con slo tres instrucciones: de incremento, de decremento y el
ciclo while (figura 17.1). En este lenguaje, usted utiliza slo el tipo de datos de enteros. No
hay necesidad de ningn otro tipo de datos porque usted puede simular otros tipos de datos,
con el tipo entero. El lenguaje utiliza slo unos cuantos smbolos como { y }.
Instrucciones
en lenguaje simple
Tercera macro: y ~ X Todo lenguaje de programacin tiene una instruccin que co~
pia el valor de una variable a otra sin perder el valor de la variable original. E.sta macro pue-
Incremento Decremento Ciclo de simularse en el Lenguaje simple utilizando la siguiente serie de instruCCIOnes. Observe
que el segundo ciclo utiliza una variable temporal (TEMP) para restaurar el valor de x.
Figura 17.1 Instrucciones en lenguaje simple
INSTRUCCiN La instruccin de incremento aade un 1 a la variable (por ejemplo, x). El formato es:
DE INCREMENTO
INSTRUCCiN La instruccin de decremento sustrae un 1 de la variable (por ejemplo, x). El formato es:
DE DECREMENTO x
decr
INSTRUCCiN La instruccin de ciclo repite una accin (o una serie de acciones) cuando el valor de la va- incr
riable (por ejemplo, X) no es cero. El formato es:
DE CICLO }
z.
De manera inductiva, podernos probar que este lenguaje de programacin simple con slo \'",TEMP
El.. PODER
tres instrucciones es tan poderoso (aunque no necesariamente tan eficiente) como cualquier while
DEI.. lENGUAJE
lenguaje sofisticado en uso hoy en da, por ejemplo C. Para hacerlo, mostramos cmO pode~ {
SIMPLE 'i\q!:' z
mas simular varias instrucciones encontradas en algunos lenguajes populares.
dec'f:, ',TEMP
}
Macros en el Llamamos a cada simulacin una macro y la utilizamos en otras simulaciones sin la nece-
Lenguaje simple sidad de repetir el cdigo. Quinta macro: Z ~ X * Y Esta macro multiplica los valores de X y Y Y almacena el
resultado en Z. La cuarta macro se utiliza porque la multiplicacin es una suma repetida.
Primera macro: X +---- O El cdigo siguiente muestra cmo utilizar las instrucciones
z+-- O
en este lenguaje para asignar Oa la variable X. La notacin de macros para esto es X +--- O.
A veces se le llama limpiar una variable. TEMP Y
while TEMP
while X
z +-- y
decr:' X TEMP
El Teora de la computacin 17.2 Mquina de Turing El
Sexta macro: Z +-- X ** Y Esta macro eleva X a la potencia Y y almacena el resul~ ~nl~ ..",d", y salida Tal vez se haya planteado preguntas sobre las instrucciones de entrada/salida. Por ejemplo,
tado en z. Esto se hace utilizando la multiplicacin porque la exponenciacin es una multi- cmo puede leer datos en una variable y cmo puede imprimir el resultado de un progra-
plicacin repetida. ma? Para un lenguaje como ste, no hay necesidad de entrada o salida. Usted puede simular
la entrada, como read x, mediante una instruccin de asignacin (x ------ n). Tambin
puede simular la salida al suponer que la ltima variable utilizada en un programa aloja lo
que debera imprimirse. Recuerde que ste no es un lenguaje prctico, est diseado para
probar algunos teoremas en las ciencias de la computacin.
El Lenguaje simple es tan poderoso como cualquier otro lenguaje analizado en el captulo
9. Esto significa que si usted no puede resolver un problema en este lenguaje, no podr re-
solverlo en ningn otro lenguaje. Posterionnente, mostramos que el problema de paro (hal-
ting) no tiene solucin en ningn lenguaje porque no tiene solucin en el Lenguaje simple.
Sptima macro: comp (X) Esta macro complementa el valor de x. Si el valor de X es O
(falso), lo cambia a 1 (verdadero). Si no es O (verdadero), lo cambia a O (falso). El primer
ciclo cambia el valor de x a O si ste no es O (positivo). Si usted introduce este ciclo (x no
es O), entonces el valor de TEMP se establece en 0, lo cual significa que usted nunca intro- 17.2 MQUINA DE TURING
duce el segundo ciclo. Si usted nunca introduce el primer ciclo (x es O), entonces definitiva-
mente introduce el segundo ciclo y cambia el valor de x a 1 (el ciclo se itera slo una vez La mquina de Turing se introdujo en 1936 por Alan M. Turing para resolver problemas
porque el valor de TEMP es 1). computables. Es la base de las computadoras modernas. En esta seccin, presentamos una
versin muy simplificada de esta mquina para mostrar cmo funciona. Luego mostramos
cmo implementa las instrucciones en el Lenguaje simple.
COMPONENTES DE Una mquina Turing est formada por tres componentes: una cinta, un controlador y una ca-
MQUINA beza de lectura/escritura (figura 17.2).
TURING
Aun cuando las computadoras modernas utilizan un dispositivo de acceso aleatorio con capa-
cidad finita, la memoria de la mquina de Turing es infinita. La cinta, en cualquier momen-
to mantiene una secuencia de caracteres del conjunto de caracteres aceptado por la mquina.
Para nuestro propsito, suponemos que la mquina puede aceptar slo unos cuantos smbo-
los: el signo de nmero (#), el ampersand (&), el dgito 1 y el espacio en blanco. La figura
Octava macro: if X then Al else A2 Esta macro simula la instruccin de toma 17.3 muestra un ejemplo de los datos en una cinta en esta mquina. El # define el principio
de decisiones (if-then-else) de los lenguajes modernos. Si el valor de X no es O, Al (una ac- del nmero, el nmero almacenado en la cinta se representa mediante 11111 y el & define el
cin o una serie de acciones) se ejecuta en el primer ciclo. Sin embargo, el ciclo se ejecuta s- final del nmero. El resto de la cinta contiene caracteres en blanco.
lo una vez porque, despus de la primera iteracin, el valor de TEMP se vuelve O y usted sale
del ciclo. Si el valor de X es O, el primer ciclo se omite. El valor de TEMP, el cual es lo mismo
que el valor de x, se complementa (se vuelve no O) y el segundo ciclo se ejecuta slo una vez.
Cabeza de lectura/escritura
TM,P +--'- X
C0111p (TEMP)
;'Whi 1 e,', +,EMP Cinta
t<"
A2 Figura 17.2 Mquina de Turing
TEMP"~
Otras macros Tal vez haya adivinado que necesita ms macros para hacer el Lenguaj
simple compatible con los lenguajes contemporneos. La creacin de otras macros es posi-
#'1 1 1 1
ble, aunque no trivial. Hemos dejado algunas macros desafiantes como ejercicios. Figura 17.3 Cinta
p
Tambin suponemos que la cinta procesa slo los datos enteros positivos representados .
Estal\.oacl;u;l ;.; k. Le~ .. ); Escribe S,'m:teve ~~onuevo
en la aritmtica unaria. En esta aritmtica, un entero positivo se fonna slo por unos. Por
A 1 o espacio
ejemplo, el entero 4 se representa como 1111 y el entero 7 se representa como 1111111. La
en blanco # -----> B
ausencia de unos representa el O.
A #0& & <-- e
La cabeza de lectura/escritura en cualquier momento seala a un smbolo en la cinta. lla-
B 1 1 <-- e
Cabeza de B no 1 lo mismo que lee A
lectura/escritura mamos a este smbolo el smbolo actua1. La cabeza de lectura/escritura lee y escribe un sm-
bolo a la vez desde la cinta. Despus de leer y escribir se mueve a la izquierda, a la derecha
e 1 espacio en blanco -----> B
x
1
1 o espacio en blanco
)
no 1
#0&
Forward I
StartLoop
# & 121 1 1& # &
No1
#11&;111 Check
Data X
Added
1 Added
l l
kw 1 1& f# 11 11 1& #
& &
x Instruccin loop Para simular el ciclo, suponga que X se almacena despus del smbolo #. La & marca el fi-
nal de x y el principio de los datos que se procesan en el cuerpo del ciclo (ste puede ser
ms que un solo elemento de datos). La figura 17.8 muestra el diagrama de transicin.
La tabla 17.4 muestra la tabla de transicin.
No#
Esta,do a~!lliU,; /.Lee .. Escrip.e, ..... Se mueve
---+
Estado nuevo
StartLoop # # Check
Check No 1 Lo mismo que se lee <-- StartLoop
Check 1 1 ---+ Fonvard
Figura 17.7 Diagrama de transicin para decr X Fonvard No& Lo mismo que se lee ----> Fonvard
Forward & & Ninguno StartProcess
La figura 17.6 muestra cmo el estado del controlador cambia y cmo se mueve la .. . .. . .. . .. . ...
za de lectura/escritura. .. . .. . . .. .. . . ..
EndProcess Cualquiera Lo mismo que se lee <-- Backward
Instruccin La instruccin de decremento (decr x) es similar a la instruccin de incremento. La Backward No# Lo mismo que se lee <-- Backward
de decremento gura 17.7 muestra el diagrama de transicin. Backward # # Ninguno Check
La tabla 17.3 muestra la tabla de transicin para esta instruccin. Tabla 17.4 Tabla de transicin para la instruccin loop
::, Estad~: ctnal,:- Lee Escri!:>~ . S-'mueve EstadQ- q4evo La mquina de Turing es tan poderosa como nuestro Lenguaje simple. Cualquier problema
CONCLUSiN
StartDecr # # ~ Forward que puede resolverse mediante el Lenguaje simple tambin puede resolverse por medio de
Forward 1 1 ~ Forward la mquina de Turing. Pero qu hay del otro lado de la moneda? Hay un problema que
Forward & blanco <-- Delete pueda resolverse mediante la mquina de Turing que no se pueda resolver mediante el Len-
Delete 1 & <-- Backward guaje simple? Aunque no podemos probarlo, durante las dcadas posteriores, los cientficos
Backward no# lo mismo de la computacin se convencieron de que esto no puede ocurrir. A esto se le conoce como
que lee <-- Backward la tesis de Church (en honor a Alonzo Church), la cual establece que los lenguajes simples
Backwar # # a ningn lugar StopDecr como el Lenguaje simple y la mquina de Turing son equivalentes. Todos los problemas que
pueden resolverse mediante el Lenguaje simple tambin pueden resolverse por medio de la
Tabla 17.3 Tabla de transicin para la instruccin decr X
mquina de Turing y viceversa.
El Teora de la computacin 17.4 Problema de paro El
Para mostrar que el sistema de numeracin es nico, utilice los pasos siguientes para inter-
17.3 NMEROS DE GODEL pretar un nmero de G6del:
3058
B F
Smbolo Cdigo hexadecimal Smbolo Cdigo hexadecimal
decr
1 9 9
2 2 incr A
Observe que en nuestro Lenguaje simple cada programa incluye entrada y salida. Esto
3 3 decr B significa que la combinacin de un programa y sus entradas define el nmero de G6de1.
4 4 while e l1li
5 5 { D
6 6 ) E
7 7 X F
8 8 17.4 PROBLEMA DE PARO
Tabla 17.5 Cdigo para smbolos utilizados en el lenguaje simple
Casi todo programa escrito en un lenguaje de programacin implica la repeticin (ciclos o
funciones recursivas). Un constructor de repeticin puede no terminar (pararse o detenerse);
es decir, un programa puede ejecutarse por siempre si ste tiene un ciclo infinito. Por ejem-
REPRESENTACiN Utilizando la tabla, usted puede representar cualquier programa escrito en nuestro Lengua- plo, el programa siguiente en Lenguaje simple nunca termina.
DE UN PROGRAMA je simple mediante un entero positivo nico. Siga estos pasos:
EJEMPLOl
Una pregunta de programacin clsica es:
Cul es el nmero de G6del para el programa incr x?
t Programa Extrao
IEvaluador Si P tennina, X es 1.
Si P no termina, X es O.
(nmero de Godel)
t
r
X
Extrao
Si Extrao tenruna, Extrao no
figura 17.9 Paso 1 en prueba tennina.
Contradiccin Ve alguna contradiccin? Existe un nmero infinito de problemas que no pueden resolverse mediante una computado-
PROBLEMAS
ra, uno de ellos es el problema de paro. Un mtodo para probar que un problema no tiene
Si suponemos que,'Evaluar, existe, tenemos las siguientes contnidicciones: SIN SOLUCiN solucin es mostrar que si ese problema tiene solucin, el problema de paro tambin tiene so-
Extrao no termina si Extrao termina. lucin. En otras palabras, probar que la capacidad de solucin de un problema da como re-
Extrao termina si Extrao no termina. sultado la capacidad de solucin del problema de paro.
..
El Teora de la computacin 17.7 Resumen
Con solucin Sin solucin Problemas no polinomiales Si un programa tiene una complejidad mayor que un polino-
mial-por ejemplo, O (Ion) O O (n!)- ste puede resolverse si el nmero de entradas es muy
pequeo (menor que 100). Si el nmero de entradas es grande, uno podra sentarse enfrente
Polinomiales No polinomiales de la computadora durante meses para ver el resultado de un problema no polinomial. Pero
quin sabe? Al ritmo con el que la velocidad de las computadoras est aumentando, usted tal
vez sea capaz de obtener un resultado para este tipo de problema en menos tiempo.
Figura 17.12 Taxonoma de los problemas
PROBLEMAS Existen muchos problemas que pueden resolverse mediante una computadora. Con frecuen~
CON SOLUCiN cia, queremos saber cunto tiempo le toma a la computadora resolver ese problema. En otras
palabras, qu tan complejo es el programa? 17.6 TRMINOS CLAVE
La complejidad del programa puede medirse de varias maneras distintas, tales como el
tiempo de ejecucin, la memoria requerida y as por el estilo. Un mtodo es el tiempo de eje- cinta instruccin loop problema no polinomial
cucin: cunto le toma al programa ejecutarse? controlador macro problema polinomial
dgito hexadecimal mquina de Turing problema sin solucin
instruccin de decremento nmero de Gadel
instruccin de incremento problema con solucin
Complejidad Una manera de medir la complejidad de un problema con solucin es encontrar el nmero
de los problemas de operaciones realizadas por la computadora cuando sta ejecuta el programa. De esta ma-
nera, la complejidad es independiente de la velocidad de la computadora que ejecuta el pro-
con solucin
grama. Esta medida de la complejidad puede depender del nmero de entradas. Por ejemplo,
si un programa est procesando una lista (ordenando una lista), la complejidad depende del
nmero de elementos en la lista.
17.7 RESUMEN
Notacin de orden O Con la velocidad de las computadoras actuales, no estamos tan
11 La teora de la computacin puede ayudar a los cientfi- 11 El controlador en una mquina de Turing controla la ca-
preocupados con los nmeros exactos como con los rdenes de magnitud generales. Por
cos de la computacin a responder preguntas intrnsecas. beza de lectura/escritura. Es la contraparte terica del
ejemplo, si el anlisis de dos programas muestra que uno ejecuta 15 operaciones (o una serie
CPU en las computadoras actuales.
de operaciones) mientras que el otro ejecuta 25, ambos son tan rpidos que usted no puede
11 Tres instrucciones (incremento, decremento y ciclo) son
ver la diferencia. Por otra parte, si los nmeros son 15 contra 1 500, usted debe preocuparse. 111 Un diagrama de transicin es una representacin pict-
necesarias para simular todos los otros tipos de instruc-
Esta simplificacin de eficiencia se conoce como notacin de orden O. Damos la idea de rica de los estados del controlador.
ciones en un lenguaje de computadora. Por ejemplo, us-
esta notacin sin ahondar en su definicin y clculo formales. En esta notacin, el nmero de
ted puede limpiar una variable, asignar un valor a una 111 Una tabla de transicin es una representacin de una
operaciones (o una serie de operaciones relacionadas) se da como una funcin del nmero de
variable, copiar el valor de una variable a otra y sumar matriz de informacin respecto a los estados del con-
entradas. La notacin O (n) significa que un programa realiza n operaciones para n entradas;
los valores de dos variables usando las tres instrucciones trolador.
la notacin O (n 2) significa que un programa realiza n2 operaciones para n entradas.
bsicas.
11 Usted puede asignar un nmero de Gadel a cada progra-
EJEMPLO 3 ma en un lenguaje de computadora especfico.
11 La mquina de Turing puede implementar instrucciones
Imagine que ha escrito tres programas distintos para resolver el mismo problema. El pri- en nuestro Lenguaje simple. 111 No hay un programa que pueda predecir si un programa
mero tiene una complejidad de O (logo n), el segundo O (n) y el tercero O (n2 ). Supo- terminar o no.
niendo una entrada de un milln, cunto tiempo se llevara ejecutar cada uno de estoS 11 Una mquina de Turing tiene una cinta, un controlador
programas en una computadora que realiza una instruccin en un milisegundo (un milln y una cabeza de lectura/escritura. liI La notacin de orden O se utiliza para denotar la eficien-
por segundo)? cia de un programa.
11 La cinta en una mquina de Turing mantiene una secuen- 11 Los problemas son ya sea con solucin o sin solucin.
SOLUCIN cia de caracteres de un conjunto de caracteres aceptable. Los problemas con solucin pueden clasificarse como
A continuacin se muestra el anlisis: polinomiales y no polinomiales.
11 La cabeza de lectura/escritura en una mquina de Turing
Primer programa: n=l 000 000 O(logo n) ---7 6 Tiempo ---7 6 flS en cualquier momento seala a un caracter. Despus de 11 Los problemas no polinomiales por lo general toman
Segundo programa: n=l 000 000 O{n) ---7 1 000 000 Tiempo -7 1 sec leer y escribir, la cabeza puede moverse a la izquierda, a ms tiempo en resolverse que los problemas polinomia-
Tercer programa: n=l 000 000 O{n 2 ) ---7 lo-e?' Tiempo ---7 277 hrs 111 la derecha o permanecer inmvi1. les si el nmero de entradas es muy grande.
.. Teora de la computacin 17.8 Prctica 111
24. Despus de leer un smbolo, la cabeza de lectura/escri- 32. Usted utiliza ____ para denotar la complejidad de
17.8 PRCTICA tura _ __ un programa.
a. se mueve a la izquierda a. el nmero de Turing
PREGUNTAS DE REPASO 16. La instruccin de ____ repite una o ms acciones. b. se mueve a la derecha b. la notacin de orden O
a. incremento c. permanece en su sitio c. factoriales
1. Por qu se necesita la teora de la computacin?
b. decremento d. cualquiera de las opciones anteriores d. el Lenguaje simple
2. Mencione y proporcione las funciones de las tres ins- c. ciclo
25. El (la) ____ es la contraparte torica del CPU. 33. Si la complejidad de O (n]) es 8, entonces el nmero de
trucciones bsicas que son la base de otras instruccio- d. complemento
entradas es _ _ __
nes en un lenguaje de computadora. a. disco
17. La instruccin de ____ resta un 1 de la variable. a. uno
3. Muestre cmo la asignacin del valor de una variable a a. incremento b. cinta
b. dos
otra (con la variable original conservando su valor) uti- b. decremento c. controlador c. tres
liza las tres instrucciones bsicas. c. ciclo d. cabeza de lectura/escritura d. cuatro
d. complemento 26. El controlador tiene ____ estados.
4. Cul es la relacin entre la mquina de Turing y nues- 34. Si la complejidad de O (n!) es 24, entonces el nmero
tro Lenguaje simple? 18. Para limpiar una variable utilice las instrucciones de a. tres de entradas es ____
b. cuatro ao uno
5. Cules son los componentes de la mquina de Turing a. incremento
y cul es la funcin de cada componente? c. un nmero finito de b. dos
b. decremento c. tres
d. un nmero infinito de
6. Cul es una forma de delimitar los datos en una cinta c. ciclo d. cuatro
de mquina de Turing? d. byc 27. Un(a) ____ es una representacin grfica de los es-
tados y sus relaciones entre s. 35. La complejidad de O (lag*lO n) y la computadora
7. Cuando una cabeza de lectura/escritura termina la lec- 19. Para asignar un nmero a una variable, utilice las ins-
a. diagrama de transicin ejecuta un milln de instrucciones por segundo. Cun-
tura y escritura de un smbolo, cules son sus siguien- trucciones de _ _ __
b. diagrama de flujo to tiempo se toma la ejecucin del programa si el nme-
tes opciones? a. incremento
ro de entradas es !O OOO?
b. decremento c. tabla de transicin
8. Cmo se relaciona un diagrama de transicin con un a. un microsegundo
c. ciclo d. mquina de Turing
controlador de mquina de Turing? b. dos microsegundos
d. todas las anteriores
28. Un(a) muestra, entre otras cosas, el movi- Co tres microsegundos
9. Cmo se relaciona un diagrama de transicin con una 20. Para copiar el valor de una variable a otra variable y que miento de la cabeza de lectura/escritura, el caracter le- d. cuatro microsegundos
tabla de transicin? Tienen la misma informacin? la primera variable mantenga su valor, utilice las ins- do y el caracter escrito.
Cul tiene ms infonnacin? trucciones de _ _ __ EJERCICIOS
a. diagrama de transicin
10. Qu es un nmero de Gdel? a. incremento b. diagrama de flujo 36. Simule la macro siguiente utilizando las instrucciones o
b. decremento
c. tabla de transicin macros previamente definidas en el Lenguaje Simple:
11. Cmo utilizara un nmero de Godel para probar que c. ciclo
d. mquina de Turing z+---x-y
el problema de paro no tiene solucin? d. todas las anteriores
29. El nmero de Godel es un nmero ____ asignado 37. Simule la macro siguiente utilizando las instrucciones o
12. Cmo se puede indicar la eficiencia de un programa? 21. La macro que cambia los ceros en unos y un entero po-
a un programa en un lenguaje especfico. macros previamente definidas en el Lenguaje simple:
sitivo a O se llama macro ____
13. Compare y contraste la complejidad de un problema ao binario if X < Y then Al el se A2
polinomial con solucin y un problema no polinomial a. decr X
b. Y X b. entero 38. Simule la macro siguiente utilizando las instrucciones o
con solucin.
c. comp (X) c. con signo macros previamente definidas en el Lenguaje simple:
d. switch (X) d. sin signo if x > y then Al else A2
PREGUNTAS DE OPCiN MLTIPLE 22. Una mquina de Turing tiene los siguientes componen- 30. El nmero de Godel para decr X en decimal es 39. Simule la macro siguiente uti1izando la") instrucciones o
14. Un lenguaje de computadora simple puede disearse tes: _ _ __ macros previamente defmidas en el Lenguaje simple:
a. 367
con slo ____ instrucciones. a. cinta, memoria y cabeza de lectura/escritura while X > Y
b. 175
a. una b. disco, controlador y cabeza de lectura/escritura c. 174
b. dos c. cinta, controlador y cabeza de lectura/escritura acciones
c. tres d. 191
d. disco, memoria y controlador
d. cuatro 31. El nmero de Gadel para decr X en hexadecimal es
23. En una mquina de Turing, la (el) ____ mantiene 40. Simule la siguiente macro usando las instrucciones o
15. La instruccin de ____ suma un 1 a la variable. una secuencia de caracteres. macros previamente definidas en el Lenguaje simple:
a. incremento a. disco a. B C while x < y
b. decremento b. cinta b. CB
c. ciclo c. controlador c. B F acciones
d. complemento d. cabeza de lectura/escritura d. AF
Teora de la computacin
4L Simule la macro siguiente utilizando las instrucciones o 45. Muestre el diagrama de transicin para la mquina de
macros previamente definidas en el Lenguaje simple: Turing que simula la macro Z +-- x + Y.
while x == y
46. Muestre el diagrama de transicin para la mquina de
Turing que simula la macro Z +-- X * Y.
acciones
47. Muestre el diagrama de transicin para la mquina de
Turing que simula la macro comp (X).
42. Muestre el diagrama de transicin para la mquina de
48. Muestre el diagrama de transicin para la mquina de
Turing que simula X +-- O.
s
Turing que simula la macro if x then Al e 1 s e A2.
43. Muestre el diagrama de transicin -para la mquina de 49. Cul es el nmero de Gdel para la macro Xl +--- 07
Turing que simula X +-- D.
500 Cul es el nmero de G6del para la macro X2 +--- n?
44. Muestre el diagrama de transicin para la mquina de 51. Cul es el nmero de G6del para la macro
Turing que simula y +-- x. x3 ~ Xl + X2?
Decimal Hexadecimal Binario Caracter Descripcin Decimal Hexadecimal Binario Caracter Descripcin
O 00 0000000 NUL Nulo 48 30 0110000 O
I 01 0000001 SOH Inicio de encabezado 49 31 0110001 1
2 02 0000010 STX Inicio de texto 50 32 0110010 2
3 03 0000011 ETX Fin de texto 51 33 0110011 3
4 04 0000100 EOT Fin de transmisin 52 34 0110100 4
5 05 0000101 ENQ Indagacin 53 35 0110101 5
6 06 0000110 ACK Reconocimiento 54 36 0110110 6
7 07 0000111 BEL Campana 55 37 0110111 7
8 08 0001000 BS Retroceso 56 38 0111000 8
9 09 0001001 HT Tabulador horizontal 57 39 0111001 9
10 OA 0001010 LF Avanee de lnea 58 3A 0111010 Dos puntos
11 OB 0001011 VT Tabulador vertical 59 3B 0111011 ; Punto y coma
12 OC 0001100 FF Salto de pgina 60 3C 0111100 < Signo menor que
13 OD 0001101 CR Retorno de carro 61 3D 0111101 = Signo igual
14 OE 0001110 SO Desplazamiento hacia afuera 62 3E 0111110 > Signo mayor que
15 OF 0001111 SI Desplazamiento hacia dentro 63 3F 0111111 ? Signo de interrogacin
16 10 0010000 DLE Escape de enlace de datos 64 40 1000000 @ Arroba
17 11 0010001 DCI Control de dispositivo 1 65 41 1000001 A
18 12 0010010 DC2 Control de dispositivo 2 66 42 1000010 B
19 13 0010011 DC3 Control de dispositivo 3 67 43 1000011 C
20 14 0010100 DC4 Control de dispositivo 4 68 44 1000100 D
21 15 0010101 NAK Reconocimiento negativo 69 45 1000101 E
22 16 0010110 SYN Inactividad sncrona 70 46 1000110 F
23 17 0010111 ETB Fin del bloque de transmisin 71 47 1000111 G
24 18 0011000 CAN Cancelar 72 48 1001000 H
25 19 0011001 EM Fin del medio 73 49 1001001 1
26 lA 0011010 SUB Sustituto 74 4A 1001010 J
27 lB 0011011 ESC Escape 75 4B 1001011 K
28 lC 0011100 FS Separador de archivos 76 4C 1001100 L
29 ID 0011101 GS Separador de grupos 77 4D 1001101 M
30 lE 0011110 RS Separador de registros 78 4E 1001110 N
31 lF 0011111 US Separador de unidades 79 4F 1001111 O
32 20 0100000 SP Espacio 80 50 1010000 P
33 21 0100001 ! Signo de exclamacin 81 51 1010001 Q
34 22 0100010 " Comillas dobles 82 52 1010010 R
35 23 0100011 # Signo de nmeros 83 53 1010011 S
36 24 0100100 $ Signo monetario 84 54 1010100 T
37 25 0100101 % Signo de porcentaje 85 55 1010101 U
38 26 0100110 & Ampersand 86 56 1010110 V
39 27 0100111 Apstrofe 87 57 1010111 W
40 28 0101000 ( Parntesis abierto 88 58 1011000 X
41 29 0101001 ) Parntesis cerrado 89 59 1011001 Y
42 2A 0101010 * Asterisco 90 5A 1011010 Z
43 2B 0101011 + Signo ms 91 5B 1011011 [ Corchete de apertura
44 2C 0101100 Coma 92 5C 1011100 \ Diagonal invertida
45 2D 0101101 - Guin 93 5D 1011101 1 Corchete de cierre
46 2E 0101110 Punto 94 5E 1011110 - Circunflejo
47 2F 0101111 / Diagonal 95 5F 1011111 Guin bajo
106 6A 0111010 j
107 6B 0111011 k
108 6C 0111100 1
109 6D 0111101 m
110 6E 0111110 n
111 6F 0111111 o
112 70 1000000 P
113 71 1000001 q
114 72 1000010 r
115 73 1000011 s
116 74 1000100 ! UlnlC'ode es un cdigo de 16 bits que puede representar hasta 65 536 smbolos. Utilizando
117 75 1000101 u notacin hexadecimal, el cdigo puede variar de 0000 a FFFF. Observe que se requieren
118 76 1000110 v "decer,as, si no es que cientos, de pginas para mostrar todos los smbolos individuales (ca-
119 77 1000111 w ta,:!er,es). Aqu mostramos slo algunos intervalos.
120 78 1001000 x
121 79 1001001 Y
122 7A 1001010 z
123 7B 1001011 { Llave de apertura
124 7C 1001100 I Barra
125 7D 1001101 } Llave de cierre
126 7E 1001110 - Tilde
127 7F 1001111 DEL Eliminar
Tabla A.l Tabla ASCII (continuacin)
i,
I
I
i'j
I.J
El Unicode Unicode ..
ALFABETOS Los cdigos de 0000 a lFFF definen diferentes alfabetos. Algunos de ellos se muestran en SMBOLOS Los cdigos 2000 a 2FFF definen los smbolos y las marcas de puntuacin. Algunos de ellos
la tabla B.l. Observe lo siguiente respecto a esta tabla: se muestran en la tabla B.2.
Y MARCAS
1. Los cdigos 0000 a 007F (Latn bsico) son exactamente los mismos que se definie~ DE PUNTUACiN
ron para el cdigo ASCII.
2. Los cdigos 0080 a OOFF (complemento de Latn 1) son los mismos que los caracteres Intervalo Descripcin
Latn 1 definidos por la ISO. El sistema operativo Windows utiliza la variacin de estos 2000 2067 Puntuacin general
smbolos. Los caracteres de Latn bsico se complementan con caracteres de acento, 2070-209F Subndices y superndices
diresis, el signo de interrogacin de cierre y as por el estilo. 20AO 20CF Smbolos de moneda
20D0-20FF Combinacin de marcas para smbolos
Intervalo 2100-214F Smbolos tipo carta
Descripcin
2150-218F Formatos de nmeros
0000-007F Latn bsico
2190-21FF Flechas
0080-00FF Complemento de Latn 1
2200-22FF Operadores matemticos
0100-017F Latn extendido A
2300-23FF Miscelnea tcnica
0180-024F Latn extendido B
2400-243F Imgenes de control
0250-02AF Extensin del alfabeto fontico internacional (IPA)
2440-245F Reconocimiento ptico de caracteres
02BO-02FF Espaciado de letras modificadoras
2460 24FF Alfanumrico cerrado
0300-036F Combinacin de marcas diacrticas
2500-257F Bordes de cuadros
0370-03FF Griego
2580-259F Elementos de bloque
0400-04FF Cirlico
25AO 25FF Formas geomtricas
0530-058F Armenio
2600-26FF Smbolos miscelneos
0590-05FF Hebreo
2700-27BF Smbolos decorativos
0600-06FF rabe
2800-28FF Patrones Braile
0700-074F Sirio
2E80-2EFF Complemento radical CJK
0780-07BF Thaana
2FOO 2FDF Kanji radical
0900-097F Deviagari
2FF0-2FFF Caracteres de descripcin ideogrfica
0980-09FF Bengal
OAOO-OA7F Gumurkhi Tabla B.2 Smbolos y puntuacin (2000 a 2FFF)
OA80-0AFF Gujarat
OBOO-OB7F Oriya
OB80-0BFF Tarou!
OCOO-OC7F Teluga AUXILIARES :jK Los cdigos 3000 a 33FF definen los auxiliares chinos, japoneses y coreanos (CJK: Chine-
OC80-0CFF Kannada se, Japanese and Korean), algunos de los cuales se muestran en la tabla B.3.
ODOO-OD7F Malayalam
OD80-0DFF Cingals
OEOO-OE7F Tailands Intervalo Descripcin
OE80-0EFF Lao 3000-303F Smbolos y puntuacin de CJK
OFOO-OFFF Tibetano 3040-309F Hiragana
1000-109F Myanmar 30A0-30FF Katakana
lOAO-lOFF Georgiano 3100-312F Bopomofo
1l00-1lFF Hangul Jamo 3130-318F Jamo con compatibilidad Hangul
1200-137F Etope 3190 319F Kanbun
J3AO-J3FF Cheroqu 3 lA0-3lBF Bopomofo extendido
1400-167F Silbico unificado de los aborgenes canadienses 3200-32FF Letras y meses en CJK cerrados
1680-169F Ogham 3300-33FF Compatibilidad con CJK
16aO-16FF Rnico
1780-17FF Jemer Tabla B.3 Auxiliares CJK (3000 a 33FF)
1800-18AF Mongol
lE00-1EFF Latn extendido adicional
lFOO-lFFF Griego extendido
IDEOGRAMAS qK Los cdigos 4000 a 9FFF definen los ideogramas CJK unificados.
Tabla B.l Alfabetos (0000- 1 FFF) UNIFICADOS I
~
.. Unicode
USO PRIVADO Los cdigos EOOO a F8FF son para uso privado.
CARACTERES
Y SMBOLOS
Los cdigos F900 a FFFF defmen caracteres y smbolos miscelneos.
MISCElNEOS
lagr~~as
de fl~[~\
Col SMBOLOS AUXILIARES LNEAS DE FLUJO Las lneas de flujo se utilizan para mostrar el orden o la secuencia de las acciones en un pro-
grama. Estas lneas conectan los smbolos. Por lo general, un smbolo tiene algunas lfueas de
entrada y algunas lneas de salida. El valo START tiene slo una lfuea de salida. El valo de
Un diagrama de flujo es una combinacin de smbolos. Algunos smbolos se usan para me- STOP tiene slo una lnea de entrada. Acabamos de mostrar el uso de las lneas de flujo en
jorar la legibilidad o funcionalidad del diagrama de flujo. No se utilizan directamente para la figura C.2. Mostraremos otros flujos en los ejemplos que siguen.
mostrar instrucciones o comandos. Muestran los puntos de inicio y fin, el orden y la secuen-
cia de acciones y cmo una parte de un diagrama de flujo se conecta con otra. Estos smbo- Usted utiliza slo un smbolo, un crculo con un nmero dentro de l, para mostrar la conec-
los auxiliares se muestran en la figura C.I.
CONECTORES
tividad. Se utiliza cuando se llega al final de la pgina y el diagrama de flujo an no termina.
En la parte inferior de la pgina utilice un conector para mostrar que el flujo lgico contina
en la parte superior de la pgina siguiente. El nmero en el conector puede ser un nmero se-
rial simple o puede ser una combinacin de una pgina y un smbolo en la forma pgina.n-
mero. La figura C.3 muestra un conector fuera de pgina.
SMBOLO NOMBRE APLICACIN
t!
Lneas de flujo
Muestra el orden
de las acciones en un
algoritmo
( START
I
l"-
) cp ~
Muestra la continuidad
del algoritmo en .
8 Conector la pgina siguiente t
Figura C.l Smbolos auxiliares en el diagrama de flujo
cb ( STOP )
INICiO Y fiN Un valo se utiliza para mostrar el inicio y fin de un algoritmo. Cuando lo utilice para mos-
trar el principio de un algoritmo. escriba la palabra START (iniciar) en el valo; cuando lo
utilice para indicar el fin de un algoritmo, escriba la palabra STOP (detener) en el valo. <:'2 SMBOLOS PRINCIPALES
Una de las primeras reglas de la programacin estructurada es que cada algoritmo debe te~
ner slo un punto de entrada y uno de salida. Esto significa que un diagrama de flujo bien es- Los smbolos principales se utilizan para mostrar las instrucciones o acciones necesarias pa-
tructurado debe tener uno y slo un inicio START, y uno y slo un fin STOP. Los valos ra resolver el problema presentado en el algoritmo. Con estos smbolos, es posible represen-
deben estar alineados para mostrar claramente el flujo de la accin en un algoritmo. Por ejem- tar los cinco constructores de programacin estructurada: secuencia, decisin, ciclo while,
plo, en la figura C.2 se muestra un diagrama de flujo para un programa que no hace nada. Es- ciclo for y ciclo do-while.
te programa inicia y termina sin hacer nada.
Un valo tambin puede usarse para indicar el inicio y el fin de un mdulo. Cuando lo uti- Las instrucciones en secuencia simplemente representan una serie de acciones que deben con-
lice al principio escriba dentro de l el nombre del mdulo (en lugar de la palabra START),
INSTRUCCIONES
tinuar en un orden lineal. Aun cuando las acciones representadas en el smbolo de secuencia
cuando al [mal escriba la palabra RETURN (regreso), en vez de STOP. EN SECUENCIA
pueden ser muy complejas, por ejemplo una operacin de entrada o una operacin de salida,
el flujo lgico debe introducir el smbolo en la parte superior y fluir hacia fuera en la parte
inferior. Los flujos de secuencia no permiten que se tome ninguna decisin o haya cambios
de flujo dentro del smbolo.
( START ) Existen cinco smbolos de secuencia: instruccin nula, de asignacin, de entrada/salida,
llamada de mdulo e instruccin compuesta. Los ltimos cuatro se muestran en la figura C.4.
Instruccin nula Vale la pena resaltar que do nothing (hacer nada) es una instruccin vlida. Comnmente se
le conoce como instruccin nula. La instruccin nula se considera una instruccin de secuen-
( STOP)
cia debido a que no puede cambiar la direccin del flujo de un programa. No hay un smbo-
lo para una instruccin nula. Es simplemente una lnea de flujo. La figura C.2 es un ejemplo
Figura C.2 Smbolos de inicio y fin de una instruccin nula.
.. Diagramas de flujo e2 Smbolos principales ..
o Instruccin de asignacin
Instruccin
compuesta
Aun cuando no hay un smbolo real que muestre una instruccin compuesta, encapsulamos
todas las instrucciones que hacen una instruccin compuesta en un rectngulo de lnea dis-
continua.
! I Instruccin de entrada/salida
INSTRUCCIONES A diferencia de la instruccin de secuencia, las instrucciones de seleccin pueden provocar
ID
,,-------------,,,
Llamada de mdulo
DE SELECCiN que el flujo del programa cambie. Penniten la ejecucin de instrucciones seleccionadas y el
salto de otras instrucciones. En la programacin estructurada hay dos instrucciones de selec-
cin: bidireccional y multidireccional.
: 'Instruccin compuesta
I _ _ _ _ _ _ ------~ Seleccin
El smbolo bidireccional es el diamante. Cuando se utiliza para representar una instruccin
bidireccional
if-else, la lgica verdadera se muestra en la parte derecha del flujo lgico, y la condicin
Figura 1:.4 Smbolos de secuencia
falsa, si la hay, se coloca en la parte izquierda del mismo. Con if -else, siempre debe ha-
ber dos flujos lgicos, aunque a menudo uno de ellos es nulo. (Recuerde que la instruccin
nula se representa mediante una lnea de flujo; no hay un smbolo para nulo.) Finalmente, la
instruccin tennina con un conector donde los flujos verdadero y falso se unen. En este caso,
variable <E----- expresin el conector no tiene nada dentro de l.
Aunque con frecuencia ver decisiones esbozadas con el inicio del t1ujo en la parte infe-
rior del diamante, este estilo no es bueno. Aunque uno de los flujos sea nulo, ste debe fluir
de la izquierda o de la derecha del diamante de todos modos.
Figura 1:.5 Instruccin de asignacin
La figura C.7 muestra el uso del smbolo de decisin en la instruccin if-else. Como
sealamos, siempre hay dos ramas. En una de ellas se pennite tener una y slo una instruc-
cin. Desde luego, la instruccin en cada rama puede ser una instruccin nula o compuesta.
( START ) (~-=..::AV.,:R.:..:G--,) Pero slo se pennite una instruccin en cada rama; ni ms, ni menos. Tambin recuerde que
I toda la figura es una sola instruccin, no dos o tres; es una sola instruccin i f -el se.
~ F T
,--"'-(ICondicin.)-----,
Instruccin Instruccin
falsa verdadera
Instruccin de Un paralelogramo se utiliza para mostrar cualquier entrada o salida, por ejemplo, leer de Seleccin La segunda aplicacin del smbolo de seleccin utilizado en la programacin estructurada es
entrada/salida teclado o escribir en la consola del sistema. la seleccin multibidireccional (figura C.8). Como puede ver, se pueden tener tantas ramas
multidireccional
como sea necesario. En cada rama, se pennite tener una y slo una instruccin. Desde luego,
Instruccin de El smbolo para llamar a un mdulo es un rectngulo con dos barras verticales dentro. El dia~ la instruccin en cada rama puede ser una instruccin nula o compuesta. Pero recuerde que
llamada de mdulo grama de flujo para el mdulo llamado debe estar en alguna otra parte. En otras palabras, slo se pennite una instruccin en cada rama; ni ms ni menos. Tambin recuerde que toda
cada vez que usted vea una instruccin de llamada de mdulo, busque otro diagrama de flu- la figura es una sola instruccin, no dos o tres.
jo con el nombre del mdulo (figura C.6).
Diagramas de flujo C2 Smbolos principales ..
Condicin
Figura C.S Seleccin multidireccionaI Usted utiliza el mismo smbolo bsico para el ciclo while, pero debido a que slo hay
una prueba de lmite, las divisiones internas no son necesarias. La figura C.IO muestra el for-
INSTRUCCiONES mato bsico de la instruccin while.
Hay tres instrucciones de ciclo: for, while y do-while.
DE CiClO
Instruccin La tercera aplicacin del smbolo de ciclo es la instruccin do-while (figura C.II). Debido
do-while a las diferencias inherentes entre los ciclos for y while y el ciclo do-while, ste se pre-
Instruccin for La instruccin f or es un ciclo controlado por contador. En realidad es una instruccin com- senta de manera diferente en un diagrama de flujo. Hay dos diferencias importantes entre
pleja que tiene tres partes, cualquiera de las cuales puede ser nula: (1) la inicializacin del ci- while y do-while:
clo, la cual normalmente establece el contador del ciclo; (2) la prueba de lmite y (3) las
instrucciones de accin de fin del ciclo, las cuales por lo general incrementan un contador. 1. Un ciclo while es un ciclo de preprueba. El ciclo do-while es un ciclo de pos-
Dado que la instruccin for es un ciclo de preprueba, es posible que el ciclo no se ejecute. prueba.
Si la condicin que termina es verdadera al inicio, el cuerpo de la instruccin for se salta. 2. El cuerpo de un ciclo while puede no ejecutarse nunca. El cuerpo de un ciclo do-
Corno sucede en todos los constructores de programacin estructurada, el cuerpo del ciclo while se ejecuta al menos una vez.
puede contener una y slo una instruccin. Como sucede con los otros constructores, esta ins~
truccin puede ser nula o compuesta. La figura C.9 muestra el ciclo foro
Fin F
de la
accin I-----~-.,
d,
ciclo
T Condicin
Instruccin while El segundo constructor de ciclo es la instruccin whi le. La principal diferencia entre los ci~
elos for y while es que el ciclo while no es un ciclo de conteo. Ambos son ciclos de pre~
prueba; esto significa que, como sucede con for, el cuerpo del ciclo while puede nO
ejecutarse nunca.
D.1 Componentes
Algoritmo D.l
D.l COMPONENTES
U na de las herramientas ms comunes para definir algoritmos es el pseudocdigo. El pseu- Un algoritmo escrito en pseudocdigo puede decomponerse en varios elementos y cons-
docdigo es una representacin tipo idioma ingls del cdigo requerido para un algoritmo. Es tructores.
parte ingls y parte cdigo estructurado. La parte de ingls proporciona una sintaxis relajada
fcil de leer. La parte del cdigo consiste de una versin ampliada de los constructores de al- ENCABEZADO Cada algoritmo comienza con un encabezado que lo nombra. Por ejemplo, en el algoritmo
goritmos bsicos: secuencia, seleccin e iteracin. El algoritmo D.1 muestra un ejemplo de DE ALGORITMO D.1, el encabezado comienza con la palabra Algoritmo, la cual nombra al algoritmo como
pseudocdigo. "Encontrar Menor".
PROPSITO, Despus del encabezado, usted por lo general menciona el propsito y las pIe y postcondicio-
CONDICIONES nes, y devueltos por el algoritmo.
Y DEVOLUCiN
Propsito El propsito es una breve frase sobre lo que hace el algoritmo. Necesita describir slo el pro-
cesamiento del algoritmo general. No debe intentar describir todo el procesamiento. En el al-
goritmo D.I, el propsito comienza con la palabra Propsito y contina con el objetivo del
algoritmo.
Precondicin La precondicin lista cualquier requisito precursor. Por ejemplo, en el algoritmo D.1, se re-
quiere que la lista est disponible para el algoritmo.
Pos1:condidn La postcondicin identifica cualquier efecto creado por el algoritmo. Por ejemplo, tal vez el
algoritmo especifica la impresin de los datos.
Devolucin Creemos que todo algoritmo debe mostrar lo que devuelve el mismo. Si no hay nada que de-
volver, aconsejamos que se especifique una devolucin nula. En el algoritmo D.1, se devuel-
ve el valor ms pequeo encontrado.
NMEROS DE Las instrucciones se numeran como se muestra en el algoritmo D.1 (1,2,3 ... ). Las instruc-
INSTRUCCiN ciones dependientes se numeran de manera que muestren sus dependencias (1.1, 2.4 ... ).
CONSTRUCTORES Cuando Niklaus Wirth propuso por primera vez el modelo de programacin estructurada, de-
DE INSTRUCCiN clar que cualquier algoritmo puede escribirse con slo tres constructores de programacin:
secuencia, seleccin y ciclo. Nuestro pseudocdigo contiene slo estos tres constructores b-
Pseudocdigo
sicos. La implementacin de estos tres constructores se basa en la riqueza del lenguaje de im-
plementacin. Por ejemplo, el ciclo puede implementarse como una instruccin whi le, do-
while o for en el lenguaje C.
SECUENCIA Una secuencia es una serie de instrucciones que no alteran la ruta de ejecucin dentro de un
algoritmo. Aunque es obvio que instrucciones como assign (asignar) y add (sumar) son ins-
trucciones de secuencia, no es tan obvio que una llamada a otros algoritmos tambin se con-
sidera una instruccin de secuencia. La razn radica en el concepto de programacin
estructurada de que cada algoritmo tiene slo una entrada y una salida. Adems, cuando un
algoritmo se completa, regresa a la instruccin inmediatamente despus de la llamada que lo
Diagra S
de estructura
invoc. Por consiguiente, usted puede considerar de manera apropiada la llamada del algorit-
mo como una instruccin de secuencia. El algoritmo D.2 muestra una secuencia.
Algoritmo 0.2
SELECCIN Las instrucciones de seleccin evalan una o ms alternativas. Si son verdaderas, se toma una
ruta. Si son falsas se toma una ruta distinta. La instruccin de seleccin tpica es la seleccin El diagrama de estructura es la principal herramienta de diseo para un programa. Como
bidireccional (i f-else). Aun cuando la mayor parte de los lenguajes proporciona seleccio- herramienta de diseo, sta se crea antes de comenzar a escribir un programa.
nes multidireccionales, no proporcionamos ninguna en el pseudocdigo. Las alternativas de la
seleccin se identifican mediante sangras (sangrando), como se muestra en el algoritmo D.3,
Algoritmo 0.3
5. if (x < y)
5.1 incrementa x
5.2 imprime x
6. else
6.1 disminuye y
6.2 imprime y
7. end if
CICLO Un ciclo itera un bloque de cdigo, El ciclo en nuestro pseudocdigo se parece ms al ciclo
while. Es un ciclo de preprueba~ es decir, la condicin se evala antes de ejecutar el cuerpo
del ciclo. Si la condicin es verdadera, el cuerpo se ejecuta. Si la condicin es falsa, el ciclo
termina. El algoritmo DA muestra un ejemplo de un ciclo,
Algoritmo 0.4
SELECCiN La figura E.3 muestra dos smbolos para una funcin que es llamada por una instruccin de
E.l SMBOLOS DEL DBAGRAMA DE ESTRUCTURA EN EL DIAGRAMA seleccin: la condicin y el OR exclusivo.
DE ESTRUCTURA
La figura B.l muestra los diversos smbolos utilizados en un diagrama de estructura.
doIt
o a. Funcin
~ <
1
::> C<~ doA 08
ro
;,,::;',' ,<"
b. Funcin
comn
c. Condicin d. Ciclo e. Ciclo
condicional Figura 10.3
a. Condicin
O
I
I
(+) I
En la figura E.3a, la funcin dOlt contiene una llamada condicional a una subfuncin,
fun. Si la condicin es verdadera, se llama a fun. Si no es verdadera, se omite fun. Esta si-
r T1
tuacin se representa en un diagrama de estructura como un diamante en la lnea vertical en-
I 11
f. OR exclusivo
I g. Flujo de datos h. Baudera
tre los dos bloques de funcin.
La figura E.3b representa la seleccin entre dos funciones diferentes. En este ejemplo, la
funcin select elige entre daA y daB. Una y slo una de ellas se llamar cada vez que se
ejecute la instruccin de seleccin. Esto se conoce como OR exclusivo; una de las dos alter-
nativas se ejecuta excluyendo la otra. El OR exclusivo se representa mediante un signo ms
Figura 1:..1 Smbolos del diagrama de estructura
entre los procesos.
Ahora considere el diseo encontrado para una serie de funciones que puede llamarse ex-
clusivamente. Esto ocurre cuando una seleccin multidireccional contiene llamadas a varias
SMBOLO Cada rectngulo en un diagrama de estructura representa una funcin que usted escribe. El
funciones diferentes. La figura E.4 contiene un ejemplo de una instruccin de seleccin que
DIE FUNCiN nombre en el rectngulo es el nombre que usted da a la funcin (figura E.2).
llama a diferentes funciones con base en el color.
No~br~::,de>
programa
ICe
initializ-:~:f
ii
I
-;' proes.:;s "
I
di;}~~ii
,
I
I I I Figura E.4 Ejemplo de una seleccin
A : I 8 C
.
CICLOS EN Veamos cmo se representan los ciclos en un diagrama de estructura. Los smbolos son muy
I EL DIAGRAMA simples. Los ciclos pueden ir en crculos, as que el smbolo usado es un crculo. Los progra-
J I DE ESTRUCTURA madores usan dos smbolos de ciclo bsicos. El primero es un ciclo simple, como se muestra
G l.
l
A.2
en la figura E.5a. El otro es el ciclo condicional, exhibido en la figura E.5b.
Cuando la funcin se llama de manera incondicional, como en un ciclo while, el crculo
fluye alrededor de la lnea que est sobre la funcin llamada. Por otra parte, si la llamada es
condicional, como en una funcin llamada en una instruccin i f-else dentro de un ciclo,
Figura 10.2 Ejemplo de un diagrama de estructura entonces el crculo incluye un diamante de decisin en la lnea.
la Diagramas de estructura
E.3 Reglas de los diagramas de estructura la
A menudo, un programa contendr varias llamadas a una funcin comn. Estas llamadas
select por lo general se esparcen en todo el programa. El diagrama de estructura mostrar la llama-
dolt
da siempre que sta ocurra lgicamente en el programa, Para identificar estructuras comunes,
la esquina inferior derecha del rectngulo estar sombreada, Si la funcin comn es comple-
ja y contiene subfunciones, estas subfunciones necesitan mostrarse slo una vez. Debe mos-
trarse una indicacin de que las referencias incompletas contienen estructura adicional. Por
fun doA lo general esto se hace con una lnea debajo de la funcin rectngulo y un smbolo de corte
(-). Este concepto se muestra en la figura E.7, la cual utiliza una funcin comn, average,
a. Ciclo b. Ciclo condicional en dos lugares diferentes del programa. No obstante, observe que nunca muestra grficamen-
te una funcin conectada a dos funciones que hacen una llamada.
Figura E.5 Ciclos en un diagrama de estructura
La figura E.6 muestra la estructura bsica para una funcin llamada process. El crculo
est debajo de la funcin que controla el ciclo. En este ejemplo la instruccin de ciclo est main
contenida en process y llama a tres funciones: A, B Y c. La naturaleza exacta del ciclo no
puede determinarse a partir del diagrama de estructura. Puede ser cualquiera de los tres cons-
tructores de ciclo bsicos.
I
Figura E.7 Varias llamadas a la misma funcin
Transforma a
valores de modo que la relacin relativa entre los pixeles se mantiene pero las redundancias
se revelan. La frmula es la siguiente: P (x,y) define un valor particular en el bloque de ima-
gen; T(m,n) define un valor en el bloque transformado.
"
'-'j
';'i'
cos'eno discreta T(m,n),?q.~5c(m)c(n)
7
ZZP(x, y)
.>-=0 y=O
cos (
2Y + l)nn)
16
En este apndice, damos las bases matemticas para las transformaciones de coseno discre~
ta y de coseno discreta inversa.
/",>
~;:':i;,:~~i' 7 7 :
~ O.2sl~x)c(y)
'>0;
Z zT(m,n)
",=011=0
sarlo
archivo de reporte de errores: en un proceso de actualizacin base de datos relacional: un modelo de base de datos en el cual capa de transporte: la cuarta capa en el modelo OSI; respon- en un solo chip.
de archivos, un infonne de errores detectado durante la ac- los datos se organizan en tablas relacionadas llamadas rela- sable por la entrega extremo a extremo de todo el mensaje. crculo de calidad: un diagrama en forma circular de los pasos
tualizacin. ciones. capacidad de correccin: el factor de calidad que aborda la para la calidad del software.
archivo de texto: un archivo en el cual todos los datos se al- bit: acrnimo de binary digit (dgito binario). En una compu- facilidad con la cual pueden corregirse los errores en un m- clase: la combinacin de datos y funciones unidos para formar
macenan como caracteres. Contrasta con archivo binario. tadora, la unidad de almacenamiento bsico con un valor ya dulo. un tipo.
archivo de transaccin: un archivo que contiene datos relati- seadeOo l. capacidad de pruebas: un atributo del software que mide la fa- dear: en las mscaras, una tcnica para hacer un bit O; tambin
vamente transitorios que se utilizan para cambiar el conte- bloque: un grupo de instrucciones tratadas como un todo. cilidad con la cual el sofuvare puede probarse como un siste- conocida como forzar a O.
nido de un archivo maestro. bus: el canal fsico que enlaza los componentes de hardware en ma operacional. diente: en un programa cliente-servidor, la aplicacin que soli-
archivo ejecutable: un archivo que puede ejecutarse (correr); una computadora; el medio fsico compartido utilizado en cargador: la funcin del sistema operativo que busca y trae un cita servicios de un servidor.
un programa. una red de topologa de bus. programa ejecutable a la memoria para su ejecucin. COBOL: un lenguaje de programacin de negocios (COmmon
archivo fuente: el archivo que contiene instrucciones de pro- bus de control: el bus que transporta infonnacin entre compo- char: el tipo de dato en lenguaje C para carcter. Business-Oriented Languaje) desarrollado por Grace Hopper.
grama escritas por un programador antes de que se convier- nentes de computadoras. ciclo controlado por contador: una tcnica de ciclo en la cual codificacin basada en diccionario: un mtodo de compresin
tan en lenguaje de mquina; el archivo de entrada a un bus de datos: el bus dentro de una computadora utilizado para el nmero de iteraciones es controlado por un contador. en el cual un diccionario se crea durante la sesin.
ensamblador o compilador. transportar datos entre componentes. ciclo controlado por eventos: un ciclo cuya tenninacin se ba- codificacin de Huffman: un mtodo de compresin estadsti-
archivo hashed: un archivo en el cual se busca utilizando uno bus de direccin: la parte del bus del sistema utilizada para sa en la ocurrencia de un evento especificado. Contraste con co que utiliza cdigo de longitud variable.
de los mtodos de hashing. transferir direcciones. ciclo controlado por contador. codificacin de Lempel Ziv (LZ): un algOlitmo de compresin
archivo maestro: un archivo permanente que contiene los da- bus serial universal (USB: universal serial bus): un controla- ciclo de mquina: la secuencia repetitiva de eventos en la que utiliza un diccionario.
tos ms actuales referentes a una aplicacin. dor de dispositivos de E/S que conecta dispositivos ms len- ejecucin de instrucciones de programa (fetch, decode y codificacin de Lempel Ziv Welch (LZW): una versin mejo-
archivo maestro nuevo: el archivo maestro que se crea desde tos, tales como el teclado y el ratn, a una computadora. execute). rada de la codificacin LZ.
un archivo maestro viejo cuando se actualiza el archivo. bsqueda: el proceso que examina una lista para localizar uno ciclo de postprueba: un ciclo en el cual la condicin de finali- codificacin de longitud de ejecucin: un mtodo de compre-
archivo maestro viejo: el archivo maestro que se procesa jun- o ms elementos que contienen un valor designado conocido zacin se prueba slo despus de la ejecucin de las instruc- sin sin prdida en el cual una serie de smbolos se reempla- '
to con el archivo de transaccin para crear el nuevo archivo como el argumento de bsqueda. ciones de ciclo. Contraste con ciclo de preprueba. za mediante el smbolo y el nmero de smbolos repetidos.
maestro. bsqueda binaria: un algoritmo de bsqueda en el cual el va- ciclo de preprueba: un ciclo en el cual la condicin de finali- cdigo: una serie de patrones de bits diseados para representar
archivo secuencial: una estructura de archivos en la cual los lor de bsqueda se localiza al dividir repetidamente la lista a zacin se prueba antes de la ejecucin de las instrucciones de smbolos de texto.
datos deben procesarse en forma serial desde el primer ele- la mitad. ciclo. Contraste con ciclo de postprueba. cdigo de intercambio decimal codificado en. binario extendi-
mento en el archivo. bsqueda en una lista: Vase bsqueda. ciclo de vida del desarrollo del sistema: una secuencia de pa- do (EBCDIC: Extended Binary Coded Decimal Interchan-
rea principal: en una lista hashed, la memoria que contiene bsqueda secuencial: una tcnica de bsqueda utilizada con sos requeridos para desarrollar software; comienza con la ne- ge Code): el conjunto de caracteres diseado por IBM para
la direccin base. una lista lineal en la cual la bsqueda comienza con el primer cesidad de software y concluye con su implementacin. sus sistemas de cmputo ms grandes.
arista: una lnea de grafo que no tiene direccin. elemento y contina basta que el valor de un elemento igual ciclo de vida del software: la vida de un paquete de software. Cdigo norteamericano de estndares para intercambio de
arreglo bidimensional: un arreglo con elementos que tiene al valor que se busca se localiza o hasta que el [mal de la lista ciclo do-while: en los lenguajes C y C++, un ciclo postprueba informacin (ASCII: American Standard Code for Infor-
dos niveles de indexacin. Vase tambin arreglo multidi- se alcanza. controlado por eventos. mation Interchange): un esquema de codificacin que define
mensional. byte: una unidad de almacenamiento, por lo general 8 bits. ciclo for: un ciclo controlado por contador en C y C++. los caracteres de control e imprimibles para 128 valores.
arreglo multidimensional: un arreglo con elementos que tie- caja negra: un dispositivo con mecanismos internos desconoci- ciclo while: un ciclo controlado por eventos en C y c++. cohesin: el atributo de un mdulo que describe qu tan estre-
nen ms de un nivel de indexacin. dos para el operador. ciclo: en un programa, un constructor de la programacin estruc- chamente se relacionan los procesos escritos en un mdulo
ASCII: Vase Cdigo norteamericano de estndares para in- turado que provoca que una o ms instrucciones se repitan; en entre s.
tercambio de informacin. e un grafo es una Hnea que comienza y finaliza con el mismo cohesin casual: la combinacin de procedimientos que no es-
ASCII extendido: un conjunto de caracteres que ampla el calidad del software: software que satisface los requisitos ex- vrtice. tn relacionados.
ASCII bsico. Los caracteres extras representan caracteres plcitos e implcitos del usuario, est bien documentado, ciencias de la computacin: estudio de los temas relacionados cohesin de comunicacin: un atributo de diseo en el cual los
para lenguajes extranjeros as corno para otros smbolos. cumple con los estndares operativos de la organizacin y se con una computadora. procesos de mdulo se relacionan debido a que comparten
ejecuta de manera eficiente en el cifrado: conversin de un mensaje a una forma ininteligible que los mismos datos.
camino: una secuencia de nodos en los cuales cada vrtice es es ilegible a menos que se descifre. cohesin de procedimiento: un atributo de diseo en el cual el
bandera: un indicador utilizado en un programa para designar adyacente al siguiente. cifrado a nivel de bits: un mtodo de cifrado en el cual los da- procesamiento dentro del mdulo se relaciona con los flujos
la presencia o ausencia de una condicin; switch. campo: la unidad nombrada de datos ms pequea que tiene tos primero se dividen en bloques de bits antes de cifrarse. de control. Se considera un modelo aceptable slo en los ni-
base de datos: una coleccin de informacin organizada. significado en la descripcin de informacin. Un campo cifrado a nivel de carcter: un mtodo de cifrado en el cual el veles ms altos de un programa.
base de datos distribuida: una base de datos en la cual los da- puede ser una variable o una constante. carcter es la unidad de cifrado. cohesin funcional: un atributo de diseo en el cual todo el
tos se almacenan en varias computadoras. capa fsica: la primera capa en el modelo OSI; responsable por cifrado de llave pblica: un mtodo de cifrado que utiliza dos procesamiento se relaciona con una sola tarea. El nivel ms
base de datos distribuida fragmentada: una base de datos dis- formar y transmitir bits a lo largo de la red. llaves: privada y pblica. La llave privada se mantiene en se- alto de cohesin.
tribuida en la cual se localizan los datos. capa de presentacin: la sexta capa en el modelo OSI; respon- creto; la llave pblica se revela al pblico. cohesin lgica: un atributo de diseo que describe un mdulo
base de datos distribuida replicada: una base de datos en la sable de dar formato a los datos, el cifrado/descifrado y la cifrado de Rivest-Shamir~Adleman (RSA): un mtodo de ci- en el cual el procesamiento dentro del mdulo se relaciona
cual cada sitio aloja una rplica de otro sitio. compresin. frado de llave pblica popular. slo con el tipo general de procesamiento que se est reali-
base de datos orientada a objetos: una base de datos en la cual capa de sesin: el quinto nivel en el modelo OSI; responsable cinta magntica: un medio de almacenamiento con capacidad zando. Se considera inaceptable en la programacin estruc-
los datos se tratan como estructuras (objetos). de establecer y tenninar sesiones y controlar dilogos. secuencial. turada.
circuito integrado: transistores, cableado y otros componentes cohesin secuencial: un atributo de diseo en el cual el proce-
al
1
Glosario Glosario ..
samiento dentro del mdulo es tal que los datos de un proce- constante: un valor de datos que no puede cambiar durante la declaracin de funcin: en C, una instruccin de prototipo que disco compacto grabable (CD~R): un disco compacto en el cual
so se utilizan en el siguiente proceso.
cohesin temporal: un diseo de mdulo en el cual los proce-
ejecucin del programa. Contraste con variable.
constante literal: una constante sin nombrar codificada en una
describe el tipo de regreso de la funcin, el nombre y los pa-
rmetros fonnales.
el usuario slo puede escribir una vez y leerlo muchas veces.
disco maestro: el disco que aloja el arcmvo maestro en la actua-
sos se combinan debido a que todos necesitan procesarse en expresin. decodificacin: proceso de restaurar un mensaje codificado a lizacin de archivos.
la misma secuencia de tiempo. constante nombrada: una constante a la que el programador da su forma anterior a la codificacin. disco magntico: un medio de almacenamiento con capacidad
cola de espera: una lista lineal en la cual los datos slo pueden un nombre. definicin de funcin: en C, la implementacin de una decla- de acceso aleatorio.
insertarse en un extremo, llamado la parte de atrs, y elimi- constante simblica: una constante que est representada por racin de funcin. disco verstil digital (DVD): un medio de almacenamiento p-
narse desde el otro extremo llamado la parte de adelante. un indentificador. definicin: en C, el proceso que reserva memoria para un obje- tico de acceso directo que puede almacenar hasta 17 gigaby-
colisin: en hashing, un evento que ocurre cuando un algoritmo contador de programa: un registro en el CPU que mantiene to nombrado, tal como una variable o constante. tes (una pelcula de 2 horas)
de hashing produce una direccin para una insercin y esa di- la direccin de la siguiente instruccin a ejecutarse en la desbordaITento: la condicin que resulta cuando no hay sufi- diseo de arriba hacia abajo: un concepto de diseo de pro-
reccin ya est ocupada. memoria. cientes bits para representar un nmero en binario. Vase grama en el cual un diseo progresa a travs de una descom-
columna vertebral backbone: los medios y dispositivos que contenedor: un algoritmo de hasmng, una localidad que puede tambin declaracin. posicin de las funciones, comenzando por la parte superior
crean conectividad para redes pequeas. acomodar varias unidades de datos. descendiente: cualquier nodo en el camino desde el nodo actual del diagrama estructurado y trabajando hacia los mdulos
comentario: en un programa e, una nota para el lector del pro- controlador de entrada/salida (E/S): un dispositivo que con- a una hoja. interiores.
grama que es ignorada por el compilador. trola el acceso a los dispositivos de entrada/salida. descifrado: la recuperacin del mensaje original desde los da- dispositivo de almacenamiento auxiliar o secundario: cual-
compilador: software del sistema que convierte un programa controlador: un componente de una mquina Turing que es tos cifrados. Vase cifrado. quier dispositivo de almacenamiento fuera de la memoria
fuente en cdigo objeto ejecutable; tradicionalmente asociado equivalente al CPU de una computadora. descompresin: la accin realizada en los datos comprimidos principal; almacenamiento de datos pennanente; almacena-
con lenguajes de alto nivel. Vase tambin ensamblador. conversin binaria a decimal: el cambio de un nmero binario para obtener los datos originales. miento externo; almacenamiento secundario.
complemento a uno: la operacin relacionada con bits que in- a nmero decimal. diagrama de clase: un diagrama en la programacin orientada dispositivo de almacenamiento ptico: un dispositivo de E/S
vierte el valor de los bits en una variable. conversin decimal a binaria: el cambio de un nmero deci- a objetos que muestra la relacin entre objetos. que utiliza luz (lser) para almacenar y recuperar datos.
complemento a dos: una representacin de nmeros binarios mal a nmero binario. diagrama de estado: un diagrama que muestra los diferentes dispositivo de almacenamiento secundario: Vase dispositivo
en la cual el complemento de un nmero se encuentra al com- correo electrnico (e~mail): un mtodo para enviar mensajes estados de un proceso. de almacenamiento auxiliar.
plementar todos los bits y sumar un 1 despus de eso. electrnicamente basados en la direccin del buzn de correo diagrama de flujo: una herramienta de diseo de programa en dispositivo de almacenamiento: un dispositivo E/S que puede
compresin: la reduccin de un mensaje sin prdida significa- electrnico en vez del intercambio de anfitrin a anfitrin. la cual los smbolos grficos estndar se utilizan para repre- almacenar grandes cantidades de infonnacin para recuperar
tiva de infonnacin. CPU: Vase unidad central de procesamiento. sentar el flujo lgico de datos a travs de una funcin. en un momento posterior.
compresin de datos con prdida: compresin de datos en la cuadro bidireccional (cuadro B): en :rvIPEG un cuadro que se diagrama estructurado: una herramienta de diseo y docu- dispositivo de interconexin de redes: dispositivos como enruta-
cual se permite que algunos datos se pierdan; utilizada para relaciona tanto Con los cuadros precedentes como con los mentacin que representa un programa como un flujo jerr- dores o gateways que conectan redes para formar una interred.
compresin de imagen, audio o video. posteriores. quico de funciones. dispositivo de no almacenamiento: un dispositivo E/S que
compresin de datos sin prdida: compresin de datos en la cuadro intracodificado (cuadro 1): en MPEG, un cuadro inde- digital: una entidad discreta (no continua). puede comunicarse con la memoria del CPU, pero no puede
cual no se pierde ningn dato; utilizada para comprimir tex- pendiente. dgito binario (bit): la unidad ms pequea de infonnacin almacenar informacin.
to o programas. cuadro pronosticado (cuadro P): en MPEG, un cuadro que se (O o 1). dispositivo de salida: un dispositivo en el que puede escribirse
compresin de datos: la reduccin de la cantidad de datos sin relaciona con el cuadro 1 o el cuadro B precedentes. dgito hexadecimal: un smbolo en el sistema hexadecimal. pero no leerse.
una prdida significativa. cuantizacin: asignar un valor de una serie finita de valores. digrafo: un grado dirigido. dispositivos de conexin: dispositivos como emutadores, puen-
compresin espacial: compresin realizada por JPEG en un cuerpo: la parte de una funcin que contiene las definiciones e ins- direccin base: en una lista hashed, la primera direccin produ- tes y repetidores que conectan LAN o WAN.
cuadro. trucciones; el todo de una funcin con excepcin de la declara- cida por el algoritmo de hasmng. documentacin del sistema: un registro estructurado formal
compresin estadstica: un mtodo de compresin en el cual la cin del encabezado. Contraste con encabezado de funcin. direccin de puerto: la direccin utilizada en TCP y UDP para de un paquete de software.
codificacin se basa en la frecuencia de los smbolos. cuerpo de la funcin: el cdigo dentro de una funcin conteni- distinguir un proceso de otro. documento activo: en el WorId Wide Web, un documento eje-
compresin temporal: compresin realizada por MPEG en los do dentro de la definicin de la funcin y las secciones de direccin IlSica: la direccin de un dispositivo en el nivel de en- cutado en el sitio local utilizando Java.
cuadros. instrucciones. lace de datos. documento dinmico: un documento web creado mediante la
computadora de conjunto de instrucciones complejas (CISC: direccin Internet: una direccin de 32 bits utilizada para defi- ejecucin de un programa en el sitio del servidor.
complex mstruction set computer): una computadora que D nir nicamente una computadora en Internet. documento esttico: una pgina web que se crea en el sitio re-
define un amplio conjunto de instrucciones, incluso aquellas datagrama: el paquete enviado mediante el protocolo IP. direccin IP: Vase direccin Internet. moto y es recuperada por el sitio local. Contraste con docu-
que se utilizan con menor frecuencia. datagrama de usuario: el nombre de la unidad de datos utili- direccin lgica: una direccin definida en el nivel de red. mento dinmico.
computadora de conjunto de instrucciones reducidas (RISC: zados por el protocolo VDP. directivas de preprocesador: comandos para el precompilador C.
reduced instruction set computer): una computadora que uti- datagrama IP: la unidad de datos en el nivel de red. disco: un medio de almacenamiento directo auxiliar para datos
liza slo las instrucciones utilizadas con frecuencia. datos de entrada: informacin del usuario que se presenta a de computadora y programas. E
computadora personal (PC): una computadora diseada para una computadora para ejecutar un programa. disco compacto: un medio de almacenamiento ptico de acce- E/S aislada: un mtodo de direccionamiento de un mdulo E/S
uso individual. datos de salida: los resultados de ejecutar un programa de so directo con una capacidad de 650 megabytes. en el cual las instrucciones utilizadas para leer/escribir me-
concentrador activo: un concentrador (hub) que regenera las computadora. disco compacto de memoria de slo lectura (CD~ROM): un moria, difieren totalmente de las instrucciones utilizadas pa-
seales recibidas (un repetidor). datos lgicos: datos con un valor ya sea de verdadero o falso. disco compacto en el cual el fabricante escribe los datos en ra leer/escribir en dispositivos de entrada/salida.
concentrador pasivo: un tipo de dispositivo de conexin que declaracin: en C, la asociacin de un nombre con un objeto, el disco y slo pueden ser ledos por el usuario. E/S mapeada a memoria: un mtodo de direccionamiento de
no regenera los datos. tal como un tipo, una variable, una estructura o una funcin. disco compacto escribible (CD~RW): un disco compacto en el un mdulo E/S en un solo espacio de direccin; utilizada tan-
conmutador: Vase bandera. Vase tambin definicin. que puede escribirse muchas veces y leerse muchas veces. to para la memoria como para los dispositivos.
.. Glosario Glosario ..
E/S manejada por interrupciones: una fonna de E/S en la cual espacio entre pistas: el vaco entre las pistas de un disco. fetch: la parte del ciclo de instrucciones en el cual la instruccin grafo dirigido: un grafo en el cual la direccin se indica en las
el CPU, despus de emitir un comando de E/S, contina sir- espacio entre sectores: el vaco entre los sectores de un disco. a ser ejecutada se trae desde la memoria. lneas (arcos).
viendo otros procesos hasta que recibe una seal de interrup- espacios en blanco: en C, el espacio, los tabuladores horizonta- fiabilidad: el factor de calidad que trata la confianza en la ope- grafo fuertemente conectado: un grafo en el cual hay un cami-
cin de que la operacin de E/S se ha completado. les y verticales, la lnea nueva y los caracteres de cambio de racin total de un sistema. no desde cada nodo a cada otro nodo. Contraste con grafo d-
E/S programada: una fonna de E/S programada en la cual el pgina. FIFO: Vase primero en entrar, primero en salir. bilmente conectado.
CPU debe esperar a que la operacin de EIS se complete. esquema: el estndar de facto del lenguaje LISP. FireWire: un controlador de dispositivo de entrada/salida con grafo inconexo: un grafo que no est conectado.
EBCDIC: Vase Cdigo extendido de intercambio decimal co- estarlo de ejecucin: en la administracin de procesos, un esta- una interfaz serial de alta velocidad que transfiere los datos grafo no dirigido: un grafo que consiste slo de dos aristas; es
dificado en binano. do en el cual un proceso est utilizando el CPU. en paquetes. decir, un grafo en el cual no hay indicacin de la direccin de
editor de texto: software que crea y mantiene archivos de texto estado de espera: el estado de una tarea que espera a ser carga- firma digital: un mtodo utilizado para autenticar el emisor del las lneas.
tales como un procesador de palabras o un editor de progra- da en la memoria. mensaje y preservar la integridad de los datos. grupo de expertos en imgenes en movimiento (MPEG: mo-
ma fuente. estado de espera: un estado en el cual un proceso espera a re- flexibilidad: el factor de calidad que trata la facilidad con la tion picture experts group): un mtodo de compresin con
efecto secWldario: un cambio en una variable que resulta de la cibir la atencin del CPU. cual un programa puede cambiarse para cumplir con los re- prdida para comprimir video (y audio).
evaluacin de una expresin; cualquier entrada/salida reali- estado de listo: en la administracin de procesos, el estado de quisitos de los usuarios. grupo unido de expertos en fotografa (JPEG: joint photograp-
zada por una funcin llamada. procesamiento en el cual el proceso est esperando obtener flip: cambiar un bit de O a 1 o de 1 a O. mc experts group): un estndar para comprimir imgenes.
eficiencia: el factor de calidad que trata el uso ptimo del hardwa-
atencin del CPU. fioa!: un tipo de punto flotante.
re de computadora o la velocidad de respuesta para un usuario. estado de terminacin: en la administracin de procesos, un formato de doble precisin: un estndar para almacenar nme-
estado en el cual un proceso ha tenninado de ejecutarse. ros de punto flotante en la memoria con mayor precisin que hardware: cualquiera de los componentes fsicos de un sistema
ejecutar: poner en funcionamiento un programa.
estndar de cifrado de datos (DES): el mtodo de cifrado del el formato de precisin simple. de cmputo, tales como un teclado o una impresora.
elemento de imagen (pxel): la unidad ms pequea de una
gobierno estadounidense para uso no militarizado y no clasi- FORTRAN: un lenguaje de procedimiento de alto nivel utiliza- hashing de contendor: un mtodo de hashing que utiliza con-
imagen.
ficado. do para aplicaciones cientficas y de ingeniera. tenedores para reducir la colisin.
eliminacin (dequeue): eliminacin de un elemento de una cola.
estructura autorreferencial: una estructura que contiene un forzar a O: el concepto de manipulacin de bits utilizado para hashing de extraccin de dgitos: un mtodo de hashing que
encabezado: la infonnacin aadida al principio de un paquete
apuntador hacia s misma. cambiar los bits seleccionados a O. utiliza la extraccin de dgitos.
para enrutamiento y otros propsitos.
estructura de datos: la representacin sintctica de los datos forzar a 1: el concepto de manipulacin de bits utilizado para hashing de residuo de divisin: un tipo de hashing en el cual la
encabezado de funcin: en una definicin de funcin, la parte
organizados para mostrar la relacin entre los elementos in- cambiar los bits seleccionados de a 1. llave se divide por un nmero y el residuo se utiliza como
de la funcin que proporciona el tipo de regreso, el identifi-
dividuales. forzar al cambio: el concepto de manipulacin de bits utiliza- la direccin.
cador de funcin y los parmetros fonnales. Contraste con
explorador: un programa de aplicacin que despliega un docu- do para cambiar los bits seleccionados de O a 1 y de 1 a O. hashing directo: un mtodo de hashing en el cual la llave se ob-
cuerpo.
mento del WWW. fraccin: una parte de un nmero entero. tiene sin modificacin algortmica.
encapsulamiento: el concepto de diseo de ingeniera de soft-
expresin: una secuencia de operadores y operandos que se re- funcin: un bloque nombrado de cdigo que realiza un proceso hashing doble: un mtodo de resolucin de colisiones de has-
ware en el cual los datos y sus operaciones se incluyen jun-
duce a un solo valor. dentro de un programa; una unidad ejecutable de cdigo con- hing en el cual la direccin de la colisin se produce para de-
tos y se mantienen en fonna separada de la aplicacin que los
expresin primaria: una expresin que consiste de un solo sistente en un encabezado, el nombre de la funcin y un cuer- teTIllnar la siguiente direccin.
utiliza.
operador; la expresin de prioridad ms alta. po, diseada para realizar una tarea dentro del programa. herencia: capacidad para ampliar una clase para crear una cla-
enrutador: un dispositivo que opera en tres primeras capas del
extraccin de dgitos: seleccin de dgitos de una llave para se nueva mientras se mantienen los objetos de datos y los m-
modelo OSI que conecta redes independientes. Un ennttador
usar como una direccin. todos de la clase base y se aaden nuevos objetos de datos y
dirige un paquete con base en su direccin de destino.
extraer (pop): la operacin de eliminacin en una pila. gateway: un dispositivo que conecta dos redes separadas que mtodos.
enrutanllento: el proceso realizado por un enrutador.
utilizan diferentes protocolos de comunicacin. hermanos: nodos en un rbol con el mismo padre.
ensamblador: software del sistema que convierte un programa
grado: el nmero de lneas incidentes a un nodo en un grafo. hipertexto: un documento con referencias a otros documentos.
fuente en cdigo objeto ejecutable; asociado tradicionalmen- F
grado de entrada: el nmero de lneas que entran a un nodo en histograma: una representacin grfica de una distribucin de
te con un programa de lenguaje ensamblador. Vase tambin facilidad de cambio: el factor de calidad que aborda la facili-
un rbol o grafo. frecuencia. Vase tambin arreglo de frecuencia.
compilador. dad con la cual los cambios pueden hacerse con precisin pa-
grado de salida: el nmero de lneas que dejan un nodo en un hoja: un grafo o nodo de rbol con una grado de salida de O.
entero: un nmero entero, un nmero sin una parte fraccionaria. ra un programa.
rbol o grafo. HTML: Vase lenguaje de marcacin de hipertexto.
entero negativo: un entero que vara de infinito negativo a O. factor de equilibrio: en un rbol, la diferencia entre la altura
grfica de barras: una grfica con valores representados me- Hub: Un dispositivo que interconecta otros dispositivos en una
entero positivo: un entero que vara de O a infinito positivo. del subrbol derecho y el subrbol izquierdo.
diante barras. red.
entero sin signo: un entero sin un signo; su valor vara entre O fase de anlisis: una fase en el ciclo de vida del sistema de soft-
grfico de mapa de bits: una representacin grfica en la cual
y el infiQito positivo. ware que define los requisitos que especifican lo que el siste-
una combinacin de pixeles define la imagen.
entrega de nodo a nodo: la entrega de datos desde un nodo al ma propuesto va a lograr.
grfico de vectores: el tipo de grficos en el cual las lneas y las identificador: el nombre dado a un objeto en un lenguaje de
siguiente. fase de diseo: una fase en el ciclo de vida del sistema de soft-
curvas se definen utilizando frmulas matemticas. programacin.
entrega de origen a destino: la entrega de un paquete de datos ware que define cmo lograr el sistema lo que se defini en
grafo: una coleccin de nodos, llamados vrtices, y segmentos de imagen: datos en la forma de grficos o imgenes.
de la fuente al destino. la fase de anlisis.
lnea, llamados aristas o arcos, que conectan pares de nodos. inanicin: un problema en la operacin de un sistema operati-
equilibrio: un atributo de nodo de rbol que representa la dife- fase de implementacin: una fase en el ciclo de vida del soft-
grafo con peso: un grafo con lneas con peso. Cada lnea tiene vo en el cual los procesos nO pueden tener acceso a los recur-
rencia en altura entre los subrboles del nodo. ware del sistema en la cual se crean los programas reales.
un entero que define el peso. sos que necesitan.
escribir una vez, leer muchas (WORl\lI): otro nombre para un fase de pruebas: un fase en el ciclo de vida del software en la
grafo dbilmente conectado: un grafo en el cual hayal menos incremento de. prefijo: en C, el operador (por ejemplo, ++a)
CD-R. cual se realizan experimentos para probar que un paquete de
un nodo sin un camino para al menos uno de los otros nodos. que suma 1 a una variable antes de que su valor se utilice en
espacio de direcciones: un intervalo de direcciones. software funciona.
Contraste con grafo fuertemente conectado. una expresin. Tambin conocido como incremento unario.
.. Glosario Glosario ..
ndice: la direccin de un elemento en un arreglo. iteracin: una sola ejecucin de instrucciones en un ciclo. lenguaje simblico: un lenguaje de computadora, un nivel eli- llave secreta: una llave que se comparte por dos participantes
infijo: una notacin aritmtica en la cual el operador se coloca minado del lenguaje de mquina, que tiene un identificador en el cifrado de llave secreta.
entre dos operandos. nemnico para cada instruccin de mquina y tiene la capa-
ingeniera de software: el diseo y la escritura de programas
J M
Java: un lenguaje de programacin orientada a objetos para cidad de nombres de datos simblicos.
estructurados. LIFO: Vase ltimo en entrar, primero en salir. macro: un procedimiento diseado personalmente que puede
crear programas independientes o documentos dinmicos en
inicializador: una instruccin que inicializa el valor de una va- liga: en una estructura de lista, el campo que identifica el si- utilizarse una y otra vez.
Internet.
riable. guiente elemento en la lista. mantisa: la parte de un nmero de punto flotante que muestra
inicio de sesin local: un inicio de sesin en una computadora ligador: la funcin en el proceso de creacin del programa en la precisin.
conectada directamente a la terminal. 1. - la cual un mdulo de objeto se une a funciones precompila- mquina analtica: la computadora inventada por Charles Bab-
lenguaje C++: un lenguaje orientado a objetos desarrollado por das para formar un programa ejecutable. bage.
inicio de sesin remoto: inicio de sesin en una computadora
Bjarne Stroustrup. lnea de tiempo: un atributo de softwarte que mide la rapidez de mquina de Turing: un modelo de computadora con tres com-
conectada a la computadora locaL
lenguaje C: un lenguaje de procedimiento desarrollado por un sistema para los requisitos de tiempo de un usuario. ponentes (cinta, controlador y cabeza de lectura/escritura)
insertar (enqueue): insertar un elemento en una cola de espera.
Dennis Ritchie. lnea: un elemento de grafo que conecta dos vrtices en el gra- que puede implementar instrucciones en un lenguaje de
insertar (push): la operacin de insercin de pila.
lenguaje de alto nivel: un lenguaje de programacin (porttil) fo. Vase tambin arco y arista. computadora.
Instituto Nacional Norteamericano de Estndares (ANSI: diseado para permitir al programador concentrarse en la Linux: un sistema operativo desarrollado por Linux Torvalds mscara: una variable o constante que contiene una configura-
American National Standards Insttute): una organizacin aplicacin y no en la estructura de una computadora o siste- para volver a UNIX ms eficiente cuando se ejecuta en un cin de bits utilizada para controlar el arreglo de bits en una
que crea estndares en los lenguajes de programacin, espe- ma operativo en particular. microprocesador Inte1. operacin relativa a los bits.
cificaciones elctricas, protocolos de comunicacin y as por lenguaje de computadora: cualquiera de los lenguajes sintc- LISP: un lenguaje de programacin de procesamiento de listas matriz de adyacencia: un mtodo de representacin de un gra-
el estilo. ticos utilizados para escribir programas para computadoras, en el cual todo se considera una lista. fo que utiliza un arreglo para los vrtices y una matriz (arre-
instruccin compuesta: en algunos lenguajes de programa- tales como el lenguaje de mquina, el lenguaje ensamblador, glo bidimensional cuadrado) para almacenar las aristas.
lista: un conjunto ordenado de datos contenidos en la memoria
cin, una coleccin de instrucciones tratadas como una sola C, COBOL y FORmAN. memoria: la memoria principal de una computadora consistente
principal. Contraste con archivo.
por el lenguaje. lenguaje de consultas estructurado (SQL: Structured Query en memoria de acceso aleatorio (RAM) y memoria de slo lec-
lista aleatoria: una lista sin orden de los datos.
instruccin de ciclo: una instruccin que provoca que el pro- Language): un lenguaje de base de datos que incluye instruc- tura (ROM); utilizada para almacenar datos e instrucciones de
lista de adyacencia: un mtodo de representacin de un grafo
grama itere una serie de distintas instrucciones. ciones para definicin, manipulacin y control de la base de programa.
que utiliza una lista ligada para almacenar los vrtices y un
instruccin de decremento: la instruccin que resta 1 del valor datos. memoria cach: una memoria pequea y rpida utilizada para
arreglo de lista ligada bidimensional para almacenar las aristas.
de una variable. lenguaje de mquina: las instrucciones nativas para el procesa- almacenar elementos de datos que se estn procesando.
lista de parmetros! una lista de valores pasados a una funcin.
instruccin de expresin: en C, una expresin terminada con dor central de una computadora que son ejecutables sin en- lista doblemente ligada: una coleccin ordenada de datos en la memoria de acceso aleatorio (RAlVI: random access memory):
un signo de punto y coma. samblaje o compilacin. cual cada elemento contiene dos apuntadores, uno que apun- la memoria principal de la computadora que almacena datos
instruccin de incremento: en C o C++, la instruccin que su- lenguaje de marcacin de hipertexto (HTML: hypertext mar- ta hacia el elemento previo y uno que apunta hacia el elemen- y programas.
ma un 1 a un valor entero. kup language): el lenguaje de computadora para especificar to siguiente. memoria de slo lectura (ROM: read-only memory): memo-
instruccin de seleccin: una instruccin que elige entre dos o el contenido y fonnato de nn documento web; permite que el lista general: una lista en la cual los datos pueden insertarse o ria pennanente con contenido que no puede cambiarse.
ms alternativas. En C, las instrucciones if-else y switch. texto incluya fuentes, pantallas, grficos incrustados y vncu- eliminarse en cualquier parte de la lista. memoria de slo lectura programable (PROM): memoria con
instruccin ifwelse: un constructor que implementa una selec- los a otros documentos. lista ligada: una estructura de lista lineal en la cual el orden de contenidos elctricamente establecidos por el fabricante; el
cin de dos sentidos. lenguaje de procedimiento (procedual): un lenguaje de com- los elementos se detennina mediante campos de liga. usuario puede restablecerla.
instruccin switch: la implementacin C de la seleccin de putadora en el cual una serie de instrucciones por lo general lista ligada individualmente: una coleccin ordenada de datos memoria de slo lectura programable borrable electrnica-
j
mltiples rutas. se ejecuta una a una de principio a fin. I en la cual cada elemento contiene slo la localizacin del si- mente (EPROM): memoria de slo lectura programable
instruccin: un comando que indica qu hacer a una compu- lenguaje de programacin: un lenguaje con palabras limitadas guiente elemento. Contraste con lista doblemente ligada. que puede programarse y borrarse usando impulsos electr-
tadora. Un constructor sintctico en e que representa una y reglas limitadas diseadas para resolver problemas en una 1
lista lineal: una estructura de lista en la cual cada elemento, ex- nicos sin ser eliminados de la computadora.
operacin en una funcin.
Interconexin de sistemas abiertos (OSI: Open Systems Inter-
computadora.
lenguaje declarativo: un lenguaje de computadora que utiliza
!I cepto el ltimo, tiene un sucesor nico.
lista ordenada: una lista en la cual los elementos se acomodan
memoria de slo lectura programable y borrable electrnica-
mente (EEPROM: electronically erasable programmable
connection): un modelo de siete capas diseado por la ISO el principio del razonamiento lgico para contestar consultas.
como una gua para comunicacin de datos. lenguaje ensamblador: un lenguaje de programacin en el cual
! de manera que los valores clave se coloquen en secuencia as- read-only memory): memoria de slo lectura programable
que puede programarse; el borrado de la EPROM requiere
interfaz de usuario: un programa que acepta solicitudes de los hay una correspondencia uno a uno entre el lenguaje de m- ! cendente o descendente.
lista restringida: una lista en la cual los datos slo pueden aa- que sta sea removida de la computadora.
usuarios (procesos) y las interpreta para el resto del sistema quina de la computadora y el conjunto de instrucciones sim- dirse o eliminarse en los extremos de la lista y el procesa- memoria primaria: la memoria de alta velocidad de una
I
operativo blicas del lenguaje. miento est restringido a operaciones en los datos de los computadora, donde los programas y los datos se almacenan
interfaz pequea de sistemas de computadoras (SCSI: small lenguaje funcional: un lenguaje de programacin en el cual un extremos. cuando el programa se est ejecutando. La memoria primaria
computer system interface): un controlador de dispositivo de programa se considera una funcin matemtica. llamada de funcin: una instruccin que invoca a otra funcin. es voltil, lo cual significa que el contenido se borra cuando
EIS con una interfaz paralela. lenguaje imperativo: otro nombre para un lenguaje de procedi- llave: uno o ms campos utilizado para identificar un registro la computadora se apaga; memoria principal.
Internet: la interred global que utiliza el conjunto de protoco- miento. (estructura). memoria principal: Vase memoria primaria.
los TCPIIP. lenguaje natural: cualquier lenguaje hablado. llave privada: una de las dos llaves utilizadas en el cifrado de memoria virtual: la memoria que resulta de intercambiar pro-
interoperabilidad: el factor de calidad que trata la capacidad lenguaje orientado a objetos: un lenguaje de programacin en llave pblica. gramas hacia el interior y el exterior de la memoria durante
de un sistema para intercambiar datos con otro sistema. el cual los objetos y las operaciones a aplicar en ellos se in- llave pblica: una de las llaves en un cifrado de llave pblica; la ejecucin para dar la impresin de un memoria principal
interred: abreviatura de interconexin de redes. cluyen juntas. se revela al pblico. ms grande de la que realmente existe.
Glosario Glosario ..
mtodo de acceso: una tcnica para leer datos desde un dispo- nivel interno: la parte de la base de datos que define dnde se operacin OR: una operacin binaria que da como resultado orden interno: un orden en el cual todos los datos se alojan en el
sitivo de almacenamiento secundario (auxiliar). almacenan en realidad los datos. una salida de O slo si las dos entradas son O; de lo contrario almacenamiento principal durante el proceso de ordenacin.
microcomputadora: una computadora lo suficientemente pe- nodo: en una estructura de datos, un elemento que contiene tan- es 1. ordenacin: el proceso que ordena una lista o un archivo.
quea para que quepa en un escritorio. to datos como elementos estructurales utilizados para proce- operacin unaria: una operacin que necesita slo un operan- Organizacin para la Estandarizacin Internacional (ISO:
modelo: la especificacin establecida por una organizacin de sar la estructura de datos. do de entrada. International Standard Organization): una organizacin
estndares como un lineamiento para disear redes. nodo interno: cualquier nodo de rbol excepto la raz y las ho- operador: la seal sintctica que representa una accin sobre mundial que define y desarrolla estndares para una variedad
modelo cliente-servidor: el modelo de interaccin entre dos jas; un nodo en medio de un rbol. los datos (el operando). Contraste con operando. de tpicos.
programas de aplicacin en los cuales un programa en un ex- normalizacin: en una base de datos relacional, el proceso de operador AND: el operador utilizado en la operacin AND.
tremo (cliente) solicita un servicio de un programa en el otro eliminar redundancias. operador aritmtico: el operador utilizado en una operacin
extremo (servidor). notacin O: una medida de la eficiencia de un algoritmo con aritmtica. padre: un rbol o nodo de grafo con un grado de salida mayor
modelo de cascada: un modelo de desarrollo de software en el slo el factor dominante considerado. operador binario: un operador que se utiliza en una operacin que O; es decir, con sucesores.
cual cada mdulo se ternrina completamente antes de que co- notacin hexadecimal: un sistema de numeracin con base 16. binaria. pgina: una de una serie de secciones de igual tamao de un
mience el siguiente mdulo. Sus dgitos son O, 1,2,3,4,5,6,7,8,9, A, B, e, D, E Y F. operador de actualizacin: en una base de datos relacional, un programa.
modelo de red: un modelo de base de datos en el cual un regis- notacin octal: un sistema de numeracin con una base de 8; operador que cambia algunos valores en tilla tupla. pgina web: una unidad de hipertexto o hipennedia disponible
tro puede tener ms de un registro padre. los dgitos octales son de O a 7. operador de asignacin: en e y C++, el operador que asigna en el Web.
modelo de von Neumann: un modelo de computadora (consis- nmero de Gijdel: un nmero asignado a cada programa que un valor a una variable. pgina principal: la pgina principal de un documento de hi-
tente en memoria, la unidad lgica aritmtica, la unidad de puede escribirse en un lenguaje especfico. operador de diferencia: un operador en una base de datos rela- pertexto disponible en el Web.
control y los subsistemas de entrada/salida), sobre el cual la nmero de punto flotante: un nmero que contiene tanto un cional que se aplica a dos relaciones con los mismos atribu- paginacin: una tcnica de multiprogramacin en la cual la me-
computadora moderna se fundamenta. entero como una fraccin. tos. La tuplas en la relacin resultante son aquellas que estn moria se divide en secciones de igual tamao llamadas bloques.
modelo jerrquico: un modelo de base de datos que organiza nmero entero: Vase entero. en la primera relacin pero no en la segunda. paginacin bajo demanda y segmentacin: un mtodo de asig-
datos en una estructura tipo rbol en el que se pueden reali- operador de eliminacin (delete): en una base de datos rela- nacin de memoria en el cual una pgina o un segmento de un
zar bsquedas desde la parte superior a la parte inferior. o cional, el operador que elimina una tupla de la relacin. programa se carga en la memoria slo cuando se requiere.
modelo incremental: un modelo en ingeniera de software en el operabilidad: el factor de calidad que trata la facilidad con la operador de insercin: un operador en una base de datos rela- paginacin bajo demanda: un mtodo de asignacin de me-
cual todo el paquete se construye con cada mdulo confor- cual puede utilizarse un sistema. cional que inserta una tupla en una relacin. moria en el cual una pgina de un programa se carga en la
mado por slo una consola de comandos; los mdulos ganan operacinAND: una de las operaciones a nivel de bits; el resul- operador de interseccin: un operador en el lgebra relacional memoria slo cuando sta se requiere.
complejidad con cada interacin del paquete. tado de la operacin es 1 slo si ambos bits son 1; de lo con- que encuentra tuplas comunes entre dos relaciones. palabras clave: Vase palabras reservadas.
modelo relacional: Vase base de datos relacional. trario es O. operador de juntura: un operador en una base de datos rela- palabras reservadas: la serie de palabras en un lenguaje que
mdulo: Vase subalgoritmo. operacin aritmtica: una operacin que toma dos nmeros y cional que toma dos relaciones y las combina con base en sus tiene una interpretacin predeterminada y no puede estar de-
mdulo objeto: la salida de una compilacin que consiste de crea otro nmero. atributos comunes. finida por el usuario.
instrucciones en lenguaje de mquina. operacin binaria: una operacin que necesita dos operandos operador de proyeccin: un operador de lgebra relacional (uti-
parmetro: un valor pasado a una funcin.
mdulo de la divisin: dividir dos nmeros y mantener el residuo. de entrada. lizado en bases de datos relacionales) en el cual una columna
parmetros formales: la declaracin de parmetros en una fun-
monitor: la unidad de despliegue visual de un sistema de cmpu- operacin de actualizacin: una operacin en una base de datos o columnas de datos se extraen con base en un criterio dado.
cin para describir los tipos de datos que se pasarn a la funcin.
to; por lo general un dispositivo de despliegue de video. relacional en la cual se cambia la infonnacin sobre una tupla. operador de seleccin: un operador de lgebra relacional que
parmetros reales: los parmetros en la instruccin de llamada
monoprogramacin: la tcnica que permite que slo un pro- operacin de diferencia: una operacin en dos conjuntos. El extrae tuplas con base en el criterio seleccionado.
de funcin que contienen los valores que se van a pasar a la
grama est en la memoria a la vez. resultado es el primer conjunto menos los elementos comu- operador de unin: en el lgebra relacional, un operador que
funcin. Contraste con parmetros fonnales.
muestreo: tomar medidas a intervalos iguales. nes en las dos conjuntos. combina filas de dos relaciones.
particionamiento: una tcnica utilizada en la multiprograma-
multiprogramacin: una tcnica que permite a ms de un pro- operacin de interseccin: una operacin en dos conjuntos en operador lgico: un operador que realiza una operacin lgica.
cin que divide la memoria en secciones de longitud variable.
grama residir en la memoria mientras se est procesando. la cual el resultado es un conjunto con los elementos comu- operador NOT: el operador utilizado en una operacin NOT.
nes a los dos conjuntos. operador OR: el operador usado en una operacin OR. Pascal: un lenguaje de programacin diseado con un objetivo
N operador relacional: un operador que compara dos valores. especfico en mente: ensear programacin a los novatos al
operacin de proyeccin: una operacin en una base de datos
nivel: un atributo de un nodo que indica su distancia desde la raz. operador unario: un operador que realiza una operacin unaria. enfatizar el mtodo de programacin estructurada.
relacional en la cual se selecciona una serie de columnas con
nivel conceptual: relativo a la estructura lgica de la base de base en un criterio. operador XOR: el operador utilizado en una operacin XOR. paso de ordenacin: un ciclo durante el cual todos los elemen-
datos. Trata con el significado de la base de datos, no con su operacin de seleccin: una operacin en una base de datos re- operando: un objeto en una instruccin en la cual se realiza una tos se prueban mediante un programa de ordenacin.
implementacin fsica. lacional que selecciona una serie de tuplas. operacin. Contraste con operacin. paso por referencia: una tcnica de paso de parmetros en la
nivel de aplicacin: el sptimo nivel en el modelo OSI; propor- operacin de unin: una operacin en dos conjunts en la cual OR exclusivo (XOR): una operacin lgica binaria en la cual el cual la funcin llamada se refiere a un parmetro pasado uti-
ciona acceso a los servicios de red. el resultado contiene todos los elementos de ambos conjun- resultado es verdadero slo si uno de los operandos es verda- lizando un alias.
nivel de enlace de datos: el segundo nivel en el modelo OSI; tos sin duplicados. dero y el otro falso. paso por valor: una tcnica de paso de parmetros en la cual el
responsable de la entrega de datos nodo a nodo. operacin de XOR: una operacin relacionada con bits cuyo orden por burbuja: un algoritmo de ordenacin en el cual ca- valor de una variable se pasa a una funcin.
nivel de red: el tercer nivel del modelo OSI, responsable de la resultado es 1 slo si uno de los operandos es 1. da paso a travs de los datos mueve (burbujea) el elemento patrn de bits: una secuencia de bits (O y 1).
entrega de paquetes desde el anfitrin original hasta el desti- inferior al principio de la porcin sin ordenar de la lista. PERL: un lenguaje de alto nivel (con una sintaxis similar a C)
operacin lgica: una operacin en la cual el resultado es un
no final. ordenamiento por insercin: un algoritmo de ordenacin en el que utiliza expresiones regulares que penniten el anlisis sin-
valor lgico (verdadero o falso).
nivel externo: la parte de la base de datos que interacta con el operacin NOT: la operacin que cambia un bit O a 1 o un bit cual el primer elemento de la porcin de la lista sin ordenar tctico de una cadena de caracteres en componentes.
lser. 1 a O, se inserta en su posicin adecuada en la lista ordenada. permutacin: revoltura.
~
.. Glosario
!! Glosario ..
I
pila: una estructura de datos restringida en la cual los datos pue-
den insertarse y eliminarse slo en un extremo, llamado cima.
pista: parte de un disco.
protocolo de control de transmisin/protocolo Internet (TC~
PIIP): el protocolo oficial de Internet, fonnado por cinco ni-
veles.
I
1
recorrido en past orden: un mtodo de recorrido de rbol bi-
nario en el cual el subrbol izquierdo se procesa primero, lue-
go el subrbol derecho y despus la raz.
resolucin de colisiones: un proceso algortmico que detennina
una direccin opcional despus de una colisin.
resolucin de direccionamiento abierto: un mtodo de resolu-
pixel: Vase elemento de imagen.
planificacin: asignar los recursos de un sistema operativo a di-
ferentes programas, y decidir cules programas deben utili-
protocolo de datagrama de usuario (UDP): uno de los proto-
colos de capa de transporte en el conjunto de protocolos
TCPIIP.
II recorrido en pre orden: un recorrido de rbol binario en el cual
el subrbol izquierdo se recorre primero, la raz se recorre en-
seguida y el subrbol derecho se recorre al ltimo.
cin de colisiones en el cual la nueva direccin est en el rea
base.
resolucin de lista ligada: un mtodo de resolucin de colisio-
zar cules recursos y cundo. protocolo de transferencia de archivos (FTP: file transfer pro- , recorrido en orden: un mtodo de recorrido de rbol binario en nes en hashing que utiliza un rea separada para los sinni-
planificador de procesos: un mecanismo del sistema operativo tocol): un servicio del nivel de aplicacin en TCPIIP para el cual la raz se recorre despus del subrbol izquierdo y an- mos, los cuales se mantienen en una lista ligada.
que despacha los procesos que esperan obtener acceso al CPU.
planificador de tareas: un planificador que selecciona una ta-
transferir archivos desde y hacia un sitio remoto. I tes del subrbol derecho.
recorrido primero en amplitud: un mtodo de recorrido grfi-
retroceso: un proceso algortmico, por lo general implementa-
do con una pila o a travs de la recursin, que recuerda la ru-
rea para su procesamiento de una cola de espera de tareas que
protocolo de transferencia de hipertexto (HTTP: hypertext
transfer protocol): el protocolo que se utiliza para recuperar
I co en el cual los nodos adyacentes al nodo actual, se proce- ta a travs de una estructura de datos y puede regresar por la
aguardan a ser movidas a la memoria. pginas web en Internet. san antes que sus descendientes. ruta en orden inverso.
polimorfismo: en C++, definir varias operaciones con el mismo recorrido primero en profundidad: un mtodo de recorrido en reutilizacin: el factor de calidad que trata la facilidad con la
protocolo Internet (IP): el protocolo de nivel de red en el pro-
nombre que pueden hacer diferentes cosas en las clases rela-
cionadas.
portabilidad: el factor de calidad relacionado con la facilidad con
tocolo TCP/IP responsable de la transmisin de paquetes de
una computadora a otra a travs de Internet.
I
I
el cual todos los descendientes de los nodos se procesan an-
tes de cualesquier nodos adyacentes (hennanos).
recorrido: un proceso algortmico en el cual cada elemento en
cual el software puede utilizarse en otros programas.
t
I
.. Glosario Glosario ..
sistema decimal: un mtodo de representacin numrica que tiempo compartido! un concepto del sistema operativo en el terpretar instrucciones. En una computadora personal, un m1- velocidad de transmisin: un nmero de bits enviado por se-
utiliza 10 smbolos (de O a 9). cual ms de un usuario tiene acceso a una computadora al crochip que contiene una unidad de control y unidad lgica gundo.
sistema distribuido: un sistema operativo que controla los re- mismo tiempo. aritmtica. velocidad rotacional: la velocidad de giro de un disco magn-
cursos localizados en las computadoras en sitios diferentes. tiempo de bsqueda: en el acceso a disco, el tiempo requerido wdad de control: el componente de un CPU que interpreta las tico.
sistema Excess: un mtodo de representacin numrica utiliza- para mover la cabeza de lectura/escritura sobre la pista don- instrucciones y controla el flujo de datos. vrtice: un nodo en un grfico.
do para almacenar el valor exponencial de una fraccin. de estn los datos. unidad de traslacin: en C, un archivo de compilacin tempo- vrtices adyacentes: dos vrtices en un grafo que estn conec-
sistema operativo monousuario: un sistema operativo en el tiempo de transferencia: el tiempo para mover datos desde el ral utilizado para almacenar el cdigo fuente modificado. tados por una lnea.
cual slo un programa puede estar en la memoria a la vez. disco al CPU/memoria. unidad lgica aritmtica (ALU: arithmetic logic unit): la par- video: una representacin de imgenes (llamadas cuadro) en el
sistema operativo por lotes: el sistema operativo utilizado en tipo: un conjunto de valores y una serie de operaciones que te de un sistema de computadora que realiza las operaciones tiempo.
las primeras computadoras, en el cual las tareas se agrupaban pueden aplicarse a esos valores. aritmticas y lgicas con los datos.
antes de atenderlas. tipo de datos abstracto (TDA): una declaracin de datos empa- UNIX: un popular sistema operativo entre los programadores W
sistema operativo: el software que controla el entorno de com- cada junto con operaciones que se aplican a los tipos de datos. de computadoras y los cientficos de la computacin. WAN: Vase red de rea amplia.
putacin y proporciona una interfaz para el usuario. tipo de datos: un conjunto nombrado de valores y operaciones unset: Vase forzar a O. Web: Vase World Wode Web.
sistema paralelo: un sistema operativo con varios CPU en la definidas para manipularlos, tales como carcter y entero. URL Oocalizador uniforme de recursos): una cadena de ca- World Wide Web (WWW): un servicio Internet multimedia
misma mquina. tipo derivado: un tipo de datos compuesto construido a partir de racteres que define una pgina en Internet. que permite a los usuarios recorrer Internet al moverse de un
sobredesbordamiento: un evento que ocurre cuando se hace un otros tipos (arreglo, estmctura, unin, apuntador y tipo enume- usuario final: la entidad que utiliza el producto final. documento a otro por medio de vnculos.
intento para eliminar datos de una estructura de datos vaca. rado).
software: los programas de aplicacin y del sistema necesarios topologa: la estructura de una red, incluyendo el arreglo fsico v
para que el hardware de computadora logre realizar una tarea. de dispositivos. valor AC: el valor que cambia con el tiempo. zona: en un disco ptico, un rea no tocado por el lser en la tra-
sonda: en un algoritmo de hashing, el clculo de una direccin topologa de anillo: una topologa en la cual los dispositivos se valor DC: el valor que no cambia con el tiempo. duccin de un patrn de bits; por lo general representa un bit.
y su prueba satisfactoria; en un algoritmo de bsqueda, una conectan en un anillo; cada dispositivo recibe una unidad de variable: un objeto de almacenamiento de memoria cuyo valor
iteracin del ciclo que incluye la prueba para el argumento de datos de un vecino y la enva al otro vecino. puede cambiarse durante la ejecucin de un programa. Con-
bsqueda. topologa de bus: una topologa de red en la cual todas las com- traste con constante.
SQL: Vase lenguaje de consultas estructurado. putadoras se conectan a un medio compartido.
subalgoritmo: una parte de un algortimo que est escrita indepen- topologa de estrena: una topologa en la cual todas las compu-
dientemente. Se ejecuta cuando se llama dentro del algortimo. tadoras se conectan a un concentrador comn.
subrbol: cualquier estructura conectada debajo de la raz de topologa de malla: una topologa en la cual cada dispositivo se
un rbol conecta a todos los otros dispositivos.
subcadena: una parte de una cadena. topologa ln'brida: una topologa formada por ms de una topo-
subprograma: Vase subalgoritmo. loga bsica.
subrutina: Vase subalgoritmo. traductor: un tnnino genrico para cualquiera de los progra-
subscript: un nmero ordinal que indica la posicin de un ele- mas de conversin de lenguajes. Vea tambin ensamblador y
mento dentro de un arreglo. Vase tambin ndice. compilador.
subsistema de entrada/salida: la parte de la organizacin de la trailer: informacin de control agregada a una unidad de datos.
computadora que recibe datos desde el exterior y los enva al trama: una unidad de datos en el nivel de enlace de datos.
exterior. transferencia de datos: mover datos de una computadora a otra.
suma: suma de una serie de nmeros. transformacin discreta de coseno (DCT): una transfonna-
cin matemtica utilizada en JPEG.
T tupla: en una base de datos relacional, un registro (lnea) en una
tabla de enrutamiento: la tabla utilizada por un enrotador para relacin.
emutar un paquete.
tabla de verdad: una tabla que lista todas las combinaciones l- IJ
gicas posibles con la salida lgica correspondiente. ltimo en entrar, primero en salir (LIFO: last in, first out):
TDA: Vase tipo de datos abstracto. un algoritmo en el cual el ltimo elemento de dato que se
teclado: un dispositivo de entrada que consiste de teclas alfanu- aadi a una lista se elimina de la lista en primer lugar.
mricas y teclas de funcin utilizado para texto o datos de UlVIL (lenguaje de modelado unificado): una herramienta utili-
control. zada para disear en las ciencias de la computadin y los ne-
TELNET (Terminal Network): un programa cliente-servidor gocios.
de propsito general que permite inicio de sesin remota. Unicode: un cdigo de 65 536 caracteres que incluye los sm-
texto: datos almacenados corno caracteres. bolos de la mayora de los idiomas del mundo.
texto cifrado: los datos cifrados. unidad central de procesamiento (CPU): la parte de una
texto simple (plano): el texto antes de ser cifrado. computadora que contiene los componentes de control para in-
ndice ..
ce altura, 239
aplicacin, 243
derecho, 239
equilibrio, 240
calidad, 202
camino,238,244
campo,219
campo de llave, 222
parte de atrs, 235
representaciones, 235
simulacin, 228
colas de espera, 132
expresin, 243 capa de sesin, 102 colisin, 263, 264
factor de eqnilibrio, 240 capa de transporte, 102 contenedor, 265
implementacin de lista ligada, carcter direccionamiento abierto, 264
243 ASCII,179 lista ligada, 264
izqnierdo, 239 cargador, 171 resolucin, 264
nulo, 239 cascada, modelo, 198 colisin, resolucin de rea de
A anlisis sintctico, 234 archivo maestro nuevo, 258 operaciones, 241 CASE,205 desbordamiento, 264
abstraccin, 228 ancestro, 238 archivo maestro viejo, 258 recorrido, 241 char,179 compendio, 312, 313
AC, valor, 299 ANSIISPARC, 272 archivos, administrador de, 125, 135 recorrido de orden posterior, 242 Church, tesis de, 325 sitio emisor, 313
acceso, 257 aplicacin, 174 funciones, 135 recorrido de orden previo, 241 ciclo, 152,217,244,352,355 sitio receptor, 313
aleatorio, 257 aplicacin, nivel de, 103 archivos. Vase FTP recorrido primero en amplitud, condicional, 355 compresin MPEG,301
secuencial, 257 responsabilidades, 103 arco,244 243 simple, 355 espacial, 301
ACK,336 TCP/lP, 111 rea principal, 264 recorrido primero en profundidad, y arreglos, 217 computadora, lenguaje de, 167
acoplamiento, 200 aplicacin, programa, 122, 271 arista, 244 241 while, 355 comunicacin, cohesin de, 202
bandera, 200 servidor, 111 con peso, 249 recorrido en orden, 241 ciclo de vida del software con peso, 248
contenido, 201 applet, 175 aritmtico, operador, 182 seal,243 fase de anlisis, 197 conectado, 244
control, 200 apuntador lista ligada, 221 arreglo,216 binario, archivo, 265. 266 fase de implementacin, 197 conector, 345
datos, 200 rbol,292 bidimensional, 218 binario, dgito, 28 fases, 196 consola de comandos, 125
global,201 altura, 238 bsqueda, 158 binario,operador,277 fase de prueba, 198 interfaz de usuario, 125
sello,200 ancestro, 238 colunma,218 bit, 16,28 ciclo de vida del software, 196 consola de comandos, 125, 136
activo, documento, 115 balanceado, 240 despliegue de memoria, 218 interruptor, 16 cifrado, 307 constante, 181
activo, objeto, 173 binario, 239 fila, 218 bloque, 184 cinta, 256, 321 literal, 181
actualizacin, operador, 276 definicin, 237 frecuencia, 217 Vase tambin instruccin crculo de calidad, 205 nombrada, 181
Ada, 173 descendiente, 238 histograma, 218 compuesta crculo, 355 simblica, 181
Adelson-Veskii y Landis. Vase AVL grado, 237 implementacin de grafos, 247 bloque de control de procesos, 132 cliente, 112 constructo, 147
administrador de base de datos. Vase grado de entrada, 237 ordenacin, 153 burbuja, orden de, 155 cliente/servidor constructo de instruccin ciclo, 352
DBA grado de salida, 237 unidimensional, 218 algoritmo, 156 inicio de sesin remoto, 113 instruccin de secuencia, 352
aguardo, estado de, 130 hijo,238 ASCII, 179, 266, 335 bsqueda, 158 COBOL, 172 instruccin de seleccin, 352
aleatoria, lista, 230 hoja, 238 asignacin, instruccin de, 346 binaria, 159 cdigo instantneo, 293 contenido, acoplamiento de, 201
alfabeto, 179 profundidad, 238 atmicos, datos, 179 lista ligada, 222 Cdigo norteamericano de estndares control, acoplamiento de, 200
algoritmo, 141, 142 nivel,238 atributo, 274 objetivo, 158 para intercambio de informacin. controlador, 114, 322
definicin, 150 nodo, 237 automata de estado, 322 buzn de correo, 112 Vase ASCII conversin de binario a decimal, 29
ejemplo, 142 nodo interno, 238 autenticacin, 306, 307 byte, 16 cohesin, 201 de binario a hexadecimal, 22, 23
almacenamiento auxiliar, 256 rama, 237 autorreferencial, estructura, 221 casual, 202 de binario a octal, 22, 23
enteros sin signo, 31, 33, 35, 37 rbol binario, recorrido en orden, 241 AVL,241 e de comunicacin, 202 corte, smbolo de, 357
secundario, 256 rbol de expansin, 249 C ++,174 de procedimiento, 202 CPU, 322
alto nivel, lenguaje de, 168 rbol de expresin B C, lenguaje, 173 funcional,201 controlador, 322
altura, 238 rbol binario, 243 B, cuadro, 302 caja blanca, prueba de, 198 lgica, 202 estados del, 322
altura de un rbol binario, 239 recorridos, 243 bandera caja negra, prueba, 198 secuencial, 201 CR,336
ambulante, apuntador, 223 archivo, 256, 265 en acoplamiento, 200 calidad del software, 202, 203 temporal, 202 cuadro, 128
aadir arista, 246 aleatorio, 257, 259 base de datos, 270 capacidad de correccin, 204 cohesin funcional, 201 MPEG,301
aadir vrtice, 245 binario, 265, 266 modelo de red, 273 capacidad de mantenimiento, 204 cohesin lgica, 202 cuerpo,l77
anlisis, fase, 197 indexdado, 260 modelo jerrquico, 273 eficiencia, 204 cola de espera, 230
define la necesidad, 197 de texto, 265 modelo relacional, 274 flexibilidad, 205 aplicaciones, 237 D
define el mtodo, 197 secuencial. 257 base de datos, modelo, 273 fiabilidad, 204 definicin, 235 datagrama, 11 O
define el requisito, 197 archivo fuente, 170 binaria, bsqueda, 159 interoperabilidad, 205 eliminacin (dequeue), 235 datos, 271
define el usuario, 197 archivo hashed, 261 binario a decimal, conversin de, 29 operabilidad, 203 FIFO,235 representacin, 16
376
I11III ndice ndice ..
tipos, 15 instruccin compuesta, 347 eliminacin, operador, 275 exclusivo, or, 355 GOdel, nmero de, 326 decodificacin, 294
datos, acoplamiento de, 200 instruccin de asignacin, 346 eliminar cola de espera, 235 expansin, rbol de, 249 interpretar, 327 nodo, 292
datos, compresin de, 290 instruccin de entrada-salida, 346 eliminar (dequeue), 235 explorador, 175, 177 grado de entrada, 237, 245 pasos de codificacin, 292
codificacin de Huffman, 292 instruccin if. .. eIse, 347 eliminar arista, 246 arquitectura, 114 grado de salida, 237, 245 prefijo, 294
codificacin de longitud de lnea de flujo, 345 eliminar vrtice, 245 componentes, 114 grado, 237, 245
ejecucin, 291 para ciclo, 348 en orden, recorrido, 241 controlador, 114 grafo
con prdida, 298 diamante, 347, 355 encabezado de algoritmo, 351 intrprete, 114 grafo dirigido. Vase digrafo l, cuadro, 302
sin prdida, 291 diferencia, operador, 278 ciclo, 352 lenguaje de marcacin, 177 gran 0, notacin, 330 identificador de campo, 220
datos, representacin de digrafo, 244 instruccin de secuencia, 352 programa cliente, 114 grupo de expertos en fotografia identificador, 179
texto, 17 dinmico, documento, 115 instruccin de seleccin, 352 expresin, 182 unidos. Vase JPEG if-else, instruccin, 186,347,355
DBA,271 direccin base, 264 nmero de instruccin, 351 instruccin, 183 Grupo de expertos en imgenes en imperativo, lenguaje, 171
dbilmente conectado, 244 direccionamiento abierto, 264 postcondicin, 351 extraer (pop), 233 movimiento. Vase MPEG implementacin, 247
DBMS,271 disco,256 precondicin, 351 extremo a extremo, entrega, 102 GUI,136 implementacin, fase, 197
DBMS,271 diseo, 353 encabezado, 100,351,177 codificacin, 197
componentes, 271 diseo, fase de encapsulamiento, 174 F ti herramientas, 197
nivel conceptual, 272 desarrollo, proceso, 198 encontrar vrtice, 246 factorial, 160 hardware, 271 inanicin, 134
nivel externo, 272 fase de diseo de ciclo de vida del enlace de datos, nivel de, 102 FF,336 hash, bsqueda, 269 problema de Dijkstra, 135
nivel interno, 272 software, 197 funcin, 102 FIFO, 132, 230, 235 hash, funcin, 313 inconexo, 244
DC, valor, 299 herramientas, 197 enrutador, 108 cola de espera, 230 hashed, archivo, 261 incremento, instruccin, 318, 323
DCT,299 modelo por incrementos, 199 enrutador, jerarquas de, 108 filas mayores, almacenamiento, 218 hashing, 261 incrementos, modelo por, 199
caso de cambio brusco, 300 modelo de cascada, 198 enrutamiento fin de archivo. Vase EOF rea principal, 264 indexado, archivo, 260
caso de escala de grises uniforme, modularidad, 197 conceptos, 108 fin, smbolo, 344 colisin, 264 accesO a registro, 260
299 dispositivos, administrador de, 125, ensamblador, 168 fsica, direccin, 110 contenedor, 265 archivo invertido, 260
caso de gradiente, 300 135 ensamblador, lenguaje, 168 fsico, nivel, 101 direccin base, 264 componentes, 260
inverso, 300 divisin de mdulos, hashing de, 262 entrada, 182,356 flotacin, 179, 180 direccionamiento abierto, 264 ndice, 260
frmula, 299 DLE,336 entrada, flujo de, 357 flujo de datos, 356 directo, 262 individualmente, lista ligada, 220
valor AC, 299 do-while, ciclo, 189,339 entrada-salida, instruccin, 346 flujo, lnea de, 345 divisin de mdulo, 262 inequvocos, pasos, 150
valor OC, 299 documentacin (continuacin) entrega FORTRAN,I72 extraccin de dgitos, 263 ingeniera de software asistida por
decimal,28 manual del usuario, 206 origen a destino, 102 frecuencia, arreglo, 217 mtodos, 261 computadora. Vase CASE
hexadecimal, 23 documentacin, 206 punto a punto, 102 FTP, 112 residuo de divisin, 262 ingeniera de software, 195
decisin, constructo, 146 acoplamiento global, 201 EOF,257 conexin de control, 112 resolucin de colisin, 264 acoplamiento, 200
declaracin, 180 acoplamiento de sello, 200 EOT,336 conexin de datos, 112 head, funcin, 185 acoplamiento de contenido, 201
funcin, 185 calidad del software, 203 equilibrio, factor de, 240 conexiones, 112 herencia, 174 acoplamiento de control, 200
declarativo, lenguaje, 171, 176 crculo de calidad, 205 errores, archivo de reporte de, 258 fuertemente conectado, 244 hermanos, 238 acoplamiento de datos, 200
decremento, instruccin, 318, 324 fase de anlisis, 207 ESC, 336 funcin, 184 hexadecimal, 23 diseo, 353
definicin, 180, 244 fase de diseo, 207 escala de grises, 298 cuerpo, 185 hijo, 238 inicializador, 181
DEL,338 fase de implementacin, 207 espacial, compresin, 301 declaracin, 185 hipertexto, 114 inicio, smbolo, 344
DES, 308 fase de prueba, 207 especial, lenguaje, 171, 177 definicin, 185 histograma, 218 insercin, 230
desbordamiento, 230, 231, 233 funcin, 207 espera, estado de, 130 efecto secundario, 184 hoja, 238 insercin, operador, 275
pila, 230, 231, 233 general, 207 estndar de cifrado de datos. Vase encabezado, 185 Hopper, Grace, 168 insertar lista ligada, 221
desbordamiento, 233 medicin, 206 DES llamada, 185 HTML,177 insertar (enqueue), 235
desbordamiento, rea, 264 programa, 207 estndar, tipo, 179 parmetro real, 185 documentos ASCII, 177 insertar (push), 233
descendiente, 238 prueba formal, 205 esttico, documento, 115 paso por referencia, 186 etiqueta, 177 instruccin, 146, 183
diagrama de estado, 130 sistema, 206 estructura tabla de, 353 paso por valor, 186 explorador, 177 expresin, 183
estado de aguardo, 130 dos sentidos, seleccin, 347 autorreferencial, 221 funcin, bloque, 355 lenguaje de marcacin, 177 seleccin, 355
estado de ejecucin, 130 DOS, 124 estructura de datos, 214 funcin comn, 357 HTTP, 114 instruccin compuesta, 184, 347
estado de preparacin, 130 doub1e,180 modelo de red, 273 funcin, cuerpo, 185 comandos incrustados, 114 instruccin, nmero de, 351
planificador de procesos, 131 modelo jerrquico, 273 funcin, encabezado, 185 tipos de mensajes, 114 int, 179
planificador de tareas, 131 E modelo relacional, 274 funcin principal, 184 URL,114 integridad, 306, 307
diagrama de flujo, 146, 197,343 EBCDIC, 266 ETB,336 Huffman, codificacin de, 292 Interconexin de sistemas abiertos,
ciclo, 348 editor de texto, 169 etiqueta, 177 G rbol, 292 modelo,100
ciclo do ... while, 347 ejecucin, estado de, 130 atributos, 177 gateway, 108 asignacin de cdigo, 293 interno, nodo, 238
conector, 345 ejecutable, archivo, 169 comn, 177 convertidor de protocolo, 108 asignacin de peso, 292 Interred, protocolo. Vase IP
decisin, 347 eliminacin, 231 ETX, 336 global, acoplamiento, 201 codificacin, 294 Interseccin, operador, 278
ndice ndice ..
interruptor, 16 USP,176 lotes, sistema operativo por, 124 NUL, 336 pgina web polinomial, problema, 329, 331
bit, 16 lista general, 230 LZ, codificacin, 295 nula, instruccin, 345 con peso arista, 249 postcondicin, 351
estado de apagado, 16 lista ligada, 220 compresin, 295 nulo, rbol, 239 cuerpo, 177 postergacin, 234
estado de encendido, 16 apuntador, 221 descompresin, 297 numeracin, sistemas de encabezado, 177 precondicin, 351
inversin de datos, 234 autorreferenciales, 221 diccionario, 295 binario, 28 estructura, 177 prefijo, 294
invertido, archivo, 260 bsqueda, 222 LZW, codificacin, 298 etiqueta, 177 preparacin, estado de, 130
!P, 110 datos, 220 o texto, 177 prepocesador, directiva, 170
caractersticas, 110 implementacin de grafo, 247 M objetivo, 158 pgina, 114 preprocesador, 170
datagrama, 11 O individualmente, 220 macro, 318 objeto, 173 paginacin preprueba, ciclo de, 348
direccionamiento,110 insertar nodo, 221 asiguar, 318 objetos, mdulo de, 170 bajo demanda, 128 presentacin, nivel de, 102
entrega del mejor esfuerzo, 110 liga, 220 asignar enteros positivos, 319 operabilidad, 203 cuadro, 128 primero en amplitud, recorrido, 243
protocolo sin conexin, 110 nodo, 221 complemento, 320 operacin, 179 multiprogramacin, 128 privacidad, 306, 307
IP, direccin pila,234 copiar una variable, 319 unitaria, 275 particionamiento, 128 privada, llave, 309
formato, 110 recorrido, 223 exponenciacin, 320 operaciones, 245 segmentacin, 128 problema soluble, 329
notacin de punto decimal, 110 vaca, 221 if-then-else, ciclo, 320 operador, 182 paginacin bajo demanda, 128 complejidad, 330
irresoluble, problema, 329 lista lineal, 229 multiplicacin, 319 binario, 277 palabra clave, 179. Vase tambin procedimiento, cohesin de, 202
iterativa, definicin, 160 cola de espera, 230 simulacin, 318 multiplicacin, 152 reservadas, palabras procedimiento, lenguaje de, 171, 172,
iterativo, 141 desbordamiento, 230 suma, 319 suma, 152 paralelo, sistema, 124 76
eliminacin, 231 MAN,104 operando, 183 parmetro real, 185 procedimientos, 271
J FIFO,230 mantenimiento, capacidad de, 204 operativo, sistema, 122 parmetros, paso de, 185 proceso, 124, 129
Java, 174 implementacin, 232 mquina, lenguaje de, 167 administrador de archivos, 125, paro, problema de, 321, 328 punto muerto, 132
!PEG, 298, 303 insercin, 230 marcacin, lenguaje de, 177 135 prueba, 328 sincronizacin, 132
compresin, 301 UFO, 230 ms, signo, 355 administrador de dispositivos, 125 particionamiento, 126 tarea, 129
compresin espacial, 301 lista general, 230 MD5,313 administrador de memoria, 125 paginacin, 128 procesos, administrador de, 125
cuantizacin, 300 operaciones, 230 mejor esfuerzo, entrega, 110 como gerente general, 123 problemas, 127 procesos, planificador de, 131
DCT,29,359 ordenada, 230 memoria virtual, 129 componentes, 124 Pascal, 173 producto, 152
escala de grises, 298 pila, 230 Memoria, administrador de, 125 distribuido, 124 pasivo, objeto, 173 profundidad, 238
redundancia, 299 recuperacin, 231 modularidad, 200 DOS, 124 paso programa, 129,322
juntura, operador, 277 restringida, 230 acoplamiento, 200 evolucin, 124 por referencia, 186 documentacin, 207
sucesor, 229 herramientas, 200 por lotes, 124 por valor, 186 programacin, constructo, 345, 351
K lista lineal, 230 monoprogramacin, 125 sistema paralelo, 124 patrn de bits, 16 smbolo, 17 Prolog, 177
Knuth, Donald E, 195 lista vinculada, algoritmos MPEG, 298, 301,303 orden de insercin, 156 prdida, compresin con, 298 protocolo de transferencia de
insertar nodo, 221 compresin temporal, 301 orden posterior, recorrido, 242 prdida, compresin sin, 291 hipertexto. Vase HTTP
L recorrer lista, 223 cuadro B, 302 orden previo, recorrido, 241 prdida, mtodo con, 290 protocolo de transferencia de finito,
LAN,103 vinculador, 170 cuadro 1, 302 ordenacin, 153 prdida, mtodo sin, 290 primero en entrar, primero en
lectura/escritura, cabeza de, 322 lista, recorrido, 231 cuadro P, 302 burbuja, 155 PERL,178 salir. Vase FIFO
Lempel Ziv, codificacin. Vase LZ, lista, recuperacin, 231 tipos de cuadros, 30 I insercin, 156 personal, computadora, 124 protocolo simple de transferencia de
codificacin literal, constante, 181 multidireccional, seleccin, 347, 355 paso, 153 pila, 230, 232 correo. Vase SMTP
Lempel-Ziv-We1ch, codificacin, llamada de modulo, instruccin, 346 multiprogramacin, 124, 126 seleccin, 153 anlisis sintctico, 234 proyeccin, operador, 277
Vase LZW, codificacin llave pblica, cifrado de, 307 particionamiento, 126 ordenada, lista, 230 aplicaciones, 234 proyecto, 280
lenguaje llave secreta, cifrado, 307 ordenado, conjunto, 150 desbordamiento, 233 pruebas caja negra, 198
de alto nivel, 168 llave, 258 N orientado a objetos, lenguaje, 171, 173 extraer (pop), 233 caja blanca, 198
de mquina, 167 llaves, 309 NAK,336 origen a destino, entrega, 102 insertar (push), operacin, 233 formal, 205
ensamblador, 168 algoritmo RSA, 309 natural, lenguaje, 167, 169 OSI, modelo, 110 LIFO,232 pruebas, fase de, 198
natural, 169 usada con llave secreta, 311 nivel de red TCPIIP, 110 funciones de niveles, 101 lista ligada, 234 pseudocdigo, 146, 197
simblico, 168 localizador uniforme de recursos. nivel de red, 102 TCPIIP, II O nivel de eulace de datos, 102 operaciones, 233 pblica, llave, 309
lenguaje de consulta estructurado. VaseURL nivel, 238 nivel de presentacin, 102 postergacin, 234 puente, 107
Vase SQL lgico, operador, 183 no dirigido, 244 nivel fsico, 101 recorrido primero en profundidad, punto flotante, 180
lenguaje para marcacin de long double, 180 no dirigido, grafo, 244 TCPIIP,110 247 punto muerto, 132
hipertexto. Vase HTML long int, 179 no polinomial, problema, 329, 331 valo, 344 retroceso, 235
LF,336 longitud de ejecucin, codificacin no rechazo, 306, 307, 311 pila, 233 R
UFO, 230, 232 de, 291 nodo, 221, 237, 292 p contencin, 233 raz, 237
estructura de datos, 232 longitud de ejecucin, compresin de, recuperacin, 223 P, cuadro, 302 pixel, 298, 301 rama, 237
liga, 220 291 nombrada, constante, 181 padre, 238 planificacin, 124 seleccin de dos caminos, 347
lnea, 244 loop, instruccin, 325 nombre, 274 pgina principal, 114 polimorfismo, 174 seleccin de mltiples caminos, 347
111 ndice ndice 111
RDBMS,274 revision tcnica, 205 simple, lenguaje, 317 lectura, 356 short, 179 unitaria, operacin, 275
relacin, 274 revisin tcnica, 205 entrada/salida, 321 reglas, 354 void,179 URL, ll4
real, parmetro, 185 herramientas, 205 numerar programas, 326 smbolo, 354 top-down concept, 356 alias, 114
recorrido primero en amplitud, 247 RSA problema de paro, 321 tabla de estructura, 353 topologa, 99 anfitrin, 114
recorrido primero en profundidad, desventaja, 311 simulacin, 318 tarea, 129 traduccin de protocolo, 108 componentes, 114
247 ejemplo, 310 sin signo tareas, bloque de control de, 132 emutador, 108 mtodo, 114
recorrido, 231, 241 elegir las claves, 310 almacenamiento, 31, 33, 35,37 tareas, planificador, 131 traductor, 170 nmero de puerto, 114
primero en amplitud, 247 ventaja, 311 sinnimo, 263 TCP,I11 tfailer, 100 recuperacin de documentos, 114
primero en profundidad, 247 RSA, cifrado, 309 sistema de administracin de bases de protocolo de nivel de transporte, transaction file, 258 ruta, 114
recorrido, 246 datos relacionales. Vase 111 transferencia, capacidad de, 205 usuario final, 271
rectngulo, 354, 357 S RDBMS protocolo puerto a puerto, 111 transformacin discreta de coseno. usuario, 271
recuperacin de un nodo, 223 salida, 182 sistema de administracin de datos. TCPIIP,110 VaseDCT interfaz de usuario, 125, 136
recuperacin, 231 salida, flujo de, 357 VaseDBMS concepto de interred, 100 transicin, diagrama, 322 final, 271
recursin, 160, 189 Scheme, lenguaje, 176 sistema operativo distribuido, 124 Internet, II O transicin, tabla, 322 normal, 271
factorial, 160 secreta, llave, 307 sistema operativo, 124 modelo OSI, 110 programa, 322 programa de aplicacin, 271
recursiva, definicin, 161 secuencia, 145 SMTP,112 nivel de aplicacin y modelo OSI, translacin, unidad, 170
recursivo, 141 secuencia, constructo de, 146 buzn de correo del usuario, 112 111 transporte, 102 V
red secuencia, instruccin, 345, 352 direccionamiento, 112 nivel de red, 11 O transporte, nivel de valor, 179
rbol de expansin, 249 secuencial, archivo, 257, 260, 258 nombre de dourinio, ll2 nivel fsico, 110 control de errores, 102 variable, 180
definicin, 248 actualizar, 258, 259 Sistema de direcciones, 112 nivel de enlace de datos, 11 O responsibilidades, 102 ventajas, 309
grafo con peso, 248 llave, 258 sobredesbordamiento, 231 nivel de transporte, 111 TCP, 111 TCPIIP,111 DES, 308
red, 248 usar, 258 cola, 235 TDA tupla, 275 desventajas, 309
redundancia, 290, 299 secuencial, cohesin, 201 pila, 233 definicin, 228 Turing, mquina, 317 utilizado con llave pblica, 311
registro, 219 segmentacin, 128 software, 122,271 encapsulamiento, 228 componentes, 321 vrtice, 244
acceso, 220 demanda, 128 ciclo de vida, 196 modelo, 229 instruccin de decremento, 324 vrtice, 244
accessing individual fields, 220 paginacin, 128 obsoleto, 196 operacin, 229 instruccin de incremento, 323 adyacente, 244
aplicacin, 220 seguridad, 306 SOR, 336 TELNET, 112, 113 instruccin loop, 325 grado, 245
relacin, 274 seleccin, 145 sombreado, 357 temporal, cohesin, 202 cabeza de lectura/escritura, 322 grado de entrada, 245
actualizacin, 276 en la tabla de estructura, 355 SP,336 temporal, compresin, 301 lectura, 322 grado de salida, 245
atributo 274 seleccin, constructo de, 186 SQL, operaciones, 178, 279 teora de la computacin, 317 Lenguaje simple, 325 vrtices adyacentes, 244
cardinalidad, 275 seleccin, instruccin, 347, 352, 355 actualizacin, 280 terminal, red. Vase TELNET cinta, 321 aplicaciones, 248
diferencia, 278 seleccin, operador, 276 combinadas, 282 texto cifrado, 307 escritura, 322 vinculador, 170
eliminacin, 275 seleccin, orden de, 153 diferencia, 281 texto, 17 void, 179
insercin, 275 sello, acoplamiento de, 200 eliminacin, 279 texto, archivo, 265 u VT,336
interseccin, 278 servicios de datos conmutados insercin, 279 time-sharing system, 124 UDP
juntura, 277 mutlimegabit (SMDS), 104 interseccin, 281 tipo derivado, 179 protocolo de extremo a extremo, W
nombre, 274 SHA-1,313 juntura, 280 tipo, 179 111 WAN,104
operacin, 275 sbort int, 179 proyecto, 280 char, 179 protocolo de nivel de transporte, tamao, 104
proyeccin, 277 signo y magnitud, 33 seleccin, 280 datos atmicos, 179 III while, ciclo, 187,318,348,352, 355
seleccin, 276 simblica, constante, 181 STX,336 derivado, 179 ltimo en entrar, primero en salir. Wirth, Niklaus, 351
tupla, 275 simblico, lenguaje, 168 subalgoritmo, 150 double,180 Vase LIFO World Wide Web. Vase WWW
unin, 277 smbolo, 17 subrbol, 238 estndar, 179 un lugar, 201 WWW
relacional, operador, 182 crculo, 355 subrbol derecho, 239 float, 179, 180 una cosa, 201 documento esttico, 115
repeticin, 145 corte, 357 subrbol izquierdo, 239 int, 179 unidad central de procesamiento. hipertexto e hipermedia, 114
repeticin, constructo, 146, 187,327 diagrama de flujo, 344, 345 subcadena, 295 long double, 180 Vase CPU pgina principal, 114
repetidor, 106 diamante, 347, 355 subscript, 216, 217 long int, 179 unin, operador, 277
representar un programa, 326 fin, 344 suma, 152
instrucciones, 317 inicio, 344 suma, operador, 152
mquina de Turing, 317, 325 valo, 344 switch, instruccin, 187
simulacin, 323 patrn de bits, 17 SYN, 336
reservadas, palabras, 179 principal, 345
Vase tambin palabras clave rectngulo, 354 T
residuo de divisin, hashing de, 262 signo ms, 355 tabla de estructura, 152, 354
restringida, 230 sombreado, 357 ciclo, 355
retroceso, 235 smbolo principal, 345 funcin comn, 357