• No se han encontrado resultados

MANUAL DE INTRODUCCIÓN A LA COMPUTACIÓN Universidad de Guadalajara

N/A
N/A
Protected

Academic year: 2021

Share "MANUAL DE INTRODUCCIÓN A LA COMPUTACIÓN Universidad de Guadalajara"

Copied!
103
0
0

Texto completo

(1)

MANUAL DE INTRODUCCIÓN A LA COMPUTACIÓN Universidad de Guadalajara

Revisado por:

(2)
(3)

1.1 ANTECESORES Y RAZON DE EXISTENCIA

En la antigüedad para realizar cálculos matemáticos se hacia uso de sistemas muy rudimentarios, tales como los dedos de las manos, nudos en cuerdas, agrupación de piedras, etc.

Se dice que el sistema mas eficaz fue la utilización del ABACO.

El ABACO es el dispositivo de conteo mecánico (se remonta a 5000 años atrás); el ábaco aun se usa en la educación para demostrar los principios del conteo y la aritmética.

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 Analítica de Charles Babbage d) Maquina Tabuladora de Hollerith e) La Mark I

f) ENIAC

El francés Blaise Pascal (1623-1662) uno de los grandes Filósofos y Matemáticos de la historia construyo una maquina para sumar basada engranes, llamada Pascalina esto fue en el año de 1642 y hasta la fecha se siguen empleando en las cajas registradoras mecánicas y en los cuenta kilómetros de los automóviles y anteriormente en las gasolineras.

El francés 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 día de descanso) su solución fue el telar de Jacquard.

Se construyo en 1801. El movimiento de las agujas el hilo y la tela se dirigía 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 aceptación inmediata entre los propietarios de las fabricas de telas porque podían 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 analítica”, personas de todo tipo desde los banqueros hasta los navegantes dependían de las tablas matemáticas durante la apresurada revolución industrial. Sin embargo estas tablas calculadas en forma manual por lo regular contenían muchos errores. Después de percatarse que sus propias tablas contenían gran cantidad de errores Charles Babbage ideo una “maquina diferencial” accionada a base de vapor y luego una “maquina analítica” que realizaba cálculos tediosos con precisión, como eran todas las operaciones matemáticas (60 Operaciones por segundo), con posibilidad de ser programadas por medio de tarjetas perforadas, también se ideo para la realización automática de tablas de logaritmos y funciones trigonométricas. Se diseño en 1833, requería miles de engranes y transmisiones ocuparían el área de un campo de fútbol y se impulsaría 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 tecnología de los engranes nunca pudo completarse. Babbage se le conoce como “el padre de la informática” murió en 1871 en un asilo de ancianos y sus ideas desaparecieron en la oscuridad de la historia.

No fue sino hasta la década de 1940 en que se supo de su genio al descubrir sus escritos pero ya en ese tiempo existían laboratorios completos de ingenieros e investigadores trabajando en la invención de las computadoras electrónicas. A la computadora de Babbage también se le conoce como la maquina que no se llego a terminar.

(4)

En 1940, John W. Mauchly y John Presper Eckert junto con científicos de la Universidad de Pennsylvania, construyeron en la escuela Moore de Ingeniería Eléctrica, a petición del ministerio de defensa de Estados Unidos, la primera computadora electrónica denominada ENIAC (Electronic Numerical Integrator and Calculator ) construida a base de válvulas de vacío, que entró en funcionamiento en 1945. En el equipo de construcción 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 consistía en que esta última era programable y universal, es decir, podía ser aplicada a cualquier tipo de cálculos. Fue muy utilizada por el Ejercito de los Estados Unidos para el cálculo de la trayectoria de proyectiles por medio de tablas.

Poco después, en 1951. John W. Mauchly, construyó la primera computadora de serie puesta a la venta: ésta fue la UNIVAC-I (Universal Automatic Computer-Computador Automático Universal), que también utilizaba cintas magnéticas.

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 compañía IBM (Internacional Businnes Machines) la cual se encargo de dividir en generaciones la evolución 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 electrónica

b) La existencia de una teoría matemática para describir combinaciones de variables Lógicas y sustentar una visión del mundo que llamaremos Digital.

c) Disponibilidad de grandes capitales para la investigación y el desarrollo tecnológico • 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 rápida el problema de efectuar los miles y miles de cálculos requeridos para determinar la trayectoria de un proyectil.

El Departamento de Defensa de los Estados Unidos de América y la Universidad de Pennsylvania trabajaron en un proyecto destinado a obtener trayectorias balísticas por medios mecánicos o electrónicos, 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 cálculos y procesos complicados que requieren una toma rápida de decisiones.

(5)

FUNCIÓN DE LA COMPUTADORA

Las computadoras pueden resultar misteriosas, pues son productos de alta tecnología.. Se les han atribuido características humanas o superhumanas y debemos reconocer que las computadoras son simplemente herramientas diseñadas, programadas y utilizadas por personas.

La limitación más importante de las computadoras es que no pueden pensar por si mismas, no pueden resolver problemas ni tomar decisiones sin la intervención del hombre.

Aun así, las computadoras son muy útiles para organizar la información para la resolución de problemas y la toma de decisiones. Las computadoras pueden efectuar cosas sorprendentes cuándo 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 explícitas al instruir a las computadoras para que desarrollen cualquier tarea sencilla.

Lo que las computadoras pueden hacer resulta extremadamente útil. Estas pueden: * Almacenar grandes volúmenes de información

* Procesar datos rápidamente y con exactitud * Representar números gráficamente

* Simular posibles resultados basados en un conjunto determinado de condiciones * Recomendar o tomar una acción basada en los resultados.

1.2 GENERACIONES DE COMPUTADORAS

PRIMERA GENERACION. Comprende desde 1946 hasta 1958, tomando en consideración dentro de la primera generación las computadoras construidas en 1944, 1946 y 1947 las cuales estaban construidas con las siguientes características:

1) Estaban construidas por tubos al vacío (18,000 bulbos) que al producir bastante calor empezaban a emitir errores.

2) Estaban compuestas aproximadamente por 200,000 piezas mecánicas y 800,000 metros de cable, lo cual provocaba que su estado físico fuera muy grande.

