You are on page 1of 103

MANUAL DE INTRODUCCIN A LA COMPUTACIN

Universidad de Guadalajara

Revisado por:
Ing. Carlos Alberto Snchez Romero

1.1 ANTECESORES Y RAZON DE EXISTENCIA


En la antigedad para realizar clculos matemticos se hacia uso de sistemas muy rudimentarios,
tales como los dedos de las manos, nudos en cuerdas, agrupacin de piedras, etc.
Se dice que el sistema mas eficaz fue la utilizacin del ABACO.
El ABACO es el dispositivo de conteo mecnico (se remonta a 5000 aos atrs); el baco aun se usa
en la educacin para demostrar los principios del conteo y la aritmtica.
Como antecesores lejanos de las computadoras deben considerarse fundamentalmente los siguientes
aparatos:
a) La maquina de Pascal llamada Pascalina
b) El Telar de Jacquard
c) La maquina Analtica de Charles Babbage
d) Maquina Tabuladora de Hollerith
e) La Mark I
f) ENIAC
El francs Blaise Pascal (1623-1662) uno de los grandes Filsofos y Matemticos de la historia
construyo una maquina para sumar basada engranes, llamada Pascalina esto fue en el ao de 1642 y hasta la
fecha se siguen empleando en las cajas registradoras mecnicas y en los cuenta kilmetros de los automviles
y anteriormente en las gasolineras.
El francs Joseph Marie Jacquard (1753- 1871) tejedor, pasaba todo su tiempo libre intentando
mejorar las condiciones de trabajo de su gremio de tejedores, ya que (trabajaban 16 horas diarias sin da de
descanso) su solucin fue el telar de Jacquard.
Se construyo en 1801. El movimiento de las agujas el hilo y la tela se diriga por medio de perforaciones
sobre una tarjeta para generar los patrones elaborados que aun se conocen como tejidos de Jacquard.
El telar de Jacquard tuvo aceptacin inmediata entre los propietarios de las fabricas de telas porque podan
contratar trabajadores menos capacitados por menos dinero. No obstante los tejedores se amotinaron y
tildaron de traidor a Jacquard.
El ingles Charles Babbage (1791-1871) en la primera mitad del siglo XIX desarrollo la maquina
diferencial y la maquina analtica, personas de todo tipo desde los banqueros hasta los navegantes
dependan de las tablas matemticas durante la apresurada revolucin industrial. Sin embargo estas tablas
calculadas en forma manual por lo regular contenan muchos errores. Despus de percatarse que sus propias
tablas contenan gran cantidad de errores Charles Babbage ideo una maquina diferencial accionada a base
de vapor y luego una maquina analtica que realizaba clculos tediosos con precisin, como eran todas las
operaciones matemticas (60 Operaciones por segundo), con posibilidad de ser programadas por medio de
tarjetas perforadas, tambin se ideo para la realizacin automtica de tablas de logaritmos y funciones
trigonomtricas. Se diseo en 1833, requera miles de engranes y transmisiones ocuparan el rea de un
campo de ftbol y se impulsara por medio de una maquina de locomotora, por otro lado, fue un fallido
intento por crear una enorme maquina de Pascal, el intento fracaso porque debido a la limitada tecnologa de
los engranes nunca pudo completarse. Babbage se le conoce como el padre de la informtica muri en
1871 en un asilo de ancianos y sus ideas desaparecieron en la oscuridad de la historia.
No fue sino hasta la dcada de 1940 en que se supo de su genio al descubrir sus escritos pero ya en
ese tiempo existan laboratorios completos de ingenieros e investigadores trabajando en la invencin de las
computadoras electrnicas. A la computadora de Babbage tambin se le conoce como la maquina que no se
llego a terminar.

En 1940, John W. Mauchly y John Presper Eckert junto con cientficos de la Universidad de
Pennsylvania, construyeron en la escuela Moore de Ingeniera Elctrica, a peticin del ministerio de defensa
de Estados Unidos, la primera computadora electrnica denominada ENIAC (Electronic Numerical Integrator
and Calculator ) construida a base de vlvulas de vaco, que entr en funcionamiento en 1945. En el equipo
de construccin de esta computadora se encontraban J. V. Atanasoff y C. Berry cuyos estudios y ensayos en
su calculadora ABC fueron muy importantes para el proyecto ENIAC.
La diferencia esencial entre la ABC y la ENIAC consista en que esta ltima era programable y
universal, es decir, poda ser aplicada a cualquier tipo de clculos. Fue muy utilizada por el Ejercito de los
Estados Unidos para el clculo de la trayectoria de proyectiles por medio de tablas.
Poco despus, en 1951. John W. Mauchly, construy la primera computadora de serie puesta a la
venta: sta fue la UNIVAC-I (Universal Automatic Computer-Computador Automtico Universal), que
tambin utilizaba cintas magnticas.
Esos mismos profesores crearon otra computadora llamada UNIVAC I, dicha computadora quedo
inconclusa por falta de asesoramiento monetario y decidieron vender dicho proyecto a la compaa IBM
(Internacional Businnes Machines) la cual se encargo de dividir en generaciones la evolucin de las
computadoras.
RAZON DE EXISTENCIA DE LAS COMPUTADORAS
Para explicar, entonces, la existencia de las computadoras, deben de tomarse en cuenta al menos los
siguientes factores:
a) El estado de avance de la electrnica
b) La existencia de una teora matemtica para describir combinaciones de variables
Lgicas y sustentar una visin del mundo que llamaremos Digital.
c) Disponibilidad de grandes capitales para la investigacin y el desarrollo tecnolgico
Este ultimo, punto por desgracia, esta ligado con la guerra y el desarrollo de las armas.
Efectivamente, la primera computadora surge como respuesta a la necesidad de resolver en forma
practica y rpida el problema de efectuar los miles y miles de clculos requeridos para determinar la
trayectoria de un proyectil.
El Departamento de Defensa de los Estados Unidos de Amrica y la Universidad de Pennsylvania
trabajaron en un proyecto destinado a obtener trayectorias balsticas por medios mecnicos o electrnicos, y
todo esto dio como resultado la maquina llamada ENIAC (Electronic Numerical Integrator and Calculator ) a
finales de 1946.
QUE ES UNA COMPUTADORA?
La computadora es una maquina capaz de realizar y controlar a gran velocidad clculos y procesos
complicados que requieren una toma rpida de decisiones.

FUNCIN DE LA COMPUTADORA
Las computadoras pueden resultar misteriosas, pues son productos de alta tecnologa.. Se les han
atribuido caractersticas humanas o superhumanas y debemos reconocer que las computadoras son
simplemente herramientas diseadas, programadas y utilizadas por personas.
La limitacin ms importante de las computadoras es que no pueden pensar por si mismas, no
pueden resolver problemas ni tomar decisiones sin la intervencin del hombre.
Aun as, las computadoras son muy tiles para organizar la informacin para la resolucin de
problemas y la toma de decisiones. Las computadoras pueden efectuar cosas sorprendentes cundo siguen
paso a paso las instrucciones de los programas, pero las personas son las que piensan antes de escribir los
programas.
Las computadoras se han fabricado para ayudar al hombre en sus tareas, no para sustituirlo. Las
computadoras no pueden efectuar juicios emocionales, desobedecer las instrucciones provistas por los
humanos, o reemplazar las relaciones entre las personas. Por el contrario, las personas deben de ser
extremadamente explcitas al instruir a las computadoras para que desarrollen cualquier tarea sencilla.
Lo que las computadoras pueden hacer resulta extremadamente til. Estas pueden:
* Almacenar grandes volmenes de informacin
* Procesar datos rpidamente y con exactitud
* Representar nmeros grficamente
* Simular posibles resultados basados en un conjunto determinado de condiciones
* Recomendar o tomar una accin basada en los resultados.
1.2 GENERACIONES DE COMPUTADORAS
PRIMERA GENERACION. Comprende desde 1946 hasta 1958, tomando en consideracin dentro de la
primera generacin las computadoras construidas en 1944, 1946 y 1947 las cuales estaban construidas con las
siguientes caractersticas:
1) Estaban construidas por tubos al vaco (18,000 bulbos) que al producir bastante calor
empezaban a emitir errores.
2) Estaban compuestas aproximadamente por 200,000 piezas mecnicas y 800,000 metros de cable, lo
cual provocaba que su estado fsico fuera muy grande.
3) El estado del aire acondicionado era de estricta calidad el cual variaba entre los 17 y los 22 grados
centgrados, de esta forma se evitaban los errores.
4) La programacin era externa, por medio de mdulos y la memoria por tambores magnticos.
5) Su peso era aproximadamente entre 70 y 80 toneladas.
6) Su longitud era entre 18 a 20 metros.
7) En software ( Lenguaje Maquina )
Tambor magntico. El tambor magntico era de aluminio y estaba cubierto de un material llamado
MAYDEN, sobre el se grababa la informacin por medio de puntos magnticos.

SEGUNDA GENERACION. Desde 1958 a 1965, dentro de esta generacin la evolucin de las
computadoras es bastante marcada, es decir, es notable la diferencia, por lo que tambin tiene sus
caractersticas. Este sistema no era muy eficaz ya que constantemente se perda la informacin porque el
tambor magntico no tenia capa protectora
1) Los bulbos son sustituidos por transistores.
2) Disminuye el tamao fsico de las computadoras aproximadamente en un 50%.
3) Tambin disminuye el control de calidad del aire acondicionado.
4) La programacin es interna y se puede soportar todos los programas de proceso.
5) La velocidad de operacin es de microsegundos.
6) En software ( Los Lenguajes de alto Nivel )
TERCERA GENERACION. Comprende desde 1965 hasta 1970, dentro de esta generacin el tamao fsico
de la computadora se reduce a lo mximo y tiene las siguientes caractersticas:
1) El transistor es sustituido por el microtransistor.
2) Disminuye de un 60 a un 70% el tamao fsico de las computadoras.
3) El control de calidad del aire acondicionado tambin disminuye.
4) La memoria sigue interna por medio de ncleos magnticos.
5) La velocidad de proceso sigue siendo de microsegundos.
6) En software ( Sistema Operativo )
CUARTA GENERACION. Comprende de 1971 hasta 1980, dentro de esta generacin el tamao fsico de
las computadoras se reduce de un 80 a un 90% y tienen las siguientes caractersticas:
1) El microtransistor es sustituido por circuitos integrados los cuales tienen la funcin de 64
microtransistores.
2) El control de calidad del aire acondicionado es nulo o casi nulo.
3) La velocidad de proceso es de nano-segundos 1X10-9.
4) Se trabaja la multiprogramacin y el teleproceso local y remoto.
5) En software ( LISP, PROLOG )

QUINTA GENERACION. Aunque no sea totalmente correcto decir que las computadoras actuales son de la
cuarta generacin, ya se habla de la siguiente, es decir de la quinta.
Comprende de (1981 - 199?). En 1981, los principales pases productores de nuevas tecnologas
(fundamentalmente Estados Unidos y Japn) anunciaron una nueva generacin, esta nueva generacin de
computadoras tendr las siguientes caractersticas estructurales:
1.

Estarn hechas con microcircuitos de muy alta integracin, que funcionaran con un alto grado de
paralelismo y emulando algunas caractersticas de las redes neurales con las que funciona el cerebro
humano.

2.

Computadoras con Inteligencia Artificial

3.

Interconexin entre todo tipo de computadoras, dispositivos y redes (redes integradas)

4.

Integracin de datos, imgenes y voz (entorno multimedia)

5.

Utilizacin del lenguaje natural (lenguaje de quinta generacin)

Estos conceptos merecen una somera explicacin, debido a que si representan avances cualitativos
con respecto a las generaciones anteriores.
La mayora de las computadoras actuales ejecutan las instrucciones del lenguaje de maquina en
forma secuencial, es decir, efectan una sola operacin a la vez. Sin embargo, en principio tambin es posible
que una computadora disponga de varios procesadores centrales, y que entre ellos realicen en forma paralela
varias operaciones, siempre y cuando estas sean independientes entre si.
MULTIPROGRAMACION
Es la tcnica que permite que dos o ms programas ocupen la misma unidad de memoria
principal y que sean ejecutados al mismo tiempo.
As por ejemplo mientras se ejecutan operaciones de entrada y salida de un programa, la unidad
central de proceso puede ocuparse en realizar operaciones distintas de las de E/S pertenecientes a otros
programas.
La multiprogramacin se refiere a dos o ms programas corriendo o procesndose al mismo tiempo.
La multiprogramacin se controla a travs del sistema operativo, el cual observa los programas y los vigila
hasta que estn concluidos. El nmero de programas que pueden multiprogramarse en forma efectiva,
depende de una combinacin de la cantidad de memoria, de la velocidad de la CPU y del numero y velocidad
de los recursos perifricos que tenga conectados, as como de la eficiencia del SISTEMA OPERATIVO.

1.3 MICROCOMPUTADORAS Y COMPUTADORAS PERSONALES.


TIPOS DE COMPUTADOAS.
Desde el punto de vista de construccin, existen dos tipos de maquinas capaces de ejecutar
algoritmos:
MAQUINAS CON LOGICA CABLEADA. En ellas, el algoritmo esta interiormente
implementado en el cableado de los circuitos o en las memorias de solo lectura (ROM-read only memory).
Las ms conocidas son:
LAS CALCULADORAS. Son maquinas para ejecutar un determinado numero de algoritmo
predefinido de tipo matemtico (suma, resta, multiplicaciones, divisiones, funciones trigonometricas,
logaritmos, funciones estadsticas, etc.).
LAS COMPUTADORAS ANALOGICAS. Son maquinas destinadas al control del proceso y a la
simulacin. en la actualidad se encuentran instaladas en cadena de fabricacin y en mercados, como el de la
automatizacin entre otros.
MAQUINAS CON LOGICA PROGRAMADA. Son la computadoras convencionales que admiten
programacin de algoritmos por medio de lenguajes de programacin: por ellos son maquinas de propsito
general, pues se puede aplicar a cualquier tipo de procesos. Estas computadoras tienen las siguientes
caractersticas:
1.
2.
3.
4.
5.
6.

Gran velocidad de calculo


Gran capacidad de almacenamiento
Gran precisin
Versatilidad o posibilidad de realizar multitud de trabajos de distintos tipos.
Automatizacin, pues la mano del hombre interviene relativamente poco en el trabajo final
que realiza la computadora.
Asiduidad, puesto que en ellas no existe el cansancio y ejecutan con la misma precisin la
primera y la ltima operacin.

Una computadora de lgica programada solo puede realizar tres tipos de operaciones.
Operaciones aritmticas (suma y resta)
Operaciones lgicas (operaciones)
Almacenar o recuperar operacin
La versatilidad de una computadora se obtiene al reducir cualquier problema simple o compuesto en
una combinacin adecuada de estas operaciones.
Antes de hacer una clasificacin formal de las computadoras segn el tipo de seales que manejan,
vamos a definir los conceptos fundamentales que intervienen en la misma.
Se dice que un suceso es de tipo continuo cuando la escala de manifestaciones de sus variables no
tienen discontinuidades. Estos procesos se denominan analgicos.
Si la escala de manifestaciones de las variables de un suceso slo tiene determinados valores, se dice
que es de tipo discreto y recibe el nombre de digital.

CLASIFICACION DE LAS COMPUTADORAS POR SU CAPACIDAD


Atendiendo a la configuracin o estructura interna de una computadora puede, clasificares de la
siguiente forma:
CONPUTADORAS ANALOGICAS. Son aquellas que manejan seales elctricas analgicas
proporcionales a medidas fsicas de tipo continuo. Su programacin en la mayora de los casos est en su
propio cableado y se utiliza fundamentalmente para controlar procesos y en problema de simulacin.
COMPUTADORASA DIGITALES. Maneja seales elctricas de tipo digital. Se programa por
medio de lenguajes de programacin y su utilizacin contiene cualquier tipo de trabajos; por tanto, configuran
el grupo de computadoras de tipo general. En la actualidad, mas del 95% de las computadoras son de este
tipo.
COMPUTADORAS HBRIDAS. Poseen caractersticas de las dos anteriores. Suelen estar
constituidas de una computadora digital que procesa informacin analgica, para lo cual tiene sus entradas y
salidas controladas por medio de convertidores analgico - digitales y digitales - analgicos

Computadora Analgica

Conv.
A/D

Conv
D/A

Computadora Hbrida
Computadoras Analgicas, Digitales e Hbridas
Las computadoras digitales por su potencia de calculo, capacidad de almacenamiento interno y
numero de perifricos que pueden soportar se clasifican en cuatro grandes grupos:
Supercomputadora. Es una maquina diseada especialmente para calculo que requieren una gran
velocidad de proceso. Generalmente pose un gran nmero de procesadores que trabajan en paralelo, con lo
que consiguen realizar billones de operaciones por segundo. Un ejemplo de estas computadoras es la Cray YMP de Cray Research INC.

Computadora o Mainframe. Es una maquina diseada principalmente para dar servicio a grandes
empresas y organizaciones. Su potencia de calculo es inferior a la de las anteriores, ejecutando solo varios
millones de operaciones por segundo. Una de sus caractersticas principales es la de soportar un gran nmero
de terminales o estaciones de trabajo. Adems pueden intervenir en procesos de distribucin en los que se
conectan dos o ms computadoras en paralelo, de tal forma que se reparte el trabajo a realizar.
Un buen ejemplo de este tipo de computadoras es la IBM 3090 la cual es capas de soportar aproximadamente
50000 terminales conectadas.
Minicomputadora. Son maquinas de tipo medio, es decir su capacidad de proceso es inferior y por
lo tanto pueden controlar un menor numero de terminales.
Dos ejemplos muy tpicos de este tipo de computadoras son las VAX de digital equipment corporation (DEC)
y la AS/400 de IBM.
Microcomputadoras. Se trata de una maquina cuyo funcionamiento interno se basa en el uso del
microcomputador, y con el se consigue una serie de prestaciones, que en potencia, manejabilidad,
portabilidad, precio, etc., cubren la gama ms baja de necesidades en el mundo de la informtica. Hoy se
puede decir que el mundo de la microinformtica o el de las Microcomputadoras es el ms importante y
tambin el ms popular.
Dentro de las microcomputadora se puede distinguir dos grupos importantes:
Computadora personal (personal computer-PC)
Estacin de trabajo (workstation)
La computadora personal es la microcomputadora fcil de usar y con grandes prestaciones.
Generalmente posee un solo puesto de trabajo, aunque puede tener varios. Actualmente la mayor gama de
equipo hardware y de aplicaciones software que existe en el mercado pertenece al grupo de computadoras
personales.
Una estacin de trabajo es una microcomputadora de gran potencia que se utiliza para trabajo de
ingeniera
Laptop. Consisten en una computadora personal porttil de tamao pequeo, gran potencia y muy
manejable en todos los sentidos. Las caractersticas principales su peso que oscila entre 1 y 2 kg.
Notebook. Es una computadora personal similar a la laptop, pero aun ms pequea, de menor peso y
mas especializada., es decir, esta preparada para realizar funciones de computadora personal, servir de ayuda
a estudiantes sirvindoles una capacidad de calculo rpido importante, ofrecer a comerciales funciones de
agenda muy evolucionadas, etc.
Pocket-pc o palmtop. Es una pequea computadora personal de mano que viene a ser la ltima
versin de calculadora cientfica programable.
1.-MICROCOMPUTADORAS.- Se caracterizan por su configuracin bsica irregular, que puede
estar compuesta por un monitor o una televisin, un drive, una unidad de cassette, etc.
Su capacidad de memoria es mnima de 8 a 16 kbytes por lo cual trabaja pequeos volmenes de
informacin.
2.-MINICOMPUTADORAS.- Se caracterizan por tener una configuracin bsica regular que
puede estar compuesta por un monitor, unidades de diskette, disco, impresora, etc. Su capacidad de memoria
vara de 16 a 256 kbytes.

10

3.-MACROCOMPUTADORAS.- Son aquellas que dentro de su configuracin bsica contiene


unidades que proveen de capacidad masiva de informacin, terminales(monitores), etc. Su capacidad de
memoria vara desde 256 a 512 kbytes, tambin puede tener varios megabytes o hasta gigabytes segn las
necesidades de la empresa.
Con el avance de la microelectrnica en la dcada de los 70s resultaba posible incluir todos los
componente del procesador central de una computadora en un solo circuito integrado llamado
microprocesador. Esta fue la base de creacin de una computadoras a las que se les llamo
microcomputadoras.
El origen de las microcomputadoras tuvo lugar en los Estados Unidos a partir de la comercializacin
de los primeros microprocesadores (INTEL 8008, 8080)
En la dcada de los 80s comenz la verdadera explosin masiva, de las personal computer (PC) de
IBM. Esta maquina basada en el microprocesador INTEL 8088, tenia caractersticas interesantes que hacan
mas amplio su campo de operaciones, sobre todo porque su nuevo sistema operativo estandarizado (MS-DOS,
Microsoft Disk Operating Sistem) y una capacidad mejorada de graficacin, la hacan mas atractiva y fcil de
usar. La PC a pasado por varias transformaciones y mejoras y se conocen como XT(Tecnologa Extendida),
AT(Tecnologa Avanzada) y PS/2.
Este es un resumen de los acontecimientos ms importantes 1971 Microprocesador INTEL 8008.
Circuito de alta integracin que luego dara inicio a las microcomputadoras.
Microprocesador INTEL 8080. Nacimiento de la industria de la micro-computacin.
Aparece la microcomputadora APPLE. Aparece el microprocesador Zilog Z80.
Microprocesador INTEL 8085. Microprocesador Mostek 6502 empleado por APPLE.
IBM lanza la computadora personal conocida como PC-XT.
IBM lanza la computadora personal conocida como PC-AT, basada en el microprocesador INTEL
80286.
En todo el mundo se han vendido 60 millones de computadoras personales compatibles con la PC de
IBM.
IBM presenta la serie de computadoras personales
microprocesador INTEL 80386.

PS/2 alguna de las cuales emplean el

Nuevos microprocesadores de muy alto rendimiento


68040, etc.

como son: INTEL 80486, MOTOROLA

11

12

2.- MODELO DE VON NEUMANN


2.1. INTRODUCCION
En este modulo estudiaremos el modus operandi de una computadora digital electrnica, sin
emplear ningn tipo de terminologa electrnica o de ingeniera, solo se vera a manera de una idea descriptiva
de los procesos que suceden dentro de la maquina, aun cuando no se conozca todava su estructura interna.
El mtodo consiste en indagar los pasos necesarios (y el orden que siguen) para efectuar operaciones
sencillas sobre elementos de informacin, de modo que se llegue al resultado deseado, que ser por ejemplo,
una sencilla operacin aritmtica sobre nmeros enteros.
Para esto, surgir la necesidad de definir con todo cuidado dos tipos de objetos: los datos y las
operaciones o funciones que actan sobre ellos, aqu aparece la necesidad de mencionar el concepto de
programa, y es aqu donde se gesta la concepcin de las modernas computadoras programables y de la teora
de la programacin.
Como ejemplo se propone pensar en los pasos necesarios para realizar con una calculadora comn la
operacin de sumar 5 + 7.
Esta claro que para lograr esta suma hay que informar a la calculadora que operaciones se desea
hacer y sobre que datos se van a aplicar. Normalmente se comunican los datos a la calculadora presionando
las teclas que describen la operacin por efectuarse. Este es el proceso con detalle:
1. Presionar la tecla "5" (con esto se avisa a la calculadora que debe guardar este numero en alguna
memoria temporal, hasta decidir lo que se har con l)
2. Presionar la tecla "+" ( ahora la calculadora traslada el "5" a un acumulador interno especial y esta
lista para recibir el segundo operando).
3. Presionar la tecla "7" (con lo que se hace la suma de manera interna en el acumulador; la
calculadora mantiene el resultado internamente).
4. Presionar la tecla "=" (esto indica a la maquina que ha terminado la serie de operaciones, y que
libere el resultado).

Que es un programa?
La definicin mas elemental es que un programa es un conjunto explcito de pasos a seguir para
lograr un fin determinado. En este caso, lo que interesa es lograr la suma de dos nmeros, para lo cual hay
que definirle a la maquina las siguientes instrucciones:
1. Observar el primer numero.
2. Llevarlo al acumulador para sumarlo con el numero que sigue.
3. Efectuar la suma usando este segundo numero que ahora se observa.
4. Mostrar el resultado.
Pero hay todava varios problemas por resolver para estar satisfechos con este programa.
1.
2.

donde se almacenan los nmeros que se desea que la maquina "observe"?


donde (y como) se almacenan las instrucciones del programa?

La idea central del modelo de computacin propuesto de John Von Neumann es almacenar las
instrucciones del programa de una computadora en su propia memoria, logrando con ello que la maquina siga
los pasos definidos por su programa almacenado.

13

Una computadora de programa almacenado (que no es otro nombre para una maquina que funciona
con el modelo de Von Neumann) tiene la siguiente configuracin general, muy parecida, al diseo original de
Babbage, aunque no esta basada en el:

MEMORIA

UNIDAD
DE
ENTRADA

UNIDAD CENTRAL
PROCESAMIENTO

UNIDAD DE
SALIDA

Esquema bsico de una computadora actual


En este esquema se observan las relaciones estructurales que existen entre las diversas unidades que
configuran la maquina, y que se emplean en prcticamente todos los modelos de computadoras. La unidad
central de procesamiento (UCP, de aqu en adelante, aunque tambin es comn referirse a ella como CPU,
por sus siglas en ingles) contiene a la unidad aritmtica lgica (que hace los clculos) y a la unidad de control.
La memoria es un conjunto de celdas (o casillas) con las siguientes caractersticas:
a)

Cada celda puede contener un valor numrico.

b) Cada celda tiene la propiedad de ser direccionable, es decir, se puede distinguir una de otra por
medio de un numero unvoco que es su direccin.
Esto implica que las celdas de la memoria tienen que estar organizadas de modo que faciliten la
localizacin de cualquiera de ellas con un esfuerzo mnimo. La forma mas sencilla de hacer esto es
organizando las celdas en forma de vector, que no es mas que un conjunto de celdas numeradas
secuencialmente.
Se usara un apuntador para dirigirse a alguna celda cualquiera.
Un arreglo (que es otro nombre para un vector) en memoria se ve como sigue:
Apuntador

51
4

52
0

53
1

54
9

55
7

Cada celda tiene una direccin. Por ejemplo, la celda 51 contiene un 4. Se dispone ya de una manera
de almacenar (y recuperar) valores en la memoria por medio de una direccin unvoca. Es posible definir dos
operaciones elementales sobre ella: leer el contenido de una celda y escribir un valor en una celda.
Si se supone que la memoria de una computadora es una especie de almacn atendido por un
empleado que seguir nuestras ordenes, estos sern los pasos necesarios para poder efectuar las dos
operaciones primitivas

14

Para leer :
a) Decidir cual celda se va a leer ( esto es, proporcionar su direccin)
b) Esperar un tiempo fijo para que el empleado valla a la memoria y traiga el valor depositado en la celda ( la
celda no pierde ese valor; solo se trae una copia del dato y no el dato mismo).
c) Recoger ese dato y dar por terminada la operacin
Para escribir :
a) Proporcionar al ayudante el dato que se desea depositar en una celda.
b) Proporcionar la direccin de la celda sobre la que se desea hacer la escritura del dato.
c) Esperar un tiempo fijo para que el empleado vaya a la memoria y deposite el dato en la celda designada,
para dar por terminada la operacin de escritura. ( si la celda en cuestin tenia ya un valor, este se pierde,
pues se reemplaza por el nuevo.)
Ahora hay que resolver el segundo problema: como almacenar las instrucciones en la memoria.
Considerando lo anterior, habr que encontrar una manera de hacer caber las instrucciones en las celdas. Esto
lleva necesariamente el concepto de codificacin. En efecto, si en las celdas de memoria solo caven nmeros,
entonces habr que traducir las instrucciones a nmeros para poder almacenarlas.
Para codificar las instrucciones se debe considerar cuantas y cuales son las instrucciones disponibles
y que esquema de codificacin se empleara.
El primer factor depende fundamentalmente de la capacidad de la unidad de control del procesador
central para hacer las operaciones; cuanto mas compleja --y costosa-- sea la unidad central de procesamiento
mayor ser el numero de instrucciones que podr efectuar. Despus se debe encontrar un cdigo adecuado
donde se usara una especie de diccionario electrnico que contendr por ejemplo, lo siguiente:
Instruccin

Cdigo Interno

Suma
Resta
.
.

57
42
.
.

A partir de aqu se empleara el nombre lenguaje de maquina para referirse al cdigo que maneja la unidad
central de procesamiento de la computadora.
Un primer programa
Ahora es posible escribir un primer programa completo, usando el modelo recin descrito. Se
continuara con el problema de sumar 5 + 7.
Primera consideracin : Se requieren tres casillas, dos para los datos ( 5 y 7 ) y uno para depositar el
resultado. se recogen la casillas 21, 22 y 23.(No hay ninguna razn especial para haberlas escogido; para
nuestros fines, tres casillas cualesquiera son adecuadas.)
Segunda consideracin : Hay que definir con detalle las operaciones que se van a efectuar y su orden,
as como obtener una codificacin adecuada ( o sea traducirlas a instrucciones para la maquina ).
Tercera consideracin : Hay que introducir todos los datos ( instrucciones ) en la memoria.

15

La forma de la instruccin para llevar el contenido de una celda al acumulador (que se llamara
CARGA_Ac ) es:
CARGA_Ac direccin
donde CARGA_Ac es el nombre de la instruccin, y la direccin indica la celda de memoria cuyo valor se
desea llevar al acumulador. Cabe aclarar que CARGA_Ac es el nombre mnemnico de la instruccin, pero
que es necesario asignarle cierto cdigo numrico interno. Sin importar ahora cual sea este, obsrvese que
ocupara el contenido de una celda de la memoria, de la misma manera, la direccin ser un numero que
ocupara un lugar en otra celda. Esto quiere decir que la instruccin CARGA_Ac ocupara dos celdas en la
memoria: una para el cdigo de la operacin y la otra para la direccin a la que hace referencia.
Entonces habr instrucciones que ocupen una, dos tres y hasta mas celdas de memoria.
Las dems instrucciones que se requieran son
GUARDA _Ac direccin
SUMA direccin

Que deposita el valor del acumulador en una celda de


