Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA “ANTONIO JOSÉ DE SUCRE” VICE-RECTORADO PUERTO ORDAZ DEPARTAMENTO DE INGENIERÍA INDUSTRIAL MAESTRÍA EN INGENIERÍA INDUSTRIAL CURSO INTRODUCTORIO PRIMERA PARTE INFORMÁTICA Y REDES DE COMUNICACIONES Tema II: Introducción a la Computación 1 Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 TEMA II: INTRODUCCION A LA COMPUTACION. SUMARIO Definiciones básicas. Estructura del computador. Software. Hardware. Lenguajes de Programación. Sistemas operativos. 2.1. Definiciones Básicas. A continuación se mencionan algunos conceptos básicos dentro del argot de la computación y que corresponden a una pequeña parte de todo un universo de términos utilizados frecuentemente entre las personas que se desempeñan en este medio. 2.1.1.- Computador: procesador de datos que permite computar, incluyendo operaciones aritméticas y lógicas, sin intervención de un humano en el proceso de ejecución del proceso. Se caracterizan por desarrollar gran cantidad de operaciones lógicas y aritméticas en pequeñas unidades de tiempo. 2.1.2. - Microcomputador: con este nombre se designan las maquinas mas compactas utilizadas para el desarrollo de trabajos de computación a nivel personal. Su nombre se deriva fundamentalmente de la diferencia de tamaño entre los grandes y viejos computadores y las pequeñas maquinas de cálculos para uso personal. 2.1.3. - Programa: esta constituido por la serie de instrucciones y sentencias preparadas en orden lógico para resolver un problema y obtener un resultado cierto. 2.1.4. - Algoritmo: procedimiento estructurado el cual procura la solución de un problema en un numero finito de pasos. 2.1.5. - Lenguaje de Programación: es un sistema de representación y comunicación de información o datos entre las personas y las maquinas. Un lenguaje consiste de un conjunto de instrucciones o palabras para realizar determinadas acciones en un programa de computación. Tema II: Introducción a la Computación 2 Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 2.1.6. - Bit: es la contracción de la palabra dígito binario (binary digit). Es una unidad de información igual a una decisión binaria. Puede tomar dos únicos valores. 2.1.7. - Byte: expresión utilizada para denotar una palabra que esta formada por ocho bits. 2.1.8. - Mainframes: se denotan con este nombre los grandes computadores, los cuales poseen potentes prestaciones, entre las cuales figura su alta velocidad de procesamiento. 2.1.9. - Paquete de Computación: son programas realizados por programadores bajo una estructura estándar, fácil de ser utilizados por un usuario para realizar casi cualquier tarea que esté dentro de su ámbito de desarrollo. Ejemplo: programas matemáticos, los cuales permiten obtener de manera rápida y precisa el resultado de una integral definida y que al mismo tiempo pueden ser utilizados para realizar una gráfica de una función. 2.1.10. - Memoria RAM: con este termino se abrevia la memoria de acceso aleatorio (Random Access Memory). Este tipo de memoria es aleatorio debido a que en ella se puede guardar/extraer información hacia/ desde cualquier localidad en cualquier orden rápidamente. Este tipo de memoria es de lectura y escritura y tiene como desventaja que es volátil, es decir, al circuito no estar energizado se pierde la información contenida en ella. 2.1.11.- Memoria ROM: este tipo de memoria es de solo lectura, de allí su nombre ROM (Read Only Memory). Estas memorias almacenan la información por periodos de tiempo prácticamente infinitos. Estos elementos de almacenamiento son bastante económicos y permiten guardar información en muy grandes cantidades. 2.1.12. - Microprocesador: dispositivo electrónico encapsulado que posee una muy alta escala de integración. Es el responsable de llevar el control secuencial en un proceso de computación a través de un algoritmo en un lenguaje de maquina (combinación de unos y ceros lógicos). Este dispositivo contiene registros, unidad de procesamiento aritmética, unidad lógica, terminales de entrada / salida, terminales de control, etc. Tema II: Introducción a la Computación 3 Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 2.2. Estructura del Computador. 2.2.1.- Historia de las Computadoras: En el siguiente cuadro se muestra el desarrollo que las máquinas computadoras han tenido desde el momento de su aparición hasta nuestros días. La característica que se ha tomado en cuenta para realizar la clasificación por generación es la tecnología utilizada en cada una de ellas. GENERACION CARACTERISTICAS PRIMERA (1946-1959) Favorecida por los ambientes de guerra y desarrollada en Pennsylvania. Fue llamada ENIAC (electronic Numerical Integrator and Computer). Basada en válvulas al vacío. Disipaba mucha potencia y era muy grande. SEGUNDA (1959-1964) Utiliza el transistor como elemento de conmutación. Se reduce el tamaño considerablemente. Es mucho más rápida. Surge la IBM. Incorpora lectora de cintas magnéticas y tarjetas perforadas. TERCERA (1969-1971) Se basa en la aparición de los primeros circuitos integrados. Aparece la primera minicomputadora. Aparecen también los primeros lenguajes de programación de alto nivel como Cobol y Fortran. CUARTA (1971 ACTUALIDAD) A Tema II: Introducción a la Computación LA 1972 – 1979: Aparece el primer microprocesador de Intel llamado 8080. Permitió realizar grandes avances en la construcción de maquinas computadoras bajo una arquitectura mas estandarizada. Aparece el disco flexible y las interfases de entrada / salida. Década de los 80: Se comercializan las computadoras personales y con ello se desarrollan gran cantidad de software de aplicaciones especificas. Aparecen los sistemas operativos. Se dan las primeras experiencia de conexión en red. Surgen las Redes de Area Local (LAN). Década de los 90: Aparecen computadoras personales de grandes velocidades. Aparecen los computadores portátiles muy funcionales y ligeros. Se desarrollan vertiginosamente las redes de computo incoporándose rápidamente al sector industrial y comercial. 4 Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 2.2.2.- Hardware de un sistema de computación. Se conoce como hardware de un sistema de computación a toda la parte física circuital del sistema. Todos los circuitos electrónicos y la interconexión entre ellos forman parte del hardware. Un termino también relacionado con el hardware lo constituye la arquitectura del computador, lo cual indica la forma lógica estructural circuitalmente hablando. Su interconexión, la lógica utilizada para el proceso total, la forma de procesar los datos, la manera de presentar los datos, etc., con aspectos relativos a la arquitectura del computador. 2.2.3.- Elementos básicos de un Sistema de Computo. Primeramente definiremos sistema de computo como aquel equipo electrónico que permite procesar e intercambiar información a través de dispositivos periféricos de entrada y salida con un usuario. Podemos diferenciar dos unidades funcionales dentro de él. Estas son el software y el hardware. El software lo conforman todas las instrucciones necesarias para que el sistema de cómputo realice el procesamiento de información, es decir todo el conjunto de programas de uso general o especifico que se ejecutan en el sistema. La organización funcional de un sistema de computación general se puede representar por bloques funcionales. Los bloques funcionales son: la unidad de procesamiento central (CPU), la memoria principal y el procesador de entrada salida (I/O). Figura Nro. 1: Diagrama de un sistema de computación. Tema II: Introducción a la Computación 5 Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 2.2.3.a. Unidad de Procesamiento Central: la CPU es la responsable de la interpretación y ejecución de instrucciones contenidas en la memoria principal. Las comunicaciones entre CPU y la memoria principal se realizan a través de dos ductos (llamados Buses) funcionalmente distintos: el bus de direcciones y el bus de datos. Para introducir en la memoria una instrucción especifica, la CPU envía a aquélla la dirección de la instrucción por el bus de direcciones y recibe por el mismo medio la instrucción que esta en esa dirección. Adicionalmente se puede decir que la CPU esta subdividida en tres partes: la unidad de control, dedicada a los ciclos de búsqueda y de control. La unidad aritmética y lógica (ALU) que desempeña funciones de aritmética (suma, resta) y lógicas (AND, OR) y un conjunto de registros dedicados al almacenamiento de datos en la CPU y ciertas funciones de control. 2.2.3.b. Memoria Principal: es una memoria d acceso aleatorio, consta de un conjunto de cadenas de bits. Dado que las direcciones son un número binario el espacio de direcciones es una potencia entera de dos; es decir, 2k, donde k representa el número de líneas en el bus de direcciones. 2.2.3.c. procesador de entrada / salida (I/O): controla el flujo de información entre dispositivos de entrada/salida, la CPU y secciones de memoria de la maquina. 2.3. Software de un sistema de computación. La estructura circuital de un computador por si sola no sirve de nada. Debe dársele uso a todos y cada uno de las potencialidades de un computador para verdaderamente sentirse satisfecha de su funcionalidad. La manera lógica como se controla el sistema, la ejecución de instrucciones en el computador para que realice una acción determinada, es lo que se conoce como software. Son todos los programas que se basan en las potencialidades del hardware para lograr resultados más rápidos, potentes, exactos, representativos, etc. Una computadora sin software de sistemas es una herramienta en extremo deficiente para el programador de aplicaciones. Las componentes de software que se mencionan a continuación se consideran necesarias para el uso de del hardware en un sistema generalmente útil: a) Ensamblador, compiladores e interpretes: traducen los programas de computadoras simbólicos al sistema binario. b) Enlazador: es un programa de computadora que combina en una sola unidad para su ejecución las componentes de un programa, como un programa principal, subrutinas y componentes de las bibliotecas de sistema. c) Depurador: es un sistema de prueba para programas que permite a un programador verificar un programa en desarrollo, probarlo, ejecutarlo por etapas con la finalidad de corregir errores. d) sistema de manejo y editores de archivos: se utilizan como medio adecuado de almacenamiento, recuperación y modificación de programas. Tema II: Introducción a la Computación 6 Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 e) unidades de entrada y salida: se utilizan para controlar las unidades de entrada y salida de una computadora. f) Sistema operativo: ayudan a los operadores de computadoras a realizar el proceso de administración de los recursos del sistema. g) Sistema del lenguaje de control: es el procesador que interpreta las solicitudes de los usuarios y las transmite al sistema operativo. 2.4. Lenguajes de Programación. A continuación se describen algunos de los lenguajes de programación más comunes comercialmente. 2.4.1. - ALGOL: ( International Algebraic Language) es producto de un grupo de científicos internacionales. Inicialmente se llamó lenguaje algebraico internacional. Entre las características que lo hicieron famoso se encuentra el hecho de que en un principio se definió en forma de metalenguaje, que después se conoció como BNF, y fue la razón por lo cual posteriormente fuese conocido y aceptado. El lenguaje era simple, solo tenía seis tipos de instrucciones y unas cuantas restricciones. 2.4.2. - COBOL: (Common Bussiness-Oriented Language) es un lenguaje común orientado a las empresas que se originó en el departamento de la Defensa de los Estados Unidos como una manera de dar respuesta a los problemas planteados con la incompatibilidad de sistemas dada la diversidad de software y arquitectura existentes. Las primeras especificaciones aparecieron en 1960. Se utilizó como un lenguaje de programación estándar poniendo a disposición una norma para la realización de compiladores. Muchos de los sistemas existentes en el sector empresarial utilizan COBOL, dado esto a la permanente actualización que se realiza del mismo. Sus instrucciones son parecidas al idioma ingles, que son más fáciles de leer que las de otros lenguajes, gran características de edición de datos, facilidades para el manejo de archivos, su naturaleza evolutiva a medida que se realizan cambios en las necesidades de las empresas. Dentro de las deficiencias se tiene la carencia de capacidades matemáticas y de construcciones estructuradas. 2.4.3. - FORTRAN IV y 77: (Formula Translator) fue desarrollado por IBM a mediados de 1950, principalmente para aplicaciones científicas y de ingeniería. Fue el primer lenguaje de alto nivel ampliamente utilizado. Sus facultades más importantes son una ejecución muy eficiente y la facilidad de con la cual se pueden enlazar los módulos. Esta provisión de compilación aparte, hace posible la generación de una biblioteca de rutinas que se puede utilizar en la producción de nuevo software. La estructura básica de un programa en Fortran es simplemente el modulo principal seguido de subprogramas internos. 2.4.4. - PL/I: (Programming Language I) su desarrollo comenzó en 1963, llevado a cabo por un grupo de expertos internacionales contando con el apoyo de IBM, con la finalidad de diseñar un lenguaje que sustituyera al FORTRAN, con la finalidad de buscar un lenguaje que pudiera explotar las potencialidades de las nuevas computadoras. El PL/I es un lenguaje de programación con muy diversas construcciones y características. Ofrece Tema II: Introducción a la Computación 7 Maestría en Ingeniería Industrial Curso Introductorio / Mayo 2011 medios a los programadores para manipular con facilidad la mayor parte de las condiciones en el momento de la ejecución. Otras características importantes son: un equipo de manejo de macroinstrucciones para el momento de la compilación, tipos de datos en cadena (de caracteres y bits) y tipos de datos numéricos de precisión variable. 2.4.5. - BASIC: (Beginner’s All-propose Symbolic Instrucction Code) se originó en 1960. Su objetivo era diseñar un lenguaje que fuera sencillo de prender y utilizar por un programador inexperto, de manera de poder resolver problemas de programación simples. El lenguaje original se diseñó con un número mínimo de estructuras de control y estructuras de datos. Las versiones originales de BASIC eran mínimas en naturaleza y estaban diseñadas como primer lenguaje para estudiantes. Después que hubiesen dominado BASIC, utilizarían otros lenguajes de programación para hacer programas mas rápidos y eficientes. 2.4.6. - PASCAL: se originó en 1974 y forma parte de la familia de ALGOL, incluye un vasto conjunto de estructuras de datos y posibilidades de contracción de estructuras de datos. Se diseño principalmente como lenguaje de enseñanza. Acepta sin dificultad técnicas de programación estructurada, tales como la modularización y diseño descendente. El PASCAL ganó rápidamente la aceptación en la comunidad académica, y el éxito del método de programación estructurada ha contribuido asimismo a su creciente popularidad en los lugares de trabajo. 2.4.7. - C: es un lenguaje de programación de uso general y fue originalmente concebido para ser ejecutado bajo sistema operativo UNIX. No está sujeto a un sistema operativo en particular. El C es un lenguaje relativamente de bajo nivel, en el sentido que maneja muchos de los mismos tipos de objetos que el lenguaje ensamblador (caracteres, números y direcciones). 2.4.8. - LISP: (List Processor) fue diseñado por el MIT como lenguaje para el procesamiento de símbolos. Cuenta con recursos para la manipulación de datos no numéricos y numéricos; la facilidad con que se pueden manipular datos simbólicos hace del LISP, el lenguaje preferido para muchas aplicaciones en que se utilizan este tipo de datos. 2.5. Sistema Operativo. El sistema operativo es el responsable de la administración de recursos en el computador. Esta compuesto por un grupo de programas que interactúan entre sí y su finalidad de hacer del sistema de computo una herramienta eficiente, brindándole al usuario todo un conjunto de apoyos en la realización de las tareas, tales como: copia de información, transferencia de archivos, impresión, etc. Ejemplos de sistemas operativos son: UNÍX, Windows, DOS, Linux, etc. Tema II: Introducción a la Computación 8