3) El estado del aire acondicionado era de estricta calidad el cual variaba entre los 17 y los 22 grados centígrados, de esta forma se evitaban los errores.

4) La programación era externa, por medio de módulos y la memoria por tambores magnéticos. 5) Su peso era aproximadamente entre 70 y 80 toneladas.

6) Su longitud era entre 18 a 20 metros. 7) En software ( Lenguaje Maquina )

(6)

SEGUNDA GENERACION. Desde 1958 a 1965, dentro de esta generación la evolución de las computadoras es bastante marcada, es decir, es notable la diferencia, por lo que también tiene sus características. Este sistema no era muy eficaz ya que constantemente se perdía la información porque el tambor magnético no tenia capa protectora

1) Los bulbos son sustituidos por transistores.

2) Disminuye el tamaño físico de las computadoras aproximadamente en un 50%. 3) También disminuye el control de calidad del aire acondicionado.

4) La programación es interna y se puede soportar todos los programas de proceso. 5) La velocidad de operación es de microsegundos.

6) En software ( Los Lenguajes de alto Nivel )

TERCERA GENERACION. Comprende desde 1965 hasta 1970, dentro de esta generación el tamaño físico de la computadora se reduce a lo máximo y tiene las siguientes características:

1) El transistor es sustituido por el microtransistor.

2) Disminuye de un 60 a un 70% el tamaño físico de las computadoras. 3) El control de calidad del aire acondicionado también disminuye. 4) La memoria sigue interna por medio de núcleos magnéticos. 5) La velocidad de proceso sigue siendo de microsegundos. 6) En software ( Sistema Operativo )

CUARTA GENERACION. Comprende de 1971 hasta 1980, dentro de esta generación el tamaño físico de las computadoras se reduce de un 80 a un 90% y tienen las siguientes características:

1) El microtransistor es sustituido por circuitos integrados los cuales tienen la función 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 multiprogramación y el teleproceso local y remoto. 5) En software ( LISP, PROLOG )

(7)

QUINTA GENERACION. Aunque no sea totalmente correcto decir que las computadoras actuales son de la cuarta generación, ya se habla de la siguiente, es decir de la quinta.

Comprende de (1981 - 199?). En 1981, los principales países productores de nuevas tecnologías (fundamentalmente Estados Unidos y Japón) anunciaron una nueva generación, esta nueva generación de computadoras tendrá las siguientes características estructurales:

1. Estarán hechas con microcircuitos de muy alta integración, que funcionaran con un alto grado de paralelismo y emulando algunas características de las redes neurales con las que funciona el cerebro humano.

2. Computadoras con Inteligencia Artificial

3. Interconexión entre todo tipo de computadoras, dispositivos y redes (redes integradas) 4. Integración de datos, imágenes y voz (entorno multimedia)

5. Utilización del lenguaje natural (lenguaje de quinta generación)

Estos conceptos merecen una somera explicación, debido a que si representan avances cualitativos con respecto a las generaciones anteriores.

La mayoría de las computadoras actuales ejecutan las instrucciones del lenguaje de maquina en forma secuencial, es decir, efectúan una sola operación a la vez. Sin embargo, en principio también 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 técnica que permite que dos o más 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 multiprogramación se refiere a dos o más programas corriendo o procesándose al mismo tiempo. La multiprogramación se controla a través del sistema operativo, el cual observa los programas y los vigila hasta que estén concluidos. El número de programas que pueden multiprogramarse en forma efectiva, depende de una combinación de la cantidad de memoria, de la velocidad de la CPU y del numero y velocidad de los recursos periféricos que tenga conectados, así como de la eficiencia del SISTEMA OPERATIVO.

(8)

1.3 MICROCOMPUTADORAS Y COMPUTADORAS PERSONALES. ¾ TIPOS DE COMPUTADOAS.

Desde el punto de vista de construcción, 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 más conocidas son:

LAS CALCULADORAS. Son maquinas para ejecutar un determinado numero de algoritmo predefinido de tipo matemático (suma, resta, multiplicaciones, divisiones, funciones trigonometricas, logaritmos, funciones estadísticas, etc.).

LAS COMPUTADORAS ANALOGICAS. Son maquinas destinadas al control del proceso y a la simulación. en la actualidad se encuentran instaladas en cadena de fabricación y en mercados, como el de la automatización entre otros.

MAQUINAS CON LOGICA PROGRAMADA. Son la computadoras convencionales que admiten programación de algoritmos por medio de lenguajes de programación: por ellos son maquinas de propósito general, pues se puede aplicar a cualquier tipo de procesos. Estas computadoras tienen las siguientes características:

1. Gran velocidad de calculo

2. Gran capacidad de almacenamiento 3. Gran precisión

4. Versatilidad o posibilidad de realizar multitud de trabajos de distintos tipos.

5. Automatización, pues la mano del hombre interviene relativamente poco en el trabajo final que realiza la computadora.

6. Asiduidad, puesto que en ellas no existe el cansancio y ejecutan con la misma precisión la primera y la última operación.

Una computadora de lógica programada solo puede realizar tres tipos de operaciones. • Operaciones aritméticas (suma y resta)

• Operaciones lógicas (operaciones) • Almacenar o recuperar operación

La versatilidad de una computadora se obtiene al reducir cualquier problema simple o compuesto en una combinación adecuada de estas operaciones.

Antes de hacer una clasificación formal de las computadoras según el tipo de señales 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 analógicos.

Si la escala de manifestaciones de las variables de un suceso sólo tiene determinados valores, se dice que es de tipo discreto y recibe el nombre de digital.

(9)

¾ CLASIFICACION DE LAS COMPUTADORAS POR SU CAPACIDAD

Atendiendo a la configuración o estructura interna de una computadora puede, clasificares de la siguiente forma:

CONPUTADORAS ANALOGICAS. Son aquellas que manejan señales eléctricas analógicas proporcionales a medidas físicas de tipo continuo. Su programación en la mayoría de los casos está en su propio cableado y se utiliza fundamentalmente para controlar procesos y en problema de simulación.

COMPUTADORASA DIGITALES. Maneja señales eléctricas de tipo digital. Se programa por medio de lenguajes de programación y su utilización 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 HÍBRIDAS. Poseen características de las dos anteriores. Suelen estar constituidas de una computadora digital que procesa información analógica, para lo cual tiene sus entradas y salidas controladas por medio de convertidores analógico - digitales y digitales - analógicos