la memoria (esta es la inversa de la anterior y
Que suma al acumulador el contenido de la celda de
memoria adscrita por la direccin.

Y el diccionario ser, entonces,


Instruccin
CARGAR_Ac
GUARDAR_Ac
SUMA
RESTA

Cdigo Interno
21
96
57
42

Longitud de la Instruccin
2
2
2
2

( Los cdigos internos para el lenguaje de maquina que se escogieron son arbitrarios, aunque si debe tenerse
cuidado de usarlos consistentemente.)
Se escribir el programa en forma tabular. En la parte izquierda del rengln se coloca la instruccin
mnemnica seguida de la direccin a la que haga referencia (si se da el caso), luego se escribe su equivalente
en el cdigo interno extrado del diccionario y, por ultimo, se describe brevemente el rengln (si se considera
necesario).
Para lo que sigue, se supone que la celda 21 contiene un 5 y la celda 22 un 7, sin preocuparse por
ahora de como se colocaron all esos nmeros.
He aqu el programa para suma 5 + 7 .
Instruccin
CARGAR_Ac
SUMA
GUARDA_Ac
ALTO

Direccin

Cdigo

21
22
22

2121
5722
9623

Comentarios
Se coloca el primer nmero en el acumulador
Se efecta la suma
El resultado queda en la casilla 23

De este simple programa se pueden aprender varias cosas. Fue necesario inventar una nueva
instruccin (ALTO ) para lograr que la secuencia --cuando se ejecuta-- llegue a un fin. Obsrvese que esta
nueva instruccin ocupa una sola casilla de memoria, ya que no es necesario hacer referencia a alguna
direccin.

16

Otra cuestin importante es la aparicin de dos programas: uno escrito en lenguaje mnemnico (mas
fcil reconocer para nosotros ya que es cercano al espaol ), y otro ---a la derecha--- que esta descrito en
cdigo numrico ( el nico que reconoce la computadora ).
Se llamara programa fuente al primero y programa objeto al segundo. Esto es, el programa fuente es
aquel que esta escrito en un lenguaje similar al nuestro ( pero inaccesible para la computadora ), mientras
que el programa objeto ya esta traducido al cdigo que la maquina reconoce. En este caso fue la misma
persona la que escribi ambos programas; por lo general, ser tarea del programador escribir el programa
fuente, y la propia computadora lo traducir al programa objeto.
El programa objeto, entonces, es: 2121 57222 9623 70 que, obviamente, es por completo
ininteligible para un ser humano.
Otro aspecto fundamental es entender que este programa sirve para sumar cualquier par de nmeros,
siempre que residan en las casillas 21 y 22. Esto es realmente importante, pues significa ni mas ni menos, que
es una especie de programa universal para sumar dos nmeros, sin importar cuales sean. Claro que esto no
resulta impresionante por ahora, pero si se piensa en un programa universal para resolver cualquier ecuacin
algebraica de tercer grado, u otro para invertir cualquier matriz de orden 90 x 90, se apreciaran las ventajas
de esta nueva herramienta.
Resta tan slo introducir el programa objeto en la memoria de la computadora, para que pueda
ejecutarse luego. Aqu es crucial elegir las casillas de la memoria que se utilizarn para almacenar el
programa; esto es, en que seccin de la memoria se va a cargar el programa.
Se decidi hacerlo a partir de la celda 10 (se puede cargar en cualquiera que este desocupada siempre
que este seguro que existan suficientes celdas secuenciales vacas).
Una vez cargado, el programa objeto se ver as:
21
10

21
11

57
12

22
13

96
14

23
15

70
16

...
...

05
21

07
22

?
23

...
...

Cada celda contiene un slo nmero de dos dgitos. La celda 23 contiene un nmero no especificado
todava, que se tendr una vez ejecutado el programa.
Cada una de las dos primeras contiene un nmero 21 pero en la primera este representa el cdigo de la
instruccin CARGA_Ac, mientras que el mismo representa en la segunda celda la direccin 21.
Cuando se ha cargado el programa objeto apartir de la celda 10 de memoria, hay que encontrar un
procedimiento para lograr que la computadora comience la ejecucin del mismo y poder obtener as los
resultados deseados.

17

CICLO DE MAQUINA
Memoria- Programa y datos en
cdigo binario

CPU
Registros de
Datos

Unidad
aritmetico logica

Unidad
de Control

Registro de
instruccin
y
contadores
de
Circuitos Decifradores

1.- Traer la instruccin de la


memoria

CICLO DE FETCH

Memoria- Programa
datos en cdigo binario

CPU
Registros de Datos

Unidad
aritmetico logica

Unidad
de Control

Registro de
instruccin
y
contadores
de
programa
Circuitos Decifradores

2.- Leer los datos de la memoria

18

CICLO DE EJECUCION
Memoria- Programa y datos en
cdigo binario

CPU
Registros de
Datos

Unidad
aritmetico
logica

Unidad
de Control

Registro de
instruccin
y
contadores
de
programa

Memoria- Programa y
datos en cdigo binario

CPU
Registros de Datos

Unidad
aritmetico
logica

Unidad
de

Registro de
instruccin
y
contadores
de
Circuitos Decifradores

Circuitos Decifradores
4.- Regresar el resultado a la memoria

3.- Ejecutar la instruccin en los


datos

2.2 CDIGOS Y SISTEMAS DE NUMERACION


El concepto de nmero y el proceso del desarrollo del conteo ha sido histricamente registrado a lo
largo del tiempo de tal manera que identificarlo solo es posible por medio de enormes conjeturas. No es
difcil, a pesar de eso, imaginar cual fue el probable camino. Una tribu primitiva tenia que conocer cuantos
miembros tenia en comparacin con el numero del enemigo, o un pastor determinar necesariamente si el
rebao de ovejas haba crecido en tamao. Es probable que la primera forma de realizar un control fue por
medio de un simple mtodo de encuadre, empleando el principio de correspondencia de uno a uno. Usando
piedras, palos, dedos, muescas en madera y nudos en cuerdas, las persona estaban habilitadas para conservar
la cuenta del ganado y de otros elementos.
Cuando viene a ser necesario realizar conteos mas extensivos, y el proceso tiene que ser
sistematizado esto es introducindose as la base de nmeros. Es evidente que algunos nmeros han servido
como base. En la actualidad alguna tribus sudamericanas cuentan con una base 5 empleando las manos. La
base 12 fue usada en tiempos de la prehistoria, las tribus mayas utilizaban un sistema numrico de base 20.
Los antiguos babilonios usaban un sistema numrico basado en el 60. Este sistema aun es empleado cuando
medimos el tiempo y los ngulos en minutos y segundos.
El sistema numrico con el que estamos mas familiarizados tiene una base o raz 10. Este sistema sin
duda alguna resulta de la contabilidad de los diez dedos. Este sistema aparece primeramente en la India
alrededor del ao 500 d. de J.C. al paso del los aos, la notacin se disperso a travs de Europa como mtodo
predominante del calculo. Este sistema posee diez smbolos : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Sin embargo, las computadoras no utilizan esta base numrica para sus clculos. La computadora usa
un sistema basado sobre una raz dos. Este sistema tiene solamente dos dgitos, 0,1.

19

El sistema numrico de base dos es denominado sistema binario. No fue sino hasta 1945, cuando
John von Neumann estableci el concepto de programa almacenado para las computadoras digitales, que el
sistema binario fue hecho el lenguaje comn de todas las futuras computadoras. El sistema binario es utilizado
dentro del las computadoras por las siguientes razones:
1) Simplificar los circuitos aritmticos de las computadoras.
2) Proporcionar una manera sencilla de almacenar informacin e instrucciones .
3) Proporcionar confiabilidad.
Otros dos sistemas numricos son usados cuando trabajamos con computadoras : Hexadecimal, y el
Octal. Estos sistemas numricos son utilizados principalmente como un mtodo para la representacin de
nmeros binarios.
EVOLUCION DE LOS SISTEMAS DE NUMERACION

Sistema Egipcio

<
Sistema Babilonico
I

II

III

IIII

V
VI
VII
VIII
Sistema Romano Inicial

VIIII

Sistema maya
1

7 8 9
0
Sistema Actual

20

SISTEMA NUMRICO DECIMAL ( Base 10 )


El familiar sistema numrico decimal esta basado sobre una raz de 10 y esta compuesto de los
dgitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Cada posicin de un numero decimal tiene el peso de alguna potencia de 10.

Por ejemplo, el numero decimal 7132 es escrito como sigue:


7

2
2

3
1
7

2X100 =

2X1

3X101 =

3X10

30

1X102 =

1X100

100

7X103 =

7X1000

7000
7132

Parte Entera
104

103

10000 1000

Parte Fraccionaria

102

101

100

100

10

101

10-2

10-3

1/10 1/100 1/1000

Punto decimal

SISTEMA NUMRICO BINARIO ( Base 2 )


Es un sistema de numeracin, donde la base es 2, y esta representado por los nmeros 0 y 1. Los
nmeros binarios son el sistema comn interno de la computacin digital debido a la relativa simplicidad de
registrar, almacenar y reconocer variables de solamente dos valores.
El valor de un numero binario es computado multiplicado el valor de cada dgito por la
correspondiente potencia de dos y sumando todos estos productos. Los pesos posicionales ( potencias de dos)
de un numero binario sern representados conforme a la tabla que a continuacin se muestra.
Parte Entera
27

Parte Fraccionaria

26

25

24

23

22

21

20

128 64

32

16

2-1

2-2

2-3

2-4

2-5

1/2

1/4

1/8 1/12 1/32

Punto Binario

21

Puede observarse en la tabla anterior, las potencias de dos, son de orden ascendente a la izquierda del
punto binario y de orden descendentes a la derecha del mismo.
La presencia de un 1 en una posicin digital de un numero binario indica que la correspondiente
potencia de dos es usada en la determinacin del numero binario. Un 0 es una posicin digital indica que la
correspondiente potencia de dos esta ausente del numero binario.
Ejemplo de un numero entero binario
101100 = 1 x 25 + 0 x 24 + 1 x 23 + 1 x 22 + 0x 21 + 0 x 20
= 1 x 32 + 0 x 16 + 1 x 8 + 1 x 4 + 0 x 2 + 0 x 1
= 32 + 0 + 8 + 4 + 0 + 0
= 44 decimal
Ejemplo de un numero binario fraccional
El numero binario fraccional ser representado usando potencias negativas de dos para los
correspondientes unos en el numero binario.
.1010

= 1 x 2-1+ 0 x 2-2 + 1 x 2-3 + 0 x 2-4


= 1 x 1/2 + 0 x 1/4 + 1 x 1/8 + 0 x 1/16
= 1/2 + 0 + 1/8 + 0
= 4/8 + 1/8 = 5/8 = .625 fraccional

SUMA BINARIA
Es semejante a la suma en el sistema decimal, con la diferencia de que se manejan solo dos dgitos (
0 y 1 ), de tal forma que cuando el resultado excede de los smbolos utilizados se agrega el exceso (
denominado acarreo ) a la suma parcial siguiente hacia la izquierda.
Las tablas de sumar en el sistema binario son las siguientes :
Tabla del 0

Tabla del 1

0+0=0

1+0=1

0+1=0

1 + 1 = 1 (cero con acarreo 1)

NOTA
Realizamos en paralelo a la aritmtica binaria su equivalente en decimal que nos servir como comprobacin.

22

EJEMPLOS

a) Sumar los nmeros binarios 100100 (36) y 10010 (18).


1 0 0 1 0 0 ..................36 +
+ 1 0 0 1 0 ............. 18
___________
1 1 0 1 1 0 ...................54

Obsrvese que no hemos tenido ningn acarreo en las sumas parciales.


b) Sumar los nmeros binarios 11001 (25) y 10011 (19).
Acarreos.

1 11
1 1 0 0 1 ....................25 +
+10011
19
____________
____
1 0 1 1 0 0 ...................44

c) Sumar los nmeros binarios 101110 (46) y 1110 (14).


Acarreos

1 1 1.
1 0 1 1 1 0....................46
+
1 1 1 0.................+14
____________
____
1 1 1 1 0 0 ...................60

d) Sumar los nmeros binarios 10101101 (173) y 10010111 (279).


Acarreos

111111
1 0 1 0 1 1 0 1 .................... 173
+ 1 0 0 0 1 0 1 1 1 ...................+279
________________
____
1 1 1 0 0 0 1 0 0 .................... 452

e) Sumar los nmeros binarios 10.1 (2.5) y 11.01 (3.25).


Acarreo 1
101
1101
1 0 1 1.1 1

2.5
3 .25
5.75

f) Sumar los nmeros binarios 1101 (13), 1110 (14) y 1100 (12).
Acarreo

10 1
.
1 1 0 1 .................... 13
1 1 1 0 .................... 14
+
1 1 0 0 ...................+12
100111
39

23

RESTA BINARIA
La resta binaria es similar a la decimal con la diferencia de tener solo dos dgitos y teniendo en
cuenta que al realizar las restas parciales entre dos dgitos de idnticas posiciones, uno de minuendo y otro el
sustraendo, si el segundo excede al primero, se sustrae una unidad del dgito de mas a la izquierda en el
minuendo (si existe y vale 1), convirtiendose este ultimo en 0 y equivaliendo la unidad extrada a 1*2 en el
minuendo de resta parcial que estamos realizando. Si es 0 el dgito siguiente a la izquierda, se busca en lo
sucesivos teniendo en cuenta que su valor se multiplica por 2 a cada desplazamiento a la derecha.
Las tablas de restar en el sistema binario son las siguientes :
Tabla del 0

Tabla del 1

0 - 0= 0

1 - 0= 1

0 - 1 = no cabe

1 - 1= 0

EJEMPLOS
a) Restar los nmeros binarios 111111 (63) Y 101010 (42)
1 1 1 1 1 1 ..........................63
-1 0 1 0 1 0 ........................-42
__________
______
0 1 0 1 0 1 ........................ 21
b) Restar los nmeros binarios 11110 0 (60) Y 101010 (42)
0
111000
-101010
010010

2 acarreo
..........................60
........................-42
...................... 18

c) Restar los nmeros binarios 11.01 (3.25) Y 10.1(2.5)


0
10.10
-10.10
00 .11

2 acarreo
..........................3.25
........................-2.50
..........................0.75

MULTIPLICACION BINARIA
La multiplicacin binaria se realiza en forma similar a la multiplicacin decimal salvo que la suma
final de los productos parciales se hace en binario.
Las tablas de multiplicar en el sistema binario son las siguientes :
Tabla del 0

Tabla del 1

0 * 0= 0

1 * 0= 0

0 * 1= 0

1 * 1= 1

24

EJEMPLOS
a) Multiplicar los nmeros binarios 110101(53) y 1101(13)
1 1
* 0 0
1 1
0 0 0
1 1 0 1
1 1 0 1 0
1 01 0 1 1

0 1 0 1 ............................... 53
1 1 0 1 ............................... 13
0 1 0 1
0 0 0
0 1
1
.
0 0 0 1 .............................. 689

b) Multiplicar los nmeros binarios 11010(26) y 101010(42)


0 1 1 0 1 0 ................................... 26
* 1 0 1 0 1 0 .................................. 42
0 0 0 0 0
1 1 0 1 0
0 0 0 0 0
1 1 0 1 0
0 0 0 0 0
1 1 0 1 0
.
1 0 0 0 1 0 0 0 1 0 0 .................................. 1092

c) Multiplicar los nmeros binarios 111111(63) y 101010(42)


1 1 1 1 1 1 ...................................... 63
1 0 1 0 1 0 ...................................... 42
0 0 0 0 0 0
1 1 1 1 1 1
11 1 1 1 1
1 1 11 1 1
.
1 0 1 0 0 1 0 1 0 1 1 0 .................................... 2646
DIVISION BINARIA
La divisin binaria, al igual que las operaciones anteriores, se realiza de forma similar a la divisin
decimal salvo que las multiplicaciones y restas internas al proceso de la divisin se hacen en binario.

25

EJEMPLOS
a) Dividir los nmeros binarios 100010 (34) y 110 (6)
1 0 1 0
1 1 0
1 0
1
1

1 0

1 1 0
1 0 1.......... cociente ( 5 )

1 0
1 0
0 0 ......................................... resto ( 4 )

Multipliquemos el divisor por el cociente y al resultado le sumamos el resto, con lo que debemos
obtener el valor del dividendo.
1 1 0 ........................................ divisor ( 6 )
* 1 0 1 ....................................... cociente ( 5 )
1 1 0
1 1 0
.
1 1 1 1 0
+
1 0 0 ..................................... resto ( 4 )
1 0 0 0 1 0 ................................... cociente ( 34 )

NOTACIN DECIMAL, BINARIA, HEXADECIMAL Y OCTAL


Decimal
---------- --------0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
..
..

Binario
----------------00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
.........
.........

Hexadecimal

octal
-------

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
..
..

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
..
..

26

NUMRICO OCTAL ( base 8 )


Esta basado en una raz de 8 y utiliza los dgitos 0, 1, 2, 3, 4, 5, 6, 7. Los pesos posicionales (
potencias de ocho ) de un numero octal pueden ser representadas como sigue:
Parte Entera

Parte Fraccionaria

83

82

81

80

512

64

8-1

8-2

8-3

1/8

1/64

1/512

Punto Octal
El numero octal 304.763, ser convertido a su equivalente decimal por el mtodo siguiente:
3

3
3

6
7
4
0
3

3X8-3 =

3x1/512

.006

6x8-2 =

6x1/64

.094

7x8-1 =

7x1/8

.875

4x80 =

4x1

0x81=

0X8

3x82 =

3x64

192
196. 975

El sistema numrico octal tiene caractersticas especiales que lo hacen sobre todo til en muchas
situaciones que involucran nmeros binarios. Puesto que tres dgitos binarios se agrupan y representan un
dgito octal, muchas operaciones binarias pueden representarse usando dgitos octales, esto es
extremadamente til cuando trabajamos con la consola del operador en muchas computadoras binarias. La
tabla presentada a continuacin, muestra como son utilizados los dgitos octales para la representacin de
agrupaciones de tres dgitos.
Grupos binarios
000
001
010
011
100
101
110
111

Dgitos octales
0
1
2
3
4
5
6
7

27

El numero binario 111110101011010 es usado para ilustrar la agrupacin de dgitos binarios en


dgitos octales :
Nmero Binario

111110101011010

Agrupacin Binaria
Nmero Octal

111
7

110
6

101
5

011
3

010
2

As, el numero octal 76532 es el equivalente del numero binario 111110101011010. Resultara obvio
que ambas lectura y escritura de nmeros binarios pueden ser simplificados usando notacin octal.

SISTEMA NUMRICO HEXADECIMAL ( base 16 )


El sistema numrico hexadecimal se basa en una raz de 16 y emplea 16 dgitos 0, 2, 3, 4, 5, 6, 7, 8,
9, 0, A, B, C, D, E, F. Los dgitos del 0 al 9 son usados en el sentido normal y los otros seis dgitos son
representados pos los smbolos A, B, C, D, E, F ( A = 10, B = 11, C = 12, D = 13, E = 14, F = 15 ). Los
pesos posicionales ( potencias de 16 ) de un numero hexadecimal pueden ser representados como sigue :
Ambos nmeros Octal y Hexadecimal son considerablemente mas cortos en longitud que el numero
binario. Muchas minicomputadoras usan el sistema octal y numerosas computadoras de gran escala utilizan el
sistema hexadecimal para desplegar datos de entrada/salida.
Parte Entera

Parte Fraccionaria

163

162

161

160

4096

256

16

16-1

16-2

16-3

1/16 1/256 1/4096

Punto Hexadecimal
El valor decimal de un numero hexadecimal es determinado multiplicando el valor de cada dgito
por la correspondiente potencia 16 y sumando todos estos productos. Por ejemplo, el valor decimal
equivalente del numero hexadecimal 85.4 puede ser determinado de la siguiente manera :
8

4
4

5
8

4x16-1=

1/16=

4/16

5x16-0 =

5x1=

8x16-1 =

8x16=

128

128

133.25

.25

28

Si un numero binario es dividido en grupos de cuatro bits (dgitos), procediendo en cualquier


direccin a partir de punto binario, cada grupo puede ser reemplazado directamente por su equivalente en
hexadecimal. la agrupacin es como sigue :
Agrupacin
Binaria
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

Digito
Hexadecimal
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Esta forma de agrupacin es extremadamente til cuando es usada para representar valores de un
Byte de 8 bit de informacin. Esta unidad de informacin es la unidad bsica de muchas computadoras
modernas. Tambin es muy til en la representacin de palabras de computadoras binarias que son un
mltiplo de 4, tales como 12, 16, 20, 24, 28, 32, 36.
El numero binario 1110001011010011 se emplea para ilustrar la agrupacin de dgitos binarios
dentro de dgitos hexadecimales.
Nmero Binario
Agrupacin Binaria
Nmero Hexadecimal

1110001011010011
1110
E

0010
2

1101
D

0011
3

As, el numero hexadecimal E2D3 es el equivalente del numero binario 1110001011010011.

TABLAS DE CONVERCION NUMERICAS


Aunque es de utilidad el entendimiento de como comvertir de un sistema numrico a otro, en la
practica real las tablas de conversin son usualmente aplicadas. Los apndices A y B contienen tablas para
convertir nmeros de hexadecimal - decimal y octal - decimal.
El procedimiento para el uso de estas tablas es explicado en las secciones siguientes.

29

Tabla de Conversin Hexadecimal-Decimal


La tabla que aparece en el Apndice A puede ser empleada para convertir nmeros decimales
directamente a/desde nmeros hexadecimales en los rangos : 000 a FFF (hexadecimal) 0000 a 4095
(decimal). El uso de la tabla es explicado con dos ejemplos .
Problema:
Convertir (C3) 16 a un nmero decimal.
Procedimiento:
Encontrar CO en la columna izquierda y 3 sobre la parte alta de la tabla de conversin hexadecimaldecimal en el Apndice A. El punto de interseccin es el nmero equivalente en decimal, el cual es 195.
0

000
010
020
030
040
050
060
070
080
090
0A0
0B0
0C0

0000
0016
0032
0048
0064
0080
0096
0112
0128
0144
0160
0176
0192

0001
0017
0033
0049
0065
0081
0097
0113
0129
0145
0161
0177
0193

0002
0018
0034
0050
0066
0082
0098
0114
0130
0146
0162
0178
0194

0003
0019
0035
0051
0067
0083
0099
0115
0131
0147
0163
0179
0195

0004
0020
0036
0052
0068
0084
0100
0116
0132
0148
0164
0180
0196

0005
0021
0037
0053
0069
0085
0101
0117
0133
0149
0165
0181
0197

0006
0022
0038
0054
0070
0086
0102
0118
0134
0150
0166
0182
0198

0007
0023
0039
0055
0071
0087
0103
0119
0135
0151
0167
0183
0199

0008
0024
0040
0056
0072
0088
0104
0120
0136
0152
0168
0184
0200

0009
0025
0041
0057
0073
0089
0105
0121
0137
0153
0169
0185
0201

0010
0026
0042
0058
0074
0090
0106
0122
0138
0154
0170
0186
0202

0011
0027
0043
0059
0075
0091
0107
0123
0139
0155
0171
0187
0203

0012
0028
0044
0060
0076
0092
0108
0124
0140
0156
0172
0188
0204

0013
0029
0045
0061
0077
0093
0109
0125
0141
0157
0173
0189
0205

0014
0030
0046
0062
0078
0094
0110
0125
0142
0158
0174
0190
0206

0015
0031
0047
0063
0079
0095
0111
0127
0143
0159
0175
0191
0207

30

Tabla de conversin Octal Decimal

0000
0010
0020
0030
0040
0050
0060
0070
0100
0110
0120
0130
0140
0150
0160
0170
0200
0210
0220
0230
0240
0250
0260
0270
0300
0310
0320
0330
0340
0350

0000
0008
0016
0024
0032
0040
0048
0056
0064
0072
0080
088
0096
0104
0112
0120
0128
0136
0144
0152
0160
0168
0176
0184
0192
0200
0208
0216
0224
0232

0001
0009
0017
0025
033
0041
0049
0057
0065
0073
0081
0089
0097
0105
0113
0121
0129
0137
0145
0153
0161
0169
0177
0185
0193
0201
0209
0217
0225
0233

0002
0010
0018
0026
0034
0042
0050
0058
0066
0074
0082
0090
0098
0106
0114
0122
0130
0138
0146
0154
0162
0170
0178
0186
0194
0202
0210
0218
0226
0234

0003
0011
0019
0027
0035
0043
0051
0059
0067
0075
0083
0091
0099
0107
0115
0123
0131
0139
0147
0155
0163
0171
0179
0187
0195
0203
0211
0219
0227
0235

0004
0012
0020
0028
0036
0044
0052
0060
0068
0076
0084
0092
0100
0108
0116
0124
0132
0140
0148
0156
0164
0172
0180
0188
0196
0204
0212
0220
0228
0236

0005
0013
0021
0029
0037
0045
0053
0061
0069
0077
0085
0093
0101
0109
0117
0125
0133
0141
0149
0157
0165
0173
0181
0189
0197
0205
0213
0221
0229
0237

0006
0014
0022
0030
0038
0046
0054
0062
0070
0078
0086
0094
0102
0110
0118
0126
0134
0142
0150
0158
0166
0174
0182
0190
0198
0206
0214
0222
0230
0238

0007
0015
0023
0031
0039
0047
0055
0063
0071
0079
0087
0095
0103
0111
0119
0127
0135
0143
0151
0159
0167
0175
0183
0191
0199
0207
0215
0223
0231
0239

Problema:
Convertir (345) 8 a su equivalente en decimal.
Procedimiento:
Encontrar 340 en la columna izquierda y el 5 en la parte alta de las columnas. El punto de interseccion es
el numero decimal equivalente, 229.
Problema:
Convertir (132)10 a su equivalente en octal.
Procedimiento:
Encontrar 132 en la tabla. El numero en la columna de la izquierda es 200 y el nmero hacia arriba es 4,
totalizando 204 para el resultado en octal.

31

CDIGOS
Un cdigo es un conjunto de smbolos y normas que permiten la representacin de informacin.
Gracias a los cdigos es posible que las computadoras ( que slo trabajan con datos binarios ) pueden
procesar informacin que no es numrica. Los cdigos digitales permiten la representacin de nmeros, letras
y seales de control usando nicamente bits.
Seguramente el lector debe conocer algunos cdigos, como la clave morse, donde cada letra es
representada mediante una secuencia de puntos y rayas. De un modo similar, las antiguas tarjetas perforadas
podan contener informacin gracias al cdigo Hollerith, el cual asociaba la posicin de las perforadoras con
smbolos alfabticos especficos.

BCD (Cdigo Binario en Decimal )


El BCD (del ingls Binary-Coded Decimal), tambin llamado cdigo 8421. representa cada dgito
decimal por medio de cuatro dgitos binarios. El BCD no tiene equivalencia para letras.
Este cdigo agrupa cuatro bits porque, para representar los diez smbolos del sistema decimal se
requiere un mnimo de cuatro cifras binarias.
La tabla de equivalencias del BCD es la siguiente:

BCD

Decimal

BCD

Decimal

0000
0001
0010
0011
0100

0
1
2
3
4

0101
0110
0111
1000
1001

5
6
7
8
9

Utilizando este cdigo, el numero 4158 queda representado como :0100 0001 0101 1000
Debe tenerse cuidado para no confundir la representacin en BCD del numero 4158 con su
equivalente en sistema binario, que es 1000000111110. El BCD fue utilizado por las primeras computadoras
digitales y ahora es til para circuitos electrnicos.
EBCDIC ( Binario Extendido para intercambio de Cdigo Decimal )
Este cdigo diseado por la IBM, es una versin ampliada del BCD, y requiere de 8 bits con lo cual
puede representar letras y smbolos, a dems de los nmeros.

32

ASCII ( Cdigo de Estndares Americanos para Intercambios de Informacin )


Este cdigo agrupa 7 bits, con los que se representan 96 caracteres y 32 smbolos de control. Es
utilizado para el intercambio de informacin entre dispositivos fabricados por diferentes empresas y para
transmisin telefnica de datos. L versin extendida del cdigo ASCII utiliza 8 bits para manejar 255
caracteres. Por ejemplo la letra A se representa con la cadena de bits 01000001, cuyo equivalente decimal
es 65. de acuerdo a la tabla ASCII la palabra HOLA se representara como :

01001000
72

01001111
79

01001100
76

01000001
65

33

CARACTER
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
0
1
2
3
4
5
6
7
8
9

ASCII
CODIGO DE 7 BITS
1000001
1000010
1000011
1000100
1000101
1000110
1000111
1001000
1001001
1001010
1001011
1001100
1001101
1001110
1001111
1010000
1010001
1010010
1010011
1010100
1010101
1010110
1010111
1011000
1011001
1011010
0110000
0110001
0110010
0110011
0110100
0110101
0110110
0110111
0111000
0111001

EBCDIC
CODIGO DE 8 BITS
11000001
11000010
11000011
11000100
11000101
11000110
11000111
11001000
11001001
11010001
11010010
11010011
11010100
11010101
11010110
11010111
11011000
11011001
11100010
11100011
11100100
11100101
11100110
11100111
11101000
11101001
11110000
11110001
11110010
11110011
11110100
11110101
11110110
11110111
11111000
11111001

34

CAPACIDAD DE MEMORIA DE UN COMPUTADOR


La capacidad de memoria de un computador se mide por medio de KBYTES que es la agrupacin de
1024 bytes, el kbyte tiene submultiplos y mltiplos que son:
SUBMULTIPLOS.- *** Bit
*** Nibble
*** Byte

*** Word
*** Doubleword
*** Kword

MULTIPLOS.*** Kbyte
*** Megabyte

*** Gigabyte
*** Terabyte

BIT.- Es la mnima pulsacin electrnica recibida por la computadora .


NIBBLE .- Es la agrupacin de 4 bits.
BYTE.- Es la agrupacin de 8 bits., los cuales estn divididos en dos partes que son.
1.- Cuatro bits de rea de zona
2.- Cuatro bits de rea de dgitos
NOTA.- Si la informacin del byte es alfabtica, el byte es lgico
Si la informacin es numrica, el byte puede ser desempacado o empacado.
WORD.- Es la agrupacin de 4 bytes
DOUBLEWORD.- Es la agrupacin de 8 bytes
KWORD.- es la agrupacin de 512 bytes
SUBMULTIPLOS
KBYTE.- Es la agrupacin de 1024 bytes.
MEGABYTE.- Es la agrupacin de 1`048,576 bytes.
GIGABYTE.- Es la agrupacin de 1`073,741 billones de bytes.
TERABYTE .- Es la agrupacin 2 40 bytes
El Byte u Octeto es considerado como la unidad bsica de medida de la informacin.

35

36

3.- DESCRIPCION FUNCIONAL DE UN SISTEMA DE COMPUTO.


Monitor

Chasis

Unida
de
disco

Teclado

Raton

HARDWARE.- Es el conjunto de dispositivos mecnicos, elctricos, electromagnticos, y


electrnicos que integran al procesador central y equipos perifricos.
SOFTWARE.- Es el soporte lgico que el hombre introduce a la maquina para facilitar su
comunicacin con esta. Es la parte intangible de los datos elaborados por el, tales como programas, sistema
operativo, compiladores, o traductores de lenguaje.
3.1 EL PROCESADOR CENTRAL.
El conjunto que forman la unidad de control y la unidad aritmtica y lgica se llama procesador
central o unidad central de procesamiento, UCP. Sus funciones consisten en leer y escribir contenidos de las
celdas de memoria, llevar y traer datos entre celdas de memoria y registros especiales ( por ejemplo el
acumulador ), y descodificar y ejecutar las instrucciones de un programa.
El procesador es, pues, el corazn de la computadora. De el dependen las dems funciones del
sistema integrado, y es el que controla todas las operaciones que la maquina realiza.
Como en todo sistema complejo donde interactuan muchos componentes, una computadora requiere
una organizacin jerrquica para funcionar. En este caso la organizacin consiste en distribuir las tareas entre
subsistemas diversos que reportan sus actividades al procesador central por medio de interrupciones.
Descodificacin, ejecucin, y ajuste del CPU. Cuando es necesario hacer una operacin especial
sobre alguno de los subsistemas externos ( una lectura en disco por ejemplo ), la UCP no da la orden y
continua la ejecucin del programa. Cuando el subsistema termina lo que le fue encargado, manda una
interrupcin a la UCP para que esta le indique que otra operacin especial ( si la hubiera ) hay por ejecutar.

37

UNIDAD DE ARITMTICA Y LGICA:


La unidad de aritmtica y lgica efecta tres funciones bsicas y son:
1.
2.
3.

Transferencia de datos.
Clculos aritmticos.
Toma de decisiones.

