INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS DEPARTAMENTO DE ESTUDIOS PROFESIONALES GENÉRICOS ACADEMIAS DE TECNOLOGÍA INFORMÁTICA LICENCIATURA EN CIENCIAS DE LA INFORMATICA FUNDAMENTOS DE LA COMPUTACIÓN ANTOLOGÍA M. en C. ÁNGEL GUTIÉRREZ GONZÁLEZ INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INDICE: UNIDAD I: INTRODUCCIÓN. 1.1 ANTECEDENTES Y RAZÓN DE SER. 6 1.2 DEFINICION DE COMPUTADORAS 13 1.3 GENERACIONES DE COMPUTADORAS 14 1.4 UTILIZACIÓN DE LAS COMPUTADORAS EN DIFERENTES SECTORES. 19 1.5 COMPUTADORAS DIGITALES, ANÁLOGAS E HÍBRIDAS. 29 1.6 CONCEPTOS DE HARDWARE, SOFTWARE Y FIRMWARE. 33 UNIDAD II: COMPONENTES PRINCIPALES DE UNA COMPUTADORA. 2.1 ESTRUCTURA GENERAL DE UNA COMPUTADORA. 39 2.2 UNIDAD CENTRAL DE PROCESO. 43 2.3 LA MEMORIA Y SU CLASIFICACIÓN. 46 2.4 DISPOSITIVOS E/S. 48 2.5 CONCEPTOS ASINCRONO Y SINCRONO. 52 2.6 EL MODELO DE VON NEWMAN. 53 2.7 CLASIFICACIÓN DE LAS COMPUTADORAS POR SU CAPACIDAD DE PROCESO. 57 UNIDAD III: CONCEPTOS DE PROGRAMACIÓN. 3.1 COMO DETERMINAR QUE UN PROBLEMA SEA RESUELTO POR COMPUTADORA. 61 3.2 SOLUCIONES LOGICAS. 63 3.3 DIAGRAMAS LOGICOS. 64 2 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 3.4 QUE ES UN LENGUAJE DE PROGRAMACIÓN. 66 3.5 QUE ES UN LENGUAJE MÁQUINA. 73 3.6 QUÉ ES UN TRADUCTOR DE LENGUAJES. 76 3.7 ELEMENTOS DE PROGRAMACIÓN. 78 3.8 PROGRAMACIÓN ESTRUCTURADA. 81 UNIDAD IV: AMBIENTES DE PROCESAMIENTO DE DATOS. 4.1 PROCESAMIENTO EN BATCH. 89 4.1.1 DESCRIPCIÓN. 90 4.1.2 EVOLUCIÓN. 91 4.1.3 CARACTERISTICAS. 91 4.1.4 VENTAJAS Y DESVENTAJAS. 92 4.2 PROCESAMIENTO EN LINEA. 92 4.2.1 DESCRIPCIÓN. 92 4.2.2 EVOLUCIÓN. 93 4.2.3 CARACTERISTICAS. 94 4.2.4 VENTAJAS Y DESVENTAJAS. 94 4.3 PROCESAMIENTO EN TIEMPO REAL. 94 4.3.1 DESCRIPCIÓN. 95 4.3.2 EVOLUCIÓN. 95 4.3.3 CARACTERISTICAS. 95 4.3.4 VENTAJAS Y DESVENTAJAS. 96 4.4 PROCESAMIENTO EN PARALELO. 96 4.4.1 DESCRIPCIÓN. 96 4.4.2 EVOLUCIÓN. 97 3 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 4.4.3 CARACTERISTICAS. 97 4.4.4 VENTAJAS Y DESVENTAJAS. 97 4.5 PROCESAMIENTO DISTRIBUIDO. 103 4.5.1 DESCRIPCIÓN. 104 4.5.2 EVOLUCIÓN. 105 4.5.3 CARACTERISTICAS. 105 4.5.4 VENTAJAS Y DESVENTAJAS. 106 4.6 FASES PARA EL PROCESAMIENTO DE UNA APLICACIÓN. 107 UNIDAD V: SISTEMA OPERATIVO. 5.1 QUE ES EL SISTEMA OPERATIVO DE UN COMPUTADOR. 112 5.1.2 PRINCIPALES FUNCIONES Y USOS. 117 5.1.3 TRADUCTORES DE LENGUAJES DE PROGRAMACIÓN. 126 5.2 CONTROL DE MANEJO DE INTERRUPCIONES. 129 5.2.1 DENTRO DE UN COMPUTADOR. 130 5.2.2 INTERRUPCIONES DE E/S. 130 5.2.3 INTERRUPCIONES DE PROGRAMA. 132 5.2.4 INTERRUPCIONES EXTERNAS. 134 5.3 METODOS DE ACCESO. 135 5.4 MULTIPROGRAMACIÓN. 136 5.5 TELEPROCESO. 139 UNIDAD VI: TOPICOS. 6.1 CULTURA Y DESARROLLO ORGANIZACIONAL. 142 6.2 MEMORIA CACHE. 145 4 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 6.3 ARQUITECTURAS CISC Y RISC. 149 6.4 SISTEMAS DE MULTIPROCESAMIENTO. 158 6.5 SISTEMAS DE PROCESAMIENTO DISTRIBUIDO. 162 6.6 REDES DE COMPUTADORAS. 168 6.7 PROTOCOLOS ESTANDARES. 173 6.8 SISTEMAS ABIERTOS. 187 ANEXO DE SEGURIDAD INFORMATICA. 190 BIBLIOGRAFÍA. 192 5 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS UNIDAD I: INTRODUCCIÓN. 1.1 ANTECEDENTES Y RAZON DE SER. La computadora representa, de alguna manera, el genio encerrado en la botella, pues es capaz de cumplir los deseos de rapidez y eficiencia en el cálculo y la organización de grandes masas de datos. Es ya común oír que la sociedad moderna depende de las computadoras, y cada vez con mayor frecuencia se escucha que nuestro futuro está ligado al de estas máquinas. Por ello, resulta interesante averiguar de dónde surgieron las computadoras, y más aun enterarse de cómo surgió la idea que las sustenta, porque está claro que ningún invento de alguna importancia surge aislado de una conceptualización previa, que a veces lo antecede por muchos años. En el caso de las computadoras, aunque aparecen a finales de la década de 1950, las ideas de las que provienen son en realidad tan básicas y primordiales para el ser humano que no deja de ser extraño que muchos estudiantes y usuarios no las conozcan. Además, al ignorarlas se corre el peligro de creer que las computadoras son meros artefactos para calcular, con lo que se pierde el acceso a un gran conjunto de conceptos filosóficos. Aunque parezca extraño, la filosofía es el punto de partida de este libro sobre computación, y en un somero análisis se explicará el porqué. Si se piensa en los medios de que los humanos disponemos para conocer el mundo, hay que considerar en primer lugar la percepción que otorgan los sentidos; y al analizar esto con detenimiento se encuentra que, en principio, no percibimos el mundo en forma directa, sino a través del complejo mecanismo de los sentidos, que confiere a nuestra interpretación características propias. Cuando el ser humano adquiere el manejo del lenguaje, a los pocos años de edad, la situación da un giro radical; entonces, la percepción del mundo es aun menos directa que antes y se convierte, en buena medida, en un conjunto de descripciones acerca de él en términos del lenguaje. Estas descripciones son imágenes mentales estructuradas que todo el tiempo nos dicen qué y cómo es el mundo en un permanente ―dialogo interno‖. Se puede entonces postular que uno de los mecanismos mediante los cuales el ser humano conoce el mundo es el de las descripciones que de él constantemente hace, y que estas descripciones están construidas mediante el lenguaje. 6 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Una característica primordial de este mecanismo es que podemos transmitir las descripciones a alguien más y esperar que éste las procese de tal forma que sea capaz de comprender que la descripción emitida hace referencia a una misma realidad percibida por ambos. El proceso mediante el cual se logra esta comprensión extrae, mediante una representación, el contenido original de la descripción, y va de regreso al punto de partida inicial. De esta manera es como se puede establecer un primer nivel de comunicación acerca de mundo, cuando se analice el problema de la computabilidad, que en principio se dedica a explorar en términos matemáticos los límites del esquema descripción representación, y que ha obtenido resultados sorprendentes por lo insospechados. Una vez que está claro que es posible representar una descripción, y cuando se han tomado medidas para eliminar los errores de comunicación y las posibilidades de ambigüedad, queda establecido un sistema en el que ya no es indispensable que sea un humano el responsable de realizar la representación; y aquí radica el origen de las computadoras, que está de entrada delimitando por el problema de la computabilidad. En efecto, la computadora no es más que el medio mecánico (o electrónico) con el que se representan descripciones libres de ambigüedad y se obtiene un resultado útil. Estas descripciones, por lo general, se formulan en términos de problemas por resolver mediante un método que la máquina se encarga de representar o llevar a la práctica. Uno de los problemas que siempre ha fascinado al hombre es el relacionado con la actividad de contar y con el concepto de número. Y ahí que entre las primeras herramientas que inventó está u ingeniero mecánico capaz de liberarlo de la pesada tarea de calcular a mano. Es más, la misma palabra cálculo proviene del latín calculus, que nombra las pequeñas piedras que se usaban hace miles de años como auxiliares en las cuentas (en un especial de ábaco formado con ranuras en el suelo y operado manualmente por medio de ellas), y que se han encontrado en excavaciones arqueológicas. El ábaco representa la primera calculadora mecánica, aunque no se le puede llamar computadora porque carece de un elemento fundamental: el programa, que no se logrará sino hasta mucho tiempo después. Otro ingenio mecánico, que tampoco es una computadora, fue la máquina de calcular inventada por Blaise Pascal (1623-1662). Se trata de una serie de engranes en una caja, que proporcionan resultados de operaciones de suma y resta en forma directa–mostrando un número a través de una ventanita- y que por este simple hecho tiene la ventaja de que evita tener que contar, como en el ábaco; además, presenta los resultados en forma más accesible y directa. 7 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La computadora nace, de hecho, alrededor de 1830, con la invención de la máquina analítica de Charles Babbage (1791-1871). Este diseño, que nunca se llevó por completo a la práctica, contenía todos los elementos que configuraban a una computadora moderna, y que la diferencian de una calculadora. La máquina analítica estaba dividida funcionalmente en dos grandes partes: una que ordenaba y otra que ejecutaba las órdenes. La que ejecutaba las órdenes era una versión muy ampliada de la máquina de Pascal, mientras que la otra era la parte clave. La innovación consistía en que el usuario podía, cambiando las especificaciones del control, lograr que la misma máquina ejecutara operaciones complejas, diferentes de las que había hecho antes. Esta verdadera antecesora de las computadoras contaba también con una sección en la que se recibían los datos con los que se iba a trabajar. La máquina seguía las instrucciones dadas por la unidad de control, las cuales indicaba qué hacer con los datos de entrada, para obtener luego los resultados deseados. La aplicación fundamental para la que el gran inventor inglés desarrolló su máquina era elaborar tablas de funciones matemáticas usuales (logaritmos, tabulaciones trigonométricas, etc.) que requería mucho esfuerzo manual. Esta primera computadora ―leía‖ los datos (argumentos) de entrada por medio de las tarjetas perforadas que había inventado el francés Joseph M. Jacquard, y que habían dado nacimiento a la industria de los telares mecánicos durante la Revolución Industrial. Tarjeta perforada. Conceptualmente, el mecanismo era sencillo: evaluar la primera función f1(x1); determinar el nuevo argumento de la serie, x2, y pedir ala máquina que calcula otra vez la misma función con el nuevo dato. Está claro que si la máquina puede calcular f1(x1), no le será difícil calcular f1(x1), no lesera difícil calcular f1(x2), y de la misma manera podrá generar toda la serie de valores f1(x1), f1(x2),...,F1(xn). 8 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Del mismo modo, si se deseaba cambiar una misma función f2 sobre un argumento x1, f2(x1), había que cambiar las especificaciones de f1 por las de f2, supuestamente, se lograba alterando la disposición de ciertos elementos mecánicos en la sección de control de la maquina. No obstante, la maquina analítica nunca se puso en funcionamiento, precisamente, por la dificultad para lograr dichos cambios. Es perfectamente valido, sin embargo, referirse a esta maquina como la primera computadora digital. Se explicará ahora el significado de la palabra digital. Los procesos naturales comparten la característica de ser de tipo continuo; es decir, la escala de manifestaciones de un fenómeno cualquiera no tiene singularidades ni puntos muertos, sino que se extiende de manera continua desde la parte inferior a la superior. La temperatura del agua, por ejemplo, puede variar entre cero y cien grados antes de que ésta cambie de estado; lo importante es que en algún momento el agua puede estar en cualquier punto intermedio de la escala, sin más determinantes que la cantidad de calor que reciba. Así mismo, la velocidad del viento puede fluctuar de manera continua entre cero y cuarenta Km /h en un día normal, pudiendo, en cualquier momento, ocupar una posición en esa escala, sin más limitación que las diferencias de presión atmosférica. Esta característica de poder ocupar cualquier punto intermedio en la escala de manifestaciones, como se mencionó, es común a los fenómenos naturales. Esto es, en la naturaleza los fenómenos no se limitan a unas cuantas posiciones fijas de sus respectivas escalas de manifestación, sino más bien a una variación, continua entre dos límites, el superior y el inferior. Los fenómenos que se comportan así reciben el nombre de analógicos. No ocurre lo mismo, sin embargo, con algunos fenómenos creados por el hombre. Piénsese en un automóvil: si se supone de transmisión estándar, entonces se dará el caso que, en algún momento determinado, la caja de velocidades ocupe alguna posición predeterminada (1a, 2a,3a, etc.), no pudiendo más que de manera transitoria ocupar una posición intermedia. Un automóvil no puede marchar en "primera y tres cuartos"; o lo hace en la primera velocidad o lo hace en la segunda, de manera discreta (i ,e, discontinua). Estos fenómenos reciben el nombre de digitales (al menos en el contexto de la ingeniería), tal vez porque dan la idea de que se pueden cuantificar con los dedos de la mano. 9 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Así, puede hablarse de computadoras analógicas y computadoras digitales: son computadoras digitales aquellas que manejan la información de manera discreta en unidades que se llaman bits (BInary digiTS, dígitos binarios), y son analógicas las que trabajan por medio de funciones continuas generalmente representación de señales eléctricas. Hoy día, prácticamente todas las computadoras en uso son digitales, ya que el empleo de las analógicas se ve restringido a aplicaciones muy particulares en la ingeniería o la biología. A continuación se describe el esquema elemental de la máquina inventada por Charles Babbage, para explicar algunas de las características más importantes de toda computadora digital moderna. ENTRADA (Tarjetas perforadas) ALMACEN O MEMORIA CALCULOS SALIDA CONTROL Esquema básico de la máquina analítica. La sección de control se convierte en concepto fundamental, pues es la parte que dirige el procesamiento de acuerdo con un programa previamente introducido en el "almacén" (como llamo Babbage a la memoria) de la máquina. Así, una computadora está formada por una unidad de entrada , que recibe tanto la información a procesar como las instrucciones (programa); la unidad de memoria, que almacena la información; la unidad de procesamiento (aritmética y 1ogica), que ejecuta los cálculos sobre la información; la unidad de control , que dirige a todas las demás unidades, determinando cuándo se debe leer la información, en qué lugares debe almacenarse, cuándo debe funcionar la unidad aritmética, etc.; y una unidad de salida, que muestra la información ya procesada, en forma de números o gráficas. Tiempo después, en 1944, se construyo en la universidad de Harvard, en los Estados Unidos, la computadora IBM Mark I, diseñada por un equipo encabezado por Howard H. Aiken. No obstante, esta máquina no califica para ser considerada la primera computadora electrónica, porque no era de propósito general y su funcionamiento estaba basado en dispositivos electromecánicos, llamados relevadores. 10 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Luego de casi cien años de Babbage, en 1947, se diseño la primera computadora electrónica que tenía gran parecido funcional con la máquina analítica y esto habla de su genio. Un equipo dirigido por los ingenieros John Mauchly y John Eckert, de la universidad de Pennsylvania, construye una gran máquina electrónica llamada ENIAC (Eúctronic Numerical intengrator And Calculator) que, efectivamente, es la primera computadora digital electrónica de la historia. Esta máquina era enorme: ocupaba todo un sótano en la universidad, tenía más de 18000 tubos de vacío, consumía 200 KW de energía eléctrica y requería todo un sistema de aire acondicionado industrial. Pero era capaz de efectuar alrededor de cinco mil operaciones aritméticas en un segundo, dejando para siempre atrás las limitaciones humanas de velocidad y precisión, e inaugurando una nueva etapa en las capacidades de procesamiento de datos. ENIAC El proyecto, auspiciado por el Departamento de Defensa de Estados Unidos, cu1minó dos años después, cuando se integró a ese equipo el ingeniero y matemático húngaro naturalizado norteamericano, John Von Neumann (1903-1957). Las ideas de Von Neumann resultaron tan fundamentales para su desarrollo posterior, que es considerado el padre de las computadoras. 11 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS John von Neumann. La computadora diseñada por este nuevo equipo se llamó EDVAC (Electronic Discrete Variable Automatic Computer); tenía cerca de cuatro mil bulbos y usaba un tipo de memoria basado en tubos llenos de mercurio por donde circulaban señales eléctricas sujetas a retardos. La nueva idea fundamental resulta muy sencilla: permitir que en la memoria coexistan datos con instrucciones, para que entonces la computadora pueda ser programada de manera "suave", y no por medio de alambres que eléctricamente interconectaban varias secciones del control, como en la ENIAC. Esta idea, que incluso obliga a una completa revisión de la arquitectura de las computadoras, recibe desde entonces el nombre de modelo de Von Neumann. Alrededor de este concepto gira toda la evolución posterior de la industria y la ciencia de la computación, por lo que se le dedicará un capítulo aparte. De 1947 a la fecha las cosas han avanzado muy rápido, más que cualquier otro proceso en la historia de la ciencia y la tecnología; a tal grado que en la actualidad hay computadoras mucho más poderosas que la ENIAC y que no ocupan sino un circuito de silicio tan pequeño que es casi invisible. Como contraste inicial, antes de proceder a describir lo que ha sucedido en los cuarenta años desde la invención de la computadora, he aquí una comparación entre dos máquinas, la ENIAC y uno de los primeros microprocesadores (ya obsoleto): 12 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS ENIAC Año Intel 8080 1947 1973 Componentes Electrónicos. 18 000 bulbos un circuito integrado con mÁs de 100 000 transistores. Tamaño 2 Decenas de m Menos de 1 cm2 Requerimientos de Potencia 200 kilowatts Pocos miliwatts Velocidad 5 000 sumas/s 1500 sumas/s Costo Varios millones Cincuenta dólares de dólares en 1974 1.2 DEFINICIÓN DE COMPUTADORA. La computadora es un sistema electrónico que lleva a cabo operaciones de aritmética y de lógica a alta velocidad de acuerdo a las instrucciones internas, que son ejecutadas sin intervención humana. Además, tiene la capacidad de aceptar y almacenar datos de entrada, procesarlos y producir resultados de salida automáticamente. Su función principal es procesar datos. Ordenador o Computadora, dispositivo electrónico capaz de recibir un conjunto de instrucciones y ejecutarlas realizando cálculos sobre los datos numéricos, o bien compilando y correlacionando otros tipos de información. El mundo de la alta tecnología nunca hubiera existido de no ser por el desarrollo del ordenador o computadora. Toda la sociedad utiliza estas máquinas, en distintos tipos y tamaños, para el almacenamiento y manipulación de datos. Los equipos informáticos han abierto una nueva era en la fabricación gracias a las técnicas de automatización, y han permitido mejorar los sistemas modernos de comunicación. Son herramientas esenciales prácticamente en todos los campos de investigación y en tecnología aplicada. 13 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 1.3 GENERACIONES DE COMPUTADORAS. PRIMERA GENERACIÓN (1945-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 Cía. 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 a base de 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. Usaban tubos al vacío para procesar información. Usaban tarjetas perforadas para entrar los datos y los programas. Usaban cilindros magnéticos para almacenar información e instrucciones internas. 14 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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 historia. Aunque cara 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‘ s IBM se consolido como líder 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 seguía 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 podrí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 substancialmente 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. 15 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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). Usaban transistores para procesar información. Los transistores eran más rápidos, pequeños y más confiables que los tubos al vacío. Usaban pequeños anillos magnéticos para almacenar información e instrucciones. Se mejoraron los programas de computadoras que fueron desarrollados durante la primera generación. 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. 16 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Las computadoras trabajaban a tal velocidad que proporcionaban la capacidad de correr más de un programa de manera simultánea (multiprogramación). Por ejemplo la computadora podía estar calculando la nómina 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. Se desarrollaron circuitos integrados para procesar información. Se desarrollaron los "chips" para almacenar y procesar la información. Un "chip" es una pieza de silicio que contiene los componentes electrónicos en miniatura llamados semiconductores. Otra vez las computadoras se tornan más pequeñas, más ligeras y más eficientes. Consumían menos electricidad, por lo tanto, generaban menos calor. CUARTA GENERACIÓN (1971-1988). 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 Chic: producto de la microminiaturización de los circuitos electrónicos. 17 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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 almacén en un clip. 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. Se desarrolló el microprocesador. Se colocan más circuitos dentro de un "chip". Se reemplaza la memoria de anillos magnéticos por la memoria de "chips" de silicio. Se desarrollan las microcomputadoras, o sea, computadoras personales o PC. QUINTAGENERACIÓN (1983-al presente). INTELIGENCIA ARTIFICIAL. Fue ideada en Japón en el año de 1983, como un programa llamado de la Quinta Generación, que involucraba a la inteligencia artificial y al desarrollo de nuevas arquitecturas de computadoras. La inteligencia artificial es el campo de estudio que trata de aplicar los procesos del pensamiento humano usados en la solución de problemas ala computadora. ROBÓTICA. La robótica es el arte y ciencia de la creación y empleo de robots. Un robot es un sistema de computación híbrido independientemente que realiza actividades físicas y de cálculo. Están siendo diseñados con inteligencia artificial, para que puedan responder de manera más efectiva a situaciones no estructuradas. 18 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS SISTEMAS EXPERTOS. Un sistema experto es una aplicación de inteligencia artificial que usa una base de conocimiento de la experiencia humana para ayudar a la resolución de problemas. REDES DE COMUNICACIONES. Los canales de comunicaciones que interconectan terminales y computadoras se conocen como redes de comunicaciones; todo el "hardware" que soporta las interconexiones y todo el "software" que administra la transmisión. 1.4 UTILIZACIÓN DE LAS COMPUTADORAS EN DISTINTOS SECTORES. Cada 10 horas se venden más computadoras que las que existían en todo el mundo hace 25 años (casi 50,000). En aquel entonces, las computadoras se fabricaban sólo en un tamaño: el enorme. Hoy, las computadoras se producen en gran variedad de tamaños. En esta sección, trataremos las capacidades y usos de computadoras delas cuatro categorías básicas: computadoras personales, estaciones de trabajo, mainframes y supercomputadoras. MICROCOMPUTADORAS: EL ENTORNO PERSONAL. La microcomputadora, como otras computadoras, es muy flexible y se ha utilizado para todo, desde la comunicación con compañeros de trabajo hasta el control de aparatos eléctricos en el hogar. Dato que la microcomputadora o PC probablemente será el centro de su experiencia computacional, este tipo de sistema y sus aplicaciones se tratan con mayores detalles en este capítulo y los subsecuentes. A lo largo del libro, analizaremos las aplicaciones para las PCs personales y las relaciones con recursos compartidos en una red de computadoras. Recuerde que todas las computadoras realizan básicamente las mismas funciones, luego entonces, cualquier concepto que aprenda acerca de una PC puede aplicarse a los otros tipos de computadoras. Tome nota de que los términos computadora personal, PC, microcomputadora y micro se usan indistintamente a lo largo del libro, tal y como sucede en la vida real. La familia de las PCs: Las computadoras personales se producen en cuatro tamaños físicos diferentes: de bolsillo, laptop, de escritorio y de torre. 19 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Las computadoras de bolsillo son ligeras y compactas, al grado de que literalmente pueden llevarse en el bolsillo del saco o en una bolsa de mujer; en esta categoría caben las llamadas palm top y las hand held. Las laptop son un poco mayores y generalmente tienen más capacidad de cómputo de las de bolsillo; algunas de las más recientes de esta clasificación son conocidas como note books, ya que sus dimensiones físicas son parecidas a las de una libreta profesional. A todas las anteriores puede calificárseles de portátiles, pues sus tamaños y pesos (que van de unos cuantos gramos hasta alrededor de 4.5 Kg.) permiten llevarlas de un lado a otro. Además, todas ellas pueden funcionar sin estar conectadas a una fuente externa de energía eléctrica. Las computadoras de escritorio o de torre no están diseñadas para su traslado frecuente y, por ello, no se les considera portátiles. Es habitual que el monitor de las PCs de escritorio se coloque sobre el gabinete; en el caso de las PCs de torre, el gabinete está diseñado para colocarse en el piso, usualmente bajo el escritorio o junto a esté, y se parece al de una computadora de escritorio colocado en forma vertical. El poder una PC o siempre se relaciona directamente con su tamaño físico; algunas PCs portátiles son más poderosas que ciertas PCs de escritorio. Sin embargo, el usuario sacrifica cierto grado de comodidad al usar una computadora portátil. Por ejemplo, los dispositivos de entrada como el teclado y el ratón cuentan con menos espacio y ello puede dificultar su uso. Esto es particularmente cierto en las computadoras de bolsillo, en las cuales los teclados miniaturizados hacen que la introducción de datos y la interacción con la computadora sean lentas y difíciles. La pantalla de algunas computadoras portátiles es monocromática (banco y negro) y puede dificultarse la lectura bajo ciertas circunstancias de iluminación. Las computadoras portátiles ocupan menos espacio y, por ello, tienen menor capacidad de almacenamiento permanente de datos y programas. Sin embargo, la mayor preocupación de los usuarios de este tipo de computadoras, especialmente los de notebook, es la corta vida de las baterías que pueden ir desde un par de horas en los viejos modelos hasta 20 horas en la más vanguardistas y modernas baterías recargables de litio (es probable que el problema de la duración de una batería se resuelva en la siguiente generación de PCs portátiles; se espera que en el futuro cercano las baterías recargables permitan trabajar una semana completa, lo cual debe bastar incluso al empleado más exigente que trabaje fuere de la oficina). En términos portátil puede incitar al abuso. Como consumidores, suponemos que el equipaje, los automóviles o cualquier objeto que se mueva con frecuencia son indestructibles. Los fabricantes reconocen que las computadoras portátiles y sus estuches están expuestos a circunstancias potencialmente dañinas (derrames de café, almacenamiento en el portaequipajes de aviones, caídas), y de 20 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS hecho, una compañía diseño una máquina que resiste la lluvia, temperaturas extremas e incluso hongos. Se espera que el mercado para esta PC sea el ejército, policía, trabajadores de mantenimiento y otros obreros móviles. No obstante, también podría resultar útil entre los universitarios. Una innovación reciente en la PC 2 en, que puede utilizar como PC portátil y PC de escritorio. Esta PC consiste en dos partes: una PC tipo notebook completamente funcional y una estación de acoplamiento. Esta última se puede configurar con un disco de alta capacidad, varias opciones de discos intercambiables, una unidad de cinta magnética para respaldos, un monitor de tamaño normal, capacidad de memoria, y otras características que no pueden ser parte de un PC tipo notebook. La configuración de un sistema de computación consiste en sus componentes internos (por ejemplo, tamaño de la RAM y algunas capacidades especiales) y sus periféricos (impresora, varios dispositivos de almacenamiento en disco, monitores, etc.). las PC 2 en 1 tienen una configuración que permite a los usuarios disfrutar lo mejor de ambos mundos: la portatibilidad y las funciones ampliadas de los equipos para escritorio. La computadora tipo notebook, que contiene al procesador, simplemente se inserta en la estación de acoplamiento o se desconecta de ésta, conforme a las necesidades del usuario. COMPUTADORAS DE PLUMA. Es reciente el número de empleados móviles que utilizan este tipo de computadoras. Dichas máquinas utilizan plumas electrónicas en lugar de teclados. Los usuarios seleccionan las opciones, capturan datos y dibujan con la pluma. La empresa de mensajes UPS (United Parcel Service) utiliza este tipo de máquinas; los mensajeros piden al destinatario que firme la recepción los paquetes con una pluma electrónica, en una pantalla sensible al tacto. Las computadoras de pluma están destinadas a entrar en el mundo de los profesionales móviles que no pueden o que no quieren utilizar PCs portátiles provistas de teclado. Muchos profesionales no son hábiles con los teclados, además de que el ruido que se produce al escribir con el teclado de una computadora tipo notebook es simplemente impráctico. Los agentes y ajustadores se seguros que requieren trabajar en el sitio de accidentes o desastres han observado que trabajar con PCs de pluma se adecua mucho más a su entorno laboral ASISTENTES DIGITALES PERSONALES. Conocidas como PDAs, son computadoras como las palmtop y de pluma, que pueden tener muchas formas. Muchas de estas PDAs, como la Newton, de Apple Computer Company, funcionan con una pluma óptica. Pueden incluir un teléfono celular para enviar o recibir faxes, mensajes de correo electrónico y correo de voz. Las PDAs, también conocidas como comunicadores personales, pueden llevarse en el bolsillo, el bolso de mano, el portafolio o mediante correas, en diversas partes del cuerpo (la mano, el brazo, la pierna o la cintura). 21 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En general, las PDAs admiten diversos sistemas de información personal, como agenda, directorio, lista de pagos, diario, y así sucesivamente. Claro que también aceptan varias aplicaciones usadas en las PCs. Por ejemplo un distribuidor de bebidas puede equipar a sus empleados con PDAs, con lo que podrían mejorar la administración de sus territorios. Los técnicos recurren a las PDAs cuando necesitan mayor información sobre una reparación en particular. Las PDAs también pueden almacenar el equivalente a miles de páginas de manuales técnicos. Se pronostica que algún tipo de PDA podría reemplazar a los actuales libros de texto. CONFIGURACIÓN DE UNA PC: Colocar todo junto Normalmente, se llama a profesionales de la computación para que seleccionen, configuren e instalen el hardware relacionado con los mainframes. Sin embargo, en el caso de las PCs, el usuario es quien selecciona, configura e instala su propio sistema; por ello, es importante que sepa qué contiene un sistema de computación personal y cómo poner cada cosa en su lugar. La configuración de una microcomputadora y los componentes que se instalan en la PC o se conecta con ella varían mucho. Actualmente, la PC típica está configurada para ejecutar aplicaciones multimedia, en las cuales se combinan texto, audio, gráficos, video o animaciones. Las enciclopedias computarizadas son un buen ejemplo de tales aplicaciones; con ellas, pueden regresar al 20 de julio de 1969 y ver cómo el módulo Eagle del Apolo 11 alunizaba en el Mar de la Tranquilidad. Silo desea, podrá escuchar al comandante Neil Armstrog cuando, al pisar el suelo lunar, pronunció su famosa frase: ―Este es u pequeño paso para un hombre, pero es un enorme salto para la humanidad.‖ Por su puesto, la enciclopedia contiene texto de apoyo, en el que se explica que Amstrog intentó decir ―un hombre‖. Debido a que una creciente cantidad de aplicaciones se diseñan para utilizar sonido y video, muchas PCs modernas se configuran para las aplicaciones multimedia. Una microcomputadora multimedia típica incluye los siguientes componentes: 1. Microcomputadora (Unidad Central de Procesamiento) 2. Teclado. 3. Dispositivo de señalamiento (suele ser el ratón ) 4. Monitor para la presentación transitoria de la salida 5. Impresora para la salida en copia impresa 6. Disco duro de alta capacidad para almacenamiento permanente de datos y programas 7. Unidad de discos flexibles de baja capacidad, donde puede insertarse un disquete 8. Unidad de CD-ROM, donde pueden insertarse los CD-ROM, similares a los CDs de audio 9. micrófono (entrada de audio) 10. Bocinas (salida de audio) 22 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En las PCs de escritorio y de torre, estos componentes generalmente se adquieren por separado y luego se conectan. Las PCs tipo notebook suelen incluir todo, excepto la impresora, en una sola unidad. Casi todas las microcomputadoras brindan al usuario la flexibilidad de configurarlas con una gran variedad de periféricos (de entrada, salida y almacenamiento). Un sistema de sonido estereofónico nos permitirá hacer una buena analogía para ilustrar la flexibilidad en la configuración de las PCs. En tales sistemas, el amplificador es el componente central, donde se conectan los ecualizadores, grabadoras / reproductores de casetes, sintonizadores de radio, reproductoras de radio, reproductoras de CDs, bocinas, etc. Una computadora se configura al conectar dispositivos con el procesador. Aquí se muestran los dispositivos más comunes con que se configuran las PCs . Por ejemplo, si gusta de la meteorología, puede conectar con su PC dispositivos que le muestren continuamente la dirección y velocidad del viento, temperatura, humedad, precipitación pluvial y presión atmosférica. Tome en cuenta que las PCs pueden conectarse con aparatos de fax (facsímil), cámaras de video, teléfonos y otras computadoras. ESTACIONES DE TRABAJO: los bólidos de la computadora. ¿Qué se parece a una PC y no lo es? Una estación de trabajo (y es muy rápida). La velocidad o capacidad de cómputo es una de las características que distinguen a las estaciones de trabajo de las PCs. De hecho, existen quienes piensan que las estaciones de trabajo son ―PCs con potencia incrementada‖. La PC, es adecuada para el procesamiento de palabras, hojas de cálculo y juegos; pero se queda corta para los ―usuarios verdaderamente avanzados‖. Como los ingenieros que utilizan el CAD (Diseño Asistido por Computadora) o utilizan la computadora en procesos de diseño, científicos, y otros ―trituradores de Números‖. Los usuarios avanzados necesitan la velocidad de un, mainframe a una fracción de su costo. La estación de trabajo que surgió a principios de los ochenta llenó ese hueco. Hoy, las estaciones de trabajo de alto rendimiento tienen capacidad de procesamiento similar a la de mainframes que sirven a unas 2,000 terminales. Los dispositivos de entrada salida también diferencian a las estaciones de las PCs. Una estación de trabajo típica tiene monitor a color de pantalla grande que puede mostrar gráficos de alta resolución (la resolución es el grado de definición de la imagen en la pantalla del monitor). En cuanto a los dispositivos de señalamiento y dibujo, el usuario de una estación de trabajo puede usar varios dispositivos especializados que combinan la precisión de la mira de un rifle con la comodidad de operación de un ratón. Las expansiones de teclado amplían la cantidad de teclas de funciones disponibles para el usuario. Las capacidades actuales de las PCs de alto rendimiento son muy similares a las de estaciones de trabajo de bajo rendimiento. En unos cuantos años, las PCs tendrán las capacidades de una estación de trabajo. Ambos tipos de sistemas se fundirán en uno sólo conforme se reduzcan las diferencias entre ellos. El tiempo dirá si al resultado le llamaremos PC, estación de trabajo o algo más. 23 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS MAINFRAME: los caballos de tiro corporativo. Las dos computadoras multiusuario más grandes, con sus capacidades expandidas de procesamiento, proporcionan recursos de cómputo que pueden compartir muchas personas. Los mainframes generalmente son parte de sistemas de cómputo corporativos, es decir, sistemas que dan servicio a todas las entidades de una compañía; por ejemplo, la información de recursos humanos, contabilidad e inventarios que se procesa en redes basadas en un mainframe. Los usuarios se comunican con un mainframe central, conocida como host, mediante VDTs (terminales de video) o PCs. Al igual que la PC, la VDT (o simplemente terminal) cuenta con teclado para la entrada de datos y monitor para la salida. De acuerdo con el tamaño de la organización, desde una decena hasta 10,000 personas pueden compartir los recursos del sistema al interactuar con él mediante sus terminales o PCs. A fines de los sesenta todas las computadoras eran mainframe y eran muy costosas, demasiado caras, excepto para las grandes compañías que podían compararlas. Estas empresas gastaban más de 1.5 millones de dólares en adquirir un mainframe con una capacidad de cómputo mucho menor que la de las PCs modernas (las cuales cuestan 1,000 dólares). Al finalizar la década, los fabricantes introdujeron computadoras más pequeñas y accesibles para empresas de menor tamaño; este tipo de máquina se conoció como minicomputadora o ―mini‖. El termino se utilizo hasta hace poco, cuando la distinción entre las minicomputadoras y las mainframe empezó a desvanecer. Hoy, se usa muy poco; se denomina computadoras medianas a las mainframe más pequeñas. Las computadoras mainframe están diseñadas específicamente para el entorno multiusuario, a diferencia de las PCs y estaciones de trabajo, que se usan con frecuencia como computadoras autónomas. Los mainframes están orientados a aplicaciones limitadas por la entrada / salida, es decir, la cantidad de trabajo que puede realizar el sistema se restringe principalmente por las velocidades de funcionamiento de los dispositivos de almacenamiento E / S. Los trabajos de procesamiento de datos administrativos, como generar estados de cuenta mensuales de las cuentas de cheques bancarias, requieren cálculos relativamente mínimos y E / S de datos considerable. En aplicaciones limitadas E / S, la computadora a menudo tiene que esperar a que se capturen datos o a que algún dispositivo de salida complete su trabajo. Es poco probable que se encuentre con dos mainframes configuradas exactamente igual. Por ejemplo, el gobierno de un municipio muy grande genera grandes volúmenes de información para salida externa ( es decir, dirigida a personas que no son parte del propio gobierno, como los recibos para el pago de impuestos y servicios públicos) y requiere varias impresoras de alta velocidad. Encontraste, una empresa de desarrollo de software podría capturar y procesar todos los datos desde terminales, con necesidades mínimas de impresión. 24 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS SUPERCOMPUTADORAS: LOS GIGANTES DEL PROCESAMIENTO. A principios de los 70, el procesamiento de datos administrativos predominaba entre las aplicaciones de computación. Los banqueros, directores de universidades y ejecutivos de publicidad están sorprendidos por la enorme velocidad que los mainframes de millones de dólares procesaban los datos; ingenieros y científicos también estaban agradecidos por este gran adelanto tecnológico, aunque sus necesidades no se veían completamente satisfechas. Cuando los ejecutivos de negocios hablaban de capacidad limitada, los ingenieros y los científicos sabían que debían esperar mejoras futuras para utilizar las computadoras en la solución de problemas verdaderamente complejos. Los ingenieros automotrices aun no podían crear prototipos tridimensionales de los automóviles en computadoras, las físicos tampoco podían explorar las actividades de un átomo durante la exploración nuclear; las comunidades de ingenieros y científicos tenían una desesperante necesidad de maquinas mas poderosas. Respuesta a sus necesidades, los diseñadores empezaron a trabajas en lo que ahora se conoce como supercomputadoras. Las supercomputadoras se enfocan principalmente en aplicaciones limitadas por el procesador. Tales aplicaciones, muy útiles para los científicos y los ingenieros, requieren muy poca E / S. En ves de ello, el volumen de trabajo que puede llevar a cabo el sistema de computo esta restringido principalmente por la velocidad de la computadora. Encontraste, los mainframes se encuentran en aplicaciones limitadas por la E/S. Una tarea científica típica precisa la manipulación de modelos matemáticos complejos, cuya resolución con frecuencia requiere bolones de operaciones. A principios de los setentas, algunas tareas científicas complejas limitadas por el procesador saturaban durante días enteros grandes computadoras mainframe en universidades importantes, lo cual, por supuesto, era inaceptable. Se conoce a las supercomputadoras tanto por sus aplicaciones como por su velocidad y capacidad de cómputo, que puede ser hasta 10 veces la correspondiente a un mainframe grande. Las siguientes son aplicaciones representativas de supercomputadoras. 25 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Las supercomputadoras hacen posible la simulación del flujo de aire alrededor de un avión a diferentes velocidades y altitudes. Los fabricantes de automóviles usan las supercomputadoras para simular accidentes automovilísticos en las pantallas de video. (Es más barato, más revelador y más seguro que las colisiones con automóviles reales). Los meteorólogos emplean las supercomputadoras para estudias la formación de tornados. Los estudios cinematográficos de Hollywood utilizan aplicaciones avanzadas de gráficos para crear efectos especiales en películas como Parque Jurásico y comerciales de televisión. Las supercomputadoras ordenan y analizan grandes volúmenes de datos sísmicos obtenidos durante la exploración en busca de petróleo. Los físicos utilizan las supercomputadoras para estudiar los resultados de exploraciones de armas nucleares. Seria impráctico, sino imposible, usar mainframes para estas aplicaciones. Al buscar una computadora personal, esta ejecutiva pensó en la portabilidad y flexibilidad como criterios primordiales. Eligio una estación de acoplamiento para la con su notebook. Tinkpatd, de IBM. Cortesía oficina, que utiliza conjuntamente de internacional bussines machines corparatión. 26 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Esta agenda es de las muchas aplicaciones de la PC controlada con pluma óptica de este ejecutivo. Esta evaluadora de vienes raíces utiliza una computadora tipo notebook, powerbook, de apple, junto con una cámara digital (en primer plano) para preparar sus avaluos. Inserta directamente las fotografías digitales del inmueble en un documento electrónico que, luego imprime y entrega a su cliente. Estos médicos emplean una palmtop de alto rendimiento para ejecutar las mismas aplicaciones que en computadoras de escritorio. 27 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Estos estudiantes utilizan un asistente digital personal modelo newton, de apple para tomar notas para una presentación. Cada año millones de personas adquieren computadoras de escritorio para su hogar, como esta compaq presario. 28 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los trabajadores de mckesson corporation Usan PCs de muñecas. Estas se colocan en el brazo, pesan unos 400g, tienen pantalla y teclado pequeños y pueden leer códigos de barras, todo ello mientras se tienen las manos libres para cargar y mover cajas. Esta PC de torre Prosignia de Compaq, puede colocarse abajo, al lado o encima del escritorio. La impresora conectada a ella se comparte a otras PCs de esta oficina. 1.5 COMPUTADORAS DIGITALES, ANALÓGICAS E HÍBRIDAS. En la actualidad se utilizan dos tipos principales de ordenadores: analógicos y digitales. Sin embargo, el término ordenador o computadora suele utilizarse para referirse exclusivamente al tipo digital. Los ordenadores analógicos aprovechan la similitud matemática entre las interrelaciones físicas de determinados problemas y emplean circuitos electrónicos o hidráulicos para simular el problema físico. Los ordenadores digitales resuelven los problemas realizando cálculos y tratando cada número dígito por dígito. Las instalaciones que contienen elementos de ordenadores digitales y analógicos se denominan ordenadores híbridos. Por lo general se utilizan para problemas en los que hay que calcular grandes cantidades de ecuaciones complejas, conocidas como integrales de tiempo. En un ordenador digital también pueden introducirse datos en forma analógica mediante un convertidor analógico digital, y viceversa (convertidor digital a analógico). 29 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Ordenadores analógicos Son las que manejan señales eléctricas y se aplican a problemas de simulación, su programación esta plasmada en los circuitos que lo integran ejemplo: un termómetro (la temperatura), el tiempo. El ordenador analógico es un dispositivo electrónico o hidráulico diseñado para manipular la entrada de datos en términos de, por ejemplo, niveles de tensión o presiones hidráulicas, en lugar de hacerlo como datos numéricos. El dispositivo de cálculo analógico más sencillo es la regla de cálculo, que utiliza longitudes de escalas especialmente calibradas para facilitar la multiplicación, la división y otras funciones. En el típico ordenador analógico electrónico, las entradas se convierten en tensiones que pueden sumarse o multiplicarse empleando elementos de circuito de diseño especial. Las respuestas se generan continuamente para su visualización o para su conversión en otra forma deseada. Ordenadores digitales Admite su programación por medio de lenguajes que manejan un alfabeto que seria el código binario mediante el cual a través de cadenas de ceros y unos se puede representar cualquier carácter e información ejemplo: ( teclado ) almacenar datos por tiempo indefinido procesar los datos, ejecutar instrucciones actualizarlos modificarlos, reintentar operaciones lógicas, editar borrar modificar la información imprimir es lo que podemos hacer con estos datos. Todo lo que hace un ordenador digital se basa en una operación: la capacidad de determinar si un conmutador, o ‗puerta‘, está abierto o cerrado. Es decir, el ordenador puede reconocer sólo dos estados en cualquiera de sus circuitos microscópicos: abierto o cerrado, alta o baja tensión o, en el caso de números, 0 o 1. Sin embargo, es la velocidad con la cual el ordenador realiza este acto tan sencillo lo que lo convierte en una maravilla de la tecnología moderna. Las velocidades del ordenador se miden en megahercios, o millones de ciclos por segundo. Un ordenador con una velocidad de reloj de 100 MHz, velocidad bastante representativa de un microordenador o microcomputadora, es capaz de ejecutar 100 millones de operaciones discretas por segundo. Las microcomputadoras de las compañías pueden ejecutar entre 150 y 200 millones de operaciones por segundo, mientras que las supercomputadoras utilizadas en aplicaciones de investigación y de defensa alcanzan velocidades de miles de millones de ciclos por segundo. La velocidad y la potencia de cálculo de los ordenadores digitales se incrementan aún más por la cantidad de datos manipulados durante cada ciclo. Si un ordenador verifica sólo un conmutador cada vez, dicho conmutador puede representar solamente dos comandos o números. 30 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Así, ON simbolizaría una operación o un número, mientras que OFF simbolizará otra u otro. Sin embargo, al verificar grupos de conmutadores enlazados como una sola unidad, el ordenador aumenta el número de operaciones que puede reconocer en cada ciclo. Por ejemplo, un ordenador que verifica dos conmutadores cada vez, puede representar cuatro números (del 0 al 3), o bien ejecutar en cada ciclo una de las cuatro operaciones, una para cada uno de los siguientes modelos de conmutador: OFF-OFF (0), OFF-ON (1), ON-OFF (2) u ON-ON (3). En general, los ordenadores de la década de 1970 eran capaces de verificar 8 conmutadores simultáneamente; es decir, podían verificar ocho dígitos binarios, de ahí el término bit de datos en cada ciclo. Un grupo de ocho bits se denomina byte y cada uno contiene 256 configuraciones posibles de ON y OFF (o 1 y 0). Cada configuración equivale a una instrucción, a una parte de una instrucción o a un determinado tipo de dato; estos últimos pueden ser un número, un carácter o un símbolo gráfico. Por ejemplo, la configuración 11010010 puede representar datos binarios, en este caso el número decimal 210 (véase Sistemas numéricos), o bien estar indicando al ordenador que compare los datos almacenados en estos conmutadores con los datos almacenados en determinada ubicación del chip de memoria. El desarrollo de procesadores capaces de manejar simultáneamente 16, 32 y 64 bits de datos ha permitido incrementar la velocidad de los ordenadores. La colección completa de configuraciones reconocibles, es decir, la lista total de operaciones que una computadora es capaz de procesar, se denomina conjunto, o repertorio, de instrucciones. Ambos factores, el número de bits simultáneos y el tamaño de los conjuntos de instrucciones, continúa incrementándose a medida que avanza el desarrollo de los ordenadores digitales modernos. 3.- Híbrida. La combinación de las dos anteriores la entrada de datos suele estar controlada por un convertidor analógico digital la información es procesada, por un computador digital y la salida es analizada a través de un convertidor digital analógico ejemplo: cosas científicas. 31 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS CRITERIOS DE COMPARACIÓN Número de los mecanismos de cálculo ¿Se necesita almacenamiento? Posibilidades del mecanismo de cálculo Exactitud en la representación de la información Exactitud del resultado Velocidad para las diferentes operaciones Tiempo total de cálculo Flexibilidad para un nuevo planeamiento del problema Programación Campo de aplicación Posibilidades de evolución CALCULADORA ANALÓGICA Muchos (sencillos) CALCULADORA DIGITAL uno (complicado) No Adición y sustracción: Multiplicación Integración 1 a 1/10 por 100 Si Adición (sustracción, multiplicación y división se refiere a la adición) Todo lo elevado que se desea (por elección del correspondiente elevado número de cifras) resultado tanto más exacto Es prácticamente independiente del cuanto menos complicada sea problema a ser resuelto la operación Relativamente baja Muy alta Pequeño por efectuarse mucho trabajo en paralelo Se requiere de una nueva conmutación de los diferentes mecanismos de cálculo Sencilla campos específicos: por ej.: solución de ecuaciones diferenciales (problemas de oscilaciones, simulaciones de vuelo) Prácticamente ninguna Frecuentemente más elevado por tratarse de un funcionamiento en paralelo. Confeccionar nuevos programas Complicada Aplicación universal: técnico – científico económico – comercial Muy extensa: mayor velocidad Las híbridas proporcionan grandes posibilidades de evolución frente a la analogía. 32 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 1.6 CONCEPTOS DE HARWARE SOFTWARE Y FIRMWARE. HARDWARE Hardware, equipo utilizado para el funcionamiento de una computadora. El hardware se refiere a los componentes materiales de un sistema informático. La función de estos componentes suele dividirse en tres categorías principales: entrada, salida y almacenamiento. Los componentes de esas categorías están conectados a través de un conjunto de cables o circuitos llamado bus con la unidad central de proceso (CPU) del ordenador, el microprocesador que controla la computadora y le proporciona capacidad de cálculo. El soporte lógico o software, en cambio, es el conjunto de instrucciones que un ordenador emplea para manipular datos: por ejemplo, un procesador de textos o un videojuego. Estos programas suelen almacenarse y transferirse a la CPU a través del hardware de la computadora. El software también rige la forma en que se utiliza el hardware, como por ejemplo la forma de recuperar información de un dispositivo de almacenamiento. La interacción entre el hardware de entrada y de salida es controlada por un software llamado BIOS (siglas en inglés de 'sistema básico de entrada / salida'). Aunque, técnicamente, los microprocesadores todavía se consideran hardware, partes de su función también están asociadas con el software. Como los microprocesadores tienen tanto aspectos de hardware como de software, a veces se les aplica el término intermedio de microprogramación, o firmware. 33 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS HARDWARE DE ENTRADA El hardware de entrada consta de dispositivos externos —esto es, componentes situados fuera de la CPU de la computadora— que proporcionan información e instrucciones. Un lápiz óptico es un puntero con un extremo fotosensible que se emplea para dibujar directamente sobre la pantalla, o para seleccionar información en la pantalla pulsando un botón en el lápiz óptico o presionando el lápiz contra la superficie de la pantalla. El lápiz contiene sensores ópticos que identifican la parte de la pantalla por la que se está pasando. Un mouse, o ratón, es un dispositivo apuntador diseñado para ser agarrado con una mano. Cuenta en su parte inferior con un dispositivo detector (generalmente una bola) que permite al usuario controlar el movimiento de un cursor en la pantalla deslizando el mouse por una superficie plana. Para seleccionar objetos o elegir instrucciones en la pantalla, el usuario pulsa un botón del mouse. Un joystick es un dispositivo formado por una palanca que se mueve en varias direcciones y dirige un cursor u otro objeto gráfico por la pantalla de la computadora. Un teclado es un dispositivo parecido a una máquina de escribir, que permite al usuario introducir textos e instrucciones. Algunos teclados tienen teclas de función especiales o dispositivos apuntadores integrados, como trackballs (bolas para mover el cursor) o zonas sensibles al tacto que permiten que los movimientos de los dedos del usuario dirijan un cursor en la pantalla. Un digitalizador óptico emplea dispositivos fotosensibles para convertir imágenes (por ejemplo, una fotografía o un texto) en señales electrónicas que puedan ser manipuladas por la máquina. Por ejemplo, es posible digitalizar una fotografía, introducirla en una computadora e integrarla en un documento de texto creado en dicha computadora. Los dos digitalizadores más comunes son el digitalizador de campo plano (similar a una fotocopiadora de oficina) y el digitalizador manual, que se pasa manualmente sobre la imagen que se quiere procesar. Un micrófono es un dispositivo para convertir sonidos en señales que puedan ser almacenadas, manipuladas y 34 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS reproducidas por el ordenador. Un módulo de reconocimiento de voz es un dispositivo que convierte palabras habladas en información que el ordenador puede reconocer y procesar. Un módem es un dispositivo que conecta una computadora con una línea telefónica y permite intercambiar información con otro ordenador a través de dicha línea. Todos los ordenadores que envían o reciben información deben estar conectados a un módem. El módem del aparato emisor convierte la información enviada en una señal analógica que se transmite por las líneas telefónicas hasta el módem receptor, que a su vez convierte esta señal en información electrónica para el ordenador receptor. HARDWARE DE SALIDA El hardware de salida consta de dispositivos externos que transfieren información de la CPU de la computadora al usuario informático. La pantalla convierte la información generada por el ordenador en información visual. Las pantallas suelen adoptar una de las siguientes formas: un monitor de rayos catódicos o una pantalla de cristal líquido (LCD, siglas en inglés). En el monitor de rayos catódicos, semejante a un televisor, la información procedente de la CPU se representa empleando un haz de electrones que barre una superficie fosforescente que emite luz y genera imágenes. Las pantallas LCD son más planas y más pequeñas que los monitores de rayos catódicos, y se emplean frecuentemente en ordenadores portátiles. Las impresoras reciben textos e imágenes de la computadora y los imprimen en papel. Las impresoras matriciales emplean minúsculos alambres que golpean una cinta entintada formando caracteres. Las impresoras láser emplean haces de luz para trazar imágenes en un tambor que posteriormente recoge pequeñas partículas de un pigmento negro denominado tóner. El tóner se aplica sobre la hoja de papel para producir una imagen. Las impresoras de chorro de tinta lanzan gotitas de tinta sobre el papel para formar caracteres e imágenes. 35 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS HARDWARE DE ALMACENAMIENTO El hardware de almacenamiento sirve para almacenar permanentemente información y programas que el ordenador deba recuperar en algún momento. Los dos tipos principales de dispositivos de almacenamiento son las unidades de disco y la memoria. Existen varios tipos de discos: duros, flexibles, magneto-ópticos y compactos. Las unidades de disco duro almacenan información en partículas magnéticas integradas en un disco. Las unidades de disco duro, que suelen ser una parte permanente de la computadora, pueden almacenar grandes cantidades de información y recuperarla muy rápidamente. Las unidades de disco flexible también almacenan información en partículas magnéticas integradas en discos intercambiables, que de hecho pueden ser flexibles o rígidos. Los discos flexibles almacenan menos información que un disco duro, y la recuperación de la misma es muchísimo más lenta. Las unidades de disco magneto-óptico almacenan la información en discos intercambiables sensibles a la luz láser y a los campos magnéticos. Pueden almacenar tanta información como un disco duro, pero la velocidad de recuperación de la misma es algo menor. Las unidades de disco compacto, o CD-ROM, almacenan información en las cavidades grabadas en la superficie de un disco de material reflectante. La información almacenada en un CD-ROM no puede borrarse ni sustituirse por otra información. Los CD-ROM pueden almacenar aproximadamente la misma información que un disco duro, pero la velocidad de recuperación de información es menor. La memoria está formada por chips que almacenan información que la CPU necesita recuperar rápidamente. La memoria de acceso aleatorio (RAM, siglas en inglés) se emplea para almacenar la información e instrucciones que hacen funcionar los programas de la computadora. Generalmente, los programas se transfieren desde una unidad de disco a la RAM. 36 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La RAM también se conoce como memoria volátil, porque la información contenida en los chips de memoria se pierde cuando se desconecta el ordenador. La memoria de lectura exclusiva (ROM, siglas en inglés) contiene información y software cruciales que deben estar permanentemente disponibles para el funcionamiento de la computadora, por ejemplo el sistema operativo, que dirige las acciones de la máquina desde el arranque hasta la desconexión. La ROM se denomina memoria no volátil porque los chips de memoria ROM no pierden su información cuando se desconecta el ordenador. Algunos dispositivos se utilizan para varios fines diferentes. Por ejemplo, los discos flexibles también pueden emplearse como dispositivos de entrada si contienen información que el usuario informático desea utilizar y procesar. También pueden utilizarse como dispositivos de salida si el usuario quiere almacenar en ellos los resultados de su computadora. CONEXIONES DEL HARDWARE Para funcionar, el hardware necesita unas conexiones materiales que permitan a los componentes comunicarse entre sí e interaccionar. Un bus constituye un sistema común interconectado, compuesto por un grupo de cables o circuitos que coordina y transporta información entre las partes internas de la computadora. El bus de una computadora consta de dos canales: uno que la CPU emplea para localizar datos, llamado bus de direcciones, y otro que se utiliza para enviar datos a una dirección determinada, llamado bus de datos. Un bus se caracteriza por dos propiedades: la cantidad de información que puede manipular simultáneamente (la llamada 'anchura de bus') y la rapidez con que puede transferir dichos datos. Una conexión en serie es un cable o grupo de cables utilizado para transferir información entre la CPU y un dispositivo externo como un mouse, un teclado, un módem, un digitalizador y algunos tipos de impresora. Este tipo de conexión sólo transfiere un dato de cada vez, por lo que resulta lento. La ventaja de una conexión en serie es que resulta eficaz a distancias largas. Una conexión en paralelo utiliza varios grupos de cables para transferir simultáneamente más de un bloque de información. La mayoría de los digitalizadores e impresoras emplean este tipo de conexión. 37 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Las conexiones en paralelo son mucho más rápidas que las conexiones en serie, pero están limitadas a distancias menores de 3 m entre la CPU y el dispositivo externo. SOFTWARE Son las instrucciones responsables de que el hardware (la máquina) realice su tarea. Como concepto general, el software puede dividirse en varias categorías basadas en el tipo de trabajo realizado. Las dos categorías primarias de software son los sistemas operativos (software del sistema), que controlan los trabajos del ordenador o computadora, y el software de aplicación, que dirige las distintas tareas para las que se utilizan las computadoras. Por lo tanto, el software del sistema procesa tareas tan esenciales, aunque a menudo invisibles, como el mantenimiento de los archivos del disco y la administración de la pantalla, mientras que el software de aplicación lleva a cabo tareas de tratamiento de textos, gestión de bases de datos y similares. Constituyen dos categorías separadas el software de red, que permite comunicarse a grupos de usuarios, y el software de lenguaje utilizado para escribir programas. Además de estas categorías basadas en tareas, varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados programas enlatados, el software desarrollado por compañías y vendido principalmente por distribuidores, el freeware y software de dominio público, que se ofrece sin costo alguno, el shareware, que es similar al freeware, pero suele conllevar una pequeña tasa a pagar por los usuarios que lo utilicen profesionalmente y, por último, el infame vapourware, que es software que no llega a presentarse o que aparece mucho después de lo prometido. FIRMWARE Firmware, en informática, rutinas de software almacenadas en memoria de sólo lectura (ROM). A diferencia de la memoria de acceso aleatorio (RAM), la memoria de sólo lectura permanece intacta incluso cuando no existe un suministro de energía eléctrica. Las rutinas de inicio de la computadora y las instrucciones de entrada/salida de bajo nivel se almacenan como firmware. En cuanto a la complejidad que supone modificarlo, el firmware se encuentra a medio camino entre el software y el hardware. 38 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS UNIDAD II: COMPONENTES PRINCIPALES DE UNA COMPUTADORA. 2.1 ESTRUCTURA GENERAL DE UNA COMPUTADORA. En general, el diseño de un sistema informático se conoce como arquitectura y de ella depende su velocidad de proceso, su capacidad de memoria, la forma en que se administra esa memoria, el manejo de los procesos y el tipo de dispositivos que se pueden conectar ala computadora. En cuanto ala organización básica de una computadora de aplicación general, independientemente de su tamaño y capacidad, consiste en la capacidad de entrada, a través de la cual se introducen datos e instrucciones, la unidad central de proceso, donde se opera sobre los datos de acuerdo con la instrucciones dadas, y la unidad de salida, por medio de la cual se presenta la información resultante a el usuario. UNIDAD DE ENTRADA. La unidad de entrada permite la introducción de datos e instrucciones y en la mayoría de las computadoras personales tiene como elemento principal el teclado, aunque también son dispositivos de entrada muy importantes la unidad de disquetes en su modalidad de lectura, el ratón o mouse y el digitalizador. En las computadoras especiales para juegos, se usan diversos tipos de bastones y botones para introducir las ordenes del usuario, en este caso tal vez un empedernido jugador. UNIDAD CENTRAL DE PROCESO (CPU). La unidad central de proceso o CPU (del ingles Central Processing Unit) es la computadora propiamente dicha y esta diseñada a realizar las operaciones más importantes, que son el proceso y almacenamiento de datos e instrucciones. Esta formada por: UNIDAD ARITMÉTICA Y LOGICA. La unidad aritmética y lógica que se ocupa de procesar los datos. Para esto, se realizan dos tipos de operaciones, las primeras son de tipo aritmético y se basan en la gran velocidad a la que la computadora puede sumar algebraicamente. El segundo tipo se refiere a operaciones lógicas, que son la s comparaciones que servirán, entre otras cosas, para seguir un camino u otro. 39 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Es precisamente esta ultima capacidad la que hace que la computadora sea distinta de cualquiera de los dispositivos de calculo lo que la antecedieron y la que posibilita toda la conceptualización relacionada con la inteligencia artificial. En realidad, la computadora es mucho más que lo que este nombre indica, ya que va más allá de al veloz realización de cálculos y cómputos; otro de los nombres que se le ha dado, ordenador, tampoco le hace justicia ya que no solo puede ordenar elementos sino que hace mas que esto y ya emula algunos procesos de pensamiento lógico. UNIDAD DE CONTROL. La unidad de control se encarga de localizar, analizar, seleccionar y controlar el orden en que se ejecutan las instrucciones, así como de controlar el flujo de los datos. También controla las actividades de los periféricos de la computadora. MEMORIA PRINCIPAL. La memoria principal se usa para almacenar el programa, los datos y los resultados activos, es decir, aquellos que se están procesando en un momento dado. MEMORIA ROM. Los chips no volátiles siempre conservan los mismos datos; los datos en ellos no pueden cambiarse. De hecho, poner datos en forma permanente en esta clase de memoria se llama ―marcar a fuego los datos, y por la general se hace en la fabrica. Los datos en estos chips solo pueden ser leídos y usados, no pueden ser cambiados, así que la memoria se llama memoria de solo lectura ( read-only memory: ROM ). Una razón importante por lo que una computadora necesita la ROM es que así sabe que hacer cuando se conecta la energía por primera vez. Entre otras cosas, la ROM contiene un conjunto de instrucciones de inicio que aseguran que el resto d la memoria este funcionando de manera apropiada verifica los dispositivos del hardware y busca un sistema operativo en las unidades de disco de la computadora. La ROM por lo general consiste en un pequeño chip, localizado cerca de la CPU en la tarjeta madre. MEMORIA RAM. La memoria que puede ser cambiada se llama memoria de acceso aleatorio ( Random - access memory: RAM). Cuando la gente habla de la memoria de la computadora en relación con la microcomputadoras, por lo general se refiere a la RAM volátil. El propósito de la RAM es conservar programas y datos mientras están en uso. Desde el punto de vista físico, la RAM consiste de algunos chips en una pequeña tarjeta de circuitos. 40 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En las computadoras personales, los chips de RAM por lo general están montados en una pequeña tarjeta de circuitos, la cual se conecta en la tarjeta madre. Tipos de memoria RAM DRAM (Dinamic-RAM): es la original, y por lo tanto la más lenta, usada hasta la época del 386, su velocidad de refresco típica era de 80 ó 70 nanosegundos (ns), tiempo éste que tarda en vaciarse para poder dar entrada a la siguiente serie de datos. Físicamente, en forma de DIMM o de SIMM, siendo estos últimos de 30 contactos. FPM (Fast Page): más rápida que la anterior, por su estructura (el modo de Página Rápida) y por ser de 70 ó 60 ns. Usada hasta con los primeros Pentium, físicamente SIMM de 30 ó 72 contactos (los de 72 en los Pentium y algunos 486). EDO (Extended Data Output-RAM): permite introducir nuevos datos mientras los anteriores están saliendo lo que la hace un poco más rápida que la FPM. Muy común en los Pentium MMX y AMD K6, con refrescos de 70, 60 ó 50 ns. Físicamente SIMM de 72 contactos y DIMM de 168. SDRAM (Sincronic-RAM): Funciona de manera sincronizada con la velocidad de la placa base (de 50 a 66 MHz), de unos 25 a 10 ns. Físicamente solo DIMM de 168 contactos, es usada en los Pentium II de menos de 350 MHz y en los Celeron. PC100: memoria SDRAM de 100 MHz, que utilizan los AMD K6-II, III, Pentium II y micros más modernos. Ofrecen una transferencia de 8 bytes/ciclo x 100 MHz = 800 MB/seg. (0,8 GB/seg). PC133: memoria SDRAM de 133 MHz, similar a la anterior, con la diferencia de que funciona a 133 MHz en vez de 100 MHz como la PC100 (valga la redundancia). Y provee de un ancho de banda de 8 bytes/ciclo x 133 MHz = 1066 MB/seg (1,06 GB/seg). PC200: también DDR-SDRAM ó PC1600, memoria de 184 contactos que funciona en un principio a 2,5 V. Su funcionamiento consiste en enviar los datos 2 veces por cada señal de reloj, una vez en cada extremo de la señal (el ascendente y el descendente), en lugar de enviar datos sólo en la parte ascendente de la señal. Así 100 MHz físicos funcionan como si fueran 200 MHz, (de ahí el nombre PC200) y ofrece 1,6 GB de transferencia (también de ahí el nombre PC1600). Este tipo de memoria la utilizan los Athlon de AMD, y los últimos Pentium 4 aunque este ultimo con pésimo rendimiento. PC266: también DDR-SDRAM ó PC2100, y sin mucho que agregar a lo dicho anteriormente, simplemente es lo mismo con la diferencia de que en vez de 100 MHz físicos se utilizan 133 MHz obteniendo así 266 MHz y 2,1 GB de ancho de banda. PC600: o también RDRAM, de Rambus, memoria de alta gama y muy cara que utilizan los Pentium 4, se caracteriza por utilizar dos canales en vez de uno y ofrece una transferencia de 2 x 2 bytes/ciclo x 266 MHz que suman un total de 1,06 GB/seg. 41 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS PC700: también RDRAM, de Rambus, como la anterior, también utilizada por los últimos Pentium 4, que provee una transferencia de 2 x 2 bytes/ciclo x 356 MHz, lo que suman un total de 1,42 GB/seg. PC800: también RDRAM, de Rambus, la ultima de la serie y obviamente la de mejor rendimiento, ofreciendo 2 x 2 bytes/ciclo x 400 MHz que hacen un total de 1,6 GB/seg. y como utiliza dos canales, el ancho de banda total es de 3,2 GB/seg. Memoria tipo RIMM UNIDAD DE ENTRADA UNIDAD CENTRAL DE PROCESO Unidad de control Unidad Aritmética y Lógica. Memoria Principal RAM ROM Memoria Auxiliar 42 UNIDAD DE SALIDA INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Nombre Significado / Símbolo Valor Bit Binary Digit: Digito Binario 1 digito binario (0 o1) Byte b, palabra Por lo general 8 bits y equivale a un solo carácter. Kilobyte Kb 1,024 bytes Megabyte Mb 1,024 kilobytes Gigabyte Gb 1,024 megabytes Terebyte Tb 1,024 gigabytes 2.2 UNIDAD CENTRAL DE PROCESO. Unidad central de proceso o UCP (conocida por sus siglas en inglés, CPU), circuito microscópico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el proceso de datos en las computadoras. Generalmente, la CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. El microprocesador de la CPU está formado por una unidad aritmético-lógica que realiza cálculos y comparaciones, y toma decisiones lógicas (determina si una afirmación es cierta o falsa mediante las reglas del álgebra de Boole); por una serie de registros donde se almacena información temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar órdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a través de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y los dispositivos de salida (por ejemplo, un monitor o una impresora). FUNCIONAMIENTO DE LA CPU Cuando se ejecuta un programa, el registro de la CPU, llamado contador de programa, lleva la cuenta de la siguiente instrucción, para garantizar que las instrucciones se ejecuten en la secuencia adecuada. La unidad de control de la CPU coordina y temporiza las funciones de la CPU, tras lo cual recupera la siguiente instrucción desde la memoria. En una secuencia típica, la CPU localiza la instrucción en el dispositivo de almacenamiento correspondiente. La instrucción viaja por el bus desde la memoria hasta la CPU, donde se almacena en el registro de instrucción. Entretanto, el contador de programa se incrementa en uno para prepararse para la siguiente instrucción. A continuación, la instrucción actual es analizada por un descodificador, que determina lo que hará la instrucción. Cualquier dato requerido por la instrucción es 43 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS recuperado desde el dispositivo de almacenamiento correspondiente y se almacena en el registro de datos de la CPU. A continuación, la CPU ejecuta la instrucción, y los resultados se almacenan en otro registro o se copian en una dirección de memoria determinada. La CPU es el control central o ―cerebro‖ de la computadora. Sus funciones se dividen es tres categorías unidad de control unidad, aritmética lógica y memoria principal. La unidad aritmético-lógica, la unidad de control, la memoria, la entrada y la salida. La unidad aritméticológica realiza operaciones aritméticas y compara valores numéricos. La unidad de control dirige el funcionamiento de la computadora recibiendo instrucciones del usuario y transformándolas en señales eléctricas que puedan ser comprendidas por los circuitos del ordenador. La combinación de la unidad aritmético-lógica y la unidad de control se denomina unidad central de procesamiento, o CPU (siglas en inglés). 1.- Unidad de control.- Esta unidad controla las señales eléctricas que pasan en la computadora. 2.- Unidad aritmética lógica.- En esta parte se realizan todas las operaciones lógicas y aritméticas. 3.- Memoria principal.- Esta unidad sirve de almacén temporal de información, ya sea que entre el sistema, o que sea producto de cálculos internos. A demás, se usa para almacenar los programas de la computadora. 44 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS UNIDAD ARITMÉTICA Y LOGICA. La unidad aritmética y lógica que se ocupa de procesar los datos. Para esto, se realizan dos tipos de operaciones, las primeras son de tipo aritmético y se basan en la gran velocidad a la que la computadora puede sumar algebraicamente. El segundo tipo se refiere a operaciones lógicas, que son la s comparaciones que servirán, entre otras cosas, para seguir un camino u otro. Es precisamente esta ultima capacidad la que hace que la computadora sea distinta de cualquiera de los dispositivos de calculo lo que la antecedieron y la que posibilita toda la conceptualización relacionada con la inteligencia artificial. En realidad, la computadora es mucho más que lo que este nombre indica, ya que va más allá de al veloz realización de cálculos y cómputos; otro de los nombres que se le ha dado, ordenador, tampoco le hace justicia ya que no solo puede ordenar elementos sino que hace mas que esto y ya emula algunos procesos de pensamiento lógico. UNIDAD DE CONTROL. La unidad de control se encarga de localizar, analizar, seleccionar y controlar el orden en que se ejecutan las instrucciones, así como de controlar el flujo de los datos. También controla las actividades de los periféricos de la computadora. MEMORIA PRINCIPAL. La memoria principal se usa para almacenar el programa, los datos y los resultados activos, es decir, aquellos que se están procesando en un momento dado. 45 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 2.3 LA MEMORIA. La CPU contiene las instrucciones básicas necesarias para operar la computadora, pero no tiene la capacidad para almacenar programas enteros o conjuntos grandes de datos en forma permanente. La CPU contiene registros, pero estos son áreas pequeñas que pueden conservar solo unos cuantos bytes a la vez. A demás de los registros, la CPU necesita tener millones de bytes despacio donde pueda guardar los programas y datos que esta manipulando mientras esta en uso. Esta área se llama memoria. Desde el punto de vista físico, la memoria consiste de chips, ya sea en la tarjeta madre o en un pequeño tablero de circuitos conectado a la tarjeta madre. Esta memoria electrónica permite a la CPU almacenar y recuperar datos muy rápido. Hay dos tipos de memoria incorporada: permanente y no permanente. Algunos chips de memoria siempre conservan los datos que contienen, aun cuando la computadora este apagada; este tipo de memoria se llama no volátil. Otros chips – de hecho, la mayor parte de la memoria en una microcomputadora -, pierden su contenido cuando se interrumpe el suministro de energía de la computadora; estos chips tienen memoria volátil. La CPU esta conectada a dos clases de memoria: la RAM, que es volátil, y la ROM, que es no volátil. MEMORIA ROM. Loa chips no volátiles siempre conservan los mismos datos; los datos en ellos no pueden cambiarse. De hecho, poner datos en forma permanente en esta clase de memoria se llama ―marcar a fuego los datos, y por la general se hace en la fabrica. Los datos en estos chips solo pueden ser leídos y usados, no pueden ser cambiados, así que la memoria se llama memoria de solo lectura ( read-only memory: ROM ). 46 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Una razón importante por lo que una computadora necesita la ROM es que así sabe que hacer cuando se conecta la energía por primera vez. Entre otras cosas, la ROM contiene un conjunto de instrucciones de inicio que aseguran que el resto de la memoria este funcionando de manera apropiada verifica los dispositivos del hardware y busca un sistema operativo en las unidades de disco de la computadora. La ROM por lo general consiste en un pequeño chip, localizado cerca de la CPU en la tarjeta madre. MEMORIA RAM. La memoria que puede ser cambiada se llama memoria de acceso aleatorio ( Random- access memory: RAM). Cuando la gente habla de la memoria de la computadora en relación con la microcomputadoras, por lo general se refiere a la RAM volátil. El propósito de la RAM es conservar programas y datos mientras están en uso. Desde el punto de vista físico, la RAM consiste de algunos chips en una pequeña tarjeta de circuitos. En las computadoras personales, los chips de RAM por lo general están montados en una pequeña tarjeta de circuitos, la cual se conecta en la tarjeta madre. Configuración de memoria La memoria reside en la tarjeta del sistema principal del PC o en tarjetas de expansión de memoria. A continuación se describen los tipos de memoria que podría tener un PC: Memoria convencional: Hasta los primeros 640 KB de memoria de un equipo. Debido a que DOS administra por sí mismo la memoria convencional, no necesita un administrador adicional. Area de memoria superior: Son los 384 KB de memoria que se encuentran a continuación de los 640 KB de memoria convencional. El área de memoria superior es utilizada por el hardware del sistema, como por ejemplo el adaptador de vídeo. 47 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Las partes de la memoria superior que no se usan se llaman bloques de memoria superior (UMB). Los bloques UMB se podrán utilizar para ejecutar controladores de dispositivos y programas residentes en memoria. Memoria extendida (XMS): Es la memoria que se encuentra por encima de 1 MB. Esta memoria requiere un administrador de memoria extendida. Area de memoria alta (HMA): Son los primeros 64 KB de memoria extendida. Memoria expandida (EMS): Es la memoria extra (además de la convencional) que pueden utilizar algunas aplicaciones basadas en DOS. La mayoría de los equipos pueden acomodar memoria expandida. La memoria expandida se instala en una tarjeta de memoria expandida y viene incorporada en el administrador de memoria expandida. Los programas emplean memoria expandida en bloques de 64 KB dirigiéndose a una parte del área de memoria superior llamada marco de página EMS. Debido a que un administrador de memoria expandida proporciona acceso a sólo una cantidad limitada de memoria expandida a un tiempo, el uso de ésta será más lento que el de la memoria extendida. Esta estructura de memoria ha desaparecido con el DOS, ya que OS/2, Windows 95 y Windows 98 tienen un esquema de memoria plano. 2.4 DISPOSITIVOS DE ENTRADA Y SALIDA. Las computadoras serian inútiles sino proporcionaran un medio para interactuar con los usuarios. No podrían recibir instrucciones ni entregar los resultados de su trabajo. Los dispositivos de entrada aceptan datos e instrucciones del usuario; los dispositivos de salida devuelven los datos procesados a el usuario. El termino genérico dispositivo se refiere a cualquier pieza de hardware. 48 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El dispositivo de entrada más común es el teclado, el cual acepta letras, números y comandos del usuario. Además, las personas a menudo usan un ratón, el cual les permite dibujar en la pantalla y dar comandos moviendo el ratón sobre una superficie plana y oprimiendo sus botones. Algunos otros dispositivos de entrada son la traskballs, la palanca de juegos (o joystick), los escáneres, las cámaras digitales y los micrófonos. El teclado, el ratón y el micrófono se muestran a continuación. El ratón y la trackball permiten dibujar o señalar en la pantalla. La palanca de juegos es adecuada en especial para jugar juega de video de movimientos rápidos. Un escáner puede copiar una pagina impresa en la memoria de la computadora, eliminando el tiempo que consume mecanografiar estos datos. Las cámaras digitales graban imágenes en vivo que pueden verse y editarse en la computadora. Del mismo modo, conectar un micrófono o un reproductor de discos compactos a la computadora le permite agregar a esta el sonido de una voz a una pieza musical. La función de un dispositivo de salida es presentar datos procesados al usuario. Los dispositivos de salida más comunes son la pantalla de visualización, conocida como monitor, y la impresora. La computadora envía salida al monitor cuando el usuario solo necesita ver la salida. Envía salida a la impresora cuando el usuario necesita una copia en papel, también llamada ―copia impresa‖. A demás, de igual manera que las computadoras pueden aceptar sonido como entrada, pueden incluir altavoces estereofónicos como dispositivos de salida para producir sonido. El monitor, la impresora y los altavoces se muestran a continuación. 49 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS DISPOSITIVOS DE ENTRADA: TECLADO. MOUSE. SCANNER. LÁPIZ ÓPTICO. MICRÓFONO. WEB CAM. LECTOR DE CÓDIGO DE BARRAS. TABLETA DIGITALIZADORA. CD-ROM. DVD. DISQUETTE. DIGITALIZADOR. DISPOSITIVOS DE ENTRADA/SALIDA. PANTALLA AL TACTO. CAMARA DIGITAL. PALM. CELULAR. FAX-MODEM. 50 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS UNIDAD DE LECTURA / ESCRITURA DE DISQUETTE. UNIDAD DE LECTURA / ESCRITURA D CD‘S. DIADEMA DE ENTRADA / SALIDA (CON AUDIFONO Y MICROFONO INTEGRADO). UNIDAD DE CINTA MAGNETICA. UNIDAD DE LECTURA / ESCRITURA ZIP. INTERFAZ INDUSTRIAL. TARJETA DE RED. TARJETA PARA CONEXIÓN A ENTORNO CENTRALIZADA. MODEM. DISPOSITIVOS DE SALIDA. IMPRESORA. MONITOR. BOCINAS. PLOTTER (GRAFICADOR). PROYECTOR. SALIDA DE SEÑAL DE VIDEO. PANTALLA DE DESPLIEGUE VISUAL. SISTEMA GRAFICO. TRAZADOR (PLOTTER). . 51 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 2.5 CONCEPTOS ASÍNCRONO / SINCRONO. TRANSMISIÓN ASINCRONA. Hay dos formas de transmitir series de caracteres. En la transmisión asíncrona el intervalo entre dos caracteres no es fijo, aunque el tiempo entre dos bites consecutivos dentro del mismo carácter si lo es. Una persona que tecleé en una terminal de tiempo compartido no escribe a velocidad uniforme y, por tanto, el intervalo entre dos caracteres consecutivos no será constante. Esto nos conduce al problema de cómo el receptor puede reconocer el primer bit de un carácter. Un carácter que constara totalmente de ceros pasaría inadvertido. De la misma manera, un carácter consiste en un 1 seguido de 7 ceros no se podría distinguir de otro que tuviera 7 ceros seguidos de uno, ya que el receptor no tendría forma de reconocer el comienzo del carácter. Para que le receptor reconozca el comienzo de un carácter, se transmite un bit de arranque inmediatamente antes de cada carácter. Para aumentar la confiabilidad se mandan uno o dos bits de parada de tras de cada carácter. Normalmente la línea se mantiene en 1 cuando no se están transmitiendo datos, para que se pueda detectar un circuito eléctrico. Por tanto, el bit de arranque es cero. Los bits de parada son 1 para diferenciarlos del bit de arranque. Entre los bits de arranque y parada, los bits de datos se transmiten a intervalos regulares. Cuando llega el bit de arranque se arranca un cronometro en el modem receptor, permitiéndole identificar a cada bit. Las velocidades usadas en transmisión asíncrona van de 110 a 19200 bps. A 110 bps se utilizan dos bits de parada, de modo de un carácter ASCII de 7 bits más uno de paridad, uno de arranque y dos de parada suman 11 bits por carácter. A si pues, 110 bps corresponden a 10 caracteres / seg. Las velocidades más altas utilizan un solo bit de parada. Tiempo variable entre caracteres A S Y Tiempo N 52 C INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS TRANSMISIÓN SINCRONA. En transmisión sincronía se prescinde de los bits de arranque y parada, que no llevan información. El resultado es un incremento en la velocidad de la transmisión. La comunicación sincronía suele operar a velocidades de 4800 bps, 9600 bps o aun mayores . con este sistema, una vez que los modem se han sincronizado, continúan enviando caracteres para mantener la sincronización aunque no haya datos que transmitir. Cuando no hay datos se manda un carácter especial de relleno. En la transmisión sincronía, contrariamente a la asíncrona, el intervalo entre dos caracteres es siempre exactamente el mismo. La transmisión sincronía requiere que los relojes del transmisor y el receptor parezcan sincronizados largos tiempos, al contrario de lo que ocurre en la transmisión asíncrona, dado que el comienzo de cada carácter esta explícitamente indicado por el bit de arranque. El tiempo en le que se puede llevar a cabo la transmisión si necesidad de resincronizar el receptor a la fase del transmisor depende de la estabilidad de los relojes. Por lo general, los relojes son lo suficientemente estables como para permitir el envió de bloques de cientos de caracteres sin tener que sincronizarse. Estos bloques a menudo utilizan códigos de hanming u otras técnicas para detectar y corregir errores de transmisión. S Y N C H Tiempo R O N O U S Tiempo constante entre caracteres 2.6 EL MODELO DE VON NEWMAN. La idea central del modelo de computación producto de John Von Newman es almacenar las instrucciones del programa de una computadora en su propia memoria, logrando con ello que la maquina siga las pasos definidos por su programa almacenado. Una computadora de programa almacenado (que es otro nombre para una, maquina que funciona con el modelo de Von Newmam) tiene la siguiente configuración general, muy parecida, como se decía en el capitulo anterior, al diseño original de Charles Babbage, aunque no esta basada en el: 53 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS MEMORIA UNIDAD DE ENTRADA UNIDAD CENTRAL DE PROCESAMIENTO UNIDAD DE SALIDA Esquema básico de la computadora actual En este esquema se observan las relaciones estructurales que existen entre las diversas unidades que configuran la maquina, y que se emplean en prácticamente todos los modelos de computadoras. La unidad central d procesamiento (UCP, de aquí en adelante, aunque también es común referirse a ella como CPU, por sus siglas en ingles) contiene a la unidad aritmética y lógica (que hace los cálculos) y a la unidad de control. Para poder operar bajo le modelo de Jon Von Newman es necesario resolver el problema de comunicar a la computadora las operaciones por efectuar sobre los datos previamente almacenados en la memoria se abordara el problema del almacenamiento de números recordando que la función de la memoria es guardar datos. Para nuestros propósitos, la memoria será un conjunto de celdas (o casillas) con las siguientes características: a) cada celda puede contener un valor numérico, y b) cada celda tiene la propiedad de ser direccionable, es decir, se puede distinguir una de otra por medio de un número univoco que es su dirección. Esto implica que las celdas de la memoria tienen que estar organizadas de modo que faciliten la localización de cualquiera de ellas con un esfuerzo mínimo. La forma más sencilla de hacer esto es organizando las celdas en forma de vector, que no es más que un conjunto de celdas numerado secuencialmente. Como se dijo, se puede hacer referencia a una celda por medio de su dirección. Se usara un apuntador para dirigirse a una celda cualquiera. Un arreglo (que es otro nombre para un vector) en memoria se ve como sigue. 54 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Apuntador. 51 52 53 54 55 4 0 1 9 7 Cada celda tiene una dirección. La celda 51 contiene un 4. Se dispone ya de una manera de almacenar ( y recuperar ) valores en la memoria por medio de una dirección univoca. Es posible definir dos operaciones elementales sobre ella: leer el contenido de una celda y escribir un valor en una celda. Si se supone que la memoria de una computadora es una especie de almacén atendido por un empleado que seguirá nuestras órdenes, estos serán los pasos necesarios para poder efectuar las dos operaciones primitivas. Para leer: a) Decir cual celda se va a leer (esto es, proporcionar su dirección). b) Espera un tiempo fijo para que el empleado vaya a la memoria y traiga el valor depositado en esa celda ( la celda no pierde ese valor;: solo se trae una copia del dato y no el dato mismo ). c) Recoger ese dato y dar por terminada la operación de lectura. Y para escribir: Proporcionar al ayudante el dato que se desea depositar en una celda. Proporcionar la dirección de la celda sobre la que se desea hacer la escritura del dato. Esperar un tiempo fijo para que el empleado vaya a la memoria y deposite el dato en la celda designada, para dar por terminada la operación de escritura. (Si la celda en cuestión tenía ya un valor, este se pierde, pues es remplazado por el nuevo). Ahora hay que resolver el segundo problema: como almacenar las instrucciones en la memoria. Considerando lo anterior, habrá que encontrar una manera de hacer caber las instrucciones en las celdas. 55 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Esto lleva necesariamente al concepto de codificación. En efecto, si en las celdas de memoria solo caben números, entonces habrá que traducir las instrucciones a números para poder almacenarla. Para codificar las instrucciones se debe considerar cuantas y cuales son las instrucciones y que esquema de codificación se empleara. El primer factor depende fundamentalmente de la capacidad de la unidad de control del procesador central para hacer operaciones; cuanto más compleja – y costosa – sea la unidad central de procesamiento, tanto mayor será el número de instrucciones diferentes que podrá efectuar. Después se debe encontrara un código adecuado para que a cada instrucción definida corresponda uno, y solo un, valor numérico. Para este segundo caso se usara una especie de diccionario electrónico ( que forma parte de la unidad de control ), que contendrá, lo siguiente. De aquí en adelante se empleara el nombre lenguaje de maquina para referirse al código que maneja la unidad central de procesamiento de la computadora. UN PRIMER PROGRAMA. Ahora es posible escribir un primer programa completo, usando el modelo recién descrito. Se continuara con el problema de sumar 5 +7. Primer consideración: Se requieren tres casillas, dos para los datos ( 5 y 7 ) y una para depositar el resultado. Se escogen las casillas 21, 22, 23. (No hay ninguna razón especial para haberla escogido; para nuestros fines, tres casillas cualesquiera son adecuadas). Segunda consideración: Hay que definir con detalle las operaciones por efectuar y su orden, así como obtener una codificación adecuada (o sea, traducirlas a instrucciones para la maquina). Tercera consideración: Hay que introducir todos los datos (e instrucciones) en la memoria. 56 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Analizando el programa de la pagina 30 se llaga a la conclusión de que es necesario definir varias operaciones sobre al maquina. Se requiere, por lo pronto, una instrucción para llevar el contenido de una celda al acumulador (que es una celda especial, o registro, contenido en la UCP); otra para hacer la suma, y otra para devolver el contenido del acumulador a una celda de memoria 2.7 CLASIFICACIÓN DE LAS COMPUTADORAS POR SU CAPACIDAD DE PROCESO Por introducción veremos que las computadoras por su capacidad de proceso se toman criterios demasiados ambiguos para marcar los tipos; así se tiene; Las microcomputadoras o PC. Minicomputadoras. Macrocomputadoras o Mainframe. Supercomputadoras. 1.- Las microcomputadoras se utilizan para aplicaciones caseras y de oficina normalmente para una sola persona por eso se les llama personales. 2.- Las minicomputadoras emplean en aplicaciones de tamaño y medio usualmente para 30 o 40 usuarios, una escuela etc. 3.- En la categoría de las macrocomputadoras se utilizan para aplicaciones grandes tales como sistemas bancarios, administración, vuelos etc. 4.- Supercomputadoras. Se utilizan para aquellos problemas cuya solución requieren de una gran capacidad de cómputo, como una respuesta rápida por ejemplo: el control terrestre de un satélite, la administración de un rector nuclear etc. SUPERCOMPUTADORAS. Una supercomputadora es el tipo de computadora más potente y más rápida 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. 57 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Una de las llamadas supercomputadoras es capaz de procesar a la asombrosa velocidad de 600 megaflops (millones de flops). Sistemas de cómputo caracterizados por su gran tamaño y enorme velocidad de procesamiento normalmente se utilizan en aplicaciones científicas y complejas. Dado que las súper computadoras se construyen para procesar aplicaciones científicas complejas la velocidad del cálculo del sistema es de primordial importancia. Para elevar al máximo la velocidad de los cálculos cada una de estas maquinas tienen procesadores de hasta 64 bits. 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, esto 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. 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 esto 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. 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: 58 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS - 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. MACROCOMPUTADORAS o MAINFRAMES. 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. 59 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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, esto para ocultar los cientos de cables de los periféricos, y su temperatura tiene que estar controlada. En los 60s las computadoras principales vienen de arriba hacia abajo operación muy especial estas se les puede definir como computadoras conectadas en terminal llamada también computadora principal‖ después como macrocomputadoras es la que le daba servicio a varias terminales computadora grande con capacidades superiores a las demás llega hacer igual a una macro o supercomputadoras. MICROCOMPUTADORA. Las microcomputadoras que se diseñaban con microprocesadores con base en circuitos de alta densidad son extremadamente pequeñas y baratas un microprocesador y elementos de almacenamiento y entrada /salida asociados. Una microprocesadora se convierte en una microcomputadora al agregársele una unidad de memoria mas unos circuitos de entrada/salida (y /o) llamados ports. La unidad de memoria contiene dos tipos de almacenadoras, fabricadas con material semiconductor memoria de libre acceso (RAM) y memoria de lectura sola (ROM). La primera es una memoria de alta velocidad en donde el sistema de la computadora lo mismo pude almacenar (escribir) que facilitar (leer) información fundamentalmente el sistema RAM se utiliza para almacenar sobre 64.000 bytes. 60 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS UNIDAD III: CONCEPTOS DE PROGRAMACIÓN. 3.1 COMO DETERMINAR QUE UN PROBLEMA SEA RESUELTO POR COMPUTADORA. El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. Los pasos a seguir son: 1. Planteamiento del problema 2. Análisis del problema 3. Diseño del algoritmo 4. Codificación 5. Compilación y ejecución 6. Verificación 7. Depuración 8. Documentación 1. Planteamiento del problema: este proceso inicia cuando surge la necesidad de resolver algún problema mediante la computadora. Se debe identificar el problema y comprender la utilidad de la solución que se alcance. Es necesario tener una visión general del problema estableciendo las condiciones iniciales y los límites del problema. Dónde empieza y dónde termina. 2. Análisis del problema: es necesario entender en detalle el problema en cuestión, para obtener una radiografía del mismo en términos de los datos disponibles como materia prima, y definir el proceso necesario para convertir los datos en la información requerida. 3. Diseño del algoritmo: durante este paso se procede a diseñar la lógica para la solución al problema a través del siguiente procedimiento: 61 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS a) Elaborar el algoritmo. Se diseña el algoritmo de la solución al problema; se estructura la secuencia lógica y cronológica de los pasos que la computadora deberá seguir, alguna técnica convencional como el diagrama de flujo, el pseudocódigo y los diagramas de Warnier. b) Prueba de escritorio. Se simula el funcionamiento del algoritmo con datos propios respecto al problema, y se comprueban a mano los resultados a fin de validar la correcta operación del algoritmo. 4. Codificación: en este paso se procede a codificar el programa en el lenguaje que se vaya a utilizar. Este proceso es sencillo dado que ya tenemos diseñado el programa, sólo nos concretamos a convertir las acciones del algoritmo en instrucciones de computadora. 5. Compilación y ejecución: El programa codificado debe compilarse, probarse y depurarse; es decir se ejecuta para verificar su buen funcionamiento y se hacen las correcciones o los ajustes pertinentes hasta que quede correcto. 6. Verificación: aquí se verifica si tiene un buen funcionamiento, en caso de que no sea así se hacen las correcciones necesarias para que quede correcto. 7. Depuración: una vez que el programa ha sido introducido a la computadora es probable que se encuentre por lo menos un error de sintaxis o un error lógico. Al proceso de eliminar estos errores se le conoce como proceso de depuración. 8. Documentación: durante la vida del sistema, los procedimientos y requerimientos de programación cambian. Para mantenerse al tanto de estos cambios, los programas deben actualizarse periódicamente, o mantenerse. El mantenimiento de un programa puede ser difícil si la documentación no está completa o actualizada. La buena documentación en el presente ayuda a desarrollar hábitos de un buen trabajo. La documentación se divide en tres partes: Documentación Interna: son los comentarios o mensajes que se añaden al código fuente para hacer más claro el entendimiento de un proceso. Documentación Externa: Se define en un documento escrito los siguientes puntos: Descripción del Problema, Nombre del Autor, Algoritmo (diagrama de flujo o pseudocódigo), Diccionario de Datos, Código Fuente (programa). Manual del Usuario: describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado. 62 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 3.2 SOLUCIONES LÓGICAS ALGORITMO. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe ALkhÔwarÎzmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos. Características de un algoritmo. Preciso(indicar el orden de realización en cada paso) Definido(si se sigue dos veces, obtiene el mismo resultado cada vez) Finito(tiene fin; un número determinado de pasos) Para la construcción de un algoritmo se realizan tres módulos: 1. ENTRADA DE DATOS. Acción u operación que permite el ingreso de los datos del problema. 2. PROCESAMIENTO DE DATOS. Operación u operaciones secuénciales, lógicas y organizadas, cuyo objetivo es obtener la solución al problema al procesar los datos de entrada. 3. SALIDA DE RESULTADOS. Operación o conjunto de operaciones que permiten comunicar al exterior los resultados alcanzados. Ejemplo: ENTRADA DE DATOS Estado de la puerta = cerrado 63 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS PROCESAMIENTO DE DATOS Introducir la llave Giro de la llave a la derecha Le damos vuelta Se abre la puerta SALIDA DE DATOS Estado de la puerta abierta. Por otra parte la programación estructurada define la solución a cualquier problema utilizando las siguientes estructuras: secuencial, selectiva y repetitiva. ESTRUCTURA SECUENCIAL Se utiliza cuando queremos mostrar que una acción le sigue otra y así sucesivamente, hasta el final del proceso. Para indicar el proceso utilizamos el rectángulo y en la parte interna la descripción de la acción. ESTRUCTURA SELECTIVA Se utiliza cuando se requiere tomar una decisión lógica, por ello también se le llama estructura de decisión o alternativa. En estas estructuras se evalúa una condición utilizando expresiones lógicas y dependiendo del resultado de ésta, se realiza una opción u otra. Su representación gráfica se expresa utilizando un rombo. ESTRUCTURA REPETITIVA Permite repetir una o varias acciones un número determinado de veces. A las estructuras que repiten una secuencia de instrucciones, un número determinado de veces, se denomina bucles, y se les llama iteración al hecho de repetir la ejecución de una secuencia de acciones. 3.3 DIAGRAMAS LÓGICOS. DIAGRAMA DE FLUJO Es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir para producir resultados. 64 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI). SÍMBOLO DESCRIPCIÓN Indica el inicio y el final de nuestro diagrama de flujo Indica la entrada y salida de datos. Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de una operación aritmética. Símbolo de decisión indica la realización de una comparación de valores. Se utiliza para representar los subprogramas. Conector dentro de página. Representa la continuidad del diagrama dentro de la misma página. Conector fuera de página. Representa la continuidad del diagrama en otra página. Indica la salida de información por impresora. Indica la salida de información en la pantalla o monitor. Líneas de flujo o dirección. Indican la secuencia en que se realizan las operaciones. 65 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Recomendaciones para el diseño de Diagramas de Flujo Se deben se usar solamente líneas de flujos horizontales y/o verticales. Se debe evitar el cruce de líneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar líneas de flujo son conectar. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras. Ejemplo: Elaborar el diagrama e flujo de la suma de dos números. INICIO A,B C=A+B C FIN 3.4 LENGUAJES DE PROGRAMCIÓN. Introducción Las personas piensan y calculan simbólicamente con palabras e ideas, mientras que las computadoras calculan eléctricamente por medio de pulsos de corrientes y voltaje que representan números. Por tal motivo, es necesario contar con algún medio que permita entablar la comunicación entre ambos. 66 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Dicho medio se conoce como ―lenguajes de programación‖, que son muy similares a los lenguajes que manejamos en nuestra vida diaria, formados por los mismos conceptos elementales. La comunicación con la computadora es por medio de un conjunto de instrucciones preparadas por el usuario, con las cuales realizará el trabajo necesario para resolver un problema determinado. Este conjunto de instrucciones debe estar bien definidas y en ningún momento sujetas a error o ambigüedad. La computadora sólo hará lo que se le indique, pues en ningún momento podrá razonar o resolver el problema. Un lenguaje de computación está formado por una secuencia de instrucciones, que se ejecutan una después de otra. Estas instrucciones, también llamadas enunciados, se ejecutan a menos que el orden de la ejecución sea alterado por una ―condición a prueba o una instrucción de ramificación‖. Las instrucciones deben darse en un lenguaje de programación, es decir, en una determinada configuración de información digital binaria. En los primeros computadores, la programación era una tarea difícil y laboriosa ya que los conmutadores ON-OFF de las válvulas de vacío debían configurarse a mano. Programar tareas tan sencillas como ordenar una lista de nombres requería varios días de trabajo de equipos de programadores. Desde entonces se han inventado varios lenguajes informáticos, algunos orientados hacia funciones específicas y otros centrados en la facilidad de uso. PROGRAMA: Conjunto de instrucciones que deben ser ejecutadas por la computadora para resolver un problema. TIPOS DE PROGRAMAS: 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: Aquel programa que se encuentra en lenguaje máquina y que ya es ejecutable por esta. 67 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS CONCEPTO DE LENGUAJES DE PROGRAMACIÓN: Los lenguajes de programación son conjuntos de palabras y de reglas de sintaxis para facilitar la comunicación con la computadora. Los lenguajes de programación se pueden clasificar, en función de que se parezcan más al lenguaje máquina o a los lenguajes humanos en dos tipos: lenguajes de alto nivel y lenguajes bajo nivel. LENGUAJE MÁQUINA. Los lenguajes máquina son aquellos cuyas instrucciones son directamente entendibles por el ordenador sin la necesidad de traducción alguna. Sus instrucciones no son más que cadenas de ceros y unos (bits). Estas especifican la operación a realizar, los registros del procesador y celdas de memoria implicados, etc. Obviamente, este tipo de lenguajes serán fáciles de comprender para un ordenador pero muy difíciles para el hombre. Esta razón nos lleva a buscar otro lenguaje para comunicarnos con el ordenador. LENGUAJES DE BAJO NIVEL El lenguaje de bajo nivel más característico es el ensamblador. Consta de una serie de términos extraídos del inglés. Los programas que traducen dichas instrucciones a lenguaje máquina se llaman programas ensambladores. 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. LENGUAJE ENSAMBLADOR. Es un lenguaje de programación de bajo nivel, en que las instrucciones y las direcciones de memoria están representados por símbolos. Permite la utilización de nombres simbólicos en lugar de ceros y unos. De esta manera se podrá utilizar la palabra "suma" para indicarle a la computadora que se requiere sumar dos números. Este lenguaje es utilizado raramente para el desarrollo de software de aplicación y con frecuencia es llamado lenguaje de segunda generación. LENGUAJES DE ALTO NIVEL Este tipo de lenguajes son más parecidos al lenguaje humano. Los programas escritos en un lenguaje de alto nivel, como Cobol o Clipper, tienen una serie de ventajas para los programadores: 68 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Son mucho más cortos, ya que una vez confeccionado el programa, cada una de sus instrucciones se traduce y equivale a múltiples instrucciones de lenguaje máquina. Se pueden utilizar en muchos tipos de computadoras diferentes. No es necesario conocer a fondo la arquitectura de la computadora para poder utilizarlos. 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 denominados archivos ejecutables puesto que, al teclear su nombre (o hacer clic sobre el icono que los identifica) se logra 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. 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. También se le conoce como lenguaje de tercera generación. Generalmente se utiliza para el desarrollo de programas o software de aplicación. Su principal característica es que una instrucción codificada en lenguaje de alto nivel equivale a varias instrucciones en lenguaje maquina o ensamblador. 69 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Además, las personas pueden comprender mejor las instrucciones, y esto hace que se reduzcan el tiempo y el costo para realizar programas. Los programas escritos en este lenguaje requieren su traducción o compilación a lenguaje maquinal a través de unos programas denominados compiladores. Ejemplos de estos lenguajes son PASCAL, C, LOGO, BASIC, COBOL entre otros. LENGUAJE DE CUARTA GENERACIÓN (4GL). Es el lenguaje de muy alto nivel cuya característica principal es permitir a los usuarios con poco conocimiento sobre computación y lenguajes de programación, desarrollar sus propios programas de aplicación sin la participación operativa del personal del departamento de informática. Este tipo de programas o sistemas se conoce como cómputo de usuario final. De manera común son lenguajes que permiten la interacción directa del usuario en funciones de consulta y actualización de información. 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ían 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. 70 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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 "Sub-Clases" 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 (Programación Orientada a Objetos), 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 Estos son los lenguajes más representativos y utilizados dadas sus características de sintaxis, poder de sus instrucciones y velocidad de proceso: LENGUAJES DE PROGRAMACION: FLASH JAVA SOAP HTML DELPHI JAVA SCRIPT XML LENGUAJE C++ ADA, que debe su nombre a Ada Lovelace, asistente de Babbage en el desarrollo de la máquina analítica. Definitivamente se trata de un lenguaje de características avanzadas, que incluye manejo dinámico de memoria y recursividad, así como facilidades integradas para manejo de programación concurrente, pero la 71 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS realidad es que no a tenido la difusión prevista, y es solo uno más en la gran familia de lenguajes de programación, a causado una gran polémica en términos académicos, por que se discute que el lenguaje es demasiado grande y poco elegante, que la tendencia moderna en lenguajes de programación es que sean pequeños y funcionales. ALGOL, poderoso lenguaje de aplicaciones científicas que surge en la década de 1960. Este lenguaje fue el primero con sintaxis definida de manera formal y matemática, y puede ser considerado como el iniciador de la familia de lenguajes de programación estructurada. Un programa en ALGOL consiste en módulos conocidos como: procedures, que pueden estar anidados y pueden ser llamados recursivamente. BASIC, lenguaje dedicado fundamentalmente a la programación de máquinas pequeñas. Fue diseñado en 1964, es casi el único de los lenguajes de programación no estandarizado. En programa en BASIC consta de un conjunto de renglones numerados (aunque hay versiones que ya o requieren esto) se puede llamar a subrutinas. C, lenguaje especializado en la programación de sistemas. Diseñado a principio de la década de 1970, se emplea para escribir compiladores y sistemas operativos; su manejo de memoria es dinámico. COBOL, uno de los primeros lenguajes de programación, fue diseñado en 1958 dentro de un comité norteamericano llamado CODASYL, y se sigue usando mucho para aplicaciones comerciales y administrativas. Un programa un COBOL consta de cuatro ―divisiones‖ (identification, environment data y procedure), que tienen que ser especificadas siempre. Los programas tienden a ser grandes y están llenos de palabras y frases cortas en inglés, sin bastante legibles, su manejo de memoria es estático. FORTRAN, fue el primer lenguaje de programación diseñado en 1957 por IBM, y su principal aplicación es en las áreas de ingeniería. Un programa en FORTRAN puede estar constituido por un programa principal varias subrutinas, su manejo de memoria es estático. PASCAL, es un lenguaje de programación muy popular, sobre todo para máquinas pequeñas; consiste en módulo que pueden ser anidados y llamados recursivamente, permite la definición de estructuras de datos que van más allá de las tradicionales su presta para la programación estructurada. PL / I, es un lenguaje de programación muy amplio y extenso que IBM propuso en 1965 como alternativa para trabajos científicos y comerciales. Un programa en PL / I consiste en un procedimiento principal, dentro 72 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS del cual se pueden anidar bloques, su manejo de memoria puede ser estático o totalmente dinámico y recursivo. RPG, es un lenguaje diseñado por IBM para producir como su nombre lo indica informes administrativos y comerciales. Los programas en RPG no son legibles ni claros y tienen que ser codificados en hojas especiales. APL, es un poderoso lenguaje de aplicación especial y matemática, usado sobre todo en máquinas IBM y que data de 1961. El lenguaje esta basado en una unificación y extensión consistente de las notaciones matemáticas existentes, y en una extensión sistemática de un pequeño conjunto de operaciones matemáticas y lógicas sobre vectores, matrices y árboles. LISP, es un lenguaje muy usado en la comunidad académica dedicada a la investigación en inteligencia artificial, maneja en forma dinámica conjuntos llamados listas, por medio de elementos primitivos llamados átomos. Fue diseñado a principios de la década de 1960. LOGO, es un lenguaje basado en los mismos principios de LISP, pero expresados en otra forma, es mucho más fácil de manejar aunque menos poderoso. PROLOG, este lenguaje fue creado en 1972, a sido adoptado como vehículo de creación de los sistemas y programas para manejo de inteligencia artificial. FORTH, es un lenguaje para microcomputadoras que intenta combinar características del lenguaje ensamblador con una metodología de diseño de software conocida como ―código hilvanado‖. 3.5 LENGUAJE MÁQUINA. El lenguaje máquina es un grupo de instrucciones que son identificadas directamente por la computadora y le permiten realizar un proceso. El programa que se almacena en la memoria principal y que permite operar a la computadora está integrado por instrucciones legibles para está. Es el 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 intérpretes y compiladores. Fue utilizado en las primeras computadoras. Es un lenguaje de programación que trabaja sin símbolos y hace referencia a las direcciones reales de la memoria y a los códigos binarios de las instrucciones Este lenguaje interactúa con el hardware y constituyen el nivel más bajo de programación. 73 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Programar en lenguaje de máquina resulta sumamente complicado ya que es necesario señalar en forma explicita: Direcciones de memoria donde debe cargarse cada instrucción del programa. Direcciones de memoria donde deben reservarse registros para operaciones de entrada/salida. Direcciones donde deben almacenarse los datos constantes y variables que usará el programa. Consiste en cadenas de números binarios que es lo único que el CPU entiende directamente. Una instrucción preparada en cualquier lenguaje máquina tiene al menos dos partes: Comando operación: le dice a la computadora cual es la función que realizará. Cada componente tiene un código de operación ―op code‖ para cada una de sus funciones. Operando: le dice a la computadora donde encontrar o almacenar los datos de las instrucciones que vayan a ser manejadas. Asimismo, un lenguaje de máquina compuesto de un número limitado de ―palabras‖ se desarrolla con base en los bits de la computadora. Estas palabras, a las que se les llama conjunto de instrucciones de la computadora, permiten al usuario instruir y manipular a la computadora para formar tareas. Aunque el lenguaje de máquina permite instruir a la computadora para que resuelva nuestros problemas, es mucho menos eficiente y más difícil de manejar en la comunicación humana. Una simple instrucción en el lenguaje humano, requiere de muchas palabras en lenguaje de máquina. Es el lenguaje propio de la computadora, basado en el sistema binario, o código máquina, resulta difícil de utilizar para las personas. El programador debe introducir todos y cada uno de los comandos y datos en forma binaria, y una operación sencilla como comparar el contenido de un registro con los datos situados en una ubicación del chip de memoria puede tener el siguiente formato: 11001010 00010111 11110101 00101011. La programación en lenguaje máquina es una tarea tan tediosa y consume tanto tiempo que muy raras veces lo que se ahorra en la ejecución del programa justifica los días o semanas que se han necesitado para escribir el mismo. Es utilizado muy raramente para el desarrollo de programas de aplicación. También es conocido como lenguaje de primera generación. Todas las instrucciones y datos se especifican en ceros y unos (binario). En la actualidad es poco frecuente su uso. 74 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los lenguajes maquina son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la UCP pueda comprender y ejecutar el programa. Las instrucciones en lenguaje máquina se expresan en términos de la unidad de memoria mas pequeña, el bit (digito binario 0 o bien 1), en esencia una secuencia de bits que especifican la operación y las celdas de memoria implicadas en una operación. Una serie de instrucciones en lenguaje máquina son: 0010 0000 0000 1001 1001 0001 1001 1110 Como se puede observar, estas instrucciones serán fáciles de leer por la computadora y difíciles por un programador, y viceversa. Esta razón hace difícil escribir programas en código o lenguaje máquina y requiere buscar otro lenguaje para comunicarse con la computadora, pero que sea más fácil leer o escribir y leer por el programador. Para evitar la tediosa tarea de escribir programas en lenguaje máquina se ha diseñado otros lenguajes de programación que facilitan la escritura y posterior ejecución de los programas. Estos programas son los de bajo y alto nivel. La programación en lenguaje máquina es difícil, por ello se necesitan lenguajes que permitan simplificar este proceso. Los lenguajes de bajo nivel han sido diseñados para ese fin. Dirección Contenido 0100 0010 0000 0000 0100 0101 0100 0000 0000 0101 0102 0011 0000 0000 0110 . . . . . . . . . . Instrucciones en lenguaje máquina 75 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 3.6 ¿QUÉ ES UN TRADUCTOR DE LENGUAJES? Se han desarrollado algunos lenguajes de alto nivel para facilitar la programación a los usuarios. Sin embargo, antes de que se ejecuten los programas en estos lenguajes, se deben traducir a lenguaje de máquina, que la computadora entiende. El software de sistemas conocido como traductor de lenguajes realiza esta tarea. Existen dos tipos comunes de traductores de lenguajes en las computadoras personales: los intérpretes y los compiladores. Compilador Es un programa que lee el código escrito en un lenguaje (lenguaje origen), y lo traduce o traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo). Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa. Programa Fuente Compilador Programa Objeto La compilación de programas. Un compilador es un programa que traduce los programas fuente escritos en lenguajes de alto nivel al lenguaje máquina. Los programas escritos en lenguajes de alto nivel se llaman programas fuente y el programa traducido programa objeto o código objeto. El compilador traduce sentencia a sentencia el programa fuente. Los lenguajes compiladores típicos son: C, C++, PASCAL, FORTRAN, COBOL. La compilación y sus fases. La compilación es el proceso de traducción de programas fuente a programas objeto. El programa objeto obtenido de la compilación a sido traducido normalmente a código máquina. 76 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable. Interprete Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. Los interpretes en lugar de producir un Lenguaje objetivo, como en los compiladores, lo que hacen es realizar la operación que debería realizar el Lenguaje origen. Un intérprete lee el código como esta escrito y luego lo convierte en acciones, es decir, lo ejecuta en ese instante. Los programas interpretes clásicos son: Basic, Q Basic y QuickBASIC. La siguiente figura muestra el funcionamiento de un intérprete. Programa Fuente Interprete Traducción y ejecución línea a línea 77 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Diferencia entre Compilador e Intérprete Los compiladores difieren de los intérpretes en varios aspectos: Un programa que ha sido compilado puede correr por si solo, pues en el proceso de compilación se lo transformo en otro lenguaje (lenguaje máquina). Un intérprete traduce el programa cuando lo lee, convirtiendo el código del programa directamente en acciones. La ventaja del intérprete es que dado cualquier programa se puede interpretarlo en cualquier plataforma (sistema operativo), en cambio el archivo generado por el compilador solo funciona en la plataforma en donde se lo ha creado. Pero por otro lado un archivo compilado puede ser distribuido fácilmente conociendo la plataforma, mientras que un archivo interpretado no funciona si no se tiene el intérprete. Hablando de la velocidad de ejecución un archivo compilado es de 10 a 20 veces más rápido que un archivo interpretado. 3.7 ELEMENTOS DE PROGRAMACIÓN. Los principales elementos de la programación son: Algoritmo, Pseudocódigo, Diagrama de Flujo. Algoritmo: Es un procedimiento paso a paso para resolver un problema en una cantidad finita de tiempo. Cada paso debe requerir sólo un tiempo finito y recurso de cómputo finito Debe realizar una tarea específica. Debe ser claro y inequívoco. Debe definir la secuencia de pasos lógicos requeridos para llevar a cabo la tarea, es decir, debe especificar los pasos en orden. El número de pasos debe ser finito Para la construcción de un algoritmo se realizan tres módulos: 1. ENTRADA DE DATOS. Acción u operación que permite el ingreso de los datos del problema. 2. PROCESAMIENTO DE DATOS. Operación u operaciones secuénciales, lógicas y organizadas, cuyo objetivo es obtener la solución al problema al procesar los datos de entrada. 78 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 3. SALIDA DE RESULTADOS. Operación o conjunto de operaciones que permiten comunicar al exterior los resultados alcanzados. Ejemplo: El algoritmo tendrá como objetivo especifico realizar la suma de dos números. Inicio Introducir el primer número. Introducir el segundo número. Realizar la suma del primer número con el segundo número. Imprimir resultado. Fin. Pseudocódigo Es un lenguaje de especificación, la descripción de algoritmos y diagramas de flujo, permitiendo pasar a la traducción de un lenguaje de programación. Esta compuesto de frases escritas en lenguaje natural. En la conversión de los diagramas de flujo a pseudocódigos, es fundamental el uso de las llamadas estructuras de control o algorítmicas. El pseudocódigo traduce todos los símbolos y funciones representados en el diagrama de flujo, para ser traducidos generalmente en un lenguaje de alto nivel. Con base en esto tenemos que: El pseudocódigo es compacto Puede modificarse fácilmente. Se utilizan palabras claves en mayúsculas en español. Se construye de manera estructurada (de arriba hacia abajo). Ejemplo: Pseudocódigo de la suma de dos números. Comienza Lee (N1) Lee (N2) Suma = N1 + N2 Escribe (suma) Termina. 79 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Diagrama de Flujo. Es una de las técnicas de representación gráfica de algoritmos más antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de lenguajes de programación estructurados. Un diagrama de flujo es un diagrama que utiliza los símbolos estándar mostrados a continuación: TERMINAL O INICIAL PROCESO ENTRADA/SALIDA DE DATOS CONECTOR REDONDO ESTE ES INTERNO Y VA ADENTRO DE UNA PAG. PROCESO DEFINIDO. ENTRADA MANUAL MANUAL DE OPERACIÓN. DECISIÓN FLECHAS DE DIRECCION DEL DIAGRAMA. Un diagrama de flujo tienen los pasos a seguir de un algoritmo escrito dentro de estos símbolos unidos por flechas denominadas líneas de flujo que indican la secuencia en que se deben ejecutar. 80 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS INICIO N1, N2 S = N1 + N2 S FIN 3.8 PROGRAMACIÓN ESTRUCTURADA. La programación estructurada permite la escritura de programas fáciles de leer y modificar. En un programa estructurado el flujo lógico se gobierna por las estructuras de control básicas: - secuénciales, repetitivas y selectivas. Se refiere a un conjunto de técnicas que han ido evolucionando. Estas técnicas aumentan considerablemente la productividad del programa reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control que minimizan la complejidad de los problemas y que reducen los errores. Esta incorpora: diseño descendente, recursos abstractos y estructuras básicas. Recursos abstractos: Consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples capaz de ejecutarlas. Diseño descendente: Consiste en efectuar una relación entre las sucesivas etapas de estructuración. Es decir, se descompone el problema en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura desde dos puntos de vista: ¿lo que hace? y ¿cómo lo hace? Los objetivos de la programación estructurada son: Establecer procesos de diseños Establecer lógicas sencillas y comprensibles 81 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Realizar estructuras fáciles de modificar Elaborar objetivo del programa que resuelva las necesidades Realizar programas de alta calidad Los elementos que forman la programación estructurada: MODULARIDAD ESTRUCTURAS DE CONTROL PROGRAMACIÓN ESTRUCTURADA ESTRUCTURAS DE DATOS DISEÑO ASCEDENTE DESEÑO DESCENDENTE DISEÑO ESTRUCTURADO Define que un programa puede ser dividido en módulos para lograr mejor calidad dentro de la programación. Se le llama programación modular. Un módulo es una secuencia de instrucciones que se agrupan con un objetivo único: desarrollar una tarea específica. Modularidad: es un método que tiene la función de dividir un sistema o programa de mayor tamaño en pequeñas unidades o subrutinas que desarrollen procesos individuales para lograr la resolución de problemas. El diseño modular se fundamenta en la siguiente estructura: Cohesión. Hace referencia al grado de integración de las instrucciones de un módulo. Acoplamiento. Muestra y precisa el grado de relación entre módulos. Este diseño permite que los sistemas tengan más lógica y sean más comprensibles manejando solamente los siguientes parámetros: Datos de entrada Datos de salida 82 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Proceso que realiza el módulo. Entre más cohesión y menor acoplamiento un módulo estará mejor construido. La definición de cada módulo dentro de un programa o sistema debe de tener las siguientes características: Nombre asignado al módulo Proceso que realiza el módulo Comunicación que tiene con otros módulos. ESTRUCTURAS DE CONTROL Permiten establecer el flujo de la información, a través de condiciones y acciones que al ejecutarse, nos dan un resultado. La programación estructurada define la solución a cualquier problema utilizando las siguientes estructuras: secuencial, selectiva y repetitiva. SECUENCIAL: Ejecuta los procesos en orden jerárquico, uno tras otro, cada proceso se define como el conjunto de instrucciones unidos por la estructura dada. A B C SELECTIVA: Ejecuta un proceso dependiendo del resultado de la condición, si la condición fue verdadera ejecuta el proceso 1, pero si el valor de la condición es falso, ejecuta el proceso 2, uniéndose posteriormente en un proceso 3. a) Si entonces o alternativa simple. Se ejecuta una acción cuando se cumple una condición. Esta estructura en inglés se conoce como (if then), su representación es: IF – THEN 83 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS F V F V ? ? E D b) Si – entonces – sino o alternativa doble Se permite elegir entre dos opciones o alternativas posibles, de tal forma que si el resultado es verdadero se sigue por el camino correspondiente y se procede a ejecutar las acciones, pero si el resultado de la condición es falso entonces se sigue el otro camino y se procede a ejecutar las acciones. Esta estructura en inglés se conoce como (if then else). IF – THEN – ELSE ? C D c) Según _ sea, caso de o alternativa múltiple Permite que el flujo del diagrama se divida por varios caminos en el punto de la toma de decisión, dependiendo el valor d que tome el resultado es la acción que se ejecutará. Si el resultado toma el valor de 1, se ejecutará la acción 1, si el resultado toma el valor n, se ejecutará la acción n. 84 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS CASE (EN CASO DE) ? C R D ESTRUCTURA REPETITIVA Permite repetir una o varias acciones un número determinado de veces. A las estructuras que repiten una secuencia de instrucciones, un número determinado de veces, se denomina bucles, y se les llama iteración al hecho de repetir la ejecución de una secuencia de acciones. Este tipo de estructura esta conformada en tres partes: a) Estructura mientras (en inglés while o do while). Es aquella que se ejecuta mientras la condición evaluada resulte verdadera, esta estructura es adecuada para utilizar un ciclo que se aplica un número determinado de veces, repitiendo una operación, acción o tarea. Si la condición es falsa de entrada, no se realizará ninguna de las acciones asignadas. b) Estructura repetir (en inglés repeat) Se ejecuta un número definido de veces y se ejecuta hasta que se cumpla una condición determinada, que se comprueba al final del bucle. En esta estructura el cuerpo del bucle se ejecuta al menos una vez. Cuando la instrucción repetir se ejecuta, se hace la ejecución del bucle y se evalúa la expresión booleana resultante de la condición, si es falsa el cuerpo del bucle se repite y la expresión se vuelve a evaluar, después de cada iteración del cuerpo del bucle, se evalúa, si resulta verdadera el bucle termina y pasa a la siguiente instrucción. 85 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS WHILE DO REPEAT UNTIL F F ? ? c) Estructura desde / para (en inglés for) Se utiliza cuando se conoce el número de veces que se desea ejecutar las acciones de un bucle en el que el número de interacciones es fijo. Comienza con un valor inicial índice (contador inicial) y las acciones especificadas se ejecutan si el valor inicial es menor que el valor final (contador final). La variable índice se incremente en uno y si el valor no excede al final, se ejecuta de nuevo las acciones. Ci ≤ Cf ACCIONES INCREMENTAR Ci AUTOMATICAMENTE 86 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS VENTAJAS DE LA PROGRAMACIÓN ESTRUCTURADA Con la programación estructurada elaborar programas de computador sigue siendo un albor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas: Los programas son más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. La estructura del programa es más clara puesto que las instrucciones están mas ligadas o relacionadas entre sí, por lo que es más fácil comprender lo que hace cada función. Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas ("debugging") se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir más fácilmente. Reducción de los costos de mantenimiento. Programas más sencillos y más rápidos Aumento de la productividad del programador Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación Los programas quedan mejor documentados internamente. TIPOS DE DISEÑO Técnica que se emplea en la creación de programas utilizando las estructuras de control y la modularidad. Dentro de ésta técnica se manejan el diseño TOP-DOWN y BOTTOM-UP. TOP-DOWN En este diseño se trabajan los módulos de arriba hacia abajo, iniciando por el módulo principal o programa principal. Características: define el diseño de cada módulo para la resolución del problema, a través de sus instrucciones y estructuras de control. Definir que función realiza cada módulo sin entrar a detalle, esto es, como realizan las operaciones. 87 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Ejemplo de la estructura del modelo Top-Down: MODULO PINCIPAL EMPRESA PERSONAL CONTRATOS FINANZAS NOMINA CUENTAS POR COBRAR CUENTAS POR PAGAR BOTTOM-UP En este diseño se trabajan los módulos de abajo hacia arriba, inicia por identificar los procesos elementales. Características: identificar cada módulo y, las funciones que realizarán para atacar cada problema. Manejar a detalle los procesos de cada módulo que se está creando y la comunicación que tendrá con los elementos externos. Se obtiene buen resultado si se combina con la técnica TOP-DOWN. UNIDAD IV: AMBIENTES DE PROCESAMIENTO DE DATOS. Los ambientes de procesamientos de datos más utilizados dentro del campo de la informática son: ―El Procesamiento en Batch, el cual es una técnica en la cual un número de transacciones de datos es colectado durante un periodo y agregado por un procesamiento secuencial‖; el siguiente es: ―El Procesamiento en Línea, el cual es donde las operaciones de procesamiento permiten la interacción directa de los usuarios con sus sistemas de computo‖; el siguiente es: ―El Procesamiento en Tiempo Real, el cual es un sistema complejo de procesamiento en línea en que la información se procesa y los archivos se consultan inmediatamente, es decir, que un sistema de tiempo real es aquel que puede recibir datos, procesarlos y regresar los datos al usuario en forma bastante rápida‖; el siguiente es: ―El Procesamiento en Paralelo, es aquel en donde se refiere a los conceptos de acelerar la ejecución de un programa dividiendo el programa en múltiples fragmentos que se pueden ejecutar simultáneamente, cada uno con su propio ordenador‖; el siguiente es: ―El Procesamiento Distribuido, que es aquel método de procesamiento de la información en el que varios programas en ejecución en paralelo, en la misma máquina o que son distribuidos entre los ordenadores o computadoras interconectados a través de una red de comunicaciones, colaboran en la realización de una sola tarea especifica‖ y por último: ―Las Fases para el Procesamiento de una Aplicación las cuales están especificadas para el procesamiento de datos. 88 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 4.1 PROCESAMIENTO EN BATCH Técnica en la cual un número de transacciones de datos es colectado durante un periodo y agregado por procesamiento secuencial. Procesamiento por lotes o batch. Es un modo de procesamiento que funciona en el sistema operativo de una computadora, donde los trabajos son procesados de manera secuencial o por lotes; es decir, el primer programa que entra es el primero que se ejecuta, luego el segundo y así sucesivamente hasta que se procesan todos los programas. Esta técnica no es muy utilizada para trabajar con una computadora, ya que consiste en introducir los programas, datos y órdenes deseados por medio de tarjetas perforadas, para que el sistema de computo los procese en estricto orden secuencial y en un tiempo que no es el del usuario, sino que esta determinado por las colas de servicio y la cantidad de proceso pendientes en el sistema. En esta modalidad los registros son agrupados y después procesados todos a la vez. Es decir, es el procesamiento de un grupo de transacciones de una sola vez. En este tipo de procesamiento las transacciones se juntan en lotes y se procesan como un solo grupo. Este procesamiento implica el reagrupamiento de datos para su procesamiento posterior. Puede usar el sistema de acceso secuencial o acceso directo. Este tipo de procesamiento comienza con un documento fuente (forma en la cual se inscribió la transacción original, por ejemplo: pedidos, pagarés en base a tarjetas de crédito, solicitudes, etc.). Luego, la información es examinada por un programa editor (se asegura que la información sea registrada propiamente) y finalmente el lote es procesado. En el procesado en lotes, como su nombre lo indica, todos los datos y las transacciones se codifican y reúnen en grupos (lotes) antes de ser procesadas. El procesamiento de los datos es por lo tanto periódico: según determinado intervalos o periodos, se procesan datos que han sido clasificados en lotes. El procesado puede hacerse cada hora, cada dos horas, cada ocho horas y así sucesivamente. Cuando los documentos fuente se introducen juntos en la computadora, el conjunto se procesa luego por lotes. Un lote puede variar de tamaño desde unas pocas transacciones hasta varias miles de ellas. El proceso por lotes se puede utilizar, por ejemplo, para archivos como las cuentas por cobrar, y se almacenan en cinta magnética. 89 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El procesamiento por lotes incluye dos variantes: El procesamiento secuencial y el procesamiento aleatorio. Supongamos que un archivo maestro va a ser leído según el modo de procesamiento por lotes en forma secuencial. Antes del proceso de lectura, que puede implicar la comprobación de las nuevas cantidades de las ventas a crédito o los pagos de contado que se hicieron en la cuenta, los registros de las transacciones deben ser clasificadas en el mismo orden en que se encuentran los registros en el archivo maestro. Las transacciones son agrupadas en un lote, dispuestas en orden adecuado para un acceso eficiente, y posteriormente procesadas contra el archivo maestro. Es mucho más eficiente tener tanto las transacciones, como los archivos maestros, en el mismo orden puesto que de esta manera el archivo maestro puede ser leído secuencialmente, registro por registro de otra forma tendría que ser recorrido hacia delante y hacia atrás para cada transacción. En el proceso aleatorio por lotes, las transacciones de entrada se pueden procesar contra al archivo sin tener que ser preclasificado. Esta capacidad es muy útil con las organizaciones aleatorias en las cuales es posible almacenar los registros con acceso directo, de la misma manera que los archivos en un disco y un tambor magnético. Puesto que no es necesaria la clasificación previa ni el examen de cada uno de los registros, el procesado por lotes en forma aleatoria es un modo de procesamiento comparativamente mucho más rápido. Sin embargo, si un alto porcentaje del archivo va ser accedido durante una solo corrida de proceso, probablemente se ahorrara tiempo clasificando previamente el archivo y procesándolo posterior mente en lotes secuénciales. Este procedimiento es mas rápido que el tener que calcular las direcciones para todos los registros accedidos. Se establece cuando las características de la información a procesar sean tales que no requieren un tiempo de respuesta inmediato. Un proceso por lotes es una técnica mediante la cual, un número de tareas se agrupan y se procesan en un orden determinado. Una lista de tareas en espera de ser procesadas es conocida como cola de espera y el orden de ejecución de cada uno de los procesos es controlado por el administrador de trabajos del sistema operativo. 4.1.1 DESCRIPCIÓN. Es una manera de ejecutar programas y someterlos en una fila de ejecución sin que este conectado a la máquina. Este modo de procesamiento es conocido como batch o procesamiento en lote. 90 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los programas en batch son ejecutados de acuerdo con la carga y disponibilidad del sistema, con límites de memoria en CPU especificados por el usuario de acuerdo con las necesidades de su aplicación. La siguiente tabla muestra, de forma resumida, el sistema de filas y comandos para manipulación de tareas en lote. Sistema de Filas NQS Sumisión Qsub Remoción Qdel Monitoración Qstat Jstat 4.1.2 EVOLUCIÓN. El procesamiento por lotes (batch processing) se inicio alrededor de los años 60 con las primeras y enormes computadoras. Su manejo era tan complicado que solo expertos programadores tenían la capacidad de operarlas y dado su elevado costo, era solo posible de ser adquiridas por bancos y entidades de gobierno. Dentro de este tipo de procesamiento, la forma de comunicarse con las computadoras eran las tarjetas perforadas. Aquellas tarjetas de esquina recortada y agujeros rectangulares eran la programación, es decir las instrucciones que le indicaban, una vez dentro, lo que la máquina debía hacer. Todos los trabajos asignados a la computadora no podían ser efectuados al mismo tiempo, por lo que era necesario determinar horarios y cantidades de tarjetas para ser procesadas secuencialmente y por lotes; es así como nace el nombre "procesamiento por lotes". Modalidad de procesamiento en que el usuario envía lotes de información para ser procesados y espera la respuesta, la que puede demorar algunos minutos, horas o quizás días, dependiendo de la instalación. 4.1.3 CARACTERISTICAS. Las características principales son: La no existencia de interacción entre el usuario y la maquina y el agrupamiento de equipos de computo. Se retrasa un poco. 91 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Cuando se desarrollaron por primera vez, estaban caracterizados por la "agrupación en bloques" de trabajos similares. Los modernos sistemas utilizan otras características. El rasgo característico de un sistema por lotes es la ausencia de interacción entre el usuario y el trabajo mientras éste se ejecuta. El trabajo se prepara y se envía. Tiempo después aparece la salida. 4.1.4 VENTAJAS Y DESVENTAJAS. Dentro de las ventajas tenemos: Es confiable, puede manejar gran cantidad de registros y procesa los datos simultáneamente. Dentro de las desventajas tenemos: El inconveniente de este modo de procesamiento es que si se desea ejecutar un programa con alta prioridad, tendrá que esperar a que se procesen todos los programas que se encuentren antes que éste. Era confiable, pero no tenía la rapidez del procesamiento en línea. Produce retraso lo cual impide que los usuarios reciban información vital que quisieran tener inmediatamente. No se ejecutan dos a la vez. 4.2 PROCESAMIENTO EN LINEA. Son operaciones de procesamiento que permiten la interacción directa de los usuarios con sus sistemas de cómputo. Procesamiento general de datos en el que, una vez que se ha tenido acceso a la computadora, todos los datos son introducidos directamente desde el punto de origen y procesados de inmediato; en estos sistemas existen archivos llamados dinámicos que se están actualizando constantemente. Ejemplo de este tipo de procesamiento son las transacciones bancarias y las telereservaciones aéreas. 4.2.1 DESCRIPCION El procesado en línea es virtualmente el opuesto al procesado en lotes. Según este modo las transacciones no necesitan ser reunidas en grupos o lotes para ser leídas a la memoria. A diferencia del procesamiento por lotes o batch, el procesamiento en línea implica que los programas se ejecuten de tal forma que los datos se actualicen de inmediato en los archivos de la computadora. En un sistema de cómputo, los componentes de entrada, salida y almacenamiento de datos reciben datos provenientes del procesador y se los transmite a través de cables eléctricos, o ―líneas‖. Por ello se dice que estos componentes de hardware están en línea con el procesador. Aquellos dispositivos de hardware que no sean accesibles al procesador o que no estén bajo el control del mismo se dice que están fuera de línea. 92 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En línea y fuera de línea es un concepto que también se aplica a los datos. Se considera que los datos están en línea si el procesador puede obtener acceso a ellos y manipularlos. Todos los otros están fuera de línea Una forma más para acelerar la máquina consiste en conformar el hardware con varias unidades funcionales y después unirlas para que trabajen en línea o en forma escalonada (pipeline). El procesamiento en línea implica que las actividades y la interacción con el procesador puedan ocurrir desde ubicaciones remotas, pero desde luego esto también implica que los archivos estén en línea. Esto significa que los archivos se almacenen en un dispositivo de acceso directo de manera que una persona pueda tener acceso rápido o inmediato a los datos solicitados. Los factores que deben ser considerados para determinar cuando un procesamiento en línea es el más adecuado para una aplicación son los siguientes: Tiempo de respuesta: es el número de segundos , minutos o bien horas que transcurren entre el tiempo en que ocurre una transacción o una pregunta entra al flujo del proceso, y el tiempo en que el CPU emite una información o una respuesta a todo lo anterior. Detalles de los reportes: la cantidad de detalle y el número de línea en los reportes elaborados por computadora son muy significativos en la determinación del modo de procesamiento. Desde luego las impresoras en línea funcionan a una velocidad mucho más alta que la mayoría de los dispositivos terminales. Volumen de entradas: el número de elementos que se van a introducir en un sistema para ser procesados debe también ser considerado cuando se seleccionan un modo de procesamiento. Si el número de os elementos es muy grande, puede ser mucho más efectivo ingresarlos directamente a un medio de almacenamiento magnético. Utilización de un archivo. 4.2.2 EVOLUCION El procesamiento en línea se ha convertido en el enfoque preferido en computación debido a la velocidad con la que se maneja la información. Sin embargo, no es la única modalidad de procesamiento de datos disponibles. Mucho antes de que fuera posible el procesamiento en línea, el procesamiento por lotes (batch) era el método usado por muchas organizaciones 93 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 4.2.3 CARACTERISTICAS El punto fuerte del procesamiento en línea es la capacidad del usuario de interactuar directamente con la computadora. El usuario puede trabajar directamente con el procesador a través de una terminal o de una estación de trabajo. Siempre podemos estar conectados. En el procesamiento en línea no se necesita de un intermediario entre el usuario y la computadora. El procesado en línea implica la comunicación directa entre el CPU y el usuario tanto para las entradas como para el resultado de salida. 4.2.4 VENTAJAS Y DESVENTAJAS. Por ventajas tenemos: El usuario tiene acceso inmediato a la información lo que le permite responder rápidamente a las necedades de su organización y reaccionar con velocidad ante situaciones críticas. Se pueden utilizar dos a la vez, son muy rápidos. Los usuarios utilizan una línea de comunicación para trabajar directamente con su computadora. Pueden interactuar con los programas que estén siendo procesados y realizar muchas labores de información, seleccionando datos de uno o varios archivos computarizados. Por desventajas tenemos: Puesto que se requiere de trabajo extra para eliminar un gran número de registros de un archivo, existe la tendencia de dejar en esté grandes porciones de datos obsoletos o no utilizables de cualquier otra forma, lo que hace que el tamaño del archivo crezca continuamente. El usuario irremediablemente pagara este costo en pequeñas cantidades debido al tiempo de acceso cada vez más largo. En si no hay desventajas a salvo que los programas estén jalando mal. 4.3 PROCESAMIENTO EN TIEMPO REAL Es un sistema complejo de procesamiento en línea en que la información se procesa y los archivos se consultan inmediatamente. Un sistema de tiempo real es aquel que puede recibir datos, procesarlos, y regresare los datos al usuario en forma bastante rápida para afectar las actividades del usuario, esto es, lo suficientemente pronto para permitir 94 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS que los resultados sean utilizados en el trabajo que se está desarrollando. Esto contrasta con el atraso inherente que es la característica de retardo normal en todos los sistemas de procesado por lotes. 4.3.1 DESCRIPCION Este tipo de procesamiento incorpora la interconectividad entre un usuario y las bases de datos con las que trabaja, donde la información se actualiza en forma automática para estar inmediatamente accesible para cualquier otra persona que la requiera, lo que, además de permitir una atención eficaz y una excelente gestión de la información lo que favorece la toma oportuna de decisiones. Esta modalidad está diseñada para responder en forma inmediata a las transacciones del usuario. Tiempo real significa sin demora y respuesta instantánea. Se procesa cada transacción, según va entrando a la computadora, y le transmite la información resultante al operador, es decir, actualiza la información. Requiere archivos de acceso directo. Ejemplo: muchas agencias de viajes utilizan este proceso para hacer las reservaciones porque los precios y los espacios disponibles están cambiando constantemente y hay que actualizarlos. Otro ejemplo son los mini bancos (ATH, ATM, máquinas automáticas). Las aplicaciones de tiempo real son indispensables en aquellos casos en que los datos contenidos en los archivos se modifican varias veces en el transcurso de un día y se consultan en forma casi inmediata con las modificaciones que se efectuaron. Un ejemplo de lo anterior es un sistema de reservaciones en alguna línea aérea. 4.3.2 EVOLUCION Las formas más elaboradas y rápidas de procesamiento en línea son los sistemas de tiempo real. Se puede decir que el procesamiento en tiempo real se desarrollo a partir del procesamiento en línea con la necesidad de no sólo proporcionar al usuario acceso inmediato a una amplia gama de archivos sino también permitir que varios usuarios tengan acceso a los sistemas de computo. 4.3.3 CARACTERISTICAS El procesado en tiempo real no puede identificarse únicamente en términos de segundos o minutos. En su lugar depende del contexto en el cual el procesamiento ocurra. El factor importante no es el tiempo de respuesta absoluto, sino el tiempo transcurrido relativo o con referencia a las necesidades del usuario y sus actividades especificas de trabajo. El término tiempo real puede tener diferentes significados. Debe distinguirse entre sistemas que aceptan datos en tiempo real y aquellos que procesan en tiempo real. 95 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Se caracteriza porque permite que el usuario tener una interacción directa con el proceso, permitiendo que se introduzcan datos y se obtengan resultados casi de inmediato. 4.3.4 VENTAJAS Y DESVENTAJAS Las ventajas son: Los sistemas de tiempo real ofrecen acceso inmediato a la información y manejan todas las transacciones en el momento que ocurren. Cada sistema en tiempo real da apoyo a una organización dinámica, que maneja información que cambia rápidamente y que proviene de diferentes fuentes. La información se procesa en el momento en que se produce, proporcionando a los usuarios información lo más actualizada posible. Las desventajas son: Los sistemas de procesamiento en tiempo real son configuraciones complejas y costosas, pues aportan operaciones de cómputo que requieren de un alto grado de protección. 4.4 PROCESAMIENTO EN PARALELO Otra corriente del pensamiento sobre la producción de computadoras más rápidas es construirlas con más de un procesador. Esta no es una idea nueva en el campo de las Mainframe y las Supercomputadoras. De hecho, la IBM 3090 tenía de 2 a 4 procesadores, y la Cray X MP 4 tenía 4 procesadores. Algunas compañías están desarrollando computadoras con 256, 512 e incluso miles de microprocesadores, conocidos como procesadores paralelos masivos. Por ejemplo INTEL, junto con el Laboratorio Nacional Sandia del departamento de Estados Unidos contribuyo lo que se conoce como la supercomputadora más grande del mundo. Esta incluye más de 7200 procesadores Pentium Pro y alcanza velocidades de 1.06 teraflops, es decir billones de operaciones de punto flotante por segundo. 4.4.1 DESCRIPCION Uso coordinado de múltiples procesadores para realizar tareas computacionales. El procesamiento paralelo puede ocurrir en una computadora con múltiples procesadores o en una red de estaciones de trabajo o PCs. Procesamiento en paralelo, se refieren a los conceptos de acelerar la ejecución de un programa dividiendo el programa en múltiples fragmentos que se pueden ejecutar simultáneamente, cada uno con su propio procesador. 96 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Un programa ejecutado a través de x procesadores va a ejecutar la misma operación x veces más rápido que si se usara un solo procesador. Tradicionalmente, los múltiples procesadores han sido especialmente diseñados para hacer procesos paralelos. Las arquitecturas paralelas tienen un notable incremento en la velocidad de procesamiento. 4.4.2 EVOLUCION Se tomo como punto de partida el procesamiento en tiempo real, atendiendo a la necesidad de una mayor velocidad, de acceso a la información, dando como resultado menor tiempo de espera. 4.4.3 CARACTERISTICAS En computación, el procesamiento paralelo es la ejecución de diferentes procesos en dos o más procesadores al mismo tiempo, donde estos procesos juntos resuelven un problema completamente. Un proceso debe entenderse como un fragmento de código en ejecución que convive con otros fragmentos. 4.4.4 VENTAJAS Y DESVENTAJAS. El procesamiento paralelo ofrece una gran ventaja en cuanto a costos. Sin embargo, su principal beneficio es la escalabilidad entendiéndose como crecer hacia arquitecturas de mayor capacidad. Esto se debe a que conforme se añaden procesadores, las disputas por los recursos compartidos se intensifican. 97 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Una ventaja es que puede proveer una ejecución al igual que las supercomputadoras para algunos programas que ejecutan complejos procesos de datos y operan grandes volúmenes de información. Aunque el proceso en paralelo ha sido usado durante muchos años en muchos sistemas, es aun de alguna manera no muy familiar para algunos usuarios. Algunos diseños diferentes de procesamiento paralelo enfrentan este problema fundamental: Multiprocesamiento simétrico Procesamiento masivamente paralelo Procesamiento paralelo escalable Cada diseño tiene sus propias ventajas y desventajas. MULTIPROCESAMIENTO SIMETRICO El Multiprocesamiento simétrico (symmetric multiprocessing / SMP) tiene un diseño simple pero aún así efectivo. En SMP, múltiples procesadores comparten la memoria RAM y el bus del sistema. Este diseño es también conocido como estrechamente acoplado (tightly coupled), o compartiendo todo (shared everything). 98 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS SMP es uno de los diseños de procesamiento paralelo más maduro. Apareció en los supercomputadores Cray X-MP y en sistemas similares hace década y media (en 1983). PROCESAMIENTO MASIVAMENTE PARALELO El Procesamiento masivamente paralelo (Massively parallel processing / MPP) es otro diseño de procesamiento paralelo. Para evitar los cuellos de botella en el bus de memoria, MPP no utiliza memoria compartida. En su lugar, distribuye la memoria RAM entre los procesadores de modo que se semeja a una red (cada procesador con su memoria distribuida asociada es similar a un computador dentro de una red de procesamiento distribuido). Debido a la distribución dispersa de los recursos RAM, esta arquitectura es también conocida como dispersamente acoplada (loosely coupled), o compartiendo nada (shared nothing). 99 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS PROCESAMIENTO PARALELO ESCALABLE ¿Cómo superar las dificultades de SMP y MPP? La última arquitectura paralela, el Procesamiento paralelo escalable (Scalable parallel processing / SPP), es un híbrido de SMP y MPP, que utiliza una memoria jerárquica de dos niveles para alcanzar la escalabilidad. La primera capa de memoria consiste de un nodo que es esencialmente un sistema SMP completo, con múltiples procesadores y su memoria globalmente compartida. 100 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS CLUSTER RECIEN INSTALADO EN HOUSTON, USA EN OFICINAS DE KERR MCGEE 101 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS A pesar de que el uso de múltiples procesadores puede acelerar muchas operaciones, la mayoría de las aplicaciones no pueden aun beneficiarse de este proceso, básicamente el procesamiento en paralelo es apropiado solo si: Su aplicación tiene las instrucciones de paralelismo necesario para hacer uso de múltiples procesadores. En parte, este es asunto de identificar las porciones del programa que pueden ser ejecutadas independientemente y simultáneamente en procesadores separados, sin embargo se encontraran algunas cosas que pueden ser ejecutadas en paralelo y son mas lentas, dependiendo del sistema. Por ejemplo un programa que dure 4 segundos en ser ejecutado en una maquina puede ser ejecutado 1 segundo de tiempo de procesador en cuatro maquinas distintas, pero no se consigue mas velocidad ya que si se tomo 3 segundos o mas a estas maquinas para coordinar sus acciones. Ya sea que la aplicación que se desee, ya ha sido paralelizada (reescrita para tomar ventaja de su procesamiento en paralelo) o si se desea agregar nuevos códigos para tomar ventaja del procesamiento en paralelo. Con unas pocas excepciones, el hardware para redes no esta diseñado para procesamiento en paralelo. Por lo tanto la historia básica es que los clusters ofrecen gran potencial, pero ese potencial puede ser muy difícil de conseguir para la mayoría de las aplicaciones. La buenas noticias es de que hay mucho software de soporte que ayudara a conseguir buen desempeño para los programas mejores dotados para este medio ambiente y hay también redes diseñadas específicamente para agrandar el rango de programas que pueden conseguir buen desempeño. 102 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS CLUSTER DE PCs RECIEN INSTALADO EN HOUSTON, OFICINAS EL PASO ENERGY 4.5 PROCESAMIENTO DISTRIBUIDO. Método de procesamiento de la información en el que varios procesos (programas en ejecución) en paralelo, en la misma máquina o distribuidos entre ordenadores o computadoras interconectados a través de una red de comunicaciones, colaboran en la realización de una tarea. 103 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Esta colaboración puede ser tan sencilla como distribuir la carga de trabajo entre procesos idénticos, en el caso de una red de cajeros automáticos, o tan compleja como multitud de procesos distintos, interdependientes, controlando el vuelo de una nave espacial. Las redes de procesamiento distribuido facilitan la conexión entre diferentes lugares para transmitir los datos, permitiendo a la vez poder compartir los diferentes recursos. Los sistemas distribuidos usan una red de comunicación así como un estrato de software que controla las actividades de la red y del procesamiento. Los lugares remotos en una red distribuida comparten los datos, transmiten información, o bien, comparten la carga de procesamiento. Se espera que los sistemas distribuidos aumenten cada vez mas a medida que el equipo de computo y la tecnología de comunicaciones mejoren capacidad y reduzcan costos. Procesamiento de datos en el cual dos o más computadoras combinan sus recursos para realizar las operaciones indispensables. Es la colocación de servicios de tratamiento de datos dentro de cada grupo de trabajo en una empresa; estos servicios están interconectados de modo que la información es transportada y compartida eficientemente entre los grupos. Sistemas de cómputo que utilizan más de una computadora o procesador para ejecutar una aplicación Esta definición incluye el procesamiento paralelo: varios CPUs ejecutan una aplicación El procesamiento distribuido se refiere generalmente a computadoras conectadas en red 4.5.1 DESCRIPCION. Una colección de computadoras independientes que aparecen ante los usuarios como una computadora única Esta definición abarca dos aspectos: Hardware: las computadoras son independientes Software: los usuarios piensan que el sistema es una única computadora Aplicaciones distribuidas Diferentes partes de la aplicación se ejecutan en computadoras diferentes Ejemplo: framework de integración del ICA 104 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El procesamiento distribuido consiste en procesos que se comunican unos con otros En una arquitectura de un solo procesador (un solo computador) los procesos se comunican mediante servicios del sistema operativo La comunicación entre procesos que se ejecutan en diferentes computadoras, se puede ver como una extensión de los mecanismos de comunicación entre procesos de un sistema operativo 4.5.3 CARACTERISTICAS Las características más importantes que hay que tener presente en un sistema distribuido para tratamiento en un sistema, o sea un conjunto de componentes relacionados que comparten la misma finalidad. Una manera de ver los componentes de un sistema distribuido para el procesamiento es como sigue: Base de datos. Funciones del procesamiento de datos. Centros de procesamiento. Puntos de acceso para el usuario. Controles para el procesamiento de datos. 105 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En un sistema distribuido estos componentes se encuentran mezclados, emparejados y diseminados por zonas geográficas extensas, existiendo tantas maneras de conectarlos entre sí como puedan imaginar los analistas del procesamiento de datos. Sin embargo, el comportamiento del sistema resulta afectado por su distribución geográfica en solo tres de estos componentes: Las bases de datos, las funciones del procesamiento de datos y los controles para su procesamiento. Control distribuido. La disponibilidad muy extendido de canales baratos de comunicación a hecho posible que las empresas cuyas sucursales están geográficamente separadas, gocen de control y contabilidad sobre su propia rentabilidad a la vez que mantienen comunicación constante con el departamento central. Función distributiva. El término de función distributiva se refiere a la asignación de funciones distintas a las diferentes partes de la red. La función distributiva hace posible que el procesamiento local significativo permanezca próximo a quienes lo originan y, por tanto, aseguran mayor exactitud y puntualidad de los datos. Base de datos. El término de Base de Datos alude a conjunto entero de los datos almacenados por una empresa. La base de datos comprende únicamente aquella información que puede ser considerada como recurso común y que es tratada y esta almacenada en un punto único de la red y puesta a disposición de todos los componentes de la empresa. El beneficio del procesamiento distribuido de datos consiste en que los grupos de trabajo distribuido, dentro de la empresa, puedan realizar procesamiento local a la vez que ganan acceso a las base de datos, y mantienen tales bases al día con información exacta sobre los productos, servicios, clientes y empleados de la empresa. 4.5.4 VENTAJAS Y DESVENTAJAS. Las ventajas principales del procesamiento distribuido consisten en que se puede asignar el control y cada tarea al punto del trabajo mejor situado para garantizar la exactitud de la información; se puede hacer crecer el sistema entero sin sobre cargar a un servicio único y centralizado; los usuarios disponen de mayor control sobre las prioridades del procesamiento y, finalmente, el personal vinculado a cada punto de procesamiento puede estar implicado directamente en las actividades que le afecta. 106 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Las redes distributivas permiten que un gran número de sistemas de cómputo puedan estar disponibles y sean compartidos por todos los usuarios. El procesamiento distribuido permite compartir sistemas a través de redes de comunicación, de tal manera que una cantidad adecuada de potencia de cómputo se encuentre disponible para todos los usuarios. Por el contrario, las mayores desventajas del procesamiento distribuido consisten en que la pericia funcional debe estar fragmentada a lo largo y a lo ancho de toda la compañía para estar disponible en cada nodo que algún procesamiento tienen que estar duplicado en el sistema y que las interrupciones de la red pueden afectar al procesamiento del nodo principal además del que quedó fuera de servicio. También puede consistir en cálculos extremadamente largos realizados a través de relativamente pequeñas cantidades de datos de entrada. Ventajas de los Sistemas Distribuidos Respuesta predecible Compartición de recursos Extensibilidad (crecimiento incremental) Replicación Disponibilidad continuada Inconvenientes de los Sistemas Distribuidos Pérdida de flexibilidad en la asignación de recursos de procesamiento y memoria Dependencia de la fiabilidad y prestaciones de la red Falta de información de estado global Debilidades de seguridad 4.6 FASES PARA EL PROCESAMIENTO DE UNA APLICACIÒN Para poder llevar a cabo las fases del procesamiento de una aplicación implica realizar una serie de pasos de forma secuencial y cronológica que comienza con la detección y definición de un problema que conduce a la implantación de un programa que lo solucione. 107 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Las fases por las que pasa una aplicación son: Análisis: es necesario entender el problema en detalle para poder obtener un valoración del mismo en términos de los datos disponibles como materia prima, y definir el proceso necesario para convertir los datos en la información requerida. Diseño: se consideran todas las posibles opciones elaborando las especificaciones detalladas del programa. Desarrollo: intervienen la programación de los equipos de cómputo y las pruebas del programa que sean necesarias para una óptima implementación del mismo. Implementación: en esta etapa se da una capacitación y se ve si el sistema funciona o no, además si el programa esta terminado se pone en marcha. Si llega a haber un error existe una retroalimentación hacia el desarrollo para detectar posibles fallas. Liberación: es cuando el programa ya esta en operación. Mantenimiento: un programa que este en operación podría requerir cambios o ajustes en sus datos, proceso o resultados; esto implica que eventualmente necesitara mantenimiento para adecuarlo a la dinámica cambiante de los problemas. Lo anterior nos sitúa en una dinámica infinita, ya que si surge la necesidad de darle mantenimiento tenemos que regresar al punto 1 para definir de nuevo el problema y si la modificación es pequeña podríamos ir al paso 2, al 3 o a cualquier otro. DOCUMENTACIÓN ANALISIS DISEÑO DESARROLLO IMPLEMENTACIÓN LIBERACIÓN Programación y Pruebas MANTENIMIETNO Capacitación MADURACIÓN Retroalimentación 108 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS OTROS CONCEPTOS: Multiprogramación. Un solo usuario no puede, en general, mantener todo el tiempo ocupado a la UCP o a los dispositivos de E/S. La multiprogramación aumenta la utilización de la UCP organizando los trabajos de manera que ésta siempre tenga algo que ejecutar. El S.O. escoge uno de los trabajos del depósito y comienza a ejecutarlo. En algún momento el trabajo tendrá que esperar, ya que el sistema ha pasado el control a otro programa y así sucesivamente. Mientras haya otro trabajo por ejecutar, la UCP nunca estará inactiva. Se plantea en un sistema de cómputo que puede tener varios procesos en estado de ejecución simultáneamente. La multiprogramación es una técnica que permite procesar dos o más programas en forma concurrente mediante la distribución del tiempo de ejecución entre ellos. Multiprocesamiento. Es la técnica que permite procesar varios programas el mismo tiempo mediante la interconexión de dos o mas procesadores centrales que operan simultáneamente o en combinación. Monousuario: Esta modalidad implica la atención del sistema la disponibilidad de todos los recursos única y exclusivamente para los trabajos generados por un solo usuario. Multiusuario: Varios usuarios trabajan con la misma CPU a través de terminales de trabajo propias. Los recursos del sistema con compartidos por todos los usuarios y el sistema operativo da atención conjunta a todos ellos. El proceso de la información se realiza mediante el uso de técnicas de multiprogramación, tiempo compartido, multiproceso y memoria virtual. Tiempo compartido. Utiliza la planificación de la UCP y la multiprogramación para proporcionar a cada usuario, que tiene su propio programa en memoria, una pequeña porción de un computador de tiempo compartido. La E/S interactiva es demasiado lenta para un computador por lo que, para que la UCP no permanezca inactiva, el S.O. la cambiará al programa de otro usuario. Esto ocurre tan rápidamente que cada usuario tiene la impresión de que cuenta con su propio computador, cuando en realidad todos lo comparten. 109 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS UNIDAD V: SISTEMA OPERATIVO El sistema operativo está formado por un conjunto de programas que ayudan a los usuarios a explotar un ordenador, simplificando por un lado su uso y permitiendo por otro lado obtener un buen rendimiento en la explotación. Su función principal es gestionar y distribuir los recursos del ordenador. Un sistema operativo se puede caracterizar desde el punto de vista funcional por varios factores de los cuales los más representativos son el interfaz de usuario, la capacidad multitarea, la seguridad y la capacidad de emular otros sistemas operativos. El sistema operativo original de los PCs es el DOS y todavía está presente en la mayoría de equipos instalados, acompañando a las primeras versiones de Windows 95. Presenta ventajas importantes, sobre todo las derivadas de la existencia de un extenso catálogo de aplicaciones desarrolladas por fabricantes y compañías independientes. Sin embargo DOS posee también una serie de limitaciones importantes, especialmente si se tiene en consideración la potencia de las unidades de proceso actuales. Los dos principales inconvenientes son la limitación del tamaño máximo de memoria disponible para la ejecución de un programa (640 KB), su interfaz de usuario orientado a carácter y su modo natural de operación: monotarea. Para superar la limitación natural de DOS en relación a la gestión de memoria se han desarrollado técnicas tales como EMS (Expanded Memory Specification) o XMS (Extended Memory Specification) que permiten elevar el tamaño máximo de memoria utilizable hasta el límite teórico del procesador. Existen tres versiones diferenciadas de DOS: MS-DOS (de Microsoft), PC-DOS (de IBM) y DR-DOS (de Novell), entre las cuales se pueden encontrar diferencias a nivel de órdenes del sistema, integración en redes y modo de funcionamiento, pero que mantienen compatibilidad a nivel de código. Sobre este punto es importante indicar que MS-DOS constituye el punto de referencia obligado para los demás fabricantes de DOS cuyos productos deben demostrar que son compatibles con él. Para solucionar los problemas inherentes a DOS apareció el sistema operativo Windows 3. Es una extensión de DOS que ofrece como ventajas más significativas un interfaz gráfico de usuario más amistoso, la capacidad de multitarea, la compartición de recursos en redes de igual a igual y la capacidad de ejecutar la gran mayoría de aplicaciones DOS disponibles. No obstante su capacidad de multitarea es muy limitada. Su éxito en el mercado ha sido innegable, con una cuota que se equiparó a DOS. 110 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La siguiente versión de Windows se denominó Windows 95, y supuso una auténtica revolución dentro de mundo de los sistemas operativos de los ordenadores PC compatibles. En sus primeras versiones se trataba de una actualización de Windows 3, que se instalaba sobre éste, pero posteriormente aparecieron versiones que constituían un auténtico sistema operativo ya independiente de DOS, pero conservando la compatibildad con áquel. Además, una gran parte de su código estaba desarrollado con código de 32 bits, y pasaba a emplear una FAT (File Allocation Table, Tabla de Localización de Ficheros) de 32 bits, con lo cual se optimizaba la capacidad de los discos duros, además de permitir otra serie de ventajas, como nombres de ficheros con más de 8 caracteres (hasta 256). También se mejoraba la capacidad multitarea, la conectividad Plug & Play, etc. Este sistema operativo relegó a DOS y Windows 3 a un segundo plano. La más reciente versión de Windows es Windows 98, que constituye una mejora y actualización de Windows 95, siendo la gran mayoría de su código de 32 bits, teniendo mayor robustez y una mejor gestión de la memoria virtual que su predecesor. Otras alternativas a DOS y Windows son los sistemas operativos Windows NT, OS/2 o UNIX. Sin embargo, sus respectivas cuotas de mercado son sensiblemente inferiores a DOS y Windows. Windows NT es un sistema operativo que posee las mismas características que Windows y otra serie de importantes ventajas que le convierten más en una interesante opción como sistema operativo de red que como sistema operativo de propósito general. Requiere un coste considerable en utilización de recursos, que se ve compensada por su facilidad de uso (su interfaz gráfico es idéntico al de Windows). La versión 4.0 de Windows NT es la equiparable a Windows 95, mientras que la versión 5.0 es una actualización mejorada de la anterior, al igual que sucede con Windows 98 respecto a su predecesor. Windows NT aparece en dos versiones, Windows NT Workstation, orientada a estaciones de trabajo que precisan de un sistema operativo más potente y robusto que Windows, y Windows NT Server, empleada en servidores de red y que ofrece mayores facilidades en las tareas que este tipo de servidor debe acometer. OS/2 (Operating System/2) es un avanzado sistema operativo multitarea que posee un interfaz gráfico de usuario, la capacidad de multitarea y la capacidad de ejecutar la mayoría de las aplicaciones desarrolladas para DOS y Windows (no Windows NT). Sin embargo muchos analistas del mercado de productos informáticos consideran que, aún siendo un excelente producto, proporciona escasos beneficios a sus usuarios finales, debido al limitado número de programas de aplicación existentes que son capaces de explotar sus potenciales capacidades. 111 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La última alternativa la constituyen los sistemas operativos basados en UNIX. Este sistema operativo multitarea/multiusuario es sólido y fiable, siendo notablemente más maduro que los anteriores aunque no fue específicamente diseñado para PCs. UNIX posee unas excelentes facilidades para las comunicaciones que le permiten integrarse perfectamente con las estaciones de trabajo. System es un sistema operativo que tiene gran repercusión dentro del mundo Macintosh, tanto si se basan en una unidad central de proceso Motorola como en un procesador PowerPc, si bien sus últimas versiones se orientan hacia este último tipo de procesadores. Sus prestaciones se orientan a proporcionar a los usuarios una solución de trabajo completa de fácil manejo. Sus principales ventajas son la facilidad de manejo de su interfaz gráfico de usuario, las capacidades avanzadas de color, la intercomunicación entre aplicaciones, la compartición de recursos en redes de igual a igual y su capacidad de multitarea. Su principal desventaja es su arquitectura propietaria limitada a los ordenadores Apple y la dificultad de interoperar con los sistemas DOS y Windows. MacOS es un sistema operativo empleado también por los ordenadores Macintosh, similar al System, aunque sus versiones más recientes son principalmente empleadas por equipos con procesador Motorola. 5.1 ¿QUE ES EL SISTEMA OPERATIVO DE UN COMPUTADOR? Sistema operativo: (OS: Operating System) El software que controla la ejecución de todas las aplicaciones y programas de software de sistemas. Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden. El sistema operativo, es la herramienta indispensable para hacer de la computadora un objeto útil. Es un programa o conjunto de programas que administran y rigen los recursos de la computadora y permiten a los usuarios la utilización de este enredo de cables y circuitos, que de otra manera serian difíciles de controlar como pasaba antes. Un sistema operativo se define como un conjunto de procedimientos manuales y automáticos, que permiten a un grupo de usuarios compartir una instalación de computadora eficazmente. Se usa el término de software para designar programas que dirigen las actividades del software de computadora. Todo el software cae en dos categorías generales: Aplicaciones y Sistemas. 112 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El software de aplicaciones esta diseñado y escrito para realizar tareas especificas de procesamiento de negocios o científico. Sistema operativo, software básico que controla una computadora. El sistema operativo tiene tres grandes funciones: coordina y manipula el hardware del ordenador o computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse; organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas, y gestiona los errores de hardware y la pérdida de datos. El software de sistemas es más general que el de aplicaciones y comúnmente es independiente de cualquier área específica de aplicación. Los programas del software de sistemas apoyan a todo el software de aplicaciones al dirigir las funciones básicas de la computadora. Por ejemplo, cuando la computadora se enciende, un programa de iniciación prepara y deja listos todos los dispositivos para el procesamiento. El sistema operativo: El jefe. Los objetivos de diseño de un sistema operativo, núcleo de toda la actividad de software, son minimizar el tiempo total, maximizar la productividad y optimizar el empleo de los recursos de la computadora. Los sistemas operativos están orientados a un tipo específico de medio ambiente de procesamiento tal como el procesamiento de tiempo compartido, por lote o distribuido. Programa de control maestro que proporciona una interfaz para que un usuario se comunique con la computadora; administra dispositivos de hardware; administra y mantiene sistemas de archivo en disco y soporta programas de aplicación. El propósito del sistema operativo es crear un entorno en el que un usuario pueda ejecutar programas. El objetivo primario de un sistema operativo es hacer al sistema de computador cómodo de usar. El programa fundamental de todos los programas de sistema es el sistema operativo (SO), que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicación. El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto útil. Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilización de este enredo de cables y circuitos, que de otra manera serian difíciles de controlar. Un sistema operativo se define como un conjunto de procedimientos manuales y automáticos, que permiten a un grupo de usuarios compartir una instalación de computadora eficazmente. 113 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden. Además, el tiempo requerido para introducir un programa en aquellas grandes máquinas de lento proceso superaba por mucho el de ejecución y resultaba poco provechosa la utilización de computadoras para resolución de problemas prácticos. Desde su creación, las computadoras digitales han utilizado un sistema de codificación de instrucciones en sistema de numeración binaria, es decir con los 0S. Esto se debe a que los circuitos integrados funcionan con este principio, es decir, hay corriente o no hay corriente. En el origen de la historia de las computadoras, los sistemas operativos no existían y la introducción de un programa para ser ejecutado se convertía en un increíble esfuerzo que solo podía ser llevado a cabo por muy pocos expertos. Esto hacia que las computadoras fueran muy complicadas de usar y que se requiriera tener altos conocimientos técnicos para operarlas. Era tan complejo su manejo, que en algunos casos el resultado llegaba a ser desastroso. Se buscaron medios más elaborados para manipular la computadora, pero que a su vez simplificaran la labor del operador o el usuario. Es entonces cuando surge la idea de crear un medio para que el usuario pueda operar la computadora con un entorno, lenguaje y operación bien definido para hacer un verdadero uso y explotación de esta. Surgen los 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 teclado, el sistema de vídeo y las unidades de disco, y en general cualquier dispositivo. 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 se enciende 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). 114 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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. Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios CATEGORÍAS DE LOS SISTEMAS OPERATIVOS. Sistema Operativo Multitareas. Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicación que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicación. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicación esta esperando información del usuario), y siempre que esta aplicación lo permita. 115 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas. 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 Macintosh 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 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. Sistema Operativo Monousuario. Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores. 116 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Sistema Operativo Monotareas. Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. Sistema Operativo Multiusuario. Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). Un SO multiusuario permite a mas de un solo usuario accesar a 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. Mediante Módems. Mediante conexión de terminales a través de puertos seriales Mediante Redes. 5.1.2 PRINCIPALES FUNCIONES Y USOS. Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que exigen más memoria principal de la realmente disponible. Con esta técnica se emplea espacio en el disco duro para simular la memoria adicional necesaria. Sin embargo, el acceso al disco duro requiere más tiempo que el acceso a la memoria principal, por lo que el funcionamiento del ordenador resulta más lento. Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en 117 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos de utilizar. Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente. En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que se emplea más a menudo para lograr esta ilusión es la multitarea por segmentación de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado. Si el proceso no finaliza en el tiempo asignado, se suspende y se ejecuta otro proceso. Este intercambio de procesos se denomina conmutación de contexto. El sistema operativo se encarga de controlar el estado de los procesos suspendidos. También cuenta con un mecanismo llamado planificador que determina el siguiente proceso que debe ejecutarse. El planificador ejecuta los procesos basándose en su prioridad para minimizar el retraso percibido por el usuario. Los procesos parecen efectuarse simultáneamente por la alta velocidad del cambio de contexto. Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que exigen más memoria principal de la realmente disponible. Con esta técnica se emplea espacio en el disco duro para simular la memoria adicional necesaria. Sin embargo, el acceso al disco duro requiere más tiempo que el acceso a la memoria principal, por lo que el funcionamiento del ordenador resulta más lento. 1. Interpreta los comandos que permiten al usuario comunicarse con el ordenador. 2. Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse. 3. Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas. 4. Gestiona los errores de hardware y la pérdida de datos. 118 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 5. Servir de base para la creación del software logrando que equipos de marcas distintas funcionen de manera análoga, salvando las diferencias existentes entre ambos. 6. Configura el entorno para el uso del software y los periféricos; dependiendo del tipo de máquina que se emplea, debe establecerse en forma lógica la disposición y características del equipo. Como por ejemplo, una microcomputadora tiene físicamente dos unidades de disco, puede simular el uso de otras unidades de disco, que pueden ser virtuales utilizando parte de la memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se convierte en la plataforma de trabajo de los usuarios y es este quien controla los elementos o recursos que comparten. De igual forma, provee de protección a la información que almacena. SISTEMAS OPERATIVOS (Ventajas y Desventajas). Los sistemas operativos empleados normalmente son UNIX, Mac OS, MS-DOS, OS/2 y Windows-NT. El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Su sistema de archivos proporciona un método sencillo de organizar archivos y permite la protección de archivos. Sin embargo, las instrucciones del UNIX no son intuitivas. Otros sistemas operativos multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft Corporation e International Business Machines Corporation (IBM), y Windows-NT, desarrollado por Microsoft. El sistema operativo multitarea de las computadoras Apple se denomina Mac OS. El DOS y su sucesor, el MS-DOS, son sistemas operativos populares entre los usuarios de computadoras personales. Sólo permiten un usuario y una tarea. VENTAJAS DEL SISTEMA OPERATIVO LINUX 1. Precio. 2. Estabilidad, no se traba a cada rato. 3. Seguridad, es mucho mas seguro que otros servidores. 4. Compatibilidad, reconoce la mayoría de los otros sistemas operativos en una red. 5. Velocidad, es mucho mas veloz para realizar las tareas. 6. Posee el apoyo de miles de programadores a nivel mundial. 119 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 7. El paquete incluye el código fuente, lo que permite modificarlo de acuerdo a las necesidades del usuario. 8. Ideal para la programación, ya que se puede programar en Linux para distintas plataformas, como para Windows. 9. Un sistema de crecimiento rápido. 10. Se puede usar en casi cualquier computadora, desde una 386. 11. Multitareas en tiempo REAL. 12. Puede manejar múltiples procesadores. Incluso hasta 16 procesadores. 13. Libre de virus, aun no se conoce ningún virus para Linux. 14. Maneja discos duros de hasta 16 TeraBytes. 15. Se consiguen parches con facilidad, además de ser gratuitos. 16. Se posee el apoyo de millones de usuarios a nivel mundial. 17. Los fabricantes de Hardware le están dando su apoyo, como IBM y COMPAQ. 18. Vendedores y desarrolladores implementan un sistema de certificación para Linux. 19. La corporación DATA Internacional predice que el crecimiento de este programa será del orden de un 25 por ciento anual en el nuevo milenio. DESVENTAJAS DEL SISTEMA OPERATIVO LINUX Linux no cuenta con una empresa que lo respalde, por lo que no existe un verdadero soporte como el de otros sistemas operativos. Linux corre el riesgo de llegar a fragmentarse como fue el caso de UNIX. Algunas empresas pueden llegar a ayudar a Linux con la intención de mejorar sus relaciones públicas, aunque en el fondo no tengan ninguna intención de utilizarlo fielmente. SISTEMA OPERATIVO UNIX UNIX, en informática, sistema operativo multiusuario que incorpora multitarea. Fue desarrollado originalmente por Ken Thompson y Dennis Ritchie en los laboratorios AT&T Bell en 1969 para su uso en minicomputadoras. El sistema operativo UNIX tiene diversas variantes y se considera potente, más transportable e independiente de equipos concretos que otros sistemas operativos porque está escrito en lenguaje C. El UNIX está disponible en varias formas, entre las que se cuenta AIX, una versión de UNIX adaptada por IBM (para su uso en estaciones de trabajo basadas en RISC), A/UX (versión gráfica para equipos Apple Macintosh) y Mach (un sistema operativo reescrito, pero esencialmente compatible con UNIX, para las 120 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS computadoras NeXT). HISTORIA DEL SISTEMA OPERATIVO UNIX. Bajo el término UNIX, se hace referencia no a un solo sistema operativo sino a un grupo amplio de sistemas. 1969 El Unix nace en los laboratorios Bell, creado por Ken Thompson. Se desarrollo sobre un dec pdp-4. 1970 Thompson rescribe todo el sistema en "Lenguaje B". Dennis Ritchie lo desarrolla y denomina "Lenguaje C", rescribiendo todo el Unix en este lenguaje. 1973 El Unix es transportado a distintos ordenadores, naciendo el Unix versión 5. 1974 AT&T cede la licencia de explotación del Unix a Universidades y centros de investigación. Nace entonces la versión 6. 1977 se crea la versión 7. 1981 Se incluyen numerosas utilidades. Lanzamiento comercial del Unix System III. 1982 AT&T comercializa el Unix y presenta el System V. 1988 Se creó la OSF (Open Software Fundation) para elaborar una norma universal Unix. CARACTERISTICAS BASICAS DEL UNIX El Unix es un Sistema Operativo de propósito general con las siguientes características: 1. Sistema Multiusuario. 2. Sistema Multitarea 3. Trabaja en tiempo compartido. 4. Sistema interactivo. 5. Estandarizado. 6. Potente. 7. Versátil. 8. Software y sistema operativo portable. 9. Permite ejecutar procesos en Background y Foreground. 10. Presenta niveles altos de seguridad. 11. Presenta una estructura jerárquica de ficheros. 12. Posee un gran número de utilidades: Editores de línea, de pantalla, formateadores, depuradores de programas... 13. Posibilidad de comunicación Unix - Unix (UUCP) 14. Fácil integración en sistemas de red. 121 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 15. Posibilidad de usar distintos lenguajes de programación: C, Fortran, Cobol, Pascal,... Ø Gran cantidad de software disponible en el mercado. 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 cómputo 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. SISTEMA OPERATIVO 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, DOS 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. El significado de estas letras es el de Microsoft Disk Operating System. Microsoft es el nombre de la compañía que diseño este sistema operativo, e IBM la compañía que lo hizo estándar al adoptarlo en sus microordenadores. Este sistema operativo emplea discos flexibles con una organización determinada. Los discos se pueden grabar por una o por dos caras y la información se organiza en 40 pistas de 8 ó 9 sectores de un tamaño de 512 caracteres, reservándose el sistema para la propia información del disco, que puede ser disco removible o disco duro, teniendo en el segundo más capacidad pero similar estructura. Los de extensión .EXE precisan que el cargador del DOS los coloque en memoria, lo que significa que el sistema operativo debe estar en memoria. Los del tipo .BAT son los compuestos de comandos que se ejecutan secuencialmente. 122 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El sistema operativo tiene varios componentes que son: Rutinas de control, que funcionan con el programa IBM.DOS, y se encargan de las operaciones de E/S. Procesador de comandos, también llamado COMMAND.COM, que procesa los dos tipos de comandos de que dispone el DOS; es decir, los residentes en memoria o internos, y los no residentes o externos, que residen en el disco del sistema operativo. Rutinas de servicios accesibles desde el programa control. También existe la posibilidad de subdividir el disco en subdirectorios que permiten un empleo más ágil de toda la información. MS-DOS esta lejos de ser el sistema operativo ideal, ya que, de momento, se trata de un sistema monotarea, pero aunque esto se resolviera, seguiría presentando problemas de diseño que provocan que el comportamiento de la máquina sea poco fiable. SISTEMA OPERATIVO 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. 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 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 RAM. Los usuarios del OS/2 interactúan 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 rehúsan a cambiar al OS/2 debido a la 123 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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. SISTEMA OPERATIVO MACINTOSH OS La Macintosh es una máquina claramente 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 MS-DOS. Las PC de Macintosh también tiene la capacidad integrada de compartir archivos y comunicarse con o tras PC de Macintosh en una red. El sistema operativo constituye la interfaz entre las aplicaciones y el hardware del Macintosh. El administrador de memoria obtiene y libera memoria en forma automática para las aplicaciones y el sistema operativo. Esta memoria se encuentra normalmente en un área llamada cúmulo. El código de procedimientos de una aplicación también ocupa espacio en el cúmulo. Ahora se presenta una lista de los principales componentes del sistema operativo. El cargador de segmentos carga los programas por ejecutar. Una aplicación se puede cargar completa o bien puede dividirse en segundos individuales que se pueden cargar de manera dinámica conforme se necesiten. El administrador de eventos del sistema operativo informa de la ocurrencia de diversos eventos de bajo nivel, como la presión de un botón del mouse o el tecleo. En condiciones normales, el administrador de eventos de la caja de herramientas transfiere estos eventos a las aplicaciones. El administrador de archivos se encarga de la entrada / salida de archivos; el administrador de dispositivos se encarga de la entrada / salida de dispositivos. Con el manejador de impresoras las aplicaciones pueden imprimir datos en diversas impresoras 124 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los manejadores de dispositivos son programas con los cuales los diversos tipos de dispositivos pueden presentar interfaces uniformes de entrada / salida a las aplicaciones. Tres manejadores de dispositivo están integrados al sistema operativo en ROM: el manejador de disco se encarga del acceso a la información en discos, el manejador de sonido controla los generadores de sonido, y el manejador en serie envía y recibe datos a través de los puertos seriales (estableciendo así la comunicación con dispositivos periféricos en serie como impresoras y módems). Con el administrador de AppleTalk las aplicaciones pueden transmitir y recibir información en una red de comunicaciones AppleTalk. El Administrador de retrazado vertical programa las actividades por realizar durante las interrupciones de retrazado vertical que ocurren 60 veces cada segundo cuando se refresca la pantalla de vídeo. El manejador de errores del sistema toma el control cuando ocurre un error fatal del sistema y exhibe un cuadro de error apropiado. Los programas de utilidad general del sistema operativo ofrecen diversas funciones útiles como la obtención de la fecha y la hora, la comparación de cadenas de caracteres y muchas más. El paquete de iniciación es llamado por el paquete de archivos estándar para iniciar y nombrar discos; se aplica con más frecuencia cuando el usuario inserta un disco al que no se le han asignado valores iniciales. El paquete de aritmética de punto flotante ofrece aritmética de doble precisión. El paquete de funciones trascendentales ofrece un generador de números aleatorios, así como funciones trigonométricas, logarítmicas, exponenciales y financieras. Los compiladores de Macintosh generan en forma automática llamadas a estos paquetes para realizar manipulaciones numéricas. 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. 125 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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. TRADUCTORES DE LENGUAJES DE PROGRAMACIÓN Se han desarrollado algunos lenguajes de alto nivel para facilitar la programación a los usuarios. Sin embargo, antes de que se ejecuten los programas en estos lenguajes, se deben traducir a lenguaje de máquina, que la computadora entiende. El software de sistemas conocido como traductor de lenguajes realiza esta tarea. Existen dos tipos comunes de traductores de lenguajes en las computadoras personales: Los intérpretes y los compiladores. Los interpretes llevan a cabo la traducción del lenguaje original de alto nivel (programa al cual se le llama código fuente) línea por línea, por lo que se realiza mientras el programa se esta ejecutando. En contraste, los compiladores traducen el programa completa y generan esencialmente una nueva versión del lenguaje de máquina llamada código objeto. Cada traductor tiene ventajas y desventajas con respecto a otros. Los intérpretes requieren mucho menos espacio en memoria, debido a que no generan un programa objeto que se necesite almacenar. Tradicionalmente esta ha sido una característica positiva de las computadoras personales, en las que la memoria tiene gran importancia. Además, los intérpretes son mucho más fáciles de utilizar en el desarrollo y mantenimiento de los programas por que los errores se detectan y se corrigen en el momento en que ocurren. Aunque los programas compilados no son tan convenientes en el rastreo de errores, tienen la ventaja de que su ejecución es mucho más rápida y eficiente. Esto se debe a que una vez que el programa se ha probado y se ha compilado, el código objeto en lenguaje de máquina se almacena en un disco y se ejecuta con gran rapidez. Esto contrasta con un lenguaje interpretado, donde cada una de las líneas se debe reinterpretar en cada ejecución. Se han desarrollado algunos lenguajes de alto nivel para facilitar la programación a los usuarios. Sin embargo, antes de que se ejecuten los programas en estos lenguajes, se deben traducir a lenguaje de máquina, que la computadora entiende. El software de sistemas conocido como traductor de lenguajes realiza esta tarea. 126 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Existen dos tipos comunes de traductores de lenguajes en las computadoras personales: los intérpretes y los compiladores. Compilador Es un programa que lee el código escrito en un lenguaje (lenguaje origen), y lo traduce o traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo). Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa. Programa Fuente Programa Objeto Compilador La compilación de programas. Un compilador es un programa que traduce los programas fuente escritos en lenguajes de alto nivel al lenguaje máquina. Los programas escritos en lenguajes de alto nivel se llaman programas fuente y el programa traducido programa objeto o código objeto. El compilador traduce sentencia a sentencia el programa fuente. Los lenguajes compiladores típicos son: C, C++, PASCAL, FORTRAN, COBOL. La compilación y sus fases. La compilación es el proceso de traducción de programas fuente a programas objeto. El programa objeto obtenido de la compilación a sido traducido normalmente a código máquina. Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable. 127 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Interprete Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. Los interpretes en lugar de producir un Lenguaje objetivo, como en los compiladores, lo que hacen es realizar la operación que debería realizar el Lenguaje origen. Un intérprete lee el código como esta escrito y luego lo convierte en acciones, es decir, lo ejecuta en ese instante. Los programas interpretes clásicos son: Basic, Q Basic y QuickBASIC. La siguiente figura muestra el funcionamiento de un intérprete. Programa Fuente Interprete Traducción y ejecución línea a línea 128 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Diferencia entre Compilador e Intérprete Los compiladores difieren de los intérpretes en varios aspectos: Un programa que ha sido compilado puede correr por si solo, pues en el proceso de compilación se lo transformo en otro lenguaje (lenguaje máquina). Un intérprete traduce el programa cuando lo lee, convirtiendo el código del programa directamente en acciones. La ventaja del intérprete es que dado cualquier programa se puede interpretarlo en cualquier plataforma (sistema operativo), en cambio el archivo generado por el compilador solo funciona en la plataforma en donde se lo ha creado. Pero por otro lado un archivo compilado puede ser distribuido fácilmente conociendo la plataforma, mientras que un archivo interpretado no funciona si no se tiene el intérprete. Hablando de la velocidad de ejecución un archivo compilado es de 10 a 20 veces más rápido que un archivo interpretado. 5.2 CONTROL Y MANEJO DE INTERRUPCIONES. Mecanismo mediante el cual el procesador abandona la tarea que estaba ejecutando y ― dedica su atención‖ a otro proceso cargado en la memoria. De hecho, las interrupciones son la base sobre la que se diseña los sistemas operativos de multiprogramación, y forma parte central de su estudio. Durante un segundo de la operación de un sistema de cómputo complejo el procesador central puede ser interrumpido varias decenas o centenas de veces, y esto no representa ninguna anomalía, sino que es la forma normal de trabajo. Una Interrupción son principalmente subrutinas de la BIOS o el DOS que pueden ser llamadas por un programa. Su función es controlar el hardware, servir de contacto entre los programas y las funciones del BIOS y del dos. 5.2.1 INTERRUPCIONES DENTRO DE UN COMPUTADOR. Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecución de un programa. Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas. Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj interno de la computadora, el hardware hace el llamado a esta interrupción varias veces durante un segundo para mantener la hora actualizada. 129 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Aunque no podemos manejar directamente esta interrupción (no podemos controlar por software las actualizaciones del reloj), es posible utilizar sus efectos en la computadora para nuestro beneficio, por ejemplo para crear un "reloj virtual" actualizado continuamente gracias al contador del reloj interno. Únicamente debemos escribir un programa que lea el valor actual del contador y lo traduzca a un formato entendible para el usuario. 5.2.2 INTERRUPCIONES DE E/S. Un sistema de computación de propósito general consiste en una CPU y varios controladores de dispositivos conectados a través de un bus común. Cada controlador de dispositivo se encarga de un tipo específico de dispositivo. Para iniciar una operación de E/S, la CPU carga los registros apropiados dentro del controlador del dispositivo. El controlador, a su vez, examina el contenido de estos registros para determinar que acción debe realizar. Por ejemplo, si encuentra una solicitud de lectura, el controlador iniciara la transferencia de datos del dispositivo a su buffer local. Cuando haya terminado de hacer esto, el controlador informara a la CPU que ha completado su operación. Esta comunicación se efectuara generando una interrupción. Esta situación ocurre en general, como resultado de una solicitud de E/S por parte de un proceso del usuario. Una vez iniciada la E/S, hay dos posible cursos de acción. En el caso más sencillo, se inicia la E/S; luego, al completarse la operación, el control se devuelve al proceso del usuario. Este caso se conoce como E/S sincrónica. La posibilidad, llamada E/S asincrónica, devuelve el control al programa del usuario sin esperar que se complete la E/S. Así la E/S puede continuar mientras se realizan otras operaciones del sistema. La espera a que se complete la E/S puede hacerse de dos maneras. Algunos computadores tienen una operación esperar (wait) especia l que mantiene la CPU ―ejecutando en vacío‖ hasta la siguiente interrupción. Las máquinas que no tienen tal interrupción podrían tener un ciclo de espera: Ciclo: jmp ciclo Este ciclo cerrado continúa ejecutándose hasta que ocurre una interrupción, lo que transfiere el control a otra parte del sistema operativo. Tal ciclo también podría tener que indagar cualesquier dispositivos de E/S que no reconozcan la estructura de interrupciones; lo que hacen estos dispositivos es ―izar‖ una bandera (poner en un bit) en uno de sus registros y esperar que el sistema operativo vea la bandeja. Si la CPU siempre espera a que la E/S termine, sólo podrá haber una solicitud de E/S pendiente en cualquier momento dado. Así cada vez que ocurre una interrupción de E/S, el sistema operativo sabe exactamente cual dispositivo esta interrumpiendo. 130 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Por otro lado esta técnica excluye las operaciones de E/S concurrentes a varios dispositivos, y también la posibilidad de superponer cálculos útiles con E/S. Una mejor alternativa es iniciar la E/S y luego seguir procesando código del sistema operativo o de un programa del usuario. En tal caso, se necesitara una llamada al sistema (una solicitud al sistema operativo) para que el programa de usuario pueda esperar la terminación de la E/S, si lo desea. En caso de que no haya programas de usuario listos para ejecutarse, y el sistema operativo no tenga otra cosa que hacer, se necesitara la instrucción de esperar o el ciclo de ejecutar en vacío, igual que antes. También es preciso poder seguir la pista a muchas solicitudes de E/S al mismo tiempo. Para este fin, el sistema operativo emplea una tabla que contiene una entrada para cada dispositivo de E/S: la tabla de estados de dispositivos. Cada entrada de la tabla indica el tipo de dispositivo, su dirección y su estado (apagado, ocioso u ocupado). Si el dispositivo esta ocupado con una solicitud, el tipo de solicitud y otros parámetros se guardaran en la entrada de la tabla que corresponde a ese dispositivo. Dado que es posible que otros procesos emitan solicitudes para usar ese mismo dispositivo, el sistema operativo también mantiene una cola de espera –una lista de las solicitudes que están esperando- para cada dispositivo de E/S. Un dispositivo de E/S interrumpe cuando necesita servicio. Al ocurrir una interrupción, lo primero que hace el sistema operativo es determinar cual dispositivo de E/S la causo, y luego utiliza un índice para consultar la tabla de dispositivos de E/S y determinar la situación de ese dispositivo, modificando la entrada de modo que refleje la ocurrencia de la interrupción. Casi todos los dispositivos indican que han terminado de atender una solicitud de E/S generando una interrupción. Si hay solicitudes adicionales esperando en la cola de este dispositivo, el sistema operativo comenzara a procesar la siguiente solicitud. Por último, se devuelve el control desde la interrupción de E/S. Si un proceso estaba esperando que se completara esa solicitud, ahora se le puede devolver el control. Si no, se continuara con lo que se estaba haciendo antes de la interrupción de E/S: la ejecución del programa del usuario (el programa inició una operación de E/S, la cual ya termino, pero el programa todavía no esta esperando que se complete la operación) o el ciclo de espera (el programa inicio dos o más operaciones de E/S y esta esperando que termine una en particular, pero esta interrupción fue de una de las otras). En un sistema de tiempo compartido, el sistema operativo podría conmutar a este proceso listo para ejecutarse. Los esquemas utilizados por algunos dispositivos de entrada pueden diferir del que se ha descrito. Muchos sistemas interactivos permiten a los usuarios teclear por adelantado, o introducir datos antes de que estos sean solicitados, en las terminales. En este caso, podrían ocurrir interrupciones para indicar la llegada de caracteres desde la terminal, aunque la tabla de estado de dispositivos indica que ningún programa ha solicitado entradas de ese dispositivo. Si se permite el tecleo adelantado, se debe contar con un buffer para guardar los 131 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS caracteres tecleados hasta que algún programa los requiera. En general, se necesitara un buffer para cada terminal de entrada. La principal ventaja de la E/S asincrónica es el aumento en la eficiencia del sistema. Mientras se esta efectuando E/S, se puede utilizar la CPU para procesar o iniciar operaciones de E/S a otros dispositivos. Dado que E/S puede ser lenta en comparación con la velocidad del procesador, el sistema aprovechara mucho mejor sus recursos. 5.2.3 INTERRUPCIONES DE PROGRAMA. Interrupciones de software Las interrupciones de software pueden ser activadas directamente por el ensamblador invocando al número de interrupción deseada con la instrucción INT. El uso de las interrupciones nos ayuda en la creación de programas, utilizándolas nuestros programas son más cortos, es más fácil entenderlos y usualmente tienen un mejor desempeño debido en gran parte a su menor tamaño. Este tipo de interrupciones podemos separarlas en dos categoriaza: las interrupciones del sistema operativo DOS y las interrupciones del BIOS. La diferencia entre ambas es que las interrupciones del sistema operativo son más fáciles de usar pero también son más lentas ya que estas interrupciones hacen uso del BIOS para lograr su cometido. En cambio las interrupciones del BIOS son mucho más rápidas pero tienen la desventaja que, como son parte del hardware son muy específicas y pueden variar dependiendo incluso de la marca del fabricante del circuito. La elección del tipo de interrupción a utilizar dependerá únicamente de las características que le quiera dar a su programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del DOS). Interrupción 21H Propósito: Llamar a diversas funciones del DOS. Sintaxis: Int 21H Nota: Cuando trabajamos en MASM es necesario especificar que el valor que estamos utilizando es hexadecimal. Esta interrupción tiene varias funciones, para accesar a cada una de ellas es necesario 132 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS que el registro AH se encuentre el número de función que se requiera al momento de llamar a la interrupción. Funciones para desplegar información al video. 02H Exhibe salida 09H Impresión de cadena (video) 40H Escritura en dispositivo/Archivo Funciones para leer información del teclado. 01H Entrada desde teclado 0AH Entrada desde teclado usando buffer 3FH Lectura desde dispositivo/archivo Funciones para trabajar con archivos. Método FCB 0FH Abrir archivo 14H Lectura secuencial 15H Escritura secuencial 16H Crear archivo 21H Lectura aleatoria 22H Escritura aleatoria Handles 3CH Crear archivo 3DH Abrir archivo 3EH Cierra manejador de archivo 3FH Lectura desde archivo/dispositivo 40H Escritura en archivo/dispositivo 42H Mover apuntador de lectura/escritura en archivo 5.2.4 INTERRUPCIONES EXTERNAS Las interrupciones externas las generan los dispositivos periféricos, como pueden ser: Teclado. 133 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Impresoras: Tarjetas de comunicaciones, etc. También son generadas por los coprocesadores. No es posible desactivar a las interrupciones externas. Estas interrupciones no son enviadas directamente a la CPU, sino que se mandan a un circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado por la CPU utilizando para tal control una serie de vías de comunicación llamadas puertos. 5.3 MÉTODOS DE ACCESO. Método de acceso secuencial 134 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Almacena records en orden ascendente o descendente determinado por la clave de récord y datos que identifican un récord de otros. El número de seguro social sirve como clave de récord en muchos archivos secuénciales. El archivo debe ser leído y procesado en secuencia. Se requiere que se lean todos los records hasta que la clave del récord deseado sea localizada (primer récord, segundo récord,...). Es un proceso relativamente lento. Es apropiado para procesar muchos récords a la vez en cintas magnéticas o discos. Se utiliza para preparar cheques de nóminas. Método de acceso directo Utiliza algoritmos o índices para localizar un récord. Un algoritmo es una serie de pasos que se siguen para resolver un problema (por ejemplo: una fórmula matemática o la lógica de un programa). Un índice es una lista de las claves de récord que contiene todos los records del archivo y sus localizaciones. El acceso directo es apropiado para las aplicaciones donde la información es requerida, según ocurren las preguntas. Un ejemplo del mismo es: asignar asiento en un vuelo. Los métodos de acceso se refieren a las capacidades que el subsistema de archivos provee para accesar datos dentro de los directorios y medios de almacenamiento en general. Se ubican tres formas generales: acceso secuencial, acceso directo y acceso directo indexado. Acceso secuencial: Es el método más lento y consiste en recorrer los componentes de un archivo uno en uno hasta llegar al registro deseado. Se necesita que el orden lógico de los registros sea igual al orden físico en el medio de almacenamiento. Este tipo de acceso se usa comúnmente en cintas y cartuchos. Acceso directo: Permite accesar cualquier sector o registro inmediatamente, por medio de llamadas al sistema como la de seek. Este tipo de acceso es rápido y se usa comúnmente en discos duros y discos o archivos manejados en memoria de acceso aleatorio. Acceso directo indexado: Este tipo de acceso es útil para grandes volúmenes de información o datos. Consiste en que cada archivo tiene una tabla de apuntadores, donde cada apuntador va a la dirección de un bloque de índices, lo cual permite que el archivo se expanda a través de un espacio enorme. Consume una cantidad importante de recursos en las tablas de índices pero es muy rápido. 5.4 MULTIPROGRAMACIÓN. La multiprogramación es un modo de trabajo en el que se pueden ejecutar varios programas simultáneamente con el fin de aprovechar al máximo los recursos de la computadora. 135 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Surgió de la imposibilidad, para los sistemas o modos de trabajos anteriores, de que con un solo trabajo se pudiese tener ocupados al procesador y a los dispositivos de entrada y salida durante todo el tiempo. Esquema empleado en computadoras medianas y grandes para atender concurrentemente a más de un usuario. Un sistema operativo de multiprogramación mantiene cargados varios procesos en la memoria central, y ―reparte‖ el procesador entre ellos para darles atención a todos en una unidad de tiempo, que casi siempre es un segundo o menos. Esto significa que en un segundo el procesador central ejecuta un fragmento de cada proceso residente en la memoria, dando a los usuarios la impresión de que están siendo atendidos en forma individual. Hay una distinción técnica entre multiprogramación y tiempo compartido, que no es relevante desde el punto de vista de el usuario, y que consiste en que el sistema de multiprogramación ―abandona‖ al proceso que pidió una operación (lenta) de E/S, para inmediatamente comenzar (o volver a iniciar) algún otro proceso. Cuando el procesador detecta la aparición de una de estas operaciones – por medio de una interrupción – dirige el pedido al canal para que este lo atienda. Cuando se cumpla la operación, el procesador es interrumpido de nuevo para que este en posibilidades de atender de nuevo al proceso en cuestión. El procesamiento por lotes dedica los recursos del sistema informático a un único programa cada vez. La ejecución serie de los programas provoca que o bien el procesador o bien los dispositivos de E/S se encuentren inactivos en algún momento incluso cuando el flujo de trabajos a la entrada nunca esta vacío. Los sistemas de multiprogramación reales permiten generalmente que más de dos programas compitan por los recursos del sistema al mismo tiempo. El número de programas activamente en competencia por los recursos de un sistema informático multiprogramado se denomina grado de multiprogramación. Mayores grados de multiprogramación deberían producir mayor utilización de recursos. La multiprogramación ha sido tradicionalmente empleada para aumentar la utilización de los recursos de un sistema informático y para soportar múltiples usuarios simultáneamente activos. Los sistemas de tiempo compartido soportan múltiples usuarios interactivos. Los programas de sistema y de usuarios, además de los datos, están guardados en almacenamiento secundario y son gestionados por el sistema de archivos. Los usuarios se comunican normalmente con un sistema interactivo por medio de órdenes tecleadas en los terminales. El código fuente de un programa usuario puede ser introducido y editado des de un terminal bajo 136 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS control de un programa editor de textos. En respuesta a una orden del usuario, un archivo producido de esta manera es procesado por un traductor de lenguaje para producir un archivo objeto. Los errores sintácticos, son corregidos editando el archivo de texto que contiene el código fuente. Tras una compilación con éxito, el archivo de el código objeto es procesado por el enlazador y los programas de biblioteca para producir un archivo de programa ejecutable. En respuesta a una orden EJECUTAR, el SO carga en memoria el contenido del archivo de programa designado y ejecuta el programa. Los sistemas interactivos proporcionan un entorno conveniente y comparativamente productivo para el desarrollo y ejecución de programas. En contraste con los sistemas por lotes, que imponen dilaciones en los tiempos de retorno y fuerzan la depuración fuera de línea, el sistema de tiempo compartido proporciona generalmente tiempos de respuesta de terminal relativamente rápidos y permiten ciclos rápidos entre las diferentes etapas de desarrollo de programas, tales como la edición y la depuración. El tiempo compartido permite que una multitud de usuarios compartan los recursos de una instalación informática como si cada usuario dispusiera de toda la maquina para si mismo. Programa 2 Programa 1 P1 INACTIVO P1 INACTIVO P1 P2 INACTIVO P2 INACTIVO P2 (a) Ejecución secuencial Programa 1 Programa 2 P1 P2 P1 P2 P1 P2 ( b) Ejecución multiprogramada Representación de Multiprogramación 137 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS MULTIPROCESO Las computadoras que tienen más de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de las 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. 5.5 TELEPROCESO. Técnica para comunicar computadoras o terminales remotas entre si. El diseño de una red de teleproceso debe de tomar en cuenta los flujos y cantidades de información, la velocidad de los canales de comunicación, la localización de los equipos, y las capacidades del software de comunicaciones disponibles. Los grandes sistemas de teleproceso emplean facilidades de comunicación por microondas y satélites, y se cuentan entre los ejemplos más complejos y elaborados de la tecnología. 138 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Historia del Teleproceso Desde el comienzo de la historia de la humanidad, uno de los factores que han constituido y constituye un elemento vital para la evolución y el desarrollo de la humanidad es la comunicación. Las telecomunicaciones comenzaron en 1830 con la utilización del Telégrafo, que permitió diversos tipos de comunicaciones digitales utilizando códigos como el Morse inventado por Samuel F. B. Morse en 1820. Morse comenzó a estudiar las comunicaciones en 1830 teniendo preparada una máquina en 1835 compuesta en el emisor por un conjunto de piezas con dientes correspondientes a las letras y las cifras que ensambladas para formar un mensaje y pasadas a través del correspondiente dispositivo, provocaban las sucesivas aperturas y cierres de un interruptor que producía la señal enviada por la línea. En el receptor, un electroimán recibía dicha señal y producía el desplazamiento de un lápiz que escribía en el papel la forma de la señal con la que se podía descifrar el mensaje recibido. En 1855, Charles Wheatstone inventó el formato de una cinta junto con la perforadora correspondiente que permitía el envío y recepción de mensajes en código Morse en modo off-line, es decir, sin que un operador se encuentre permanentemente pendiente de la transmisión y recepción de los mensajes. En 1874, el francés Emile Baudot, inventó el telégrafo múltiple que permitía el envío de varios mensajes por la misma línea. Se conectaban varios manipuladores de cinco teclas a una misma línea a través de un distribuidor que repartía el tiempo entre los distintos usuarios. En el receptor existía un distribuidor similar al del transmisor y sincronizado con él, repartía los mensajes entre distintas impresoras. Más tarde, en 1876 Alexander Graham Bell inventó el Teléfono con el que comenzó la comunicación de la voz a distancia. Este invento hizo que rápidamente se unieran por cable muchas ciudades y dentro de ellas muchas empresas particulares, lo cual facilitó mucho la utilización de otros medios de comunicación posteriores que aprovecharon las propias líneas telefónicas. Con la aparición de máquinas de escribir que incorporaban redes para la activación de la escritura, durante la Primera Guerra Mundial, E.E. Kleinschmidt desarrolló un sistema de transmisión que no requería de operadores en continúa atención. Este sistema hizo posible la aparición en 1910 del Teletipo o teleimpresor, que permitió el envío de mensajes a distancia utilizando el código Baudot creado por Emile Baudot en 1874. Ya a partir de 1950, con la aparición del módem, comenzaron los primeros intentos de transmisión de datos entre computadoras en aplicaciones de gestión, pero fue en la década de los sesenta, y fundamentalmente en 139 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS la de los setenta, cuando se implantó definitivamente la conexión a distancia de todo tipo de computadoras y periféricos. El primer proyecto importante que incorpora técnicas teleinformáticas fue el SAGE (Service Automatic Ground Environment) desarrollado por las Fuerzas Aéreas de los Estados Unidos de América en 1958. En la década de los sesenta aparecen, por un lado, los lenguajes de programación interactivos y por otro, los sistemas operativos conversacionales que, junto a las tecnologías de conmutación de paquetes y los satélites de comunicaciones, propiciaron los primeros pasos para la verdadera unión entre las telecomunicaciones y la informática. En la década de los setenta, marcada por una gran evolución en la conectividad, aparecen las redes de computadoras, los protocolos y las arquitecturas teleinformáticas. En 1971 aparece la red ARPANET, fundada por la organización DARPA (Defense Advanced Research Projects Agency) que ha dado origen a la red Internet que actualmente integra a las más importantes instituciones académicas, de investigación y desarrollo que existen en el mundo. En esta red se desarrolló el conjunto de protocolos denominados TCP/IP que han ejercido influencia en las redes teleinformáticas. Esta década de los setenta se caracteriza también por el gran auge que toma la normalización. En 1976, el Comité Consultivo Internacional Telefónico y Telegráfico (CCITT) normalizó las redes de conmutación de circuitos y las redes de conmutación de paquetes. En 1977, la Organización de Estándares Internacionales modela y normaliza la interconexión de computadoras creando el Modelo Básico de Referencia para la Interconexión de Sistemas Abiertos (OSI), que fue publicado años después. El final de la década de los setentas viene marcada, fundamentalmente, por la aparición en 1978 de las Redes de Área Local (LAN) que permiten la interconexión entre equipos informáticos en un entorno reducido. La década de los ochenta, con la popularización de las Computadoras Personales, ha marcado un desarrollo definitivo en el campo teleinformático y lo ha popularizado. También en esta década aparecen las Redes Digitales para dar servicio especializado a usuarios que requieran la integración de información compuesta por texto, datos, imagen y voz. Actualmente, en Telecomunicaciones se tiende al abaratamiento de la utilización de las redes, así como a nuevas posibilidades de transmisión proporcionadas por las Redes Digitales de Servicios Integrados de Banda Ancha que operan a gran velocidad. 140 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Generalidades del Teleproceso Teleproceso.- Es el procesamiento de datos usando las telecomunicaciones (transmisión de señales a grandes o pequeñas distancias).- El teleproceso puede ejecutarse de dos maneras diferentes: ON LINE.- Un servidor controla la transmisión y se procesa los datos inmediatamente después de haber sido recibidas. OFF LINE.-Cuando la transmisión de datos es recibida por un dispositivo externo para posteriormente ser procesada. UNIDAD VI: TOPICOS. 6.1 CULTURA Y DESARROLLO ORGANIZACIONAL. Surge la necesidad de potenciar la implementación de procesos y herramientas de intercambio de información. La evolución de los sistemas informáticos exigen un salto cualitativo en la gestión y en la cultura y desarrollo organizacional. Por lo tanto se debe poner énfasis en la dotación de tales herramientas y la generación de las condiciones culturales para asegurar la efectividad de las acciones y mantener la actualización de dichos sistemas informáticos. Por lo dicho, se plantea el objetivo global de implementación 141 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS de un Sistema Integrado en Red de Información para la gestión con incidencia, desarrollo y alcance de las metas propuestas para el Sistema Integrado en Red de Información. Al respecto cabe decir que las herramientas de información en Red (cuyo actual paradigma es Internet) son un medio para el desarrollo de estrategias de adquisición de conocimientos y de desarrollo institucional. Estas herramientas requieren de una comprensión profunda del fenómeno de la comunicación en línea, la interactividad, el mundo digital y el salto cultural que se plantea en toda organización. Dada la escasez de antecedentes y experiencias es necesario crear nuevas formas y encarar actividades innovadoras que aprovechen el potencial de las redes de información en función de poner en marcha efectivas mejoras e innovaciones con respecto a su entorno y a su desarrollo. La creación y formación de las redes actuales no fueron obra de la casualidad, sino de la necesidad de un mundo en crecimiento, de comunicación e intercambio de información de una manera rápida y segura. Parte de lo que hace tan interesante a la tecnología TCP/IP es su adopción casi universal, así como el tamaño y el índice de crecimiento de la Internet global. ARPA comenzó a trabajar con una tecnología de red de redes a mediados de los años setenta; su arquitectura y protocolos tomaron su forma actual entre 1977 y 1979. En ese tiempo, ARPA era conocida como la principal agencia en proporcionar fondos para la investigación de redes de paquetes conmutados y fue pionera de muchas ideas sobre la conmutación de paquetes con su bien conocida ARPANET. ARPANET utilizaba interconexión convencional de línea rentada punto a punto, pero ARPA también ofreció fondos para la exploración de conmutación de paquetes a través de redes de radio y mediante canales de comunicación por satélite. De hecho, la diversidad creciente de tecnologías de hardware de red obligó a ARPA a estudiar la interconexión de redes y alentó el enlace de redes. La disponibilidad de ARPA en cuanto a fondos para la investigación, atrajo la atención y la imaginación de muchos grupos de investigación en especial de los investigadores que ya tenían experiencia previa utilizando conmutación de paquetes en ARPANET. ARPA llevó a cabo reuniones informales de investigadores para compartir ideas y discutir los resultados de los experimentos. En 1979, había tantos investigadores involucrados en los esfuerzos del TCP/IP, que ARPA formó un comité informal para coordinar y guiar el diseño de los protocolos y la arquitectura del Internet que surgía. Llamada Junta de Control y Configuración de Internet (ICCB), el grupo se reunía con regularidad hasta 1983, año en que fue reorganizado. La Internet global se inició alrededor de 1980 cuando ARPA comenzó a convertir las máquinas conectadas a sus redes de investigación en máquinas con el nuevo protocolo TCP/IP. ARPANET, una vez en su lugar, se convirtió rápidamente en la columna vertebral del nuevo Internet, y fue utilizada para realizar muchos de los primeros experimentos con el TCP/IP. La transición hacia la tecnología Internet se completó en enero de 142 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 1983, cuando la Oficina del Secretario de Defensa ordenó que todas las computadoras conectadas a redes de largo alcance utilizaran el TCP/IP. Al mismo tiempo, la Agencia de Comunicación del a Defensa (DCA), dividió ARPANET en dos redes separadas, una para la investigación futura y otra para la comunicación militar. La parte de investigación conservó el nombre de ARPANET; mientras que la parte militar, que era un poco más grande, se conoció como red militar MILNET. Para alentar a los investigadores universitarios a que adoptaran y utilizaran los nuevos protocolos, ARPA puso a su disposición una implementación de bajo costo. En ese tiempo, la mayor parte de los departamentos universitarios de ciencias de la computación utilizaban una versión del sistema operativo UNIX, disponible en Distribución Berkeley de Software de la Universidad de California, en general conocido como UNÍS Berkeley o UNIX BSD. Al proporcionar fondos a Bolt Beranek de Newman, Inc. (BBN), para implementar sus protocolos TCP/IP en la utilización de UNIX y al proporcionar fondos a Berkeley para integrar los protocolos a su sistema de distribución de software, ARPA fue capaz de llegar a más del 90% de los departamentos universitarios de ciencias de la computación. El nuevo software de protocolo llegó en un momento particularmente significativo pues muchos departamentos estaban adquiriendo una o dos computadoras adicionales y sólo las conectaban mediante redes de área local. Los departamentos necesitaban protocolos de comunicación y no había otros generalmente disponibles. La distribución Berkeley de software se volvió popular ya que ofrecía mucho más que protocolos básicos TCP/IP. Además de los programas normales de aplicación TCP/IP, Berkeley ofrecía un grupo de utilidades para servicios de red que se parecían a los servicios de UNIX utilizados en una sola máquina. La principal ventaja de las utilidades Berkeley reside en su parecido con el UNIX normal. Por ejemplo, un usuario experimentado de UNIX puede aprender rápidamente a utilizar la utilidad de copia remota de archivos de Berkeley (rcp), debido a que se comporta de la misma manera que la utilidad UNIX de copia de archivo, a excepción de que permite que los usuarios copien archivos hacia y desde máquinas remotas. Además de un grupo de programas de utilidades, UNIX Berkeley proporcionó una nueva abstracción de sistema operativo conocida como socket, la cual permite que programas de aplicación accesen a protocolos de comunicación. Como generalización del mecanismo UNIX para I/O, el socket tiene opciones para muchos tipos de protocolo de red además del TCP/IP. Su diseño ha sido motivo de debate desde su introducción, y muchos investigadores de sistemas operativos han propuesto alternativas. Sin embargo, independientemente de sus méritos generales, la introducción de la abstracción socket fue importante ya que permitió a los 143 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS programadores utilizar protocolos TCP/IP sin mucho esfuerzo. por lo tanto, alentó a los investigadores a experimentar con el TCP/IP. El éxito de la tecnología TCP/IP y de Internet entre los investigadores de ciencias de la computación guió a que otros grupos la adoptaran. Dándose cuenta de que la comunicación por red pronto sería una parte crucial de la investigación científica, la Fundación Nacional de Ciencia s tomó un papel activo al expandir el Internet TCP/IP para llegar a la mayor parte posible de científicos. Iniciando en 1985, se comenzó un programa para establecer redes de acceso distribuidas alrededor de sus centros con supercomputadoras. En 1986 se aumentaron los esfuerzos para el enlace de redes al proporcionar fondos para una nueva red de columna vertebral de área amplia, llamada NSFNET, que eventualmente alcanzó todos los centros con supercomputadoras y los unificó a ARPANET. En 1986, la NSF proporcionó fondos para muchas redes regionales, cada una de las cuales conecta en la actualidad importantes instituciones científicas de investigación en cierta área. Todas las redes con fondos de la NSF utilizan los protocolos TCP/IP y todas forman parte de la Internet global. En la red de conmutación de paquetes una sola línea es compartida por múltiples usuarios. Estas redes tenían la particularidad de ser Redes de conmutación de paquetes. El paquete debe tener la información suficiente para llegar a su destino, nombre de quien lo envía y destino. En la red de conmutación hay dispositivos que "conmutan" los paquetes para llegar a su destino. 3 6.2 MEMORIA CACHE. La memoria Cache es una clase de memoria especial de alta velocidad que esta diseñada para acelerar el proceso de las instrucciones de memoria en la CPU. La CPU puede obtener las instrucciones y los datos ubicados en la memoria Cache mucho más rápidamente que las instrucciones y datos almacenados en la memoria principal. Por ejemplo, en una placa madre típica de 100 megahertz, el CPU necesita hasta 180 nanosegundos para obtener información de la memoria principal, mientras que la información de la memoria Cache sólo necesita de 45 nanosegundos. Por lo tanto, cuantas más instrucciones y datos la CPU pueda obtener directamente de la memoria Cache, más rápido será el funcionamiento de la computadora. Las clases de memoria cache incluyen cache principal (también conocida como cache de Nivel 1 [L1]) y cache secundaria (también conocida como cache de Nivel 2 [L2]). La memoria cache también puede ser interna o externa. La memoria cache interna esta incorporada en la CPU de la computadora, mientras que la externa se encuentra fuera de la CPU. 144 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La memoria cache principal es la que se encuentra más próxima a la CPU. Normalmente, la memoria cache principal esta incorporada en la CPU y la memoria cache secundaria es externa. Algunos modelos anteriores de computadoras personales tienen chips de CPU que no incluyen memoria cache interna. En estos casos, la memoria cache externa, si existiera, sería en realidad cache primaria (L1). La memoria cache también se puede comparar con el cinturón de herramientas de un trabajador, en el cual se colocan las herramientas y las piezas que se necesitan con mayor frecuencia. De acuerdo con esta analogía, la memoria principal es como una caja portátil de herramientas y el disco duro un trailer completo de equipo ó el taller. El "cerebro" del sistema de la memoria cache es el llamado controlador de memoria cache. Cuando un controlador de memoria cache accesa una instrucción de la memoria principal, también almacena las instrucciones posteriores. Esto se hace debido a que existe una alta probabilidad de que las instrucciones adyacentes también sean necesarias. Esto aumenta la probabilidad de que el CPU encuentre las instrucciones que necesita en la memoria cache, permitiendo así que la computadora funcione con mayor rapidez. ¿Qué es la memoria caché? Es un tipo de memoria donde se guardan datos que la PC necesita para trabajar. La memoria principal de la PC (RAM) y la memoria caché son iguales en muchos aspectos; la diferencia está en el uso que se le da a la caché. Debido a la gran velocidad alcanzada por los microprocesadores, la RAM de la computadora no es lo suficientemente rápida para almacenar y transmitir los datos que el microprocesador necesita, por lo que tendría que esperar a que la memoria estuviera disponible y el trabajo se atrasaría. Para evitarlo, se usa una memoria muy rápida, estratégicamente situada entre el micro y la RAM: la memoria caché. ¿La memoria caché es muy rápida? Unas 5 o 6 veces más que la RAM. Esto la encarece bastante, y ése es uno de los motivos por los cuales su capacidad es mucho menor que el de la RAM: un máximo cercano a 512 kilobytes (512 Kb), es decir, medio "mega", frente a 16 ó 32 megas de RAM. Además, este precio elevado la hace candidata a falsificaciones y engaños. Pero la caché no sólo es rápida; además, se usa con una finalidad específica. Cuando una computadora trabaja, el microprocesador opera en ocasiones con un número reducido de datos, pero que tiene que traer y llevar a la memoria en cada operación. Si situamos en medio del camino de los datos una memoria intermedia que almacene los datos más usados, los que casi seguro necesitará el microprocesador en la próxima 145 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS operación que realice, por lo tanto ahorrará mucho tiempo del tránsito y acceso a la lenta memoria RAM; esta es la segunda utilidad de la caché. A continuación mostramos una foto de unos chips de caché: La memoria de la CPU es más rápida que la principal, lo ideal sería que la memoria principal fuera de la misma tecnología que los registros de la CPU pero, debido a su alto costo, se tiende a soluciones intermedias. Una solución sería aprovecharnos del principio de localidad y colocar una memoria muy rápida entre la CPU y la memoria principal de tal forma que la CPU acceda más veces a esa memoria que a memoria principal. Esta memoria muy rápida deberá ser pequeña para que los costos no sean excesivos. A esta memoria se le denomina memoria cache. El funcionamiento de la memoria cache se basa en la transferencia de partes (bloques) de la memoria principal y la memoria cache así como de la transferencia de palabras entre memoria cache y la CPU. El tamaño de la caché Aunque la caché sea de mayor velocidad que la RAM, si usamos una caché muy grande, el micro tardará un tiempo apreciable en encontrar el dato que necesita. Esto no sería muy importante si el dato estuviera allí, pero ¿y si no está? Entonces habrá perdido el tiempo, y tendrá que sumar ese tiempo perdido a lo que tarde en encontrarlo en la RAM. 146 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Por tanto, la caché actúa como un resumen, una "chuleta" de los datos de la RAM, y todos sabemos que un resumen de 500 páginas no resulta nada útil. Se puede afirmar que, para usos normales, a partir de 1 MB (1024 Kb) la caché resulta ineficaz, e incluso pudiera llegar a ralentizar el funcionamiento del ordenador. El tamaño idóneo depende del de la RAM, y viene recogido en la siguiente tabla: RAM (MB) Caché (Kb) 1a4 128 ó 256 4 a 12 256 12 a 32 512 más de 32 512 a 1024 Se debe hacer notar que muchos "chipsets" para Pentium, como los conocidos Intel "Tritón" VX o TX, no permiten cachear más de 64 MB de RAM; es decir, que a partir de esta cifra, ES COMO SI NO EXISTIERA CACHé EN ABSOLUTO. La caché interna o L1 La caché a la que nos hemos referido hasta ahora es la llamada "caché externa" o de segundo nivel (L2). Existe otra, cuyo principio básico es el mismo, pero que está incluida en el interior del micro; de ahí lo de interna, o de primer nivel (L1). Esta caché funciona como la externa, sólo que está más cerca del micro, es más rápida y más cara, además de complicar el diseño del micro, por lo que su tamaño se mide en pocas decenas de kilobytes. Se incorporó por primera vez en los micros 486, y por aquel entonces era de 8 Kb (aunque algunos 486 de Cyrix tenían sólo 1 Kb). Hoy en día se utilizan 32 ó 64 Kb, aunque seguro que pronto alguien superará esta cifra. La importancia de esta caché es fundamental; por ejemplo, los Pentium MMX son más rápidos que los Pentium normales en aplicaciones no optimizadas para MMX, gracias a tener el doble de caché interna. 147 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Dentro de la gran carcasa negra encontramos una placa de circuito en la que va soldado el micro en sí (en el centro de la imagen), junto con varios chips que forman la caché, externa a lo que es propiamente el micro. Sin embargo, esta caché funciona a una frecuencia que es la mitad de la del micro (es decir, a 133, 150 MHz o más), mientras que la caché externa clásica funciona a la de la placa base (de 50 a 66 MHz en los Pentium y 100 MHz en los AMD K6-2). Los que casi pueden presumir de tener una gran caché interna son los micros: Pentium III Coppermine, Celeron Mendocino (no los antiguos Celeron, que carecían de caché L2 en absoluto) y AMD Athlon Thunderbird y Duron. Estos micros tienen la caché L2 integrada en el propio encapsulado del micro y la hacen funcionar a la misma velocidad que éste, de forma que no llega a ser tan rápida como la caché L1 pero sí lo bastante como para ser más rápidos que los modelos con caché externa, pese a tener la mitad o menos de caché. Tecnologías usadas en la caché. Aunque en general no se puede elegir qué memoria caché adquirir con el ordenador, puesto que se vende conjuntamente con la placa base (o con el micro, si es un Pentium II, un Pentium III o un Mendocino), conviene tener claros unos cuantos conceptos por si se diera el caso de tener varias opciones a nuestra disposición. Ante todo, el tipo de memoria empleada para fabricar la caché es uno de los factores más importantes. Suele ser memoria de un tipo muy rápido (como por ejemplo SRAM o SDRAM) y con características especiales, como burst pipeline: transmitir datos "a ráfagas" (burst). La velocidad de la caché influye en su rendimiento, como es obvio. Las cachés se mueven en torno a los 10 nanosegundos (ns) de velocidad; es decir, que cada 10 ns pueden admitir una nueva serie de datos. Por tanto, a menor tiempo, mayor velocidad. 148 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El último parámetro que influye en las cachés es la forma de escribir los datos en ellas. Esto se suele seleccionar en la BIOS, bien a mano o dejando que lo haga el ordenador automáticamente; las dos formas principales son: Write-Througth: impronunciable término que indica el modo clásico de trabajo de la caché; Write-Back: un modo más moderno y eficaz de gestionar la caché. 6.3 ARQUITECTURAS CISC Y RISC. .En las primeras arquitecturas los ordenadores tendían a aumentar su potencia a base de ampliar su repertorio de instrucciones y de añadir instrucciones más potentes. El hecho de que el tiempo de ejecución de una instrucción fuera de varios ciclos de reloj no representaba un problema puesto que las velocidades de la memoria de control eran muy superiores a las velocidades de la memoria principal. Así, aunque el proceso de las microinstrucciones se completase en un ciclo de reloj, no se podría continuar con el proceso de la siguiente instrucción inmediatamente, ya que estaría alojada en la memoria principal, de velocidad mucho más lenta que la memoria de control. En los años 70, las mejoras tecnológicas permitieron tener velocidades en la memoria principal similares a la memoria de control, lo que hizo posible trabajar con instrucciones simples (que se completan en un ciclo de reloj) y por tanto acelerar considerablemente la ejecución de instrucciones (nada más terminar la ejecución de todas las microinstrucciones se empieza con la ejecución de la siguiente instrucción). Para ejecutar una tarea se necesitan más instrucciones en RISC que en CISC, ya que en RISC las instrucciones son más elementales. Pero el hecho de tener actualmente unos mecanismos rápidos de acceso a memoria, buses de alta velocidad y compiladores especializados en estas arquitecturas, hace que los ordenadores RISC obtengan en general unos mejores rendimientos. Ahora bien, algunas de las formas tradicionales de medir el rendimiento, como es el número de MIPS, no son adecuadas para comparar el rendimiento de máquinas CISC y RISC. Esto se debe a que los MIPS dan la cantidad de millones de instrucciones por segundo que desarrolla una máquina, pero no tienen en cuenta la potencia de esas instrucciones. Por el propio diseño de la arquitectura RISC, estas máquinas tienden a desarrollar más MIPS que las CISC. Arquitectura CISC: 149 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La arquitectura CISC (Complex Instruction Set Computer) se caracteriza por disponer de un grupo muy amplio de instrucciones muy complejas y potentes. Es más antigua que la arquitectura RISC y por tanto su diseño está marcado por la tecnología existente en los años 60. La palabra CISC significa conjunto complejo de instrucciones. Los diseños CISC poseen: Un gran número de instrucciones Menor cantidad de registros de uso general A lo largo de la historia de la computación el hardware se ha ido haciendo cada vez más barato y el software, por el contrario, se ha ido haciendo cada vez más caro; esto puede deberse principalmente al hecho de que los programas durante su ciclo de vida se encuentran en permanente manutención debido a los errores que éstos presentan. En base a lo anterior se han desarrollado lenguajes de alto nivel que permiten facilitar la tarea del programador. Los programas realizados en lenguajes de programación deben ser traducidos a lenguaje de máquina por medio de los compiladores. La traducción de código generado en este lenguaje de alto nivel produce ineficiencias en la ejecución, gran tamaño de instrucciones de máquina y complejidad en los compiladores; ya que por ejemplo, los lenguajes de alto nivel poseen estructuras como if o while, mientras los lenguajes de máquina poseen instrucciones como MOVE, ADD y JUMP. Esto generó los diseños CISC que poseen como objetivos: · Facilitar el trabajo del programador · Mejorar la eficiencia de la ejecución, ya que las operaciones se implementan en microcódigo. · Dar soporte a los lenguajes de alto nivel más complejos y sofisticados. Cada instrucción desarrolla una serie de operaciones dentro del procesador. Esto reduce el número de instrucciones requeridas para implementar un programa dado y permite al programador aprender un pequeño, pero flexible conjunto instrucciones. El conjunto de instrucciones de las arquitecturas CISC poseen las siguientes características: 150 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Tienen un formato de dos operandos, donde las instrucciones tienen una fuente y un destino. Poseen comandos registro a registro, registro a memoria y memoria a registro. Tienen modos de direccionamiento múltiple a memoria. Las instrucciones son de largo variable de acuerdo al modo de direccionamiento. Las instrucciones requieren varios ciclos de reloj para ejecutarse. Las ventajas de los diseños CISC son: La microprogramación es fácil de implementar. El uso de nuevas instrucciones microcodificadas permitió a los diseñadores construir máquinas altamente compatibles; es decir un nuevo computador podía correr los mismos programas que se habían construido para los computadores anteriores ya que el nuevo computador contendría un conjunto más grande que incluiría las instrucciones anteriores. Como cada instrucción era cada vez más capaz, se usaban menos instrucciones para implementar una tarea dada. Esto hizo más eficiente el relativo uso de la memoria que era muy lenta. El compilador no es tan complicado, debido a que el conjunto de instrucciones del microprograma pueden ser escritas para ―calzar‖ con los lenguajes de alto nivel. Las desventajas de los diseños CISC son: Las primeras versiones de una familia de procesadores generalmente contiene un subconjunto de instrucciones de cada nueva versión, esto ha provocado que el conjunto de instrucciones en el chip sea cada vez más complejo con cada nueva generación de computadores. Como muchas instrucciones deben ser almacenadas en memoria con el menos espacio posible desperdiciado y las instrucciones pueden ser de cualquier largo, esto provoca que las distintas instrucciones tomarán distintas cantidades de tiempo de reloj para ejecutarse, haciendo más lento el desempeño de la máquina. Las instrucciones especializadas no son usadas de manera suficientemente frecuente para justificar su existencia, ya que en promedio en un programa típico se usan aproximadamente un 20% de las instrucciones disponibles. 151 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Arquitectura RISC: Esta arquitectura, denominada RISC (Reduced Instruction Set Computer), se caracteriza por poseer un juego de instrucciones lo más reducido posible con un porcentaje alto de ellas que se completan en un ciclo de reloj. Si hubiese que ejecutar alguna instrucción compleja, necesitaría más de un ciclo de reloj, pero la mayor parte de ellas se pueden realizar a partir de operaciones fundamentales. Por otra parte, es una constatación estadística que la potencia práctica de un ordenador reside en un conjunto pequeño de su repertorio de instrucciones, con lo cual si se reduce dicho repertorio se sigue conservando la potencia del ordenador, y disminuye la complejidad del diseño y el coste. La palabra RISC significa conjunto reducido de instrucciones. Los elementos clave compartidos por la mayoría de los diseños RISC son: Conjunto de instrucciones limitado y sencillo Un gran número de registros de uso general, o el uso de tecnología de compiladores para optimizar el uso de registros. Un énfasis en la optimización de segmentación de instrucciones. El nacimiento de los diseños RISC se originó en el estudio de las características de ejecución de las instrucciones. Se analizaron, en programas escritos en lenguajes de alto nivel, las operaciones realizadas, los operandos usados y el secuenciamiento de la ejecución. En relación a las operaciones si se observa la siguiente tabla: Tabla 1: Frecuencia dinámica relativa ponderada de operaciones en lenguajes de alto nivel Frecuencia dinámica Instrucciones de máquina ponderadas Referencias a memoria ponderadas Pascal C Pascal C Pascal C De asignación 45 18 13 13 14 15 Iteraciones 5 3 42 32 33 26 Llamadas a procedimiento 15 12 31 33 44 45 Condicionales 29 43 11 21 7 13 3 1 2 1 Goto Otras 3 6 1 152 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS De la tabla 1 se deduce que la mayoría de las operaciones corresponden a las de asignación, declaraciones condicionales y llamadas a procedimientos. Esto podría indicar que sentencias debieran ser implementadas de manera más óptima, pero se debe notar que las instrucciones que demoran mayor tiempo de ejecución corresponden a las llamadas a procedimiento, ya que hacen más referencias a memoria. En relación a los operandos si se observa la siguiente tabla: Tabla 2 Porcentaje dinámico de operandos Pascal C Promedio Constantes enteras 16 23 20 Variables escalares 58 53 55 Matrices / estructuras 26 24 25 La mayoría de las referencias se hacen a operandos escalares simples. En relación a las llamadas a procedimientos, en un estudio realizado por Tanenbaum en 1978 se determinó que al 98 % de los procedimientos llamados dinámicamente se le pasaban menos de seis argumentos, el 41 % de los procedimientos no tiene parámetros y que el 92 % de ellos usaba menos de seis variables escalares locales. Luego para diseñar una máquina RISC se pueden tomar en cuenta las siguientes consideraciones: Analizar las aplicaciones para encontrar las operaciones clave Diseñar una trayectoria de datos que sea óptima para las operaciones clave (La trayectoria de datos consiste en extraer los operandos de los registros, moverlos a la unidad aritmética y lógica y almacenar el resultado en un registro). Diseñar instrucciones que realicen las operaciones clave utilizando la trayectoria de datos Agregar nuevas instrucciones siempre que no hagan más lenta la máquina. En una máquina RISC los programas se compilan en secuencias de microinstrucciones que son ejecutadas directamente por el hardware Las arquitecturas RISC utilizan un gran número de registros, principalmente debido a que uno de los objetivos principales de las arquitecturas RISC es ejecutar en promedio una instrucción por ciclo. 153 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En los estudios realizados por Tanenbaum se observó que un 80% de las asignaciones eran de la forma a=b y que sólo el 5% de las asignaciones contenían dos o más operadores. Esto indica que los datos pueden ser almacenados en registros, ya que son el medio de almacenamiento más rápido disponible. De lo anterior, se deduce que se deben generar estrategias para acceder con mayor frecuencia a éstos y minimizar las operaciones registro-memoria. Si esto se hace por software, el compilador asignará registros a las variables más utilizadas en un cierto periodo. Si se hace por hardware se utilizan las llamadas ventanas de registros. Esto se utiliza en las llamadas a procedimiento para almacenar y restaurar las variables locales. A cada procedimiento se le asigna un pequeño conjunto de registros distinto (Figura 1), que se dividen en: Registros de parámetros, que contienen ya sea los parámetros entregados desde el procedimiento que lo llamó o los resultados devueltos a éste. Registros de datos locales, que se usan para las variables locales. Registros temporales que se usan para intercambiar parámetros, estos registros se traslapan con los registros de datos locales del procedimiento llamado por el procedimiento ―dueño‖ de estos registros. Figura 1: Ventanas de registros solapadas 154 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los registros de parámetros del Nivel J + 1 contienen los registros temporales del procedimiento que lo llamó del Nivel J y es aquí por donde se devuelven los resultados. Con esto se logra una transferencia de datos real, ya que los registros son físicamente los mismos. Como el número de registros es limitado, esto hace que el número de ventanas también lo sea. Por lo tanto, éstas contienen las últimas activaciones de procedimientos. Las activaciones más antiguas se almacenen en memoria y se van recuperando a medida que se liberan los registros. Luego, la organización de estas ventanas es circular, como aparece en la Figura 2. Figura 2: Organización mediante un buffer circular de las ventanas solapadas 155 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Aquí existen 6 ventanas. A llamó a B, B llamó a C y C llamó a D; D es el procedimiento activo. El puntero de ventana en curso apunta a D. El puntero de ventana salvada identifica la ventana almacenada en memoria más recientemente. Los traslapes en las ventanas corresponden a los registros temporales y de parámetros de la Figura 1. Si D llama a E, avanza el puntero de ventana. Si E llama a F, se almacenan en memoria las dos primeras partes de A, se avanza el puntero de ventana salvada a B y la llamada a F sigue adelante. En los retornos de procedimiento se retrocede con los punteros. En el caso de las variables globales que son utilizadas por más de un procedimiento, estas pueden ser almacenadas en memoria provocando un retardo en el tiempo de ejecución; o de lo contrario incorporar a la CPU una cantidad de registros globales, con lo que se debe agregar una numeración para referenciar a los registros. Como la cantidad de registros en una máquina RISC es reducido y su objetivo es contener los operandos necesarios para los cálculos y minimizar las operaciones de carga y almacenamiento en memoria; se debe decidir que se asigna a los registros en algún punto del programa. La técnica utilizada para asignar los registros es el coloreado de grafos, que consiste en que si dos nodos en un grafo están unidos por un arco, éstos deben tener colores diferentes. El compilador analiza las interferencias entre registros considerando que si dos registros están ―vivos‖ en un mismo fragmento de programa son unidos por un arco. Las Arquitecturas CISC se basan en el deseo de simplificar los compiladores y mejorar las prestaciones. Si se desea simplificar los compiladores obviamente se tratará de que las instrucciones en lenguaje de máquina se parezcan a las sentencias de los lenguajes de alto nivel; sin embargo, es más difícil optimizar el código para minimizar su tamaño, reducir el número de instrucciones ejecutadas y mejorar la segmentación. Las arquitecturas CISC tienen programas más pequeños, pero no necesariamente usan menos memoria. Como estas arquitecturas poseen un mayor número de instrucciones necesitan códigos de operación más largos, luego las instrucciones son más largas. Las arquitecturas RISC tienen como característica el que ejecutan una instrucción en cada ciclo de máquina. La mayoría de las operaciones son del tipo registro a registro, a excepción de LOAD y STORE para acceder a memoria; esto optimiza el uso de los registros, debido a que los operandos más utilizados son accesados más rápidamente. Poseen modos de direccionamiento sencillos, la mayoría es direccionamiento a registro. La longitud de instrucción es fija y alineada en los límites de una palabra. Las posiciones de los campos de operación son fijas; esto simplifica la unidad de control. 156 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los programas RISC son más sensibles a las interrupciones que los programas CISC, debido a que estos últimos restringen las interrupciones o definen puntos específicos de interrupción. Las ventajas de las arquitecturas RISC son: El desempeño de los procesadores RISC es dos a cuatro veces mejor que el desempeño de los procesadores CISC, debido al pipeline. El hardware es más simple, debido a que se utiliza menos espacio en el chip, pudiendo éste ser aprovechado para otras cosas como por ejemplo unidades de administración de memoria. Su ciclo de diseño es más corto, debido también a su mayor simpleza, pueden ser desarrollados más rápido que los CISC. DIFERENCIAS DE LAS ARQUITECTURAS RISC Y CISC: RISC CISC Instrucciones sencillas en un ciclo Instrucciones complejas en varios ciclos Sólo LOAD / STORE hacen referencia a memoria Cualquier instrucción puede referenciar a memoria Procesamiento serie de varias etapas Poco procesamiento en serie Instrucciones ejecutadas por hardware Instrucciones interpretadas por el microprograma Instrucciones de formato fijo Instrucciones de formato variable Pocas instrucciones y modos Muchas instrucciones y modos La complejidad está en el compilador La complejidad está en el microprograma Varios conjuntos de registros Un solo conjunto de registros 6.4 SISTEMAS DE MULTIPROCESAMIENTO Un sistema multiprocesador es una interconexión entre dos o más de las CPUs que comparten una memoria y un equipo de entrada / salida comunes. El término ―procesador‖ en el multiprocesador puede significar o una unidad procesadora central (CPU) o un procesador de entrada-salida (IOP). Un sistema multiprocesador implica la existencia de CPU‘s múltiples, aunque usualmente habrá uno o más IOP‘s. 157 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La creación del microprocesador ha producido la mayor motivación para los sistemas procesadores múltiples. El hecho de que los microprocesadores tomen muy poco espacio físico y sean poco costosos los hace factibles para interconectar un gran número de microprocesadores en un sistema compuesto. El beneficio derivado de una organización del multiprocesador es un comportamiento mejor del sistema. Es logrado por medio de partición de la función total en un número de tareas que cada uno de los procesadores puede manejar individualmente. Las tareas del sistema pueden ser localizadas en procesadores de propósito especial cuyo diseño es optimizado para realizar ciertos tipos de procesamiento eficientemente. La función del sistema puede distribuirse entre procesadores concurrentes separados que ejecutan operaciones en paralelo, reduciendo así el tiempo de ejecución global. El multiprocesamiento mejora la confiabilidad del sistema de tal manera que una falla o error en un parte tiene un efecto limitado en el resto del sistema. Si una falla hace que un procesador falle, un segundo procesador puede asignarse para realizar las funciones del procesador deshabilitado. El sistema como un todo puede continuar funcionando como un todo quizá con alguna perdida en eficiencia. Interconexión entre los procesadores. Los componentes que forman un sistema multiprocesador son las CPU‘s y los IOP‘s conectados a los dispositivos entrada-salida y una unidad de memoria que puede partirse en un número de módulos separados. La interconexión entre las componentes puede tener configuraciones físicas diferentes dependiendo del número de rutas de transferencia que se encuentran disponibles entre los procesadores y la memoria. Cuatro esquemas de interconexión que han sido utilizados son: Memoria multipuerto. Interruptor de barra cruzada. Barraje común de tiempo compartido. Estructura de barraje dual. Un sistema de memoria multipuerto emplea barajes separados entre cada modulo de memoria y cada CPU o IOP. La ventaja de la organización de memoria multipuerto es la alta tasa de transferencia que puede lograse debido a las rutas múltiples entre los procesadores y la memoria. La desventaja es que requiere de control de memoria costosa y un gran número de cables y conectores. 158 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS La organización de interruptor de barra cruzada consta de un número de puntos de cruz que son colocados en las intersecciones entre los barajes del procesador y las rutas de modulo de memoria. También resuelven requisiciones múltiples de acceso al mismo modulo de memoria en una base prioritaria predeterminada. El sistema multiprocesador de barraje común consta de un número de procesadores conectados a través de una ruta común a una unidad de memoria. Cualquier otro procesador que desee iniciar una transferencia debe primero determinar la disponibilidad del estado del barraje, y solamente después de que el barraje este disponible el procesador puede direccionar la unidad de memoria para iniciar la transferencia. Comunicación interprocesador. Los diversos procesadores en un sistema multiprocesador deben venir provistos con una facilidad para comunicarse el uno con el otro. Una ruta de comunicación se puede establecer a través de canales comunes de entrada-salida. El uso primario de la memoria común es actuar como un centro de mensajes similar a un apartado de correos, en donde cada procesador puede dejar mensajes para otros procesadores y recoger mensajes dirigido a el. Además de la memoria compartida, un sistema multiprocesador puede tener otros recursos compartidos. Por ejemplo, una unidad de almacenamiento de disco conectada a un IOP puede estar disponible para todos los CPU‘s. Estos proporcionan facilidad para compartir programas de sistemas almacenados en un disco magnético. Una ruta de comunicación entre dos CPU‘s puede establecerse también por medio de un enlace entre dos IOP‘s asociados con dos CPU‘s diferentes. Este tipo de enlace le permite a cada uno de los CPU tratar a l otro como un dispositivo, I/O de tal manera que las operaciones I/O puedan utilizarse para transferir información entre las memorias locales de los dos CPU‘s. Un sistema multiprocesador que emplea una interconexión de memoria compartida y utiliza recursos de sistemas I/O comunes que se dice que es un sistema acoplado ajustadamente. Esta es una característica de un sistema multiprocesador que tiene todas sus componentes principales, tales como CPU‘s, IOP‘s y dispositivos I/O en proximidad cercana. Arbitramento del Barraje. Cada procesador en un sistema multiprocesador requiere acceso a memoria común o a otros recursos comunes a través de un sistema de barraje común. Si no hay otro procesador utilizando el barraje común, al procesador que está requiriendo su uso se le puede conceder acceso inmediatamente. 159 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los procedimientos de arbitramento sirven todas las requisiciones del procesador en la base de prioridades establecidas. La técnica de resolución de prioridad serie se obtiene de una conexión en guirnalda de los árbitros de barraje. Un procesador puede estar en el medio de una operación de barraje cuando un procesador de alta prioridad requiere el barraje. El procesador de baja prioridad debe completar su operación de barraje antes de entregar el control del barraje. La técnica de arbitramento de barraje paralelo utiliza un codificador de prioridad alterna y un decodificador. Cada arbitro del barraje en el esquema paralelo tiene una línea de salida de requisición de barraje y una línea de entrada de reconocimiento de barraje. Exclusión mutua. Un sistema multiprocesador que funciona adecuadamente debe proporcionar un mecanismo que garantice un acceso ordenado para compartir la memoria y otros recursos compartidos. Esto es necesario para proteger a los datos de que se cambien simultáneamente por dos o más procesadores. Este mecanismo ha sido denominado de exclusión mutua. La exclusión mutua debe proporcionarse en un sistema multiprocesador para habilitar un procesador para un excluir o enclavar el acceso a un recurso compartido por otros procesadores cuando ello es una sección crítica del programa. Una sección crítica de programa es una secuencia de programa que, una vez que comienza, debe completar la ejecución antes de que otro procesador accese el mismo recurso compartido. Una variable binaria denominada semáforo es a menudo utilizada para indicar si un procesador está ejecutando una sección crítica del programa o no. Un semáforo es una bandera controlada por software que es almacenada en una localización de memoria a la cual todos los procesadores tienen acceso. Cuando el semáforo es igual a 1, significa que el procesador está ejecutando un programa crítico, de tal manera que la memoria compartida no esta disponible para otros procesadores. Cuando el semáforo es igual a 0. l la memoria compartida esta disponible para cualquier procesador que la requiera. La prueba y colocación del semáforo es por sí misma una operación crítica y debe analizarse como una operación sola indivisible. Un semáforo puede iniciarse por medio de una instrucción de prueba y colocación en conjunto con un mecanismo de cerradura de hardware. 160 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Una cerradura se hardware es una señal generada por el procesador que sirve para prevenir que otros procesadores utilicen el barraje del sistema siempre y cuando que la señal esté activa. El semáforo mismo, cuando se coloca, previene que otros procesadores accesen la memoria compartida mientras un procesador está ejecutando una sección crítica del programa. 6.5 SISTEMAS DE PROCESAMIENTO DISTRIBUIDO Desde el inicio de la era de la computadora moderna (1945), hasta cerca de 1985, solo se conocía la computación centralizada [25, Tanenbaum]. A partir de la mitad de la década de los ochentas aparecen dos avances tecnológicos fundamentales: Desarrollo de microprocesadores poderosos y económicos con arquitecturas de 8, 16, 32 y 64 bits. Desarrollo de redes de área local (LAN) de alta velocidad, con posibilidad de conectar cientos de máquinas a velocidades de transferencia de millones de bits por segundo (mb/seg). Aparecen los sistemas distribuidos, en contraste con los sistemas centralizados. Los sistemas distribuidos necesitan un software distinto al de los sistemas centralizados. Los S. O. para sistemas distribuidos han tenido importantes desarrollos pero todavía existe un largo camino por recorrer. Los usuarios pueden acceder a una gran variedad de recursos computacionales: De hardware y de software. Distribuidos entre un gran número de sistemas computacionales conectados. Un importante antecedente de las redes de computadoras lo constituye Arpanet, iniciada en 1968 en los EE. UU. Ventajas de los Sistemas Distribuidos con Respecto a los Centralizados Una razón para la tendencia hacia la descentralización es la economía. Herb Grosch formuló la que se llamaría ―Ley de Grosch‖ [25, Tanenbaum]: 161 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El poder de cómputo de una CPU es proporcional al cuadrado de su precio: o Si se paga el doble se obtiene el cuádruple del desempeño. Fue aplicable en los años setentas y ochentas a la tecnología mainframe. No es aplicable a la tecnología del microprocesador: o La solución más eficaz en cuanto a costo es limitarse a un gran número de cpu baratos reunidos en un mismo sistema. Los sistemas distribuidos generalmente tienen en potencia una proporción precio / desempeño mucho mejor que la de un único sistema centralizado. Algunos autores distinguen entre: Sistemas distribuidos: están diseñados para que muchos usuarios trabajen en forma conjunta. Sistemas paralelos: están diseñados para lograr la máxima rapidez en un único problema. En general se consideran sistemas distribuidos, en sentido amplio, a los sistemas en que: Existen varias cpu conectadas entre sí. Las distintas cpu trabajan de manera conjunta. Ciertas aplicaciones son distribuidas en forma inherente: Ej.: sistema de automatización de una fábrica: Controla los robots y máquinas en la línea de montaje. Cada robot o máquina es controlado por su propia computadora. Las distintas computadoras están interconectadas. Una ventaja potencial de un sistema distribuido es una mayor confiabilidad: Al distribuir la carga de trabajo en muchas máquinas, la falla de una de ellas no afectara a las demás: o La carga de trabajo podría distribuirse. Si una máquina se descompone: o Sobrevive el sistema como un todo. 162 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Otra ventaja importante es la posibilidad del crecimiento incremental o por incrementos: Podrían añadirse procesadores al sistema, permitiendo un desarrollo gradual según las necesidades. No son necesarios grandes incrementos de potencia en breves lapsos de tiempo. Se puede añadir poder de cómputo en pequeños incrementos. Ventajas de los Sistemas Distribuidos con Respecto a las PC Independientes Satisfacen la necesidad de muchos usuarios de compartir ciertos datos [25, Tanenbaum] : Ej.: sistema de reservas de líneas aéreas. También con los sistemas distribuidos se pueden compartir otros recursos como programas y periféricos costosos: Ej.: impresoras láser color, equipos de fotocomposición, dispositivos de almacenamiento masivo (ej.: cajas ópticas), etc. Otra importante razón es lograr una mejor comunicación entre las personas: Ej.: correo electrónico: o Posee importantes ventajas sobre el correo por cartas, el teléfono y el fax: Velocidad, disponibilidad, generación de documentos editables por procesadores de texto, etc. La mayor flexibilidad es también importante: La carga de trabajo se puede difundir (distribuir) entre las máquinas disponibles en la forma más eficaz según el criterio adoptado (por ej. costos). Los equipos distribuidos pueden no ser siempre PC: o Se pueden estructurar sistemas con grupos de PC y de computadoras compartidas, de distinta capacidad. Desventajas de los Sistemas Distribuidos El principal problema es el software, ya que el diseño, implantación y uso del software distribuido presenta numerosos inconvenientes [25, Tanenbaum]. 163 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Los principales interrogantes son los siguientes: ¿Qué tipo de S. O., lenguaje de programación y aplicaciones son adecuados para estos sistemas?. ¿Cuánto deben saber los usuarios de la distribución?. ¿Qué tanto debe hacer el sistema y qué tanto deben hacer los usuarios?. La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto. Otro problema potencial tiene que ver con las redes de comunicaciones, ya que se deben considerar problemas debidos a pérdidas de mensajes, saturación en el tráfico, expansión, etc. El hecho de que sea fácil compartir los datos es una ventaja pero se puede convertir en un gran problema, por lo que la seguridad debe organizarse adecuadamente. En general se considera que las ventajas superan a las desventajas, si estas últimas se administran seriamente. Existen dos razones principales por las que podemos desear realizar una transacción en una máquina distante. Primero, es posible que nuestro equipo local tenga poder insuficiente para realizar la tarea pendiente. Segundo, los datos que necesita nuestra transacción pueden estar almacenados en cualquier parte. La primera razón se observa en instituciones científicas y de investigación donde se requiere gran poder de procesamiento de números. La segunda se ve con frecuencia en entornos comerciales o gubernamentales donde se conserva y se le da un mantenimiento a la base de datos corporativa. Las redes que constan de una computadora central y varias terminales enlazadas por un sistema de comunicaciones de datos que han estado en uso por largo tiempo. Para que se realice procesamiento distribuido, el ―sistema‖ debe constar de más de un procesador. Una consecuencia de la generalidad de esta definición es que es posible de encontrar un número más grande de configuraciones. Además, con el advenimiento de la vasta distribución de microcomputadoras, un entorno de procesamiento distribuido puede crecer sin el conocimiento o consentimiento explícito de los propietarios de las máquinas centrales. 164 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Computación distribuida. Existen otros términos y conceptos útiles para comprender el procesamiento distribuido. Dos conceptos son de particular utilidad: procesamiento de datos distribuido (DDP) e inteligencia distribuida. Un sistema de procesamiento de datos distribuido es aquel que emplea más de un procesador geográficamente distanciados y enlazados por telecomunicaciones. La inteligencia distribuida tiene que ver con el uso de procesadores en terminales, controladores o máquinas periféricas para ejecutar funciones que en forma individual no desempeñen el procesamiento completo de una transacción. En la segunda mitad de la década de 1980, las LAN se convirtieron en elementos importantes en entornos de procesamiento distribuido. Mainframe o microcomputadoras Unidad central Segundo procesador Via de acceso Tercer procesador Controlador de terminales Se puede encontrar un diagrama muy simplificado de redes de área local en un sistema de procesamiento distribuido. La mainframe o macrocomputadora esta enlazada a la LAN a través de una línea de comunicaciones de datos de alguna clase (más adelante analizaremos las opciones realizadas con esa línea). 165 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS En una de varias formas: a través de una vía de acceso o servidor de comunicaciones en la LAN, a través de un enlace más directo con un tablero en un sistema VAX o un controlador 8232 de LAN enlazado a un canal de una mainframe de IBM. Se puede conectar un servidor de archivos a una u otra LAN. Para mediados de la década de 1980 fue posible estructurar sistemas que trabajan precisamente según su descripción, aunque nos apresuremos a agregar que pocos funcionaban en forma tan óptima como se declaraba; no obstante, la mayoría de las fallas pudieran haberse atribuido quizá a restricciones organizacionales en vez de técnicas. Por desgracia, en muchas organizaciones, sino es que en la mayoría, las fallas interorganizacionales obstaculizan a menudo la implementación de procesamiento distribuido realmente integrado. En una organización de menor tamaño sin una mainframe central podría haber una red de LAN; por ejemplo donde cada LAN sea la unidad controladora de todas las demás. De la misma forma, podría haber una red de múltiples mainframes o macrocomputadoras o supercomputadoras; algunas de ellas podrían tener estructuras jerárquicas locales y otras podrían estar organizadas como sistemas centrales iguales en una LAN de alta velocidad. Entonces, también la mainframe o la supercomputadora podría estar integrada en forma estrecha a la LAN para fungir como servidor de archivos de la red de área local. Con esto hemos intentado demostrar la vialidad de las LAN como nodos de una red distribuida de mayor tamaño. Para la mayoría de las instalaciones será necesario integrar redes de área local en una red existente de algún tipo. Dos de las arquitecturas de redes más importantes (Auspiciadas por importantes fabricantes de computadoras) son System Network Architecture (SNA) de IBM y Digital Network Architecture (DNA) de DEC. Además, debido al impacto futuro potencial de las redes de área metropolitana (MAN), observaremos cómo se integrarán las LAN en ese entorno. Los sistemas operativos de redes (NOS) para la LAN constituyen así mismo arquitecturas de redes. Será importante comprender como encajan las LAN en el esquema OSI integral y eso se ilustrará con referencia MAP, Manufacturing Automation Protocol (o protocolo de automatización de la manufactura). 166 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Apreciaremos las redes de área local en el contexto de internet, que es la red nacional TCP/IP de Estados Unidos importante para el sector público; pero también de importancia creciente para el sector privado. Tres de las redes que analizaremos son arquitecturas plenas de características: TCP/IP, SNA, y DNA. Todas ellas son arquitecturas estratificadas, aunque ninguna es estándar de OSI. En contraste, MAP en un NOS autónomo porque MAP supone que una LAN es el medio de comunicaciones principal de los estratos físicos y de enlace de datos; un sistema con bus o colector de señales 802.4 de IEEE. Las otras arquitecturas pueden utilizar, y utilizan diversos medios físicos y no están enlazadas a estándares Media Access Control (MAC, o control de acceso a los medios) del IEEE. SNA, DNA y TCP/IP no son estándares de OSI. Con claridad SNA y DNA son estándares de propietario adoptados por IBM y DEC, respectivamente. Incluso TCP/IP, aunque se le concibe como un estándar, fue creado por el Departamento de Defensa de Estados Unidos para uso propio. 6.6 REDES DE COMPUTADORAS El término "redes de computadoras" puede referirse tanto a dos computadoras conectadas entre si, como a Redes de Area Local (LANs), y hasta a la propia Internet - la "red de redes". Las redes pueden ayudar para que las organizaciones trabajen en colaboración mediante el intercambio de información, y también pueden permitir que compartan recursos como las impresoras. 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´s comenzaron a entrar en el área de los negocios, el conectar dos PC´s no traía ventajas, pero esto desapareció cuando se empezó a crear los sistemas operativos y el Software multiusuario. 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. Malla. Punto a punto 167 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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, esto no afecta a las demás, siempre y cuando el "servidor" no esté caído. 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. Topología de anillo: Todas las computadoras o nodos están conectados el uno con el otro, formando una cadena o círculo cerrado. Punto a Punto: Es otra de las tres principales topologías. La red se une en un único punto, normalmente con control centralizado, como un concentrador de cableado. 168 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Tipos de Redes: Según el lugar y el espacio que ocupen, las redes, se pueden clasificar en dos tipos: Red LAN (Local Area Network) o Redes de área local Red WAN (Wide Area Network) o Redes de área amplia Red MAN (Metropolitan Area Networks) 1.- LAN - Redes de Área Local: 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´s 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´s 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. 169 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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. 3. – MAN Metropolitan Area Networks. Red que conecta típicamente diferentes tipos de computadoras, su amplitud no va mas allá de una ciudad, municipio o mezcla de ambos. 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 éstos casos los más comunes son las impresoras, en sus diferentes tipos: Láser, de color, plotters, etc. 170 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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. 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. 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. 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. Transmisión de datos en las redes: La transmisión de datos en las redes, puede ser por dos medios: Terrestres: Son limitados y transmiten la señal por un conductor físico. Aéreos: Son "ilimitados" en cierta forma y transmiten y reciben las señales electromagnéticas por microondas o rayo láser. 171 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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. 6.7 PROTOCOLOS ESTANDARES Establecen una descripción formal de los formatos que deberán presentar los mensajes para poder ser intercambiados por equipos de cómputo; además definen las reglas que ellos deben seguir para lograrlo. Los protocolos están presentes en todas las etapas necesarias para establecer una comunicación entre equipos de cómputo, desde aquellas de más bajo nivel (e.g. la transmisión de flujos de bits a un medio físico) hasta aquellas de más alto nivel (e.g. el compartir o transferir información desde una computadora a otra en la red). Telnet: Es probablemente el más viejo de los protocolos creados para internet. Se usa para controlar remotamente otra computadora, mayormente en el mundo UNIX. Con telnet se puede accesar a una computadora remota y mandar líneas de instrucciones como si estuviera sentado físicamente frente a la computadora remota. http (Protocolo de transferencia de hipertexto): Es un protocolo cliente-servidor que articula los intercambios de información entre los clientes web y los servidores http. Se basa en sencillas operaciones de solicitud-respuesta. 172 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar que contiene el estado de operación y su posible resultado. Todas las operaciones pueden adjuntar un objeto recurso sobre el que actúan con objeto web (documento html, fichero multimeda, aplicación). FTP (File Transfer Protocol): Comenzó siendo una utileria de UNIX. Es usado para transferir archivos en Internet. Trabaja bajo el concepto cliente-servidor. Muchos servidores FTP son usados como emplazamientos donde se almacenan archivos. A estos lugares se puede acceder siempre que se disponga de un programa FTP cliente. La aplicación permite realizar la transferencia de ficheros entre ordenadores. 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. 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 Macrocomputadoras. 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. 173 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 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. FAMILIA DE PROTOCOLOS TCP/IP Tomando al modelo OSI (Open Systems Interconection) como referencia podemos afirmar que para cada capa o nivel que él define existen uno o más protocolos interactuando. Los protocolos son entre pares (peer-to-peer), es decir, un protocolo de algún nivel dialoga con el protocolo del mismo nivel en la computadora remota. Conjunto de Protocolos TCP/IP Origen: Desarrollados como parte del proyecto DARPA a mediados de los 70´s, dando lugar a la red ARPANET. Su objetivo fue que computadoras cooperativas compartieran recursos mediante una red de comunicaciones. ARPANET deja de funcionar oficialmente en 1990. Conjunto de Protocolos TCP/IP. Su relación con el Modelo OSI TCP = TRANSFER CONTROL PROTOCOL IP = INTERNET PROTOCOL En la actualidad, las funciones propias de una red de computadoras pueden ser divididas en las siete capas propuestas por ISO para su modelo de sistemas abiertos (OSI). Sin embargo la implantación real de una arquitectura puede diferir de este modelo. Las arquitecturas basadas en TCP/IP proponen cuatro capas en las que las funciones de las capas de Sesión y Presentación son responsabilidad de la capa de Aplicación y las capas de Liga de Datos y Física son vistas como la capa de Interface a la Red. 174 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Por tal motivo para TCP/IP sólo existen las capas Interface de Red, la de Intercomunicación en Red, la de Transporte y la de Aplicación. Como puede verse TCP/IP presupone independencia del medio físico de comunicación, sin embargo existen estándares bien definidos a los nivel de Liga de Datos y Físico que proveen mecanismos de acceso a los diferentes medios y que en el modelo TCP/IP deben considerarse la capa de Interface de Red; siendo los más usuales el proyecto IEEE802, Ethernet, Token Ring y FDDI. Modelo de capas de TCP/IP Descripción del Modelo de Capas de TCP/IP: Capa de Aplicación. Invoca programas que acceden servicios en la red. Interactúan con uno o más protocolos de transporte para enviar o recibir datos, en forma de mensajes o bien en forma de flujos de bytes. Capa de Transporte. Provee comunicación extremo a extremo desde un programa de aplicación a otro. Regula el flujo de información. Puede proveer un transporte confiable asegurándose que los datos lleguen sin errores y en la secuencia correcta. Coordina a múltiples aplicaciones que se encuentren interactuando con la red simultáneamente de tal manera que los datos que envíe una aplicación sean recibidos correctamente por la aplicación remota, esto lo hace añadiendo identificadores de cada una de las aplicaciones. Realiza además una verificación por suma, para asegurar que la información no sufrió alteraciones durante su transmisión. Capa Internet. Controla la comunicación entre un equipo y otro, decide qué rutas deben seguir los paquetes de información para alcanzar su destino. Conforma los paquetes IP que será enviados por la capa inferior. Desencapsula los paquetes recibidos pasando a la capa superior la información dirigida a una aplicación. 175 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Capa de Interface de Red. Emite al medio físico los flujos de bit y recibe los que de él provienen. Consiste en los manejadores de los dispositivos que se conectan al medio de transmisión. Arquitectura de Interconexión de Redes en TCP/IP Metas Independencia de tecnología de conexión a bajo nivel y la arquitectura de la computadora. Conectividad Universal a través de la red. Reconocimientos de extremo a extremo.Protocolos de Aplicación Estandarizados.Arquitectura de Interconexión de Redes en TCP/IP Características Protocolos de no conexión en el nivel de red. Conmutación de paquetes entre nodos. Protocolos de transporte con funciones de seguridad. Conjunto común de programas de aplicación. Arquitectura de Interconexión de Redes en TCP/IP Interconexión de Redes Las redes se comunican mediante compuertas. Todas las redes son vistas como iguales. Para entender el funcionamiento de los protocolos TCP/IP debe tenerse en cuenta la arquitectura que ellos proponen para comunicar redes. Tal arquitectura ve como iguales a todas las redes a conectarse, sin tomar en cuenta el tamaño de ellas, ya sean locales o de cobertura amplia. Define que todas las redes que intercambiarán información deben estar conectadas a una misma computadora o equipo de procesamiento (dotados con dispositivos de comunicación); a tales computadoras se les denomina compuertas, pudiendo recibir otros nombres como enrutadores o puentes. Direcciones IP Longitud de 32 bits. 176 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Identifica a las redes y a los nodos conectados a ellas. Especifica la conexión entre redes. Se representan mediante cuatro octeros, escritos en formato decimal, separados por puntos Para que en una red dos computadoras puedan comunicarse entre sí ellas deben estar identificadas con precisión Este identificador puede estar definido en niveles bajos (identificador físico) o en niveles altos (identificador lógico) de pendiendo del protocolo utilizado. TCP/IP utiliza un identificador denominado dirección internet o dirección IP, cuya longitud es de 32 bites. La dirección IP identifica tanto a la red a la que pertenece una computadora como a ella misma dentro de dicha red. Subredes en IP Las Subredes son redes físicas distintas que comparten una misma dirección IP. Deben identificarse una de otra usando una máscara de subred. La máscara de subred es de cuatro bytes y para obtener el número de subred se realiza un operación AND lógica entre ella y la dirección IP de algún equipo. La máscara de subred deberá ser la misma para todos los equipos de la red IP Se ha mencionado que el enrutamiento sirve para alcanzar redes distantes. También se señaló que las direcciones IP se agrupan en clases. Ahora bien para cada clase se pueden contar con un número determinados de subredes. Las subredes son redes físicas independientes que comparten la misma dirección IP (es decir aquella que identifica a la red principal). La pregunta entonces es ¿cómo se logra que equipos que comparten el mismo identificador de red pero se sitúan en redes físicas diferentes podrán comunicarse usando compuertas? La solución a este problema es determinando una mascara de dirección. Recordemos que los protocolos TCP/IP están enfocados a la transmisión de paquetes de información, buscando la independencia de la arquitectura de la red. Arquitecturas como la Ethernet logran la comunicación sólo mediante el conocimiento de la dirección física de las computadoras. Así en cada computadora que opere con el protocolo IP debe contar con algún procedimiento para la translación de la dirección IP a la dirección física de la computadora con la que establezca comunicación. Una conversión dinámica de direcciones Internet a direcciones físicas es la más adecuada, debido a que se obtiene la dirección física por respuesta directa del nodo que posee la dirección IP destino. Una vez que la dirección física se obtiene ésta es guardada en una tabla temporal para subsecuentes transmisiones, de no ser así podría haber una sobrecarga de tráfico en la red debido a la conversión de direcciones por cada vez que se transmitiera un paquete. 177 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Protocolo Internet (IP) Características Protocolo orientado a no conexión. Fragmenta paquetes si es necesario Direccionamiento mediante direcciones lógicas IP de 32 bits. Si un paquete no es recibido, este permanecerá en la red durante un tiempo finito. Realiza el "mejor esfuerzo" para la distribución de paquetes. Tamaño máximo del paquete de 65635 bytes. Sólo ser realiza verificación por suma al encabezado del paquete, no a los datos éste que contiene. El Protocolo Internet proporciona un servicio de distribución de paquetes de información orientado a no conexión de manera no fiable. La orientación a no conexión significa que los paquetes de información, que será emitido a la red, son tratados independientemente, pudiendo viajar por diferentes trayectorias para llegar a su destino. El término no fiable significa más que nada que no se garantiza la recepción del paquete. La arquitectura de interconexión de redes propuesta por TCP/IP indica que éstas deben ser conectadas mediante una compuerta. Sin obligar a que la tecnología de las redes físicas que se conecten sea homogénea. Por tal motivo si para interconectar dos redes se utilizan medios con diferente MTU, los datagramas deberán ser fragmentados para que puedan ser transmitidos. Una vez que los paquetes han alcanzado la red extrema los datagramas deberán ser reensamblados. 178 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Protocolo de Mensajes de Control de Internet ICMP (Internet Control Message Protocol) Reporta sobre destinos inalcanzables. Control de flujo de datagramas y congestión. Controla los requerimientos de cambio de rutas entre compuertas. Detecta rutas circulares o excesivamente largas. Verifica la existencia de trayectorias hacia alguna red y el estatus de la misma. Su función es la de notificar de eventos en los que los paquetes enviados no alcanzaron su destino. Proporciona un medio de transporte para que los equipos compuerta se envíen mensajes de control y error. El enrutamiento se refiere al proceso de determinar la trayectoria que un datagrama debe seguir para alcanzar su destino. A los dispositivos que pueden elegir las trayectorias se les denomina enrutadores. En el proceso de enrutamiento intervienen tanto los equipos como las compuertas que conectan redes (recordar que el termino compuerta es impuesto por la arquitectura TCP/IP de conexión de redes, sin embargo una compuerta puede realizar diferentes funciones a diferentes niveles, una de esas funciones puede ser la de enrutamiento y por tanto recibir el nombre de enrutador). Tipos de Enrutamiento Enrutamiento Directo Transmisión de datagramas IP entre dos equipos de la misma red física sin la intervención de compuertas. El emisor encapsula el datagrama en la trama de la red, efectuando la vinculación entre la dirección física y la dirección IP, y envía la trama resultante en forma directa al destinatario. Enrutamiento Indirecto La compuertas forman una estructura cooperativa, interconectada. Las compuertas se envían los datagramas hasta que se alcanza a la compuerta que puede distribuirla en forma directa a la red destino. Existen dos tipos de enrutamiento; el directo y el indirecto. Debido a que en el enrutamiento directo los datagramas se transmiten de un equipo a otro, en la misma red física, el proceso es muy eficiente. La vinculación entre la dirección física y la IP se realiza mediante el ARP. En el indirecto la transmisión del datagrama se efectúa mediante la intercesión de las compuertas. Aquí la compuerta que actúa como enrutador debe de estar provista de mecanismos para conocer, y por tanto decidir, la trayectoria de la red que se desea alcanzar. 179 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Enrutamiento Indirecto En este direccionamiento un equipo debe enviar a una compuerta el datagrama con destino a una red física distante. La compuerta de la red física envía el datagrama a otras compuertas hasta alcanzar a aquel que puede emitirlo en forma directa a la red destino. La compuerta debe conocer las rutas hacia las diferentes redes externas, ellas pueden utilizar a su ves un enrutamiento indirecto en el caso de no conocer la ruta a una red específica. Las compuertas conocen las trayectorias a otra red mediante Tablas de Enrutamiento. Tablas de Ruteo IP Este es el algoritmo comúnmente utilizado para el enrutamiento de IP. Las tablas de enrutamiento está presentes en todo equipo que almacene información de cómo alcanzar posibles destinos. En las tablas no se almacena la ruta específica a un equipo, sino aquella a la red donde se encuentre. Cada puerto de comunicación de la compuerta debe poseer una dirección IP. Protocolo de Control de Transferencia Proporciona comunicación bidireccional completa mediante circuitos virtuales. Desde el punto de vista del usuario la información es transmitida por flujos de datos. Confiabilidad en la transmisión de datos por medio de: o Asignación de números de secuencia a la información segmentada. o Validaciones por suma. o Reconocimiento de paquetes recibidos. o Utiliza el principio de ventana deslizable para esperar reconocimientos y reenviar información. Proporciona un mecanismo fiable para la transferencia de flujos de información. Aunque está íntimamente relacionado con IP TCP es un protocolo independiente de propósito general. Al ser un protocolo de alto nivel su función es que grandes volúmenes de información lleguen a su destino correctamente, pudiendo recobrar la pérdida esporádica de paquetes. Fiabilidad en la transferencia de TCP Cada vez que un paquete es enviado se inicializa un contador de tiempo, al alcanzar el tiempo de expiración, sin haber recibido el reconocimiento, el paquete se reenvía. Al llegar el reconocimiento el tiempo de expiración se cancela. 180 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS A cada paquete que es enviado se le asigna un número de identificador, el equipo que lo recibe deberá enviar un reconocimiento de dicho paquete, lo que indicará que fue recibido. Si después de un tiempo dado el reconocimiento no ha sido recibido el paquete se volverá a enviar. Obsérvese que puede darse el caso en el que el reconocimiento sea el que se pierda, en este caso se reenviará un paquete repetido. Protocolo de Datagramas de Usuario Proporciona de mecanismos primordiales para que programas de aplicación de se comuniquen con otros en computadoras remotas. Utiliza el concepto de puerto para permitir que múltiples conexiones accedan a un programa de aplicación. Provee un servicio no confiable orientado a no conexión. El programa de aplicación tiene la total responsabilidad del control de confiabilidad, mensajes duplicados o perdidos, retardos y paquetes fuera de orden Este protocolo deja al programa de aplicación a ser explotado la responsabilidad de una transmisión fiable. Con él puede darse el caso de que los paquetes se pierdan o bien no sean reconstruidos en forma adecuada. Permite un intercambio de datagramas más directo entre aplicaciones y puede elegirse para aquellas que no demanden una gran cantidad de datagramas para operar óptimamente. QUÉ ES TCP/IP Y SU ARQUITECTURA TCP/IP es el protocolo común utilizado por todos los ordenadores conectados a Internet, de manera que éstos puedan comunicarse entre sí. Hay que tener en cuenta que en Internet se encuentran conectados ordenadores de clases muy diferentes y con hardware y software incompatibles en muchos casos, además de todos los medios y formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del TCP/IP, pues este protocolo se encargará de que la comunicación entre todos sea posible. TCP/IP es compatible con cualquier sistema operativo y con cualquier tipo de hardware. TCP/IP no es un único protocolo, sino que es en realidad lo que se conoce con este nombre es un conjunto de protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son el TCP (Transmisión Control Protocol) y el IP (Internet Protocol), que son los que dan nombre al conjunto. La arquitectura del TCP/IP consta de cinco niveles o capas en las que se agrupan los protocolos y que se relacionan con los niveles OSI de la siguiente manera: 181 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Aplicación: se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP), transferencia de ficheros (FTP), conexión remota (TELNET) y otros más recientes como el protocolo http ( HyperText Transfer Protocol). Transporte: coincide con el nivel de transporte del modelo OSI. Los protocolos de este nivel, tales como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad necesaria en el transporte de los mismos. Internet: es el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los paquetes de información a sus destinos correspondientes. Es utilizado con esta finalidad por los protocolos del nivel de transporte . Físico: Análogo al nivel físico del OSI. Red: Es la interfaz de la red real. TCP/IP no especifica ningún protocolo concreto, así es que corre por las interfaces conocidas, como por ejemplo: 802.2, CSMA/CD, X.25, etc. Arquitectura TCP/IP · Nivel de Aplicación · Nivel de Transporte · Nivel de Internet · Nivel de Red · Nivel Físico El TCP/IP necesita funcionar sobre algún tipo de red o de medio físico que proporcione sus propios protocolos para el nivel de enlace de Internet. Por este motivo hay que tener en cuenta que los protocolos utilizados en este nivel pueden ser muy diversos y no forman parte del conjunto TCP/IP. Sin embargo, esto no debe ser problemático puesto que una de las funciones y ventajas principales del TCP/IP es proporcionar una abstracción del medio de forma que sea posible el intercambio de información entre medios diferentes y tecnologías que inicialmente son incompatibles. Para transmitir información a través de TCP/IP, esta debe ser dividida en unidades de menor tamaño. Este proporciona grandes ventajas en el manejo de los datos que se transfieren y, por otro lado, esto es algo común en cualquier protocolo de comunicaciones. En TCP/IP cada una de estas unidades de información recibe el nombre de "datagrama" y con conjuntos de datos que se envían como mensajes independientes. 182 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS CÓMO FUNCIONA TCP/IP IP a diferencia del protocolo X.25, que esta orientado a conexión, es sin conexión. Esta basado en la idea de los datagramas interred, los cuales son transportados transparentemente, pero no siempre con seguridad, desde el hostal fuente hasta el hostal destinatario, quizás recorriendo varias redes mientras viaja. El protocolo IP trabaja de la siguiente manera; la capa de transporte toma los mensajes y los divide en datagramas, de hasta 64K octetos cada uno. Cada datagrama se transmite a través de la red interred, posiblemente fragmentándolos en unidades más pequeñas, durante su recorrido normal. Al final, cuando todas las piezas llegan a la máquina destinataria, la capa de transporte los reensambla para así reconstruir el mensaje original. Un datagrama IP consta de una parte de cabecera y una parte de texto. La cabecera tiene una parte fija de 20 octetos y una parte opcional de longitud variable. El campo versión indica a qué versión del protocolo pertenece cada uno de los datagramas. Mediante la inclusión de la versión en cada datagrama, no se excluye la posibilidad de modificar los protocolos mientras la red se encuentre en operación. El campo Opciones se utiliza para fines de seguridad, encaminamiento fuente, informe de errores, depuración, sellado de tiempo, así como otro tipo de información que actualmente no está presente en el diseño original. También, para permitir que los experimentadores trabajen con nuevas ideas y para evitar, la asignación de bits de cabecera a información que muy rara vez se necesita. Debido a que la longitud de la cabecera no es constante, un campo de la cabecera, IHL, permite que se indique la longitud que tiene la cabecera en palabras de 32 bits. El valor mínimo es de 5 tamaño 4 bits. El campo Tipo de servicio le permite al hostal indicarle a la subred el tipo de servicio que desea. Es posible tener varias combinaciones con respecto a la seguridad y la velocidad. Para la voz digitalizada, por ejemplo, es más importante la entrega rápida que corregir errores de transmisión. En tanto que, para la transferencia de archivos, resulta más importante tener la transmisión fiable que entrega rápida. También, es posible tener algunas otras combinaciones, desde un tráfico rutinario, hasta una anulación instantánea. Tamaño 8 bits. La longitud total incluye todo lo que se encuentra en el datagrama en tanto la cabecera como los datos. La máxima longitud es de 65 536 octetos (bytes). Tamaño 16 bits. 183 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El campo Identificación se necesita para permitir que el hostal destinatario determine a qué datagrama pertenece el fragmento recién llegado. Todos los fragmentos de un datagrama contienen el mismo valor de identificación. Tamaño 16 bits. En seguida viene un bit que no se utiliza, y después dos campos de 1 bit. Las letras DF quieren decir no fragmentar. Esta es una orden que las pasarelas no fragmenten el datagrama, porque el extremo destinatario es incapaz de poner las partes juntas nuevamente. Por ejemplo, supóngase que se tiene un datagrama que se encarga en un micro pequeño para su ejecución; podría marcarse con DF porque la ROM de micro espera el programa completo en un datagrama. Si el datagrama no puede pasarse a través de una red, se deberá encaminar sobre otra red, o bien desecharse. Las letras MF significan más fragmentos. Todos los fragmentos con excepción del último, deberán tener ese bit puesto. Se utiliza como una verificación doble contra el campo de Longitud total, con objeto de tener seguridad de que no faltan fragmentos y que el datagrama entero se reensamble por completo. El desplazamiento de fragmento indica el lugar del datagrama actual al cual pertenece este fragmento. En un datagrama, todos los fragmentos, con excepción del último, deberán ser un múltiplo de 8 octetos, que es la unidad elemental de fragmentación. Dado que se proporcionan 13 bits, hay un máximo de 8 192 fragmentos por datagrama, dando así una longitud máxima de datagrama de 65 536 octetos, que coinciden con el campo Longitud total. Tamaño 16 bits. El campo Tiempo de vida es un contador que se utiliza para limitar el tiempo de vida de los paquetes. Cuando se llega a cero, el paquete se destruye. La unidad de tiempo es el segundo, permitiéndose un tiempo de vida máximo de 255 segundos. Tamaño 8 bits. Cuando la capa de red ha terminado de ensamblar un datagrama completo, necesitará saber qué hacer con él. El campo Protocolo indica, a qué proceso de transporte pertenece el datagrama. El TCP es efectivamente una posibilidad, pero en realidad hay muchos más. Protocolo: El número utilizado en este campo sirve para indicar a que protocolo pertenece el datagrama que se encuentra a continuación de la cabecera, de manera que pueda ser tratado correctamente cuando llegue a su destino. Tamaño 8 bits. 184 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS El código de redundancia de la cabecera es necesario para verificar que los datos contenidos en la cabecera IP son correctos. Por razones de eficiencia este campo no puede utilizarse para comprobar los datos incluidos a continuación, sino que éstos datos de usuario se comprobarán posteriormente a partir del código de redundancia de la cabecera siguiente, y que corresponde al nivel de transporte. Este campo debe calcularse de nuevo cuando cambia alguna opción de la cabecera, como puede ser el tiempo de vida. Tamaño 16 bit. La dirección de origen contiene la dirección del host que envía el paquete. Tamaño 16 bits. La dirección de destino: esta dirección es la del host que recibirá la información. Los routes o gateway intermedios deben conocerla para dirigir correctamente el paquete. Tamaño 32 bits. ESTRUCTURA INTERNA FÍSICA REDES INTERNET 185 TRANSPORTE INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS APLICACIÓN 6.8 SISTEMAS ABIERTOS Se trata de sistemas que importan y procesan elementos (energía, materia, información) de sus ambientes y esta es una característica propia de todos los sistemas vivos. Que un sistema sea abierto significa que establece intercambios permanentes con su ambiente, intercambios que determinan su equilibrio, capacidad reproductiva o continuidad, es decir, su viabilidad (entropía negativa, teología, morfogénesis, equifinalidad). El término sistema es empleado generalmente en el sentido de sistema total. Los componentes necesarios para la operación de un sistema total son llamados subsistemas, los que , a su vez, están formados por la reunión de nuevos subsistemas más detallados. En cuanto a su constitución, los sistemas pueden ser físicos o abstractos: sistema físicos o concretos, cuando están compuesto por equipos, por maquinarias y por objetos y cosas reales. Sistemas abstractos, cuando están compuestos por conceptos, planes, hipótesis e ideas. En ciertos casos, el sistema físico opera en consonancia con el sistema abstracto. En cuanto a su naturaleza, los sistemas pueden ser cerrados o abiertos: los sistemas cerrados son los que no presentan intercambio con el medio ambiente que los rodea, pues son herméticos a cualquier influencia ambiental. Los sistemas abiertos son los que presentan relaciones de intercambio con el ambiente, a través de entradas y salidas. Para alcanzar sus objetivos los sistemas interaccionan con su medio ambiente, el cual esta formado por todos lo objetos que se encuentran fuera de las fronteras de los sistemas. Los sistemas que interactúan con su medio (reciben entradas y producen salidas) se denominan sistemas abiertos. En contraste, aquellos que no 186 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS interactúan con su medio ambiente se les conocen como sistemas cerrados. Todos los sistemas actuales son abiertos. Es así como los sistemas cerrados existen solo como un concepto. El sistema abierto como organismo, es influenciado por el medio ambiente e influye sobre el, alcanzando un equilibrio dinámico en ese sentido. La categoría más importante de los sistemas abiertos son los sistemas vivos. Existen diferencias entre los sistemas abiertos (como los sistemas biológicos y sociales, a saber, células, plantas, el hombre, la organización, la sociedad) y los sistemas cerrados (como los sistemas físicos, las máquinas, el reloj, el termóstato): El sistema abierto interactúa constantemente con el ambiente en forma dual, o sea, lo influencia y es influenciado. El sistema cerrado no interactúa. El sistema abierto puede crecer, cambiar, adaptarse al ambiente y hasta reproducirse bajo ciertas condiciones ambientes. El sistema cerrado no. Es propio del sistema abierto competir con otros sistemas, no así el sistema cerrado. Al igual que los organismos vivos, las empresas tienen seis funciones primarias, estrechamente relacionadas entre sí: Ingestión: las empresas hacen o compras materiales para ser procesados. Adquieren dinero, máquinas y personas del ambiente para asistir otras funciones, tal como los organismos vivos ingieren alimentos, agua y aire para suplir sus necesidades. Procesamiento: los animales ingieren y procesan alimentos para ser transformados en energía y en células orgánicas. En la empresa, la producción es equivalente a este ciclo. Se procesan materiales y se desecha lo que no sirve, habiendo una relación entre las entradas y salidas. Reacción al ambiente: el animal reacciona a su entorno, adaptándose para sobrevivir, debe huir o si no atacar. La empresa reacciona también, cambiando sus materiales, consumidores, empleados y recursos financieros. Se puede alterar el producto, el proceso o la estructura. Provisión de las partes: partes de un organismo vivo pueden ser suplidas con materiales, como la sangre abastece al cuerpo. Los participantes de la empresa pueden ser reemplazados, no son de sus funciones sino también por datos de compras, producción, ventas o contabilidad y se les recompensa bajo la forma de salarios y beneficios. El dinero es muchas veces considerado la sangre de la empresa. Regeneración de partes: las partes de un organismo pierden eficiencia, se enferman o mueren y deben ser regeneradas o relocalizadas para sobrevivir en el conjunto. Miembros de una empresa envejecen, se jubilan, se enferman, se desligan o mueren. Las máquinas se vuelven obsoletas. 187 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Tanto hombres como máquinas deben ser mantenidos o relocalizados, de ahí la función de personal y de mantenimiento. Organización: de las funciones, es la requiere un sistema de comunicaciones para el control y toma de decisiones. En el caso de los animales, que exigen cuidados en la adaptación. En la empresa, se necesita un sistema nervioso central, donde las funciones de producción, compras, comercialización, recompensas y mantenimiento deben ser coordinadas. En un ambiente de constante cambio, la previsión, el planeamiento, la investigación y el desarrollo son aspectos necesarios para que la administración pueda hacer ajustes. El sistema abierto es un conjunto de partes en interacción constituyendo un todo sinérgico, orientado hacia determinados propósitos y en permanente relación de interdependencia con el ambiente externo.El sistema se caracteriza por determinados parámetros. Los parámetros de los sistemas son: entrada, procesamiento, salida, retroacción y ambiente. La descripción del sistema abierto es exactamente aplicable a una organización empresarial. Una empresa es un sistema creado por el hombre y mantiene una dinámica interacción con su medio ambiente, ya sea con los clientes, los proveedores, los competidores, las entidades sindicales, etc. influye sobre el medio ambiente y recibe influencias de éste. La idea de tratar a la organización como un sistema abierto no es nueva. Herbert Spencerya lo afirmaba en el inicio de este siglo: ―Un organismo social se asemeja a un organismos individual en los siguientes rasgos esenciales: en el crecimiento en el hecho de volverse más complejo a medida que crece; en el hecho de que haciéndose más complejo, sus partes exigen una creciente interdependencia; porque su vida tiene inmensa extensión comparada con la vida de sus unidades componentes porque en ambos casos existe creciente integración acompañada por creciente heterogeneidad‖ Las organizaciones poseen todas las características de los sistemas abiertos, definidas en parte anteriormente. 188 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS LA ORGANIZACIÓN COMO UN SISTEMA ABIERTO Herbert Spencer afirmaba a principios del siglo XX: ―Un organismo social se asemeja a un organismo individual en los siguientes rasgos esenciales: En el crecimiento. En el hecho de volverse más complejo a medida que crece. En el hecho de que haciéndose más complejo, sus partes exigen una creciente interdependencia. Porque su vida tiene inmensa extensión comparada con la vida de sus unidades componentes. Porque en ambos casos existe creciente integración acompañada por creciente heterogeneidad‖. Según la teoría estructuralista, Taylor, Fayol y Weber usaron el modelo racional, enfocando las organizaciones como un sistema cerrado. Los sistemas son cerrados cuando están aislados de variables externas y cuando son determinísticos en lugar de probabilísticas. Un sistema determinístico es aquel en que un cambio específico en una de sus variables producirá un resultado particular con certeza. Así, el sistema requiere que todas sus variables sean conocidas y controlables o previsibles. Según Fayol la eficiencia organizacional siempre prevalecerá si las variables organizacionales son controladas dentro de ciertos límites conocidos. 189 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Seguridad Informática Es el conjunto de reglas, planes y acciones que permiten asegurar la información contenida en un sistema computacional. Síntomas más comunes de virus. Incluso el mejor software antivirus puede fallar a la hora de detectar un virus. Existen posibilidades de síntomas de virus informáticos que pueden ser la diferencia entre un simple dolor de cabeza y un gran problema. Veamos algunos síntomas: Los programas comienzan a ocupar más espacio de lo habitual. Aparecen o desaparecen archivos. Cambia el tamaño de un programa o un objeto. Aparecen mensajes u objetos extraños en la pantalla. El disco trabaja más de lo necesario. Los objetos que se encuentran en la pantalla aparecen ligeramente distorsionados. La cantidad de espacio libre del disco disminuye sin ningún tipo de explicación, Se modifican sin razón aparente el nombre de los ficheros. No se puede acceder al disco duro. Cómo proceder ante una infección Cuando el antivirus logra confirmar la presencia de un virus, lo primero que siente el usuario es pánico. Luego pensará qué hacer y se dará cuenta que no tiene idea cómo enfrentarse a un virus informático. Educar a los usuarios sobre estas cuestiones es tan importante como mantenerlos actualizados de los últimos virus que aparecen. No intentaremos describir paso a paso la solución cuando se tiene un antivirus actualizado que posiblemente haga todo por nosotros y solo nos solicita que tomemos una decisión. En su lugar, nos posicionaremos desde la perspectiva del antivirus para determinar qué debemos hacer contra un virus una vez que reconocemos una acción de un virus en el sistema. En algunas oportunidades no tendremos otra salida más que utilizar una extracción manual realizada por nosotros mismos. Es muy común este tipo de cosas con los virus de última horneada que no les dan tiempo a los fabricantes de antivirus a actualizar sus definiciones de virus. 190 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS Cuando uno mismo se va a hacer cargo de la eliminación de un virus es importante contar con el disquete de inicio del sistema operativo limpio de virus para poder arrancar la computadora. Los riesgos que infunden los virus hoy en día obligaron a que empresas enteras se dediquen a buscar la forma de crear programas con fines comerciales que logren combatir con cierta eficacia los virus que ataquen los sistemas informáticos. Este software es conocido con el nombre de programas antivirus y posee algunas características interesantes para poder cumplir su trabajo. Como ya se menciono una de las características fundamentales de un virus es propagarse infectando determinados objetos según fue programado. Identificar un virus supone, primero, lograr su detección y luego poder determinar de qué virus se trata exactamente. A esta técnica se la conoce con el nombre de scanning o escaneo. Una efectiva seguridad informática significa protección de la Información. Definición criptografía: La criptografía es el arte de cambiar algún parámetro de un elemento para protegerlo de la intromisión pasiva o activa. Protegerlo significa: Que alguien no autorizado lo haya leído Que alguien no autorizado lo haya cambiado Que estemos seguros del remitente Un elemento significa: Un mensaje Un archivo Un servicio 191 INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS BIBLIOGRAFÍA Introducción a la computación y a la programación estructurada. Guillermo Levine Gutiérrez. Mc. Graw Hill 2da. Edición. 1990. Introducción a la computación para Ingenieros. Steven C. Chapra Raymond P. Canale. Mac Graw Hill 2da. Edición 1990 739 p.p. Introducción a la computación. R. Peter Norton. Mc. Graw Hill. 1995 Organización de las computadoras. Adrew S. Tanenbaum. Prentice Hall. 2da. Edición. 1992 Introducción a las computadoras y el procesamiento de información. Larry Long. Prentice Hall. 2da. Edición 1995 Procesamiento de datos. Lusseaumeleo, Leo. Prentice Hall 4ta. Edición. 1992 www.monografias.com www.google.com www.lawebdelprogramador.com www.webopedia.com www.elrinconcito.com 192