Computadora Analógica

Computadora Híbrida

¾ Computadoras Analógicas, Digitales e Híbridas

Las computadoras digitales por su potencia de calculo, capacidad de almacenamiento interno y numero de periféricos que pueden soportar se clasifican en cuatro grandes grupos:

Supercomputadora. Es una maquina diseñada especialmente para calculo que requieren una gran velocidad de proceso. Generalmente pose un gran número de procesadores que trabajan en paralelo, con lo que consiguen realizar billones de operaciones por segundo. Un ejemplo de estas computadoras es la Cray Y-MP de Cray Research INC.

Conv.

(10)

Computadora o Mainframe. Es una maquina diseñada 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 características principales es la de soportar un gran número de terminales o estaciones de trabajo. Además pueden intervenir en procesos de distribución en los que se conectan dos o más 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 típicos 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 más baja de necesidades en el mundo de la informática. Hoy se puede decir que el mundo de la microinformática o el de las Microcomputadoras es el más importante y también el más popular.

Dentro de las microcomputadora se puede distinguir dos grupos importantes: • Computadora personal (personal computer-PC)

• Estación de trabajo (workstation)

La computadora personal es la microcomputadora fácil 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 estación de trabajo es una microcomputadora de gran potencia que se utiliza para trabajo de ingeniería

Laptop. Consisten en una computadora personal portátil de tamaño pequeño, gran potencia y muy manejable en todos los sentidos. Las características principales su peso que oscila entre 1 y 2 kg.

Notebook. Es una computadora personal similar a la laptop, pero aun más pequeña, de menor peso y mas especializada., es decir, esta preparada para realizar funciones de computadora personal, servir de ayuda a estudiantes sirviéndoles una capacidad de calculo rápido importante, ofrecer a comerciales funciones de agenda muy evolucionadas, etc.

Pocket-pc o palmtop. Es una pequeña computadora personal de mano que viene a ser la última versión de calculadora científica programable.

1.-MICROCOMPUTADORAS.- Se caracterizan por su configuración básica irregular, que puede estar compuesta por un monitor o una televisión, un drive, una unidad de cassette, etc.

Su capacidad de memoria es mínima de 8 a 16 kbytes por lo cual trabaja pequeños volúmenes de información.

2.-MINICOMPUTADORAS.- Se caracterizan por tener una configuración básica regular que puede estar compuesta por un monitor, unidades de diskette, disco, impresora, etc. Su capacidad de memoria varía de 16 a 256 kbytes.

(11)

3.-MACROCOMPUTADORAS.- Son aquellas que dentro de su configuración básica contiene unidades que proveen de capacidad masiva de información, terminales(monitores), etc. Su capacidad de memoria varía desde 256 a 512 kbytes, también puede tener varios megabytes o hasta gigabytes según las necesidades de la empresa.

Con el avance de la microelectrónica en la década 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 creación 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 comercialización de los primeros microprocesadores (INTEL 8008, 8080)

En la década de los 80s comenzó la verdadera explosión masiva, de las personal computer (PC) de IBM. Esta maquina basada en el microprocesador INTEL 8088, tenia características interesantes que hacían 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 graficación, la hacían mas atractiva y fácil de usar. La PC a pasado por varias transformaciones y mejoras y se conocen como XT(Tecnología Extendida), AT(Tecnología Avanzada) y PS/2.

¾ Este es un resumen de los acontecimientos más importantes 1971 Microprocesador INTEL 8008. Circuito de alta integración que luego daría inicio a las microcomputadoras.

¾ Microprocesador INTEL 8080. Nacimiento de la industria de la micro-computación. ¾ 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 PS/2 alguna de las cuales emplean el microprocesador INTEL 80386.

¾ Nuevos microprocesadores de muy alto rendimiento como son: INTEL 80486, MOTOROLA 68040, etc.

(12)
(13)

2.- MODELO DE VON NEUMANN 2.1. INTRODUCCION

En este modulo estudiaremos el modus operandi de una computadora digital electrónica, sin emplear ningún tipo de terminología electrónica o de ingeniería, solo se vera a manera de una idea descriptiva de los procesos que suceden dentro de la maquina, aun cuando no se conozca todavía su estructura interna.

El método consiste en indagar los pasos necesarios (y el orden que siguen) para efectuar operaciones sencillas sobre elementos de información, de modo que se llegue al resultado deseado, que será por ejemplo, una sencilla operación aritmética sobre números enteros.

Para esto, surgirá la necesidad de definir con todo cuidado dos tipos de objetos: los datos y las operaciones o funciones que actúan sobre ellos, aquí aparece la necesidad de mencionar el concepto de programa, y es aquí donde se gesta la concepción de las modernas computadoras programables y de la teoría de la programación.

Como ejemplo se propone pensar en los pasos necesarios para realizar con una calculadora común la operación 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 operación 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 definición mas elemental es que un programa es un conjunto explícito de pasos a seguir para lograr un fin determinado. En este caso, lo que interesa es lograr la suma de dos números, 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 todavía varios problemas por resolver para estar satisfechos con este programa. 1. ¿donde se almacenan los números que se desea que la maquina "observe"?

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

(14)

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

Esquema básico 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 prácticamente todos los modelos de computadoras. La unidad central de procesamiento (UCP, de aquí en adelante, aunque también es común referirse a ella como CPU, por sus siglas en ingles) contiene a la unidad aritmética lógica (que hace los cálculos) y a la unidad de control. La memoria es un conjunto de celdas (o casillas) con las siguientes características:

a) Cada celda puede contener un valor numérico.

b) Cada celda tiene la propiedad de ser direccionable, es decir, se puede distinguir una de otra por medio de un numero unívoco que es su dirección.

Esto implica que las celdas de la memoria tienen que estar organizadas de modo que faciliten la localización de cualquiera de ellas con un esfuerzo mínimo. 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 52 53 54 55 4 0 1 9 7

Cada celda tiene una dirección. 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 dirección unívoca. 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 almacén atendido por un empleado que seguirá nuestras ordenes, estos serán los pasos necesarios para poder efectuar las dos operaciones primitivas

