1 Arquitectura de las Computadoras. Índice: Introducción Breve Historia de La Computación Unidad Central del Sistema Unidad Central de Proceso Unidad de Control (CU) Unidad Aritmética y Lógica (ALU) Registros Memoria de Acceso Aleatorio (RAM) Memoria ROM Memoria Caché Buses Arquitecturas de Bus Reloj Tarjetas de expansión interna Tarjetas Controladoras de Periféricos Tarjetas de Expansión Controladoras del Modo de Video Tarjetas Controladoras de Comunicaciones Lista de Procesadores INTRODUCCIÓN El concepto de arquitectura en el entorno informático proporciona una descripción de la construcción y distribución física de los componentes de la computadora. La arquitectura de una computadora explica la situación de sus componentes y permite determinar las posibilidades de que un sistema informático, con una determinada configuración, pueda realizar las operaciones para las que se va a utilizar. Cualquier usuario que desee adquirir un sistema informático, tanto si es una gran empresa como un particular, debe responder a una serie de preguntas previas: ¿qué se desea realizar con el nuevo sistema informático? ¿Cuáles son los objetivos a conseguir? ¿Qué software será el más adecuado para conseguir 1 2 los objetivos marcados? ¿Qué impacto va a suponer en la organización (laboral o personal) la introducción del nuevo sistema informático? Finalmente, cuando se haya respondido a estas preguntas, el usuario tendrá una idea aproximada de los objetivos que han de cumplir los diferentes sistemas informáticos a evaluar. En la actualidad es muy familiar el aspecto exterior de una computadora o, por lo menos, de una microcomputadora Name = g8; Hotword Style = Book Default; , pero se ha de advertir que, salvando las diferencias de tamaño y la posibilidad de teleproceso (manejo del sistema informático a grandes distancias a través de líneas de comunicaciones de diferentes tipos), en general, los sistemas informáticos se dividen físicamente en la unidad central del sistema y los periféricos que permiten conectarlo al mundo exterior. La Unidad Central del Sistema es un habitáculo en forma de caja donde se sitúa el «cerebro» de la computadora, esto es, la unidad central de proceso (CPU), así como los distintos componentes que van a ayudar al sistema informático en sus operaciones habituales (bus, memorias, fuentes de alimentación eléctrica, etcétera). La unidad central de proceso se compone de: • Una Unidad de Control que manejará los diferentes componentes del sistema informático así como los datos a utilizar en los diferentes procesos. • Una Unidad Aritmético-Lógica que realizará las diferentes operaciones de cálculo en las que la computadora basa su funcionamiento. • Unos Registros del Sistema que sirven como área de trabajo interna a la unidad central de proceso. La unidad central de proceso se conecta a una serie de memorias que le sirven como soporte para el manejo de los datos y programas que se han de utilizar mientras se encuentre operativa. Las diferentes memorias del sistema informático (Random Access Memory o RAM y Read Only Memory o ROM) son componentes fundamentales de la computadora ya que van a ser, en el caso de la RAM, el área de trabajo donde el microprocesador va a realizar las diferentes operaciones en que se van a descomponer los procesos solicitados por el usuario, mientras que la ROM va a servir para ayudar a la computadora a realizar las diferentes operaciones de arranque del sistema informático previas a que el sistema operativo tome el control de las diferentes tareas a realizar. La unidad central de proceso y las memorias se conectan entre ellas por medio del bus. El bus es un enlace de comunicaciones que conecta todos los componentes que configuran el sistema informático y permite la transferencia de información entre ellos. Esta información se compone de datos y órdenes de comandos para manipular los datos. Existen varias tecnologías de diseño y construcción de buses entre las que se pueden distinguir las arquitecturas ISA, EISA y MCA que se verán más adelante. Otros componentes que se conectan al bus son los puertos de conexión de los diferentes periféricos asociados a la unidad central del sistema de la computadora y que van a permitir configurar el sistema informático para una serie diferente de operaciones funcionales que siempre han de cubrir las necesidades del usuario. Es evidente que la configuración de un sistema informático ha de realizarse en función de los objetivos operativos que vaya a cubrir la citada computadora. Así, un sistema informático que se va a dedicar exclusivamente a CAD/CAM (diseño asistido por computadora) no tendrá una configuración similar a la de una computadora que va a dedicarse a controlar los diferentes enlaces de comunicaciones que componen una red informática. Los diferentes periféricos que se pueden conectar a un sistema informático se dividen en cuatro grupos principales: • Periféricos de Entrada de Información. • Periféricos de Almacenamiento de Información. 2 3 • Periféricos de Salida de Información. • Periféricos de Comunicaciones. Historia de la computación y Conceptos Informáticos Algunas veces se ha preguntado, ¿cuál fue uno de los primeros procesadores de Intel, siempre han sido ha si de poderosos? O puede ser que alguna vez le halla surgido la duda de donde vienen las computadoras. En éste trabajo se da un breve relato de la historia de las computadoras así también como las historias de los lenguajes de programación y de los microprocesadores. A mi criterio a éste trabajo le puede llamar como una referencia rápida de los temas más comunes en el mundo de la informática y de las computadoras. Esta es una buena oportunidad para que usted de un vistazo rápido de lo que tratan las ciencias de la computación y sistemas. Insisto en que usted lea esta breve referencia de el mundo de las computadoras, y usted vera que la próxima vez que le hablen del tema usted se sentirá familiarizado con el mismo. Historia de la Computación Del Abaco a la tarjeta perforada EL ABACO; quizá fue el primer dispositivo mecánico de contabilidad que existió. Se ha calculado que tuvo su origen hace al menos 5000 años y su efectividad ha soportado la prueba del tiempo. LA PASCALINA; El inventor y pintor Leonardo Da Vinci (1452-1519) trazó las ideas para una sumadora mecánica. Siglo y medio después, el filósofo y matemático francés Blaise Pascal (1623-1662) por fin inventó y construyó la primera sumadora mecánica. Se le llamo Pascalina y funcionaba como maquinaria a base de engranes y ruedas. A pesar de que Pascal fue enaltecido por toda Europa debido a sus logros, la Pascalina, resultó un desconsolador fallo financiero, pues para esos momentos, resultaba más costosa que la labor humana para los cálculos aritméticos. LA LOCURA DE BABBAGE, Charles Babbage (1793-1871), visionario inglés y catedrático de Cambridge, hubiera podido acelerar el desarrollo de las computadoras si él y su mente inventiva hubieran nacido 100 años después. Adelantó la situación del hardware computacional al inventar la "máquina de diferencias", capaz de calcular tablas matemáticas. En 1834, cuando trabajaba en los avances de la máquina de diferencias Babbage concibió la idea de una "máquina analítica". En esencia, ésta era una computadora de propósitos generales. Conforme con su diseño, la máquina analítica de Babbage podía suma r, substraer, multiplicar y dividir en secuencia automática a una velocidad de 60 sumas por minuto. El diseño requería miles de engranes y mecanismos que cubrirían el área de un campo de fútbol y necesitaría accionarse por una locomotora. Los escépticos le pusieron el sobrenombre de "la locura de Babbage". Charles Babbage trabajó en su máquina analítica hasta su muerte. Los trazos detallados de Babbage describían las características incorporadas ahora en la moderna computadora electrónica. Si Babbage hubiera vivido en la era de la tecnología electrónica y las partes de precisión, hubiera adelantado el nacimiento de la computadora electrónica por varías décadas. Irónicamente, su obra se olvidó a tal grado, que algunos pioneros en el desarrollo de la computadora electrónica ignoraron por completo sus conceptos sobre memoria, impresoras, tarjetas perforadas y control de programa secuencial. LA PRIMERA TARJETA PERFORADA; El telar de tejido, inventado en 1801 por el Francés Joseph-Marie Jackard (1753-1834), usado todavía en la actualidad, se controla por medio de tarjetas perforadas. El telar de Jackard opera de la manera siguiente: las tarjetas se perforan estratégicamente y se acomodan en cierta secuencia para indicar un diseño de tejido en particular. Charles Babbage quiso aplicar el concepto de las tarjetas perforadas del telar de Jackard en su motor analítico. En 1843 Lady Ada Augusta Lovelace 3 4 sugirió la idea de que las tarjetas perforadas pudieran adaptarse de manera que propiciaran que el motor de Babbage repitiera ciertas operaciones. Debido a esta sugerencia algunas personas consideran a Lady Lovelace la primera programadora. Herman Hollerit (1860-1929) La oficina de censos estadounidense no terminó el censo de 1880 sino hasta 1888. La dirección de la oficina ya había llegado a la conclusión de que el censo de cada diez años tardaría mas que los mismo 10 años para terminarlo. La oficina de censos comisionó al estadístico Herman Hollerit para que aplicara su experiencia en tarjetas perforadas y llevara a cabo el censo de 1890. Con el procesamiento de las tarjetas perforadas y el tabulador de tarjetas perforadas de Hollerit, el censo se terminó en sólo 3 años y la oficina se ahorró alrededor de $5,000,000 de dólares. Así empezó el procesamiento automatizado de datos. Hollerit no tomó la idea de las tarjetas perforadas del invento de Jackard, sino de la "fotografía de perforación" Algunas líneas ferroviarias de la época expedían boletos con descripciones físicas del pasajero; los conductores hacían orificios en los boletos que describían el color de cabello, de ojos y la forma de nariz del pasajero. Eso le dio a Hollerit la idea para hacer la fotografía perforada de cada persona que se iba a tabular. Hollertih fundó la Tabulating Machine Company y vendió sus productos en todo el mundo. La demanda de sus máquinas se extendió incluso hasta Rusia. El primer censo llevado a cabo en Rusia en 1897, se registró con el Tabulador de Hollerith. En 1911, la Tabulating Machine Company, al unirse con otras Compañías, formó la Computing-Tabulating-RecordingCompany. LAS MAQUINAS ELECTROMECANICAS DE CONTABILIDAD (MEC) Los resultados de las máquinas tabuladoras tenían que llevarse al corriente por medios manuales, hasta que en 1919 la Computing-Tabulating-Recording-Company. Anunció la aparición de la impresora/listadora. Esta innovación revolucionó la manera en que las Compañías efectuaban sus operaciones. Para reflejar mejor el alcance de sus intereses comerciales, en 1924 la Compañía cambió el nombre por el de international Bussines Machines Corporation (IBM) Durante décadas, desde mediados de los cincuentas la tecnología de las tarjetas perforadas se perfeccionó con la implantación de más dispositivos con capacidades más complejas. Dado que cada tarjeta contenía en general un registro (Un nombre, dirección, etc.) el procesamiento de la tarjeta perforada se conoció también como procesamiento de registro unitario. La familia de las máquinas electromecánicas de contabilidad (EAM) eloctromechanical accounting machine de dispositivos de tarjeta perforada comprende: la perforadora de tarjetas, el verificador, el reproductor, la perforación sumaria, el intérprete, el clasificador, el cotejador, el calculador y la máquina de contabilidad. El operador de un cuarto de máquinas en una instalación de tarjetas perforadas tenía un trabajo que demandaba mucho esfuerzo físico. Algunos cuartos de máquinas asemejaban la actividad de una fábrica; las tarjetas perforadas y las salidas impresas se cambiaban de un dispositivo a otro en carros manuales, el ruido que producía eran tan intenso como el de una planta ensambladora de automóviles. Pioneros de la computación ATANASOFF Y BERRY Una antigua patente de un dispositivo que mucha gente creyó que era la primera computadora digital electrónica, se invalidó en 1973 por orden de un tribunal federal, y oficialmente se le dio el crédito a John V. Atanasoff como el inventor de la computadora digital electrónica. El Dr. Atanasoff, catedrático de la Universidad Estatal de Iowa, desarrolló la primera computadora digital electrónica entre los años de 1937 a 1942. Llamó a su invento la computadora Atanasoff-Berry, ó solo ABC (Atanasoff Berry Computer). Un estudiante graduado, Clifford Berry, fue una útil ayuda en la construcción de la computadora ABC. Algunos autores consideran que no hay una sola persona a la que se le pueda atribuir el haber inventado la computadora, sino que fue el esfuerzo de muchas personas. Sin embargo en el antiguo edificio de Física de la Universidad de Iowa aparece una placa con la siguiente leyenda: "La primera computadora digital electrónica de operación automática del mundo, fue construida en este edificio en 1939 por John Vincent Atanasoff, matemático y físico de la Facultad de la Universidad, quien concibió la idea, y por Clifford Edward Berry, estudiante graduado de física." Mauchly y Eckert, después de varias conversaciones con el Dr. Atanasoff, leer apuntes que describían los principios de la computadora ABC y verla en persona, el Dr. John W. Mauchly colaboró con J.Presper Eckert, Jr. para desarrollar una máquina que calculara tablas de trayectoria para el ejército estadounidense. El producto final, una computadora electrónica completamente operacional a gran escala, 4 5 se terminó en 1946 y se llamó ENIAC (Electronic Numerical Integrator And Computer), ó Integrador numérico y calculador electrónico. La ENIAC construida para aplicaciones de la Segunda Guerra mundial, se terminó en 30 meses por un equipo de científicos que trabajan bajo reloj. La ENIAC, mil veces más veloz que sus predecesoras electromecánicas, irrumpió como un importante descubrimiento en la tecnología de la computación. Pesaba 30 toneladas y ocupaba un espacio de 450 mts cuadrados, llenaba un cuarto de 6 m x 12 m y contenía 18,000 bulbos, tenía que programarse manualmente conectándola a 3 tableros que contenían más de 6000 interruptores. Ingresar un nuevo programa era un proceso muy tedioso que requería días o incluso semanas. A diferencia de las computadoras actuales que operan con un sistema binario (0,1) la ENIAC operaba con uno decimal (0,1,2..9). La ENIAC requería una gran cantidad de electricidad. La leyenda cuenta que la ENIAC, construida en la Universidad de Pensilvania, bajaba las luces de Filadelfia siempre que se activaba. La imponente escala y las numerosas aplicaciones generales de la ENIAC señalaron el comienzo de la primera generación de computadoras. En 1945, John von Neumann, que había trabajado con Eckert y Mauchly en la Universidad de Pensilvania, publicó un artículo acerca del almacenamiento de programas. El concepto de programa almacenado permitió la lectura de un programa dentro de la memoria de la computadora, y después la ejecución de las instrucciones del mismo sin tener que volverlas a escribir. La primera computadora en usar el citado concepto fue la la llamada EDVAC (Eletronic Discrete-Variable Automatic Computer, es decir computadora automática electrónica de variable discreta), desarrollada por Von Neumann, Eckert y Mauchly. Los programas almacenados dieron a las computadoras una flexibilidad y confiabilidad tremendas, haciéndolas más rápidas y menos sujetas a errores que los programas mecánicos. Una computadora con capacidad de programa almacenado podría ser utilizada para varias aplicaciones cargando y ejecutando el programa apropiado. Hasta este punto, los programas y datos podría ser ingresados en la computadora sólo con la notación binaria, que es el único código que las computadoras "entienden". El siguiente desarrollo importante en el diseño de las computadoras fueron los programas intérpretes, que permitían a las personas comunicarse con las computadoras utilizando medios distintos a los números binarios. En 1952 Grace Murray Hoper una oficial de la Marina de E.U., desarrolló el primer compilador, un programa que puede traducir enunciados parecidos al inglés en un código binario comprensible para la maquina llamado COBOL (Common Business-Oriented Languaje). Generaciones de computadoras Primera Generación de Computadoras (de 1951 a 1958) Las computadoras de la primera Generación emplearon bulbos para procesar información. Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas. Esas computadoras de bulbos eran mucho más grandes y generaban más calor que los modelos contemporáneos. Eckert y Mauchly contribuyeron al desarrollo de computadoras de la 1era Generación formando una Cia. privada y construyendo UNIVAC I, que el Comité del censó utilizó para evaluar el de 1950. La IBM tenía el monopolio de los equipos de procesamiento de datos basándose en tarjetas perforadas y estaba teniendo un gran auge en productos como rebanadores de carne, básculas para comestibles, relojes y otros artículos; sin embargo no había logrado el contrato para el Censo de 1950. Comenzó entonces a construir computadoras electrónicas y su primera entrada fue con la IBM 701 en 1953. Después de un lento pero excitante comienzo la IBM 701 se convirtió en un producto comercialmente viable. Sin embargo en 1954 fue introducido el modelo IBM 650, el cual es la razón por la que IBM disfruta hoy de una gran parte del mercado de las computadoras. La administración de la IBM asumió un gran riesgo y estimó una venta de 50 computadoras. Este número era mayor que la cantidad de computadoras instaladas en esa época en E.U. De hecho la IBM instaló 1000 computadoras. El resto es 5 6 historia. Aunque caras y de uso limitado las computadoras fueron aceptadas rápidamente por las Compañías privadas y de Gobierno. A la mitad de los años 50 IBM y Remington Rand se consolidaban como líderes en la fabricación de computadoras. - Segunda Generación (1959-1964) Transistor Compatibilidad limitada El invento del transistor hizo posible una nueva generación de computadoras, más rápidas, más pequeñas y con menores necesidades de ventilación. Sin embargo el costo seguia siendo una porción significativa del presupuesto de una Compañía. Las computadoras de la segunda generación también utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el almacenamiento primario. Estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales podían almacenarse datos e instrucciones. Los programas de computadoras también mejoraron. El COBOL desarrollado durante la 1era generación estaba ya disponible comercialmente. Los programas escritos para una computadora podían transferirse a otra con un mínimo esfuerzo. El escribir un programa ya no requería entender plenamente el hardware de la computación. Las computadoras de la 2da Generación eran sustancialmente más pequeñas y rápidas que las de bulbos, y se usaban para nuevas aplicaciones, como en los sistemas para reservación en líneas aéreas, control de tráfico aéreo y simulaciones para uso general. Las empresas comenzaron a aplicar las computadoras a tareas de almacenamiento de registros, como manejo de inventarios, nómina y contabilidad. La marina de E.U. utilizó las computadoras de la Segunda Generación para crear el primer simulador de vuelo. (Whirlwind I). HoneyWell se colocó como el primer competidor durante la segunda generación de computadoras. Burroughs, Univac, NCR, CDC, HoneyWell, los más grandes competidores de IBM durante los 60s se conocieron como el grupo BUNCH (siglas). Tercera Generación (1964-1971) circuitos integrados Compatibilidad con equipo mayor Multiprogramación Minicomputadora Las computadoras de la tercera generación emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrónicos, en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. Antes del advenimiento de los circuitos integrados, las computadoras estaban diseñadas para aplicaciones matemáticas o de negocios, pero no para las dos cosas. Los circuitos integrados permitieron a los fabricantes de computadoras incrementar la flexibilidad de los programas, y estandarizar sus modelos. La IBM 360 una de las primeras computadoras comerciales que usó circuitos integrados, podía realizar tanto análisis numéricos como administración ó procesamiento de archivos. Los clientes podían escalar sus sistemas 360 a modelos IBM de mayor tamaño y podían todavía correr sus programas actuales. Las computadoras trabajaban a tal velocidad que proporcionaban la capacidad de correr más de un programa de manera simultánea (multiprogramación). 6 7 Por ejemplo la computadora podia estar calculando la nomina y aceptando pedidos al mismo tiempo. Minicomputadoras, Con la introducción del modelo 360 IBM acaparó el 70% del mercado, para evitar competir directamente con IBM la empresa Digital Equipment Corporation DEC redirigió sus esfuerzos hacia computadoras pequeñas. Mucho menos costosas de comprar y de operar que las computadoras grandes, las minicomputadoras se desarrollaron durante la segunda generación pero alcanzaron su mayor auge entre 1960 y 70. - La cuarta Generación (1971 a la fecha) - Microprocesador - Chips de memoria. - Microminiaturización Dos mejoras en la tecnología de las computadoras marcan el inicio de la cuarta generación: el reemplazo de las memorias con núcleos magnéticos, por las de chips de silicio y la colocación de muchos más componentes en un Chip: producto de la microminiaturización de los circuitos electrónicos. El tamaño reducido del microprocesador de chips hizo posible la creación de las computadoras personales. (PC) Hoy en día las tecnologías LSI (Integración a gran escala) y VLSI (integración a muy gran escala) permiten que cientos de miles de componentes electrónicos se almacenan en un chip. Usando VLSI, un fabricante puede hacer que una computadora pequeña rivalice con una computadora de la primera generación que ocupara un cuarto completo. Lenguajes de Programación a.) Historia de los lenguajes; Los lenguajes de programación cierran el abismo entre las computadoras, que sólo trabajan con números binarios, y los humanos, que preferimos utilizar palabras y otros sistemas de numeración. Mediante los programas se indica a la computadora qué tarea debe realizar y como efectuarla, pero para ello es preciso introducir estas ordenes en un lenguaje que el sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en código máquina, es decir, el especifico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel. b. Generaciones de los lenguajes LENGUAJES DE BAJO NIVEL: Utilizan códigos muy cercanos a los de la máquina, lo que hace posible la elaboración de programas muy potentes y rápidos, pero son de difícil aprendizaje. LENGUAJES DE ALTO NIVEL: Por el contrario, son de uso mucho más fácil, ya que en ellos un solo comando o instrucción puede equivaler a millares es código máquina. El programador escribe su programa en alguno de estos lenguajes mediante secuencias de instrucciones. Antes de ejecutar el programa la computadora lo traduce a código máquina de una sola vez (lenguajes compiladores) o interpretándolo instrucción por instrucción (lenguajes intérpretes). Ejemplos de lenguajes de alto nivel: Pascal, Cobol, Basic, Fortran, C++ Un Programa de computadora, es una colección de instrucciones que, al ser ejecutadas por el CPU de una máquina, llevan a cabo una tarea ó función específica. Este conjunto de instrucciones que forman los programas son almacenados en archivos denomina dos archivos ejecutables puesto que, al teclear su nombre (o hacer clic sobre el icono que los identifica) logras que la computadora los cargue y corra, o ejecute las instrucciones del archivo. El contenido de un archivo ejecutable no puede ser entendido por el usuario, ya que no está hecho para que la gente lo lea, sino para que la computadora sea quien lo lea. 7 8 Los archivos de programas ejecutables contienen el código máquina, que la CPU identifica como sus instrucciones. Son lo que conocemos como Programas Objeto. Dado que sería muy difícil que los programadores crearan programas directamente en código de máquina, usan lenguajes más fáciles de leer, escribir y entender para la gente. El programador teclea instrucciones en un editor, que es un programa parecido a un simple procesador de palabras, estas instrucciones son almacenadas en archivos denominados programas fuentes (código fuente). Si los programadores necesitan hacer cambios al programa posteriormente vuelven a correr el editor y cargan el programa fuente para modificarlo. El proceso de conversión de programas fuente a programas objeto se realiza mediante un programa denominado compilador. El compilador toma un programa fuente y lo traduce a programa objeto y almacena este último en otro archivo. PROGRAMA FUENTE: Es el programa escrito en alguno de los lenguajes y que no ha sido traducido al lenguaje de la maquina, es decir el programa que no está en código de máquina y que por lo tanto no puede ser ejecutable. PROGRAMA OBJETO: s aquel programa que se encuentra en lenguaje máquina y que ya es ejecutable por esta. C.) Programación Orientada a Objetos: La programación orientada a objetos no es un concepto nuevo, sus inicios y técnicas de programación se iniciaron a principios de los 70. Se puede definir programación orientada a objetos (OOPS) como una técnica de programación que utiliza objetos como bloque esencial de construcción. La OOPS, es un tipo de programación más cercana al razonamiento humano. La OOPS surge como una solución a la programación de grandes programas, y para solventar el mantenimiento de dichas aplicaciones, ya que en la programación estructura el más mínimo cambio supone la modificación de muchas funciones relacionadas, en cambio con la OOPS solo es cuestión de añadir o modificar métodos de una clase o mejor, crear una nueva clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto para programar de esta forma, Smalltalk y C++. Concepto de Objeto: Desde un punto de vista general un Objeto es una estructura de datos de mayor o menor complejidad con las funciones que procesan estos datos. Dicho de otra forma, sería Datos más un Código que procesa estos datos. A los datos se les denomina miembros dato y a las funciones miembro o miembro funciones. Los datos están ocultos y sólo se puede acceder a ellos mediante las funciones miembro. Clases: Las Clases son como plantillas o modelos que describen como se construyen ciertos tipos de Objeto. Cada vez que se construye un Objeto de una Clase, se crea una instancia de esa Clase("instance"). Una Clase es una colección de Objetos similares y un Objeto es una instancia de una Clase. Se puede definir una Clase como un modelo que se utiliza para describir uno o más Objetos del mismo tipo. Herencia: Una característica muy importante de los Objetos y las Clases es la Herencia, una propiedad que permite construir nuevos Objetos (Clases) a partir de unos ya existentes. Esto permite crear "SubClases" denominadas Clases Derivadas que comparten las propiedades de la Clase de la cual derivan (Clase base). Las Clases derivadas heredan código y datos de la clase base, asimismo incorporan su propio código y datos especiales. Se puede decir que la herencia permite definir nuevas Clases a partir de las Clases ya existentes. Polimorfismo: En un sentido literal, Polimorfismo significa la cualidad de tener más de una forma. En el contexto de POO, el Polimorfismo se refiere al hecho de que una simple operación puede tener diferente comportamiento en diferentes objetos. En otras palabras, diferentes objetos reaccionan al mismo mensaje de modo diferente. Los primeros lenguajes de POO fueron interpretados, de forma que el Polimorfismo se contemplaba en tiempo de ejecución. Por ejemplo, en C++, al ser un lenguaje compilado, el Polimorfismo se admite tanto en tiempo de ejecución como en tiempo de compilación Decimos entonces que: 8 9 El tema de la Programación Orientada a Objetos (Object Oriented Programming O-O-P) sigue siendo para el que escribe un territorio inquietante, interesante y en gran medida desconocido, como parece ser también para la gran mayoría de los que estamos en el campo de la programación. Sin tratar de excluir a aquellos que han afrontado este desarrollo desde el punto de vista académico y formal (maestrías y doctorados) el tema se antoja difícil para los no iniciados. Con este breve artículo me dirigiré en particular a la gran base de programadores prácticos que andamos en búsqueda de mejores herramientas de desarrollo de programas, que faciliten el trabajo de nuestros usuarios y a la vez disminuyan la gran cantidad de considerandos que aparecen al empeñarnos en un proyecto de cómputo. Como muchos de ustedes, me topé con el concepto de O-O-P como parte de esa búsqueda y al explorarlo apareció el gusanillo de la curiosidad. A lo largo de mi actividad como programador, y cuando se dio la necesidad, no tuve ningún problema en convertir mis habilidades de programación en FORTRAN de IBM 1130 al BASIC de la PDP, pues sólo era cuestión de aprender la sintaxis del lenguaje, ya que las estrategias de programación y los algoritmos eran iguales. Posteriormente, al manejar el PASCAL se requirió un importante esfuerzo en entender la filosofía de las estructuras, lo cual modificaba la manera de ver (conceptualizar) a los datos y a las partes constitutivas de un programa. Posteriormente aparece el QuickBasic, que adopté inmediatamente por la familiaridad con el BASIC (ley del menor esfuerzo). Ofrecía estructuras de datos (tipos y registros complejos), además de estructuras de instrucciones en procedimientos y módulos; editor "inteligente" que revisa la sintaxis y ejecución de las instrucciones mientras se edita el programa, generación de ejecutable una vez terminado (.EXE), existencia de bibliotecas externas y enlace con módulos objeto generados en otro lenguaje. ¿Qué más podía yo pedir? Pero la necesidad de estar en la ola de moda es más fuerte que el sentido común. Las aplicaciones en Windows siempre han despertado la envidia de los programadores, al hacer ver sus programas pálidos e insulsos por comparación. Solución: programar en Windows. Originalmente programar en Windows representaba un largo y tedioso camino para dominar las complejas herramientas de desarrollo. Sólo recientemente han aparecido desarrolladores de aplicaciones para Windows que le permiten al programador pintar sus ventanas y realizar los enlaces entre los objetos con programación tradicional, evitando en gran medida involucrarse con los conceptos complicados de los objetos. Sin embargo no dejaron de inquietarme algunos conceptos marcados por O-O-P, según los cuales serán los pilares del futuro de la programación de componentes y de objetos distribuidos en redes, en donde la actual programación cliente/servidor pareciera por comparación el FORTRAN o el COBOL de ahora. Pidiendo perdón de antemano a los puristas de las definiciones y conceptos de O-O-P, expondré el resultado de mis propias indagaciones sobre este campo, esperando que al paciente lector y posible programador le resulte menos complicado que a mí asimilar los elementos básicos de O-O-P. Los principales conceptos que se manejan en la Programación Orientada a Objetos son: 1. encapsulado, 2. herencia y 3. Polimorfismo. Según esto, la encapsulación es la creación de módulos autosuficientes que contienen los datos y las funciones que manipulan dichos datos. Se aplica la idea de la caja negra y un letrero de "prohibido mirar adentro". Los objetos se comunican entre sí intercambiando mensajes. De esta manera, para armar aplicaciones se utilizan los objetos cuyo funcionamiento está perfectamente definido a través de los mensajes que es capaz de recibir o mandar. Todo lo que un objeto puede hacer está representado por su interfase de mensajes. Para crear objetos, el programador puede recurrir a diversos lenguajes como el C++, el Smalltalk, el Visual Objects y otros. Si se desea solamente utilizar los objetos y enlazarlos en una aplicación por medio de la programación tradicional se puede recurrir al Visual Basic, al CA-Realizer, al Power Builder, etc. El concepto de herencia me pareció sencillo de entender una vez que capté otro concepto de O-O-P: las clases. En O-O-P se acostumbra agrupar a los objetos en clases. Esto es muy común en la vida diaria. Todos nosotros tendemos a clasificar los objetos comunes por clases. Manejamos la clase mueble, la clase mascota, la clase alimento, etc. Obviamente en el campo de la programación esta clasificación es más estricta. ¿Cuál es el sentido de las clases? Fundamentalmente evitar definir los objetos desde cero y facilitar su rehuso. Si trabajamos con clases, al querer definir un nuevo objeto, partimos de alguna clase definida anteriormente, con lo que el objeto en cuestión hereda las características de los objetos de su clase. Imaginemos que creamos una clase "aves" y describimos las características de las aves (plumas, 9 10 pico, nacen de huevo, etc.). Más adelante necesitamos una clase "pingüino". Como pertenece a "aves" no requerimos volver a declarar lo descrito sino marcamos que "pingüino" es una subclase de "aves" con lo que "pingüino" hereda todas sus características. A continuación sólo declaramos los detalles que determinan lo que distingue a "pingüino" de "aves". Asimismo podemos declarar "emperador" como una subclase de "pingüino", con lo que "emperador" heredará todas las características de las superclases "pingüino" y "aves" más las características que nosotros declaremos en particular para "emperador". En un programa (imaginario por supuesto) yo puedo utilizar estas clases (aves, pingüino y emperador). El hecho de colocar a un individuo en particular en estas clases es lo que se llama objeto y se dice que es una instancia de una clase. Así, si yo coloco a Fredy (un pingüino emperador) en mi programa, se dice que el objeto Fredy es una instancia de la clase emperador. Fredy aparecerá en mi programa con todas las características (herencia) de aves, de pingüino y de emperador. Por otra parte, entender el concepto de Polimorfismo implicó un buen número de horas de indagación y búsqueda de ejemplos. Espero que éste resulte claro: supóngase que declaramos un objeto llamado Suma. Este objeto requiere dos parámetros (o datos) como mensaje para operar. En la programación tradicional tendríamos que definir el tipo de datos que le enviamos, como por ejemplo dos números enteros, dos números reales, etc. En O-O-P el tipo de dato se conoce hasta que se ejecuta el programa. E.) COMPILADOR: Es un programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es más rápida que la de los interpretados, ya que el interprete debe traducir mientras está en la fase de ejecución (saca todos los errores). Un compilador es un programa que traduce el programa fuente (conjunto de instrucciones de un lenguaje de alto nivel, por ejemplo BASIC o Pascal) a programa objeto (instrucciones en lenguaje máquina que la computadora puede interpretar y ejecutar). Se requiere un compilador para cada lenguaje de programación. Un compilador efectúa la traducción, no ejecuta el programa. Una vez compilado el programa, el resultado en forma de programa objeto será directamente ejecutable. Presentan la ventaja considerable frente a los intérpretes de la velocidad de ejecución, por lo que su uso será mejor en aquellos programas probados en los que no se esperan cambios y que deban ejecutarse muchas veces. En caso de que se opte por un interpretador se debe considerar que el intérprete resida siempre en memoria. INTERPRETE: Traductor de lenguajes de programación de alto nivel, los interpretes ejecutan un programa línea por línea. El programa siempre permanece en su forma original(programa fuente) y el interprete proporciona la traducción al momento de ejecutar cada una de la s instrucciones. Un intérprete es un programa que procesa los programas escritos en un lenguaje de alto nivel, sin embargo, está diseñado de modo que no existe independencia entre la etapa de traducción y la etapa de ejecución. Un intérprete traduce cada instrucción o sentencia del programa escrito a un lenguaje máquina e inmediatamente se ejecuta. Encuentran su mayor ventaja en la interacción con el usuario, al facilitar el desarrollo y puesta a punto de programas, ya que los errores son fáciles de detectar y sobre todo de corregir. LENGUAJE MÁQUINA: Lenguaje original de la computadora, un programa debe estar escrito en el lenguaje de la máquina para poder ser ejecutado. Este es generado por software y no por el programador. El programador escribe en un lenguaje de programación, el cual es traducido al lenguaje de máquina mediante interpretes y compiladores. E.) Case: (Computer-Aided Software Engineering o Computer- Aided Systems Engineering) Ingeniería de Software Asistida por Computadora o Ingeniería de Sistemas Asistida por computadora Software que se utiliza en una cualquiera o en todas las fases del desarrollo de un sistema de información, incluyendo análisis, diseño y programación. Por ejemplo, los diccionarios de datos y herramientas de diagramación ayudan en las fases de análisis y diseño, mientras que los generadores de aplicaciones aceleran la fase de programación. Las herramientas CASE proporcionan métodos automáticos para diseñar y documentar las técnicas tradicionales de programación estructurada. La meta última de CASE es proveer un lenguaje para describir el sistema completo, que sea suficiente para generar todos los programas necesarios. Sistemas Operativos Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el tecla do, el sistema de vídeo y las unidades de disco. 10 11 Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación. Cuando enciendes una computadora, lo primero que ésta hace es llevar a cabo un autodiagnóstico llamado autoprueba de encendido (Power On Self Test, POST). Durante la POST, la computadora identifica su memoria, sus discos, su teclado, su sistema de vídeo y cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot). Una vez que la computadora ha puesto en marcha su SO, mantiene al menos parte de éste en su memoria en todo momento. Mientras la computadora esté encendida, el SO tiene 4 tareas principales: 1. Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con la computadora. Interfaz de línea de comando: tú introduces palabras y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS. Interfaz gráfica del Usuario (GUI), seleccionas las acciones mediante el uso de un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los menús. 2. Administrar los dispositivos de hardware en la computadora · Cuando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, módems, etc). El SO sirve de intermediario entre los programas y el hardware. 3. Administrar y mantener los sistemas de archivo de disco · Los SO agrupan la información dentro de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos. 4. Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como "llamadas del sistema" El Kernel y el Shell. Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este programa ti ene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos. Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando carga s Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MSDOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL. A.) Categorías de Sistemas Operativos A.1) MULTITAREA: El término multitarea se refiere a la capacidad del SO para correr mas de un programa al mismo tiempo. Existen dos esquemas que los programas de sistemas operativos utilizan para desarrollar SO multitarea, el primero requiere de la cooperación entre el SO y los programas de aplicación. Los programas son escritos de tal manera que periódicamente inspeccionan con el SO para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces dejan el control del CPU al siguiente programa, a este método se le llama multitarea cooperativa y es el método utilizado por el SO de las computadoras de Machintosh y DOS corriendo Windows de Microsoft. El segundo método es el llamada multitarea con asignación de prioridades. Con este esquema el SO mantiene una lista de procesos (programas) que están corriendo. Cuando se inicia cada proceso en la lista el SO le asigna una 11 12 prioridad. En cualquier momento el SO puede intervenir y modificar la prioridad de un proceso organizando en forma efectiva la lista de prioridad, el SO también mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir al siguiente. Con multitarea de asignación de prioridades el SO puede sustituir en cualquier momento el proceso que esta corriendo y reasignar el tiempo a una tarea de mas prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea. A.2) MULTIUSUARIO: Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción. Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo. 1.) Mediante Módems. 1. Mediante conexión de terminales a través de puertos seriales 3.) Mediante Redes. A.3) MULTIPROCESO: Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar otras instrucciones simultáneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: · Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella. · Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles. Windows NT de Microsoft soporta multiproceso simétrico. B.) Lista de los Sistemas Operativos más comunes. B.1) MS-DOS: Es el más común y popular de todos los Sistemas Operativos para PC. La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel. Cuando Intel liberó el 80286, D OS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían. B.2) OS/2: Después de la introducción del procesador Intel 80286, IBM y Microsoft reconocieron la necesidad de tomar ventaja de las capacidades multitarea de esta CPU. Se unieron para desarrollar el OS/2, un moderno SO multitarea para los microprocesadores Intel. < BR>Sin embargo, la sociedad no duró mucho. Las diferencias en opiniones técnicas y la percepción de IBM al ver a Windows como una amenaza para el OS/2 causó una desavenencia entre las Compañías que al final las llevó a la disolución de la sociedad. IBM continuó el desarrollo y promoción del OS/2. 12 13 Es un sistema operativo de multitarea para un solo usuario que requiere un microprocesador Intel 286 o mejor. Además de la multitarea, la gran ventaja de la plataforma OS/2 es que permite manejar directamente hasta 16 MB de la RAM ( en comparación con 1 MB en el caso del MS-DOS ). Por otra parte, el OS/2 es un entorno muy complejo que requiere hasta 4 MB de la RAM. Los usuarios del OS/2 interactuan con el sistema mediante una interfaz gráfica para usuario llamada Administrador de presentaciones. A pesar de que el OS/2 rompe la barrera de 1 MB del MS-DOS, le llevo tiempo volverse popular. Los vendedores de software se muestran renuentes a destinar recursos a la creación de un software con base en el OS/2 para un mercado dominado por el MS-DOS. Los usuarios se rehusan a cambiar al OS/2 debido a la falta de software que funcione en la plata forma del OS/2 y a que muchos tendrían que mejorar la configuración de su PC para que opere con el OS/2. B.3) UNIX: Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Es un sistema operativo que fue creado a principios de los setentas por los científicos en los laboratorios Bell. Fue específicamente diseñado para proveer una manera de manejar científica y especializadamente las aplicaciones computacionales. Este SO se adapto a los sistemas de computo personales así que esta aceptación reciente lo convierte en un sistema popular. . Unix es más antiguo que todos los demás SO de PC y de muchas maneras sirvió como modelo para éstos. Aun cuando es un SO extremadamente sólido y capaz, la línea de comandos Unix, no es apta para cardiacos, debido a que ofrece demasiados comandos. B.4) SISTEMA OPERATIVO DE MACINTOSH: La Macintosh es una máquina netamente gráfica. De hecho, no existe una interfaz de línea de comando equivalente para ésta. Su estrecha integración de SO, GUI y área de trabajo la hacen la favorita de la gente que no quiere saber nada de interfaces de línea de comando. Las capacidades gráficas de la Macintosh hicieron de esa máquina la primera precursora en los campos gráficos computarizados como la autoedición por computadora. La familia de microcomputadoras de Apple Macintosh y su sistema operativo define otra plataforma importante. Las PC de Macintosh, que se basan en la familia de microprocesadores de Motorola, usan la arquitectura de Bus de 32 bits. La plataforma para Macintosh incluye muchas capacidades sofisticadas que comprende la multitarea, una GUI, la memoria virtual y la capacidad para emular la plataforma MSDOS. Las PC de Macintosh también tiene la capacidad integrada de compartir archivos y comunicarse con o tras PC de Macintosh en una red. B.5) WINDOWS NT DE MICROSOFT: Con Windows NT, Microsoft ha expresado su dedicación a escribir software no sólo para PC de escritorio sino también para poderosas estaciones de trabajo y servidores de red y bases de datos. Microsoft Windows NT no es necesariamente un sustituto de DOS ni una nueva versión de éste; es, en conjunto, un nuevo SO diseñado desde sus bases para las máquinas más modernas y capaces disponibles. Windows NT de Microsoft ofrece características interconstruidas que ningún otro SO para PC ofrece, con excepción de Unix. Además de las características tradicionales de estricta seguridad de sistema, red interconstruida, servicios de comunicación y correo electrónico interconstruidos, herramientas de administración y desarrollo de sistema y una GUI, Windows NT puede correr directamente aplicaciones de Windows de Microsoft y de Unix. Windows NT, al igual que el OS/2 ver 2.0 y algunas versiones de Unix, es un SO de 32 bits, que puede hacer completo uso de los procesadores de estas características. Además de ser multitarea, está diseñado para tomar ventaja del multiproceso simétrico. Bases de Datos La DBMS (Data Base Management System) es la herramienta que las computadoras utilizan para realizar el procesamiento y almacenamiento ordenado de los datos. Una base de datos es un recipiente para 13 14 colecciones relacionadas de datos. Cualquier conjunto de datos organizados para su almacenamiento en la memoria de un ordenador o computadora, diseñado para facilitar su mantenimiento y acceso de una forma estándar. Los datos suelen aparecer en forma de texto, números o gráficos. Desde su aparición en la década de 1950, se han hecho imprescindibles para las sociedades industriales. Hay cuatro modelos principales de bases de datos: el modelo jerárquico, el modelo en red, el modelo relacional (el más extendido hoy en día; los datos se almacenan en tablas a los que se accede mediante consultas escritas en SQL) y el modelo de bases de datos deductivas. Otra línea de investigación en este campo son las bases de datos orientadas a objeto, o de objetos persistentes. Por ejemplo, un a agenda puede ser una base de datos donde se almacenan los nombres, direcciones y números telefónicos de amigos y contactos de negocios. La Base de Datos de una Compañía puede contener información acerca de los consumidores, vendedores, empleados, venta s en inventario. Ejemplos de Bases de Datos: Access, FoxPro, Approach. A. Base de datos relacional, en informática, tipo de base de datos o sistema de administración de bases de datos, que almacena información en tablas (filas y columnas de datos) y realiza búsquedas utilizando los datos de columnas especificadas de una tabla para encontrar datos adicionales en otra tabla. En una base de datos relacional, las filas representan registros (conjuntos de datos acerca de elementos separados) y las columnas representan campos (atributos particulares de un registro). Al realizar las búsquedas, una base de datos relacional hace coincidir la información de un campo de una tabla con información en el campo correspondiente de otra tabla y con ello produce una tercera tabla que combina los datos solicitados de ambas tablas. Por ejemplo, si una tabla contiene los campos NÚMEMPLEADO, APELLIDO, NOMBRE y ANTIGÜEDAD y otra tabla contiene los campos DEPARTAMENTO, NÚM-EMPLEADO y SALARIO, una base de datos relacional hace coincidir el campo NÚM-EMPLEADO de las dos tablas para encontrar información, como por ejemplo los nombres de los empleados que ganan un cierto salario o los departamentos de todos los empleados contratados a partir de un día determinado. En otras palabras, una base de datos relacional utiliza los valores coincidentes de dos tablas para relacionar información de ambas. Por lo general, los productos de bases de datos para microcomputadoras o microordenadores son bases de datos relacionales. B. Cliente/servidor: En vez de construir sistemas informáticos como elementos monolíticos, existe el acuerdo general de construirlos como sistemas cliente/servidor. El cliente (un usuario de PC) solicita un servicio (como imprimir) que un servidor le proporciona (un procesador conectado a la LAN). Este enfoque común de la estructura de los sistemas informáticos se traduce en una separación de las funciones que anteriormente forman un todo. Los detalles de la realización van desde los planteamientos sencillos hasta la posibilidad real de manejar todos los ordenadores de modo uniforme. Redes Una Red es una manera de conectar varias computadoras entre sí, compartiendo sus recursos e información y estando conscientes una de otra. Cuando las PC comenzaron a entrar en el área de los negocios, el conectar dos PC no traía ventajas, pero esto desapareció cuando se empezó a crear los sistemas operativos y el Software multiusuario. A. Topología de redes: La topología de una red , es el patrón de interconexión entre nodos y servidor, existe tanto la topología lógica (la forma en que es regulado el flujo de los datos) ,como la topología física ( la distribución física del cableado de la red). Las topologías físicas de red más comunes son: · Estrella. · Bus lineal · Anillo. A.1) Topología de estrella: Red de comunicaciones en que la que todas las terminales están conectadas a un núcleo central, si una de las computadoras no funciona, ésto no afecta a las demás, siempre y cuando el "servidor" no esté caído. 14 15 A.2) Topología Bus lineal: Todas las computadoras están conectadas a un cable central, llamado el "bus" o "backbone". Las redes de bus lineal son de las más fáciles de instalar y son relativamente baratas. A.3) Topología de anillo: Todas las computadoras o nodos están conectados el uno con el otro, formando una cadena o círculo cerrado. A. Protocolos de intercambio, en informática, como en las relaciones humanas, señal mediante la cual se reconoce que puede tener lugar la comunicación o la transferencia de información. Los protocolos de intercambio se pueden controlar tanto con hardware como con software. Un protocolo de intercambio de hardware, como el existente entre un ordenador o computadora con una impresora o con un módem, es un intercambio de señales, a través de cables específicos, en el que cada dispositivo señala su disposición para enviar o recibir datos. Un protocolo de software, normalmente el que se intercambia durante las comunicaciones del tipo módem a módem, consiste en una determinada información transmitida entre los dispositivos de envío y de recepción. Un protocolo de intercambio de software establece un acuerdo entre los dispositivos sobre los protocolos que ambos utilizarán al comunicarse. Un protocolo de intercambio de hardware es por tanto similar a dos personas que físicamente estrechan sus manos, mientras que un protocolo de intercambio de software es más parecido a dos grupos que deciden conversar en un lenguaje particular. B. TCP/IP: (Transmission Control Protocol/Internet Protocol) Protocolo de control de transmisiones/protocolo Internet. Conjunto de protocolos de comunicaciones desarrollado por la Defense Advanced Research Projects Agency (DARPA - Agencia de proyectos de investigación avanzada de defensa) para intercomunicar sistemas diferentes. Se ejecuta en un gran número de computadoras VAX y basadas en UNIX, y es utilizado por muchos fabricantes de hardware, desde los de computadoras personales hasta los de macro computadoras. Es empleado por numerosas corporaciones y por casi todas las universidades y organizaciones federales de los Estados Unidos. El File Transfer Protocol (FTP Protocolo de transferencia de archivos) y el Simple Mail Transfer Protocol (SMTP -Protocolo simple de transferencia de correspondencia) brindan capacidades de transferencia de archivos y de correo electrónico. El protocolo TELNET proporciona una capacidad de emulación de terminal que permite al usuario interactuar con cualquier otro tipo de computadora de la red. El protocolo TCP controla la transferencia de los datos, y el IP brinda el mecanismo para encaminarla. En el siguiente diagrama se muestran TCP/IP, junto con los modelos DOD y OSI. C. IPX: (Internet Packet Exchange) intercambio de paquetes entre redes Un protocolo de comunicaciones del NetWare de Novell que se utiliza para encaminar mensajes de un nodo a otro. Los programas de aplicación que manipulan sus propias comunicaciones cliente/servidor o de igual a igual en una red Novell pueden acceder directamente al IPX o al protocolo SPX de NetWare. El IPX no garantiza la entrega del mensaje como lo hace el SPX. D. NETBEUI: NetBEUI (NETBIOS Extended User Interface) Interfaz de usuario extendido de NetBIOS La realización del protocolo de transporte NetBIOS en LAN Manager y LAN Server. Se comunica con las tarjetas de interfaz de red (NICs) vía NDIS (Network Driver Interface Specification). El término fue originalmente usado para definir el protocolo NetBIOS después que éste fue mejorado para soportar la Token Ring Network. E. Tipos de Redes: Según el lugar y el espacio que ocupen, las redes, se pueden clasificar en dos tipos: 1.Redes LAN (Local Area Network) o Redes de área local 2.Redes WAN (Wide Area Network) o Redes de área amplia 1.- LAN - Redes de Área Local: 15 16 Es una red que se expande en un área relativamente pequeña. Éstas se encuentran comúnmente dentro de una edificación o un conjunto de edificaciones que estén contiguos. Así mismo, una LAN puede estar conectada con otras LANs a cualquier distancia por medio de línea telefónica y ondas de radio. Pueden ser desde 2 computadoras, hasta cientos de ellas. Todas se conectan entre sí por varios medios y topología, a la computadora(s) que se encarga de llevar el control de la red es llamada "servidor" y a las computadoras que dependen del servidor, se les llama "nodos" o "estaciones de trabajo". Los nodos de una red pueden ser PC que cuentan con su propio CPU, disco duro y software y tienen la capacidad de conectarse a la red en un momento dado; o pueden ser PC sin CPU o disco duro y son llamadas "terminales tontas", las cuales tienen que estar conectadas a la red para su funcionamiento. Las LANs son capaces de transmitir datos a velocidades muy rápidas, algunas inclusive más rápido que por línea telefónica; pero las distancias son limitadas. 2. - WAN - Redes de Área Amplia: Es una red comúnmente compuesta por varias LANs interconectadas y se encuentran en una amplia área geográfica. Estas LANs que componen la WAN se encuentran interconectadas por medio de líneas de teléfono, fibra óptica o por enlaces aéreos como satélites. Entre las WANs mas grandes se encuentran: la ARPANET, que fue creada por la Secretaría de Defensa de los Estados Unidos y se convirtió en lo que es actualmente la WAN mundial: INTERNET, a la cual se conectan actualmente miles de redes universitarias, de gobierno, corporativas y de investigación. G.) Componentes de una red: De lo que se compone una red en forma básica es lo siguiente: 1.-Servidor (server): El servidor es la máquina principal de la red, la que se encarga de administrar los recursos de la red y el flujo de la información. Muchos de los servidores son "dedicados" , es decir, están realizando tareas específicas, por ejemplo , un servidor de impresión solo para imprimir; un servidor de comunicaciones, sólo para controlar el flujo de los datos...etc. Para que una máquina sea un servidor, es necesario que sea una computadora de alto rendimiento en cuanto a velocidad y procesamiento, y gran capacidad en disco duro u otros medios de almacenamiento. 2.- Estación de trabajo (Workstation): Es una computadora que se encuentra conectada físicamente al servidor por medio de algún tipo de cable. Muchas de las veces esta computadora ejecuta su propio sistema operativo y ya dentro, se añade al ambiente de la red. 3. - Sistema Operativo de Red: Es el sistema (Software) que se encarga de administrar y controlar en forma general la red. Para ésto tiene que ser un Sistema Operativo Multiusuario, como por ejemplo: Unix, Netware de Novell, Windows NT, etc. 4. - Recursos a compartir: Al hablar de los recursos a compartir, estamos hablando de todos aquellos dispositivos de Hardware que tienen un alto costo y que son de alta tecnología. En estos casos los más comunes son las impresoras, en sus diferentes tipos: Láser, de color, plotters, etc. 5. - Hardware de Red Son aquellos dispositivos que se utilizan para interconectar a los componentes de la red, serían básicamente las tarjetas de red (NIC-> Network Interface Cards) y el cableado entre servidores y estaciones de trabajo, así como los cables para conectar los periféricos. 16 17 1. Routers y bridges: Los servicios en la mayoría de las LAN son muy potentes. La mayoría de las organizaciones no desean encontrarse con núcleos aislados de utilidades informáticas. Por lo general prefieren difundir dichos servicios por una zona más amplia, de manera que los grupos puedan trabajar independientemente de su ubicación. Los routers y los bridges son equipos especiales que permiten conectar dos o más LAN. El bridge es el equipo más elemental y sólo permite conectar varias LAN de un mismo tipo. El router es un elemento más inteligente y posibilita la interconexión de diferentes tipos de redes de ordenadores. Las grandes empresas disponen de redes corporativas de datos basadas en una serie de redes LAN y routers. Desde el punto de vista del usuario, este enfoque proporciona una red físicamente heterogénea con aspecto de un recurso homogéneo. 2. Brouters: Un disco dispositivo de comunicaciones que realiza funciones de puente (bridge) y de encaminador (router). Como puente, las funciones del "brouter" son al nivel de enlace de datos (estrato 2), independientemente de protocolos más altos, pero como encaminador, administra líneas múltiples y encamina los mensajes como corresponde. 3. Gateway: pasarela, puerta de acceso Una computadora que conecta dos tipos diferentes de redes de comunicaciones. Realiza la conversión de protocolos de una red a otra. Por ejemplo, una puerta de acceso podría conectar una red LAN de computadoras. Nótese la diferencia con bridge, el cual conecta redes similares. H.) Transmisión de datos en las redes: La transmisión de datos en las redes, puede ser por dos medios: 1. - Terrestres: Son limitados y transmiten la señal por un conductor físico. 2. - Aéreos: Son "ilimitados" en cierta forma y transmiten y reciben las señales electromagnéticas por microondas o rayo láser. 1.- Terrestres: a. Cable par trenzado: Es el que comúnmente se utiliza para los cables de teléfonos, consta de 2 filamentos de cobre, cubiertos cada uno por plástico aislante y entrelazados el uno con el otro, existen dos tipos de cable par trenzado: el "blindado", que se utiliza en conexiones de redes y estaciones de trabajo y el "no blindado", que se utiliza en las líneas telefónicas y protege muy poco o casi nada de las interferencias. b. Cable coaxial: Este tipo de cable es muy popular en las redes, debido a su poca susceptibilidad de interferencia y por su gran ancho de banda, los datos son transmitidos por dentro del cable en un ambiente completamente cerrado, una pantalla sólida, bajo una cubierta exterior. Existen varios tipos de cables coaxiales, cada uno para un propósito diferente. c. Fibra óptica: Es un filamento de vidrio sumamente delgado diseñado para la transmisión de la luz. Las fibras ópticas poseen enormes capacidades de transmisión, del orden de miles de millones de bits por segundo. Además de que los impulsos luminosos no son afectados por interferencias causadas por la radiación aleatoria del ambiente. Actualmente la fibra óptica está remplazando en grandes cantidades a los cables comunes de cobre. Herramientas de Software para la Automatización de Oficinas Definición de Software: El software es el conjunto de instrucciones que las computadoras emplean para manipular datos. Sin el software, la computadora sería un conjunto de medios sin utilizar. Al cargar los programas en una computadora, la máquina actuará como si recibiera una educación instantánea; de pronto "sabe" cómo pensar y cómo operar. 17 18 El Software es un conjunto de programas, documentos, procedimientos, y rutinas asociados con la operación de un sistema de computo. Distinguiéndose de los componentes físicos llamados hardware. Comúnmente a los programas de computación se les llama software; el software asegura que el programa o sistema cumpla por completo con sus objetivos, opera con eficiencia, esta adecuadamente documentado, y suficientemente sencillo de operar. Es simplemente el conjunto de instrucciones individuales que se le proporciona al microprocesador para que pueda procesar los datos y generar los resultados esperados. El hardware por si solo no puede hacer nada, pues es necesario que exista el software, que es el conjunto de instrucciones que hacen funcionar al hardware. Clasificaciones del Software El software se clasifica en 4 diferentes Categorías: Sistemas Operativos, Lenguajes de Programación, Software de uso general, Software de Aplicación. (Algunos autores consideran la 3era y 4 ta clasificación como una sola). Lenguajes de Programación Mediante los programas se indica a la computadora que tarea debe realizar y cómo efectuarla, pero para ello es preciso introducir estas órdenes en un lenguaje que el sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en código máquina, es decir, el específico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel. Software de Uso General El software para uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete; es decir, con software y documentación orientada al usuario (manuales de referencia, plantillas de teclado y demás). Software de aplicaciones El software de aplicación esta diseñado y escrito para realizar tareas específicas personales, empresariales o científicas como el procesamiento de nóminas, la administración de los recursos humanos o el control de inventarios. Todas éstas aplicaciones procesan datos (recepción de materiales) y generan información (registros de nómina) para el usuario. A. Procesadores de Palabras: Son utilizados para escribir cartas, memorándums y otros documentos, El usuario teclea una serie de letras o párrafos, y son mostradas en la pantalla. El usuario puede fácilmente adherir, borrar y cambiar el texto hasta que el documento quede exactamente como se desea. Algunas características avanzadas que encontramos en la actualidad en los procesadores de texto son: corrector de ortografía, diccionario de sinónimos, presentación preliminar del texto antes de imprimir. Ejemplos de procesadores de texto: Word, AmiPro, Wordperfect. B. Hojas de Cálculo: Una Hoja de Cálculo es una herramienta para calcular y evaluar números. También ofrece capacidades para crear informes y presentaciones para comunicar lo que revelan los análisis; el usuario teclea los datos y las fórmulas que serán usadas para obtener los resultados; después el programa aplica las fórmulas a los datos y así obtiene los resultados; una de sus características mas importantes es la habilidad de preguntar (Condicionales)"what IF" "QUE PASARÍA SI?", cambiando los datos y rápidamente re- calculando los nuevos resultados. La mayoría de las Hojas de Cálculo cuentan también con la posibilidad de graficar estos resultados en diferentes estilos de gráficas (Barras, Líneas, Pastel, etc.). Ejemplos de Hojas de Cálculo: Excel, Lotus 123, Quatro. C. Paquetes de Presentación: Software que permite al usuario diseñar presentaciones para desplegarlas a través de la misma computadora o imprimir diapositivas y acetatos. Contienen opciones avanzadas para integrar efectos en cada cambio de diapositiva. Ejemplos: Presentation, Power Point. D. Shareware y Freeware: 18 19 1. Shareware: Software distribuido de forma gratuita para ser probado. Si el usuario decide quedarse con el programa y seguir usándolo, debe pagar al desarrollador. Normalmente, el shareware es desarrollado por compañías relativamente pequeñas o inclusive por programadores individuales, y generalmente es barato. 2. Freeware: Programas gratuitos que los desarrolladores ponen a disposición de otros usuarios sin ningún costo. En algunos casos el desarrollador no reclama derechos de autor y el programa se convierte en software del dominio público. En otros casos, el software tiene derechos de autor pero el desarrollador ha permitido a otra gente usarlos y copiarlo gratuitamente. A. Aplicación Vertical: Las aplicaciones verticales son programas que realizan todas las fases de una función crítica del negocio. Estos programas, que muchas veces corren en una combinación de Mainframes, minis y computadoras personales, se denominan algunas veces aplicaciones de misión crítica. Generalmente son desarrollados a la medida por cada compañía que los tiene y son usados por muchos individuos dentro de una Organización. Sistemas de Información Una aplicación comercial de la computadora. Está constituido por las bases de datos, los programas de aplicación, los procedimientos manuales y automatizados, y abarca los sistemas informáticos que llevan a cabo el procesamiento. Las bases de datos almacenan los asuntos de los negocios (archivos maestros) y sus actividades (archivos de transacciones). Los programas de aplicación proveen la entrada de datos, la actualización, consulta y procesamiento de informes. Los procedimientos manuales documentan la forma en que se obtienen los datos para su introducción, y la forma en que se distribuyen las salidas del sistema. Los procedimientos automáticos instruyen a la computadora acerca de cómo ejecutar las actividades de procesamiento por lotes, en las cuales la salida de un programa es automáticamente transferida a la entrada de otro programa. El procesamiento diario es el procesamiento interactivo y en tiempo real de las transacciones. Al final del día o de algún otro período, los programas de procesamiento por lotes actualizan los archivos maestros que no fueron actualizados desde el período anterior. Se imprimen los informes de las actividades de ciclo. El procedimiento periódico de un sistema de información es la actualización de los archivos maestros, en la cual se agrega, borra y modifica la información sobre clientes, empleados, proveedores y productos. Cada sistema abarca a los que lo suceden: Equipo de Computación A. Historia de las Computadoras Personales: Las microcomputadoras o Computadoras Personales (PC´s) tuvieron su origen con la creación de los microprocesadores. Un microprocesador es "una computadora en un chip", o sea un circuito integrado independiente. Las PC´s son computadoras para uso personal y relativamente son baratas y actualmente se encuentran en las oficinas, escuelas y hogares. El término PC se deriva de que para el año de 1981, IBM®, sacó a la venta su modelo "IBM PC", la cual se convirtió en un tipo de computadora ideal para uso "personal", de ahí que el término "PC" se estandarizó y los clones que sacaron posteriormente otras empresas fueron llamados "PC y compatibles", usando procesadores del mismo tipo que las IBM, pero a un costo menor y pudiendo ejecutar el mismo tipo de programas. Existen otros tipos de microcomputadoras, como la Macintosh®, que no son compatibles con la IBM, pero que en muchos de los casos se les llaman también "PC´s", por ser de uso personal. En la actualidad existen variados tipos en el diseño de PC´s: · Computadoras personales, con el gabinete tipo minitorre, separado del monitor. · Computadoras personales portátiles "Laptop" o "Notebook". · Computadoras personales más comunes, con el gabinete horizontal, separado del monitor. 19 20 · Computadoras personales que están en una sola unidad compacta el monitor y el CPU. Las computadoras "laptops" son aquellas computadoras que están diseñadas para poder ser transportadas de un lugar a otro. Se alimentan por medio de baterías recargables, pesan entre 2 y 5 kilos y la mayoría trae integrado una pantalla de LCD (Liquid Crys tal Display). A.1) Supercomputadoras: Una supercomputadora es el tipo de computadora más potente y más rápido que existe en un momento dado. Estas máquinas están diseñadas para procesar enormes cantidades de información en poco tiempo y son dedicadas a una tarea específica. Así mismas son las más caras, sus precios alcanzan los 30 MILLONES de dólares y más; y cuentan con un control de temperatura especial, ésto para disipar el calor que algunos componentes alcanzan a tener. Unos ejemplos de tareas a las que son expuestas las supercomputadoras son los siguientes: · Búsqueda y estudio de la energía y armas nucleares. · Búsqueda de yacimientos petrolíferos con grandes bases de datos sísmicos. · El estudio y predicción de tornados. · El estudio y predicción del clima de cualquier parte del mundo. · La elaboración de maquetas y proyectos de la creación de aviones, simuladores de vuelo. · Etc. Debido a su precio, son muy pocas las supercomputadoras que se construyen en un año. A.2) Minicomputadoras: En 1960 surgió la minicomputadora, una versión más pequeña de la Macrocomputadora. Al ser orientada a tareas específicas, no necesitaba de todos los periféricos que necesita un Mainframe, y ésto ayudo a reducir el precio y costos de mantenimiento. Las minicomputadoras, en tamaño y poder de procesamiento, se encuentran entre los mainframes y las estaciones de trabajo. En general, una minicomputadora, es un sistema multiproceso (varios procesos en paralelo) capaz de soportar de 10 hasta 200 usuarios simultáneamente. Actualmente se usan para almacenar grandes bases de datos, automatización industrial y aplicaciones multiusuario. A.3) Estaciones de trabajo o Workstations: Las estaciones de trabajo se encuentran entre las minicomputadoras y las macrocomputadoras (por el procesamiento). Las estaciones de trabajo son un tipo de computadoras que se utilizan para aplicaciones que requieran de poder de procesamiento moderado y relativamente capacidades de gráficos de alta calidad. Son usadas para: · Aplicaciones de ingeniería · CAD (Diseño asistido por computadora) · CAM (manufactura asistida por computadora) · Publicidad · Creación de Software En redes, la palabra "workstation" o "estación de trabajo" se utiliza para referirse a cualquier computadora que está conectada a una red de área local. A. Historia de los Servidores y Mainframes: B.1) Macrocomputadoras o Mainframes: 20 21 Las macrocomputadoras son también conocidas como Mainframes. Los mainframes son grandes, rápidos y caros sistemas que son capaces de controlar cientos de usuarios simultáneamente, así como cientos de dispositivos de entrada y salida. Los mainframes tienen un costo que va desde 350,000 dólares hasta varios millones de dólares. De alguna forma los mainframes son más poderosos que las supercomputadoras porque soportan más programas simultáneamente. PERO las supercomputadoras pueden ejecutar un sólo programa más rápido que un mainframe. En el pasado, los Mainframes ocupaban cuartos completos o hasta pisos enteros de algún edificio, hoy en día, un Mainframe es parecido a una hilera de archiveros en algún cuarto con piso falso, ésto para ocultar los cientos de cables d e los periféricos, y su temperatura tiene que estar controlada. B.2) Servidor de archivos: Dispositivo de almacenamiento de archivos en una red de área local al que todos los usuarios de la red pueden acceder. A diferencia de un servidor de disco, que aparece ante el usuario como una unidad de disco remota, un servidor de archivos es un dispositivo más complejo que no sólo almacena archivos sino que también los administra y los mantiene en orden a medida que los usuarios de la red los solicitan y los modifican. Para gestionar las tareas de manejo de varias solicitudes (a veces simultáneas), un servidor de archivos cuenta con un procesador y software de control, así como una unidad de disco para el almacenamiento. En redes de área local, un servidor de archivos suele ser una computadora con un disco duro grande que está dedicado exclusivamente a las funciones de administración de archivos compartidos. B. Terminales Tontas: en informática, terminal sin capacidad de proceso. Por lo general, los terminales tontos sólo son capaces de presentar caracteres alfanuméricos y de responder a un protocolo de comunicaciones sencillo, como el VT-52, VT-100 o ANSI. Es dispositivo formado por un monitor y un teclado. Un terminal no hace prácticamente ningún procesamiento por sí solo, sino que está conectado a una computadora con un enlace de comunicaciones a través de un cable. La entrada a través del teclado se envía desde el terminal a la computadora, y la salida de vídeo se envía desde la computadora al terminal. Los terminales se usan sobre todo en sistemas multiusuario y no se utilizan hoy día en computadoras personales de un solo usuario. En electrónica, un punto que puede ser conectado físicamente a algún otro, normalmente a través de un cable, para formar una conexión eléctrica. C. Tecnologías RISC y CISC: RISC: (Reduced Instruction Set Computer) computadora de conjunto de instrucciones reducido Arquitectura de computadoras que ejecuta un número limitado de instrucciones. El concepto es que la mayoría de los programas usan generalmente unas pocas instrucciones, y si se acelera la ejecución de esas instrucciones básicas, se mejora el rendimiento. La arquitectura RISC elimina una capa de carga operativa llamada "microcódigo", que se emplea normalmente para facilitar la agregación de nuevas y complejas instrucciones a una computadora. Las computadoras RISC poseen un pequeño número de instrucciones montadas en los circuitos de nivel inferior, que trabajan a máxima velocidad. Aunque las máquinas RISC son sólo de un 15% a un 50% más veloces que sus contrapartidas CISC CISC: (Complex Instruction Set Computer) Computadora de conjunto de instrucciones complejo Computadoras que poseen un conjunto de instrucciones muy extenso. Las máquinas CISC tienen de doscientas a trescientas instrucciones, que están grabadas en microcódigo. D. Tecnologías MMX y Pentium Pro: MMX: (Multimedia Extensions) son 57 instrucciones MMX que se usan para acelerar los procesos de programas multimedia tales como vídeo y sonido, ocho registros MMX de 64 bits 21 22 Pentium Pro: incorpora en el mismo encapsulado del procesador un total de 256 ó 512 KB de memoria caché de segundo nivel(caché L2). La comunicación entre dicha memoria caché y el núcleo del procesador se realiza a la velocidad a la que funcione el Pentium Pro. E. Microprocesadores: F.1) Historia de los Microprocesadores: Muchas grandes invenciones simplemente son el resultado de que alguien se ha encontrado con un problema técnico y propone una solución diferente y audaz. Y típicamente, ese problema tiene que ver con dinero. Ese era el caso ciertamente a finales de 1969 para una joven y agresiva compañía japonesa llamada Busicom. Busicom había tenido realmente varios nombres en su breve carrera, incluso ETI y Máquinas Calculadoras de Japón. Esa era una característica de naturaleza imprevisible de esa empresa. Y Busicom no estaba solo. Era uno de los centenares de compañías que estaban decididos a entrar en un negocio que estaba surgiendo como un gran mercado de consumidores, hecho posible por los circuitos integrados: las calculadoras. Se había comprobado que existía un marcado interés por las nuevas calculadoras versiones digitales que las antiguas calculadoras electromecánicas, especialmente cuando estas versiones digitales podían realizar cálculos complejos como raíces cuadradas. Busicom no era ni un jugador mayor, ni uno menor en este negocio. Justo uno de las multitudes. Pero era un jugador que tenía unas buenas ganas para tomar riesgos tecnológicos más que sus competidores, y contaba con un visionario tecnológico en su laboratorio llamado Masatoshi Shima. A través de 1969, se reconoció generalmente en la industria de la electrónica que era teóricamente posible usar el nuevo semiconductor metal-on-silicon (MOS) para poner toda la función de una calculadora en una sola pastilla. ¿Pero quién estaba deseoso de hacerlo?. Busicom escogio a Intel Corporation. Una compañía diminuta de Santa Clara, California para fabricarlo. Luego de las correcciones realizadas en el diseño y construcción por parte de Federico Faggin de Intel del primer microprocesador, en Febrero de 1971 el 4004 estaba listo para la producción. Así a mediados de Marzo de 1971, Intel envió el conjunto de chips de la familia 4000 a BUSICOM. Esta familia consistiría en: · Una ROM de 2048 bits como el 4001 · Una memoria RAM de 320 bits como el 4002 · Un Shift regiter de 10 bits como el 4003 · El procesador central de 4 bits como el 4004 La revolución del Microprocesador había empezado. El 8008 siguió al 4004 y fue formalmente introducido en Abril de 1972. Este proyecto empezó con el nombre de 1201 y se trataba de una arquitectura de 8 bits. Y fue así que el 8008 se convirtió en el primer microprocesador de 8 bits. Para el siguiente microprocesador de 8 bits el 8080 sus primeras pruebas tuvieron lugar en Diciembre de 1973. Después que Faggin y su equipo corrigieron algunos errores, el producto fue formalmente introducido al público en Marzo de 1974. 22 23 Como Faggin diría: "El 8080 realmente creó el mercado del microprocesador. El 4004 y el 8008 lo sugirieron, pero el 8080 lo hizo realidad." Con la introducción del 8080 puede decirse de verdad que la humanidad cambió. La naturaleza extraordinaria del 8080 fue reconocida casi instantáneamente por miles de ingenieros en todo el mundo quienes habían estado esperando su llegada. Dentro de un año, había sido introducido en cientos de productos diferentes. Nada volvería a ser igual otra vez. Los que se llevan el crédito de este invento(uno de las más grandes invenciones de este siglo) son: Ted Hoff como el inventor, Federico Faggin como el creador, Mazor y Shima como contribuyentes críticos. EL PENTIUM II Es el último Microprocesador de Intel y alcanza velocidades de hasta 400Mhz. Ya llegaron al PERU pero todavía no se ve la última versión, sin embargo ya hay muchas marcas de computadoras en Estados Unidos que los usan. La forma de este procesador y su forma de instalación es diferente, en vez usa un cartucho(de un sólo borde) el cual se coloca en la placa madre dentro de un conector tipo slot. No usa el socket7 como las anteriores PENTIUM. Más información sobre el PENTIUM II. EL K6 DE AMD Este procesador es el último de AMD y alcanza velocidades de hasta 266Mhz y se está trabajando en una versión de 300Mhz. Dicen que es tan rápido que el PENTIUM II. Ya llegó al PERU, pero sólo los de 200Mhz y 233Mhz. Usa el mismo socket7 de las placas madres comunes y esto hace fácil instalarlo y usarlo en las placas madres más antiguas. Más información sobre AMD K6. EL 6x86 DE Es el último de CYRIX y es la respuesta de este fabricante a la competencia de Intel y Amd. Este procesador puede usar una velocidad de bus de 75Mhz lo que lo hace distinto a los demás. Es posible que ya se comercialize en el PERU. Más información sobre EL 6x86 MX. EL POWERPC DE Este procesador de arquitectura RISC es usado en las computadoras Mac de APPLE y se dice que alcanza hasta 300 Mhz de velocidad. F.2) Listado de los Microprocesadores: VERSIONES DE INTEL MICROPROCESADORES ANTERIORES AL PENTIUM · MICROPROCESADOR 8088 · MICROPROCESADOR 8086 · MICROPROCESADOR 80286 · MICROPROCESADOR 80386 · MICROPROCESADOR 80486 · MODELO DX1 · MODELO DX2 · MODELO DX4 PENTIUM SIMPLE(COMUNES) 23 24 · PENTIUM 60 MHZ · PENTIUM 66 MHZ · PENTIUM 75 MHZ · PENTIUM 100 MHZ · PENTIUM 133 MHZ · PENTIUM 166 MHZ · PENTIUM 200 MHZ PENTIUM MMX (FAMILIA P55C) · PENTIUM MMX 166 MHZ · PENTIUM MMX 200 MHZ · PENTIUM MMX 233 MHZ PENTIUM II Y PENTIUM PRO (FAMILIA P6) PENTIUMS PRO · PENTIUM PRO DE 2OO MHZ Y CACHE L2(NIVEL2) DE 256KB, 512KB Y 1MB · PENTIUM PRO DE 180MHZ Y 256KB DE CACHE L2 · PENTIUM PRO DE 166MHZ Y 512KB DE CACHE L2 · PENTIUM PRO DE 150MHZ Y 256KB DE CACHE L2 PENTIUMS II · PENTIUM II DE 233 MHZ · PENTIUM II CELEROM DE 266 MHZ Y SIN CACHE L2 · PENTIUM II DE 266 MHZ Y 512KB DE CACHE L2 · PENTIUM II DE 300 MHZ Y 512KB DE CACHE L2 · PENTIUM II DE 333 MHZ Y 512KB DE CACHE L2 · PENTIUM II DE 350 MHZ Y 512KB DE CACHE L2 · PENTIUM II DE 400 MHZ Y 512KB DE CACHE L2 · MUY PRONTO EL PENTIUM II DE 450 MHZ Y 512KB DE CACHE L2 VERSIONES DE AMD AMD K5 · AMD K5 DE 100 MHZ · AMD K5 DE 133 MHZ · AMD K5 DE 166 MHZ 24 25 AMD K6 · AMD K6 DE 166 MHZ · AMD K6 DE 200 MHZ · AMD K6 DE 233 MHZ · AMD K6 DE 266 MHZ · AMD K6 DE 300 MHZ VERSIONES DE CYRIX CYRIX M1 CYRIX 6x86 MMX(LLAMADO ANTERIORMENTE M2) · 6x86PR166 MMX · 6x86PR200 MMX · 6x86PR233 MMX · 6x86PR266 MMX · 6x86PR300 MMX Unidad Central del Sistema La Unidad Central del Sistema (System Unit en inglés) es el centro de operaciones de cualquier computadora existente en el mercado actual. En la unidad central del sistema se alojan los componentes y circuitería que van a realizar las tareas fundamentales de la computadora. Al abrir la unidad central del sistema de una computadora se pueden apreciar una serie de componentes: - Placa principal. - Microprocesador central o unidad central de proceso (CPU). - Bus. - Memoria principal. - Otros componentes controladores. - Fuente de alimentación eléctrica. A continuación se estudiará detenidamente cada uno de ellos. 1. Placa Principal. Es una placa con un circuito impreso donde se conectan los elementos básicos de la computadora: el microprocesador, el bus y toda o parte de la memoria principal. En algunos lugares también aparece denominada como placa base o placa madre. 2. Microprocesador Central o Unidad Central de Proceso (CPU). 25 26 Es el elemento fundamental de la computadora. El microprocesador va a ocuparse de la ejecución de las órdenes de comandos, los cálculos matemáticos solicitados por las referidas órdenes, el manejo de los datos asociados a los cálculos. Otra función importante del microprocesador va a ser el control de los componentes del sistema informático conectados a él y que le dan apoyo y le permiten realizar todas las operaciones que le son solicitadas por los diferentes programas de aplicación. El microprocesador se va a ocupar también de controlar y gestionar el tráfico de datos entre la unidad central del sistema y los periféricos optimizando los procesos a realizar por la computadora. 3. Bus. El bus, quizá fuera mejor decir los buses ya que existen varios con diversas funciones, es un circuito que conecta el procesador central con todo el resto de componentes de la computadora. El bus sirve para que le llegue al procesador la información y las solicitudes de trabajo, desde el exterior, y envíe hacia afuera los resultados del trabajo realizado. 4. Memoria Principal. Es la zona de trabajo donde la computadora va a almacenar temporalmente las órdenes a ejecutar y los datos que deberán manipular esas órdenes. Cuanto mayor sea la cantidad de memoria existente en el sistema informático, mayores serán las posibilidades de trabajo de la computadora, ya que ésta podrá manipular una cantidad superior de datos al mismo tiempo (siempre que el sistema operativo lo permita). 5. Componentes de Control. Son elementos que sirven como apoyo al funcionamiento del microprocesador central. Fundamentalmente, son componentes especializados en realizar determinadas operaciones, descargando al microprocesador central de estas actividades y permitiéndole obtener una mayor rapidez y efectividad en el manejo del conjunto del sistema informático. Los controladores más importantes son el controlador de interrupciones, el generador de reloj y el controlador de acceso directo a memoria. Las placas de expansión interna más importantes son las de control del subsistema de vídeo, que manejarán las señales que envía la CPU a la pantalla del sistema informático y las del controlador de los discos de la computadora que controlará el flujo de datos entre la memoria principal y el subsistema de almacenamiento. Estos componentes serán estudiados en el apartado concreto de sus tareas dentro del sistema informático. 6. Fuente de Alimentación Eléctrica. Las fuentes de alimentación proporcionan la energía eléctrica que necesita por la computadora para funcionar. Esa energía se estabiliza para impedir que la computadora se vea afectada por oscilaciones bruscas en el suministro de las compañías eléctricas. La fuente de alimentación transforma la corriente alterna de 220 voltios de la red ciudadana en corriente continua y de menor voltaje, que es la que necesitan los diferentes componentes de la computadora. Los voltajes que proporciona la fuente de alimentación son de 12 y 5 voltios. El primero se utiliza para poner en funcionamiento los componentes mecánicos de la computadora (discos, diskettes, etc.). El segundo se utiliza en los componentes electrónicos (el microprocesador, la memoria, el reloj, etc.). En caso de que se abra la unidad central del sistema de la computadora es muy importante no manipular la fuente de alimentación; hay que tener en cuenta que, si el sistema informático está enchufado y encendido, la fuente de alimentación es potencialmente peligrosa. Si se está intentando realizar alguna 26 27 operación dentro de la caja de la unidad, deben manipularse cuidadosamente los cables que entran y salen de la caja de la fuente de alimentación y bajo ningún concepto intentar abrirla. Unidad Central de Proceso La Unidad Central de Proceso es el lugar donde se realizan las operaciones de cálculo y control de los componentes que forman la totalidad del conjunto del sistema informático. Las CPU de las actuales computadoras son microprocesadores construidos sobre un cristal de silicio semiconductor donde se crean todos los elementos que forman un circuito electrónico (transistores, etc.) y las conexiones necesarias para formarlo. El microcircuito se encapsula en una pastilla de plástico con una serie de conexiones hacia el exterior, en forma de patillas metálicas, que forman su nexo de unión al resto del sistema informático. Estas pastillas de plástico, con una multitud de patillas de conexión metálicas, reciben el nombre de chips. El microprocesador central de una computadora se divide en: • Unidad de Control (Control Unit o CU en inglés). • Unidad Aritmético-Lógica (Aritmethic Control Unit o ALU en inglés). • Registros. La Unidad de Control maneja y coordina todas las operaciones del sistema informático, dando prioridades y solicitando los servicios de los diferentes componentes para dar soporte a la unidad aritmético-lógica en sus operaciones elementales. La Unidad Aritmético-Lógica realiza los diferentes cálculos matemáticos y lógicos que van a ser necesarios para la operatividad de la computadora; debe recordarse que todo el funcionamiento del sistema de una computadora se realiza sobre la base de una serie de operaciones matemáticas en código binario. Los Registros son una pequeña memoria interna existente en la CPU que permiten a la ALU el manejo de las instrucciones y los datos precisos para realizar las diferentes operaciones elementales. De la misma forma que la placa principal tiene un bus para conectar la CPU con los diferentes dispositivos del sistema informático, la unidad de control tiene un bus interno para conectar sus Componentes Name= g12; Hotword Style=Book Default; Unidad de Control (CU) Es la parte de la unidad central de proceso que actúa como coordinadora de todas las tareas que ha de realizar la computadora. Asimismo, se encarga de manejar todas las órdenes que la computadora necesita para realizar la ejecución de las operaciones requeridas por los programas de aplicación. Sus funciones Básicas son: 1. Manejar todas las operaciones de acceso, lectura y escritura a cada una de las posiciones de la memoria principal donde se almacenan las instrucciones necesarias para realizar un proceso. 2. Interpretar la instrucción en proceso. 3. Realizar las tareas que se indican en la instrucción. 27 28 Esta unidad también se ocupa de controlar y coordinar a las unidades implicadas en las operaciones anteriormente mencionadas, de manera que se eviten problemas internos que se puedan producir entre los componentes de la computadora. La unidad de control, finalmente, comunica entre sí y dirige las entradas y salidas desde y hasta los periféricos, dando el oportuno tratamiento a la información en proceso. Para realizar su cometido, la unidad de control necesita manejar la siguiente información: • El registro de estado. • El registro puntero de instrucciones. • La instrucción a ejecutar. • Las señales de entrada/salida. La salida que proporcionará la unidad de control será el conjunto de órdenes elementales que servirán para ejecutar la orden solicitada. Los pasos en que se divide este proceso son: 1. Extraer de la memoria principal la instrucción a ejecutar. 2. Tras reconocer la instrucción, la unidad de control establece la configuración de las puertas lógicas (las interconexiones de los diferentes componentes del circuito lógico) que se van a ver involucradas en la operación de cálculo solicitada por la instrucción, estableciendo el circuito que va a resolverla. 3. Busca y extrae de la memoria principal los datos necesarios para ejecutar la instrucción indicada en el paso número 1. 4. Ordena a la unidad involucrada en la resolución de la instrucción en proceso que realice las oportunas operaciones elementales. 5. Si la operación elemental realizada ha proporcionado nuevos datos, éstos se almacenan en la memoria principal. 6. Se incrementa el contenido del registro puntero de instrucciones. Unidad Aritmética y Lógica (ALU) Su misión es realizar las operaciones con los datos que recibe, siguiendo las indicaciones dadas por la unidad de control. El nombre de unidad aritmética y lógica se debe a que puede realizar operaciones tanto aritméticas como lógicas con los datos transferidos por la unidad de control. La unidad de control maneja las instrucciones y la aritmética y lógica procesa los datos. Para que la unidad de control sepa si la información que recibe es una instrucción o dato, es obligatorio que la primera palabra que reciba sea una instrucción, indicando la naturaleza del resto de la información a tratar. Para que la unidad aritmética y lógica sea capaz de realizar una operación aritmética, se le deben proporcionar, de alguna manera, los siguientes datos: 28 29 1. El código que indique la operación a efectuar. 2. La dirección de la celda donde está almacenado el primer sumando. 3. La dirección del segundo sumando implicado en la operación. 4. La dirección de la celda de memoria donde se almacenará el resultado. Registros Los Registros son un medio de ayuda a las operaciones realizadas por la unidad de control y la unidad aritmética y lógica. Permiten almacenar información, temporalmente, para facilitar la manipulación de los datos por parte de la CPU. Realizando una similitud con el resto del sistema informático, los registros son a la CPU como la memoria principal es a la computadora. Los registros se dividen en tres grupos principales: • Registros de Propósito General. • Registros de Segmento de Memoria. • Registros de Instrucciones. Seguidamente se presenta una relación completa de los tres grupos de registros que contiene un microprocesador típico como puede ser el Intel 80386: Registros de Propósito General: (AX) Registro de Datos (DX) Registro de Datos (CX) Registro de Datos (BX) Registro de Datos (BP) Registro Puntero Base (SI) Registro Índice Fuente (DI) Registro Índice Destino (SP) Registro Puntero de la Pila Registros de Segmento de Memoria: (CS) Registro Segmento de Código (SS) Registro Segmento de la Pila (DS) Registro Segmento de Datos (ES) Registro Segmento de Datos Extra (DS) Registro Segmento de Datos Extra (ES) Registro Segmento de Datos Extra 29 30 Registros de Instrucciones (FL) Registro de «Flags» o también denominado registro de estado (IP) Registro Puntero de Instrucción o también denominado registro Contador de Programa (PC) De esta relación de registros los cuatro más importantes son: • El Registro Puntero de Instrucciones. El registro puntero de instrucciones o contador de programa indica el flujo de las instrucciones del proceso en realización, apuntando a la dirección de memoria en que se encuentra la instrucción a ejecutar. Dado que las instrucciones de un programa se ejecutan de forma secuencial, el procesador incrementará en una unidad este registro cada vez que ejecute una instrucción, para que apunte a la siguiente. La información que almacena este registro se puede modificar cuando una interrupción externa, o la propia ejecución del proceso en curso, provoque una alteración en la secuencia de operaciones. Esta alteración transferirá el control del sistema informático a otro proceso diferente al que está en ejecución. • El Registro Acumulador. Es el Registro donde se almacenan los resultados obtenidos en las operaciones realizadas por la unidad aritmética y lógica. Su importancia radica en las características de la información que almacena, ya que con su contenido se realizan todas las operaciones de cálculo que ha de ejecutar la unidad aritmética y lógica. • El registro de Estado. El Registro de Estado o registro de «flags» no es un solo registro propiamente dicho, ya que se compone de varios registros de menor tamaño; este tamaño puede ser incluso de un solo bit. El registro de estado se utiliza para indicar cambios de estados y condiciones en los otros registros existentes en el sistema informático. Estos cambios en la situación de los demás registros se producen debido a las modificaciones del entorno a lo largo de la ejecución de los procesos realizados por el sistema informático. • El Registro Puntero de la Pila. Este Registro almacena la dirección de la zona de la memoria donde está situada la parte superior de la pila. La Pila es una zona de los registros de segmento de memoria que la unidad aritmética y lógica utiliza para almacenar temporalmente los datos que está manipulando. Cuando la cantidad de datos a manejar es demasiado grande u otras necesidades del proceso impiden que estos datos puedan almacenarse en los registros creados para ello se envían a la pila, donde se almacenan hasta que la unidad de control recupera la información para que la procese la unidad aritmética y lógica. La ventaja de manejar una pila como almacén de información es que la información que se guarda en ella tiene que entrar y salir, obligatoriamente, por una sola dirección de memoria. Esto permite que la unidad de control no necesite conocer más que esa dirección para poder manejar los datos almacenados en la pila. Memoria Principal La Memoria Principal es la zona de la unidad central de sistema que almacena la información, en forma de programas y datos, que se va a procesar seguidamente o va a servir de apoyo a las diferentes operaciones que se van a efectuar por la computadora. 30 31 La posibilidad del proceso inmediato de la información que almacena la memoria principal es su característica fundamental, ya que, mientras que los datos existentes en la memoria principal pueden ser procesados de inmediato por la unidad central de proceso, la información contenida en la memoria auxiliar (discos, cintas, etc.) no puede ser procesada directamente por la unidad central de proceso. La memoria principal está conectada directamente a los buses, que son su medio de comunicación con la unidad central de proceso del sistema informático. La cantidad de memoria existente en una computadora se verá limitada por la capacidad de direccionamiento del bus; esto forma el Mapa de Memoria. La memoria principal está compuesta lógicamente por una serie de celdas de bits que permiten almacenar en cada una de ellas un bit de información en código binario (0, 1) que será parte de un dato o una instrucción. Para poder identificar cada una de las celdas de la memoria, éstas se numeran; a este número se le llama dirección y es el medio a través del cual la unidad de control puede manejar la información. Las direcciones de la memoria se localizan a través del mapa de memoria. La dirección de cada celda de la memoria se establece por una matriz en la que los parámetros son el número total de direcciones y la longitud de palabra que maneja el sistema informático. Esto supone una limitación, ya que la computadora sólo puede manejar un número limitado de bits de dirección en sus operaciones de direccionamiento. La Palabra representa la cantidad de bits de información manejada en paralelo por la computadora. Tamaños típicos de palabras son 8 bits, 16 bits, 32 bits, etc. Una vez localizada la dirección de la celda de memoria se podrán realizar dos operaciones: leer la información existente en ella o bien escribir nueva información para poder ser almacenada y posteriormente procesada. Para poder determinar si el sistema informático va a leer o escribir se utiliza el registro de datos. El registro de datos es un bit que, según el valor de la información que contenga (0,1) indica a la unidad de control si se va a leer o escribir en el acceso a la memoria que se esté realizando en ese momento. En ambos casos, esta operación se realiza a través del bus de datos. Cuando la unidad de control lee de la celda de memoria, necesita que se le proporcione una dirección a la cual ir a leer. La información existente en la celda no se destruye. Cuando la unidad de control escribe en la celda de memoria, debe recibir dos informaciones: la dirección de la memoria donde escribir y la información que se debe escribir propiamente dicha. La información existente en la celda de memoria previamente se destruye, ya que lo que había escrito se sustituye por una nueva información. La memoria principal se divide fundamentalmente en dos partes: Volátil y No Volátil. La Memoria Volátil pierde la información almacenada en su interior si el sistema informático que la soporta es apagado. Esta parte de la memoria principal se conoce como RAM (Memoria de Acceso Aleatorio o Random Access Memory). La parte de la Memoria principal que No es Volátil es la ROM (Memoria de Sólo Lectura o Read Only Memory). Esta memoria es de sólo lectura y la computadora no puede escribir sobre ella. Su función principal es el arranque del sistema informático. Las Memorias Volátiles pueden ser estáticas, también llamadas RAM (Memorias de Acceso Aleatorio o Random Access Memory), o dinámicas, denominadas en este caso DRAM (Memorias Dinámicas de Acceso Aleatorio o Dinamic Random Access Memory). Más adelante se verán más detenidamente. Las Memorias No Volátiles se dividen en memorias de Sólo Lectura (ROM) y en otras que permiten la Manipulación de la Información que contienen por diversos medios especiales que se verán más adelante. Existen dos modos distintos de Acceso a la Memoria: • Acceso por Palabras. 31 32 • Acceso por Bloques. 1. Acceso por Palabras. También se le denomina acceso aleatorio. La operación de acceso se realiza sobre una sola palabra de información. Recuérdese que palabra es la cantidad de bits que maneja el sistema informático al mismo tiempo. Este tipo de acceso únicamente se utiliza con memorias estáticas (RAM) ya que el tiempo de acceso empleado es siempre el mismo. 2. Acceso por Bloques. Es el modo de acceso utilizado en las memorias dinámicas. Consiste en empaquetar en un bloque un conjunto de datos al que se añade una cabecera para identificarlo. El acceso se realizará a la cabecera del bloque y una vez en ella se accederá a la información que contiene. El acceso en las memorias dinámicas se realiza por bloques, debido a que tardan más tiempo que las estáticas en acceder a una zona de la memoria. La ventaja es que una vez que acceden a la zona donde se sitúa el bloque son muy rápidas en acceder a la información existente. Generalmente, la memoria que posee una computadora recién adquirida no es la máxima que el bus puede direccionar, por lo que la memoria principal puede ampliarse incrementando el número de unidades de memoria conectadas. Conviene recordar que las placas de memoria son un factor fundamental en el costo total de adquisición del sistema informático. Debe tenerse en cuenta que si la cantidad de memoria principal del sistema informático no es muy grande el procesador se verá restringido en su potencia por la limitada capacidad de manipulación y acceso a los datos. Las Tecnologías para fabricar memorias se caracterizan por: • Coste. • Tiempo de acceso. • Capacidad de almacenamiento. La Optimización se consigue con una gran capacidad de almacenamiento, un tiempo de acceso muy corto y un costo pequeño. Las memorias se dividen físicamente en: 1. Soporte de Almacenamiento de la Información. Generalmente son de naturaleza magnética. Está compuesto por pequeños dipolos que pueden tomar dos estados en los que la información toma un valor en cada uno de ellos. Cada estado se obtiene por medio de la aplicación de una señal eléctrica exterior generada por el elemento de lectura y escritura. 2. Elemento de Escritura y Lectura. Este dispositivo introducirá y obtendrá la información de la memoria. Para Escribir el dispositivo produce una corriente eléctrica local que provoca un cambio estable en el campo magnético de la celda de memoria. Para Leer el dispositivo determinará el campo magnético de la celda de memoria y sabrá cual es el valor existente. 3. Mecanismo de Direccionamiento. 32 33 Pueden ser de dos tipos dependiendo de que las memorias sean estáticas o dinámicas. En las Memorias Estáticas el direccionamiento es un cableado directo a la celda de memoria. En las Memorias Dinámicas se utiliza una información de control almacenada con los datos que configuran el circuito para direccionar la lectura o escritura al lugar donde se almacena la información. La memoria se divide en varias capas o niveles con una estructura cuya forma puede recordarnos a una estructura piramidal. Nombre Tamaño Máximo Tiempo de Acceso Registros Hasta 200 Bytes Menos de 10 Nanosegundos Memoria Caché Hasta 512 Bytes Entre 10 y 30 Nanosegundos Memoria Principal Más de 1 Gigabyte Entre 30 y 100 Nanosegundos El vértice de la pirámide sería una pequeña cantidad de memoria, los registros, que se caracterizan por una capacidad de almacenamiento de información muy pequeña, pero que poseen la ventaja de tener un tiempo de acceso muy reducido, inferior a los 10 nanosegundos. La base de nuestra hipotética pirámide es la memoria principal, donde existe una mayor cantidad de espacio (puede llegar hasta 1 gigabyte, esto es, mil millones de bytes), pero que tiene la desventaja de que el tiempo de acceso es muy superior, lo que la convierte en mucho más lenta que los registros. Entre ambas se situaría una zona de memoria que se llama memoria caché. La memoria caché es una zona especial de memoria que sirve para optimizar los tiempos de acceso a la memoria RAM por métodos estadísticos. Memoria de Acceso Aleatorio (RAM) Las Memorias de Acceso Aleatorio (RAM: Random Access Memory) son memorias construidas sobre semiconductores donde la información se almacena en celdas de memoria que pueden adquirir uno cualquiera de los dos valores del código binario. Las memorias de acceso aleatorio son memorias en la que se puede leer y escribir información. Permite el acceso a cualquier información que contenga con la misma velocidad. Esto significa que se puede acceder aleatoriamente a cualquier información almacenada sin que se afecte la eficiencia del acceso. Contrasta con las memorias secuenciales, por ejemplo una cinta magnética, donde la facilidad de acceso a una información depende del lugar de la cinta donde esté almacenada. Las tecnologías de memorias RAM se basan en Celdas de Memoria. La memoria RAM es volátil, esto es, cuando se corta la alimentación eléctrica se pierde toda la información que estuviera almacenada en este tipo de memoria. La comunicación de la RAM con la CPU se realiza a través del Bus de Direcciones y el Bus de Datos. La memoria RAM se utiliza tanto para almacenar temporalmente programas y datos como para guardar los resultados intermedios que se están manipulando durante un proceso. Una celda de memoria concreta de la RAM se puede referenciar con una dirección de Segmento de Memoria y un valor determinado dentro de ese segmento llamado «desplazamiento». La RAM está dividida en segmentos de memoria para facilitar su manejo por la unidad de control. Los segmentos de memoria tienen un tamaño múltiplo de 16, de 0 a F en Hexadecimal. El rango total varía 33 34 desde 0000 hasta un valor Hexadecimal que depende de la cantidad de semiconductores de memoria RAM con la que se haya configurado el sistema de la computadora. Los segmentos de memoria se agrupan en diferentes Áreas de Trabajo que permiten delimitar las diversas funciones que se realizan en la memoria. Las áreas de la memoria son: • Memoria Convencional. • Memoria Extendida. La Memoria Convencional viene delimitada por la capacidad de direccionamiento de memoria de la CPU de la computadora y la capacidad de manejo de memoria que sea capaz de realizar el sistema operativo que gestiona el sistema informático. Se puede ver un ejemplo en el microprocesador Intel 8088 que constituía la CPU de los primeros Personal Computer de IBM; este microprocesador era capaz de direccionar un máximo de 1 megabyte de memoria, por ello, las primeras versiones del sistema operativo que lo gestionaba no necesitaban manejar más de 640 kilobytes para poder realizar su trabajo. En la actualidad, las unidades centrales de proceso, como el microprocesador 80486, pueden llegar a manejar hasta 4 gigabytes de memoria, por lo que los sistemas operativos como OS/2 o WINDOWS han previsto esta posibilidad, pudiendo manejar esa cantidad de memoria. La Memoria Convencional se Divide en: • Memoria Baja. • Memoria Alta. La Memoria Baja es el área de memoria del sistema. Ocupa las primeras direcciones de la memoria convencional y está ocupada por las tablas de los vectores de las interrupciones, las rutinas de la ROMBIOS y la parte residente del sistema operativo. La Memoria Alta, también se denomina área de memoria del usuario, es la zona en la que se sitúan los códigos de los programas ejecutables y los datos que éstos manejan en las diferentes aplicaciones que la computadora ejecuta. Puede ocurrir que la memoria convencional, es decir, la memoria que existe en la configuración de la computadora no sea suficiente para poder realizar ciertas operaciones en ese sistema informático; para poder solventar ese problema se utiliza la memoria extendida. La Memoria Extendida se utiliza en computadoras que poseen una CPU que puede direccionar una gran cantidad de memoria, más de 1 megabyte, asociada a sistemas operativos que permiten gestionarla correctamente, es decir, los sistemas operativos multitareas o multiusuarios como UNIX, WINDOWS, sistemas operativos LAN, etc. Estos sistemas operativos permiten instalar el código de los programas de aplicaciones y los datos que éstos manejan fuera del área de la memoria convencional denominada área de memoria del usuario, pudiendo, por tanto, realizar más de un proceso al mismo tiempo o permitiendo trabajar a varios usuarios a la vez en la misma computadora, como en una red de área local. Sin embargo, puede ocurrir que la memoria extendida no tenga el tamaño suficiente para que todos los procesos o todos los usuarios puedan realizar sus tareas al mismo tiempo; una solución que se utiliza para resolver este problema es una simulación de la memoria de trabajo llamada Memoria Virtual. Esta memoria virtual consiste en que cuando el sistema informático intenta utilizar más memoria de trabajo que la que realmente existe, el gestor de la memoria salva una parte de la información que existe en la memoria, en el disco duro del sistema informático. 34 35 La parte de la memoria salvada en el disco se llama página; esta página de memoria almacenada queda disponible en la memoria de trabajo para ser utilizada por el sistema informático. Cuando la computadora necesite utilizar la información almacenada en la página guardada en el disco del sistema informático volverá a repetir el proceso salvando otra página de memoria en el disco y recuperando la que estaba almacenada en él. La Memoria Virtual tiene Ventajas e Inconvenientes. Entre las Ventajas merece la pena destacar que nos permite utilizar una gran cantidad de software, al mismo tiempo dentro del sistema informático, que de otra forma no se podría utilizar al no tener suficiente memoria y que nos permite utilizar mejor los recursos del sistema informático. El principal Inconveniente que conlleva la memoria virtual es que si existe una excesiva cantidad de páginas se ralentiza considerablemente la velocidad de proceso del sistema informático al tener que acceder constantemente al disco, pudiendo, por ello, causar colapsos en los diferentes procesos. Un tipo diferente de ampliación de la memoria de trabajo es la denominada Memoria Expandida. Este tipo de memoria utiliza una serie de bancos de memoria en forma de circuitos integrados que se añaden a la circuitería básica de la computadora. El estándar de memoria expandida lo instituyeron Lotus, Intel y Microsoft, por lo que en algunos lugares puede aparecer como memoria LIM. La memoria expandida utilizaba una zona de la memoria convencional para crear un mapa de la cantidad de memoria expandida que se añade al sistema informático. El mapa permitirá que, cuando un programa de aplicación lo solicite, el gestor de la memoria expandida distribuya por las diferentes páginas en que se dividen los bancos de memoria los datos que la aplicación no puede manejar en la memoria convencional. Como los tipos de memorias vistos anteriormente, la Memoria Expandida tiene también ventajas e inconvenientes. La principal Ventaja es que al no realizar accesos al disco del sistema informático es mucho más rápida que la memoria virtual, pero el Inconveniente con que se encuentra la memoria expandida es que como los que tienen que solicitar su utilización son los propios programas de aplicación, en este tipo de memorias sólo se pueden almacenar datos, debiéndose colocar el código de los programas de aplicación en la memoria convencional. Existen dos tipos de memorias RAM: • RAM Estáticas. Son memorias RAM convencionales que mantienen la información almacenada en ellas permanentemente, mientras se mantenga la alimentación eléctrica. • RAM Dinámicas (DRAM). La diferencia fundamental entre este tipo de memorias y las memorias RAM estáticas es que debido a que la celda de memoria donde almacenan la información tiende a descargarse, por tanto a perder la información almacenada en ella, se ha de producir un «refresco», esto es, una regrabación de la información almacenada cada pocos milisegundos para que no se pierdan los datos almacenados. La ventaja con respecto a las memorias RAM convencionales es su bajo costo para tamaños de memorias medios y grandes. Un tipo específico de memorias DRAM son las VRAM (Vídeo RAM). Este tipo de memorias está diseñadas específicamente para almacenar los datos de vídeo de los sistemas informáticos. Estas memorias son especialmente útiles para manejar subsistemas de vídeo, ya que su necesidad de refresco constante permite un manejo más sencillo de las cambiantes señales de vídeo. 35 36 Memoria ROM La ROM (Read Only Memory) es una «Memoria Sólo de Lectura». En ella sólo se puede leer la información que contiene, no es posible modificarla. En este tipo de memoria se acostumbra a guardar las instrucciones de arranque y el funcionamiento coordinado de la computadora. Físicamente, las memorias ROM son cápsulas de cristales de silicio. La información que contienen se graba de una forma especial por sus fabricantes o empresas muy especializadas. Las memorias de este tipo, al contrario que las RAM, no son volátiles, pero se pueden deteriorar a causa de campos magnéticos demasiado potentes. La comunicación con el procesador se realiza, al igual que en las memorias RAM, a través de los buses de direcciones y datos. Al existir sólo la posibilidad de lectura, la señal de control, que en la RAM se utilizaba para indicar si se iba a leer o escribir, sólo va a intervenir para autorizar la utilización de la memoria ROM. Además de las ROM, en las que sólo puede grabar información el fabricante de la memoria, existen otros tipos de memorias no volátiles que se pueden modificar de diversas formas y son de una flexibilidad y potencia de uso mayor que las simples ROM. La utilización de este tipo de memorias permite a los usuarios configurar computadoras dedicadas a tareas concretas, modificando simplemente la programación de los bancos de memoria del sistema informático. Estas memorias son: • PROM (Programable Read Only Memory o Memoria Programable Sólo de Lectura). Las memorias PROM son memorias sólo de lectura que, a diferencia de las ROM, no vienen programadas desde la fábrica donde se construyen, sino que es el propio usuario el que graba, permanentemente, con medios especiales la información que más le interesa. • EPROM (Erasable-Programable Read Only Memory o Memoria Borrable y Programable Sólo de Lectura). Las EPROM tienen la ventaja, con respecto a las otras memorias ROM, de que pueden ser reutilizables ya que, aunque la información que se almacena en ellas permanece permanentemente grabada, ésta se puede borrar y volver a grabar mediante procesos especiales, como puede ser el mantenerlas durante treinta minutos bajo una fuente de rayos ultravioletas para borrarlas. • EEPROM (Electrically Erasable-Programable Read Only Memory o Memoria Borrable y Programable Eléctricamente Sólo de Lectura). Las EEPROM aumentan, más si cabe, su ventaja con respecto a los anteriores tipos de memorias, ya que la información que se almacena en ellas se puede manipular con energía eléctrica y no es necesaria la utilización de rayos ultravioletas. Memoria Caché La Memoria Caché es una zona especial de la memoria principal que se construye con una tecnología de acceso mucho más rápida que la memoria RAM convencional. La velocidad de la caché con respecto a la memoria RAM convencional es del orden de 5 a 10 veces superior. A medida que los microprocesadores fueron haciéndose más y más rápidos comenzó a producirse una disfunción con la velocidad de acceso a la memoria de trabajo que se conectaba a ellos en el sistema informático. Cada vez que el microprocesador del sistema informático accede a la memoria RAM para leer o escribir información tiene que esperar hasta que la memoria RAM está lista para recibir o enviar los datos. Para realizar estas operaciones de lectura y escritura más rápidamente se utiliza un subsistema de memoria 36 37 intermedia entre el microprocesador y la memoria RAM convencional que es la denominada memoria caché. El funcionamiento de la memoria caché se basa en que al cargar una información en la memoria principal (sean instrucciones o datos) ésta se carga en zonas adyacentes de la memoria. El controlador especial situado dentro del subsistema de la memoria caché será el que determine dinámicamente qué posiciones de la memoria RAM convencional pueden ser utilizadas con más frecuencia por la aplicación que está ejecutándose en ese momento y traslada la información almacenada en ellas a la memoria caché. La siguiente vez que el microprocesador necesite acceder a la memoria RAM convencional existirá una gran probabilidad de que la información que necesita encontrar se encuentre en las direcciones de memoria adyacentes a las ya utilizadas. Como estas direcciones de memorias adyacentes ya se encuentran almacenadas en la memoria caché, el tiempo de acceso a la información disminuye en gran medida. La utilización de algoritmos estadísticos de acceso a los datos permiten una gestión mucho más racional del manejo de la memoria RAM convencional, disminuyendo los tiempos de acceso a la memoria convencional y acercando ese tiempo de acceso al de la propia caché. La memoria caché carga en su área de memoria propia el segmento de la memoria principal contiguo al que se está procesando. Debido a que, estadísticamente, existe una gran probabilidad de que la siguiente área de memoria que necesite la aplicación que está corriendo en ese momento sea la que se encuentra en el área de la caché, se optimiza el tiempo de acceso a la memoria, ya que debe recordarse que el acceso a la memoria caché es mucho más rápido que el acceso a la memoria RAM convencional. El tamaño de las memorias caché más habituales oscila entre los 8 y los 64 kbytes. Buses El Bus es la vía a través de la que se van a transmitir y recibir todas las comunicaciones, tanto internas como externas, del sistema informático. El bus es solamente un Dispositivo de Transferencia de Información entre los componentes conectados a él, no almacena información alguna en ningún momento. Los datos, en forma de señal eléctrica, sólo permanecen en el bus el tiempo que necesitan en recorrer la distancia entre los dos componentes implicados en la transferencia. En una unidad central de sistema típica el bus se subdivide en tres buses o grupos de líneas. • Bus de Direcciones. • Bus de Datos. • Bus de Control. Bus de Direcciones Es un canal de comunicaciones constituido por líneas que apuntan a la dirección de memoria que ocupa o va a ocupar la información a tratar. Una vez direccionada la posición, la información, almacenada en la memoria hasta ese momento, pasará a la CPU a través del bus de datos. Para determinar la cantidad de memoria directamente accesible por la CPU, hay que tener en cuenta el número de líneas que integran el bus de direcciones, ya que cuanto mayor sea el número de líneas, mayor será la cantidad de direcciones y, por tanto, de memoria a manejar por el sistema informático. Bus de Datos 37 38 El bus de datos es el medio por el que se transmite la instrucción o dato apuntado por el bus de direcciones. Es usado para realizar el intercambio de instrucciones y datos tanto internamente, entre los diferentes componentes del sistema informático, como externamente, entre el sistema informático y los diferentes subsistemas periféricos que se encuentran en el exterior. Una de las características principales de una computadora es el número de bits que puede transferir el bus de datos (16, 32, 64, etc.). Cuanto mayor sea este número, mayor será la cantidad de información que se puede manejar al mismo tiempo. Bus de Control Es un número variable de líneas a través de las que se controlan las unidades complementarias. El número de líneas de control dependerá directamente de la cantidad que pueda soportar el tipo de CPU utilizada y de su capacidad de direccionamiento de información. Arquitecturas de Bus Dependiendo del diseño y la tecnología que se utilice para construir el bus de una microcomputadora se pueden distinguir tres arquitecturas diferentes: • Arquitectura ISA. • Arquitectura MCA. • Arquitectura EISA. • Arquitectura ISA. • Arquitectura ISA La Arquitectura ISA (Industry Standard Architecture en inglés) es la arquitectura con que se construyó el bus de los microcomputadores AT de IBM. Esta arquitectura se adoptó por todos los fabricantes de microcomputadoras compatibles y, en general, está basada en el modelo de tres buses explicado anteriormente. Su tecnología es antigua, ya que se diseñó a principios de la década de los 80, lo que provoca una gran lentitud, debido a su velocidad de 8 megaherzios y una anchura de sólo 16 bits. • Arquitectura MCA. La Arquitectura MCA (MicroChannel Architecture en inglés) tuvo su origen en una línea de microcomputadoras fabricadas por IBM, las PS/2 (PS significa Personal System). Las PS/2 fueron unas microcomputadoras en las que, en sus modelos de mayor rango, se sustituyó el bus tradicional de las computadoras personales por un canal de comunicaciones llamado MicroChannel. El MicroChannel no es compatible, ni en su diseño ni en las señales de control, con la tecnología de bus tradicional, si bien su misión de transferencia de direcciones de memoria y datos es similar en ambos casos. Las ventajas de MicroChannel son una mayor velocidad, 10 megaherzios, una anchura de 32 bits, la posibilidad de autoinstalación y una mejor gestión de los recursos conectados al canal gracias a un control denominado busmaster. • Arquitectura EISA. La Arquitectura EISA (Extended Industry Standard Architecture en inglés) surge como una mejora del estándar ISA por parte de un grupo de empresas fabricantes de microcomputadoras compatibles. La 38 39 velocidad del bus aumenta, así como la posibilidad de manejo de datos, llegándose a los 32 bits en paralelo; asimismo posee autoinstalación y control de bus. La unión del aumento de la velocidad interna del bus y los 32 bits trabajando en paralelo permite a esta arquitectura una capacidad de manejo y transferencia de datos desconocida hasta ese momento, pudiendo llegar hasta los 33 megabytes por segundo. La gran ventaja de la arquitectura EISA es que es totalmente compatible con ISA, esto es, una tarjeta de expansión ISA funciona si se la inserta en una ranura EISA. Evidentemente, no va a poder utilizar totalmente la potencia del nuevo estándar, funcionando a menor velocidad, pero funcionando al fin y al cabo. En la actualidad no existe una arquitectura que tenga el suficiente peso específico como para desbancar totalmente al resto, si bien, poco a poco, la arquitectura ISA puede ir desapareciendo de las configuraciones de los sistemas informáticos dando paso a las otras dos arquitecturas. Reloj El reloj de una computadora se utiliza para dos funciones principales: 1. Para sincronizar las diversas operaciones que realizan los diferentes subcomponentes del sistema informático. 2. Para saber la hora. El reloj físicamente es un circuito integrado que emite una cantidad de pulsos por segundo, de manera constante. Al número de pulsos que emite el reloj cada segundo se llama Frecuencia del Reloj. La frecuencia del reloj se mide en Ciclos por Segundo, también llamados Hertzios, siendo cada ciclo un pulso del reloj. Como la frecuencia del reloj es de varios millones de pulsos por segundo se expresa habitualmente en Megaherzios. El reloj marca la velocidad de proceso de la computadora generando una señal periódica que es utilizada por todos los componentes del sistema informático para sincronizar y coordinar las actividades operativas, evitando el que un componente maneje unos datos incorrectamente o que la velocidad de transmisión de datos entre dos componentes sea distinta. Cuanto mayor sea la frecuencia del reloj mayor será la velocidad de proceso de la computadora y podrá realizar mayor cantidad de instrucciones elementales en un segundo. El rango de frecuencia de los microprocesadores oscila entre los 4,77 megaherzios del primer PC diseñado por IBM y los 200 megaherzios de las actuales computadoras basadas en los chips Intel Pentium. TARJETAS DE EXPANSIÓN INTERNA Las Tarjetas de Expansión están diseñadas y dedicadas a actividades específicas, como pueden ser las de controlar la salida de vídeo de la computadora, gráficas, comunicaciones, etc. Las tarjetas de expansión no forman parte de la unidad central de proceso, pero están conectadas directamente a ésta a través del bus, generalmente dentro de la propia caja de la unidad central del sistema, y controladas por la CPU en todas sus operaciones. Las tarjetas de expansión complementan y ayudan a la placa base y, por tanto, al microprocesador central descargándole de tareas que retardarían los procesos de la CPU, añadiendo al mismo tiempo una serie de posibilidades operativas que no estaban previstas en los primeros modelos de computadoras. 39 40 A lo largo de la historia del desarrollo de las computadoras se han ido aprovechando diseños técnicos anteriores para crear subcomponentes de sistemas informáticos de complejidad superior; un ejemplo puede ser el microprocesador 8086 que sirvió como microprocesador principal para una serie de sistemas informáticos, como fueron los PS/2 de IBM. En la actualidad puede emplearse como microprocesador de tarjetas gráficas dedicadas a controlar los subsistemas de vídeo. Las tarjetas de expansión cumplen una importante cantidad de cometidos que van desde controlar actividades del proceso general del sistema informático (subsistema de vídeo, subsistema de almacenamiento masivo de información en los diferentes discos de la computadora, etc.) hasta permitir una serie de tareas para las que los diseñadores del sistema informático no han previsto facilidades o que debido a su costo sólo se entregan como opcionales. Tarjetas Controladoras de Periféricos Las Tarjetas de Expansión Controladoras de Periféricos son placas que contienen circuitos lógicos y que se conectan al bus de datos para recibir la información que la CPU envía hacia los periféricos almacenándola en Buffers, esto es, una serie de Memorias Intermedias que actúan como amortiguadoras de los flujos de datos que se transmiten en el interior del sistema informático y descargan al procesador principal del control del tráfico de señales y datos entre el procesador y los periféricos exteriores. Las tarjetas de expansión controladoras de periféricos más importantes son: • Las Tarjetas de Expansión Controladoras del Modo de Vídeo. • Las Tarjetas de Expansión Controladoras de Entrada/Salida de Datos. • Las Tarjetas de Expansión Controladoras de Comunicaciones. Tarjetas de Expansión Controladoras del Modo de Video Este tipo de tarjetas de expansión son también llamadas Tarjetas Gráficas. Las tarjetas gráficas van a proporcionar diferentes clases de calidad en la información que el sistema informático va a poder mostrar en su pantalla. La información que la computadora va a representar en su pantalla se encuentra en una zona de la memoria RAM que alimenta periódicamente al cañón de electrones, a través de la tarjeta controladora del modo gráfico, de los datos necesarios para representar la información almacenada en la pantalla del sistema informático. La pantalla de la computadora se refresca, esto es, modifica el dibujo que aparece en ella con una periodicidad de entre 50 y 80 veces por segundo. El dibujo que aparece en la pantalla del sistema informático es el almacenado en la memoria de vídeo de la computadora y que la tarjeta gráfica recibe para manejar los datos y enviarlos hacia la pantalla del sistema informático. Cuando la tarjeta de vídeo envía la información almacenada en la memoria hacia la pantalla de la computadora, estos datos pasan por un convertidor digital/analógico para convertirse en una señal eléctrica compatible con la necesaria para que el componente de generación de imágenes de la pantalla del sistema informático (cañón de rayos, LCD, etc.) forme la imagen en la pantalla de la computadora. Existen diferencias entre los distintos tipos de tarjetas gráficas entre las que caben destacar: 1. Modo de Trabajo. Es como se va a manejar la información que se va a representar en la pantalla del sistema informático. Los modos principales de trabajo son: 40 41 • Modo Texto: Se maneja la información en forma de texto, si bien algunos de estos caracteres pueden utilizarse para realizar dibujos sencillos. • Modo Gráfico: Es más completo que el anterior ya que a la posibilidad del manejo de caracteres se une la de la creación de dibujos complejos. 2. Utilización del Color. Algunas tarjetas de vídeo pueden manejar una serie de parámetros, en forma de código binario, que permiten la utilización del color en las pantallas de los sistemas informáticos que estén preparadas para ello. La utilización, o no, del color permite realizar la siguiente diferenciación: • Monocromas: Utilizan sólo un color que resalta sobre el fondo de la pantalla de la computadora. • Policromas: Utilizan la serie de tres colores fundamentales (rojo, azul y verde) para obtener las diferentes mezclas de colores y tonos que se van a representar en la pantalla del sistema informático. 3. Resolución Gráfica. Es una matriz formada por la cantidad total de líneas de información y el número de puntos en que se puede dividir cada una de las líneas. Esta matriz es la información que la tarjeta gráfica envía hacia la pantalla de la computadora. A continuación van a estudiarse los tipos de tarjetas gráficas más conocidas: Tarjeta Gráfica Hércules. Las tarjetas gráficas Hércules son tarjetas de vídeo que trabajan en modo gráfico en sistemas informáticos cuya configuración incluye pantallas monocromas. Fueron diseñadas por Hercules Corp. para poder crear gráficos en las pantallas monocromas de las primeras computadoras personales debido a que la tarjeta de vídeo que incluían estos sistemas informáticos, el Adaptador Monocromo de IBM, sólo podía trabajar en modo texto. Debido a que Hercules Corp. era una empresa independiente, IBM nunca consideró a la tarjeta de vídeo creada por ella como un estándar, aunque sí lo fue de hecho. Este modelo de tarjeta de vídeo posee una resolución gráfica de 720 puntos por 348 líneas. Tarjeta Gráfica CGA. La tarjeta gráfica CGA (Color Graphics Adapter-Adaptador de Gráficos Color) fue diseñada para introducir el color en el mundo de la microinformática. Las tarjetas gráficas CGA trabajan en los modos texto y gráfico, pudiendo conectarse a ellas pantallas de computadora monocromas y de color. El problema que presentan las CGA es que su resolución gráfica es muy pobre en comparación con el resto de las tarjetas gráficas del mercado, siendo de 640 puntos por 240 líneas en modo monocromo y de 320 puntos por 200 líneas trabajando con cuatro colores. Tarjeta Gráfica EGA. La EGA (Enhanced Graphics Adapter-Adaptador Mejorado de Gráficos) es una tarjeta de vídeo que trabaja en modo gráfico y mejora en gran medida las prestaciones de la CGA. Esta tarjeta gráfica trabaja con pantallas de computadora monocromas o de color. La resolución de la tarjeta gráfica EGA es de 640 puntos por 350 líneas y maneja hasta 16 colores al mismo tiempo. Tarjeta Gráfica MCGA. 41 42 Esta Tarjeta Gráfica (Microchannel Graphics Adapter - Adaptador Gráfico Microchannel) fue diseñada por IBM para trabajar en sus microcomputadoras del tipo PS/2. La MCGA tenía una resolución máxima de 640 puntos por 400 líneas en modo monocromo, reduciéndose a medida que se aumentaba el número de colores con que se trabajaba. Tarjeta Gráfica VGA. La Tarjeta Gráfica VGA (Video Graphics Adapter - Adaptador Vídeo de Gráficos) se diseñó, como la anterior, para los sistemas informáticos PS/2 de IBM. La diferencia entre ambas tarjetas gráficas es que si la anterior se instaló en los sistemas informáticos menos potentes, la VGA se instaló en los sistemas informáticos más potentes de la gama PS/2, debido a su mejor resolución. Al contrario que la MCGA, la tarjeta gráfica VGA sí tuvo un modelo compatible con el bus habitual de los sistemas PC y gracias a su calidad de diseño y fabricación ha llegado a convertirse en un estándar dentro del mercado microinformático. La resolución de esta tarjeta gráfica tiene dos modos distintos: • La resolución en modo texto es de 720 puntos por 400 líneas manejando los dos colores del monocromo. • La resolución en modo gráfico es de 640 puntos por 480 líneas y maneja 16 colores. Tarjeta Gráfica SVGA. La tarjeta gráfica SVGA (Super Video Graphics Adapte - Super Adaptador Vídeo de Gráficos) es un diseño de reciente creación. Ha sido introducida en el mercado como una tarjeta gráfica VGA, ampliada y mejorada, que rápidamente está consiguiendo una importante cuota de instalación en las configuraciones de los nuevos sistemas informáticos. La posibilidad de manejo por la propia tarjeta gráfica de un megabyte de memoria DRAM, que puede ampliarse hasta los dos megabytes, supone una importante potencia gráfica que da, a los sistemas microinformáticos, posibilidades de manejo de gráficos que antes sólo podían realizar las estaciones de trabajo o las minicomputadoras. La resolución de esta tarjeta gráfica es muy alta, llegando a los 1.280 puntos por 1.024 líneas. Tarjetas Controladoras de Entrada y Salida de Datos La función principal de estos dispositivos es adaptar la información procesada por la unidad central de proceso, canalizando las transferencias de información entre la computadora y los dispositivos periféricos exteriores. Con las tarjetas controladoras de entrada y salida de datos se consigue: Independencia funcional entre la unidad central de proceso y los periféricos asociados a ella. Las tarjetas controladoras evitan la lentitud de los procesos debido a la diferencia de velocidad entre la CPU y los periféricos. Adaptación de diversos tipos de periféricos al sistema informático, independientemente de que la operatividad entre ellos y la computadora no sea compatible. Pueden servir de traductoras entre el modo digital de la computadora y el analógico del de otros medios por los que se pueden establecer enlaces entre sistemas informáticos. Tarjetas Controladoras de Comunicaciones Las Tarjetas Controladoras de comunicaciones son unidades que permiten la conexión de una computadora central, denominada sistema central o servidor, con una serie de computadoras menos potentes que utilizan parte de los recursos del servidor para aumentar su operatividad. 42 43 La conexión se produce a través de una serie de Enlaces que unen todas las computadoras entre sí formando una Red de Comunicaciones. Si los sistemas informáticos que constituyen esta red de comunicaciones se encuentra en una zona no muy extensa, no mayor que un edificio, la red se denomina Red de Área Local (LAN - Local Area Network). Si la red de comunicaciones tiene una extensión mayor y se utilizan los servicios de las compañías telefónicas para enlazar las diferentes computadoras que componen la red, ésta se denomina Red de Área Extensa (WAN-Wide Area Network). Las tarjetas controladoras de comunicaciones más comunes son las tarjetas de conexión a redes de área local. Este tipo de tarjetas de comunicaciones se estudiarán más adelante en un apartado específico dedicado a ella; sin embargo, se puede adelantar aquí que las tarjetas controladoras de comunicaciones se dividen en dos grupos principales: • Tarjetas de conexión a redes locales (LAN). • Tarjetas de expansión módem (para redes de comunicaciones extensas). Las tarjetas de conexión a redes LAN son tarjetas de expansión que proporcionan una Conexión y una Dirección que permiten identificar al usuario en el interior de la red, posibilitándole el poder enviar y recibir información al sistema informático. La conexión que proporcionan las tarjetas de conexión a redes de área local es a un cable coaxial muy similar al utilizado para conectar una televisión comercial a su antena exterior. La velocidad que este medio permite dentro de la red de comunicaciones es, sin embargo, inferior a la que poseen los sistemas informáticos conectados a ella, rondando unos pocos megaherzios. Las tarjetas de expansión módem modulan la señal digital existente dentro de la unidad central del sistema de la computadora y la transforman convirtiéndola en analógica. Esta señal analógica se superpone a otra señal llamada portadora, que es la que viaja por el cable telefónico, sobre la que va a poder atravesar las líneas telefónicas hasta un punto remoto donde otro módem volverá a convertir la señal en digital para que pueda ser utilizada por otra computadora. Las velocidades de transmisión que proporcionan este tipo de tarjetas de expansión módem oscilan entre los 1.200 y los 28.800 bits por segundo. Lista de Procesadores. Name Row Pins s PreSocket 132 PreSocket PreSocket Voltag e Supported Processors 286 387 168 486 43 44 PreSocket Weitek Socket 1 169 3 5V 486SX, 486DX, 486DX 2, 486DX 4 OD Socket 2 238 4 5V 486SX, 486DX, 486DX 2, 486DX 4 OD, Pentium OD Socket 3 237 4 5V / 3,3V 486SX, 486DX, 486DX 2, 486DX 4, Pentium OD, 5x86 Socket 4 273 4 5V Pentium 60-66, Pentium OD Socket 5 320 5 3,3V Pentium 75-133 MHz, Pentium OD Socket NexGen 463 Socket 6 235 4 3,3V Never used (486DX 4, Pentium OD) Socket 7( FSB66) 321 5 2,5-3,3V Pentium 75-200 MHz, Pentium OD, Pentium MMX, Pentium MMX OD, K5, 6x86, K6, 6x86MX Supersocket7 (FSB100) 321 5 2,0-3,3V Pentium MMX, K5, K6, K6-II, K6-III, 6x86, 6x86L, MII, mP6, C6, WinChip2, Crousoe Socket 8 387 5 3,1 / 3,3V Pentium Pro, Pentium Pro OD, Pentium II OD Socket 370 370 6 Socket FC-PGA 370 Pentium II, III, Celeron Flip Chip-version Socket FC-PGA 2 418 Dual Pentium II Socket USD 8 NexGen Nx 586 Celeron Mobile Pentium II with BGA-2 o utfit (µPGA-2) Socket 423 423 Pentium 4 Socket 479 479 Pentium 4-M 44 45 Socket 479 (canceled) 479 Prescott v 0,9 Socket µ PGA478 478 Pentium 4 Socket 603 603 Pentium 4 Xeon (Foster) Socket µ PGA604 604 Pentium 4 (Prestonia) Socket 462 / A 462 Athlon, Duron, Spitfire Socket 462 (low profile) 462 Athlon, Duron, Spitfire Socket 563 µ PGA 563 AMD Thoroughbred Socket 754 754 AMD Athlon 64 AMD Socket 940 940 AMD Opteron Slot 1 (SC 242) 242 n/a Slot 2 (SC 330) 3330 n/a Pentium II Xeon, Pentium III Xeon n/a AMD K7 Slot A Slot B Slot M ( PAC - 418) 2,8 / 3,3V Pentium II, Pentium Pro (with Socket 8 on daughtercard) DEC alpha 418 Merced, Itanium LC PDS Apple 16 bit LC III PDS Apple 32 bit 45 46 FastSlot 200 Amiga 3000/4000 Osvaldo Lázaro Cangas Padilla 46