Esta unidad es la encargada de realizar las operaciones elementales de tipo aritmtico (sumas, restas,
productos y divisiones) y de tipo lgico (comparaciones). Para conectarse con otras unidades funcionales
utiliza el denominado bus de datos y para realizar sus funciones necesitan los siguientes elementos:
Circuito operacional (COP).
Registro de entrada (REN)
Registro acumulador (RA).
Registro de estado (RES).

Acumulador

Registro de estado

Circuito
Operacional

Micro ordenes

REN 1

REN 2

BUS

Circuit Operacional (COP). Contiene los circuitos necesarios para la realizacin de las operaciones
con los datos procedentes de los registros de entrada (REN). Este circuito tiene entradas de rdenes para
seleccionar la clase de operacin que debe realizar en cada momento ( suma, resta, etc.).
Registro de entrada (REN). En ellos se almacenan los datos u operaciones que intervienen en una
instruccin antes de la realizacin de las operaciones por parte del circuito operacional. Tambin se emplean
para el almacenamiento de resultados intermedios o finales de las operaciones respectivas.
Registro acumulador (RA). Almacena los resultados de las operaciones llevadas a cabo por un
circuito operacional. Est conectados con los registros de entrada para realimentacin en el caso de
operaciones encadenadas. As mismo tiene una conexin directa al bus de datos para el envo de los
resultados en la memoria central o la unidad de control.
Registro de estado (RES). Se trata de un conjunto de biestrables en los que se deja constancia de
algunas condiciones que dieron el la ultima operacin realizada y que habr de ser tenidas en cuenta en
operaciones posteriores.

38

TRANSFERENCIA DE DATOS.- Involucran el movimiento de datos desde una localizacin


dentro del computador hacia otra.
CLCULOS ARITMETICOS.- La computadora realiza los clculos a una velocidad inimaginable
por muy complejos que sean, se pueden realizar las cuatro operaciones bsicas u operaciones algebraicas.
TOMA DE DECISIONES.- Es la habilidad de comparar dos cantidades o nmeros, uno en uno
nombre-dato y el otro en su representacin real. Para determinar cual de ellos es menor, o mayor o en su caso
iguales, para tomar alguna accin dependiendo de los resultados de la comparacin.
UNIDADES DE MEDIDA DE VELOCIDAD DEL PROCESADOR
La operacin de la unidad central de proceso (UCP) esta controlada por un reloj maestro de tiempo
real, que es el que indica cada cuando se debe iniciar una nueva operacin. En trminos generales, ser este
reloj el que determine la velocidad de operacin del procesador. Como ilustracin se puede decir que una
microcomputadora comn esta controlada por un reloj con una frecuencia de 8 a 20 MHz ( millones de ciclos
por segundo ), mientras que las maquinas mas grandes tienen osciladores con frecuencias de 20 o 40 MHz. El
circuito que acta como reloj enva impulsos de control ( par comenzar la ejecucin de las operaciones y
sincronizarlas ) a razn de 10 millones por segundo para el caso del microprocesador 68010.
Sin embargo, no hay que confundir la frecuencia a la que opera el reloj con la cantidad de
instrucciones que el procesador puede ejecutar, son necesarios varios ciclos del reloj para hacer los cuatro
pasos que requiere cada instruccin, y el numero exacto depende de la complejidad de cada instruccin de el
lenguaje de maquina. Existen varias unidades de medida de la velocidad de un procesador, que tienen
distintos niveles de significancia. La primera, mencionada frecuencia del reloj, especifica tan solo la cantidad
de veces que la unidad de control recibe impulsos elctricos en un segundo, y no es directamente relacionable
con la velocidad del proceso de los programas en general, sino solo de los componentes que constituyen el
lenguaje de maquina. Una medida mas cercana a los programas del usuario se conoce como MIPS (Milln
Instructions per Second ) y se refiere a la cantidad promedio de instrucciones de lenguaje maquina que la
computadora ejecuta en un segundo. Una minicomputadora procesa normalmente a razn de entre 0.5 y 2
MIPS, y una gran maquina puede alcanzar 15 o 20. Finalmente, existe otra medida, mas estricta, llamada
FLOPS ( floating point operation per second ), que se refiere a la cantidad de instrucciones aritmticas de
punto flotante ( es decir, operaciones aritmticas con nmeros con punto decimal ) que se pueden ejecutar en
un segundo. Una de las llamadas supercomputadoras es capaz de procesar a la asombrosa velocidad de 600
megaflops ( millones de Flops ).
Integrada al procesador existe una serie de celdas ( anlogas a la de la memoria ) que se utilizan con
mucha frecuencia y que, por ende, no estn en la memoria sino que forman parte de la UCP ( CPU ). Esa
celda reciben el nombre de registros . Un procesador puede tener una decena o dos de ellos, rara vez mas. Un
registro muy importante, que ya se ha empleado en el texto, es el acumulador.
La unidad de aritmtica y lgica del CPU, como su nombre lo indica, se encarga de efectuar las
operaciones relacionadas con los clculos numricos y simblicos. Una unidad tpica solo es capaz de realizar
un numero reducido de operaciones muy elementales, aunque a gran velocidad. Las operaciones que estas
subunidades pueden efectuar son :
a)
b)
c)
d)

Suma y resta de dos nmeros de punto fijo


Multiplicacin y divisin de punto fijo ( no todos los procesadores tienen esta capacidad )
Manipulacin de los bits de los registros y del acumulador ( operaciones lgicas AND, OR, NOT ).
Comparacin del contenido de dos registros ( para averiguar si los nmeros que contienen
son iguales, o cual es mayor ).

39

Prcticamente ningn procesador tiene la capacidad de hacer operaciones mas complejas que estas,
lo que significa que, por ejemplo, para elevar un numero a una potencia hay que usar un programa especial.
Todas las computadoras proporcionan a los usuarios bibliotecas de programas y funciones matemticas para
efectuar estos clculos, y lo hacen armando las funciones complejas con base en las operaciones
elementales que la unidad aritmtica y lgica si es capaz de efectuar.
Es mas, en opinin de algunos investigadores, las unidades centrales de procesamiento ya son
demasiado complejas, y entonces ha surgido una corriente en sentido inverso, que pide que los procesadores
sean sencillos pero muy rpidos, y que ha desembocado en un tipo especial de arquitectura en la que el
lenguaje de maquina consta de unas cuantas y muy sencillas operaciones y que se conoce como RISC
(Reduced Instruction Set Computer ). Ya hay varias computadoras comerciales que emplean este tipo de
tecnologa, con buenos resultados.
En principio la potencia de computo de un procesador esta dada en trminos de la cantidad de bits
que puede manipular en una sola operacin. Es decir, el hecho de que un procesador pueda trabajar con
operaciones y nmeros de 16 bits le da una gran ventaja en velocidad y reflexibilidad de operacin con
respecto a uno diseado para trabajar con 8 bits en paralelo. De esta forma, las computadoras pueden
clasificarse por lo que se conoce como tamao de palabra, esto es, la cantidad de bits que el procesador puede
manejar a la vez.
Las maquinas con procesador de tamao de palabra de 8 bits forman una familia de
micrcomputadoras que estn siendo reemplazadas por las de 16 bits. Las minicomputadoras suelen tener
procesadores de 16 bits, y algunas ya incluyen unidades de 32 bits. Las grandes computadoras procesan
grupos de 32 o 64 bits, y hasta la fecha todas emplean procesadores que requieran decenas o mas de circuitos
integrados ( es decir, aun no existen microprocesadores de mas de 32 bits ).
Es posible que un procesador logre la ejecucin de instrucciones que no forman parte de su
diccionario electrnico ( o incluso que simule a otro procesador diferente ) mediante una tcnica ( mitad
electrnica, mitad de programacin ) llamada microprogramacin.
Existen adems procesadores de diseo especial que sirve exclusivamente para hacer operaciones
aritmticas mas complejas que las ya descritas. Estos procesadores numricos de punto flotante si son capaces
de elevar nmeros a potencias, clculos logartmicos, exponenciales y otras funciones trascendentales, a la
vez que efectan las operaciones aritmticas elementales con gran precisin. Para que una computadora
incluya uno de estos procesadores se requiere que el procesador central lo adopte y lo ponga a funcionar bajo
la modalidad conocida como procesamiento amo - esclavo en este tipo de configuracin, el procesador
central lleva (como siempre) el control de todas las operaciones por realizar y pasa el control al procesador
numrico cuando detecta la aparicin de una de esas operaciones complejas; el procesador numrico la
ejecuta y devuelve el control al amo. Luego de esto se desactiva y se mantiene as mientras no reciba la orden
de realizar un nuevo trabajo.
El conjunto de operaciones de maquina que puede ejecuta un procesador es, como se ha dicho,
limitado. Para el caso del microprocesador INTEL 80286 ( procesador de 16 bits), estas son un poco mas de
130, divididas en siete grupos ( de transferencia de datos, aritmtica, lgica, de manipulacin de cadenas, de
flujo de control, instrucciones de alto nivel, y de entrada/salida y control).
Dicho microprocesador consiste en un circuito integrado de alta densidad donde, en un espacio
menor que un centmetro cuadrado, existen mas de 150,000 transistores y otros elementos electrnicos
microscpicos grabados en una tableta de silicio. Requieren tan solo de una fuente de potencia de 5 volts,
lo que significa que pueden operar perfectamente como una simple batera.
El 80286 tiene mayor poder de computo que la ENIAC, que menos de 30 aos antes requera 18,000
bulbos y ocupaba varias decenas de metros cuadrados. Pocas veces la humanidad ha contemplado avances
tecnolgicos tan extraordinarios y en tan poco tiempo.

40

UNIDAD DE CONTROL
Esta unidad controla y coordina las actividades de una computadora en forma muy parecida a la que
el cerebro controla y coordina las actividades del cuerpo humano.
Es el centro nervioso de la computadora ya que desde ella se controla y gobierna todas las
operaciones. Para realizar su funcin, consta de los siguientes elementos.
Contador de programa (CP)
Registro de instruccin (RI)
Decodificador (D)
Reloj
Secuenciador (S)
Contador de programa (CP). Tambin denominado registro de control de secuencia (RCS), contiene
permanentemente la direccin de memoria de la siguiente instruccin a ejecutar. Al iniciar la ejecucin de un
programa toma la direccin de su primera instruccin. Incrementa su valor en 1, deforma automticamente,
cada vez que se concluye una instruccin, salvo sin la instruccin que se est ejecutando es de salto o de
ruptura de secuencia, en cuyo caso el CP tomar la direccin de la instruccin que se tenga que ejecutar a
continuacin., esta direccin est en la propia instruccin en curso.

Contador

Reloj
Secuenciador

Decodificador

R. Instrucciones
Micro ordenes
BUS
Unidad de Control
En el dibujo anterior se puede apreciar la interrelacin entre la unidad de control y los dispositivos
de entrada y salida.
Registro de instruccin (RI). Contiene la instruccin que se est ejecutando en cada momento. Esta
instruccin llevar consigo el cdigo de operacin (CO) y en su caso los operandos o las direcciones de
memorias de los mismos.
Decodificador (D). Se encarga de extraer el cdigo de operacin de las instruccin en curso (que est
en el RI), lo analiza y emite las seales necesarias al resto de elemento para su ejecucin a travs del
secuenciador.
Reloj . Proporciona una sucesin de impulsos electrnicos o ciclos a intervalos constantes
(frecuencia constante), que marca los instantes en que han de comenzar los distintos paso de que consta cada
instruccin.

41

El microprocesador de Intel 8086 utiliza una frecuencia de reloj de 8 Mhz (megaherzios) es decir, 8
millones de ciclos de reloj por segundo, y por tanto la duracin de un ciclo es de 1/8000000=125
nanosegundos. Las instrucciones que se ejecutan en este microprocesador entre 2 y 206 ciclos.
.Secuenciador (S). Tambin denominado controlador. En este dispositivo se genera rdenes muy
elementales (micrordenes) que, sincronizadas por los impulsos del reloj hacen
que se vaya ejecutando poco a poco la instruccin que est cargada en el RI.
Las funciones bsicas de la unidad de control son las siguientes:
1.
2.
3.
4.
5.
6.

Determinar la instruccin que deber ser ejecutada.


Determinar la operacin que deber ser realizadas por la instruccin.
Determinar que datos van a ser necesitados, si es que se requieren y en donde estn localizados
dentro de la memoria
Determinar a donde van a llegar los resultados.
Determinar donde esta localizada la siguiente instruccin.
Continuar con la realizacin de la ejecucin de las siguientes instrucciones del programa
COPROCESADOR MATEMATICO

La CPU est preparada para realizar rpidamente operaciones matemticas con las cuatro reglas
fundamentales: sumar, restar, multiplicar y dividir. Tambin puede realizar clculos ms complejos, como la
raz cuadrada o el seno de un ngulo, pero comparativamente tarda mucho ms tiempo en aplicaciones que
consisten en clculos complejos (la rotacin de una forma grfica en pantalla, la animacin de dibujos ), la
velocidad de ejecucin de la CPU deja mucho que desear. Para estas tareas necesitara un colaborador . Por
esta razn en la placa de muchos PC se encuentra, junto al microprocesador, otro chip, el coprocesador
matemtico, encargado de dichas operaciones complejas.
El coprocesador matemtico es, en efecto, un ayudante de la CPU, a la que libera de sus tareas
matemticas (que, por supuesto, realiza mucho ms eficientemente) y le permite continuar trabajando en
paralelo.
Muchas computadoras no traen de fbrica el coprocesador y es necesario instalarlo posteriormente.
En estos casos la placa base viene dotada de un conector o zcalo dnde se debe insertar el chip del
coprocesador. El modelo de coprocesador adecuado para cada computadora depende del tipo de CPU que
lleve la placa base: as, con un 8086 se debe instalar un coprocesador 8087, para el 80286 se debe instalar un
80287, para un 80386 es el 80387. Para el 80486 no hay que instalar ningn coprocesador, pues ya est
instalado en el CPU.
El circuito integrado 80860 desarrollado por Intel trabaja con registros de 64 bits
Este chip altamente integrado contiene el CPU, el coprocesador matemtico, memoria cach y adems un
procesador grfico 3D (tridimensional). El 80860 est especialmente destinado a los usuarios que desarrollan
aplicaciones con dibujos en tres dimensiones dnde se generan formas geomtricas que es necesario rotar y
trasladar.
Este microprocesador slo est disponible comercialmente en tarjetas que deben ser instaladas en las
ranuras de expansin de un PC_486.

42

A continuacin se muestra
coprocesadores que llevaran
Micro
procesador
8088
8086
80286
80386 SX
80386 DX
80486 SX
80486

Tamao de
los registros
16 bits
16 bits
16 bits
32 bits
32 bits
32 bits
32 bits

una tabla que relaciona los microprocesadores de Intel y sus

No. de lneas
bus de datos
8
16
16
16
32
32
32

No. de lneas bus


de direcciones
20
20
24
24
32
32
32

Memoria fsica Coprocesador


direccionable
requerido
1 Mbyte
8087
1 Mbyte
8087
16 Mbyte
80287
16 Mbyte
80387
4 Gbyte
80387
4 Gbyte
80387
4 Gbyte Incorporado

3.2 LA MEMORIA CENTRAL


En este conjunto -generalmente grande- de celdas direccionables es donde la computadora almacena
toda la informacin (datos y programas) que utilizar mientras est encendida. Cualquier instruccin que el
procesador efecte deber necesariamente residir en la memoria central, ya que es ah donde la UCP buscar
la siguiente instruccin.
La memoria central, principal o interna es la unidad donde estn almacenadas las instrucciones y los
datos necesarios para poder realizar un determinado proceso. Est constituida por multitud de celdas o
posiciones de memoria, numeradas de forma consecutiva, capaces de retener, mientras la computadora este
conectada, la informacin depositada en ella.
A la numeracin de celdas se denomina direccin de memoria y mediante esta direccin se puede
acceder de forma directa a cualquiera de ellas independientemente de su posicin; se dice, por ello, que la
memoria central es un soporte de informacin de acceso directo. Adems , el tiempo de acceso a la memoria
central es notablemente inferior al necesario para acceder a las memorias auxiliares.
No hay que confundir los trminos celda o posicin de memorias con la palabra de computadora, ya
que esta ultima es la cantidad de informacin que puede introducirse o extraerse de la memoria central de una
sola vez (simultneamente). El tamao habitual de la palabra de las computadoras actuales suele ser de 16, 32
o 64 bits.
La memoria central tiene asociado dos registros para la realizacin de operaciones de lectura o
escritura y un dispositivo encargado de seleccionar una celda de memoria en cada operacin de acceso a la
misma :
Registro de direccin de memoria (RDM).
Registro de intercambio de memoria (RIM).
Selector de memoria (SM).
Registro de direccin de memoria (RDM). Antes de la realizacin de una operacin de lectura o
escritura se ha de colocar en este registro la direccin de la celda que se va a utilizar en la operacin, bien para
grabar en ella o para extraer de la misma el dato correspondiente.
Registro de intercambio de memoria (RIM). Si se trata de una operacin de lectura de memoria este
registro es el que recibe el dato de la memoria sealado por el RDM para su envo por medio del bus del
sistema a la unidad que lo requiere. Se trata de una operacin de escritura en memoria, la informacin que hay
que grabar, procedente de cualquier unidad funcional, es depositada por medio del bus en el RIM para desde
el se transfiera a la posicin de la memoria indicada por el RDM.
Selector de memoria (SM). Este dispositivo se activa cada vez que se produce una orden de lectura o
escritura, conectando la celda de la memoria cuya direccin figura en el RDM , con el RIM y posibilitando la
transferencia de los datos en un sentido o en el otro.

43

La unidad de informacin mnima manejable por una computadora es el conjunto


de 8 bits o byte. La capacidad de la memoria o cantidad mxima de informacin que es capaz de
Kilobyte = 1024 bytes
Megabyte = 1024 kbytes
Gigabyte = 1024 mbytes
Terabyte = 1024 Gbytes
MEMORIA RAM
En la computadora personal a la memoria central se le suele denominar RAM (Random access
Memory) y las capacidades actualmente en el mercado varan en forma considerable: 640 K en la IBM
PC/XT, ms 7 Megas en la IBM PS/@ modelo 50, etc. Estas capacidades va aumentndose dia a dia de forma
vertiginosa debido principalmente a la abaratamiento constante de los chips de memoria, al aumento de la
velocidad de acceso y a la creacin de nuevos sistemas operativos capaces de manejar memorias de capacidad
cada vez mayor.
Por otra parte, aunque la capacidad real de la memoria centrales es reducida, se ha conseguido que ,
desde el punto de vista de su funcionamiento, est capacidad se a mucho mayor que la real, prcticamente
ilimitada, mediante lo que se denomina memoria virtual. Esta memoria virtual usa la memoria secundaria para
expandir la memoria central mediante un procedimiento llamado paginacin consistente en transferir trozos o
paginas de la memoria secundaria a la central cuando son necesarios e intercambiarlos por otro segn las
necesidades de cada momento. De esta forma se consigue que toda la informacin almacenada en la memoria
secundaria este a disposicin de la UCP como si recibiera la asimetra central y que se pueda procesar
programas cuyo tamao exceda de la capacidad real de la memoria central.
En las mquinas de la tercera generacin y las posteriores, las ferritas han sido reemplazadas por
memorias de semiconductores, fabricadas con circuitos integrados, a base de microtransistores. La ventaja de
estas memorias sobre las anteriores es que se pueden construir por mtodos industriales (y no manuales), con
las consiguientes ventajas en precio y cantidad. Todava en 1970 una computadora se consideraba grande si
dispona de 20 000 celdas de memoria (de ferrita); quince aos despus es comn que hasta una
microcomputadora tenga alrededor de 250 000, y no sorprende encontrar mquinas con tres millones o ms de
celdas de memoria de semiconductores.
Las memorias de semiconductores operan en dos configuraciones: estn alimentadas por corriente
elctrica, en tanto que las segundas requieren circuitos de refrescamiento, que reescriben la informacin
que contiene cada celda a razn de cientos de veces por segundo. Esto puede parecer raro, pero los modernos
circuitos integrados de alta velocidad se encargan de que esta funcin se realice de tal forma que ni el
procesador ni, por supuesto, el usuario se enteren.
El parmetro ms importante en una memoria es su velocidad de acceso, que mide el tiempo
transcurrido desde que el procesador central pide la informacin contenido en una celda cualquiera hasta que
sta puede ser leda (o escrita). Los tiempos de acceso de las memorias de semiconductores se miden en
unidades de millonsima de segundo.
Adems, las memorias electrnicas verifican constantemente que la informacin almacenada no se
altere o degrade, por medio de una tcnica conocida como deteccin de paridad.
El nombre genrico de estas memorias (estticas o dinmicas) es RAM (Random Access Memory,
memoria de acceso aleatorio).

44

MEMORIA ROM
Una desventaja de stas con respecto a las memorias de ferrita es que los circuitos integrados pierden
la informacin que tenan almacenada cuando se interrumpe la alimentacin elctrica. Esto obliga al diseo
de memorias no voltiles, en las que se graba informacin que ya no se pierde. estos nuevos tipos de circuitos
reciben el nombre genrico de ROM (Read Only Memory, memoria de slo lectura), y se fabrican en varias
configuraciones (PROM, EPROM, EEPROM), de acuerdo con la mayor o menor facilidad para regrabarlas
(aunque en general nicamente se emplean para lectura, y son grabadas por el fabricante de la
computadora, no por el usuario).
En trminos generales, los programas que residen en una memoria tipo ROM se conocen, en ingls
como frameware, que representa un intermedio entre los programas normales (software) y los circuitos
electrnicos (hardware). La separacin entre Hardware y software se ha borrado poco a poco debido sobre
todo a la aparicin de tecnologas de hardware programable, que reciben el nombre genrico de PAL
(Programable Array Logic) y que consisten en circuitos configurables por el diseador (o, a veces, por el
usuario), y que permiten una flexibilidad que antes no exista.
Las nuevas computadoras consisten a veces en unos pocos circuitos integrados de este tipo, que
reemplazan a varias decenas de los normales. En ingls reciben nombres como gate arrays o ASIC, y se usan
para el diseo de procesadores y arquitecturas completas.
Existe otro tipo de memoria que funciona con tcnicas magnticas especiales; durante algunos aos
se crey que este tipo de memoria reemplazara por completo a las memorias de semiconductores, pero por
motivos de economa de mercado esto an no se ha logrado.
MEMORIA VIRTUAL
La memoria virtual es un concepto que se usa en algunos sistemas computacionales grandes y que
permite al usuario construir programas como si estuviera disponible un gran espacio de memoria, aunque
realmente tenga la computadora una memoria muy pequea.
Un sistema de memoria virtual proporciona un mecanismo para trasladar direcciones generadas por
programas a localidades correctas en la memoria principal. Esto se hace de manera dinmica, mientras que la
CPU ejecuta programas. la circuitera maneja en forma automtica la traduccin o el mapeo mediante una
tabla de mapo.
Espacio de direccionamiento y espacio de memoria. A una direccin que utiliza un programador se le
llamar direccin virtual y al conjunto de tales direcciones, espacio virtual. A una direccin en la memoria
principal se la llama localidad o direccin fsica. El conjunto de tales localidades se llama espacio de
memoria. Por lo tanto, el espacio de direccionamiento es el conjunto de direcciones generado por los
programas, conforme hacen referencia a instrucciones y datos; el espacio de memoria consiste en las
localidades reales de la memoria principal que se pueden accesar directamente para procesamiento. En la
mayora de las computadoras los espacios de direccionamiento y de memoria son idnticos. Se permite que el
espacio de direccionamiento sea mayor que el espacio de memoria en computadoras de memoria virtual.
Por otra parte, aunque la capacidad real de la memoria central es reducida, se ha conseguido que,
desde el punto de vista de su funcionamiento, esta capacidad sea mucho mayor que la real, prcticamente
ilimitada, mediante lo que se denomina memoria virtual. Esta memoria virtual usa la memoria secundaria para
expandir la memoria central mediante un proceso llamado paginacin consiste en transferir trozos o paginas
de la memoria secundaria a la central cuando son necesarios e intercambiarlos por otros segn las necesidades
de cada momento. De esta forma se consigue que toda la informacin almacenada en la memoria secundaria
este a disposicin de la CPU como si residiera en la memoria principal y que se puedan procesar programas
cuyo tamao excede de la capacidad de la memoria central.

45

En un sistema de memoria virtual, se les dice a los programadores que tienen a su disposicin todo el
espacio de direccionamiento. Adems, el campo de direccin del cdigo de instruccin tiene una cantidad
suficiente de bits para especificar todas las direcciones virtuales. En nuestro ejemplo, el campo de direccin
de un cdigo de instruccin consistir en 20 bits, pero las direcciones de memoria fsicas deben especificarse
con solo 15 bits. por lo tanto, la CPU har referencia a instrucciones y datos con direcciones de 20 bits, pero
la informacin en esta direccin debe tomares de la memoria fsica, porque el acceso al almacenamiento
auxiliar para palabras individuales ser prohibitivamente largo. (recuerde que para transferencias eficientes, el
almacenamiento auxiliar mueve todo un registro a la memoria principal.) Entonces se necesita una tabla como
la que se muestra en la sig. fig. para mapear una direccin virtual de 20 bits a una direccin fsica de 15 bits.
El mapo es una operacin dinmica, lo que significa que cada direccin se traduce inmediatamente,
conforme la CPU hace referencia a una palabra.
MEMORIA CACHE
El anlisis de diversos programas nos ha llevado a la conclusin de que la CPU toma demasiado
tiempo en el acceso a la memoria principal. Esto debido a que la respuesta de la memoria para desplegar sus
datos es demasiado lenta con respecto al CPU.
En el proceso normal de cada programa ejecutado por la CPU,. este, para la ejecucin del programa
constantemente se presenta la necesidad de leer de la memoria principal la instruccin que habr de dar
seguimiento a la ejecucin del programa. Por sta razn, si almacenamos la totalidad del programa en la
memoria principal, lgicamente la ejecucin del programa tardara demasiado tiempo debido al tiempo de
respuesta de la memoria.
Esto nos lleva a la necesidad de agregar una memoria mas rpida, casi tan rpida como el CPU.
Dicha memoria es LA MEMORIA CACHE. Esta memoria tiene la caracterstica de ser casi tan rpida como
el CPU, el tiempo de acceso a la memoria cach es menor al tiempo de acceso a la memoria principal en un
factor de 5 a 10.
La idea fundamental de incorporar la cach es para que la mayor parte de las instrucciones se guarde
en la cach y as la CPU pueda leer mas rpido en la cach y que el CPU no tenga que esperar tanto la
respuesta de la memoria como lo hara con la memoria principal.
Solo que no se puede tener todo al mismo tiempo, pues hay que pagar por esta ventaja de rapidez en
el acceso a memoria. La memoria cach, es solo una pequea parte del tamao de la memoria principal. Por
esta razn tenemos que guardar solo una parte de instrucciones y datos en la cach. Los que con mas
frecuencia se acezan a la memoria. As una gran parte de las solicitudes de memoria se encontrara en la
memoria rpida cach.
Para introducir la explicacin de la memoria cach, introduciremos primero el concepto de jerarqua
de memoria. De lo cual expondremos a continuacin un esquema donde se muestra la organizacin de la
memoria.

CPU

CACHE DE
INSTRUCCIONES
CACHE DE
DATOS

MEMORIA
PRINCIPAL

DISCO
DUIRO

46

Ejemplo de jerarqua de memoria


Cuando la CPU, procesa datos o corre un programa, normalmente toma los datos o instrucciones que
corresponden al programa, de la memoria principal. Que es donde se guarda el programa.
Por sta razn se provee al CPU directamente de una memoria rpida pero pequea (pues las
memorias, mientras mas grandes, son mas lentas ). La razn de esta memoria es para que el CPU vea todo el
tiempo una memoria rpida.
Como lograr que la memoria cache, siendo tan pequea. (en la fig. sig. se muestra un ejemplo del
manejo de la memoria y como es posible que el microprocesador pueda direccionar los mismos datos que hay
en una memoria de 8 bits en una memoria pequea llamada cach de tres bits)Para poder direccionar esta
cantidad de bits, Expondremos un ejemplo con una memoria cach de 3 bits contra una principal de 8 bits.
Etiqueta
7 6 5 4 3

direccin
2 1 0

(a) direccion

de memoria

etiqueta

datos

000
001
010
011
100
101
110
111

00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111

00000

11111000
11111001
11111010
11111011
11111100
11111101
11111110
11111111

cache

(b) correlacin de cach


memoria principal
En la figura se muestra un ejemplo con tres campos los cuales estn acomodados de la
siguiente manera:
001

00000
etiqueta

memoria cach

datos

00000001
direccin
principal

datos de la
dir. principal

memoria principal

TRANSFERENCIA DE LA DIR. PRINCIPAL, 00000001 A LA CACHE 001

47

En el ejemplo de la figura anterior se demuestra como se hace la transferencia de un dato guardado


en la memoria principal con la direccin 0000001 a la direccin de la memoria cach 001. Como ya se dijo
en la pgina anterior. La memoria cach solo trabaja con tres bits y la memoria principal con ocho. La forma
de operar es la siguiente:
La memoria cach esta provista de un registro de cinco bits, los cuales son para uso del campo
denominado etiqueta. y tres bits que son los que dan las ocho posibles combinaciones de la cach. (ocho
direcciones diferentes). Esto hace que la cach trabaje en realidad con ocho bits de los cuales solo son
efectivos tres, y los cinco mas significativos solo son comparadores para diferenciar una direccin como la
00000001 de 11111001. Ntese como los tres bits menos significativos de estas dos direcciones representan la
misma direccin y lo nico que los diferencia son los cinco bits mas significativos. Estos cinco bits son los
que se generan a partir de un registro (no se consideren estos cinco bits como memoria. Solo es un registro)
incluido en la cach.

3.3 UNIDADES DE ENTRADA Y SALIDA


UNIDADES DE ENTRADA
Un procesador se comunica con el exterior por medio de interfaces que permiten la entrada y salida
de datos del procesador y la memoria; sta es la nica manera de que el procesador se comunique con el
entorno exterior a la computadora, pues es necesario emplear dispositivos de interfaz que hagan llegar la
informacin de los usuarios hacia el procesador central, as como que les muestran los datos ya procesados.
Las unidades de entrada ms comunes son las lectoras de tarjetas (que casi han desaparecido) y las
terminales de video (o pantallas). Las unidades de salida ms usuales son las impresoras y las terminales de
video. Existe gran diversidad de modelos de terminales de entrada/salida, pero la mayora utiliza los dos
mismos elementos que permiten la comunicacin entre el humano y la mquina, y una pantalla de video
(como la de un televisor) donde un carcter luminoso especial -llamado cursor- que sirve para indicar dnde
aparecer el prximo mensaje.
En lo que respecta a las unidades exclusivamente de entrada, hay que mencionar en primer lugar las
lectoras de tarjetas. El origen de las tarjetas perforadas se remonta al siglo XVIII, cuando fueron inventadas
para automatizar los telares mecnicos, reciente aportacin de la Revolucin Industrial. Para comunicarse
con la computadora por medio de tarjetas, se codifican los caracteres que van a transmitirse, como orificios en
el papel. Esto se logra por medio de la perforadora de tarjetas, que tiene un teclado similar al de una mquina
de escribir y produce una tarjeta por cada rengln de texto deseado.
Como se dijo, estas unidades casi han desaparecido, fundamentalmente, porque las computadoras
actuales se comunican de manera interactiva con el usuario (es decir, mediante un dilogo), para lo cual se
requiere una unidad que permita la comunicacin bidireccional (entrad/salida), no una unidad de entrada
exclusivamente. La opcin ms adecuada para este fin es la terminal de video ya mencionada.
Unidades de entrada Son aquellos dispositivos cuya misin es la introducir datos en la memoria central de la
computadora para su tratamiento.