MEMORIA

UNIDAD

DE

ENTRADA

UNIDAD CENTRAL PROCESAMIENTO UNIDAD DE SALIDA

(15)

Para leer :

a) Decidir cual celda se va a leer ( esto es, proporcionar su dirección)

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 operación Para escribir :

a) Proporcionar al ayudante el dato que se desea depositar en una celda.

b) Proporcionar la dirección 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 operación de escritura. ( si la celda en cuestión 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 codificación. En efecto, si en las celdas de memoria solo caven números, entonces habrá que traducir las instrucciones a números para poder almacenarlas.

Para codificar las instrucciones se debe considerar cuantas y cuales son las instrucciones disponibles y que esquema de codificación 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. Después se debe encontrar un código adecuado donde se usara una especie de diccionario electrónico que contendrá por ejemplo, lo siguiente:

Instrucción Código Interno Suma 57 Resta 42

. . . .

A partir de aquí se empleara el nombre lenguaje de maquina para referirse al código que maneja la unidad central de procesamiento de la computadora.

Un primer programa

Ahora es posible escribir un primer programa completo, usando el modelo recién descrito. Se continuara con el problema de sumar 5 + 7.

Primera consideración : 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 razón especial para haberlas escogido; para nuestros fines, tres casillas cualesquiera son adecuadas.)

Segunda consideración : Hay que definir con detalle las operaciones que se van a efectuar y su orden, así como obtener una codificación adecuada ( o sea traducirlas a instrucciones para la maquina ).

(16)

La forma de la instrucción para llevar el contenido de una celda al acumulador (que se llamara CARGA_Ac ) es:

CARGA_Ac dirección

donde CARGA_Ac es el nombre de la instrucción, y la dirección indica la celda de memoria cuyo valor se desea llevar al acumulador. Cabe aclarar que CARGA_Ac es el nombre mnemónico de la instrucción, pero que es necesario asignarle cierto código numérico interno. Sin importar ahora cual sea este, obsérvese que ocupara el contenido de una celda de la memoria, de la misma manera, la dirección será un numero que ocupara un lugar en otra celda. Esto quiere decir que la instrucción CARGA_Ac ocupara dos celdas en la memoria: una para el código de la operación y la otra para la dirección a la que hace referencia.

Entonces habrá instrucciones que ocupen una, dos tres y hasta mas celdas de memoria. Las demás instrucciones que se requieran son

GUARDA _Ac dirección Que deposita el valor del acumulador en una celda de la memoria (esta es la inversa de la anterior y

SUMA dirección Que suma al acumulador el contenido de la celda de memoria adscrita por la dirección.

Y el diccionario será, entonces,

Instrucción Código Interno Longitud de la Instrucción

CARGAR_Ac 21 2

GUARDAR_Ac 96 2

SUMA 57 2

RESTA 42 2

( Los códigos 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 renglón se coloca la instrucción mnemónica seguida de la dirección a la que haga referencia (si se da el caso), luego se escribe su equivalente en el código interno extraído del diccionario y, por ultimo, se describe brevemente el renglón (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 números.

He aquí el programa para suma 5 + 7 .

Instrucción Dirección Código Comentarios

CARGAR_Ac 21 2121 Se coloca el primer número en el acumulador

SUMA 22 5722 Se efectúa la suma

GUARDA_Ac 22 9623 El resultado queda en la casilla 23 ALTO

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

(17)

Otra cuestión importante es la aparición de dos programas: uno escrito en lenguaje mnemónico (mas fácil reconocer para nosotros ya que es cercano al español ), y otro ---a la derecha--- que esta descrito en código numérico ( 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 código 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 números, 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 números, sin importar cuales sean. Claro que esto no resulta impresionante por ahora, pero si se piensa en un programa universal para resolver cualquier ecuación 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 sólo 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 utilizarán para almacenar el programa; esto es, en que sección 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 vacías).

Una vez cargado, el programa objeto se verá así:

21 21 57 22 96 23 70 ... 05 07 ¿? ... 10 11 12 13 14 15 16 ... 21 22 23 ...

Cada celda contiene un sólo número de dos dígitos. La celda 23 contiene un número no especificado todavía, que se tendrá una vez ejecutado el programa.

Cada una de las dos primeras contiene un número 21 pero en la primera este representa el código de la instrucción CARGA_Ac, mientras que el mismo representa en la segunda celda la dirección 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 ejecución del mismo y poder obtener así los resultados deseados.

(18)

CICLO DE MAQUINA CICLO DE FETCH

Memoria- Programa y datos en

código binario

Memoria-

datos en código binario

Programa y

CPU

Registros de Datos Unidad aritmetico logica Unidad de Control

Registro de

instrucción

y

contadores

de

Circuitos -

Decifradores

CPU

Registros de Datos Unidad aritmetico logica Unidad de Control

Registro de

instrucción

y

contadores

de

programa

Circuitos -

Decifradores

1.- Traer la instrucción de la

(19)

CICLO DE EJECUCION

2.2 CÓDIGOS Y SISTEMAS DE NUMERACION

El concepto de número y el proceso del desarrollo del conteo ha sido históricamente registrado a lo largo del tiempo de tal manera que identificarlo solo es posible por medio de enormes conjeturas. No es difícil, a pesar de eso, imaginar cual fue el probable camino. Una tribu primitiva tenia que conocer cuantos miembros tenia en comparación con el numero del enemigo, o un pastor determinar necesariamente si el rebaño de ovejas había crecido en tamaño. Es probable que la primera forma de realizar un control fue por medio de un simple método 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 introduciéndose así la base de números. Es evidente que algunos números 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 numérico de base 20. Los antiguos babilonios usaban un sistema numérico basado en el 60. Este sistema aun es empleado cuando medimos el tiempo y los ángulos en minutos y segundos.

El sistema numérico con el que estamos mas familiarizados tiene una base o raíz 10. Este sistema sin duda alguna resulta de la contabilidad de los diez dedos. Este sistema aparece primeramente en la India alrededor del año 500 d. de J.C. al paso del los años, la notación se disperso a través de Europa como método

Memoria- Programa y datos en

código binario

Memoria-

datos en código binario

Programa y

CPU

Registros de Datos Unidad aritmetico logica Unidad de Control

Registro de

instrucción

y

contadores

de

programa

Circuitos -

Decifradores

CPU

Registros de Datos Unidad aritmetico logica Unidad de

Registro de

instrucción

y

contadores

de

Circuitos -

Decifradores

3.- Ejecutar la instrucción en los

datos

(20)

El sistema numérico 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 común de todas las futuras computadoras. El sistema binario es utilizado dentro del las computadoras por las siguientes razones:

1) Simplificar los circuitos aritméticos de las computadoras.

2) Proporcionar una manera sencilla de almacenar información e instrucciones . 3) Proporcionar confiabilidad.

