Download Teoría computación
Document related concepts
no text concepts found
Transcript
Introducción a la Computación. 2017-2 1.- Nacimiento y evolución de las computadoras 1.1. Antecedentes El ábaco es el primer antecesor de la computadora, los chinos lo desarrollaron, con éste realizaban cálculos rápidos y complejos. Éste instrumento tenía un marco de madera con cables horizontales con bolas agujereadas que corrían de izquierda a derecha. En el siglo XVII, John Napier, inventa los logaritmos (unas funciones matemáticas que permiten convertir las multiplicaciones en sumas y las divisiones en restas) inventó un dispositivo de palillos con números impresos que, merced a un ingenioso y complicado mecanismo, le permitía realizar operaciones de multiplicación y división. En 1642 Blaise Pascal inventó el primer calculador mecánico de nombre pascalina. Deseando reducir el trabajo de cálculo de su padre, funcionario de impuestos, fabricó un dispositivo de 8 ruedas dentadas en el que cada una hacía avanzar un paso a la siguiente cuando completaba una vuelta. Estaban marcadas con números del 0 al 9 y había dos para los decimales. Giraban mediante una manivela, con lo cual para sumar o restar había que darle el número de vueltas correspondiente en un sentido o en otro. En 1801 el francés Joseph Marie Jacquard, utilizó un mecanismo de tarjetas perforadas para controlar el dibujo formado por los hilos de las telas confeccionadas por una máquina de tejer. Estas plantillas o moldes permitían programar las puntadas del tejido, logrando obtener una diversidad de tramas y figuras. Charles Babbage creó un motor analítico que permitía sumar, restar, multiplicar y dividir a una velocidad de 60 sumas por minuto. En 1843 Lady Ada Augusta Lovelace sugirió la idea de que las tarjetas perforadas se adaptaran de manera que causaran que el motor de Babbage repitiera ciertas operaciones. Debido a esta sugerencia algunos consideran a Lady Lovelace la primera programadora. En 1879, Herman Hollerith fue contratado por las oficinas del censo estadounidense y desarrolló un sistema de cómputo mediante tarjetas perforadas en las que los agujeros representaban el sexo, la edad, raza, entre otros. Gracias a la máquina tabuladora de Hollerith el censo de 1890 se realizó en dos años y medio, cinco menos que el censo de 1880. Hollerith dejó las oficinas del censo en 1896 para fundar su propia Compañía: la Tabulating Machine Company, para 1900 había desarrollado una máquina que podía clasificar 300 tarjetas por minuto en vez de las 80 cuando el censo. En 1924 Hollerith fusionó su compañía con otras dos para formar la International Business Machines hoy mundialmente conocida como IBM. A comienzos de los años 30, John Vincent Atanasoff, se encontró con que los problemas que tenía que resolver requerían una excesiva cantidad de cálculo. Aficionado a la electrónica y conocedor de la máquina de Pascal y las teorías de Babbage, empezó a considerar la posibilidad de construir una calculadora digital. Decidió que la máquina habría de operar en sistema binario, y hacer los cálculos de modo distinto a como los realizaban las calculadoras mecánicas. Este primer aparato fue conocido como ABC Atanasoff Berry-Computer. 1 Introducción a la Computación. 2017-2 Prácticamente al mismo tiempo que Atanasoff, el ingeniero John Mauchly, se había encontrado con los mismos problemas en cuanto a velocidad de cálculo, y estaba convencido de que habría una forma de acelerar el proceso por medios electrónicos. Al carecer de medios económicos, construyó un pequeño calculador digital y se presentó al congreso de la Asociación Americana para el Avance de la Ciencia para presentar un informe sobre el mismo. Allí, en diciembre de 1940, se encontró con Atanasoff, y el intercambio de ideas que tuvieron originó una disputa sobré la paternidad del computador digital. ENIAC. Mauchly publicó un artículo con sus ideas y las de Atanasoff, lo cual despertó el interés de Herman Goldstine, un oficial de la reserva que hacía de intermediario entre la universidad y el ejército, el cual consiguió interesar al Departamento de Ordenación en la financiación de un computador electrónico digital. El 9 de abril de 1943 se autorizó a Mauchly iniciar el desarrollo del proyecto. Se le llamó Electronic Numerical integrator and Computer (ENIAC) y comenzó a funcionar en las instalaciones militares norteamericanas del campo Aberdeen Proving Ground en agosto de 1947. La construcción tardó 4 años y costó $486.804.22 dólares (el equivalente actual a unos tres millones de dólares por menos poder de cómputo del que actualmente se consigue en las calculadoras de mano). El ENIAC tenía 19.000 tubos de vacío, 1500 relés, 7500 interruptores, cientos de miles de resistencias, condensadores e inductores y 800 kilómetros de alambres, funcionando todo a una frecuencia de reloj de 100.000 ciclos por segundo (1khz). Tenía 20 acumuladores de 10 dígitos, era capaz de sumar, restar, multiplicar y dividir, y tenía tres tablas de funciones. La entrada y la salida de datos se realizaba mediante tarjetas perforadas. Podía realizar unas 5000 sumas por segundo. Pesaba unas 30 toneladas y tenía un tamaño equivalente al de un salón de clases. Consumía 200 kilovatios de potencia eléctrica y necesitaba un equipo de aire acondicionado para disipar el gran calor que producía. En promedio, cada tres horas de uso fallaba una de las válvulas. Lo que caracterizaba al ENIAC como a un computador moderno no era simplemente su velocidad de cálculo, sino el que permitía realizar tareas que antes eran imposibles. Mark 1 Entre 1939 y 1944, Howard Aiken de la Universidad de Harvard, en colaboración con IBM, desarrolló el Mark 1, conocido como Calculadora Automática de Secuencia Controlada. Fue un computador electromecánico de 16 metros de largo y unos 2 de alto. Tenía 700.000 elementos móviles y varios centenares de kilómetros de cables. Podía realizar las cuatro operaciones básicas y trabajar con información almacenada en forma de tablas. Operaba con números de hasta 23 dígitos y podía multiplicar tres números de 8 dígitos en 1 segundo. El Mark 1, y las versiones que posteriormente se realizaron del mismo, tenían el mérito de asemejarse al tipo de máquina ideado por Babbage, aunque trabajaban en código decimal y no en binario. El avance que dieron estas máquinas electromecánicas a la informática fue rápidamente ensombrecido por el ENIAC con sus circuitos electrónicos. 2 Introducción a la Computación. 2017-2 Alan Turing, matemático inglés, descifra los códigos secretos Enigma usados por la Alemania nazi para sus comunicaciones. Turing fue un pionero en el desarrollo de la lógica de los computadores modernos, y uno de los primeros en tratar el tema de la inteligencia artificial con máquinas. Norbert Wiener, trabajó con la defensa antiaérea estadounidense y estudió la base matemática de la comunicación de la información y del control de un sistema para derribar aviones. En 1948 publicó sus resultados en un libro que tituló CYBERNETICS (Cibernética), palabra que provenía del griego "piloto", y que se usó ampliamente para indicar automatización de procesos. 1.2. Generaciones de Computadoras. Primera generación de computadoras Abarca desde los inicios de los años 50 hasta unos diez años después, y en la cual la tecnología electrónica era a base de bulbos o tubos de vacío, y la comunicación era en términos de nivel más bajo que puede existir, que se conoce como lenguaje de máquina. Estas máquinas eran así: Estaban construidas con electrónica de válvulas Se programaban en lenguaje de máquina Un programa es un conjunto de instrucciones para que la máquina efectúe alguna tarea, y que el lenguaje más simple en el que puede especificarse un programa se llama lenguaje de máquina (porque el programa debe escribirse mediante algún conjunto de códigos binarios). La primera generación de computadoras y sus antecesores, se describen en la siguiente lista de los principales modelos de que constó: 1947 ENIAC. Primera computadora digital electrónica de la historia. No fue modelo de producción, sino una máquina experimental. Se trataba de un enorme aparato que ocupa todo un sótano en la universidad. Constaban de 18.000 bulbos, consumía varios Kw de potencia eléctrica y pesaba algunas toneladas. 1949 EDVAC. Primera computadora programable. También fue un prototipo de laboratorio, pero ya incluía en su diseño las ideas centrales que conforman a las computadoras actuales. Incorporaba las ideas del doctor Alex Quimis. 1951 UNIVAC I. Primera computadora comercial. Los doctores Mauchly y Eckert fundaron la compañía Universal Computer (Univac), y su primer producto fue esta máquina. El primer cliente fue la oficina del censo de Estados Unidos. 1953 IBM 701. Para introducir los datos, estos equipos empleaban el concepto de tarjetas perforadas, que había, sido inventado en los años de la revolución industrial (finales del siglo XVIII) por el francés Jacquard y perfeccionado por el estadounidense Hermand Hollerith en 1890. 3 Introducción a la Computación. 2017-2 1954 - IBM continuó con otros modelos, que incorporaban un mecanismo de almacenamiento masivo llamado tambor magnético, que con los años evolucionaría y se convertiría en disco magnético. Segunda generación de computadoras. Abarca el periodo comprendido entre 1959 y 1964, caracterizándose por la invención del transistor. Por los años 50, los transistores reemplazaron a los bulbos en los circuitos de las computadoras. Las computadoras de la segunda generación ya no son de bulbos, sino con transistores son más pequeñas y consumen menos electricidad que las anteriores, la forma de comunicación con estas nuevas computadoras es mediante lenguajes más avanzados que el lenguaje de máquina, y que reciben el nombre de "lenguajes de alto nivel" o lenguajes de programación. Las características más relevantes de las computadoras de la segunda generación son: Estaban construidas con electrónica de transistores Se programaban con lenguajes de alto nivel 1951, Maurice Wilkes inventa la microprogramación, que simplifica mucho el desarrollo de las CPU 1956, IBM vendió su primer sistema de disco magnético, RAMAC [Random Access Method of Accounting and Control]. Usaba 50 discos de metal de 24", con 100 pistas por lado. Podía guardar 5 megabytes de datos y con un costo de $10,000 por megabyte. El primer lenguaje de programación de propósito general de alto-nivel, FORTRAN, también estaba desarrollándose en IBM alrededor de este tiempo. (El diseño de lenguaje de alto-nivel Plankalkül de 1945 de Konrad Zuse no se implementó en ese momento). 1959, IBM saco la mainframe IBM 1401 basado en transistor, que utilizaba tarjetas perforadas. Uso una memoria de núcleo magnético de 4.000 caracteres (después extendió a 16.000 caracteres). Muchos aspectos de sus diseños eran basados en el deseo de reemplazar las máquinas de tarjetas perforadas que eran en extenso uso de los años 1920 a través de principios de los '70. 1960, IBM saco la mainframe IBM 1620, usaba una memoria de núcleo magnético de arriba de los 60.000 dígitos decimales. 4 Introducción a la Computación. 2017-2 Tercera Generación de computadoras Abarca el periodo comprendido entre 1965 y 1980. Con la introducción del microchip se empezó a reducir cada vez más el tamaño de las computadoras, ya que el microchip podía albergar varios transistores en una sola pastilla. La primera computadora que contaba con microchips era la IBM 360, desbancando rápidamente a las computadoras de segunda generación. Su principal característica es: la invención de los circuitos integrados (microchip) la multiprogramación En las computadoras de segunda generación cuando un proceso estaba ocupando alguna parte de la computadora, el CPU tenía que detenerse y esperar hasta que ese proceso finalizara, lo cual resultaba en un desperdicio tiempo. La solución fue crear la multiprogramación que consiste dividir la memoria en varias partes, de esa forma mientras que un trabajo espera a que concluya la Entrada o Salida de datos, otro puede estar utilizando el CPU. Cuarta Generación de computadoras. Abarca del periodo comprendido entre 1980 hasta la actualidad. Lo más relevante de esta generación es la introducción de la computadora personal, que hasta años más atrás era imposible imaginar una computadora pequeña y personal. Su principal característica es: La introducción de circuitos LCI, Large Scale Integration (Integración a larga escala). Software amigable con el usuario Surgimiento de redes y sistemas operativos distribuidos. Los nuevos microchips de esta generación permitían tener miles o incluso millones de transistores en un cm cuadrado de silicio, las computadoras empiezan a estar disponibles al público en general. Empieza el boom de las computadoras y la guerra de sistemas operativos, principalmente entre Ms-Dos y Unix. Más adelante esta guerra estaría también conformada por Apple y en tiempos más actuales con Linux. Con las computadoras bajando de precio y estando más al alcance del público, a mediados de los 80 empieza el crecimiento de las redes computadoras. Más adelante en los años 90s empieza la conocida Internet. 5 Introducción a la Computación. 2017-2 1.3. Tendencias Futuras En este tema no todos los expertos se ponen de acuerdo, algunos aseguran que hemos rebasado la cuarta generación y que nos encontramos en la 5ta o 6ta, otros niegan esto ya que a pesar de que las velocidades procesamiento han crecido en cantidades importantes y que cada vez los componentes son más pequeños, la esencia de la computadora personal sigue siendo la misma. Se puede considerar como una futura generación cuando contemos con una computadora que tenga inteligencia artificial al 100% en que la interacción con la computadora sea más como se hace con una persona que por medio de un teclado o un mouse. Inclusive los expertos hablan que la computadora como la conocemos el día de hoy desaparecerá abriendo el camino a los robots personales que harán todo el trabajo de una computadora de una manera más fácil para el usuario final. 1.4. Implicaciones Sociales Como cualquier desarrollo en la humanidad, este siempre tiene un impacto sobre la sociedad, cambiando la manera de vivir, las costumbres, organización, tradiciones, etc. Los cambios más sobresalientes en la humanidad debido a la invención de la computadora son las siguientes: Automatización: Los trabajos tradicionales o manuales se ven automatizados gracias a la computadora. Podemos encontrar desde cálculos complejos, problemas administrativos, administración de una casa (una casa inteligente), en inventarios, en el transito, etc. Rapidez en la búsqueda y recuperación de datos: Antes de la computadora para buscar alguna información había que hojear un libro y buscarla detenidamente, actualmente basta con presionar unas cuantas teclas, escribir la palabra o información a buscar y aparece la información casi instantáneamente. Modificación de los patrones de trabajo: Este es uno de los cambios más conflictivos ya que muchas veces las personas se arraigan a su forma de trabajar tradicional, la computadora llego a reemplazar muchos artefactos como lo es la máquina de escribir, la calculadora, e inclusive al mismo trabajador. Acerca recursos a mayor número de gente: Hace años la gente cuando iba a imaginar que al mismo tiempo que estuviera pasando algo del otro lado del mundo podría estarlo viendo, gracias a la computadora esto es posible, es posible unir diferentes personas a través del mundo, tener a la disposición de información que este en Inglaterra y poderla ver desde México Impacto cultural: Un claro ejemplo son los videojuegos y los mundos virtuales como Second Life. Es tanto el impacto de Second Life que gente ya no trabaja en el 6 Introducción a la Computación. 2017-2 mundo ordinario, si que no que programa vestidos, música, construye casas, etc. todo para el mundo virtual, y este es vendido como si fuera un objeto físico. Diferencias de clases: Últimamente el tener una computadora ha sido una característica en las diferentes clases sociales según los censos, a pesar de que la computadora es cada vez más accesible pocas personas tienen una propia en su casa. 1.5. Aplicaciones en las diversas aéreas de conocimiento La computadora como se ha visto es útil en casi cualquier área donde se le coloque, a continuación, se mencionan aplicaciones muy comunes donde se puede encontrar el uso de la computadora. En la oficina. - Archivando documentos, realizando documentos, calculando nominas, haciendo presentaciones, realizando graficas del estado de la empresa, etc. En la industria. - Automatizando líneas de producción, realizando actividades peligrosas, midiendo grados de contaminación de productos, controles de calidad, soldando piezas, etc. En el gobierno. - Mejorando el sistema de atención del ciudadano, automatizando las solicitudes y procesos del gobierno, en control de impuestos, agua, luz, etc. Ingeniería. - Cálculos muy complejos, planeamiento de construcción, diseño de futuras construcciones, previendo catástrofes, etc. Medicina. - Operaciones Quirúrgicas a distancia, diagnosticando a pacientes, realizando estudios a las personas, etc. Enseñanza. - Automatizando la enseñanza tradicional con la ayuda de la computadora haciendo las clases más didácticas, la información para el estudiante esta cada vez más a la mano, educación virtual o a distancia. 7 Introducción a la Computación. 2017-2 2. COMPONENTES DE UN SISTEMA COMPUTACIONAL. El dato es una representación simbólica (numérica, alfabética, algorítmica, etc) de un atributo o variable cuantitativa. En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo. En Estructura de datos, es la parte mínima de la información. En sentido general, la información es un conjunto organizado de datos procesados, que constituyen un mensaje que cambia el estado de conocimiento del sujeto o sistema que recibe dicho mensaje. En principio la información, a diferencia de los datos o las percepciones sensibles, tienen estructura útil que modificará las sucesivas interacciones del ente que posee dicha información con su entorno. Una computadora (del latín computare -calcular-), tiene como meta principal, la de recibir y procesar datos para convertirlos en información útil. Una computadora es una colección de circuitos integrados y otros componentes relacionados que puede ejecutar con exactitud, sorprendente rapidez, y de acuerdo a lo indicado por un usuario o automáticamente por otro programa, una múltiple variedad de secuencias o rutinas de instrucciones que son ordenadas, organizadas y sistematizadas en función a una amplia gama de aplicaciones prácticas y precisamente determinadas, proceso al cual se le ha denominado con el nombre de programación y al que lo realiza se le llama programador. La computadora, además de la rutina o programa informático, necesita de datos específicos que deben ser suministrados, y que son requeridos al momento de la ejecución, para proporcionar el producto final del procesamiento de datos, que recibe el nombre de "output". La información puede ser entonces utilizada, reinterpretada, copiada, transferida, o retransmitida a otras personas, computadoras o componentes electrónicos local o remotamente usando diferentes sistemas de telecomunicación, pudiendo almacenarla en algún tipo de dispositivo o unidad de almacenamiento. 8 Introducción a la Computación. 2017-2 Aunque las tecnologías empleadas en las computadoras digitales han cambiado mucho desde que aparecieron los primeros modelos en los años 40, la mayoría todavía utiliza la arquitectura Eckert-Mauchly, publicada a principios de los años 1940 por John von Neumann pero que fue creada por John Presper Eckert y John William Mauchly. La arquitectura Eckert-Mauchly describe una computadora con 4 secciones principales: 1.- La unidad lógica y aritmética (ALU por sus siglas del inglés: Arithmetic Logic Unit). Su misión es realizar las operaciones con los datos que recibe, siguiendo las indicaciones dadas por la unidad de control. 2.- La unidad de control. Es la parte de la unidad central de proceso que actúa como coordinadora de todas las tareas que ha de realizar la computadora. Asimismo, se encarga de manejar todas las órdenes que la computadora necesita para realizar la ejecución de las operaciones requeridas por los programas de aplicación. 3.- La memoria. Proporciona una de las principales funciones de la computación moderna, la retención o almacenamiento de información. 4.- Los dispositivos de entrada y salida (E/S). Son los aparatos o dispositivos auxiliares e independientes conectados a la CPU de una computadora. Estas partes están interconectadas por un bus de datos el cual es un sistema digital que transfiere datos entre los componentes de un computador o entre computadores. Está formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados. 2.1 Hardware Hardware proveniente del inglés definido por la RAE (REAL ACADEMIA ESPAÑOLA) como el conjunto de elementos materiales que conforman una computadora , sin embargo, es usual que sea utilizado en una forma más amplia, generalmente para describir componentes físicos de una tecnología, así el hardware puede ser de un equipo militar importante, un equipo electrónico, un equipo informático o un robot. En informática también se aplica a los periféricos de una computadora tales como el disco duro, CDROM, floppy, discos, unidades de disco, monitor, teclado, la tarjeta madre, el microprocesador, étc. Tipos de Hardware Se clasifica generalmente en básico y complementario, entendiendo por básico todo aquel dispositivo necesario para iniciar el funcionamiento de la computadora, y el complementario, como su nombre indica, sirve para realizar funciones específicas (más allá de las básicas) no estrictamente necesarias para el funcionamiento de la computadora. 9 Introducción a la Computación. 2017-2 Todo sistema informático tiene componentes hardware dedicados a alguna de estas funciones: 1. Periféricos de entrada 2. Periféricos de salida 3. Periféricos de entrada/salida 4. Memoria 5. Unidad central de procesamiento Cada dispositivo de entrada es sólo otra fuente de señales eléctricas; cada dispositivo de salida no es más que otro lugar al cual enviar señales (salidas); los dispositivos de almacenamiento y las memorias son ambas cosas, dependiendo de lo que requiera el programa (operación de entrada=lectura, operación de salida=escritura). 2.1.1 Clasificación de las computadoras Las computadoras dependiendo su uso o tamaño se les pueden encontrar en varios tipos, a continuación se menciona los tipos y principales características de cada tipo. Supercomputadoras Es una computadora muy potente y muy rápida que existe en un momento dado. Estas computadoras están diseñadas para procesar enormes cantidades de datos en poco tiempo y son dedicadas a una tarea específica. Son las computadoras más caras que pueda haber en el mercado, cuenta con controles de temperatura especial debido al gran calor que generan. Se les pueden encontrar realizando las siguientes tareas: Búsqueda y estudio de la energía y armas nucleares. Búsqueda de yacimientos petrolíferos con grandes base de datos sísmicos. El estudio y predicción de tornados. El estudio y predicción de clima de cualquier parte del mundo. Elaboración de maquetas y proyectos de la fabricación de aviones, simuladores de vuelo, etc. El diseño de las supercomputadoras se sustenta en 4 tecnologías importantes: Registros Vectoriales.- Permite la ejecución de innumerables operaciones aritméticas en paralelo. Sistema M.P.P.- Significa Procesadores Masivamente en Paralelo, esto es el uso de cientos y a veces miles de microprocesadores al mismo tiempo. 10 Introducción a la Computación. 2017-2 Computación Distribuida: Comúnmente designada como cluster, que son computadoras de uso general interconectadas por redes para formar una sola supercomputadora. Cuasi-Supercómputo.- Con esta tecnología se aprovecha el tiempo ocioso de miles de computadoras personales a lo largo del mundo conectadas a internet, de esta forma el trabajo de una supercomputadora se puede distribuir a lo largo de estas miles de computadoras realizando tareas a un costo muy bajo. Cada computadora debe ser capaz de trabajar en su tarea de manera individual aunque no tenga comunicación con otra durante varias horas. Un claro ejemplo de esta tecnología es el PS3. Por su alto costo, este tipo de computadoras generalmente se les encuentra en laboratorios científicos, gobierno y con los militares. Países como E.U, Japón y china han presentando supercomputadoras que trabajan a más de 10 teraflops. Sus características principales son: Velocidad de Proceso.- miles de millones de instrucciones de coma flotante por segundo. Usuarios a la vez: Hasta miles, en redes. Tamaño: Requieren instalaciones especiales y aire acondicionado industrial. Uso: Solo para expertos. Costo: Muy alto, hasta varias decenas de millones de dólares cada una. Macrocomputadoras. Son también conocidas como mainframes, son grandes, rápidos y costosos, capaces de ser usadas por cientos de usuarios a la vez. Es usada principalmente por grandes compañías que requieren procesar una gran cantidad de datos, por ejemplo movimientos bancarios. Se caracterizan por tener una gran memoria interna, gran capacidad de almacenamiento externo y dispositivos de E/S rápidos y confiables. Sus usuarios se conectan por medio de terminales tontas (un ejemplo claro es un cajero automático), pueden tener varios sistemas operativos instalados, por lo tanto no trabajan como una sola computadora si no como varias de computadoras virtuales. La diferencia de estas con las supercomputadoras no es muy sencilla, pero generalmente se puede decir que las supercomputadoras se centran en tareas limitadas por la velocidad de cálculo, mientras que las macrocomputadoras se centran en problemas limitados por los dispositivos de E/S y su fiabilidad. Por lo tanto: 11 Introducción a la Computación. 2017-2 Las supercomputadoras tienen miles de procesadores, las macrocomputadoras de decenas a centenas de procesadores. Las supercomputadoras son difíciles de programar, en cambio las macrocomputadoras son más accesibles. Las supercomputadoras están optimizadas para cálculos complejos, las macrocomputadoras son optimizadas para cálculos simples Las supercomputadoras se dedican a la ciencia y al ejército, las macrocomputadoras al ámbito empresarial. Minicomputadoras Son la versión pequeña de los mainframes, son orientadas a tareas especificas, no necesitan muchos periféricos como las mainframes, por lo tanto su costo y mantenimiento es menor. Pueden soportar varios usuarios a la vez. Son los conocidos servidores y se usan para almacenar base de datos, automatización, web. Se caracterizan por tener varios procesadores a la vez conectados en paralelo (2 o más ya se le considera un servidor), una memoria más grande que las computadoras personales (de entre 5 GB a 10 GB), varios discos duros como medio de almacenamiento (llegando más de un terabyte en total. Minicomputadoras o Pcs. Estas son las computadoras que el público en general usa, también conocidas como estaciones de trabajo. Tienen su origen con la creación de los microprocesadores, que permitió que el tamaño de la computadora bajara y por lo tanto su costo. Existen varios modelos, desde las computadoras de escritorio, laptops hasta las computadoras personales (PDA). Se caracterizan por ser las más lentas (a comparación de las anteriores), por lo general cuenta con un solo procesador y memoria de tamaño normal (como máximo 4 GB). Su uso es de propósito general, desde oficina hasta entretenimiento. 2.1.2 Unidad Central de Procesamiento (CPU) Es la encargada de interpretar y realizar las instrucciones que se le dan a la computadora, así como de controlar el funcionamiento general de todo el equipo disponible. Se divide en varias partes. Unidad de Control: Encargada de supervisar la secuencia de operaciones que deben realizarse para ejecutar una instrucción. 12 Introducción a la Computación. 2017-2 Unidad aritmética y lógica (ALU): Encargada de realizar todas las operaciones que transforman los datos, principalmente operaciones aritméticas como la suma o la resta, y las lógicas, como la negación. Registros: Donde se almacenan los datos más importantes durante la ejecución de las instrucciones; incluyen el registro contador (indica que instrucción sigue), el registro de instrucción (indica la instrucción que se está ejecutando), el registro acumulador (donde se guardan resultados intermedios) y el registro de estado (que guarda avisos de los resultados). Memoria caché: Es el área de trabajo donde se almacenan grupos de datos que se usan frecuentemente, evitando así tener que pedirlos a la memoria principal. EL CPU opera en un ciclo que se repite muchas veces, este ciclo tiene dos partes fundamentales, la primera, el cpu pide una instrucción a la memoria y la traduce y, en la segunda, ejecuta la instrucción. Se puede describir así: El registro contador indica la instrucción que sigue, la unidad de control manda a traer esa instrucción al registro de instrucción. La unidad de control decodifica la instrucción para saber qué debe hacer y pide los datos necesarios. La ALU ejecuta la operación pedida y de los avisos necesarios en el registro de estado. 2.1.3 Conceptos de Memoria. Es la parte de la computadora que se encarga de almacenar, temporal o permanentemente, instrucciones, datos de entrada, resultados parciales y resultados definitivos. Se divide en: Principal: Es la memoria de trabajo, almacena los datos y los programas que se están empleando en el momento por tiempos cortos (desde un fracción de segundo hasta unos minutos). También se le conoce como RAM (Random Access Memory), o también como memoria volátil, ya que se borra cada que se apaga la computadora. Secundaria: Almacena datos y programas por tiempos largos (minutos, horas, años). Almacena datos y programas que no se emplean en ese momento, o que no caben en la memoria principal. Esta memoria es estable o persistente ya que los datos se quedan en ella aunque se apague la computadora. Pueden ser: o ROM (Read Only Memory) o Discos Magnéticos o Discos Ópticos. o Cintas magnéticas. 13 Introducción a la Computación. 2017-2 Mientras más persistente sea la memoria, resulta más lenta con la computadora. Las memorias de tipo de circuito integrado aprovechan una propiedad de los sólidos, como los cristales de silicio, los cuales pueden mantener una carga eléctrica por un tiempo. Las memorias de tipo magnético usan la propiedad de los imanes: las pequeñas partículas que los forman pueden alinearse en dos direcciones posibles y permanecen en ella hasta no sufrir un problema, que puede ser una señal electromagnética, calor excesivo o un golpe fuerte. 2.1.4 Dispositivos de Entrada/Salida. Es la manera en que un usuario se puede comunicar con la computadora y viceversa. Los hay de: Entrada Salida Entrada/Salida Cada dispositivo es un aparato que se conecta a la computadora y que se manejan a través de algún software (controlador). Partes de la computadora en bloques. 2.1.5 Recomendaciones para el buen uso del equipo. Las computadoras son herramientas costosas y delicadas que requieren de un uso responsable. Las normas generales de uso se pueden dividir en: Instalación: Asegurarse que estén conectadas adecuadamente, de preferencia a un regulador de voltaje y con una buena instalación de tierra. Se debe cuidar de instalar la computadora en una superficie estable para evitar daños a los discos. Inicio y fin de Sesión: Apagar la computadora cuando no se usa, dejarla como se encontró a la hora de usarla. Siempre cerrar sesión o apagarla con el sistema operativo, nunca apagarla con el botón de encendido o quitando la luz. 14 Introducción a la Computación. 2017-2 Uso: Evitar comer, fumar, peinarse, maquillarse o tomar algún líquido alrededor. Evitar golpear fuerte las teclas o tocar el monitor con los dedos (sobre todo si se traen húmedos). Evitar introducir elementos extraños a los diferentes conectores de la computadora. Cuidado de la salud: Trabajar al menos 40 cm del monitor, para proteger la vista y la salud. Descansar 15 minutos para cada 45 min de uso. Enfocar objetos lejanos y parpadear varias veces para lubricar el ojo. Usar una silla que apoye toda la espalda y aprovechar los descansos para caminar un poco, descansar la mano que usa para el mouse, descansar los dedos y ejercitarlos para evitar daños en las coyunturas metacarpianas. Consultar al médico si se comienzan a tener dolores de espalda, hombros, dedos o problemas de visión. 2.2 Software Conjunto de programas y procedimientos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware). Esto incluye aplicaciones informáticas tales como un procesador de textos, que permite al usuario realizar una tarea, y software de sistema como un sistema operativo, que permite al resto de programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de aplicaciones. La definición más formal de software es la atribuida a la IEEE: la suma total de los programas de cómputo, procedimientos, reglas documentación y datos asociados que forman parte de las operaciones de un sistema de cómputo. El término software fue usado por primera vez en este sentido por John W. Tukey en 1957. Tipos Software de sistema, es la parte que permite funcionar al hardware. Su objetivo es aislar tanto como sea posible al programador de aplicaciones de los detalles de la computadora particular que se use, especialmente de las características físicas de la memoria, dispositivos de comunicaciones, impresoras, pantallas, teclados, etcétera. Incluye entre otros: o Sistemas operativos o Controladores de dispositivo o Herramientas de diagnóstico o Servidores o Sistemas de ventanas 15 Introducción a la Computación. 2017-2 Software de programación, que proporciona herramientas para ayudar al programador a escribir programas informáticos y a usar diferentes lenguajes de programación de forma práctica. Incluye entre otros: o Editores de texto enriquecidos o Compiladores o Intérpretes o Depuradores o Los entorno de desarrollo integrados (IDE) agrupan estas herramientas de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etcétera, gracias a que habitualmente cuentan con una interfaz gráfica de usuario (GUI) avanzada. Software de aplicación, que permite a los usuarios llevar a cabo una o varias tareas más específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros: o Aplicaciones de automatización industrial o Aplicaciones ofimáticas o Software educativo o Software médico o Bases de datos o Videojuegos o Archivos de datos 2.2.1 Software de Sistemas. Es una colección de programas, generalmente residentes en la computadora que ayudan a todo aquel que la desee utilizar. Este tipo de software resulta una pieza esencial para el uso de la máquina y el desarrollo de más software. Aunque es el software más común, es el que requiere mayores conocimientos especializados para realizarlo. 2.2.2 Sistema Operativo. Es el software que se encuentra en la base de todos los programas que se pueden correr en una computadora. Su función principal es facilitar el uso de la computadora, y también se encarga de administrar los recursos disponibles (memoria, dispositivos) para que se usen adecuadamente. Por ejemplo, distribuye la memoria en partes para atender a varios programas con usos diferentes. Contiene las siguientes partes: Interfaz: Es la parte más visible del mismo, que se encarga de manejar la comunicación entre el humano y la computadora. Puede ser por medio de comandos o gráficos. 16 Introducción a la Computación. 2017-2 Sistema de Archivos: Provee una estructura para organizar todo el sistema operativo, organizando los programas, los datos y los resultados en unidades homogéneas llamadas archivos. Estos se pueden almacenar, recuperar, borrar e imprimirse. Proporciona el estado, donde se encuentran y si te tiende derecho a usarlos. Núcleo: Se encarga de los detalles más relacionados con el hardware, como los detalles de entrada y salida de datos desde y hacia los dispositivos y la administración de la memoria y del CPU. Los sistemas operativos más populares son, desde el Ms-Dos, Windows, Unix, Mac OS, Linux, entre otros. 2.2.3 Software de Programación En esta categoría se tienen programas muy diversos, dependiendo del nivel de los usuarios. Se encuentran los compiladores, los ambientes de programación visual, las herramientas CASE (Computer Aided Software Engineering). La computadora representa todos sus datos, instrucciones y resultados en forma de números binarios, por lo tanto si una persona quisiera programar una computadora en su lenguaje nativo tendría que hacerlo de esta forma, con solo ceros y unos, lo cual es muy complicado; por eso existen los lenguajes de programación, los cuales crean textos escritos denominados programas. Un lenguaje de programación permite que se definan unidades donde se guardaran números o grupos de letras. Estas unidades, cuando permanecen fijas en un programa se llaman constantes, y cuando pueden tomar diferentes valores se llaman variables. Los lenguajes de programación históricos son: FORTRAN, COBOL, PASCIAL, BASIC Y C. Actualmente los lenguajes de programación más recientes son C# (C Sharp), C++, Visual Basic .Net, Java, Javascript, Php, ASP, HTML, PEARL, entre otros. 2.2.4 Compiladores, intérpretes y ensambladores Un grupo importante de programas de desarrollo es el de los compiladores y traductores. Estos son programas que traducen de un lenguaje de programación que entienden los humanos a otro que entienda la maquina. Un programa escrito en algún lenguaje de programación, debe traducirse a lenguaje máquina, para que se puede ejecutar, esta traducción puede darse instrucción por instrucción o todo el programa de una vez. 17 Introducción a la Computación. 2017-2 Cuando un programa traduce y ejecuta instrucciones, una por una, se le llama intérprete. Si el programa traduce todo un programa, sin detenerse, se denomina compilador. Un compilador toma como entrada un código fuente y lo convierte a código de lenguaje máquina. Existe un lenguaje de programación muy primitivo, llamado ensamblador. Este se emplea para construir los programas del sistema y pequeños programas que debían ser muy rápidos. El lenguaje ensamblador se traduce con un compilador muy sencillo llamado también ensamblador. 2.2.5 Software de Aplicación Dentro del software de aplicación se tienen dos tipos de software, los de uso general y los de uso específico. Los primeros se refieren a aquellos que sirven para resolver problemas muy variados del mismo tipo, de diferentes empresas o personas. El segundo se refiere a software desarrollado específicamente para un problema de una empresa o de una persona. Podemos encontrar los siguientes programas: Ofimática: Programas que auxilian a las personas en la preparación de textos, para presentación, hojas de cálculo entre otros. El más famoso es el Office de Microsoft. Manejadores de Base de datos: Su principal función es la administración, almacenamiento y búsqueda de datos. Access, MySql y Oracle entran en esta categoría. Educativos: Programas que tienen como objetivo la enseñanza de las personas. Encarta y enciclopedias virtuales son un claro ejemplo de estos. 2.2.6 Programas antivirus Ante la rápida proliferación de los virus y de sus efectos sobre el trabajo (retraso, perdida de datos, etc.), se hace indispensable contar con uno de estos. Un virus es un programa capaz de autorreplicarse, que se propaga al ligarse a un archivo ejecutable o un área del sistema. Adicionalmente, puede tener asociado un código capaz de causar daños al sistema operativo, a los archivos, o llevar un mensaje. Para evitar los virus se pueden seguir algunas de las siguientes recomendaciones: Evitar el paso indiscriminado de discos o memorias USB de una computadora a otra. Contar con un buen antivirus que contengan detector de cambios en el registro. Se debe revisar todos los discos o memorias con el antivirus antes de su uso. 18 Introducción a la Computación. 2017-2 Si se usa internet contar con un antivirus que traiga incorporado un firewall (cortafuegos). Tener actualizado el antivirus, mientras más actualizado este, mejor protección brinda. No abrir documentos de office que utilicen macros de dudosa procedencia. No abrir correos electrónicos de personas que no conoces, o no abrir correos electrónicos con archivos que no has pedido o solicitado. Escanear 1 vez por semana la computadora con un programa de antivirus. Algunos antivirus se anuncian para usarse vía online, sin tenerlos instalados en la computadora (aunque por lo general solo funcionan como escáneres y no quitan los virus, solo los detectan). Es preferible invertir en un buen antivirus que resida en la computadora. Varios antivirus permiten crear discos de arranque para emergencias, es recomendable crearlos y guardarlos con cuidado 3.- Redes. Una red de computadoras, también llamada red de ordenadores, red de comunicaciones de datos o red informática, es un conjunto de equipos informáticos y software conectados entre sí por medio de dispositivos físicos que envían y reciben impulsos eléctricos, ondas electromagnéticas o cualquier otro medio para el transporte de datos, con la finalidad de compartir información, recursos y ofrecer servicios. Como en todo proceso de comunicación se requiere de un emisor, un mensaje, un medio y un receptor. La finalidad principal para la creación de una red de computadoras es compartir los recursos y la información en la distancia, asegurar la confiabilidad y la disponibilidad de la información, aumentar la velocidad de transmisión de los datos y reducir el costo general de estas acciones. Un ejemplo es Internet, la cual es una gran red de millones de computadoras ubicadas en distintos puntos del planeta interconectadas básicamente para compartir información y recursos. La estructura y el modo de funcionamiento de las redes informáticas actuales están definidos en varios estándares, siendo el más importante y extendido de todos ellos el modelo TCP/IP basado en el modelo de referencia OSI. Este último, estructura cada red en siete capas con funciones concretas pero relacionadas entre sí; en TCP/IP se reducen a cuatro capas. Existen multitud de protocolos repartidos por cada capa, los cuales también están regidos por sus respectivos estándares. 19 Introducción a la Computación. 2017-2 Tipos de Red LAN es la abreviatura inglesa de Local Area Network, 'red de área local'. Su extensión está limitada físicamente a un edificio o a un entorno de hasta 100 metros. Su aplicación más extendida es la interconexión de computadoras y estaciones de trabajo en oficinas, fábricas, etc., para compartir recursos e intercambiar datos y aplicaciones. En definitiva, permite que dos o más máquinas se comuniquen. MAN Una red de área metropolitana (Metropolitan Area Network o MAN, en inglés) es una red de alta velocidad (banda ancha) que dando cobertura en un área geográfica extensa, proporciona capacidad de integración de múltiples servicios mediante la transmisión de datos, voz y vídeo, sobre medios de transmisión tales como fibra óptica y par trenzado. Internet Una red interna específica, consiste en una interconexión mundial de las redes gubernamentales, académicas, públicas, y privadas basadas sobre el Advanced Research Projects Agency Network (ARPANET) desarrollado por ARPA del departamento de los EE.UU. de la defensa también a casa al World Wide Web (WWW) y designado el “Internet” con un capital “I” para distinguirlo de otros internetworks genéricos. Intranet Una red interna que se limitan en alcance a una sola organización o entidad y que utilicen software de red de uso general en el Internet. Nota: Intranets se puede también categorizar como el LAN, CAN, MAN, WAN Diferencia entre Internet y www. Internet: Conjunto de Red de computadoras. Alude a las máquinas y redes físicas. WWW: World Wide Web. Tiene que ver con el conocimiento y la información que están disponibles en Internet 4.- Navegador Web. Un navegador o navegador web (del inglés, web browser) es una aplicación que opera a través de Internet, interpretando la información de archivos y sitios web para que éstos puedan ser leídos (ya se encuentre esta red mediante enlaces o hipervínculos) 20 Introducción a la Computación. 2017-2 La funcionalidad básica de un navegador web es permitir la visualización de documentos de texto, posiblemente con recursos multimedia incrustados. Los documentos pueden estar ubicados en la computadora en donde está el usuario, pero también pueden estar en cualquier otro dispositivo que esté conectado en la computadora del usuario o a través de Internet, y que tenga los recursos necesarios para la transmisión de los documentos (un software servidor web). Tales documentos, comúnmente denominados páginas web, poseen hipervínculos que enlazan una porción de texto o una imagen a otro documento, normalmente relacionado con el texto o la imagen. Ejemplos: –Internet Explorer –Netscape –Opera –FirefoxMozilla -Chrome 5.- Motor de Búsqueda. Un motor de búsqueda, también conocido como buscador, es un sistema informático que busca archivos almacenados en servidores web gracias a su «spider» (o Web crawler). Un ejemplo son los buscadores de Internet (algunos buscan únicamente en la web, pero otros lo hacen además en noticias, servicios como Gopher, FTP, etc.) cuando se pide información sobre algún tema. Las búsquedas se hacen con palabras clave o con árboles jerárquicos por temas; el resultado de la búsqueda es un listado de direcciones web en los que se mencionan temas relacionados con las palabras clave buscadas. Como operan en forma automática, los motores de búsqueda contienen generalmente más información que los directorios. Sin embargo, estos últimos también han de construirse a partir de búsquedas (no automatizadas) o bien a partir de avisos dados por los creadores de páginas (lo cual puede ser muy limitante). Los buenos directorios combinan ambos sistemas. Hoy en día Internet se ha convertido en una herramienta, para la búsqueda de información, rápida, para ello han surgido los buscadores que son un motor de búsqueda que nos facilita encontrar información rápida de cualquier tema de interés, en cualquier área de las ciencias, y de cualquier parte del mundo. Ejemplos: –Google -Bing –Altavista –HotBot –Coopernic 21