48

TECLADO

Los teclados de las computadoras no difieren mucho a los de una maquina de escribir, la distribucin
de teclas es semejante (tipo qwerty). Generalmente cuentan con una seccin de teclas de funciones que
agilizan y hacen mas sencillos el uso de los diversos programas, tambin tiene una seccin de teclas con
flechas que nos permiten movernos dentro de la pantalla, invariablemente se tiene una tecla de retorno que le
ordena a la maquina ejecutar lo que se le pidi, por ultimo, diremos que algunos teclados tienen una seccin
de teclas numricas que permite digitar nmeros con mayor rapidez.
EL RATON

El ratn es una unidad de entrada constituida por una pequea caja de aristas redondeadas de forma
ms o menos ergonmica para su adaptacin a la mano, con una o varias teclas de control en su parte superior
y una bola en su parte inferior. Este dispositivo se maneja con una sola mano, de forma que su movimiento
sobre una superficie plana permite en ciertas aplicaciones tener un movimiento sinnimo en el cursor de la
pantalla ( a veces se sustituye ste por una flecha, mano o cualquier otra figura similar ); las rdenes
correspondientes se activan al pulsar una de las teclas de la parte superior. Su utilizacin en el mundo de la
microinformatica se ha extendido tanto que cualquier configuracin de computadora personal lo incluye de
forma habitual.
La gran ventaja que representa este dispositivo es la de permitir el trabajo con aquellas aplicaciones
que incluyen el uso del ratn, de forma que no se desva la vista de la pantalla.

49

MEDIOS OPTICOS

Son aquellos que se basan en propiedades pticas generalmente relacionadas con la reflexin de la
luz. En la actualidad se estn utilizando como elementos reconocedores de estas propiedades dispositivos
basados en rayos lser.
LECTOR OPTICO ( lector de barras )
En aplicaciones comerciales se utiliza cada da mas el llamado cdigo universal de productos (
universal product code - UPC ), consistente en una representacin de caracteres a base de barras de anchura y
separacin variable; tambin se le conoce con el nombre de cdigo de barras.
LAPIZ OPTICO
El lpiz ptico es un dispositivo de entrada de datos a la computadora que se utiliza, segn la
aplicacin de que se trate, por ligeros contactos sobre la propia pantalla; el funcionamiento esencial de un
lpiz ptico se basa en la deteccin de luminosidades en la pantalla. Una de las ventajas que tiene este tipo de
dispositivos es que permiten trabajar en una aplicacin sin tener que desviar la vista de la pantalla, con la
consiguiente ganancia en tiempo y atencin por parte de quien lo utilice.
SCANNER

Un scanner es una unidad de entrada de datos cuya misin es la digitalizar grficos, textos,
fotografas etc. para su posterior proceso mediante una computadora. Hoy da, esta adquiriendo mucho auge
en el manejo de imgenes y sonido con una computadora en los que se denominan entornos multimedia, y por
tanto se esta utilizando mucho este tipo de dispositivos
Los modelos mas utilizados son pequeos equipos capaces de capturar una imgenes relativamente
pequea entre el formato DIN A6 Y DIN A5. Tambin se estn implantando en el mercado equipos que
pueden digitalizar imgenes mayores.

50

3.3 UNIDADES DE SALIDA


MONITOR

Los monitores pueden ser de colores o monocromticos (verdes o mbar). Comnmente sus
dimensiones fluctan de 9 a140 pulgadas y constituyen una ventana visual de 80 columnas por 22 renglones,
esto es que en una pantalla se puede ver 1/3 o una tercera parte de una hoja tamao carta. La nitidez de la
imagen depende de la resolucin que tenga el monitor, o dicho de otra forma de la densidad de punto que
posea. Entre mas puntitos (pixeles) tenga un monitor, tanto en forma vertical como horizontal, mas claras y
ntidas se vern las letras e imgenes que aparezcan.
Para que un monitor despliegue su informacin, siempre necesitar de una tarjeta de vdeo, tarjeta
grfica. Estas tarjetas son circuitos electrnicos que comunican el bus del ordenador con el monitor. Este
adaptador suele hallarse en una de las ranuras de expansin, aunque algunos ordenadores lo tienen en la
misma placa base.
Bsicamente el adaptador consta de lo siguiente:
La memoria buffer de vdeo
El generador de caracteres.
El controlador de pantalla.
El controlador consta de varios registros de E/S programables. Tanto a estos registros, como a la
memoria de pantalla, puede acceder el microprocesador utilizando los buses de datos y direcciones. La misin
del controlador de pantalla es reproducir el contenido total parcial del buffer de vdeo a intervalos periodos
de tiempo, transformndolo en seales secuenciales que el monitor pueda entender. Esta operacin se realiza
de 50 a 70 veces por segundo y se denomina refresco de pantalla
El pxel representa la unidad de informacin dentro de la pantalla. Podemos imaginar la pantalla formada por
una matriz de puntos o pixeles: la resolucin de la pantalla est determinada por el nmero de pixeles en la
direccin vertical (columnas) multiplicado por el existente en la direccin horizontal (filas). Cuanto mayor
sea la resolucin, con mayor claridad se vern los grficos y textos que aparezcan en la pantalla.
Un pxel de la pantalla puede estar apagado o encendido en un determinado color. Ya que los tres
colores bsicos son el rojo, el verde y el azul, el color de un pxel depender de la composicin que tenga
respecto a los tres colores bsicos.
Segn los valores almacenados en los registros del controlador de pantalla, se puede trabajar en
varios modos. Cada uno de ellos definido por una resolucin de pixeles y por el nmero de colores que
pueden aparecer simultneamente en pantalla.

51

Estos modos se pueden clasificar en dos grandes grupos: de texto y grficos.