Otros dos sistemas numéricos son usados cuando trabajamos con computadoras : Hexadecimal, y el Octal. Estos sistemas numéricos son utilizados principalmente como un método para la representación de números binarios.

¾ EVOLUCION DE LOS SISTEMAS DE NUMERACION                ∩ Sistema Egipcio ∇∇∇ ∇∇∇ ∇∇∇∇ ∇∇∇∇ ∇∇∇∇∇ ∇ ∇∇ ∇∇∇ ∇∇∇∇ ∇∇ ∇∇∇ ∇∇∇ ∇∇∇∇ ∇∇∇∇ < Sistema Babilonico

I II III IIII V VI VII VIII VIIII X Sistema Romano Inicial

• •• ••• ••••  • •• ••• ••••      

Sistema maya

1 2 3 4 5 6 7 8 9 0 Sistema Actual

(21)

¾ SISTEMA NUMÉRICO DECIMAL ( Base 10 )

El familiar sistema numérico decimal esta basado sobre una raíz de 10 y esta compuesto de los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Cada posición 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 2X100 = 2X1 = 2 3 3X101 = 3X10 = 30 1 1X102 = 1X100 = 100 7 7X103 = 7X1000 = 7000 7132

Parte Entera Parte Fraccionaria 104 103 102 101 100

.

10-1 10-2 10-3 10000 1000 100 10 1 1/10 1/100 1/1000

Punto decimal

¾ SISTEMA NUMÉRICO BINARIO ( Base 2 )

Es un sistema de numeración, donde la base es 2, y esta representado por los números 0 y 1. Los números binarios son el sistema común interno de la computación 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 dígito por la correspondiente potencia de dos y sumando todos estos productos. Los pesos posicionales ( potencias de dos) de un numero binario serán representados conforme a la tabla que a continuación se muestra.

Parte Entera Parte Fraccionaria

27 26 25 24 23 22 21 20

.

2-1 2-2 2-3 2-4 2-5

128 64 32 16 8 4 2 1 1/2 1/4 1/8 1/12 1/32

(22)

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 posición digital de un numero binario indica que la correspondiente potencia de dos es usada en la determinación del numero binario. Un 0 es una posición 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 dígitos ( 0 y 1 ), de tal forma que cuando el resultado excede de los símbolos utilizados se agrega el exceso ( denominado acarreo ) a la suma parcial siguiente hacia la izquierda.

Las tablas de sumar en el sistema binario son las siguientes :

Tabla del 0 Tabla del 1

0 + 0 = 0 0 + 1 = 0

1 + 0 = 1

1 + 1 = 1 (cero con acarreo 1)

NOTA

(23)

EJEMPLOS

a) Sumar los números 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

Obsérvese que no hemos tenido ningún acarreo en las sumas parciales. b) Sumar los números binarios 11001 (25) y 10011 (19).

Acarreos. 1 1 1

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

c) Sumar los números 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 números binarios 10101101 (173) y 10010111 (279).

Acarreos 1 1 1 1 1 1

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 números binarios 10.1 (2.5) y 11.01 (3.25).

Acarreo 1

1 0 1 2.5 1 1 0 1 3 .25 1 0 1 1.1 1 5.75

f) Sumar los números binarios 1101 (13), 1110 (14) y 1100 (12).

Acarreo 1 0 1 .

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

(24)

RESTA BINARIA

La resta binaria es similar a la decimal con la diferencia de tener solo dos dígitos y teniendo en cuenta que al realizar las restas parciales entre dos dígitos de idénticas posiciones, uno de minuendo y otro el sustraendo, si el segundo excede al primero, se sustrae una unidad del dígito de mas a la izquierda en el minuendo (si existe y vale 1), convirtiendose este ultimo en 0 y equivaliendo la unidad extraída a 1*2 en el minuendo de resta parcial que estamos realizando. Si es 0 el dígito siguiente a la izquierda, se busca en lo sucesivos teniendo en cuenta que su valor se multiplica por 2 a cada desplazamiento a la derecha.

Las tablas de restar en el sistema binario son las siguientes : Tabla del 0 Tabla del 1

0 - 0 = 0 0 - 1 = no cabe

1 - 0 = 1 1 - 1 = 0 EJEMPLOS

a) Restar los números 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 números binarios 11110 0 (60) Y 101010 (42) 0 2 acarreo

1 1 1 0 0 0 ...60 - 1 0 1 0 1 0 ...-42 0 1 0 0 1 0 ... 18

c) Restar los números binarios 11.01 (3.25) Y 10.1(2.5) 0 2 acarreo

1 0 . 1 0 ...3.25 - 1 0 . 1 0 ...-2.50 0 0 . 1 1 ...0.75 MULTIPLICACION BINARIA

La multiplicación binaria se realiza en forma similar a la multiplicación decimal salvo que la suma final de los productos parciales se hace en binario.

Las tablas de multiplicar en el sistema binario son las siguientes : Tabla del 0 Tabla del 1

0 * 0 = 0 0 * 1 = 0

1 * 0 = 0 1 * 1 = 1

(25)

EJEMPLOS

a) Multiplicar los números binarios 110101(53) y 1101(13)

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

b) Multiplicar los números 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 números 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 1 1 1 1 1 1 1 1 1 1 1 1 . 1 0 1 0 0 1 0 1 0 1 1 0 ... 2646 DIVISION BINARIA

La división binaria, al igual que las operaciones anteriores, se realiza de forma similar a la división decimal salvo que las multiplicaciones y restas internas al proceso de la división se hacen en binario.

(26)

EJEMPLOS

a) Dividir los números binarios 100010 (34) y 110 (6)

