Você está na página 1de 102

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. Computadoras con Inteligencia Artificial Interconexin entre todo tipo de computadoras, dispositivos y redes (redes integradas) Integracin de datos, imgenes y voz (entorno multimedia) Utilizacin del lenguaje natural (lenguaje de quinta generacin)

2. 3. 4. 5.

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. Nuevos microprocesadores de muy alto rendimiento 68040, etc. PS/2 alguna de las cuales emplean el 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 Suma Resta . . Cdigo Interno 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 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 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.

( 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 21 22 22 Cdigo 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

CICLO DE FETCH

Memoria- Programa datos en cdigo binario

CPU
Registros de Datos

Unidad de Control

CPU
Registros de Datos

Unidad de Control

Unidad aritmetico logica

Registro de instruccin y contadores de Circuitos Decifradores

Unidad aritmetico logica

Registro de instruccin y contadores de programa Circuitos Decifradores

1.- Traer la instruccin de la memoria

2.- Leer los datos de la memoria

18

CICLO DE EJECUCION Memoria- Programa y datos en cdigo binario

Memoria- Programa y datos en cdigo binario

CPU
Registros de Datos

Unidad de Control

CPU
Registros de Datos

Unidad de

Unidad aritmetico logica

Registro de instruccin y contadores de programa Circuitos Decifradores

Unidad aritmetico logica

Registro de instruccin y contadores de 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 IIII V VI VII VIII Sistema Romano Inicial Sistema maya 7 8 9 0 Sistema Actual VIIII X

II

III

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 1 3 2 2 3 1 7 2X100 = 3X101 = 1X102 = 7X103 = 2X1 3X10 1X100 7X1000 = = = = 2 30 100 7000 7132

Parte Entera 104 103 102 100 101 10 100 1

Parte Fraccionaria

101

10-2

10-3

10000 1000

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 26 25 32 24 16 23 8 22 4 21 2 20 1 Parte Fraccionaria

2-1 1/2

2-2 1/4

2-3

2-4

2-5

128 64

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 0+0=0 0+1=0 Tabla del 1 1+0=1 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 0 - 0= 0 0 - 1 = no cabe Tabla del 1 1 - 0= 1 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 0 * 0= 0 0 * 1= 0 Tabla del 1 1 * 0= 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 ------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 .. .. octal

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 83 512 82 64 81 8 80 1 Parte Fraccionaria

8-1 1/8

8-2 1/64

8-3 1/512

Punto Octal El numero octal 304.763, ser convertido a su equivalente decimal por el mtodo siguiente: 3 0 4 . 7 6 3 3 6 7 4 0 3 3X8-3 = 6x8-2 = 7x8-1 = 4x80 = 0x81= 3x82 = 3x1/512 6x1/64 7x1/8 4x1 0X8 3x64 = = = = = = 4 0 192 196. 975 .006 .094 .875

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 Agrupacin Binaria Nmero Octal 111 7 111110101011010 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 163 4096 162 256 161 16 160 1 Parte Fraccionaria

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 5 4 4 5 8 4x16-1= 5x16-0 = 8x16-1 = 1/16= 5x1= 8x16= 4/16 5 128 = = = = 5 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 1110 E 1110001011010011 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

F
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 Problema:

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

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 0000 0001 0010 0011 0100

Decimal 0 1 2 3 4

BCD 0101 0110 0111 1000 1001

Decimal 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 :

H
01001000 72

O
01001111 79

L
01001100 76

A
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 MULTIPLOS.*** Kbyte *** Megabyte *** Gigabyte *** Terabyte *** Word *** Doubleword *** Kword

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 Micro ordenes

Circuito Operacional

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.

Reloj Secuenciador

Contador 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 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

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

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 00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 11111000 11111001 11111010 11111011 11111100 11111101 11111110 11111111

(a) direccion etiqueta 000 001 010 011 100 101 110 111

de memoria datos

00000

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 datos

00000001 direccin principal memoria principal

datos de la dir. principal

memoria cach

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 P1 P3 Moden P2 P1 P3

Puerto Sincrono Moden

P4

PP1

Sincrono 2400/19200

PP1

P4

P2

PP1

PP1

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) b) Esta escrito en ceros y unos ( el ejemplo esta en hexadecimal, por claridad ). 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 Se convierte en el programa objeto equivalente: Separado X instruccion 2121 5722 9623 70 Secuencia seguida 21215722962370 21 22 23

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 GAMA = ALFA+BETA

que ya es algo ms parecido a lo que realmente se desea hacer, que es: 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 A B C E D Direccin Asignada 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 Programa Fuente

Ensamblador

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 Minicargador 1600 Programa Objeto P1 Espacio Libre 100 Cargador 2000 Espacio Libre 600 Ensamblador

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>

<Frase Verbal>

<Articulo>

<Sustantivo>

<Verbo>

<Adjetivo>

La

Casa

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 = C + 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 GENERACIN Y OPTIMIZACIN DE CDIGO OBJETO

Otras estructura s de datos comunes

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

Compilador

CPU

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)


Programa vs. proceso

Proceso Ejecutable (dinmico)

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 Bloqueado temporalmente (en espera de E/S)

Entradas y Salidas

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 Externa Base De Conocimientos

MEMORIA CENTRAL Algoritmosde bsqueda y comparacion de datos Datos

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

Programa

Reconocimiento de la voz

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

Programa

Reconocimiento de formas ROBOTICA

Reconocimiento de formas

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

Você também pode gostar