MODOS GRAFICOS
En los modos grficos es posible definir el color de cada uno de los pixeles en pantalla. Son los
modos utilizados para presentar dibujos o imgenes con geometra compleja en pantalla. En estos modos,
los pixeles se almacenan como grupos de bits en la memoria buffer de vdeo.
El color de cada pixel en la pantalla esta determinado por el valor de los bits asociados a dicho pixel.
Cuanto mayor sea el numero de bits asociados a un pixel, mayor ser el numero de colores en que dicho pixel
puede ser visualizado en la pantalla. Por ejemplo, si a un pixel se le asocia un bit, este bit puede estar a 0 o a 1
y solo puede ser visualizado en dos colores. Por el contrario, si a un pixel se le asocian dos bits, stos pueden
estar a 00, 01, 10 u 11, y el pixel se puede visualizar en 4 colores diferentes.
MODOS DE TEXTO
En los modos de texto slo se pueden representar en pantalla caracteres alfanumricos. Cada caracter
esta definido sobre una pequea matriz bidimensional de pixeles de tamao fijo; [por tanto, todos los
caracteres ocupan el mismo espacio.
Dentro de esta matriz se definen los pixeles que forman la imagen del caracter, mientras que el resto
constituyen los pixeles de fondo. En estos modos, la (resolucin alfanumrica ) se define como el producto
del numero de caracteres que pueden aparecer en una lnea de texto ( columnas ) multiplicado por numero de
lneas ( filas ) que pueden aparecer en pantalla ( fig. ) Multiplicando la resolucin alfanumrica por el tamao
en pixeles de la matriz que define un caracter se obtiene la resolucin en pixeles para dicho modo de texto.
Por ejemplo una resolucin alfanumrica de 80 X 25, en la que cada carcter se defina mediante una matriz de
pixeles de 9 x14, tendr una resolucin en pixeles de 720 X 350.
En los modos de texto, cada uno de los caracteres alfanumricos que aprese en pantalla se almacena
en dos bytes consecutivos de buffer de vdeo.
El primer byte (byte de caracter) contiene el cdigo ASCII del carcter a visualizar, mientras que el
segundo (byte de atributo) controla el aspecto con el que se visualiza dicho caracter en pantalla. Este byte esta
formado por dos grupos de 4 bits. En la tabla 1 vemos que los de orden mas bajo (bit 0 a 3) determinan <<los
atributos de imagen del caracter>>,esto es , el color y la intensidad del carcter , mientras que los 4 mas
significativos (bits 4 a 7) determinan los <<atributos de fondo>> del carcter, aunque en ciertas ocasiones el
bit 7 se emplea para controlar el parpadeo.
Utilizando unas tablas, el generador de caracteres del adaptador de pantalla se encarga de convertir
el byte de carcter en el patrn adecuado de puntos en la pantalla, mientras que los cuatro bits de atributo,
tanto para la imagen como para el fondo, son interpretados por otro circuito, denominado decodificador de
atributos,, que genera las seales que controlan el monitor de video.
Dependiendo del adaptador de pantalla que tenga instalado el PC, se puede acceder a unos
determinados modos. Cada adaptador tiene un controlador de pantalla, un decodificador de atributos y una
memoria de vdeo diferente. A continuacin se describen las caractersticas de los controladores mas usuales.
ADAPTADOR MONOCROMO (MDA).
Los primeros PC aparecidos en el mercado llevaban instalado este tipo de adaptador. Fue diseado
para ser utilizado con monitores en blanco y negro, y dispone de una memoria de 4 kbytes.
Permite trabajar nicamente en modo texto con resolucin de 80 x 25. la interpretacin que hace de
los cuatro bits de atributo, tanto para el fondo como para la imagen, es la siguiente: los tres bits menos
significativos indican el color, mientras que el bit ms significativo (1) indica la intensidad del color.

52

Ya que slo hay dos colores, blanco y negro, de las 16 combinaciones diferentes que se pueden
combinar con estos cuatro bits, slo se reconocen como vlidas las que figuran en la tabla 2. Las dos ltimas
combinaciones no representan un color diferente, sino que especifican que el carcter aparece subrayado en
pantalla. Lgicamente estas combinaciones son slo aplicables al atributo de imagen.
En la tabla 2 se supone que el bit ms significativo controla la intensidad del color. Sin embargo, si
se programa el registro de control del controlador de pantalla para activar el parpadeo, el bit ms
significativo en el atributo de fondo pasa a controlar el parpadeo del carcter. La eleccin entre fondo intenso
y parpadeo debe hacerse para todos los caracteres que aparecen en la pantalla, de modo que no es posible que
en la pantalla aparezcan simultneamente ciertos caracteres parpadeantes y otros en fondo intenso.
I COLOR
0000
0111
1111
0001
1001

PRESENTACION
Negro
Blanco
Blanco intenso
Blanco subrayado
Blanco intenso subrayado

ADAPTADOR GRAFICO EN COLOR (CGA)


Esta fue la primera tarjeta desarrollada para los PC que permita presentaciones en color. Posee una
memoria de 16 Kbytes.
En modo texto tiene una resolucin de 80 x 25 con 16 colores, tanto para el carcter o para el fondo.
La interpretacin que hace de los 4 bits de atributo, tanto para la magen como para el fondo, es la siguiente:
Los tres bits menos significativos de cada grupo de cuatro bits estn relacionados con la presencia
(valor 1) o ausencia (valor 0) de uno de los tres colores bsicos : rojo , verde (V) y azul (A).
El cuarto bit (I) controla la intensidad del color. de esta forma, son posibles 16 colores diferentes en
pantalla, tanto para el carcter como para el fondo, correspondientes a las 16 posibles combinaciones que se
pueden realizar con los 4 bits (I-R-V-A), tal como se muestra en la tabla 3.
IRVA
0000
0001
1010
1011
1100
1101
1110
1111

COLOR
Negro
Azul
Verde claro
Cyan claro
Rojo claro
Magenta claro
Amarillo
Blanco intenso

Al igual que en el caso del adaptador ( MDA ), el bit 7 del byte de atributo puede utilizarce para
controlar el parpadeo en vez de la intensidad de fondo. En este caso, solo son posibles los 8 primeros colores
de la tabla anterior para el fondo del caracter.

53

En modo grfico del CGA de 320 X 200, cada pixel se representa mediante 2 bits en la memoria
buffer de pantalla. Por tanto, los atributos de 4 pixeles se almacenan en un byte, es decir, en una posicin de
memoria de buffer de video. Ya que se dedican 2 bits a cada pixel son posibles 4 colores diferente. Estos
colores pueden elegirse entre 2 grupos, denominados paletas vase tabla ?.
BITS
00
01
10
11

PALETA 0
Color de fondo
Verde
Rojo
Marron

PALETA 1
Color de fondo
Cyan
Magenta
Blanco

El color de fondo puede elegirse entre cualquiera de los 16 posibles, siendo el negro el color por
defecto. Tanto la eleccin de la paleta como del color de fondo se realiza programando adecuadamente el
registro de atributos del controlador de pantalla.
En el modo grfico de 640 X 200 se utiliza un bit para representar cada pixel, por lo que solo se
pueden utilizar dos colores ( 1 pixel encendido, 0 pixel apagado ). Cada posicin de memoria del buffer de
video almacena los atributo de 8 pixeles.
En los modos grficos tambin se puede visualizar texto. El procedimiento no es tan sencillo como
en los modos de texto, donde a partir de una tablas almacenadas en la ROM de la tarjeta el circuito generador
de caracteres se encarga de transformar los cdigos ASCII en patrones de pixeles en pantalla.
En los modos grficos hay que almacenar el estado de cada uno de los pixeles (patrn de pixeles )
que definen un caracter en el lugar adecuado del buffer de video.
ADAPTADOR MEJORADO DE GRFICOS ( EGA )
Esta tarjeta permite trabajar con todos los modos de funcionamiento de CGA y MDA, pero adems
aade nuevos modos de texto y grficos, con la posibilidad de utilizar simultneamente 16 colores de una
paleta de 64. Esta ampliacin en el nmero de colores se debe a que esta tarjeta es capaz de generar 6 seales
digitales que controlan el color en un monitor EGA. Tres de ellas se corresponden con los colores bsicos en
intensidad alta (R-V-A), mientras que las otras tres se corresponden a los colores bsicos en intensidad baja
(r-v-a).
Con estas 6 seales se puede realizar un total de 26 = 64 combinaciones diferentes, cada una de las
cuales da lugar a un color o intensidad diferente en la pantalla.
El nuevo modo texto en 16 colores tiene una resolucin alfanumrica de 80 X 25, y cada caracter est
definido en una matriz de 8 X 14, lo que da lugar a una resolucin en pixeles de 640 X 350.
En el modo grfico de 640 X 350 y 16 colores se dedican 4 bits para indicar el atributo de un pixel.
Por lo tanto un pixel puede visualizarse en 16 colores diferentes. Al igual que en el modo alfanumrico, los 4
bits de atributo seleccionan uno de los 16 registros de paleta donde se encuentra definido un determinado
color.
ADAPTADOR VGA (Video Graphic Array)
La firma IBM lanz al mercado con sus modelos personal/2 un nuevo estndar grfico que supuso un
avance en la calidad de la representacin. Por un lado, mejora la resolucin de la pantalla con nuevos modos,
tanto grficos como de texto, y por otro, es capaz de representar 256 colores simultneamente de un conjunto
de 262.144 tonalidades diferentes.
El adaptador VGA viene equipado con una memoria de 256 Kbytes y con un bus de datos de 8 a 16
bits. La tarjeta es compatible con cualquiera de los adaptadores que le preceden (MDA, CGA, EGA), de modo
que el software desarrollado para estas tarjetas puede ser utilizado sin problemas.

54

La diferencia fundamental de esta tarjeta con las anteriores es la manera de transmitir la seal al
monitor de video. Mientras que los adaptadores anteriores enviaban para cada color bsico una seal digital
que indicaba la presencia o ausencia de un determinado componente de color, la tarjeta VGA enva para cada
color una seal analgica, cuyo valor puede estar comprendido entre 64 niveles diferentes. De una forma
elemental podramos decir que mientras la transmisin digital solo informa de si hay rojo o no rojo , la
transmisin analgica puede matizar entre si ha rojo o bastante rojo , poco rojo o nada de rojo en
una escala de 64 posibles tonalidades de rojo.
En el modo de texto de 720 X 400 con 16 colores, la descodificacin de los 4 bits asociados al
atributo de imagen o fondo es similar al empleado por EGA aunque algo mas complejo, ya que interviene un
registro del controlador de VGA denominado registro de seleccin de color .
En el modo grfico de 320 X 200 en 256 colores, cada uno de los pixeles viene definido por un
atributo de 8 bits. As un pixel puede visualizarse en uno de 28 = 256 colores diferentes.
TARJETA SUPER VGA
Durante los ltimos anos, numerosos fabricantes compiten por ofrecer nuevos adaptadores grficos
cada vez mas sofisticados. Ampliando la memoria de video de 256 Kb a 512 Kb es posible obtener
resoluciones de 800 X 600 en 256 colores, as como de 1024 X 768 en 16 colores. si la memoria se amplia a 1
Mb es posible obtener aun mayor numero de colores. Esas resoluciones, a diferencia de VGA, no estn
normalizadas. Para que una aplicacin pueda trabajar con ellas es necesario un programa driver de pantalla
especifica para dicha aplicacin y tarjeta. Varios fabricantes de tarjetas se han puesto de acuerdo para unificar
la resoluciones mas altas, dando lugar al estndar VESA ( video electrnics standars asociation ). Sin
embargo, este estndar no ha llegado a imponerse.
IBM a desarrollado una tarjeta grfica de 32 Bits denominada XGA ( por Extended Graphics Array ),
que puede instalarse en un bus MCA del PS/2. Es un estndar compatible VGA, con prestaciones y
resoluciones adicionales con ella se pueden obtener resoluciones de 1024 X 768 en 256, y en resolucin VGA
de 640 X 480 pueden llegar a alcanzarce 65.536 colores diferentes. Para trabajar con esta resoluciones de una
forma eficiente hay que controlar la memoria de video con un procesador adicional que se encuentre en la
propia tarjeta de video. El procesador principal solo se tiene que encargar de dar la instruccin necesaria ( por
ejemplo, trazar un polgono o rellenar un rea de color ) y el procesador grfico se ocupara de gestionar la
memoria para que dicha instruccin sea ejecutada, dicha tarjeta 8514/A de IBM, que puede ser utilizada en
ordenadores con bus MCA ( micro channel).
IMPRESORAS

Las unidades exclusivamente de salida estn representadas por una amplia gama de impresoras, que
van desde las sencillas y relativamente lentas hasta impresoras computarizadas de muy alta velocidad. Las
impresoras lentas por lo general funcionan con un mecanismo parecido al de una mquina de escribir elctrica
comn, y son capaces de imprimir hasta diez caracteres por segundo, lo que significa que llenan una hoja
tamao carta en aproximadamente dos minutos.
Las que siguen en velocidad imprimen a razn de cuarenta hasta trescientos caracteres por segundo
y, en general, utilizan un mecanismo de generacin de cada carcter por medio de un conjunto de puntitos de

55

tinta, que recibe el nombre de matriz. La calidad de la letra impresa no es muy buena, pues los puntitos que
forman cada carcter son visibles y hacen la letra menos legible que la de una mquina de escribir comn.
Por su precio relativamente bajo, usualmente estn asociadas con las micro y minicomputadoras. Una de
stas mquinas puede llenar una hoja tamao carta en treinta segundos de trabajo.
Las impresoras para computadoras grandes son capaces de producir textos de calidad comparable a la
de una buena mquina de escribir, a razn de trescientas hasta mil lneas por minuto, lo que permite llenar una
pgina tamao carta en pocas decenas de segundos. En estas mquinas, los tipos estn montados en una
cadena que gira a gran velocidad, por lo que reciben el nombre de impresoras de cadena.
Existen enormes impresoras (a veces ms costosas que la computadora misma), capaces de imprimir
varias decenas de miles de lneas por minuto, esto es, imprimen una hoja tamao carta en un segundo o
menos.
La complejidad de estos equipos es tal que generalmente estn controlados por una computadora
dedicada exclusivamente a ellos.
El mecanismo de impresin es por medio de microscpicas gotas de tinta que un can lanza
hacia el papel, para que dibuje cada uno de los caracteres de impresin. En algunos casos este flujo est
controlado por un rayo lser que lo gua hacia su destino final en la hoja. Su velocidad es tal que, por
ejemplo, si se requiere obtener un documento con varias copias, resulta ms barato y rpido imprimir
originales que obtener copias por otro medio.
Cada vez son ms comunes unas impresoras de mediana velocidad y capacidad que imprimen texto y
grficas de excelente calidad, y cuyo principio de funcionamiento es similar al de las fotocopiadoras, con la
diferencia de que en estas impresoras es un rayo lser el que graba temporalmente la imagen a reproducir en
el mecanismo entintador. Se espera que su precio contine bajando, y tal vez pronto se conviertan en las
impresoras usuales en aplicaciones que no requieren gran volumen de impresin. Estas impresoras de lser (y
el software apropiado) han dado lugar al nacimiento de los llamados sistemas de edicin por computadoras,
en los que una microcomputadora dotada de una terminal de gratificacin y de una impresora de lser es
capaz de producir material grfico y textos comparables en calidad y versatilidad a los que se obtienen en una
pequea imprenta. Los programas que sirven para estos fines se conocen como procesadores de palabras.
Aunque cada procesador de palabras tiene caractersticas particulares todos son capaces, al menos, de alinear
el texto a la derecha automticamente, centrar ttulos, llevar la cuenta de las pginas, poner notas al pie,
encabezamientos, etc.
Mas an, mediante las impresoras de lser es perfectamente factible que la computadora, con los
programas adecuados, se encargue no slo de la formacin del texto, sino del diseo mismo de los caracteres
que lo componen, usando complejas tcnicas que combinan el tradicional arte de la creacin y el dibujo de
letras con las funciones matemticas que las describen rigurosamente. Los programas dedicados
especficamente a la impresin de textos y frmulas matemticas, que poco a poco tomarn el lugar de los
mtodos tradicionales, han dado lugar a todo un nuevo campo llamado tipografa matemtica.
Otra de las capacidades de los equipos de cmputo actuales es la de representar la informacin de
salida por medio de grficas y dibujos. Las unidades especiales para estos fines reciben el nombre genrico
de graficadores, y los hay de varios tipos, desde los muy sencillos hasta los altamente complejos y costosos.
Cualquiera que haya dibujado una grfica con una mquina de escribir sabr que el problema
principal que se representa es el de la resolucin; esto es, la capacidad de representar puntos discretos lo
suficientemente cercanos entre s para que aparenten continuidad. Uno de los parmetros principales para
calificar un graficador, entonces, es la resolucin.

56

Es posible convertir una pantalla de video en una terminal grfica aumentando su resolucin para que
permita representar curvas y lneas a voluntad. Slo es cuestin de escribir los programas adecuados para
poder dibujar planos, mapas y figuras en tres dimensiones, de acuerdo con los principios establecidos en la
geometra proyectiva (tarea que no es sencilla). De la misma forma es posible dibujarlos en papel, por medio
de graficadores que mueven una o varias plumas sobre una hoja. El control del movimiento est, por
supuesto, gobernado por un programa que la UCP ejecuta.
Los grandes graficadores (como los que dibujan los mapas topogrficos) son computadoras
especiales que reciben como entrada una cinta magntica que contiene millones de rdenes especiales,
producidas por la computadora central, y que manejan cinco o ms plumas de colores diferentes a enorme
velocidad y resolucin. Es tal la velocidad a la que dibujan, que la tinta tiene que ser bombeada hacia la
pluma, ya que no llegara a tiempo si simplemente fluyera por gravedad.
Por medio de programas especiales (llamados paquetes de gratificacin) es posible observar planos y
diagramas complejos en una terminal de video, y moverlos, rotarlos, cambiarlos de escala y manipularlos a
voluntad para manejar piezas de ingeniera mecnica o planos de arquitectura, por ejemplo, antes de que
existan en realidad.
El campo que abarca todo esto, y que abre enormes posibilidades para el diseo grfico, tipogrfico y
arquitectnico, recibe el nombre de diseo auxiliado por computadora o CAD (Computer Aided Design), y las
terminales de gratificacin especiales para este fin se conocen como estaciones de trabajo.
En trminos generales, es posible conectar virtualmente cualquier aparato a una computadora, para
que funcione como unidad de entrada/salida. Es decir, una unidad de entrada puede ser, por ejemplo, un
termmetro que controla cierto proceso que dependa de la temperatura. Siguiendo con este ejemplo, la
unidad de salida puede ser un motor elctrico que abre o cierra vlvulas que logran el control del proceso en
cuestin. En estos casos, el dispositivo est conectado a un convertidor analgico/digital (A/D), que pasa la
informacin analgica (cambios de temperatura) a informacin digitalizada (binaria), para que la
computadora pueda procesarla. En la salida se requiere un convertidor digital/analgico (D/A), que realiza la
operacin inversa.
En los ltimos aos han surgido sistemas de sntesis de voz en los que la salida de la computadora es
en forma hablada, que se genera por medios electrnicos a partir de textos producidos por un programa. Es
decir, en lugar de que la mquina imprima letras en una hoja de papel, una bocina emite sonidos que semejan
la voz humana y que, con los avances tecnolgicos, son cada vez mejores en cuanto a modulacin y
entonacin. Es preciso aclarar que no se trata de voz humana, esto es, no est hecha de fragmentos
pregrabados, sino que es el producto final de un complejo proceso electrnico de sntesis, basado en un
enorme caudal de teora matemtica. A la entrada del convertidor digital/analgico llegan bits de informacin
que son traducidos a fonemas y luego emitidos con su sonido correspondiente, con lo que es posible generar
casi cualquier combinacin de articulaciones. Se requiere, por supuesto, de un conjunto de programas para la
microcomputadora especial para este proceso pueda emitir palabras comprensibles a partir de textos.
El proceso inverso, que la entrada a una computadora sea por medio de voz humana que se traduzca
a bits de informacin, es enormemente ms complejo, y aun los sistemas ms acabados son tan slo capaces
de reconocer un conjunto limitado de palabras (pronunciadas, adems, por la misma persona y en forma
pausada). Los obstculos tericos que hay que vencer para lograr la comunicacin completa son de tal
complejidad que se requiere de avances y descubrimientos substanciales tanto en matemticas como en las
ciencias del lenguaje.
La tecnologa digital tambin comienza a hacer su aparicin en las tcnicas musicales, y existe ya un
conjunto de estndares para intercomunicacin entre instrumentos musicales electrnicos (sintetizadores,
percusiones electrnicas, etc.) llamado MIDI (Musical Instrument Digital Interface), que ya es de amplia
utilizacin en las nuevas generaciones de dispositivos musicales, y que permite que una computadora controle
el desempeo de un instrumento en forma automtica, as como que grabe en un diskette informacin musical
digitalizada.

57

Por otro lado, el control de procesos en tiempo real es otro gran campo de accin de las
computadoras. Muchas mquinas - herramienta de reciente diseo integran uno o varios microprocesadores
para que tomen decisiones al momento sobre el proceso que controlan. Supngase, por ejemplo, una
cortadora de rollos de papel controlada por un microprocesador. Tendr una sensor ptico que servir de
unidad de entrada, y que supervisar la exactitud de los cortes. Cualquier desviacin de la lnea paralela que
tiene registrada como patrn (representada, por ejemplo, por un haz de luz) ser inmediatamente traducido
por el convertidor A/D a seales digitales que el procesador analizar por medio de un programa. El resultado
de esto ser un conjunto de rdenes que hagan que la cuchilla se mueva algunas dcimas de milmetro para
mantener el corte deseado. Estas rdenes digitales debern ser traducidas por un convertidor D/A para que
muevan el servomotor que controla a la cortadora.
Como sta, existen muchas nuevas aplicaciones de la computadora para controlar mltiples procesos.
Lo que hasta hace poco se lograba por medio de complicados anlisis matemticos (parte de la llamada teora
del control), ahora se realiza con microprocesadores que vigilar que determinado proceso no se aparte
demasiado de lo estipulado como funcin de salida. Y esto ocurre gracias a la retroalimentacin que las
unidades especiales de entrada/salida (y sus correspondientes convertidores) hacen posible.
En principio, cada vez que un dispositivo de entrada/salida intenta enviar a la memoria un byte (o
recibirlo) ocurre, como se ha dicho, una interrupcin: el procesador central abandona momentneamente el
proceso que estaba ejecutando y se dedica a atender al dispositivo que interrumpi, para luego proseguir con
lo que estaba haciendo. Esto puede resultar inconveniente si el volumen de operaciones de entrada/salida es
grande (y ms aun cuando se trata de los dispositivos de memoria auxiliar que se describen a continuacin),
por lo que con el avance de la microelectrnica casi todas las computadoras actuales disponen de complejos
circuitos que se encargan de la transferencia de datos entre los dispositivos perifricos y la memoria central,
sin interrumpir constantemente al procesador central. Este mtodo de acceso directo a la memoria (y los
circuitos encargados de lograrlo) se conoce como DMA (Direct Memory Access).
Como ltimo ejemplo de la gran variedad de unidades de entrada/salida que puede tener una
computadora, se mencionar que en los grandes centros de cmputo se conecta una microfilmadora como
unidad adicional de salida, para reproducir por medios fotogrficos el gran volumen de informacin que
normalmente aparecera impresa en papel.

IMPRESORAS DE IMPACTO
Las impresoras son perifricos de salida de gran importancia por su capacidad de plasmar en papel la
informacin de la computadora. Existen impresoras de varios tipos, cada una con sus cualidades y
limitaciones.
IMPRESORAS DE MARGARITA
Su cabeza de impresin es una margarita que en sus hojas contiene caracteres preformados en
relieve. Para la impresin de cada carcter se precisa de un giro de la margarita. Al encontrarse el carcter
delante del martillo, ste lo golpea produciendo la impresin.
En la mayora de los casos estas impresoras poseen ms de una margarita. Estas se pueden
intercambiar para obtener una impresin con distintos tipos de letras.
Esta impresora es muy lenta debido a sus caractersticas, consiguindose velocidades de 50 cps.
(caracteres por segundo ), y pertenece al grupo de las impresoras de caracteres.

58

IMPRESORAS DE BOLA
Consta de una cabeza de impresin en forma de bola en la que se encuentra preformado en relieve
inverso un juego de caracteres. La bola tiene dos movimientos, uno circular y otro basculante, que permiten
la confrontacin de cada carcter con la posicin a imprimir; obtenida dicha confrontacin, se produce un
golpeo por medio de un martillo que a travs de un calco imprime el carcter deseado. Tambin se trata de
una impresora de caracteres cuyas velocidades oscilan alrededor de los 30 cps.
IMPRESORA DE BANDA
Llevan una banda de poca resistencia en la que aparecen preformados unos o ms juegos de
caracteres. La banda es intercambiable y permite seleccionar el tipo de letra deseado. Tambin pertenece al
grupo de impresoras de lneas y se consiguen velocidades de 1600 1pm, equivalentes a 211200 cpm o 3520
cps.
IMPRESORAS DE MATRIZ DE PUNTOS
Consta de una cabeza de impresin en la que, por medio de unos electroimanes que llevan en su
interior unos punzones, se configura el carcter a imprimir. Existen muchos tipos de cabeza de matriz de
puntos con distintas cantidades de punzones. Incluso se presentan impresoras con ms de una cabeza de
matriz de puntos. Este tipo de impresoras pertenecen al grupo de impresoras de caracteres si tienen una sola
cabeza y al de impresoras de lneas si poseen mas de una cabeza de impresin. Las velocidades que se
obtienen oscilan entre los 80 y 400 cps.
Su impresin es producida por un caoncito que impulsa una serie de agujas contra la cinta
entintada, por ello cada letra impresa esta construida por una serie de puntitos. Hasta ahora este tipo es el mas
comn en el mercado.

IMPRESORAS DE NO IMPACTO
IMPRESORAS DE CHORRO DE TINTA.

Esta impresora utiliza tinta liquida que sale por una boquilla en forma de gotitas. La tinta se carga
elctricamente y esta guiada hacia el papel por medio de placas de desviacin, para formar el carcter
deseado. La calidad de la impresin es muy buena debido al numero de gotitas que forman cada carcter y al
complejo dispositivo de recogida de gotitas restantes que posee. En este caso el tipo de letra tambin puede
ser controlado por programa. Estas impresoras se consideran de paginas y son las mas rpidas. Se consiguen
velocidades de hasta 40000 lneas por minuto (lpm) o, lo que es igual, 5280000 caracteres por minuto (cpm )
o 88000 caracteres por segundo (cps ).

59

IMPRESORAS LASER.

La impresora lser utiliza un mecanismo, de impresin xerogrfico con una fuente de luz producida
por un rayo LASER. Este carga elctricamente una superficie fotoconductora a la que se adhiere un polvo
especial ( toner ) que al fundirse con la aplicacin de calor forma los caracteres deseados. Actualmente este
tipo de impresoras han irrumpido fuertemente en el mercado debido a su relacin calidad/precio. Pertenecen
al grupo de impresoras de paginas y se consiguen velocidades de hasta 20000 ( lpm )que equivalen a 2640000
( cpm ) o 44000 (cps). En impresoras pequeas se mide la velocidad en paginas por minuto y son velocidades
muy tpicas las que oscilan entre 6 y 12 paginas por minuto (ppm). En estas impresoras el tipo de letra puede
venir definido en la misma o ser configurado por programa de tal forma que admiten una gran variedad de
tipos y tamaos.
GRAFICADORES O PLOTTERS
Funcionan asemejndose mas a un pintor que a un impresor, por lo que constituyen una excelente
opcin para hacer grficas y dibujos de diversos colores y con una alta calidad.
Para cada uno de estos conceptos hay que evaluar diversos factores como: la velocidad, capacidad de
gratificacin, calidad de impresin, numero de copias que se obtienen, opcin de ancho de forma que se
usara, ruido que generan y precio.
DIGITALIZADORES.
Los digitalizadores son dispositivos capaces de digitalizar dibujos o planos, de forma que estos
puedan ser procesados por una computadora. Se constituyen por una tableta donde aparecen una serie de
grficos y ordenes estndar que permiten, mediante un pequeo lpiz o punzn, ir seleccionando figuras,
ordenes de resolucin o ampliacin, etc., con las cuales puede realizarse un diseo que permanecer en
memoria externa para su posterior tratamiento. Una de las utilidades mas importantes de estos dispositivos es
su empleo para aplicaciones CAD ( computer aide disign ) de diseo asistido por computadora.
OTRAS UNIDADES DE ENTRADA Y SALIDA
LECTORAS DE DISCOS MAGNTICOS
Estas unidades se utilizan para el manejo de los discos magnticos, que puede ser fijos o remobibles;
es decir, el disco o paquete del disco puede venir en la unidad de manera insustituible, denominndose en este
caso disco fijo, o puede ser sustituido en cualquier momento, en cuyo caso recibe el nombre de disco
remobible. Estas unidades constan

60

EL MODEM
Contraccin de modulador - demodulador, transforman la seal digital en analgica y viceversa
mediante algn tipo de modulacin. Tambin se ocupan de controlar la calidad de la comunicacin detectando
y en algunos casos corrigiendo los errores que se producen. Pueden ser internos o externos segn su ubicacin
respecto de la terminal.

Seal Analogica
Seal Digital

3.4

UNIDADES DE MEMORIA AUXILIAR

Como la memoria central de una computadora es costosa y escasa, se vuelve necesario tener reas
adicionales de almacenamiento para guardar grandes cantidades de informacin de manera ms econmica.
Adems, la memoria central pierde los datos almacenados al interrumpirse el suministro de corriente elctrica,
por lo que resulta poco prctico utilizarla para almacenamiento permanente de datos.
Estas y otras razones dan lugar a la creacin de unidades perifricas de memoria que reciben, en
conjunto, el nombre de memoria auxiliar o secundaria. Los medios fsicos ms comunes para almacenar
informacin en estas unidades son las cintas y los discos magnticos. El funcionamiento de estos aparatos es
similar al de las cintas de audio (cassettes o cintas de carrete); esto es, los datos que se van a guardar en la
cinta se representan mediante seales magnticas que se reproducen y graban empleando una cabeza
lectora/escritora.
La informacin residente en cualquiera de estos medios magnticos recibe el nombre genrico de
archivo. Un archivo est formado por un nmero variable de registros, generalmente de tamao fijo, que
pueden contener datos (numricos o alfabticos) o programas fuente escritos en algn lenguaje de
programacin. Los archivos que contienen programas, por lo comn, son elaborados por el programador
(digitados en una terminal de video), mientras que los de datos, sobre todo cuando son grandes, son
introducidos a la computadora por mecangrafos especializados llamados capturistas. Normalmente se hace
referencia a los archivos empleando sus nombres simblicos, asignados previamente por el programador.
Existen bsicamente dos tipos de unidades perifricas magnticas: unas en las que la informacin se
lee/graba de manera secuencial, y otras donde el acceso a los datos es directo o aleatorio, es decir, sin
importar el orden de lectura o escritura. El primer caso est representado por las cintas, y el segundo por los
discos.

ALMACENAMIENTO SECUENCIAL
Las cintas magnticas suelen manejarse en tres presentaciones:
magntico.

carrete, casette y cartucho

La informacin se almacena en una cinta magntica grabando cada byte (consistente en ocho bits) a
lo ancho de la misma: los bits del 0 al 7 irn ocupando posiciones sobre una lnea vertical hasta llenar todo el
ancho de la cinta. De esta manera, los bytes se van acomodando uno por uno, a lo largo de la cinta magntica.
El nmero de bits que caven a lo ancho determina el nmero de pistas (o canales) de la unidad de cintas.
Actualmente casi todas las mquinas de carrete usan nueve pistas, aunque todava se usan de siete. Si el
nmero de pistas es menor que el nmero de bits en el byte (por ejemplo, para una cinta de siete pistas), se
graban stos divididos en grupos de cuatro o seis, con un bit - el sptimo - como separador.

61

Generalmente, la ltima pista de la cinta se emplea para almacenar un bit de control - llamado de
paridad, que sirve como verificador de la consistencia de la informacin. Existen dos tipos de paridad: par e
impar. En la paridad par, el ltimo bit se escribe como 1 si es que en los ocho anteriores (para el caso de
nueve pistas) existe un nmero non de unos, de modo que el nmero final de bits en 1 sea par. En la paridad
impar sucede lo contrario. Ambos tipos de paridad sirven para detectar la prdida de informacin de un bit.
Si una cinta, por ejemplo, est codificada con paridad par, ser fcil detectar errores simplemente verificando
que los canales tengan una cantidad par de bits en 1. Esta tcnica tambin se usa en las memorias de
semiconductores, para verificar que la informacin no se altere de manera accidental.
El nmero de bytes (o caracteres) que se pueden almacenar en una pulgada de cinta magntica
determina la densidad de grabacin, que se mide en cpi (caracteres por pulgada) o bpi (bits por pulgada), a lo
ancho de la cinta. Un carcter por pulgada es equivalente a un bit por pulgada.

CARACTERES
C
A
N
A
L
E
S

0
1
2
3
4
5
6
7
P

110
100
010
100
001
111
101
001
110

Las densidades tpicas de grabacin para cintas de carrete son de 800 o 1600 bpi. Entonces, en una
cinta de 2400 pies de longitud, a 1600 bpi, cabran 1600 x 2400 x 12 = 46 080 000 caracteres (12 porque hay
ese nmero de pulgadas en un pie).
Lo anterior, sin embargo, no es correcto, por la siguiente consideracin. Si la cinta se mueve a 45
pulgadas por segundo (que es una velocidad comn), entonces pasarn bajo la cabeza lectora/grabadora 45 x
1600 = 72 000 caracteres por segundo. Por lo general, este nmero es mucho mayor que la cantidad que la
unidad de ciertas puede manipular cada vez, y ser tambin mucho mayor que lo pedido por una sola
operacin de entrada/salida, por lo que hay que adecuar la cantidad de caracteres que se pueden leer en un
segundo a las capacidades de almacenamiento en memoria de la UCP. Esto se logra dando formato a la cinta
magntica; esto es, dividindola en registros y bloques. Un registro es la cantidad de bytes que la unidad de
cintas puede leer/escribir en una sola operacin; por lo comn, es del orden de unos miles de bytes.
Pero ahora existe otro problema: debido a la inercia, es imposible que el motor de la unidad de
cintas se detenga exactamente donde termina un registro y comienza el siguiente, por lo que hay que dejar un
tramo de cinta sin grabar para evitar que el desplazamiento de la cinta (al frenarse el movimiento) haga que la
cabeza lectora pierda su posicin. Estos huecos en la cinta reciben en ingls el nombre de inter - record gaps,
y comnmente miden entre 0.5 y 1 pulgada. Est claro que, entonces, el nmero de caracteres que caven en
una cinta se reduce casi a la mitad.
Por otra parte, cuando la informacin que se va a grabar en la cinta consiste en agrupamientos de
pocos bytes (por ejemplo, nombres de personas con diez o doce letras) es necesario reunirla con la dems
informacin del mismo tipo, para evitar desperdiciar (en inter-record gaps) casi toda la cinta. Estos
agrupamientos de informacin (lgicos, no fsicos) son los bloques en que se divide la cinta al darle formato.
As, cuando se dice que est bloqueada, se quiere decir que al leerla hay que separar, por medio de un
programa, lo que previamente fue agrupado para no desperdiciar espacio. Este es un requerimiento que casi
todas las computadoras resuelven mediante un conjunto de programas que forma parte del sistema operativo.

62

En lo que respecta a los cassettes y los cartuchos magnticos, el tratamiento de la informacin es


semejante, cambiando nicamente la cantidad de canales y las densidades de grabacin y velocidades de
movimiento de las cintas. En los cartuchos se manejan densidades de 6250 bpi, por lo que en un paquete de
aproximadamente 15 x 8 x 2 cm caven varias decenas de millones de caracteres.
No ocurre as con los cassettes, usados por las microcomputadoras de bajo costo y poca demanda de
informacin, debido a que permiten una baja densidad de grabacin, a poca velocidad.
La principal caracterstica del almacenamiento secuencial consiste precisamente, en que slo es
posible leer, por ejemplo, el registro nmero 10 despus de haber ledo -e ignorado - los nueve primeros. Esto
puede ser grave cuando se trata del registro nmero 15 000 porque hay que esperar a que la cinta se mueva
varias decenas de metros, con una considerable prdida de tiempo. Pinsese tan slo que mientras la cinta da
algunas pocas vueltas, el procesador puede ejecutar varios millones de instrucciones, por lo que es deseable
disponer de mtodos de acceso ms rpidos.

ALMACENAMIENTO DIRECTO
Los discos son el medio que con mayor frecuencia se utiliza para esta forma de leer/grabar la
informacin, y los hay en diversas presentaciones: discos rgidos fijos, discos rgidos removibles y pequeos
discos flexibles llamados diskettes. En trmino generales, las unidades de acceso aleatorio son ms costosas
que las de acceso secuencial, pues los circuitos electrnicos requeridos para el movimiento de las cabezas
lectoras/grabadoras son complejos y de gran precisin.
Diskette

Un disco rgido consiste en uno o ms platos o superficies magnticas (casi siempre se emplean las
dos caras de cada plato, con excepcin del primero y ltimo), montados junto con otros sobre un eje comn.
Para cada superficie existe una cabeza lectora/grabadora montada en una brazo que puede desplazarse en
sentido radial, es decir, acercndose o alejndose del centro del disco, que gira constantemente a gran
velocidad.
En cada superficie, los datos se almacenan en pistas, organizadas como crculos concntricos. Cada
pista, a su vez, est dividida en porciones llamadas sectores. Visto por sectores, el funcionamiento de los
discos es similar al de las cintas magnticas, ya que en cada uno la informacin se almacena de manera
secuencial. La diferencia consiste en que en el disco la cabeza s puede ir directamente de una pista a otra
(moviendo el brazo hacia o desde el centro) y, una vez en una pista, puede dejar pasar sectores (recurdese
que el disco gira constantemente) hasta que llegue al sector deseado.
Viendo el disco por arriba, todas las pistas de los diferentes platos que lo componente estn alineadas
(es decir, ocupan la misma posicin en planos paralelos entre s), y se conocen como cilindros. Un cilindro,
entonces, es a un disco completo lo que una pista es a una de sus caras. As, un disco que tenga 8 superficies
con 1024 pistas cada una, por ejemplo, tendr 1024 cilindros, aunque el nmero total de pistas ser 8 x 1024.
Los parmetros para calificar una unidad de discos son la velocidad de rotacin (y, por tanto, el
tiempo que toma localizar una seccin del disco, llamado tiempo de latencia) y el tiempo que el brazo tarda
en moverse entre pista y pista (llamado tiempo de acceso, seek - time en ingls). Por lo comn, los discos
rgidos tienen ms capacidad que las cintas, adems de su muy superior velocidad.
Para dar un ejemplo, una unidad sellada de disco rgido fijo de tecnologa conocida como
Winchester, almacena 140 MB de datos, tiene cinco platos de 5 pulgadas de dimetro cada uno, gira a una

63

velocidad de 3600 rpm, con un tiempo de latencia de 8 milisegundos (ms) y un tiempo de acceso de 28 ms en
promedio para cada una de las 1024 pistas que incluye cada una de sus 8 superficies.
Cuando el disco magntico puede ser retirado de la unidad (y reemplazado por otro), se trata de
discos removibles (packs), lo que permite formar verdaderas bibliotecas de ellos, como ocurre con las cintas.
Los discos fijos presentan el problema de que si se daan, la informacin contenida en ellos se pierde, por lo
que en general suelen respaldarse peridicamente en varios carretes o cartuchos de cinta magntica. esta
operacin de respaldo se conoce en ingls como backup o dump.
Los discos flexibles, por otro lado, son pequeos platos de material plstico que almacenan entre
doscientos mil y un milln de caracteres, a velocidad relativamente baja y con poca densidad. Su ventaja est,
por supuesto, en el precio, ya que cuestan mucho menos que los discos rgidos. Se usan sobre todo en micro y
minicomputadores. La principal diferencia operativa con respecto a los descritos lneas atrs es que en las
unidades de diskettes, la cabeza lectora/grabadora est apoyada fsicamente sobre la superficie del disco,
mientras que en los otros vuela por encima del plato, a una milsimas de pulgada. Esto significa que los
discos flexibles se desgastan con el uso (igual que las cintas) mientras que los rgidos son virtualmente
indestructibles bajo operacin normal.
Ya sea por medio de discos o cintas, servir como almacenamiento de largo plazo no es la nica
funcin de la memoria secundaria. Desempea un papel ms interesante: servir de apoyo a la memoria
central, entonces se puede pensar en llevar y traer a gran velocidad informacin entre los discos magnticos y
la memoria central, para aparentar ante el sistema que la memoria central es mucho ms grande de lo que
realmente es.
Una instalacin tpica pequea, con un microprocesador de 16 bits, suele tener hasta 512 KB de
memoria central, y unidades de diskettes para almacenar unos 500 KB en cada uno. Una mquina mediana
usualmente tiene 1 MB o ms de memoria central, y unidades de disco rgido que almacenan 80 o ms
megabytes. Una computadora grande suele tener 8 MB o ms de memoria central, varias unidades de cinta
magntica para almacenar decenas de megabytes en cada una, y discos removibles que guardan varios cientos
de megabytes por unidad.
La tecnologa avanza rpidamente en el campo del almacenamiento de grandes volmenes de
informacin. El objetivo sigue siendo reducir los costos por bit almacenado, y garantizar su integridad al paso
del tiempo. Entre las posibilidades actuales se cuentan unidades de memoria (por lo pronto exclusivamente de
lectura) que funcionan bajo un principio ptico y no magntico, en el que un rayo lser lee microscpicos
puntos grabados en una superficie metlica que gira a gran velocidad. Funciona en la misma forma que los
discos compactos de audio, basados en la codificacin digitalizada de la informacin. Estos discos, que en
ingls reciben el nombre de CD-ROM, con capacidad de 650 MegaBytes pueden almacenar, en slo cinco
pulgadas de dimetro.
Que es el grabador de CD ?

Es una tecnologa que permite una grabacin domestica de Cds de manera simple y con resultado de
calidad fiel a los originales utilizados como fuente. Comprende un equipo de tamao de apariencia similares a
un reproductor de msica convencional. Puede grabar ( CD- R ), regrabar ( CD- RW )y reproducir nuevos CD
de los tipos gravables.

64

Cual es la diferencia entre los discos CD-R y un CD-RW ?


Para comenzar, pueden diferenciarse por la apariencia. El CD-R tiene color dorado, mientras que el
CD-RW es plateado. La composicin del material sensible a los aces del rayo lser tampoco es la misma. Por
eso el CD-R solo puede grabarse una nica vez, y el CD-RW puede regrabarse centenas de veces. Se ocupan
equipos especiales para el grabable y equipos especiales para el reprobable . Porque tiene cdigos para
identificar si es gravable o reprobable.
ZIP es de 100 MegaBytes.
DVD es de 17 GigaBytes se puede leer por ambos lados pero se prefiere para video porque tiene mucha
capacidad.
3.5 EL SISTEMA DE COMPUTO INTEGRADO

No es vlido llamar computadora a una mquina que no presente una imagen integrada y coherente a
sus usuarios. Es decir, si hay que tener conocimientos de electrnica o de fsica para manejar un equipo,
es que algo anda mal. Esto no quiere decir que cualquiera puede usar una computadora sin
capacitacin previa; significa ms bien que el equipo de cmputo debe considerar la existencia de los
usuarios y estar a sus rdenes de alguna manera no demasiado complicada. En efecto, esto presupone la
existencia de interfaces entre el procesador, la memoria central y las unidades perifricas, por un lado, y
quienes las manejan, por el otro, de modo que la comunicacin sea lo ms fluida posible. Esto se convierte en
un requisito indispensable cuando ms se desea que la computadora se integre a las actividades usuales de la
sociedad.
Con la aparicin de la computadora han surgido ramas de actividades afines, pero ms amplias, que
han recibido nombres como procesamiento electrnico de datos o informtica. Este ltimo concepto -an
amorfo- que abarca conocimientos y disciplinas de tipo matemtico, computacional, administrativo y jurdico,
se refiere a la utilizacin de la herramienta computacional para el desempeo de actividades de espectro o
alcance mayor al de cualquiera de sus partes aisladas; su campo de accin cubre grupos sociales especficos
(la empresa, la organizacin, la fbrica) y, en opinin de algunos, a la sociedad como un todo.
Desde un punto de vista, la informacin es el conjunto de tcnicas necesarias para la creacin de
sistemas de informacin que es tal vez el resultado final de todos esto esfuerzos.
Creemos que la informacin debe de estar sustentada en los conceptos centrales de la ciencia de la
computacin y, sobre todo, en los conceptos matemticos de modelo, algoritmo y sistema.
Un equipo integrado bajo estos principios presenta una imagen monoltica ante el usuario. Se
describir ahora una sesin tpica de trabajo con una maquina de este tipo, suponiendo que se tiene acceso a
una de sus terminales de video. La operacin de una computadora personal es, por lo general mas sencilla de
lo que se expone, pues aqu se hace referencia a un sistema que atiende a varios usuarios simultneamente
( conocidos como sistemas multiusuario ).
Lo primero que el usuario potencial debe hacer es identificarse, mediante una clave asignada de
antemano por el administrador del centro de computo. Entonces, la computadora busca, en un archivo
especial en disco magntico, la clave recin digitada. Si la encuentra, permite la entrada al sistema y da inicio
a la sesin; en otro caso, rechaza el intento empleando algn mensaje adecuado.

65

Ahora, el usuario puede consultar alguno de los archivos que ha creado con anterioridad, crear uno
nuevo, ejecutar un programa o hacer alguna consulta a un banco de informacin, por ejemplo.
Esas acciones se comunican a la computadora por medio de un lenguaje especial, llamado lenguaje
de control de sistema operativo. Dependiendo de la computadora de que se trate, este lenguaje puede ser muy
sencillo o altamente complejo y elaborado.
Supngase que se desea hacer un programa para calcular una tabla de amortizacin e intereses
bancarios. Lo primero que hay que hacer es resolver el problema en papel, escribiendo un programa en
pseudocdigo, para luego reducirlo a un programa de programacin particular. Para este ejemplo se
supondr que el programa ya esta escrito en una hoja de papel, y que lo nico que hay que hacer es
transmitirlo a la computadora.
Se logra esto mediante un programa especial del sistema que tiene como funcin servir de
intermediario entre los usuarios y el sistema de archivos de la maquina. Este programa auxiliar se llama editor
de textos. Por medio del editor, entonces, se escribe el programa y se deja en la computadora.
Cuando se ha terminado de teclear el texto (y se han corregido los posibles errores mecanogrficos
tambin por medio del editor), entonces hay que guardarlo; esto es, hay que convertirlo en un archivo en
disco. La mayora de los sistemas de computo tienen facilidades integradas en el lenguaje de control para
asignar nombres simblicos a los archivos. En el ejemplo este programa se llama TABLA.
Los pasos realizados han sido:
1.
2.
3.

Digitar la clave de usuario para entrar al sistema.


Llamar al editor.
Digitar el programa, y corregir los posibles errores tipogrficos.

Ahora llega el momento de traducirlo al lenguaje propio de la maquina, para que el procesador pueda
ejecutarlo. Para esto hay llamar al traductor (que forma parte del sistema y reside en el disco), conocido como
compilador.
Supngase que el programa TABLA esta escrito en el lenguaje COBOL. As pues, el siguiente paso
es:
4.

Llamar al compilador de COBOL para que compile el programa TABLA.

Si la compilacin no produce errores, que podr ejecutar el programa para obtener las tablas de
intereses. Es decir, el programa es general (esta diseado para producir cualquier tabla del tipo indicado);
solo hay que darle los datos para trabajar que sern parmetros tales como el tipo de inters y los plazos, etc.
La secuencia entonces prosigue.
5.

Ejecutar el programa ya compilado y darle los datos que solicita.

El programa termina cuando ha finalizado el procedimiento de los datos, y el control vuelve al


sistema de computo, que har aparecer en la pantalla algn mensaje adecuado para indicar que esta de nuevo
en un punto inicial, como el paso 2.
La sesin recin descrita ha sido interactiva, porque todos los procesos y pasos descritos han
ocurrido en presencia del usuario y de la maquina, y con la participacin de ambos. Esto significa que tanto
los datos que pide la computadora como los resultados que entrega son manejados por un usuario desde su
propia terminal de video, sin necesidad de que intervenga el operador del sistema. Una sesin interactiva
permite, si el programa as lo especifica, hacer preguntas a la maquina y obtener la respuesta en el preciso
momento en que se calculan, con las consecuentes ventajas.

66

Una vez que el programa esta compilado y reside en el sistema de archivo de la computadora en
forma de programa objeto, bastara con realizar los pasos 1 y 5 tantas veces como se desee para ejecutarlo de
nuevo en el futuro.
Otra tcnica ---casi en desuso--- para trabajar con una computadora, consiste en introducir los
programas, datos y ordenes deseados por medio de tarjetas perforadoras, para que el sistema de computo los
procese en escrito orden secuencial y en un tiempo que no es el del usuario, sino que esta determinado por las
colas de servicio y la cantidad de proceso pendientes en el sistema. Esta tcnica se conoce como
procesamiento por lotes (batch)
EL CENTRO DE COMPUTO
En vista de que una computadora grande es una herramienta de uso general, gran cantidad y
diversidad de personas hacen uso de ella. El lugar donde reside la computadora, y a donde van a trabajar los
usuarios, recibe el tradicional nombre de centro de computo. No obstante, con la aparicin de las
microcomputadoras por un lado, y de nuevas tcnicas de computo por otro, ya no es estrictamente necesario
que ambos, usuarios y computadora, estn en el mismo lugar.
Un centro de computo esta dividido en reas funcionales que se agrupan en dos familias: operativas y
administrativas y de apoyo. Las primeras incluyen, entre otras, las salas de maquinas, de impresoras y de
terminales.
El lugar donde reside el CPU y las unidades de disco y cintas magnticas es de acceso restringido y
esta controlado estrictamente por los operadores. Estos operadores entienden los mensajes y pedidos que el
CPU hace a travs de una pantalla de video llamada consola; adems, tienen otras funciones importantes
como realizar respaldos peridicos de todos los archivos del sistema a cintas o cartuchos magnticos, y
atender a las solicitudes especiales de los usuarios.
Si en una de estas grandes maquinas alguien desea leer o escribir datos en una cinta, tiene que
comunicrselo al operador central (por medio de su pantalla de video), para que este coloque la cinta
necesaria en la unidad ya que las lectoras de cintas no estn en la zona de terminales.
Como la sesin ha terminado, el usuario se dirige a la zona de impresoras, si as lo solicito. Ah lo
atendern otros operadores cuya tarea es recoger los listados que las impresoras producen para separarlos en
casilleros especiales, destinados a los usuarios del sistema de computo,
Las reas administrativas y de apoyo de un centro de computo, por otro lado, incluyen la direccin y
subdireccin, una oficina de consultas y asesoras, y oficinas especializadas de ingeniera y sistemas.
Toda maquina requiere atencin y mantenimiento peridicos por lo que los centros grandes de
computo tienen uno o varios ingenieros residentes para estas funciones. Una seccin se dedica a mantener
actualizados los inventarios de papel para impresora, que pueden ser de tamao considerable (se conoce a
estos gastos como el costo oculto, de un centro de computo).
Igualmente se requiere el apoyo de ingenieros de software y de sistema operativo, que vigilan los
sistemas de programacin de la computadora funcionen en forma adecuada y eficiente.
Este todo este grupo de personas (pueden ser decenas) el que provee el apoyo y la coordinacin para
que el usuario pueda llevar a cabo su trabajo en la computadora, para elaborar, corregir, probar o ejecutar
programas, explotar bancos de informacin, o hacer cualquier cosa que su experiencia o imaginacin dicte.
El usuario indica a la maquina que la sesin ha terminado por medio de una orden especial del
lenguaje de control del sistema operativo, y la pantalla le informa el tiempo que estuvo en comunicacin con
el sistema de computo, y el tiempo que se utilizo el CPU durante la sesin, as como otros datos que pueden
ser de inters.

67

Luego, sin que el usuario lo vea, el sistema resta el tiempo de procesador empleado del total que este
tenga asignado en su cuenta personal, de tal manera que se lleva un control estricto de los cursos de computo
empleados y su distribucin.
El centro de computo debe de prestar atencin individual a sus clientes al mismo tiempo que controla
la tarea de todos en conjunto, preservando la privacidad de cada uno, y evitando en todo momento la
sobrecarga de trabajo y la consecuente deficiencia en la atencin. La magnitud y el alcance de estas
actividades son evidentes; considrese por ejemplo una gran computadora que da atencin a cientos o decenas
de personas a la vez, tiene cientos o miles de megabytes en memoria secundaria, maneja varias lectoras e
impresoras, y procesa millones de instrucciones por segundo; entonces se puede reconocer la necesidad de
una rama de las ciencias de la computacin, especialmente dedicada a estos aspectos: la programacin de
sistemas.
3.6

TELEPROCESO

Cuando las terminales de video y las impresoras u otras unidades de entrada y salida se encuentran
fsicamente separadas de la computadora, surgen problemas que requieren un estudio aparte y que dan origen
a una rama de las ciencias de la computacin que se conoce como teleproceso o teleinformtica.
En efecto, nada obliga a la cercana fsica (o geografa en el caso extremo) entre la unidad central de
procesamiento y los dems componentes del sistema de cmputo, puesto que todo lo que se requiere es un
canal adecuado de comunicacin para ligarlos. Este canal suele estar formado de cables en el caso de la
computadora centralizada, pero tambin puede estar constituido por equipos complejos de telecomunicacin.
Lo ms sencillo sera conectar las terminales de la mquina por medio de cables muy largos, pero
esto da lugar a ruidos e interferencias elctricas en la lnea. Entonces, hay que conectarlas por medios
telefnicos o, si fuera el caso, de radiocomunicaciones. Para ambas situaciones se requiere una interfaz que
tome los impulsos elctricos digitales que manda la UCP y los convierta en seales que puedan transmitirse
fcilmente a grandes distancias. Donde se reciben se requiere la operacin inversa para volver a convertir
esas seales en las que espera la terminal. el aparato empleado para esto recibe el nombre genrico de mdem
(modulador/demodulador), y es de uso comn en todo aquel lugar donde sea necesario tener terminales
remotas.

68

Ejemplo de una red de teleproceso


Puerto
Sincrono
P2

P2

Moden

P1
P3

P1
P3

Puerto
Sincrono
Moden

P4

P2

PP1

PP1

Sincrono
2400/19200

PP1

PP1

P4

P2

P3

P3

P4

P4

P1

P1

Hay dos unidades de medida que se emplean en los mdem y en los equipos de comunicacin digital.
Una, llamada bps (bits por segundo) mide la cantidad de bits que se transmiten en un segundo por el
dispositivo o el canal y es comnmente empleada. Se habla, entonces, de mdem de 1200, de 2400 o de 9600
bps, y para averiguar cuntas letras o smbolos se pueden transmitir por unidad de tiempo, hay que considerar
que cada carcter (en cdigo ASCII o EBCIDIC) requiera 7 u 8 bits para ser codificado, adems de algunos
bits extra que se emplean regularmente para propsitos de control. Otra unidad, llamada baud, define la
cantidad de transiciones lgicas (entre los estados 0 y 1) que los circuitos digitales deben hacer para lograr la
transmisin de un dato. en principio, cada bit transmitido cuenta por un baud, pero los mdem suelen emplear
esquemas especiales de modulacin para reducir la cantidad de transiciones necesarias para enviar un bit, por
lo que no siempre es el caso que un baud corresponde a un bps, sino que a veces con el costo de un baud es
posible transmitir dos o ms bits.

69

Para situaciones en donde se emplean varias terminales remotas distribuidas, son necesarios adems
equipos ms complejos, que se encargan de concentrar varias seales y enviarlas por una lnea telefnica
comn, o por medio del servicio de microondas. Aqu la situacin se vuelve ms complicada, porque ahora
no slo basta con modular y demodular la informacin, sino que tambin hay que entrar en redes pblicas o
internaciones, para lo que hay que cumplir con ciertos protocolos y estndares de comunicacin, y que pueden
incluir la comunicacin por medio de satlites.
En tales situaciones es comn emplear sistemas de multiplexaje y comunicacin remota que deben
ser atendidos por ingenieros especializados en comunicaciones, en lo que se conoce como procesamiento
digital de seales.
En un sistema configurado de esta manera es posible que un usuario se encuentre a cientos (o miles)
de kilmetros de distancia del lugar donde reside el procesador central y los discos magnticos. Para tales
casos es frecuente conectar, junto con las terminales remotas, una o varias impresoras a las que la UCP enva
los resultados de los cmputos iniciados remotamente. Un sistema o subsistema de este tipo se conoce en
ingls como RJE (remote job entry) y es, para todos los fines prcticos, una verdadera computadora local que
depende de la instalacin central.
Tal es el caso, por ejemplo, de las oficinas de reservaciones de aerolneas, donde se agrupan varias
terminales remotas, conectadas por radiotelefona a la mquina central, que en ocasiones ni siquiera reside en
el Pas donde est la oficina de boletos.
Y este hecho revela una de las direcciones que puede tomar la computacin, y que consiste en
descentralizar el procesamiento de datos (o regionalizarlo), y usar la computadora central nicamente para
fines de consulta a sus enormes bancos de informacin, que residen en decenas de unidades de discos
magnticos. Se habla entonces de redes de computadoras o bien de procesamiento distribuido.
Las redes de computadoras, consisten en equipos de cmputo interconectados en forma directa o
remota, de manera que comparten desde informacin almacenada en archivos hasta sus propios procesadores
centrales. Las operaciones ms usuales en una red son:
transferencia o consulta de archivos de una mquina a otra,
utilizacin de algn procesador existente en la red desde cualquier terminal,
terminal virtual,
correo electrnico.
La primera operacin permite enviar informacin de una computadora a otra cualquiera conectada a
la red, ya sea para copiar archivos completos (de un disco a otro) o para usar los archivos de una como datos
de entrada para un programa que se ejecuta desde otra. La segunda operacin de la posibilidad de dirigir la
ejecucin de un proceso determinado a alguno UCP en particular dentro de la red, y la tercera hace aparecer
una terminal de video como si estuviera conectada a cualquiera de las computadoras participantes, con la
posibilidad de elegir la que se desee por medio de una simple orden.
El concepto conocido como correo electrnico ofrece ese tipo de servicios entre los diferentes
usuarios de la red, y asigna a cada uno un buzn en el que los dems pueden dejar depositados mensajes.
En una red, las computadoras pueden interconectarse con diversos mtodos, que van desde un cable
comn hasta complejos sistemas de telecomunicaciones, e igualmente los datos pueden ser transmitidos con
diversos grados de seguridad y complejidad.

70

Uno de los proyectos que iniciaron, en la dcada de 1970, el campo de las grandes redes de
computadoras fue el conocido como Arpanet, a cargo de la oficina de Proyectos Avanzados del Departamento
de Defensa de los Estados Unidos, que introdujo un mtodo para enviar datos agrupndolos en paquetes
individuales (y no mandndolos como un flujo ininterrumpido), conocido como packet switching. La ventaja
de esto es que, como cada paquete est numerado e identificado, pueden ser transmitidos por diversos canales,
as como ser reexpedidos si alguno llegara a perderse. Entre los sistemas de interconexin que se han
popularizado, cabe resaltar uno llamado Ethernet, que tiene visos de convertirse en relativamente estndar
porque ya ha sido adoptado por varios fabricantes. Consiste en un cable coaxial que se tiende en una oficina o
un edificio, al que se conectan terminales, impresoras y computadoras mediante pequeos adaptadores. La
informacin de la red (paquetes de datos y de control) fluye por el cable y permite las operaciones usuales de
transferencia de archivos y de uso compartido de impresoras y discos magnticos.
Existen grandes redes internacionales que ligan muchas computadoras en varios pases, y que se usan
para labores especializadas, como en el caso de reservaciones de aerolneas, o la red mundial de
telecomunicaciones para finanzas, llamada Swift, que interconecta a ms de 1 500 bancos en 39 pases y
permite el manejo de transacciones entre todos ellos.
Un esquema que ha surgido recientemente es el de red local, LAN (local rea network), en donde un
conjunto de computadoras personales se interconecta mediante un cable y puede (con la programacin
apropiada) compartir recursos tales como unidades de disco rgido o impresoras.
El concepto de procesamiento distribuido, por otro lado, dota a las terminales de lo que podra
denominarse inteligencia local, pues son capaces de ejecutar partes del procesamiento in situ, sin tener que
recurrir a la UCP ms que para algunos casos especiales. Ejemplo de esto lo constituyen algunas terminales
de video complejas que tienen memoria propia, en las que el usuario puede hacer y rehacer textos completos
sin depender de la computadora central, porque todo se almacena temporalmente en la propia terminal, que
manda a la UCP los datos cuando ha terminado de preprocesarlos.
Muchos sistemas de informacin y captura de grandes volmenes de datos (en los bancos, por
ejemplo) tienen terminales especializadas que muestran al capturista una pantalla prediseada, para que
simplemente digite los datos pedidos sin preocuparse por la posicin de cada uno de ellos. Estas terminales
tambin pueden validar localmente los datos, para evitar errores de digitalizacin. Una de estas mquinas
puede servir, por ejemplo, para registrar los comprobantes de consumo de las tarjetas de crdito. En este caso
aparece en la pantalla de video un diagrama para que el mecangrafo especializado llene los huecos con la
informacin que lee de los documentos que est captando. Si le corresponde, por ejemplo, escribir el monto
numrico de la operacin, la terminal le impedir teclear cualquier otra cosa que no sean dgitos, evitando
errores que pueden ser muy comunes. Todo este procesamiento tiene lugar sin intervencin de la
computadora central, que slo recibir los datos completos y depurados.
Con la llegada de las microcomputadoras se han abierto nuevas posibilidades para el procesamiento
distribuido, que constar de grandes redes con inteligencia de cmputo, localizadas en diversos puntos, que
toman informacin de su entorno, la preprocesan y la mandan, ya procesada, a la computadora central, para
que pase a formar parte de los recursos del sistema de informacin.
Otro ejemplo de esto puede ser una red nacional ecolgica (o sismolgica o meteorolgica) en la que
mltiples estaciones dotadas de poder de cmputo propio analizan o muestrean los datos de la localidad donde
estn instaladas (cantidad de contaminentes por unidad de tiempo en un ro, muestras de temperatura y
presin cada minuto, lecturas de sismgrafos locales, etc.) y los hacen llegar -ya normalizados de acuerdo
con criterios establecidos- a la mquina central, para que sta , a su vez, los integre como informacin ya
clasificada.

71

Esta descentralizacin tambin concierne al software, porque entonces se pide, por ejemplo, que las
bases de datos estn distribuidas en mltiples mquinas, y que el sistema de informacin se encargue de dar
una imagen de coherencia y unicidad, cuando en realidad los datos pueden estar almacenados en diferentes
discos magnticos que pueden estar separados por miles de kilmetros. Las bases de datos distribuidas
representan un campo de investigacin avanzada en ciencias de la computacin.

72

73

4. LA PROGRAMACIN DE SISTEMAS
Por programacin de sistemas se entiende que es el conjunto de programas necesario para que una
computadora de una imagen coherente y monoltica ante sus usuarios. Se ha visto que una maquina tan rpida solo es
capaz de hacer un pequeo numero de operaciones muy elementales, y surge entonces la pregunta Como hacer para que
el trabajo con una computadora sea eficiente y no haya que comunicarle todo por medio de ceros y unos?. La respuesta a
esta pregunta constituye, precisamente, el desarrollo de la programacin de sistemas.
4.1 LENGUAJE DE MAQUINA
Todo lo que se ha descrito con anterioridad ha estado en el lenguaje propio de la computadora, esto es, en un
lenguaje que hace referencia a los registros de CPU, al acumulador, a las celdas de la memoria, etc., Sin embargo, estos
elementos estn bastante lejanos del lenguaje cotidiano, por lo que ahora se comenzara a acercar la computadora al
dominio del ser humano.
El lenguaje maquina es el nico que entiende directamente la computadora. Utiliza el alfabeto binario, que
consta de los dos mdulos nicos 0, 1 denominados bits (abreviatura inglesa de dgitos binarios). Fue el primer lenguaje
utilizado en la programacin de computadoras, pero dejo de utilizarse por su dificultad y complicacin, siendo sustituido
por otros lenguajes ms faciles de aprender y utilizar, que adems reducen la posibilidad de cometer errores.
Generalmente en la codificacin de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de
escritura.
Instrucciones en lenguaje maquina y sus equivalentes en hexadecimal.
0000
1000
0011
0111
1110

0001
1001
1010
0100
1001

01
89
3A
74
E9

1010
1001
1001
0111
0010

0001
1010
1100
0000
0000

A1
9A
9C
70
20

El siguiente es un programa (objeto) real, escrito en el cdigo hexadecimal del microprocesador Intel 8086, y
sirve para encontrar un numero entre un conjunto de nmeros enteros mediante el mtodo llamado de bsqueda lineal.
1E B80000 50 B82810 8ED8 8EC0 BF0000 BB1D00 8B0F BB1F00 8A07 FC F2 AE 7401 CB 4F CB
Cada grupo de nmeros representa el cdigo en el lenguaje de esta maquina de una instruccin del procesador.
Los procesadores permiten varias maneras de direccionar (llegar a) las celdas de la memoria. La ms simple de todas
es el direccionamiento directo; basta con escribir la direccin de la celda deseada a continuacin del cdigo de la
instruccin para que la unidad de control logre el acceso.
En otra forma, el direccionamiento inmediato, se usa un dato numrico que se escribe inmediatamente a la derecha de la
instruccin que la requiere. La diferencia entre ambos tipos de operaciones consiste en que la primera usa la direccin
donde esta el dato, mientras que la segunda usa el dato mismo.
El direccionamiento indirecto, por otra parte, no toma el numero que esta a la derecha de la instruccin como direccin
para extraer de ella un valor, ni como dato inmediato, sino como direccin de una celda a la que tendr que ir para
extraer otra direccin. Esto puede parecer rebuscado, pero es de enorme utilidad en la programacin de sistemas.
Por ultimo, el direccionamiento indexado usa la direccin que esta a la derecha de la instruccin para sumarla con el
contenido de un registro especial de la CPU llamado registro ndice. Esto permite la variacin de direcciones para
simular directamente el recorrido sobre los elementos de un vector.
El 8086 puede direccionar memoria en todas las formas explicadas, y dispone de 25 tipos de combinaciones de
estos mtodos bsicos. Adems, maneja palabras de memoria de 16 bits.

74

GRUPO DE TRANSFERENCIA DE DATOS


Copia el contenido de un registro a otro.
Copia el contenido de una celda de memoria a un registro y viceversa.
Copia un numero (inmediato) a un registro o a una palabra de memoria.
Intercambia el contenido de dos registros o de un registro y una palabra de memoria.
Intercambia los contenidos del acumulador con un registro o con una palabra de memoria.
Guarda o extrae un numero de 16 bits en la pila de control.
Transfiere un numero de 8 o 16 bits entre el procesador y un dispositivo de E/S.
Maneja el acceso a una tabla definida en la memoria.
Carga direcciones de palabras de memoria.
GRUPO ARITMTICO
Vuelve negativo un numero de 8 o de 16 bits.
Suma dos nmeros enteros de 8 o de 16 bits (en varios modos de direccionamiento )
Resta, similar a la suma.
Multiplica dos nmeros enteros de 8 o de 16 bits.
Divide dos nmeros enteros de 8 o de 16 bits.
Incrementa en uno el valor de un registro o de una palabra de memoria.
Decrementa, similar al incremento.
Convierte un numero de 8 bits en uno de 16, o uno de 16 en uno de 32.
Representa el contenido de un registro de 8 bits como dato binario o como dato ASCII, para ajustarlo
para la suma, resta, multiplicacin y divisin.
GRUPO LGICO Y DE DESPLAZAMIENTOS
Efecta la operacin NOT sobre el contenido de un byte o de una palabra.
Efecta la operacin AND sobre el contenido de un byte o de una palabra.
Efecta la operacin OR sobre el contenido de un byte o de una palabra.
Efecta la operacin XOR sobre el contenido de un byte o de una palabra.
Desplaza los bits de un registro o de una celda de memoria una o varias posiciones a la izquierda.
Desplaza los bits de un registro o de una celda de memoria una o varias posiciones a la derecha.
Rota los bits de un registro o de una celda de memoria una o varias posiciones a la izquierda, en
diversas modalidades (con / sin acarreo, etc.).
Rota los bits de un registro o de una celda de memoria una o varias posiciones a la derecha, en
diversas modalidades (con / sin acarreo, etc.).
GRUPO DE MANEJO DE CADENAS
Controla la transferencia de un bloque de caracteres.
Mueve los caracteres de una cadena, considerados como bytes o como palabras.
Compara los caracteres de una cadena, considerados como bytes o como palabras.
Busca los caracteres de una cadena, considerados como bytes o como palabras.
Introduce los caracteres de una cadena, considerados como bytes o como palabras.
Almacena los caracteres de una cadena, considerados como bytes o como palabras.
Manejo del apuntador a una cadena.
GRUPO DE FLUJO DE CONTROL
Salto directo a una cierta direccin ( en varias modalidades ).
Salto condicional a una cierta direccin del resultado de una comparacin anterior.
Compara el valor de dos registros de 16 bits, y detecta si son iguales, o si uno es mayor o menor que
el otro.
Igual que el punto anterior pero para bytes.
Igual que el punto anterior pero para un registro y un dato inmediato.
Detecta si el contenido de un registro es cero, positivo o varias posibilidades mas.
Repite la ejecucin de un ciclo predefinido.
Repite condicionalmente la ejecucin de un ciclo predefinido.
Llama a una subrutina, con varias modalidades que dependen del tipo de direccionamiento.
Regresa de una subrutina, con varias modalidades que dependen del tipo de direccionamiento.

75

GRUPO DE CONTROL DEL SISTEMA


Provoca una interrupcin.
Regresa de una interrupcin.
Borra/activa el indicador de interrupciones.
Espera una seal del sincronizador.
Deshabilita el acceso al canal de datos del procesador.
Guarda el estado actual de la UCP en la pila de control.
Extrae el estado actual de la UCP en la pila de control.
Operacin nula ( esto es, no hagas nada durante el ciclo ).
Alto
Aunque no este claro para que sirven todas estas operaciones, si es posible darse cuenta de que no son muy
potentes ni impresionantes, y que constituye un gran esfuerzo lograr algo complicado con ayuda de tan escasos medios.
Hay que tomar en cuenta que la descripcin que se acaba de hacer del diccionario no entra en detalles, y que
para completarla hara falta definir los cdigos binarios (o hexadecimales) correspondientes a cada instruccin .
Un programa escrito en lenguaje de maquina tiene las siguientes caractersticas:
a)