1 0 1 0 1 0  1 1 0

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

1 1 0

1 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 )

NOTACIÓN DECIMAL, BINARIA, HEXADECIMAL Y OCTAL

Decimal Binario Hexadecimal octal

--- --- --- --- 0 00000 0 0 1 00001 1 1 2 00010 2 2 3 00011 3 3 4 00100 4 4 5 00101 5 5 6 00110 6 6 7 00111 7 7 8 01000 8 10 9 01001 9 11 10 01010 A 12 11 01011 B 13 12 01100 C 14 13 01101 D 15 14 01110 E 16 15 01111 F 17 16 10000 10 20 17 10001 11 21 18 10010 12 22 19 10011 13 23 20 10100 14 24 21 10101 15 25 22 10110 16 26 23 10111 17 27 24 11000 18 30 25 11001 19 31 26 11010 1A 32 27 11011 1B 33 .. ... .. .. .. ... .. ..

(27)

¾ NUMÉRICO OCTAL ( base 8 )

Esta basado en una raíz de 8 y utiliza los dígitos 0, 1, 2, 3, 4, 5, 6, 7. Los pesos posicionales ( potencias de ocho ) de un numero octal pueden ser representadas como sigue:

Parte Entera Parte Fraccionaria 83 82 81 80

.

8-1 8-2 8-3

512 64 8 1 1/8 1/64 1/512

Punto Octal

El numero octal 304.763, será convertido a su equivalente decimal por el método siguiente:

3 0 4 . 7 6 3 3 3X8-3 = 3x1/512 = .006 6 6x8-2 = 6x1/64 = .094 7 7x8-1 = 7x1/8 = .875 4 4x80 = 4x1 = 4 0 0x81= 0X8 = 0 3 3x82 = 3x64 = 192 196. 975

El sistema numérico octal tiene características especiales que lo hacen sobre todo útil en muchas situaciones que involucran números binarios. Puesto que tres dígitos binarios se agrupan y representan un dígito octal, muchas operaciones binarias pueden representarse usando dígitos octales, esto es extremadamente útil cuando trabajamos con la consola del operador en muchas computadoras binarias. La tabla presentada a continuación, muestra como son utilizados los dígitos octales para la representación de agrupaciones de tres dígitos.

Grupos binarios Dígitos octales

000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7

(28)

El numero binario 111110101011010 es usado para ilustrar la agrupación de dígitos binarios en dígitos octales :

Número Binario 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0

Agrupación Binaria 111 110 101 011 010

Número Octal 7 6 5 3 2

Así, el numero octal 76532 es el equivalente del numero binario 111110101011010. Resultara obvio que ambas lectura y escritura de números binarios pueden ser simplificados usando notación octal.

¾ SISTEMA NUMÉRICO HEXADECIMAL ( base 16 )

El sistema numérico hexadecimal se basa en una raíz de 16 y emplea 16 dígitos 0, 2, 3, 4, 5, 6, 7, 8, 9, 0, A, B, C, D, E, F. Los dígitos del 0 al 9 son usados en el sentido normal y los otros seis dígitos son representados pos los símbolos 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 números Octal y Hexadecimal son considerablemente mas cortos en longitud que el numero binario. Muchas minicomputadoras usan el sistema octal y numerosas computadoras de gran escala utilizan el sistema hexadecimal para desplegar datos de entrada/salida.

Parte Entera Parte Fraccionaria 163 162 161 160

.

16-1 16-2 16-3

4096 256 16 1 1/16 1/256 1/4096

Punto Hexadecimal

El valor decimal de un numero hexadecimal es determinado multiplicando el valor de cada dígito 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 4x16-1= 1/16= 4/16 = .25 5 5x16-0 = 5x1= 5 = 5 8 8x16-1 = 8x16= 128 = 128 = 133.25

(29)

Si un numero binario es dividido en grupos de cuatro bits (dígitos), procediendo en cualquier dirección a partir de punto binario, cada grupo puede ser reemplazado directamente por su equivalente en hexadecimal. la agrupación es como sigue :

Agrupación Binaria Digito Hexadecimal 0000 Ö 0 0001 Ö 1 0010 Ö 2 0011 Ö 3 0100 Ö 4 0101 Ö 5 0110 Ö 6 0111 Ö 7 1000 Ö 8 1001 Ö 9 1010 Ö A 1011 Ö B 1100 Ö C 1101 Ö D 1110 Ö E 1111 Ö F

Esta forma de agrupación es extremadamente útil cuando es usada para representar valores de un Byte de 8 bit de información. Esta unidad de información es la unidad básica de muchas computadoras modernas. También es muy útil en la representación de palabras de computadoras binarias que son un múltiplo de 4, tales como 12, 16, 20, 24, 28, 32, 36.

El numero binario 1110001011010011 se emplea para ilustrar la agrupación de dígitos binarios dentro de dígitos hexadecimales.

Número Binario 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1

Agrupación Binaria 1110 0010 1101 0011

Número Hexadecimal E 2 D 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 numérico a otro, en la practica real las tablas de conversión son usualmente aplicadas. Los apéndices A y B contienen tablas para convertir números de hexadecimal - decimal y octal - decimal.

(30)

Tabla de Conversión Hexadecimal-Decimal

La tabla que aparece en el Apéndice A puede ser empleada para convertir números decimales directamente a/desde números 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 número decimal. Procedimiento:

Encontrar CO en la columna izquierda y 3 sobre la parte alta de la tabla de conversión hexadecimal-decimal en el Apéndice A. El punto de intersección es el número equivalente en hexadecimal-decimal, el cual es 195. 0 1 2 3 4 5 6 7 8 9 A B C D E F 000 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 010 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 020 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 030 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 040 0064 0065 0066 0067 0068 0069 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 050 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 0090 0091 0092 0093 0094 0095 060 0096 0097 0098 0099 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109 0110 0111 070 0112 0113 0114 0115 0116 0117 0118 0119 0120 0121 0122 0123 0124 0125 0125 0127 080 0128 0129 0130 0131 0132 0133 0134 0135 0136 0137 0138 0139 0140 0141 0142 0143 090 0144 0145 0146 0147 0148 0149 0150 0151 0152 0153 0154 0155 0156 0157 0158 0159 0A0 0160 0161 0162 0163 0164 0165 0166 0167 0168 0169 0170 0171 0172 0173 0174 0175 0B0 0176 0177 0178 0179 0180 0181 0182 0183 0184 0185 0186 0187 0188 0189 0190 0191 0C0 0192 0193 0194 0195 0196 0197 0198 0199 0200 0201 0202 0203 0204 0205 0206 0207

