Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
101
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Historia del software en computación aplicado a la informática educativa. 853.6.2. Segunda era (1955-1965).[32][37][35][7][19][38][36][44][12][11] La multiprogramación y los sistemas multiusuario introdujeron nuevosconceptos de interacción hombre - máquina. Las técnicas interactivas abrieron unnuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y delsoftware. Los sistemas de tiempo real podían recoger, analizar y transformar datos demúltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos,en lugar de minutos. Los avances en los dispositivos de almacenamiento en líneacondujeron a la primera generación de sistemas de gestión de bases de datos.La introducción del transistor, a mediados de la década de 1950, alteró el panoramaradicalmente. Los computadores se hicieron lo bastante fiables como para podersefabricar, y vender a clientes comerciales, con la expectativa de que seguiríanfuncionando el tiempo suficiente para realizar algo de trabajo útil. Por primera vez,había una separación clara entre diseñadores, constructores, operadores,programadores y personal de mantenimiento.Sistemas Operativos. En la primera Era del software un trabajo o programa se procesaba de maneraindependiente a otro. En esta generación el tipo de operaciones era similar a laanterior, pues cuando un programa finalizaba, se detenía la máquina, y se debíapreparar manualmente para la traducción, o carga y ejecución del siguiente. Para queel computador procesara un trabajo y a la vez preparara y grabara nuevos trabajos, semejoró el hardware de los sistemas de entrada/salida. Normalmente los grababa enuna computador periférico pequeño, después en una cinta magnética los ibancolocando uno detrás de otro, como si fuera una cola de trabajos en la cinta, másconocido como procesamiento batch. El programador escribía primero el programa enpapel, en esta Era podía utilizar el lenguaje FORTRAN o el ensamblador, y luego loperforaba en tarjetas. Una vez que la cinta contenía una cola de trabajos, se ubicaba en una unidad deentrada del computador central, y ésta, por medio de un programa supervisor omonitor, que residía permanentemente en memoria, iba cargando programa trasprograma tan pronto como los pudiese ejecutar. A grandes rasgos, podríamos decirque esto fue el nacimiento de los sistemas operativos. Como se ha señalado en la primera Era, se perdía mucho tiempo sin sistemaoperativo, por lo que los programadores de la época intentaron buscar una solución yaque todo el proceso costaba mucho dinero. La solución que se adoptó generalmente,fue el sistema operativo por lotes. Para que el procesamiento fuese más rápido, losprogramas con necesidades similares se agrupaban en lotes y se introducían en elDaniel Merchán López. 2013
  • 2. 86 Historia del software en computación aplicado a la informática educativa. computador como un grupo. Los programadores dejaban sus programas con el operador; éste acomodaba los programas para formar lotes con necesidades similares y, cuando el computador quedaba disponible, ejecutaba cada lote. La salida de cada trabajo se devolvía al programador apropiado. Cuando el operador ya había hecho el lote de tareas, se llevaba la cinta a la máquina que realizaba el procesamiento, esta máquina era muy cara pero disponía de una alta capacidad de procesamiento para esos tiempos. Después el operador cargaba un programa especial que leía la primera tarea de la cinta y la ejecutaba, escribiéndose la salida en una segunda cinta. Cuando finalizaba cada tarea, el sistema operativo cargaba la siguiente y así sucesivamente hasta finalizar todas las tareas contenidas. El operador remplazaba las cintas de entrada y salida, la cinta de entrada se remplazaba con una nueva que contenía otro lote para su ejecución, la cinta de salida se llevaba a una máquina económica de bajo procesamiento, que realizaba la impresión fuera de línea (off-line), o lo que es lo mismo, no conectada a la computadora principal. El primer sistema operativo creado fue un sistema operativo por lotes, desarrollado por la General Motors para usar en una computadora IBM 701 (Fig. 51). El nombre de este sistema operativo es GM-NAA I/O, lo que es lo mismo, sistema de entrada/salida de General Motors y Norte América Aviación. El creador de este sistema fue Bob Patrick en el año 1956. La base de su creación fue un sistema monitor, creado en 1955, por programadores de la General Motors. Su principal función era ejecutar automáticamente un nuevo programa una vez terminaba el que se estaba ejecutando en ese momento. Este sistema estaba formado por unas rutinas accesibles a los programas que proporcionaban un acceso común a los dispositivos de entrada/salida. Más adelante este sistema se mejoró y se incorporó a la computadora IBM 704 por una serie de clientes de IBM. Al principio de los 60, un conjunto de vendedores ya habían desarrollado sistemas operativos por lotes para sus computadores. El sistema operativo IBSYS de IBM, se creó para los computadores 7090/7094 e influyó en muchos sistemas de la época. Fig. 50. Proceso del sistemas operativos por lotes. En la figura 50 se puede ver el proceso del sistema operativo por lotes, para ello se utiliza la computadora IBM 1401. Primero los diferentes programadores llevan sus Daniel Merchán López. 2013
  • 3. Historia del software en computación aplicado a la informática educativa. 87tarjetas a la computadora 1401, ésta lee los lotes de los trabajos y los graba en cinta.Después un operador lleva la cinta de entrada a otra computadora 7094 más costosaque la anterior porque era la que realizaba la computación. De la 7094 sale una cintade salida que el operador lleva a la 1401 que dispone de una impresora donde seimprime la salida con todos los datos. Otro sistema operativo de la época es el FortranMonitor System (FMS). Fig. 51. Computadora IBM 701 en la que se incluye el primer sistema operativo por lotes. La principal mejora de un sistema por lotes es la falta de interacción entre el usuario yel trabajo mientras éste se ejecuta. El trabajo se prepara y se entrega, y cierto tiempodespués aparece en la salida. El tiempo de retorno o retardo entre la presentación deun trabajo y su terminación puede ser el resultado del volumen del cómputorequerido. En este entorno de ejecución, la CPU con frecuencia esta inactiva. Estainactividad ocurre porque el hardware de E/S, que es mecánico, es más lento que losdispositivos electrónicos. Incluso una CPU lenta realiza sus operaciones en tiempos deorden de microsegundos, y ejecuta miles de instrucciones cada segundo. Más adelantey con las mejoras a la tecnología se pudieron diseñar dispositivos de E/S más rápidos.Desafortunadamente, las velocidades de CPU aumentaron a un ritmo mayor, de modoque el problema no solo no se resolvió, sino que las diferencias eran cada vez mayores. Una solución a este problema fue la introducción de la tecnología de discos. Con estamejora En lugar de leer las tarjetas directamente del lector a la memoria, para despuésprocesar el trabajo, las tarjetas se leen del lector al disco. La ubicación de las imágenesde tarjeta se registra en una tabla mantenida por el sistema operativo. Cuando seejecuta un trabajo, el sistema operativo satisface sus solicitudes de entradas del lectorde tarjetas leyendo del disco. Así mismo, cuando el trabajo solicita la impresión alDaniel Merchán López. 2013
  • 4. 88 Historia del software en computación aplicado a la informática educativa. computador, la salida se imprime realmente. Esta forma de procesamiento, se llama spooling. Realmente, el disco se utiliza como buffer de gran tamaño, para leer por adelantado todo lo que sea posible de los dispositivos de entrada y para guardar los archivos de salida hasta que los dispositivos de salida puedan aceptarlos. En el caso de que los datos de entrada/salida se almacenaran en memorias intermedias se denominaría buffering. También se utilizaban técnicas de acceso directo a memoria (DMA) en las que el procesador no interviene a la hora de realizar alguna operación con los periféricos en la memoria. Fig. 52. Diferencia entre buffering y spooling. Para entender mejor el sistema por lotes hay que explicarlo desde los dos puntos de vista, el del monitor y el del procesador. El programa monitor es un elemento del software, idea central del proceso por lotes. Dicho de otro modo, el monitor es quien controla la secuencia de sucesos. Para que esto sea posible, gran parte del monitor debe estar siempre en la memoria principal y disponible para su ejecución. Esta parte del monitor se conoce como monitor residente. El resto del monitor consta de utilidades y funciones comunes que se cargan como subrutinas a los programas de los usuarios al comienzo de cualquier trabajo que las necesite. El monitor lee los trabajos uno a uno de un lector de tarjetas o una unidad de cinta magnética. A medida que lo lee, el trabajo actual se ubica en la zona del programa del usuario y el control pasa al trabajo. Cuando el trabajo termina, se devuelve el control al monitor, quien lee inmediatamente un nuevo trabajo. Los resultados de cada trabajo se envían al dispositivo de salida, por ejemplo una impresora, y se entregan al usuario. Es el monitor el que gestiona el problema de la planificación. Se pone en cola un lote de trabajos y estos son ejecutados tan rápidamente como sea posible, sin que haya tiempo alguno de inactividad. El monitor mejora también el tiempo de organización del trabajo. Con cada trabajo, se incluyen instrucciones de una forma primitiva de lenguaje de control de trabajos (JCL), que es un tipo especial de lenguaje de programación empleado para dar instrucciones al monitor. Daniel Merchán López. 2013
  • 5. Historia del software en computación aplicado a la informática educativa. 89 Fig. 53. Estructura de un trabajo FMS. La estructura de un trabajo de entrada típico es la siguiente (Fig. 53). El trabajocomenzaba con una tarjeta $JOB, que especificaba el tiempo de ejecución máximo enminutos, el número de cuenta al que se debía cobrar el trabajo, y el nombre delprogramador. Luego venia una tarjeta $FORTRAN, que ordenaba al sistema operativoleer el compilador de FORTRAN de la cinta del sistema. Esta tarjeta iba seguida delprograma por compilar y por una tarjeta $LOAD, que ordenaba al sistema operativocargar el programa objeto recién compilado. Los programas compilados a menudo seescribían en cintas temporales y tenían que cargarse explícitamente. Luego venia latarjeta $RUN, que ordenaba al sistema operativo ejecutar el programa con los datosque le seguían. Por último, la tarjeta $END marcaba el final del trabajo. Estas tarjetasde control primitivas eran los precursores de los lenguajes de control de trabajos eintérpretes de comandos modernos. Desde el punto de vista del procesador, éste, en un cierto momento, estaráejecutando instrucciones de la zona de memoria principal que contiene al monitor.Estas instrucciones hacen que el trabajo siguiente sea leído en otra zona de la memoriaprincipal. Una vez que el trabajo se ha leído, el procesador encuentra en el monitoruna instrucción de bifurcación que ordena al procesador continuar la ejecución en elinicio del programa de usuario. El procesador ejecuta entonces las instrucciones delprograma de usuario hasta que encuentre una condición de finalización o de error.Cualquiera de estos dos sucesos provoca que el procesador vaya a por la instrucciónsiguiente del programa monitor. Dicho de otra manera cuando el control se le pasa alDaniel Merchán López. 2013
  • 6. 90 Historia del software en computación aplicado a la informática educativa. trabajo el procesador pasa a leer y ejecutar instrucciones del programa de usuario, mientras que cuando el control vuelve al monitor el procesador, pasa ahora a leer y ejecutar las instrucciones del programa monitor. Lenguajes de programación. A mediados de la década de 1950 se empezaron a introducir los lenguajes de alto nivel. Estos lenguajes permitían escribir programas en una forma más próxima a la naturaleza del problema a resolver que al conjunto de instrucciones que interpreta directamente el procesador (instrucciones máquina). Estos lenguajes, además podían utilizarse en distintas máquinas. De 1954 a 1957, bajo la dirección de Jhon Backus de IBM, se desarrolló el primer lenguaje de programación de amplia difusión: el FORTRAN (Formula Translation), proyectado para la programación de aplicaciones de cálculo científico y técnico. El FORTRAN permite la redacción de expresiones algebraicas en una notación muy próxima a la notación algebraica convencional. No hay que olvidar que los primeros computadores se desarrollaron pensando en la resolución de problemas de tipo matemático. La meta de este lenguaje era un lenguaje de programación en toda forma que incluyera estructuras de control, condicionales y enunciados de entrada y salida. El programa "Hola, mundo" escrito en FORTRAN: PROGRAM HOLA IMPLICIT NONE PRINT *, ¡Hola, mundo! END Pocos pensaban que el lenguaje resultante pudiera competir con el lenguaje ensamblador codificado a mano, por lo cual se concentraron todos los esfuerzos en su ejecución eficiente y se diseñaron diversos enunciados específicamente para la IBM 704. Los conceptos como la ramificación aritmética de tres vías de FORTRAN provinieron directamente del equipo físico (hardware) de la 704. FORTRAN tuvo un éxito extraordinario, tanto es así que cambió para siempre la programación y probablemente preparó el escenario para su reemplazo final por otros lenguajes. En esa época, la utilidad de cualquier lenguaje de alto nivel estaba abierta al cuestionamiento por parte de programadores formados en programación de lenguaje ensamblador. Su queja más seria se refería a la eficiencia de ejecución del código compilado a partir de programas en lenguajes de alto nivel. Como consecuencia, el diseño de las primeras versiones de FORTRAN estaba fuertemente orientado a proporcionar eficiencia de ejecución. Se hizo una revisión de FORTRAN en 1958 (FORTRAN II). Casi todos los fabricantes implementaron una versión del lenguaje y reinaba el caos. Finalmente, en 1966 se convirtió en estándar con el nombre de FORTRAN 66 siendo actualizado varias veces desde entonces hasta la versión actual, la FORTRAN 2010. Daniel Merchán López. 2013
  • 7. Historia del software en computación aplicado a la informática educativa. 91 Después de FORTRAN, se desarrollaron varios lenguajes de importancia, éstosutilizaban también la idea de las abstracciones de datos. En 1958 el ALGOL58(ALGOrithmic Language) y su sucesor el ALGOL60 (1960), uno de los creadores fue elcientífico holandés Edsger Dijkstra, éste se convirtió en el lenguaje académico decomputo estándar desde los años sesenta hasta principio de los setenta. ALGOL nuncaalcanzó éxito comercial en Estados Unidos, aunque consiguió cierto éxito en Europa.Sin embargo tuvo un impacto más allá de su uso. Como ejemplo de ello, JulesSchwartz de SDC (System Development Corporation) desarrolló una versión de IAL(International Algorithmic Language) que se convirtió en una norma para lasaplicaciones de la Fuerza Aérea de Estados Unidos. Backus (informático) fue el editordel informe de ALGOL que definía el lenguaje. Usó una notación sintáctica comparablecon el concepto de lenguaje libre de contexto desarrollado por Chomsky (lingüista,filósofo y activista estadounidense, y en estos momentos profesor emérito deLingüística en el MIT). Esto constituyó la introducción de la teoría formal de lagramática al mundo de los lenguajes de programación. A causa de su propio papel y elde Naur (informático europeo del comité ALGOL) en el desarrollo de ALGOL, lanotación se conoce ahora como BNF, o Backus Naur Form. "Hola mundo" escrito en ALGOL:BEGIN FILE F (KIND=REMOTE); EBCDIC ARRAY E [0:12]; REPLACE E BY "HOLA MUNDO!"; WHILE TRUE DO BEGIN WRITE (F, *, E); END; END. Como un ejemplo más de la influencia de ALGOL, Burroughs, un vendedor decomputadoras que, más tarde, se unió a Sperry Univac para formar Unisys, descubrióla obra de un matemático polaco llamado Lukasiewicz. Él había desarrollado unatécnica interesante que permitía escribir expresiones matemáticas sin paréntesis, conun proceso eficiente de evaluación con basado en pilas. Aunque no se trataba de unresultado matemático importante, esta técnica tuvo un efecto profundo sobre la teoríade los compiladores. A través de uso de métodos basados en la técnica de Lukasiewicz,Burroughs desarrolló el hardware de la computadora B5500 basado en unaarquitectura de pilas y pronto tuvo un compilador de ALGOL mucho más rápido quecualquier compilador de FORTRAN. El LISP creado por Jhon McCarty del MIT, en 1962, es muy adecuado para operar conexpresiones simbólicas y para aplicaciones de inteligencia artificial. El LISP es diferentede casi todos los demás lenguajes en varios aspectos. El más notable es la equivalenciade forma entre programas y datos en el lenguaje, que permite ejecutar estructuras dedatos como programas y modificar programas como datos. Otra característicaDaniel Merchán López. 2013
  • 8. 92 Historia del software en computación aplicado a la informática educativa. destacada es la fuerte dependencia de la recursividad como estructura de control, en vez de la iteración (formación de ciclos) que es común en casi todos los lenguajes de programación. Hola mundo escrito en LISP: (format t "¡Hola, mundo!") El SNOBOL es otro de los lenguajes de alto nivel de aquel momento. Fue producido para aplicaciones de tratamiento de caracteres, en el Bell Telephone Lab. por David J. Faber, Ralp E. Griswold e Ivan Polonsky (1962). La implementación clásica se utilizó en la PDP-10 y se ha usado para estudiar compiladores, gramáticas formales e inteligencia artificial, en particular traducción automática y comprensión automática de lenguajes naturales. Se implementó originalmente en una IBM 7090, de los Laboratorios Bell en Holmdel, Nueva Jersey. Fue diseñado expresamente para la portabilidad así que rápidamente se exportó a otras plataformas. Sobresale de entre los lenguajes de programación más famosos de su tiempo por usar los patrones de búsqueda como un tipo de datos nativo al lenguaje y por proveer operadores para concatenación de patrones y alternación, además de que las cadenas generadas durante la ejecución pueden ser tratadas como programas que pueden a su vez ser ejecutados. Un patrón de búsqueda puede ser muy simple o extremadamente complicado. Un ejemplo de patrón simple puede ser una cadena de texto (v.g.: "ABCD"), y un ejemplo de patrón complicado puede ser una gran estructura que describa la gramática completa de un lenguaje de programación de computadoras. Ofrece al programador una amplia variedad de características incluyendo algunas muy exóticas, de ahí que se pueda usar como si fuera un lenguaje orientado a objetos, un lenguaje de programación lógica, un lenguaje de programación funcional o un lenguaje de programación imperativa cambiando el conjunto de características usadas para escribir un programa. También concatena cadenas que estén una junto a la otra en una sentencia y mantiene las cadenas en un montículo de memoria liberando así a los programadores de preocupaciones tales como asignación de memoria y manejo de cadenas. También se desarrollaron lenguajes de programación de alto nivel para aplicaciones de gestión administrativa. Se caracterizan por utilizar sentencias que, con nemónicos ingleses, disponen de las funciones matemáticas típicas de gestión (funciones financieras, etc.) y actúan fundamentalmente con archivos de información alfanumérica. El lenguaje de mayor incidencia fue el COBOL, definido en 1959 por la CODASYL. Una característica importante del COBOL es el uso de palabras inglesas para construir las expresiones e instrucciones del lenguaje, incluidas las operaciones aritméticas. El motivo de este uso era para hacer los programas comprensibles a programadores y ejecutivos. El principal error de COBOL era que no se podían pasar Daniel Merchán López. 2013
  • 9. Historia del software en computación aplicado a la informática educativa. 93parámetros a los procedimientos. En este sentido, COBOL representó un paso atrásrespecto a FORTRAN. COBOL se difundió rápidamente y fue convertido en estándarANSI en 1968, 1974 y 1985. La CODASYL vigiló su evolución para evitar que serealizaran versiones incompatibles lo que dio una gran estabilidad al lenguaje. "Hola mundo" escrito en COBOL: IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. DISPLAY "Hola mundo". STOP RUN. Con la introducción de su nueva línea de computadoras 360 en 1963, la IBMdesarrolló NPL (New Programming Language; Nuevo lenguaje de programación) en sulaboratorio Hursley en Inglaterra. Después de algunas quejas por parte del EnglishNational Physical Laboratory (Laboratorio de Física Nacional Inglés), el nombre secambio a MPPL (Multi-Purpose Programming Language; lenguaje de programación deusos múltiples) y más tarde se acortó a solo PL/I. El PL/I incorporó todas lasinnovaciones de los lenguajes anteriores, es decir, fusionó los atributos numéricos deFORTRAN con las características de programación para negocios de COBOL. El PL/Ialcanzó un éxito moderado en los años setenta.Bases de Datos. Los primeros SGBD datan de los años sesenta, por aquella época no se lesdenominaba así. Estaban orientados a facilitar la utilización de grandes conjuntos dedatos en los que las interrelaciones eran complejas. El arquetipo de aplicación era elBill of materials o Parts explosion, típica en las industrias del automóvil, en laconstrucción de naves espaciales y en campos similares. Estos sistemas trabajabanexclusivamente por lotes que ya hemos descrito como funcionaban en los sistemasoperativos. Los SGBD estaban totalmente relacionados con el software decomunicaciones y de gestión de transacciones. IBM denominaba a este software DataBase/Data Communications (DB/DC).Daniel Merchán López. 2013
  • 10. 94 Historia del software en computación aplicado a la informática educativa. IBM se alió con American Airlines para desarrollar SABRE, un sistema operativo de procesamiento en tiempo real que manejaba la reserva/compra de billetes de American Airlines. SABRE hoy en día resulta uno de los mejores globalizadores de reservas dentro de las agencias, así como uno de los más utilizados para la enseñanza en centros educativos de turismo. Fig. 54. Interfaz de SABRE. En esta época se desarrollaron las cintas magnéticas para el almacenamiento de datos. Las tareas de procesamiento de datos, como las nóminas, fueron automatizadas, con los datos almacenados en cintas. El procesamiento de datos consistía en leer datos de una o más cintas y escribir datos en una nueva cinta. Los datos también se podían introducir desde paquetes de tarjetas perforadas e impresos en impresoras. Por ejemplo, los aumentos de sueldo se procesaban introduciendo los aumentos en las tarjetas perforadas y leyendo el paquete de cintas perforadas en sincronización con una cinta que contenía los detalles maestros de los salarios. Los registros debían estar igualmente ordenados. Los aumentos de sueldo tenían que añadirse a los sueldos leídos de la cinta maestra, y escribirse en una nueva cinta; esta nueva cinta se convertía en la nueva cinta maestra. Las cintas y los paquetes de tarjetas perforadas solo se podían leer secuencialmente, y los tamaños de datos eran mucho mayores que la memoria principal; así, los programas de procesamiento de datos tenían que procesar los datos según un determinado orden, leyendo y mezclando datos de cintas y paquetes de tarjetas perforadas. Generalmente la preocupación de esta Era consistía en maximizar el rendimiento: el tiempo de respuesta y las transacciones por segundo. Para escribir los programas de aplicación se utilizaban lenguajes de alto nivel como COBOL o PL/I, aunque también se disponía de instrucciones y de subrutinas especializadas para tratar las bases de datos que requerían que el programador conociese muchos detalles del diseño físico, y que hacían que la programación fuese muy compleja. Daniel Merchán López. 2013