Esta escrito en ceros y unos ( el ejemplo esta en hexadecimal, por claridad ).

b)

Hace referencias a celdas absolutas de la memoria y es inflexible, en el sentido de que no admite cambios para
adaptarlo a nuevos requerimientos.

Todo programa escrito en lenguaje maquina deber tener estas caractersticas que lo vuelven totalmente ilegible
o imprctico para todo fin humano (por ejemplo, mejorarlo, corregirlo, aumentado, comunicarlo a otros etc)
Esto implica que ya no se trabaja en lenguaje de maquina, puesto que esta es la manera mas inadecuada de
comunicarse con una computadora. Es necesario encontrar los medios de comunicarse con ella y como ya se vio
anteriormente es mejor ordenar a la computadora CARGA_AC, en lugar de 21, con las correspondientes ventajas en
cuanto a legibilidad y claridad en el concepto.
4.2 ENSAMBLADORES

Qu es un ensamblador?
Un ensamblador es un traductor entre el programador y la mquina, ya que la mquina no puede entender el lenguaje
humano. El ensamblador slo podr traducir los programas fuente hechos en mnemnicos , sea programas hechos en
lenguaje ensamblador. Para otros programas existen otros traductores, como compiladores para lenguajes de alto nivel.
Si se decide usar nuestro diccionario para comunicarse con la computadora, antes hay que resolver el problema
de traducir el programa fuente (escrito con los mnemnicos del diccionario) a lenguaje de mquina (el nico que la UCP
admite).
Se podra pensar en contratar a un traductor (que llamaremos T1) para que :
a)
b)

lea cada programa fuente.


lo traduzca a lenguaje de mquina.

Si existe tal traductor, ya no es necesario trabajar en el lenguaje de mquina, sino que se programara en un
lenguaje de ms alto nivel. Claro que para que esto siempre funcione habra que ser capaces de integrar este traductor a la
mquina misma; en pocas palabras, que la mquina traduzca por s sola los programas fuente a programas objeto.
Cmo se logra esto?
Si se escribe el programa traductor y se deja residente en la memoria de la computadora, el proceso de
comunicacin con ella tendra dos pasos: primero, convertir el programa fuente del usuario a programa objeto, y segundo,
cargar y ejecutar ese programa objeto, que ya qued escrito en lenguaje de mquina.
Se analizarn los pasos necesarios para construir un traductor de esta clase. Se propone una manera sencilla de
atacar problemas complejos de este tipo, que consiste en describir en espaol, a grandes rasgos, una solucin general. Tal

76

solucin ser un primer acercamiento al problema. Tal vez sean necesarios varios acercamientos progresivos para
entender y resolver un problema complejo pero, por lo menos, ya se ha descrito una forma general de lograrlo; ms que
esto, se ha definido una metodologa de diseo, que luego se explicar con detalle. Ahora, volvamos a nuestro problema.
El lenguaje ensamblador.
Lo que se desea es hacer un programa T1 que reciba como entrada un programa fuente escrito en mnemnicos
(usando el diccionario antes mencionado) y que produzca como salida el mismo programa, ya convertido a lenguaje de
mquina, es decir, el programa objeto listo para ser ejecutado.
Un primer acercamiento podra se el siguiente:
! Programa T1, primera versin.
! (El smbolo ! se usa para escribir comentarios.)
Para cada rengln del programa fuente se ejecuta lo siguiente:
Buscar la palabra mnemnica en el diccionario.
Si est, entonces traducirla a lenguaje de mquina
(Simplemente, leer la columna de la derecha de esa entrada en el diccionario).
En caso contrario mandar un mensaje de error que diga, por ejemplo,
mnemnico desconocido.
Est claro que, en este nivel de detalle, el programa T1 funciona. Es decir el programa fuente:
CARGA_Ac
SUMA
GUARDA_Ac
ALTO

21
22
23

Se convierte en el programa objeto equivalente:


Separado X instruccion
2121 5722 9623 70

Secuencia seguida
21215722962370

Suponiendo que T1 tiene acceso al diccionario. Siguiendo con este enfoque aparece la posibilidad de no tener
ya que preocuparnos por escoger celdas particulares de memoria, sino dejar esta responsabilidad al propio traductor. Esto
es, eximir al programador de la tarea de escoger celdas de memoria y asignrsela al traductor T1. Es en este momento
cuando hay que introducir el concepto de variable. Una variable ser un nombre simblico asociado con una celda
cualquiera de la memoria de la computadora, slo que esta asociacin se har de manera automtica.
As, en lugar de decidir si se cargar el acumulador con la casilla 21 (o, si fuera el caso, con la 3456 o la 19689,
etc.), se escribir:
CARGA_Ac ALFA
Donde ALFA es el nombre simblico de una celda de memoria (y ya no importa cul ser sta). Mientras el
traductor T1 reconozca siempre que ALFA corresponde a una celda en particular (escogida por l mismo) no habr
problemas. Nosotros, como programadores, diremos ALFA y el traductor le dir a la computadora 21 (o, si fuera el caso,
3456 19689, etc.).
Este es un paso de fundamental importancia; lograrlo implica estar, efectivamente, por encima de la memoria,
al no tener que preocuparse por direcciones absolutas. Es decir, como programadores, trabajaremos en un ambiente
simblico, no absoluto.
Cules son las ventajas de esto?
En primer lugar, empezar a desligarse de la computadora, y dirigirse a ella en un lenguaje ms simblico que
antes. Adems, los programas son mucho ms flexibles pues, por ejemplo, si la celda 21 est ocupada por otro usuario, el
traductor T1 podr asignar ALFA a cualquier otra celda que est libre. Todo esto permite la creacin de programas ms
legibles para un ser humano y, por tanto, ms tiles.
El programa entonces dir:
CARGA_Ac

ALFA

77

SUMA
GUARDA_Ac
ALTO

BETA
GAMA

que ya es algo ms parecido a lo que realmente se desea hacer, que es:

GAMA = ALFA+BETA

en donde, por ejemplo ALFA vale 5 y BETA vale 7.


Los cambios que habr que hacer a T1 para que pueda por s solo, escoger y asignar celdas de memoria a las
variables simblicas sern los siguientes, claro que tendr que guardar las direcciones absolutas que asign a las variables
simblicas, para poder reconocerlas en el momento que se requieran. Por ejemplo, si se intentara elaborar un programa
para calcular C = A + B y luego D = E - C, se escribira algo como:
CARGA_Ac
SUMA
GUARDA_Ac
CARGA_Ac
RESTA
GUARDA_Ac
ALTO

A
B
C
E
C
D

Resulta claro que el traductor debe reconocer las direcciones de todas las variables simblicas ya que , por
ejemplo, C es requerida dos veces a lo largo del programa.
Asimismo, habr que ocuparse del manejo de etiquetas, que son referencias simblicas a renglones dentro del
programa y se usan para realizar brincos condicionales necesarios, por ejemplo, para modificar el flujo de la ejecucin
del programa dependiendo de los valores que tomen ciertas variables. Como se vio, la mquina puede comparar el
contenido de dos registros y determinar cul es mayor con respecto al otro. Con esta informacin, se decide qu parte del
programa debe ejecutarse a continuacin brincando, de esta manera, partes del cdigo. El funcionamiento de los
lenguajes de alto nivel depende en buena parte de estas etiquetas, que el compilador usar internamente.
La existencia de las etiquetas obliga a que el proceso de traduccin se cumpla en dos pasos sobre el texto del
programa fuente:
1)
2)

guardar las definiciones de etiquetas en una tabla especial


reemplazar las referencias a ellas por las direcciones donde se encontraron.

El nuevo acercamiento ser:


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

! Programa T1, segunda versin


! -Primer paso
Para cada rengln del programa fuente ejecutar lo siguiente:
Si existe una etiqueta, guardar su direccin en la tabla
! -Segundo paso
Regresar al primer rengln.
Para cada rengln del programa fuente ejecutar lo siguiente:
Buscar la palabra mnemnica en el diccionario.
Si est, entonces traducirla a cdigo objeto.
En caso contrario marcar error.
Localizar la variable simblica de ese rengln.
Si existe, entonces preguntar si es la primera vez que se encuentra.
Si as es, asignarle una direccin absoluta y guardarla en un nuevo diccionario
(tabla de smbolos); escribir esa direccin en el programa objeto.
En caso contrario, determinar si se trata de una variable simblica
predefinida (que deber ser reemplazada por su direccin absoluta),
de una referencia a una etiqueta (que ser reemplazada por la direccin que est guardada en la
tabla).

Si se aplica este procedimiento para el programa recin descrito -aunque no tiene etiquetas-, el traductor T1
producir los siguientes resultados:
Programa Fuente

Programa Objeto Obtenido

78

1
2
3
4
5
6

CARGA_Ac
SUMA
GUARDA_Ac
CARGA_Ac
RESTA
GUARDA_Ac

A
B
C
E
C
D

21
57
96
21
42
96

70
71
72
73
72
74

Se supone que T1 decidi asignar celdas de memoria a partir de la direccin 70 (aunque pudo haber puesto
cualquier otro nmero). La tabla de smbolos para este programa (producida internamente por T1) fue:
Variable
Simbolica

Direccin
Asignada

A
B
C
E
D

70
71
72
73
74

Obsrvese que, dado que la variable C aparece dos veces en el programa fuente, su direccin absoluta
correspondiente (72) tambin aparece dos veces. No hay que confundir, sin embargo, las dos apariciones del nmero 70.
La primera vez que aparece es porque representa la direccin que el traductor asign a la variable A, mientras que la
segunda representa la codificacin (de acuerdo con el diccionario usado de la instruccin ALTO).
Cuando el traductor T1 est leyendo el rengln fuente nmero 3 se encuentra por primera vez con la variable C,
por lo que la introduce en la tabla de smbolos y la reemplaza, en el cdigo objeto, por la direccin absoluta 72 recin
asignada. Cuando la encuentra de nuevo, en el rengln 5, no la introduce en la tabla, pues ya est ah; ahora simplemente
la reemplaza en el cdigo objeto por su direccin, 72.
En este momento ya es posible llamar al traductor T1 por su verdadero nombre: ensamblador. Un ensamblador
es, entonces, un traductor que asigna direcciones absolutas a las variables simblicas que el programador escogi,
liberndolo de esa tarea.
Los programas producidos de esta manera se conocen como programas escritos en lenguaje ensamblador. es
evidente que es mucho ms conveniente escribir programas en ensamblador que en lenguaje de mquina.
4.3 MACROPROCESADORES
Se podra pensar tambin en dar al ensamblador la capacidad de repetir, por medio de una orden, grupos
completos de instrucciones que deben aparecer en mltiples ocasiones. Esto es, compactar renglones repetitivos en uno
solo que fungir como su abreviatura, y pedir al ensamblador que lo expanda a la hora de la traduccin.
Si los renglones:
CARGA_Ac
SUMA
GUARDA_Ac

A
B
C

Aparecen con frecuencia en un programa en ensamblador, se podran agrupar en uno solo que se llamara, por
ejemplo, ADICIN. Cada vez que el ensamblador observara el mnemnico ADICIN lo expandira para producir los
tres renglones anteriores.
Este nuevo esquema recibe el nombre de macroprocesamiento, y es de importancia capital dentro de las ciencias
de la computacin porque permite -en su expresin ms general- la sustitucin textual de smbolos de un tipo con
smbolos de otro.
Un macroprocesador trabaja con definiciones de renglones (o de smbolos) llamadas macros (o
macrodefiniciones), que sern expandidas cuando se las llame. Una macrollamada, por tanto, ser la invocacin de una
macrodefinicin (por su nombre) para producir nuevos renglones de texto.
Para convertir los tres renglones anteriores en una macrodefinicin, habr que encerrarlos entre las
res renglones, cambiando slo las letras (variables), o bien usar la misma macrodefinicin, pero permitiendo la existencia
de ciertos elementos variables, llamados parmetros.

79

La macro dir ahora:


MACRO ADICION
CARGA_Ac
SUMA
GUARDA_Ac
FIN_MACRO

(3)
?1
?2
?3

Si se invoca como ADICIN (A, B, C) se obtendr exactamente el mismo resultado que antes, pero si se llama
ADICIN (L, W, K), se obtendr la nueva operacin. Para que un macroprocesador pueda manejar parmetros, requiere
una tabla donde guardarlos, para luego hacer la correspondencia entre los parmetros ficticios (representados por ?1, ?2 y
?3 del ejemplo) y los parmetros reales (o argumentos) A, B, C de la primera llamada, o L, W, K de la segunda.
A los ensambladores que tienen integrado un macroprocesador se le conoce como macroensambladores.
Memoria
Macroensamblador

Macroprocesador

Ensamblador

Programa
Fuente

CPU

Funcin de un macroensamblador
4.4 CARGADORES
Para que la computadora haga la traduccin de los programas escritos en lenguaje ensamblador a lenguaje de
mquina, ser necesario que el programa traductor resida, ya traducido, en la memoria. Esto es, que la computadora
ejecute el programa T1 para que traduzca los programas fuente a programas objeto.
Supngase que alguien escribi un programa para resolver un conjunto de ecuaciones; ese programa est escrito
en lenguaje ensamblador, y lo llamaremos P1. Se estudia ahora la serie completa de pasos que hay que realizar para
lograr que la mquina traduzca y ejecute P1. (Se inicia desde que la computadora est apagada y se analiza lo que hay
que hacer para llegar al final.)

80

FUNCION DEL CARGADOR


Cuando se enciende por vez primera la computadora, la memoria est completamente vaca; es decir, el
procesador est detenido, esperando alguna instruccin en memoria para leer, decodificar y ejecutar. Cmo se saca a la
computadora de este letargo? Est claro que an no es posible ejecutar algn programa, por la sencilla razn de que no
existe ninguno residente en la memoria. Lo que hay que hacer es, pues, cargar algn programa en memoria para poder
ejecutarlo. Y aqu encontramos el primer problema: Cmo se mete un programa a la memoria? Existen dos posibles
respuestas; la primera consiste en cargar manualmente celdas de memoria con valores numricos (que representen la
codificacin, en el lenguaje de mquina, de algn programa), y la segunda en ejecutar un programa que sirva para hacer
esto de manera automtica.
Exploremos la primera posibilidad. Supngase que el programa fuente P1 tiene cien renglones de longitud, y
que cada rengln tiene la misma forma. Esto significa un gran esfuerzo, ya que habra que meter manualmente varios
miles de ceros y unos a varios cientos de celdas de la memoria. Si ya se hubiera realizado este penoso paso todava
quedara la enorme molestia de tener que cargar tambin manualmente el traductor T1 completo.
La segunda posibilidad es mucho ms prometedora, y consiste en escribir un programa para que haga estos
pasos por nosotros. Se llamar cargador. Las funciones de un cargador son relativamente sencillas, y consisten en extraer
la informacin objeto de algn medio externo a la memoria (tarjetas perforadas, disco o cinta magntica, por ejemplo) y
colocarla en celdas sucesivas de la memoria, a partir de una celda preespecificada.
Si se logra traducir este programa a lenguaje de mquina y se deja en la memoria, tendremos ya una herramienta
muy poderosa, con la que se puede cargar en memoria cualquier programa objeto, siempre y cuando se le indique dnde
est almacenada (en disco o cinta) el programa objeto, y a partir de cul celda de memoria se desea que lo deposite.
Esto sin embargo, da lugar a otro problema: Cmo se carga el cargador? la respuesta ya no puede ser por
medio del cargador, porque est claro que ste no puede cargarse a s mismo; para ello tendra que estar residente en
memoria (para que la UCP lo pudiera ejecutar), y este es precisamente el problema que se quiere resolver.
Nos encontramos ante un problema que no tiene solucin, por lo menos, en trminos de un programa que lo
resuelva. Este problema inicial -romper el crculo vicioso recin descrito- recibe el nombre de bootstrap, que en ingls
significa algo as como el problema de tratar de levantarse del suelo tirando de las cintas de nuestras propias botas.
Este es, evidentemente, un problema que tiene truco: requiere medios externos para poderse resolver.
El truco consiste en cargar a mano el cargador para evitar los obstculos lgicos mencionados. Slo que esta
operacin se tendra que repetir cada vez que se encienda la computadora, ya que cuando se retira la corriente elctrica la
memoria pierde todos sus contenidos. La otra solucin a este problema resulta muy interesante y es, a grandes rasgos lo
siguiente:
Se escribe otro pequeo programa (que llamaremos minicargador), cuya nica funcin consiste en cargar el
cargador. Este miniprograma no ser de uso general, y solamente servir para extraer al cargador objeto de un lugar
preestablecido (de una seccin de un disco magntico determinado, por ejemplo) y depositarlo en una zona tambin
preestablecido de la memoria central. Luego de hacer esto, el minicargador se desactiva y cede el control al cargador.
Como este programa es de uso particular y cumple una sola funcin muy especfica ser pequeo (unas pocas decenas de
renglones fuente), por lo que ser posible traducirlo a mano al lenguaje de mquina.
La situacin aparece ahora as: cuando se enciende la computadora, se carga manualmente el minicargador
objeto y se ejecuta. ste a su vez, cargar al cargador, y a partir de ah se podr seguir con el proceso.
Es obvio que, en una computadora normal, el minicargador no se carga manualmente, sino por medios
electrnicos, utilizando una memoria especial tipo ROM, la cual deposita automticamente su contenido en la memoria
central. Al proceso de cargar el minicargador y, con ello, dar vida a la computadora se le conoce como IPL (initial
program load, carga del programa inicial). El IPL se ejecuta cada vez que se enciende la computadora y es el requisito
previo para la operacin de la mismo.
1.
2.
3.
4.

Dar IPL, para cargar el cargador (no es necesario si la computadora ya est operable).
Cargar el traductor T1 objeto, que deber estar residente en algn lugar de la memoria secundaria.
Ejecutar T1 para que lea el programa fuente P1 (que estar residente tambin en algn disco o cinta magntica)
y lo traduzca a lenguaje de mquina, dejndolo en una seccin determinada de la memoria real.
Ejecutar el programa P1 resultante.