(31)

Tabla de conversión Octal Decimal 0000 0000 0001 0002 0003 0004 0005 0006 0007 0010 0008 0009 0010 0011 0012 0013 0014 0015 0020 0016 0017 0018 0019 0020 0021 0022 0023 0030 0024 0025 0026 0027 0028 0029 0030 0031 0040 0032 033 0034 0035 0036 0037 0038 0039 0050 0040 0041 0042 0043 0044 0045 0046 0047 0060 0048 0049 0050 0051 0052 0053 0054 0055 0070 0056 0057 0058 0059 0060 0061 0062 0063 0100 0064 0065 0066 0067 0068 0069 0070 0071 0110 0072 0073 0074 0075 0076 0077 0078 0079 0120 0080 0081 0082 0083 0084 0085 0086 0087 0130 088 0089 0090 0091 0092 0093 0094 0095 0140 0096 0097 0098 0099 0100 0101 0102 0103 0150 0104 0105 0106 0107 0108 0109 0110 0111 0160 0112 0113 0114 0115 0116 0117 0118 0119 0170 0120 0121 0122 0123 0124 0125 0126 0127 0200 0128 0129 0130 0131 0132 0133 0134 0135 0210 0136 0137 0138 0139 0140 0141 0142 0143 0220 0144 0145 0146 0147 0148 0149 0150 0151 0230 0152 0153 0154 0155 0156 0157 0158 0159 0240 0160 0161 0162 0163 0164 0165 0166 0167 0250 0168 0169 0170 0171 0172 0173 0174 0175 0260 0176 0177 0178 0179 0180 0181 0182 0183 0270 0184 0185 0186 0187 0188 0189 0190 0191 0300 0192 0193 0194 0195 0196 0197 0198 0199 0310 0200 0201 0202 0203 0204 0205 0206 0207 0320 0208 0209 0210 0211 0212 0213 0214 0215 0330 0216 0217 0218 0219 0220 0221 0222 0223 0340 0224 0225 0226 0227 0228 0229 0230 0231 0350 0232 0233 0234 0235 0236 0237 0238 0239 Problema:

Convertir (345) 8 a su equivalente en decimal. Procedimiento:

Encontrar 340 en la columna izquierda y el 5 en la parte alta de las columnas. El punto de interseccion es el numero decimal equivalente, 229.

Problema:

Convertir (132)10 a su equivalente en octal. Procedimiento:

Encontrar 132 en la tabla. El numero en la columna de la izquierda es 200 y el número hacia arriba es 4, totalizando 204 para el resultado en octal.

(32)

¾ CÓDIGOS

Un código es un conjunto de símbolos y normas que permiten la representación de información. Gracias a los códigos es posible que las computadoras ( que sólo trabajan con datos binarios ) pueden procesar información que no es numérica. Los códigos digitales permiten la representación de números, letras y señales de control usando únicamente bits.

Seguramente el lector debe conocer algunos códigos, como la clave morse, donde cada letra es representada mediante una secuencia de puntos y rayas. De un modo similar, las antiguas tarjetas perforadas podían contener información gracias al código Hollerith, el cual asociaba la posición de las perforadoras con símbolos alfabéticos específicos.

BCD (Código Binario en Decimal )

El BCD (del inglés Binary-Coded Decimal), también llamado código 8421. representa cada dígito decimal por medio de cuatro dígitos binarios. El BCD no tiene equivalencia para letras.

Este código agrupa cuatro bits porque, para representar los diez símbolos del sistema decimal se requiere un mínimo de cuatro cifras binarias.

La tabla de equivalencias del BCD es la siguiente:

Utilizando este código, el numero 4158 queda representado como :0100 0001 0101 1000

Debe tenerse cuidado para no confundir la representación 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 electrónicos.

EBCDIC ( Binario Extendido para intercambio de Código Decimal )

Este código diseñado por la IBM, es una versión ampliada del BCD, y requiere de 8 bits con lo cual puede representar letras y símbolos, a demás de los números.

BCD

0000

0001

0010

0011

0100

Decimal

0

1

2

3

4

BCD

0101

0110

0111

1000

1001

Decimal

5

6

7

8

9

(33)

ASCII ( Código de Estándares Americanos para Intercambios de Información )

Este código agrupa 7 bits, con los que se representan 96 caracteres y 32 símbolos de control. Es utilizado para el intercambio de información entre dispositivos fabricados por diferentes empresas y para transmisión telefónica de datos. L versión extendida del código 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 representaría como :

H O L A

01001000 01001111 01001100 01000001 72 79 76 65

(34)

CARACTER ASCII CODIGO DE 7 BITS EBCDIC CODIGO DE 8 BITS A 1000001 11000001 B 1000010 11000010 C 1000011 11000011 D 1000100 11000100 E 1000101 11000101 F 1000110 11000110 G 1000111 11000111 H 1001000 11001000 I 1001001 11001001 J 1001010 11010001 K 1001011 11010010 L 1001100 11010011 M 1001101 11010100 N 1001110 11010101 O 1001111 11010110 P 1010000 11010111 Q 1010001 11011000 R 1010010 11011001 S 1010011 11100010 T 1010100 11100011 U 1010101 11100100 V 1010110 11100101 W 1010111 11100110 X 1011000 11100111 Y 1011001 11101000 Z 1011010 11101001 0 0110000 11110000 1 0110001 11110001 2 0110010 11110010 3 0110011 11110011 4 0110100 11110100 5 0110101 11110101 6 0110110 11110110 7 0110111 11110111 8 0111000 11111000 9 0111001 11111001

(35)

CAPACIDAD DE MEMORIA DE UN COMPUTADOR

La capacidad de memoria de un computador se mide por medio de KBYTES que es la agrupación de 1024 bytes, el kbyte tiene submultiplos y múltiplos que son:

SUBMULTIPLOS.- *** Bit *** Word *** Nibble *** Doubleword *** Byte *** Kword MULTIPLOS.- *** Kbyte *** Gigabyte *** Megabyte *** Terabyte

BIT.- Es la mínima pulsación electrónica recibida por la computadora . NIBBLE .- Es la agrupación de 4 bits.

BYTE.- Es la agrupación de 8 bits., los cuales están divididos en dos partes que son. 1.- Cuatro bits de área de zona

2.- Cuatro bits de área de dígitos

NOTA.- Si la información del byte es alfabética, el byte es lógico

Si la información es numérica, el byte puede ser desempacado o empacado. WORD.- Es la agrupación de 4 bytes

DOUBLEWORD.- Es la agrupación de 8 bytes KWORD.- es la agrupación de 512 bytes SUBMULTIPLOS

KBYTE.- Es la agrupación de 1024 bytes.

MEGABYTE.- Es la agrupación de 1`048,576 bytes.

GIGABYTE.- Es la agrupación de 1`073,741 billones de bytes. TERABYTE .- Es la agrupación 2 40 bytes

(36)
(37)

3.- DESCRIPCION FUNCIONAL DE UN SISTEMA DE COMPUTO.

HARDWARE.- Es el conjunto de dispositivos mecánicos, eléctricos, electromagnéticos, y electrónicos que integran al procesador central y equipos periféricos.

SOFTWARE.- Es el soporte lógico que el hombre introduce a la maquina para facilitar su comunicación 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 aritmética y lógica 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 “ corazón “ de la computadora. De el dependen las demás 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 organización jerárquica para funcionar. En este caso la organización consiste en distribuir las tareas entre subsistemas diversos que reportan sus actividades al procesador central por medio de interrupciones.

Descodificación, ejecución, y ajuste del CPU. Cuando es necesario hacer una operación especial sobre alguno de los subsistemas externos ( una lectura en disco por ejemplo ), la UCP no da la orden y continua la ejecución del programa. Cuando el subsistema termina lo que le fue encargado, manda una interrupción a la UCP para que esta le indique que otra operación especial ( si la hubiera ) hay por ejecutar.

Monitor Teclado Chasis Unida de disco Raton

(38)

¾ UNIDAD DE ARITMÉTICA Y LÓGICA:

La unidad de aritmética y lógica efectúa tres funciones básicas y son: 1. Transferencia de datos.

2. Cálculos aritméticos. 3. Toma de decisiones.

Esta unidad es la encargada de realizar las operaciones elementales de tipo aritmético (sumas, restas, productos y divisiones) y de tipo lógico (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).

Circuit Operacional (COP). Contiene los circuitos necesarios para la realización de las operaciones con los datos procedentes de los registros de entrada (REN). Este circuito tiene entradas de órdenes para seleccionar la clase de operación 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 instrucción antes de la realización de las operaciones por parte del circuito operacional. También 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 realimentación en el caso de operaciones encadenadas. Así mismo tiene una conexión directa al bus de datos para el envío 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 operación realizada y que habrá de ser tenidas en cuenta en operaciones posteriores. Circuito Operacional

Acumulador

Registro de estado Micro ordenes

REN 1

REN 2

BUS

(39)

TRANSFERENCIA DE DATOS.- Involucran el movimiento de datos desde una localización dentro del computador hacia otra.

CÁLCULOS ARITMETICOS.- La computadora realiza los cálculos a una velocidad inimaginable por muy complejos que sean, se pueden realizar las cuatro operaciones básicas u operaciones algebraicas.

TOMA DE DECISIONES.- Es la habilidad de comparar dos cantidades o números, uno en uno nombre-dato y el otro en su representación real. Para determinar cual de ellos es menor, o mayor o en su caso iguales, para tomar alguna acción dependiendo de los resultados de la comparación.

¾ UNIDADES DE MEDIDA DE VELOCIDAD DEL PROCESADOR

La operación 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 operación. En términos generales, será este reloj el que determine la velocidad de operación del procesador. Como ilustración se puede decir que una microcomputadora común 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 actúa como reloj envía impulsos de control ( par comenzar la ejecución de las operaciones y sincronizarlas ) a razón 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 instrucción, y el numero exacto depende de la complejidad de cada instrucción 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 eléctricos 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 (Millón 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 razón 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 aritméticas de punto flotante ( es decir, operaciones aritméticas con números 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 ( análogas a la de la memoria ) que se utilizan con mucha frecuencia y que, por ende, no están 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 aritmética y lógica del CPU, como su nombre lo indica, se encarga de efectuar las operaciones relacionadas con los cálculos numéricos y simbólicos. Una unidad típica 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) Suma y resta de dos números de punto fijo

b) Multiplicación y división de punto fijo ( no todos los procesadores tienen esta capacidad )

c) Manipulación de los bits de los registros y del acumulador ( operaciones lógicas AND, OR, NOT ). d) Comparación del contenido de dos registros ( para averiguar si los números que contienen

Referencias

Documento similar

Guía elaborada por Ing. Página 1 ESTRUCTURAS GRAFCET CON EL AUTOMATA PROGRAMABLE TWIDO.. Vínculo del video https://youtu.be/CrGklC5_Lf0 PROGRAMACION GRAFCET EN

Usa el software Fluid Sim P para simular GRAFCET aplicados a sistemas electroneumáticos, desde lo más sencillo a lo más

La réceptivité associée à une transition source est généralement une réceptivité sur front (sinon l’étape suivante est activée en permanence). Les règles de

En funcionamiento CaC – Ciclo a Ciclo, el sistema debe realizar los movimientos contemplados en el DIAGRAMA ESPACIO – FASE una sola vez, ya que en este modo de operación se hace

El sistema no siempre garantiza que una pieza sea depositada debajo de cada una de las estaciones de proceso (taladrado y escariado) después de cada movimiento de

Si la máquina esta en posición inicial (S2 + S5) es decir con el carro transportador arriba y a la izquierda y S1 detecta que ha llegado pieza desde la CINTA1 se pone

El accionamiento del programa se deberá hacer por medio de dos pulsadores (NO) y por medio de dos botones en la pantalla , la activación de la salida (motor) deberá

Protocolo de descubrimiento automático habilitado Servidor Modbus habilitado. Protocolo