81

Veamos estos pasos con mas detalle. Supngase que el programa ensamblador objeto T1 reside en un cierto
disco magntico DM-T1, y que el programa fuente P1 est en otro disco magntico, DM-P1.
Supngase tambin que el microcargador residir en memoria a partir de la celda cero, y que mide 100 bytes. El
cargador, ya traducido medir 500 bytes. El ensamblador objeto T1 mide 1000 bytes, y el programa objeto P1 medir una
vez ensamblada 400 bytes. Si se efectan todas las operaciones de carga de manera secuencial y utilizando celdas
contiguas de memoria, sta se ver as .
0

100
Minicargador

1600

600
Cargador

Ensamblador

2000
Programa
Objeto P1

Espacio Libre
Espacio Libre

Este diagrama indica cuales programas objeto estn residentes en la memoria, y a partir de cual celda.
Teniendo en cuenta las direcciones descritas para asignarlas al contador de programa (CP), los pasos anteriores
sern:
0. Dar IPL (si es necesario)
1.

CP-- 100

(Localizar el disco DM-T1 y ejecutar el cargador para que se deposite el contenido en memoria, apartir de la celda 600.)
2.

CP-- 600

(Localiza el disco DM-P1 y ejecutar el ensamblador, para que deposite el resultado de la traduccin a partir de la celda
1600.)
3.

CP-- 1600

(Esto es, ejecutar el programa objeto P1.)


Ser responsabilidad del programa P1 ejecutar la ejecucin ALTO como ltimo paso; de no hacerlo as, la
computadora tratar de ejecutar lo que contenga la celda 2000, y esto tendra resultados impredecibles.
Mas adelante se ver como se puede convertir los pasos 1 a 3 en un programa para que, una vez traducido a
lenguaje maquina gobierne la accin de la computadora y nos libere de esa tarea. Un programa de ese tipo recibir el
nombre de monitor.
Funcin de un cargador
Programa Objeto en
Disco

Memoria

Cargador

CPU

82

4.5

COMPILADORES

Los captulos anteriores han dado la posibilidad de escribir programas fuente para aplicaciones particulares
lenguaje ensamblador, ya que se dispone de un traductor T1 que los traducir para la maquina a su propio lenguaje
binario. Se puede tambin dejar estos programa fuente residentes en dispositivos de memoria auxiliar y cargarlos a
voluntad por medio del cargador, que tambin hemos diseado. Estamos, pues, en una situacin bastante buena, donde se
tiene un adecuado nivel de comunicacin con la computadora. No obstante, se desea aun mas capacidad, y una mayor
flexibilidad para comunicar los requerimientos a la maquina. Lo que se quiere lograr ahora es la posibilidad de
comunicarse a la computadora en un lenguaje incluso mas parecido al nuestro ( y, ser menos parecido al lenguaje de
unos y ceros).
Que se puede hacer ?
Exploremos las posibilidades de intentar comunicarse con la computadora usando un lenguaje de mas alto nivel
expresivo. Cuando se dice lenguaje de alto nivel se piensa en uno que permita, con una sola orden, decir cosas
complejas; esto es, un lenguaje dotado de otra escritura, que le de soporte a lo que recin se dijo.
Necesariamente hay que pensar entonces en el problema de la traduccin de lenguajes de alto nivel expresivo,
por que lo que se desea hacer es, comunicarse con la maquina en un lenguaje de este tipo y esperar que reciba nuestros
mensajes mediante un traductor que lo convierta a su lenguaje de maquina.
Analicemos el caso de traducir del espaol al ingles, por ejemplo, la siguiente frase: La casa es azul. Si se usa un
diccionario, se encontrara que la se traduce por the, casa por house, es por is y azul por blue, por lo que la frase
ya traducida ser the house is blue.
Esta claro, sin embargo, que esto no fue mas que una simple casualidad. Intntese un ejemplo mas complejo y se
encontraran de inmediato las dificultades inherentes a todo proceso de traduccin de lenguaje de alto nivel expresivo; es
decir, un simple diccionario no basta para lograr una buena traduccin y, a veces, ni siquiera para lograr algo que
medianamente se asemeje a la frase original. Esto se debe por supuesto, a la estructura del lenguaje, que esta definida por
su gramtica.
As, aunque se haya traducido la frase sufragio efectivo, no reeleccin por medio de un diccionario, nos
veremos en dificultades casi insalvables cuando se intente traducir la frase sufragio efectivo, no reeleccin , que
aunque tiene exactamente los mismos componentes significa nada menos que lo contrario que la frase original. Ningn
diccionario ser suficiente para dar cuenta de la diferencia, ya que estos trabajan nicamente con palabras aisladas, sin
tomar en cuenta la estructura gramatical.
Noam Chomsky, lingista del Instituto Tecnolgico de Massachusetts ( MIT), que en 1956 publico un estudio
ya clsico sobre gramticas formales, propona otro ejemplo, esta vez en ingles, para poner en evidencia que en toda frase
de un lenguaje existe como respaldo una estructura que le da forma y sentido. Que significa la frase half baked
chicken? Puede significar tanto medio pollo cocido como pollo medio cocido , que de ninguna manera quiere decir
lo mismo. Esta es una clsica frase ambigua. La ambigedad esta determinada por la estructura que respalda la frase,
como a continuacin se explica .
Para el caso de pollo medio cocido, la estructura de la frase es como sigue:

*
*

half

baked

chicken

83

Mientras que para medio pollo cocido es:

*
*

half

baked

chicken

Sin preocuparse todava por el significado de los diagramas, si diremos que existen varias maneras de agrupar
las palabras (por medio de lo que en lingstica se conoce como estructura profunda ), y que estas maneras le
confieren significados distintos a la misma frase.
A continuacin se vera cual es la secuencia para lograr la traduccin de frases dotadas de estructura interna.
El paso inicial consiste en reconocer todos y cada uno de los smbolos aislados que constituyen la frase; lo que,
a su vez, implica reconocer las letras (y signos de puntuacin) y reconocer las palabras. Obsrvese que reconocer no
necesariamente significa entender; para reconocer un smbolo nico que se requiere es buscarlo (y encontrarlo) en un
diccionario previamente especificado.
Se llama esta primera etapa anlisis lexicogrfico.
Una vez concluido este anlisis se llega a la parte interesante, encontrar la estructura gramatical de la frase
cuyos elementos ya se reconocieron. Este proceso es complejo, y requiere de mltiples anlisis que utilizan mtodos
matemticos para lograr develar la estructura inherente a la frase. La idea general consiste en tratar de acomodar alguna
estructura gramatical apropiada para la frase objeto del anlisis, guindose por medio de las palabras que la componen.
Mas adelante se da un ejemplo.
A esta segunda etapa se le llama anlisis sintctico.
Terminada la frase sintctica o gramatical se esta ya en posicin de entender lo que la frase significa, por medio
del anlisis semntico.
El compilador (que es el nombre de este nuevo traductor) tendr entonces que hacer estos tres tipos de anlisis
sobre las cadenas de entrada (esto es, sobre el programa fuente), para poder llegar a traducirlo al lenguaje de maquina o,
por lo menos, al lenguaje ensamblador y obtener finalmente el mismo programa pero ya en lenguaje objeto.
La teora matemtica requerida para el diseo de un compilador rebasa los limites de este curso por lo que tan
solo se estudiara el proceso de compilacin desde un punto de vista muy general.
La tarea central del analizador lexicogrfico consiste en separar los componentes lxicos (o tokens) de entre el
conjunto de smbolos del programa fuente. Esto es, en un rengln comn coexiste smbolos de diversas clases (letras,
dgitos, smbolos de puntuacin, blancos y caracteres especiales) aunque sean invisibles, y es necesario aislar los
componentes sintcticos de este conglomerado de caracteres. Para nosotros es obvio que la frase uno, dos, tres, constan
de tres palabras, pero en realidad contiene catorce smbolos diferentes que es necesario agrupar de alguna manera. Esta es,
a grandes rasgos, la manera de ser del anlisis lxico.
El modelo matemtico de un analizador de este tipo recibe el nombre de autmata finito. Un autmata de este
tipo es una funcin matemtica que puede reconocer grupos de caracteres que constituyen un componente sintctico.
Sin embargo, el problema del anlisis lxico es sencillo comparado con el que le sigue, el anlisis sintctico, que
no fue entendido sino hasta hace algunos aos; todava en la actualidad existen aspectos oscuros sobre su funcionamiento
general. Los analizadores sintcticos (parsers) se dividen en dos grandes familias: los que funcionan en forma
ascendente y sus contrarios, en forma descendente.
Para poder discutir estos puntos, aunque sea mnimamente, ser necesario mencionar antes algunos elementos de
la teora de las gramticas y los lenguajes formales.

84

Como se dijo, esta teora nace en la dcada de 1950, y trata sobre las propiedades de ciertas construcciones
formales llamadas gramticas, que no son sino formulaciones matemticas de la estructura de los lenguajes formales, de la
misma forma que la gramtica que todos aprendimos en la escuela elemental describe la estructura del lenguaje ordinario.
Para caracterizar el problema de la comunicacin se puede pensar que una gramtica es un generador de
palabras (o frases), que luego llegaran a un reconocedor, que se encarga de decidir si una frase es hija legitima de
cierta gramtica o no; esto es, el reconocedor deber hacer cierto anlisis
ciertos tipos gramaticales que luego forman construcciones mas complejas. En suma:
La

casa
sustantivo

es
verbo

Azul
Adjetivo calificativo

Un articulo seguido de un sustantivo es una Frase nominal.


Un verbo seguido de un adjetivo es una Frase verbal.
Una Frase nominal seguida de una Frase Verbal es una oracin o mas escuetamente,
1.
2.
3.
4.
5.
6.
7.

<Oracin>
<Frase nominal>
<Frase verbal>
Articulos
Sustantivo
Verbo
Adjetivo

<frase nominal>
<Articulo>
<Verbo>
la
casa
es
azul

<frase verbal>
<sustantivo>
<adjetivo>

Estas siete reglas gramaticales configuran una primera gramtica formal, con la que se trabajara un poco.
Obsrvese que se estn usando algunos smbolos nuevos: con las llaves triangulares se encierran palabras de la gramtica
que se llaman no terminales, mientras que con las comillas se distinguen las palabras terminales. Estas ultimas son las que
forman las frases terminales, o sea, los elementos finales de una construccin gramatical que son los nicos que se
muestran al mundo exterior. Una frase u oracin tiene una estructura interna, y los elementos que se usan para definir esta
estructura profunda de la frase son precisamente los no terminales.
El otro elemento nuevo es la flecha, que liga miembros izquierdos (no terminales), con miembros derechos (que
pueden ser terminales o no).
La regla 6 : <VERBO> es

se lee:

el no terminal VERBO produce el terminal es.

85

Se puede comprobar que la frase la casa es azul tiene la siguiente estructura:


Raz del rbol
<ORACION>

<Frase Nominal>

<Articulo>

<Sustantivo>

La

Casa

<Frase Verbal>

<Verbo>

<Adjetivo>

es

Azul

Hojas del rbol

Ahora se pueden entender un poco mejor los conceptos del anlisis sintctico. Si partimos de la parte superior de
este diagrama (que recibe el nombre de rbol sintctico) y se intenta aplicar una a una las reglas de produccin.
Son siete, se obtiene lo siguiente:
<ORACION>

---

<FRASE NOMINAL> <FRASE VERBAL>

---

<ARTICULO> <SUSTANTIVO> <FRASE VERBAL>

---

la <SUSTANTIVO> <FRASE VERBAL>

---

la casa <FRASE VERBAL>

---

la casa <VERBO> <ADJETIVO>

---

la casa es <ADJETIVO>

---

la casa es azul

(La doble flecha se lee genera mediante la aplicacin de una regla de produccin o simplemente genera).
Obsrvese que se parti del tope (o raz) del rbol y se llego a las hojas terminales. Este fue el primer anlisis
sintctico descendente; aunque trivial, es representativo.
Como ser el anlisis sintctico ascendente? Hagamos lo siguiente:
La
casa
es
azul
<frase nominal>

<articulo>
<sustantivo>
<articulo> <sustantivo>
<verbo>
<adjetivo>
<verbo> <adjetivo>
<frase verbal>

<frase nominal>
<frase verbal>
<oracin>

Obsrvese que ahora se procedi exactamente a la inversa: partiendo de los elementos terminales se encontr un
camino que lleva hasta la raz del rbol.
Aunque en apariencia el anlisis ascendente no es mas que el inverso del descendente, en realidad es mucho mas
complejo. La razn de lo anterior reside, intuitivamente, en que el problema central del anlisis descendente consiste en
escoger alguna regla y aplicarla, partiendo de su miembro izquierdo (que consta de un solo elemento no terminal),
mientras que en el caso contrario hay que escoger alguna regla y desaplicarla.

86

Pero ahora ya no existe un solo elemento del lado derecho, sino varios y, por tanto, aumenta la gama de
combinaciones posibles.
De hecho, hace apenas 15 aos que se encontraron algoritmos eficientes para realizar anlisis sintcticos
ascendentes, mientras que los descendentes fueron inventados hace mas de treinta.
Como este somero anlisis sobre el anlisis sintctico pasamos a la siguiente etapa de un compilador: el anlisis
semntico. Aqu lo importante es determinar la coherencia entre lo que se dice, por medio de un lenguaje , y los elementos
del mundo a los cuales se esta haciendo referencia. En este caso, el mundo es, por supuesto, la computadora, sus
registros, sus celdas de memoria, etc. El anlisis semntico averigua, por ejemplo, si una expresin dentro de un programa
de computadora significa algo, y no puede hacer una operacin aritmtica sobre una cadena de caracteres, cosa que no
tendr sentido.
En muchas referencias sobre compiladores se llama fase semntica a la parte que se encarga de lo recin descrito
pero adems puede incluirse tambin all las funciones de generacin de cdigo que ahora se explican.
Ya que se ha analizado a fondo una frase y se ha determinado su validez lexicogrfica, sintctica y semntica,
hay que traducirla. Es importante observar que la operacin de traduccin es lgicamente posterior a las operaciones de
anlisis.
La traduccin o generacin de cdigo busca representar la frase fuente original en trminos de elemento de un
lenguaje mucho mas sencillo, que ya no esta dotado de estructura. O sea, precisamente, traducir la frase fuente al lenguaje
de maquina (o por lo menos al lenguaje ensamblador).
En este nuevo ejemplo se muestra eso. Supngase que se desea efectuar la operacin C=A+B donde las letras
representan variables de tipo numrico. Un rengln de este programa fuente ser, entonces, C = A+B.
El compilador efectuara el anlisis lexicogrfico y luego el sintctico, para determinar que la estructura
gramatical de la frase es:
A
=

+
B

Hecho esto, proceder a determinar si las tres letras son variables numricas definidas dentro del programa
fuente. El siguiente paso es aplicar ciertas reglas predefinido para la generacin de cdigo. Estas reglas indicaran las
operaciones por efectuar para traducir las expresiones primitivas que el anlisis sintctico determino como componentes
de la frase fuente original. Para el ejemplo, la estructura del rbol sintctico pide que se efecten --- en ese orden --- las
siguientes reglas de generacin de cdigo intermedio:
1.
2.

+ (x1, A, B)
= (C, x1, -- )

La estructura de cada regla es como sigue: se especifica la operacin que se aplicara al triplete de elementos
dentro del parntesis. El primer elemento recibir el resultado de la operacin que se efectuara sobre los dos siguientes. La
regla numero uno especifica que se haga la suma de A y B y se deje el resultado en un elemento x1. La segunda regla hace
la transferencia de este elemento temporal a la variable C , y deja indefinido el tercer elemento, puesto que no se
requiere.
Aunque en el ejemplo esta claro que este elemento temporal sobra, obsrvese que esto no puede estar previsto
en las reglas predefinidas, que por ser de carcter general, no pueden saber que se desea dejar el resultado de la suma en la
variable C .
A estas alturas es evidente que los elementos a los que nos estamos refiriendo no pueden ser otra cosa mas que
celdas en la memoria de la computadora. Toca ahora seleccionar las celdas que se van a utilizar , y se usaran las que estn
disponibles. Por lo pronto no importa mucho cuales sern, sino cuantas y en que orden.
A la generacin de cdigo recin escrita se le conoce como generacin de cdigo intermedio, ya que no se trata
de lenguaje de mquina, sino de una especificacin relativamente informal, en trminos de elementos (temporales o no)
que son producidos a ciegas por medio de reglas predefinidas.

87

Una operacin importante que se puede hacer sobre el cdigo intermedio recin generado es la optimizacin.
Una vez generadas las lneas de cdigo intermedio es posible observarlas desde lejos y tratar de eliminar redundancias
y repeticiones. Ntese que esto no se puede hacer al tiempo de generacin de cdigo intermedio, porque equivaldra a
quitar a las reglas predefinidas su carcter genrico.
En el siguiente ejemplo se ve la conveniencia de mantener la generalidad de las reglas de traduccin, que
manejen elementos temporales. Del lado izquierdo aparecen las frases fuente, y del derecho sus correspondientes
traducciones a cdigo intermedio.
C=A+B
C=0
D=E-(A+B)

+(X1,A,B)
=(C,X1,-)
=(C,0,-)
(X2,E, X1)
= (D, X2, -)

Independientemente del objetivo que tenga ese programa, conviene manejar los elementos temporales
libremente, y solo decidir si se eliminan o no en una segunda fase.
En todo caso, luego se abordar el problema de convertir el cdigo intermedio (quiz ya optimizado) en cdigo
objeto propiamente dicho, esto es, en lenguaje de mquina. A esta nueva fase se le conoce como generacin de cdigo
objeto.
Se describir ahora la generacin de cdigo objeto a partir del cdigo intermedio del primer ejemplo:
PROGRAMA FUENTE.
C = A + B

CDIGO INTERMEDIO.
+ (X1, A, B)
= (C, X1, --- )

CDIGO OBJETO.
CARGA_Ac
SUMA
GUARDA_Ac
CARGA_Ac
GUARDA_Ac

A
B
X1
X1
C

Obsrvese cmo el cdigo objeto (comnmente llamado simplemente cdigo) es de mayor extensin que el
programa fuente; esto resulta natural, en virtud de la correspondencia de uno a varios que existe entre una expresin
escrita en un lenguaje de alto nivel y una equivalente escrita en lenguaje de mquina. Ntese tambin que an hay
redundancias en el cdigo generado.
Esto resulta aparente en el cuarto rengln, donde se hace una CARGA_Ac X1 que sobra, puesto que en el
rengln anterior se haba hecho la operacin contraria, y por tanto, ya no tiene sentido intentar cargar el acumulador con el
valor que ya contiene.
Todo compilador, pues, requiere de otra etapa -final- que se conoce como optimizacin de cdigo objeto. Cabe
advertir al lector que estos ejemplos mnimos slo permiten tener una idea vaga del alcance, diversidad y magnitud de los
problemas de la generacin y optimizacin de cdigo intermedio y objeto.
La estructura funcional de un compilador aparece resumida en el siguiente diagrama, que interrelaciona sus
diversas fases, y las conecta mediante estructuras de datos comunes, que reciben el nombre de diccionarios de smbolos.
Estas reas de memoria guardan informacin relativa a todos y cada uno de los componentes sintcticos que el compilador
ha encontrado a lo largo de sus recorridos lexicogrfico y sintctico del programa fuente, junto con caractersticas de los
mismos, que sern importantes para la posterior generacin de cdigo (por ejemplo, el tamao de cada variable, su tipo,
sus requerimientos de memoria, etctera).

88

Estructura funcional de un compilador


ANALIZADOR
LEXICOGRAFICO
ANALIZADOR SINTACTICO

Diccionar
io de
simbolos

ANALIZADOR SEMANTICO

GENERACIN Y
OPTIMIZACION DE CDIGO
FUENTE

Otras
estructura
s de datos
comunes

GENERACIN Y
OPTIMIZACIN DE CDIGO
OBJETO

Cuando el traductor ejecuta inmediatamente el cdigo obtenido recibe el nombre de intrprete. Un intrprete no
genera cdigo, sino que lo ejecuta tan pronto como lo obtiene. Hay una gran diferencia de velocidad entre la ejecucin de
un programa (objeto) compilado y un programa (fuente ) interpretado. La segunda siempre es ms lenta que la primera, ya
que el intrprete debe analizar, traducir y ejecutar cada instruccin, an cuando sta forme parte de un ciclo de
repeticiones. En la actualidad, prcticamente toda la programacin de computadoras se hace en lenguajes de alto nivel,
por medio de compiladores e intrpretes.
La programacin en ensamblador se reserva para programaciones especiales, que requieren de una optimizacin
cuidadosa, hecha a mano, y para aplicaciones que se relacionan con equipo y hardware especiales.
Existen, adems, herramientas de programacin especializadas en la construccin de compiladores. Un
generador de analizadores lexicogrficos, por ejemplo, es un programa que recibe como entrada la especificacin de la
lexicografa de un lenguaje (como deben arreglarse sus componentes lxicos o tokens), y produce como salida un
programa que hace el anlisis. Un compilador de compiladores (compiler compiler), por otro lado, es un programa que
recibe como entrada la gramtica de un lenguaje de programacin y produce como salida el analizador sintctico para esa
gramtica. Como se comprender, estos son programas altamente complejos y elaborados.

89

Funcin de un compilador
Programa Objeto en
Disco

Cargador

CPU

Compilador

Memoria

Programa Fuente

Logramos ya el objetivo especificado al comienzo de este captulo: hacer una herramienta para comunicarse con
la computadora en trminos de un lenguaje ms cercano al nuestro y menos dependiente con respecto a detalles
particulares de la arquitectura de la mquina. Pero esto tiene un precio, comunicarse con la mquina por medio de un
compilador aade un paso ms, porque ahora es necesario compilar un programa, ensamblarlo, cargarlo y ejecutarlo, en
ese orden.
Todos estos pasos se logran de manera automtica por medio de un lenguaje de control, con el cul se especifica
a la computadora lo que se desea hacer, para que la mquina tome el control de las operaciones de ah en adelante.
4.6 SISTEMAS OPERATIVOS
Cuando se hablaba de un monitor, la referencia era a un programa residente en el sistema de cmputo, que tiene
como funcin controlar los procesos que en l suceden. Ahora que inicia el tema de los sistemas operativos, se estudiarn
con ms detenimiento los procesos en cuestin.
Como ya se ha visto, el simple hecho de intentar ejecutar un programa escrito en un lenguaje de alto nivel
implica la ejecucin de varios programas ms -que no han sido escritos por el programador, sino que forman parte de la
programacin de sistemas- como son cargadores, ensambladores, compiladores, editores, etc. Diremos rpidamente que
todos estos programas de utilera son coordinados por otro (mucho ms grande y complejo), que recibe precisamente el
nombre de sistema operativo.
La diferencia comienza a ser notoria cuando uno se detiene a pensar en que un procesador comn es capaz de
ejecutar cientos de miles (e incluso millones) de instrucciones por segundo, y que resulta ridculo dedicar todos esos
recursos a una sola persona. Entonces, por ejemplo, Qu pasa cuando el programa de aplicacin escrito por el
programador pide un dato por la pantalla?. Sucede que el procesador se detiene a esperar que el usuario digite el valor
esperado y, mientras tanto, pueden pasar varios segundos. En todo ese tiempo el procesador estar desperdiciando la
oportunidad de ejecutar millones y millones de instrucciones, dedicado nada ms a esperar. Claramente, esto no est bien.
Surge la idea de que durante el intervalo en que el usuario no est aprovechando el procesador, alguien ms podra
emplearlo. Aqu hay una tarea importante para el recin introducido concepto de sistema operativo.

90

Otra funcin que se le puede asignar, y que depende de la anterior, es compartir los recursos de la mquina entre
varios procesos al mismo tiempo. Si se considera al procesador como un recurso del sistema de cmputo (al igual que la
memoria y los discos magnticos), salta a la vista cmo la idea de atender a un usuario en los tiempos muertos del
procesador entra naturalmente en este esquema, que resulta ser ms amplio. De hecho, cuando se estudian estos temas se
usan palabras como multiprogramacin, tiempo compartido, multiprocesamiento, etc., que estn ya permanentemente
asociadas al concepto mismo de la computadora moderna. Todos estos conceptos parten, como se dijo, de que el
procesador central funciona a una velocidad tal que le permite atender varios procesos.
Del hecho de compartir el procesador sigue un amplio conjunto de tareas afines, tales como compartir la
memoria central, el espacio en disco, la impresora, etc. Por lo tanto es necesario administrar eficientemente el sistema de
computo como un todo armonico. Y no solo eso, tambin es indispensable permitir que los difeentes usuarios se
comuniquen entre si, y protegerlos unos de otros; se requiere adems permitirles almacenar informacin durante plazos
medianos o largos y darles la facilidad de utilizar de manera sencilla todos los recursos, facilidades y lenguajes de que
dispone la computadora.
Podra resumirse la tarea de un sistema operativo diciendo que su funcin central es administrar y organizar los
recursos de que dispone una computadora para la mejor utilizacin de la misma, en beneficio del mayor nmero posible
de usuarios.
MODELO DE ESTUDIO PARA LOS SISTEMAS OPERATIVOS
El estudio de los sistemas operativos suele dividirse en funciones jerrquicas, que van desde niveles muy
cercanos a la mquina misma hasta niveles ms virtuales, en el sentido de que ya no tratan a la computadora como una
mquina (dotada de un procesador y de memoria, etc.), sino como un esquema diseado para manejar informacin, sin
preocuparse demasiado por detalles como registros, bloques, etc.
Esta es una idea fundamental; un sistema operativo convierte a una mquina computadora real en una
computadora virtual, que es capaz de hacer cosas cualitativamente diferentes a las de su contraparte fsica. Para
entender esto, pinsese en el concepto usual de lo que es una computadora, y se apreciar que, en general uno se refiere a
una computadora en trminos virtuales, y no reales (una computadora es un cerebro electrnico capaz de almacenar
muchsima informacin y manejarla y procesarla a enorme velocidad, o es la encargada de cobrarme el telfono).

Manejo de Informacin
Manejo de Entradas
y Salidas
Manejo del
Procesador
Manejo de
Memoria
Nucleo

UN MODELO DE ESTUDIO PARA LOS SISTEMAS OPERATIVOS


Si se piensa a una mquina por un lado y en el ser humano por el otro, inmediatamente saltar a la vista que
existe un abismo en sus capacidades de comunicacin; el lenguaje que la computadora maneja no es ms que una burda
imitacin del lenguaje que hablamos los humanos y, por tanto, la comunicacin que se puede establecer entre mquina y
hombre es muy rudimentaria. La funcin general de la programacin de sistemas consiste en hacer ms fcil el camino
que nos separa de las computadores, y la de los sistemas operativos en particular consiste en lograr que la comunicacin
se haga de manera tal que el humano vea una imagen virtual de la computadora, y no necesariamente note que lo que tiene
enfrente es un aparato dotado de un acumulador y medio milln de celdas de memoria.

91

Esta no es una tarea fcil, pues se requiere la automatizacin de cientos (o miles) de pequeas tareas, que van de
lo trivial a lo enormemente complejo. La jerarquizacin mencionada parte del hecho de que un sistema de cmputo est
configurado alrededor del procesador y de la memoria, y a partir de estos recursos se van formando herramientas de
programacin de sistemas (esto es, programas especficos) que permiten utilizar la mquina como sistema, y no como
partes aisladas.
El esquema que suele seguirse para el estudio de los sistemas operativos recibe el nombre de modelo
de cebolla, debido a que est formado por capas concntricas alrededor de un ncleo. La parte interna del conjunto
recibe el nombre de ncleo (o kernel , en ingls).
Para el anlisis que sigue es necesario definir algunos trminos. Se llama programa a un conjunto de
instrucciones escritas en algn lenguaje de computacin (en este momento no importa si estn en un lenguaje de alto nivel
o si consisten en cadenas de unos y ceros del lenguaje de mquina). La caracterstica principal de un programa, en este
sentido, es que es la especificacin de un conjunto de instrucciones estticas, puesto que estn escritas y an no se han
ejecutado. Slo son un adelanto de lo que va a suceder cuando se les d vida. Claro que cuando un programa se
ejecuta, lo que se observa ya no es un conjunto de instrucciones, sino uno de acciones, que no son otra cosa que las
instrucciones en estado activo. Se llama proceso a un conjunto de acciones -dinmicas- que son el resultado de la
ejecucin de un programa. es decir, el concepto de programa es anterior necesariamente al de proceso. El agente que da
vida a una instruccin (para convertirla en accin) se llama procesador.

Procesador

Programa Obejto en Disco


(esttico)

Proceso Ejecutable
(dinmico)

Programa vs. proceso


Se dice que dos procesos son concurrentes cuando se ejecutan (accin por accin) en el mismo intervalo de
tiempo; y dos procesos se consideran simultneos cuando se ejecutan en el mismo instante. Es decir, para que exista
simultaneidad entre n procesos, se debe forzosamente contar con n procesadores, mientras que para ejecutarlos
concurrentemente se requiere tan slo repartir el procesador entre ellos a una velocidad tal que, por unidad de tiempo,
todos reciban su atencin (aunque sea parcial). Este ltimo concepto, que es la base de la multiprogramacin y el tiempo
compartido recibe el nombre de multiplexacin en tiempo.
EL NCLEO DEL SISTEMA OPERATIVO
Est claro que el problema de la concurrencia entre procesos tiene que resolverse en el nivel ms cercano
posible al ncleo del sistema operativo, ya que la multiplexacin del procesador es una operacin primitiva, es decir,
combinndola con otras, sirve para formar funciones ms complejas dentro del sistema.
Las funciones de un ncleo consisten en tomar el control del procesador y determinar cundo y cmo lo va a
repartir entre diversos usuarios.
En trminos generales sucede que el procesador abandona el proceso que est siendo ejecutado, y dedica su
atencin a ejecutar otro, cuando el primero entra en algn estado de espera. Como se dijo antes, un proceso entra en
estado de espera cuando pide efectuar alguna operacin que sea muy lenta en comparacin con las velocidades normales
de procesamiento. Las operaciones lentas casi siempre son las de entrada/salida de datos de la computadora desde/hacia
el mundo exterior.

92

El sistema operativo detecta que se trata de una operacin lenta, clasificando un conjunto de operaciones que
puede efectuar un procesador como normales o privilegiadas. Por definicin, una operacin privilegiada es aquella
que, al ser ejecutada, causa que el procesador entre en un estado especial llamado interrupcin. Durante la interrupcin, el
procesador se detiene momentneamente y pregunta si puede (o debe) seguir ejecutando. Esta pregunta consiste en que el
procesador ejecute automticamente un pequeo programa de atencin a la interrupcin que averigua la causa de ella y
determina los pasos a seguir.
Toca entonces determinar cmo aprovechar el procesador mientras el proceso original es atendido por algn
dispositivo de entrada o salida. Esto depende, naturalmente, de si hay o no otros procesos participando en la
multiplexacin de la unidad central de procesamiento (compitiendo por el procesador).
Si no hay otro proceso en espera del procesador, tan slo se devuelve el control al proceso original, y el
procesador espera pacientemente -desperdiciando cientos de miles de ciclos de mquina- a que se complete la operacin
de entrada/salida deseada. Esto recibe en ingls el nombre de idlewait, (espera ociosa).
Pero si existen ms procesos en estado de espera, entonces sucede algo muy interesante; el proceso original se
congela y recibe el control sobre el procesador. Ahora la operacin del sistema de cmputo sigue como antes, pero
ejecutando un proceso diferente. Por supuesto que una computadora real todos estos pasos no toman ms que algunas
milsimas de segundo.
El ncleo de un sistema operativo est formado, en trminos generales, por tres subsistemas. El primero se
encarga de manejar las interrupciones del procesador central, de la manera ya descrita. El segundo tiene como funcin
escoger (y activar) un nuevo proceso para ser ejecutado, y la operacin inversa (congelar el que fue interrumpido). El
tercer programa cumple una funcin muy importante: coordinar los diversos procesos (del sistema operativo y de los
usuarios) que interactan en el ncleo del sistema operativo para que no choquen entre s, es decir, para que la UCP no se
confunda. Esta ltima funcin es terna de un estudio ms detallado.
Las tres funciones son desempeadas por otros tantos procesos del ncleo, que reciben los nombres de
manejador de interrupciones de bajo nivel, despachador y semforos. El despachador congela un proceso almacenado
-en registros especiales de la UCP- los datos voltiles que resultaron de su ejecucin, hasta antes de ser desactivado. Por
ejemplo, si se almacenan los contenidos de los diferentes registros de trabajo, del acumulador, y de otros elementos del
procesador central que intervienen en el clculo, el proceso puede ser desconectado del procesador, sin que se pierda el
avance de lo calculado hasta ese momento.
Cuando proceda, el despachador reactivar ese proceso simplemente copiando los contenidos de esos registros
especiales de regreso en el acumulador y dems registros de trabajo de la UCP, de modo que el proceso recin despertado
pueda continuar su ejecucin, como si nada hubiera sucedido.
Los registros especiales donde el despachador almacena la informacin voltil de un proceso que se desactivar
reciben el nombre (establecido por IBM en la segunda generacin) de programa status word (PSW) o vector de estado.
No hay que confundir, sin embargo, el hecho de almacenar la informacin voltil de un programa con el hecho que no sucede- de almacenar el contenido de las celdas de memoria que est utilizando cierto proceso. Est claro que esto
ltimo no tendra sentido, pues para almacenar la informacin contenida en digamos, diez mil celdas de memoria, se
requieren, precisamente, diez mil celdas adicionales, lo cual resulta absurdo. Es obvio que se deben separar esas diez mil
celdas (que pertenecen a un proceso en particular) y no permitir que sean utilizadas por ningn otro, so pena de perder la
informacin original. Esto lleva naturalmente a la segunda funcin del sistema operativo, que es controlar el uso de la
memoria.
MANEJO DE MEMORIA
Existen varias maneras de manejar la memoria en un sistema de cmputo. La ms sencilla es asignar toda la
memoria disponible a un solo usuario, pero sto no permite ms de un usuario en operacin. El primer esquema para
permitir la multiprogramacin (o sea, la activacin de varios procesos simultneamente) recibe el nombre de manejo de
memoria por particiones, y consiste en subdividir la memoria en varias secciones fijas y asignar cada una de ellas a un
usuario o proceso activo. El principal problema por resolver es asegurar que ningn usuario intervenga en el rea de
memoria asignada a otro.

93

Desde este punto de vista, el manejo de memoria consiste en controlar cuales particiones estn asignadas a
cuales procesos, para poder liberar particiones cuando los procesos en ellas terminen o cambien, y poder ofrecer
particiones libres a procesos que soliciten atencin por parte del sistema de cmputo.
La ventaja fundamental de este modelo es que permite la multiprogramacin, y su principal desventaja consiste
en que deja lugares libres en la memoria que, como son de tamao fijo, no pueden ser utilizados ms que por procesos de
longitud menor o igual a la de la particin en cuestin. Sucede muchas veces que, por ejemplo, an cuando hay dos
particiones libres de diez mil celdas cada una, no se puede dar atencin a un proceso (que se encuentra en estado de
espera en el disco magntico) que mide doce mil celdas de longitud.
La razn tcnica de esto es que no hay una particin de tamao suficiente en este momento, aunque si exista
rea suficiente en la memoria; lo que sucede es que est particionada. Este problema, llamado fragmentacin externa, se
podra evitar permitiendo que una particin pueda fusionarse con otra, para lograr una particin nueva de ms capacidad.

Monitor

Programa Objeto 1

Particin I
Particin II

Programa Objeto 2

Manejador de
la memoria

CPU

MANEJO DE MEMORIA POR PARTICIONES


Esto da lugar a un nuevo esquema de manejo de memoria que recibe el nombre de particiones relocalizables. La
idea consiste en mover celdas de memoria de un lugar a otro para juntar las reas libres en el mismo lugar. Las celdas no
se mueven, sino que sus contenidos se copian de un lugar a otro, y aunque con esto se crea un nuevo problema -el de la
relocalizacin- permite mayor flexibilidad que el anterior; slo que resulta ms costoso, puesto que hay que compactar
(mover) los procesos al tiempo de ejecucin y realizar algunos cambios en el procesador central, para evitar que este
desplazamiento cause problemas con respecto a las direcciones. Sucede que si un proceso estaba cargado a partir de la
celda 1000 las direcciones absolutas de su espacio de direcciones tienen esta celda como origen. Pero si se relocaliza y se
coloca a partir de la celda 3478, por ejemplo, las referencias a todas las direcciones tienen que alterarse -sumndoles el
desplazamiento de 2478 celdas-, a fin de que el proceso pueda continuar su ejecucin como antes. El procesador central
se encarga de este ajuste al tiempo de ejecucin por medio de un componente electrnico adicional que se conoce como
registro de relocalizacin.
En algunos temas se recurre al sencillo expediente de quitar por completo de la memoria un proceso que est
desactivado, copindolo al disco magntico liberando as un rea significativa en la memoria central. Cuando llegue el
momento de volverlo a ejecutar se cargar nuevamente trayndolo del disco magntico en el que reside. Este esquema
recibe el nombre de swapping (intercambio).
Debido a los costos que representa la compactacin (ya que es necesario detener la ejecucin del proceso para
ejecutarla) o el swapping (por el traslado hacia /desde el disco magntico toma tiempo), se invent otro esquema, ms gil
y eficiente, llamado paginacin. Esto consiste en dividir los procesos en fragmentos de longitud fija, llamados pginas,

94

residentes en memoria en otros tantos bloques. La ventaja radica en que no es necesario que las pginas de un proceso
estn contiguas en la memoria, quedndo automticamente eliminado el problema de la fragmentacin externa. Con la
ayuda de una tabla de mapo de pginas, que controla cules pginas de que procesos residen en cules bloques de
memoria, se puede implantar un esquema muy gil de manejo de memoria central, controlado por el sistema operativo.
De acuerdo con lo dicho, si ya no es necesario que todas las pginas de un proceso estn cargadas de forma
contigua en la memoria (gracias a la tabla de mapo), entonces tampoco hay necesidad de que todas las pginas de un
proceso determinado estn residentes (contiguas o no) en memoria. Es decir, se podra comenzar a ejecutar un proceso
cuando tan slo una parte del mismo est cargada en memoria, e ir cargando al tiempo de ejecucin las pginas que se
requieran. Esta importante idea recibe el nombre de memoria virtual.
Cuando un proceso pide una pgina no residente en la memoria el sistema operativo lo detecta por medio de una
interrupcin, que es atendida por el manejo de interrupciones del ncleo. Este determina la causa (interrupcin por
pgina) y copia la informacin solicitada -residente en el disco magntico- en un bloque libre de memoria.
Este nuevo esquema de manejo de memoria se llama paginacin por demanda. Sus ventajas son obvias, pues
permite una tremenda flexibilidad en el uso de recursos del sistema. Su desventaja es, fundamentalmente, su enorme
complejidad. En efecto, los sistemas operativos de este tipo constan de decenas de miles de instrucciones, y son escritos
por grupos enteros de programadores durante meses y meses, adems de que se requiere un considerable auxilio por parte
de los circuitos electrnicos para que la velocidad de procesamiento no disminuya radicalmente por la gigantesca cantidad
de operaciones adicionales que el sistema debe ejecutar. Como la tabla de pginas reside en memoria central, y es
necesario consultarla para cada acceso, se requiere un ciclo de lectura adicional (ciclo de fetch) por cada operacin sobre
una pgina, lo cul claramente es inaceptable en trminos de la reduccin de velocidad de proceso resultante. Por lo tanto,
los sistemas de paginacin por demanda emplean mecanismos adicionales de Hardware para auxiliarse en esta tarea. Uno
de ellos es conocido como la memoria Cach o memoria auxiliar rpida, en la que se guardan los contenidos activos de la
seccin de la tabla de pginas en uso, reduciendo grandemente el tiempo requerido por cada consulta. Muchos
procesadores recientes trabajan en colaboracin con otro completo subsistema electrnico para el manejo de estas tareas
de paginacin, que recibe el nombre de unidad de manejo de memoria (MMU).
Memoria

interrupcinI
CPU

disco

Manejador de
la memoria
Proceso Pagina

Tabla de mapo de paginas

95

MEMORIA VIRTUAL
Existe otro esquema de manejo de memoria que tambin permite memoria virtual, y se llama manejo de
memoria por segmentacin. En este, los procesos se dividen en fracciones llamadas segmentos. Un segmento es una
unidad lgica autocontenida (un programa completo, una subrutina o un rea grande de datos) que se carga en forma
independiente en la memoria. La diferencia con respecto a las pginas es que aquellas son de longitud fija, mientras que
los segmentos son variables, dependiendo de la cantidad de cdigo que contenga el programa o subprograma que
representan. El manejo de estos segmentos es parecido al de pginas, aunque tiene ciertas ventajas sobre ste, ya que no
se estudian por tratarse de un tema especializado. Basta con saber que una mquina con sistema operativo de
segmentacin es por lo menos tan poderosa y compleja como otra que maneja memoria virtual por paginacin.
Un ltimo esquema -el ms complejo de todos- combina las ventajas de la paginacin por demanda con las de
segmentacin, y recibe el nombre de segmentacin-paginacin, pero slo lo utilizan computadoras realmente grandes.
Como se ha visto, el problema del manejo de memoria es extenso y complicado, pero es fundamental para
comprender lo que es un sistema operativo. Sin embargo, apenas se han estudiado dos capas del modelo de la cebolla: el
ncleo y el manejador de memoria.
Lo que sigue es determinar en qu orden y con qu criterios se dar atencin a los diversos usuarios de un
sistema de cmputo o, en otras palabras, quin determina cules procesos estarn activos y cundo. Esta es funcin del
siguiente nivel.
MANEJO DEL PROCESADOR.
Este programa del sistema (a veces conocido como despachador de alto nivel o scheduler ) se encarga de
determinar el orden optimo de atencin a los diversos procesos que estn compitiendo por ganar la atencin del
procesador central. Su principal caracterstica es la capacidad de afrontar la indeterminacin, es decir, el desconocimiento
del orden en que se van a presentar los diversos procesos, el numero de ellos y su composicin. Esta claro que, empleando
un termino de la filosofa existencialista, una computadora simplemente esta ah y no se puede predecir el uso que
darn al procesador los numerosos procesos que existen, por la sencilla razn de que no existe un determinado plan de
accin, pues los procesos son independientes unos de otros y pertenecen a usuarios que no se conocen entre si.
El factor de indeterminacin hace que estos programas que manejan el procesador sean complicados y deban
considerar criterios estadsticos y suposiciones acerca del comportamiento de los posibles usuarios. Esto obliga, por otro
lado, a que el sistema maneje un conjunto de colas de espera de los procesos que no puede (o no cabe) atender en un
cierto momento. Estas colas son reas del disco magntico donde se almacenan los programas que desean ingresar al
sistema de computo.
Tal vez la funcin mas importante del scheduler sea convertir los programas de los usuarios en procesos para el
sistema. Es decir, en tomar los programas originales y asignarles una representacin interna que permita que el sistema
operativo determine los recursos que los procesos requieran de la computadora. Por ejemplo, es necesario averiguar, con
un mnimo de precisin, cuantas celdas de memoria requerir un proceso cuando entre en ejecucin, que rea de disco
necesitara, cuanto tiempo de procesador central espera consumir, etc. Todo esto con la finalidad de que el sistema
operativo pueda realizar una planeacin eficiente de la distribucin de los recursos de computo entre los diversos (y aun
no conocidos) usuarios.
A manera de ejemplo, supngase que en un supermercado dos clientes van a hacer cola a la caja de salida, uno
con muchas mercancas para pagar y otro con solo un articulo, pero no es posible determinar inicialmente a cual se
atender primero por que esto depende de su orden ---indeterminista--- de llegada a la caja. Suponiendo que ambos
llegaran al mismo tiempo a la caja y para atender a uno fueran necesarios diez minutos ---por que lleva muchas
mercancas--- y el otro fuera atendido en un minuto, esta claro que conviene atender primero a este ultimo, por que no es
grave que una espera previa de diez minutos se extienda a once, pero, por supuesto, hace que una de un minuto tarde once,
si constituye una carga para ese usuario.

96

Estados de un proceso
Listo

Se termino su
fraccion de
tiempo

Ya le toca ser
ejeutado

En
espera

Programa Objeto
en Disco

Entradas
y Salidas

Entradas
y Salidas
Bloqueado
temporalmente
(en espera de E/S)

Esto implica tambin la necesidad de que exista un proceso del sistema operativo que se encargue precisamente
de averiguar cuales procesos ya terminaron de ejecutarse, cuales estn listos para comenzar a hacerlo, cuales van a
imprimir sus resultados, etc. Este proceso recibe el nombre de controlador de trafico.
El manejador del procesador de bajo nivel (que reside en el ncleo) puede estar guiado por diversos criterios,
que determinan el tipo de operacin de la computadora. Cuando las interrupciones se deben a que los procesos piden la
ejecucin de operaciones de entrada/salida, se dice que el sistema es de multiprogramacin. Pero cuando se decide
atender cada proceso durante un tiempo fijo (un segundo, por ejemplo), entonces se esta hablando de un sistema de tiempo
compartido. No hay una distincin tajante entre la multiprogramacin y el tiempo compartido, y a veces el primer
concepto incluye al segundo, aunque estrictamente hablando si hay diferencias entre ambos. Lo importante es que estos
dos esquemas son el motor del manejador del procesador de alto nivel.
Una vez estudiadas las funciones mnimas de los procesos, queda aun por resolver el problema de la
comunicacin entre los procesos que estn en ejecucin y el mundo exterior. Para un proceso, el mundo exterior se refiere
a las unidades de entrada/salida de la computadora y, de manera adicional, a las unidades de memoria secundaria. La
siguiente capa del sistema operativo maneja las funciones de entrada/salida, o sea, la comunicacin de los procesos con su
entorno.
MANEJO DE ENTRADAS Y SALIDAS
El manejador de entrada/salida tiene como funcin principal atender los pedidos que los procesos en ejecucin
hacen sobre las unidades perifricas. Esta atencin requiere, la mayora de las veces, una traduccin lgica y fsica entre
las diversas unidades involucradas. La parte fsica hace que puedan comunicarse aparatos diferentes entre si aunque
manejen cdigos internos distintos, y la traduccin lgica tiene como funcin virtualizar los pedidos de entrada/salida y
postergar su ejecucin fsica lo mas posible.
virtualicen y sean desviados del/al disco magntico, para que no dependan de las limitaciones de los aparatos
fsicos de lectura o escritura. Cuando un proceso en ejecucin manda un carcter a la impresora, el sistema operativo lo
enva al disco magntico, a un rea especial destinada a ser la impresora virtual para ese proceso.
Y dado que se esta hablando de multiprogramacin, tambin se habla de tantas impresoras virtuales, en disco
magntico, como procesos activos haya en el sistema.

97

Lo mismo cabe sealar para el caso de las lecturas. En muchas grandes computadoras primero se leen los datos
y se guardan en una lectora virtual en disco magntico para que, cuando el proceso pida un dato, este le llegue del disco y
no de la unidad fsica de lectura.
Este concepto recibe el nombre de SPOOLing (simultneos peripheral operations on line, operacin simultnea
de perifricos en lnea). Sus ventajas son claras; al permitir una virtualizacion de las unidades de entrada/salida de la
computadora, esta se comporta como si tuviera varias de cada una y los procesos no tienen que esperar a que la impresora
este libre para seguir ejecutando. Adems, permite redirigir los archivos de impresin hacia la primera impresora
desocupada, para el caso de que la computadora disponga de varias; as mismo, posibilita la reimpresin de mltiples
copias del mismo resultado de un programa, grabado previamente en el disco. En los enormes centros de computo en los
que se procesa, por ejemplo, la nomina de los empleados federales, no deje de resultar impresionante como una gran
computadora imprime miles y miles de cheques u otros documentos en una decena de impresoras de gran velocidad en
forma simultnea.

SPOOle

SPOOle

CPU
Esta capa se encarga tambin de las transferencias fsicas de informacin entre las unidades de entrada/salida y
los procesos de ejecucin. Como ya se dijo, realiza en forma automtica las traducciones necesarias entre cdigos diversos
y velocidades de acceso diferentes. Una seccin muy importante de ella es el subsistema de manejo lgico del disco
magntico, que virtualiza los pedidos de informacin, para que los procesos no tengan que preocuparse de cual pista o
sector del disco contiene el dato perdido. El proceso de ejecucin simplemente solicita el valor de la variable ALFA que
esta residente en el disco, en el rea dedicada de antemano por el sistema, y entonces se traduce este pedido al disco
magntico mover el brazo de lectura del disco al sector 15 de la pista 256, para leer de ah la informacin que contenga
y colocarla en un rea de almacenamiento temporal. Una vez hecho esto, el sistema le avisara al proceso (por medio de
una interrupcin) que ya puede recoger, de dicha rea, los datos que se haban solicitado.
MANEJO DE INFORMACIN
Una vez resueltos los problemas de lograr el acceso a la informacin de manera fsica, queda el de hacer uso
humano de esta. De eso se encarga una nueva capa del sistema operativo, que recibe el nombre de sistema de archivos
o (manejador de informacin).
Sus funciones son permitir a los usuarios el manejo libre y simblico de prcticamente cualquier cantidad de
informacin que deseen almacenar, leer, imprimir, alterar o desechar. Se trata de un manejo libre porque en lo posible
tendr el menor numero de restricciones fsicas o lgicas, y simblico ya que el usuario no tendr que preocuparse de los
modos de acceso al disco magntico ni de otros detalles, ya que han sido virtualizados por el manejador de
entradas/salidas, y simplemente har referencia a su informacin por el nombre simblico que decidi asignarle
libremente.
No solo eso, sino que el sistema tambin puede almacenar la informacin por plazos indefinidos, y recuperarla
en cualquier momento, a la vez que maneja criterios de seguridad de acceso y de proteccin. Todo sistema operativo
moderno garantiza de alguna manera la seguridad e integridad de la informacin que le ha sido confiada por los usuarios,
y lo logra por diferentes medios, que van desde mantener copias ocultas hasta revisar peridicamente que se respalde de
forma automtica en algn lugar seguro. Hay sistemas que incluso reconstruyen archivos daados por accidente o
negligencia.
A estas alturas no es ninguna sorpresa que los sistemas operativos realmente grandes constituyen verdaderos
esfuerzos de ingeniera humana y de programacin, de una complejidad tal que no existen personas que por si solas
comprendan en detalle su operacin completa, sino que son producto de equipos de ingenieros, analistas y programadores.
Por ultimo, es necesario que todo sistema operativo se comunique con los usuarios de alguna manera. Y existen
bsicamente dos formas de lograrlo: mediante un lenguaje de control que el interesado aprende, o por medio de mens que
el sistema despliega en la pantalla, para que el usuario escoja la operacin que desea efectuar. Ambos sistemas tienen

98

ventajas y desventajas, aunque son mas los sistemas operativos que manejan el concepto de lenguaje de control que el de
mens.
Por lo que se ha visto, una computadora (en el sentido amplio) no es tal sin un sistema operativo que le de
soporte y la haga aparecer como mucho mas de lo que realmente es: un complejo aparato electrnico. De aqu en adelante
cuando se hable de un equipo de cmputo se considerar, sin falta, al sistema operativo como integrante indispensable del
mismo, no obstante que ya sabemos que se trata de un conjunto de procesos de la programacin de sistemas que le da
vida y potencia a la gran mquina.
4.7 INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
La inteligencia artificial se fundamenta en la utilizacin de una computadora de caractersticas especiales en
cuanto a potencia de clculo, velocidad de proceso y capacidad de almacenamiento, que puede soportar un software
compuesto por uno o varios programas denominados motor de inferencias, que actan sobre una gran masa de datos que
recibe el nombre de base de conocimientos, generalmente compuesta por un conjunto de hechos, teoras y reglas
fundamentadas en la experiencia que se posee ( por parte de expertos ) relativa a un problema determinado.
Un programa de inferencias es un componente del motor de inferencias que constituye un mtodo para utilizar la
base de conocimientos con el fin de razonar sobre la resolucin de un problema. Se toman una serie de datos de entrada y
se realiza con ellos una serie de bsquedas y comparaciones con los datos e informaciones que componen la base de
conocimientos hasta que encuentra una solucin al problema.
El proceso, generalmente, consiste en tomar un dato que se busca en la base de conocimientos y, una vez
encontrado, se obtiene informacin acerca de el, provocando la bsqueda del siguiente; se repite este proceso hasta llegar
a una posible solucin del problema. Este encadenamiento de bsquedas sucesivas de datos es controlado por el programa
que sigue un determinado razonamiento lgico.
La siguiente fig. muestra un esquema del fundamento de la inteligencia artificial y el modo en que se ejecuta en
una computadora.
UNIDAD
DE CONTROL

UNIDAD DE
CONTROL

MEMORIA CENTRAL
Algoritmosde bsqueda
y comparacion de datos

Datos

Memoria
Externa
Base
De
Conocimientos

APLICACIONES DE LA INTELIGENCIA ARTIFICIAL


La inteligencia artificial se aplica en numerosos tipos de problemas que se salen de la resolucin algoritmica
clsica. El esquema anterior representa los principales campos de aplicacin en los que se mueve este tipo de software
Sistemas expertos
Utilizacin del lenguaje natural
La inteligencia artificial
Reconocimiento de la vos
Reconocimiento de formas
Robotica
.......

99

SISTEMAS EXPERTOS.
Un sistema experto o sistema de conocimiento basado en reglas de inferencia es un conjunto de programas que
puede acceder a una gran masa de informaciones donde se renen las experiencias y conocimientos de uno o mas expertos
en un determinado campo de la ciencia o de la tcnica para la resolucin de problemas.
UTILIZACIN DE LENGUAJE NATURAL
Las aplicaciones que utiliza el lenguaje natural ( Natural languaje processing - NLP ) realizan procesos que
reciben los datos de entrada en lenguaje natural, entendiendo como tal un lenguaje escrito o hablado en un determinado
idioma y, a continuacin, los procesan, produciendoce la salida tambin en lenguaje natural.
Un programa de reconocimiento del lenguaje natural consta de una base de conocimientos que contiene un
diccionario completo de palabras del idioma, donde el objetivo del programa es el reconocimiento de las mismas para
provocar las reacciones correspondientes a cada reconocimiento.
En la actualidad, se utilizan mucho estos programas como interfaces entre el exterior y una aplicacin
informtica, como puede ser la programacin en un lenguaje determinado o el acceso o consulta a un sistema de gestin
de bases de datos utilizando la voz o la propia escritura.
RECONOCIMIENTO DE LA VOZ
Las aplicaciones de reconocimiento de la voz tienen como objetivo la captura, por parte de una computadora, de
la voz humana, bien para el tratamiento del lenguaje natural o para cualquier otro tipo de funcin.
En primer lugar, la voz se captura electrnicamente con un micrfono que genera una seal analgica, para a
continuacin, convertirla a una seal digital que pueda alimentar a un programa inteligente capaz de interpretarla con
exactitud. En este caso, la base de conocimientos contiene los patrones para que el programa pueda realizar las
comparaciones y se produzca el reconocimiento
La sig. fig. representa el esquema simblico de este tipo de aplicaciones
Base de
conocimientos

convertidor
A/D

Reconocimiento de la voz

Programa

reconocimiento de
voz

100

RECONOCIMIENTO DE FORMAS
Las aplicaciones de reconocimiento de formas tratan de imitar la visin humana a travs de la captacin de una
imagen por medio de una cmara de video. Esta imagen produce una seal analgica que posteriormente se digitaliza y, a
continuacin, se procesa por medio de un programa inteligente que realiza las correspondientes comparaciones con los
patrones contenidos en la base de conocimientos hasta conseguir el reconocimiento.
La sig. fig. representa el esquema simblico de captura y proceso de una imagen.

convertidor
A/D

Base de conocimientos

Reconocimiento de formas

Programa

Reconocimiento de
formas

ROBOTICA
La robtica inteligente es la parte de la inteligencia artificial que trata de imitar las capacidades fsicas de los
seres humanos. Se trata de la construccin y control de elementos electromecnicos, denominados comnmente brazos de
robot, que pueden realizar determinadas funciones fsicas que habitualmente hacen las personas. Adems de las
posibilidades fsicas, se aaden sensores y reconocedores de formas, con lo que puede obtenerse un robot inteligente
capaz de controlar su entorno y sustituir al hombre en aquellos trabajos rutinarios y tcnicos a la vez, donde
compaginando con el esfuerzo fsico se requiere una cierta destreza tcnica.
LA RETROALIMENTACION
Un campo de continuo estudio es el que trata de conseguir que los procesos aprenden y se reajustan con los
datos que reciben y con las salidas que producen, es decir, dotar a los programas inteligentes de capacidad para aprender
con su propia experiencia.
ENSEANZA ASISTIDA POR COMPUTADORA
Con las aplicaciones de enseanza asistida, la computadora se convierte en un seudo profesor, capaz de ensear
una determinada tarea que puede complementar la accin de un profesor. En este caso, se trata de establecer un dialogo
con el alumno con el fin de ensearle y transmitirle conocimientos, al mismo tiempo que se le evala continuamente, de
tal manera que las propias enseanzas van reajustndose a los resultados de dicha evaluacin.
Existen otros tipos de aplicaciones de la inteligencia artificial, como pueden ser las ayudas a la ingeniera del
software, a la programacin de computadoras, etc.
En este largo camino de esfuerzos de comunicacin entre la mquina y el ser humano se puede Dislumbrar una
ltima etapa, que debera ser considerada como la finalidad de la programacin de sistemas: la comunicacin directa con
la mquina, en lenguaje natural, y sin el complicado conjunto de lenguajes intermedios que se han descrito antes. Esta
idea es, en principio, inalcanzable en toda su extensin, ya que implicara la capacidad de reproducir a la perfeccin los
extraordinariamente complejos mecanismos lingsticos (entre otros) que nos caracterizan, lo cul requerira una virtual
reinvencin del ser humano, tarea que evidentemente no nos es accesible.
S es posible, sin embargo, acercar an ms la computadora a nosotros, simulando -aunque sea en grado
imperfecto y limitado- algunas de las aptitudes verbales, de razonamiento y de entendimiento que poseemos; y sta es
precisamente la tarea del campo de tcnicas y conocimientos que se identifica como inteligencia artificial.

101

Debe quedar claro que la inteligencia artificial no implica computadoras inteligentes; implica ms bien
computadoras que ejecutan programas diseados para simular algunas de las reglas mentales mediante las cuales se puede
obtener conocimiento a partir de hechos especficos que ocurren, o de entender frases del lenguaje hablado, o de aplicar
estrategias para ganar juegos de mesa.
Esto no impide que la inteligencia artificial avance con gran rapidez, y ya se tienen bsicamente resueltos los
problemas de entendimiento de frases cortas habladas, del camino a seguir en juegos de mesa que requieren anlisis de
estrategias y de la capacidad de decir algo coherente.
Tal vez el progreso ms visible se ha dado en lo que se conoce como sistemas expertos, que es el nombre
genrico para los programas especializados en algn campo especfico del conocimiento, y quienes tienen la capacidad de
simular razonamientos parecidos a los que hara una persona versada sobre el tema en cuestin. Un sistema experto puede
dictaminar la conveniencia de iniciar una exploracin preliminar en busca de petrleo a cierta profundidad, una vez que ha
analizado los datos geolgicos adecuados. Es importante aclarar que un sistema experto opera sobre un solo campo de
conocimientos y que, por tanto, est dedicado exclusivamente a eso.
La estructura interna de un sistema experto est basado en lo que se conoce como mquina de inferencias:
un programa capaz de manejar el conjunto de reglas de razonamiento necesarias para llegar a una conclusin que no existe
en ese momento sino que se generar como resultado del anlisis. El mecanismo de inferencias puede reconstruir hasta
cierto grado los pasos lgicos que hay que dar para extraer conocimiento de un conjunto de datos y de las reglas
predefinidas para su manipulacin. Para lograr lo anterior el sistema contiene lo que se conoce como una base de
conocimientos (trmino derivado de base de datos) formada por reglas y atributos, y un procedimiento para su
evaluacin y aplicacin, ligado con un subsistema gramatical para la presentacin de preguntas y resultados por la
pantalla.
Ejemplo, en juegos de estrategia; y en inteligencia artificial se habla tambin de programacin heurstica,
que se refiere a tcnicas de bsqueda y anlisis que producen comportamientos menos rgidos que los que de ordinario se
esperan de un programa de computadora, porque internamente determinan el camino ptimo a seguir para llegar a un fin
propuesto.
En el caso de sistemas matemticos sobresalen los que pueden manipular y demostrar algunos teoremas y los
que tienen capacidades algebraicas, casi ilimitadas, que les permiten hacer derivacin e integracin simblica, resolver
series y simplificar y transformar ecuaciones extraordinariamente complejas. Este tipo de sistemas, y en general casi
todos los relacionados con la inteligencia artificial, suelen estar escritos en lenguajes de programacin especializados,
entre los que destacan LISP y PROLOG, aunque en principio cualquier lenguaje de programacin podra servir para este
propsito.
La inteligencia artificial ocupa el sitio ms avanzado dentro de la programacin de sistemas y, por ello, no debe
resultar raro que sea un campo avanzado de conocimientos dentro de las ciencias de la computacin. En general, la
inteligencia artificial se estudia en cursos de postrado, o en los ltimos niveles de una carrera universitaria en
investigacin.

102

Este libro fue distribuido por cortesa de:

Para obtener tu propio acceso a lecturas y libros electrnicos ilimitados GRATIS


hoy mismo, visita:
http://espanol.Free-eBooks.net

Comparte este libro con todos y cada uno de tus amigos de forma automtica,
mediante la seleccin de cualquiera de las opciones de abajo:

Para mostrar tu agradecimiento al autor y ayudar a otros para tener


agradables experiencias de lectura y encontrar informacin valiosa,
estaremos muy agradecidos si
"publicas un comentario para este libro aqu".

INFORMACIN DE LOS DERECHOS DEL AUTOR


Free-eBooks.net respeta la propiedad intelectual de otros. Cuando los propietarios de los derechos de un libro envan su trabajo a Free-eBooks.net, nos estn dando permiso para distribuir dicho
material. A menos que se indique lo contrario en este libro, este permiso no se transmite a los dems. Por lo tanto, la redistribucin de este libro sn el permiso del propietario de los derechos, puede
constituir una infraccin a las leyes de propiedad intelectual. Si usted cree que su trabajo se ha utilizado de una manera que constituya una violacin a los derechos de autor, por favor, siga nuestras
Recomendaciones y Procedimiento de Reclamos de Violacin a Derechos de Autor como se ve en nuestras Condiciones de Servicio aqu:

http://espanol.free-ebooks.net/tos.html