SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Historia del software en computación aplicado a la informática educativa.   85



3.6.2. Segunda era (1955-
1965).[32][37][35][7][19][38][36][44][12][11]
       La multiprogramación y los sistemas multiusuario introdujeron nuevos
conceptos de interacción hombre - máquina. Las técnicas interactivas abrieron un
nuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del
software. Los sistemas de tiempo real podían recoger, analizar y transformar datos de
múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos,
en lugar de minutos. Los avances en los dispositivos de almacenamiento en línea
condujeron 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 panorama
radicalmente. Los computadores se hicieron lo bastante fiables como para poderse
fabricar, y vender a clientes comerciales, con la expectativa de que seguirían
funcionando 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 manera
independiente a otro. En esta generación el tipo de operaciones era similar a la
anterior, pues cuando un programa finalizaba, se detenía la máquina, y se debía
preparar manualmente para la traducción, o carga y ejecución del siguiente. Para que
el computador procesara un trabajo y a la vez preparara y grabara nuevos trabajos, se
mejoró el hardware de los sistemas de entrada/salida. Normalmente los grababa en
una computador periférico pequeño, después en una cinta magnética los iban
colocando uno detrás de otro, como si fuera una cola de trabajos en la cinta, más
conocido como procesamiento batch. El programador escribía primero el programa en
papel, en esta Era podía utilizar el lenguaje FORTRAN o el ensamblador, y luego lo
perforaba en tarjetas.

 Una vez que la cinta contenía una cola de trabajos, se ubicaba en una unidad de
entrada del computador central, y ésta, por medio de un programa supervisor o
monitor, que residía permanentemente en memoria, iba cargando programa tras
programa tan pronto como los pudiese ejecutar. A grandes rasgos, podríamos decir
que esto fue el nacimiento de los sistemas operativos.

 Como se ha señalado en la primera Era, se perdía mucho tiempo sin sistema
operativo, por lo que los programadores de la época intentaron buscar una solución ya
que 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, los
programas con necesidades similares se agrupaban en lotes y se introducían en el

Daniel Merchán López. 2013
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
Historia del software en computación aplicado a la informática educativa.      87


tarjetas 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 costosa
que la anterior porque era la que realizaba la computación. De la 7094 sale una cinta
de salida que el operador lleva a la 1401 que dispone de una impresora donde se
imprime la salida con todos los datos. Otro sistema operativo de la época es el Fortran
Monitor 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 y
el trabajo mientras éste se ejecuta. El trabajo se prepara y se entrega, y cierto tiempo
después aparece en la salida. El tiempo de retorno o retardo entre la presentación de
un trabajo y su terminación puede ser el resultado del volumen del cómputo
requerido. En este entorno de ejecución, la CPU con frecuencia esta inactiva. Esta
inactividad ocurre porque el hardware de E/S, que es mecánico, es más lento que los
dispositivos electrónicos. Incluso una CPU lenta realiza sus operaciones en tiempos de
orden de microsegundos, y ejecuta miles de instrucciones cada segundo. Más adelante
y 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 modo
que 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 esta
mejora En lugar de leer las tarjetas directamente del lector a la memoria, para después
procesar el trabajo, las tarjetas se leen del lector al disco. La ubicación de las imágenes
de tarjeta se registra en una tabla mantenida por el sistema operativo. Cuando se
ejecuta un trabajo, el sistema operativo satisface sus solicitudes de entradas del lector
de tarjetas leyendo del disco. Así mismo, cuando el trabajo solicita la impresión al


Daniel Merchán López. 2013
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
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 trabajo
comenzaba con una tarjeta $JOB, que especificaba el tiempo de ejecución máximo en
minutos, el número de cuenta al que se debía cobrar el trabajo, y el nombre del
programador. Luego venia una tarjeta $FORTRAN, que ordenaba al sistema operativo
leer el compilador de FORTRAN de la cinta del sistema. Esta tarjeta iba seguida del
programa por compilar y por una tarjeta $LOAD, que ordenaba al sistema operativo
cargar el programa objeto recién compilado. Los programas compilados a menudo se
escribían en cintas temporales y tenían que cargarse explícitamente. Luego venia la
tarjeta $RUN, que ordenaba al sistema operativo ejecutar el programa con los datos
que le seguían. Por último, la tarjeta $END marcaba el final del trabajo. Estas tarjetas
de control primitivas eran los precursores de los lenguajes de control de trabajos e
inté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 memoria
principal. Una vez que el trabajo se ha leído, el procesador encuentra en el monitor
una instrucción de bifurcación que ordena al procesador continuar la ejecución en el
inicio del programa de usuario. El procesador ejecuta entonces las instrucciones del
programa 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ón
siguiente del programa monitor. Dicho de otra manera cuando el control se le pasa al

Daniel Merchán López. 2013
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
Historia del software en computación aplicado a la informática educativa.    91


  Después de FORTRAN, se desarrollaron varios lenguajes de importancia, éstos
utilizaban 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 el
científico holandés Edsger Dijkstra, éste se convirtió en el lenguaje académico de
computo estándar desde los años sesenta hasta principio de los setenta. ALGOL nunca
alcanzó é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, Jules
Schwartz de SDC (System Development Corporation) desarrolló una versión de IAL
(International Algorithmic Language) que se convirtió en una norma para las
aplicaciones de la Fuerza Aérea de Estados Unidos. Backus (informático) fue el editor
del informe de ALGOL que definía el lenguaje. Usó una notación sintáctica comparable
con el concepto de lenguaje libre de contexto desarrollado por Chomsky (lingüista,
filósofo y activista estadounidense, y en estos momentos profesor emérito de
Lingüística en el MIT). Esto constituyó la introducción de la teoría formal de la
gramática al mundo de los lenguajes de programación. A causa de su propio papel y el
de Naur (informático europeo del comité ALGOL) en el desarrollo de ALGOL, la
notació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 de
computadoras 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 una
técnica interesante que permitía escribir expresiones matemáticas sin paréntesis, con
un proceso eficiente de evaluación con basado en pilas. Aunque no se trataba de un
resultado matemático importante, esta técnica tuvo un efecto profundo sobre la teoría
de 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 una
arquitectura de pilas y pronto tuvo un compilador de ALGOL mucho más rápido que
cualquier compilador de FORTRAN.

 El LISP creado por Jhon McCarty del MIT, en 1962, es muy adecuado para operar con
expresiones simbólicas y para aplicaciones de inteligencia artificial. El LISP es diferente
de casi todos los demás lenguajes en varios aspectos. El más notable es la equivalencia
de forma entre programas y datos en el lenguaje, que permite ejecutar estructuras de
datos como programas y modificar programas como datos. Otra característica

Daniel Merchán López. 2013
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
Historia del software en computación aplicado a la informática educativa.   93


parámetros a los procedimientos. En este sentido, COBOL representó un paso atrás
respecto a FORTRAN. COBOL se difundió rápidamente y fue convertido en estándar
ANSI en 1968, 1974 y 1985. La CODASYL vigiló su evolución para evitar que se
realizaran 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 IBM
desarrolló NPL (New Programming Language; Nuevo lenguaje de programación) en su
laboratorio Hursley en Inglaterra. Después de algunas quejas por parte del English
National Physical Laboratory (Laboratorio de Física Nacional Inglés), el nombre se
cambio a MPPL (Multi-Purpose Programming Language; lenguaje de programación de
usos múltiples) y más tarde se acortó a solo PL/I. El PL/I incorporó todas las
innovaciones de los lenguajes anteriores, es decir, fusionó los atributos numéricos de
FORTRAN con las características de programación para negocios de COBOL. El PL/I
alcanzó 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 les
denominaba así. Estaban orientados a facilitar la utilización de grandes conjuntos de
datos en los que las interrelaciones eran complejas. El arquetipo de aplicación era el
Bill of materials o Parts explosion, típica en las industrias del automóvil, en la
construcción de naves espaciales y en campos similares. Estos sistemas trabajaban
exclusivamente por lotes que ya hemos descrito como funcionaban en los sistemas
operativos. Los SGBD estaban totalmente relacionados con el software de
comunicaciones y de gestión de transacciones. IBM denominaba a este software Data
Base/Data Communications (DB/DC).




Daniel Merchán López. 2013
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

Mais conteúdo relacionado

Mais procurados

Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luisuplo45
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luisuplo45
 
Un sistema operativo luis
Un sistema operativo luisUn sistema operativo luis
Un sistema operativo luisuplo45
 
Un sistema operativo caraballo
Un sistema operativo caraballoUn sistema operativo caraballo
Un sistema operativo caraballoMIGUELITO-1
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luisuplo45
 
Un sistema operativo caraballo1
Un sistema operativo caraballo1Un sistema operativo caraballo1
Un sistema operativo caraballo1uplo45
 
Un sistema operativo caraballo
Un sistema operativo caraballoUn sistema operativo caraballo
Un sistema operativo caraballouplo45
 
Un sistema operativo caraballo1assss
Un sistema operativo caraballo1assssUn sistema operativo caraballo1assss
Un sistema operativo caraballo1assssuplo45
 
Sistemas operativo vanessa
Sistemas operativo vanessaSistemas operativo vanessa
Sistemas operativo vanessareggaemufin
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativomamasita123
 
Trabajo de sistemas
Trabajo de sistemasTrabajo de sistemas
Trabajo de sistemasoscar120
 
Un sistema operativo
Un sistema operativoUn sistema operativo
Un sistema operativogeralis
 

Mais procurados (15)

Un sistema operativo luis caraballo
Un sistema operativo luis caraballoUn sistema operativo luis caraballo
Un sistema operativo luis caraballo
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
 
Un sistema operativo luis
Un sistema operativo luisUn sistema operativo luis
Un sistema operativo luis
 
Un sistema operativo caraballo
Un sistema operativo caraballoUn sistema operativo caraballo
Un sistema operativo caraballo
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
 
Un sistema operativo caraballo1
Un sistema operativo caraballo1Un sistema operativo caraballo1
Un sistema operativo caraballo1
 
Un sistema operativo caraballo
Un sistema operativo caraballoUn sistema operativo caraballo
Un sistema operativo caraballo
 
Un sistema operativo caraballo1assss
Un sistema operativo caraballo1assssUn sistema operativo caraballo1assss
Un sistema operativo caraballo1assss
 
Sistemas operativo vanessa
Sistemas operativo vanessaSistemas operativo vanessa
Sistemas operativo vanessa
 
Un sistema operativo
Un sistema operativoUn sistema operativo
Un sistema operativo
 
Sistemas
SistemasSistemas
Sistemas
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativo
 
Trabajo de sistemas
Trabajo de sistemasTrabajo de sistemas
Trabajo de sistemas
 
Un sistema operativo
Un sistema operativoUn sistema operativo
Un sistema operativo
 

Destaque

Etica en la investigación
Etica en la investigaciónEtica en la investigación
Etica en la investigaciónNancy Beita
 
Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3Juanito Robyncito
 
Capitalizacionsimpleycompuesta
CapitalizacionsimpleycompuestaCapitalizacionsimpleycompuesta
CapitalizacionsimpleycompuestaSandro Dovaez
 
Diario Digital Opinasistemas
Diario Digital OpinasistemasDiario Digital Opinasistemas
Diario Digital OpinasistemasPedro Chavez
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalkandennne
 
Trabajo de java
Trabajo de javaTrabajo de java
Trabajo de javajumper2099
 

Destaque (8)

Etica en la investigación
Etica en la investigaciónEtica en la investigación
Etica en la investigación
 
Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3
 
Italia
ItaliaItalia
Italia
 
Capitalizacionsimpleycompuesta
CapitalizacionsimpleycompuestaCapitalizacionsimpleycompuesta
Capitalizacionsimpleycompuesta
 
Diario Digital Opinasistemas
Diario Digital OpinasistemasDiario Digital Opinasistemas
Diario Digital Opinasistemas
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Mecs
MecsMecs
Mecs
 
Trabajo de java
Trabajo de javaTrabajo de java
Trabajo de java
 

Semelhante a 8. segunda era

Trabajo de sistemas
Trabajo de sistemasTrabajo de sistemas
Trabajo de sistemasconeja580
 
Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf
Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdfConceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf
Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdfAleZeledonOvares
 
Trabajo sis
Trabajo sisTrabajo sis
Trabajo sisYOKIIZ
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosK-MICOSIL
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativosIsrael Huerta Rivera
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativomamasita123
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativosAlejandro Luna
 
Trabajo sistemas terminado
Trabajo sistemas terminadoTrabajo sistemas terminado
Trabajo sistemas terminadokatalina001
 
Trabajo sistemas terminado
Trabajo sistemas terminadoTrabajo sistemas terminado
Trabajo sistemas terminadokatalina001
 
Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas corJennyAldana122
 
Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas corJennyAldana122
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosandreaotayap
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosandreaotayap
 
Sistema operativo1
Sistema operativo1Sistema operativo1
Sistema operativo1goldenay
 

Semelhante a 8. segunda era (20)

Trabajo de sistemas
Trabajo de sistemasTrabajo de sistemas
Trabajo de sistemas
 
Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf
Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdfConceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf
Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf
 
F:\trabajo parta enviar
F:\trabajo parta enviarF:\trabajo parta enviar
F:\trabajo parta enviar
 
9. tercera era
9. tercera era9. tercera era
9. tercera era
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Trabajo
TrabajoTrabajo
Trabajo
 
Trabajo sis
Trabajo sisTrabajo sis
Trabajo sis
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Un sistema operativo
Un sistema operativoUn sistema operativo
Un sistema operativo
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
Arquitectura de redes apuntes
Arquitectura de redes apuntes Arquitectura de redes apuntes
Arquitectura de redes apuntes
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativo
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
Trabajo sistemas terminado
Trabajo sistemas terminadoTrabajo sistemas terminado
Trabajo sistemas terminado
 
Trabajo sistemas terminado
Trabajo sistemas terminadoTrabajo sistemas terminado
Trabajo sistemas terminado
 
Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas cor
 
Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas cor
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistema operativo1
Sistema operativo1Sistema operativo1
Sistema operativo1
 

Mais de Daniel Merchan

13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticosDaniel Merchan
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticosDaniel Merchan
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietarioDaniel Merchan
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietarioDaniel Merchan
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánicaDaniel Merchan
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánicaDaniel Merchan
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcularDaniel Merchan
 

Mais de Daniel Merchan (20)

13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticos
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticos
 
11. quinta era
11. quinta era11. quinta era
11. quinta era
 
11. quinta era
11. quinta era11. quinta era
11. quinta era
 
10. cuarta era
10. cuarta era10. cuarta era
10. cuarta era
 
10. cuarta era
10. cuarta era10. cuarta era
10. cuarta era
 
7. primera era
7. primera era7. primera era
7. primera era
 
9. tercera era
9. tercera era9. tercera era
9. tercera era
 
8. segunda era
8. segunda era8. segunda era
8. segunda era
 
7. primera era
7. primera era7. primera era
7. primera era
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietario
 
5. tipos de software
5. tipos de software5. tipos de software
5. tipos de software
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietario
 
5. tipos de software
5. tipos de software5. tipos de software
5. tipos de software
 
Modo de utilizar
Modo de utilizarModo de utilizar
Modo de utilizar
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánica
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánica
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcular
 

8. segunda era

  • 1. Historia del software en computación aplicado a la informática educativa. 85 3.6.2. Segunda era (1955- 1965).[32][37][35][7][19][38][36][44][12][11] La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - máquina. Las técnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del software. Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos, en lugar de minutos. Los avances en los dispositivos de almacenamiento en línea condujeron 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 panorama radicalmente. Los computadores se hicieron lo bastante fiables como para poderse fabricar, y vender a clientes comerciales, con la expectativa de que seguirían funcionando 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 manera independiente a otro. En esta generación el tipo de operaciones era similar a la anterior, pues cuando un programa finalizaba, se detenía la máquina, y se debía preparar manualmente para la traducción, o carga y ejecución del siguiente. Para que el computador procesara un trabajo y a la vez preparara y grabara nuevos trabajos, se mejoró el hardware de los sistemas de entrada/salida. Normalmente los grababa en una computador periférico pequeño, después en una cinta magnética los iban colocando uno detrás de otro, como si fuera una cola de trabajos en la cinta, más conocido como procesamiento batch. El programador escribía primero el programa en papel, en esta Era podía utilizar el lenguaje FORTRAN o el ensamblador, y luego lo perforaba en tarjetas. Una vez que la cinta contenía una cola de trabajos, se ubicaba en una unidad de entrada del computador central, y ésta, por medio de un programa supervisor o monitor, que residía permanentemente en memoria, iba cargando programa tras programa tan pronto como los pudiese ejecutar. A grandes rasgos, podríamos decir que esto fue el nacimiento de los sistemas operativos. Como se ha señalado en la primera Era, se perdía mucho tiempo sin sistema operativo, por lo que los programadores de la época intentaron buscar una solución ya que 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, los programas con necesidades similares se agrupaban en lotes y se introducían en el Daniel 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. 87 tarjetas 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 costosa que la anterior porque era la que realizaba la computación. De la 7094 sale una cinta de salida que el operador lleva a la 1401 que dispone de una impresora donde se imprime la salida con todos los datos. Otro sistema operativo de la época es el Fortran Monitor 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 y el trabajo mientras éste se ejecuta. El trabajo se prepara y se entrega, y cierto tiempo después aparece en la salida. El tiempo de retorno o retardo entre la presentación de un trabajo y su terminación puede ser el resultado del volumen del cómputo requerido. En este entorno de ejecución, la CPU con frecuencia esta inactiva. Esta inactividad ocurre porque el hardware de E/S, que es mecánico, es más lento que los dispositivos electrónicos. Incluso una CPU lenta realiza sus operaciones en tiempos de orden de microsegundos, y ejecuta miles de instrucciones cada segundo. Más adelante y 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 modo que 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 esta mejora En lugar de leer las tarjetas directamente del lector a la memoria, para después procesar el trabajo, las tarjetas se leen del lector al disco. La ubicación de las imágenes de tarjeta se registra en una tabla mantenida por el sistema operativo. Cuando se ejecuta un trabajo, el sistema operativo satisface sus solicitudes de entradas del lector de tarjetas leyendo del disco. Así mismo, cuando el trabajo solicita la impresión al Daniel 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 trabajo comenzaba con una tarjeta $JOB, que especificaba el tiempo de ejecución máximo en minutos, el número de cuenta al que se debía cobrar el trabajo, y el nombre del programador. Luego venia una tarjeta $FORTRAN, que ordenaba al sistema operativo leer el compilador de FORTRAN de la cinta del sistema. Esta tarjeta iba seguida del programa por compilar y por una tarjeta $LOAD, que ordenaba al sistema operativo cargar el programa objeto recién compilado. Los programas compilados a menudo se escribían en cintas temporales y tenían que cargarse explícitamente. Luego venia la tarjeta $RUN, que ordenaba al sistema operativo ejecutar el programa con los datos que le seguían. Por último, la tarjeta $END marcaba el final del trabajo. Estas tarjetas de control primitivas eran los precursores de los lenguajes de control de trabajos e inté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 memoria principal. Una vez que el trabajo se ha leído, el procesador encuentra en el monitor una instrucción de bifurcación que ordena al procesador continuar la ejecución en el inicio del programa de usuario. El procesador ejecuta entonces las instrucciones del programa 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ón siguiente del programa monitor. Dicho de otra manera cuando el control se le pasa al Daniel 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, éstos utilizaban 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 el científico holandés Edsger Dijkstra, éste se convirtió en el lenguaje académico de computo estándar desde los años sesenta hasta principio de los setenta. ALGOL nunca alcanzó é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, Jules Schwartz de SDC (System Development Corporation) desarrolló una versión de IAL (International Algorithmic Language) que se convirtió en una norma para las aplicaciones de la Fuerza Aérea de Estados Unidos. Backus (informático) fue el editor del informe de ALGOL que definía el lenguaje. Usó una notación sintáctica comparable con el concepto de lenguaje libre de contexto desarrollado por Chomsky (lingüista, filósofo y activista estadounidense, y en estos momentos profesor emérito de Lingüística en el MIT). Esto constituyó la introducción de la teoría formal de la gramática al mundo de los lenguajes de programación. A causa de su propio papel y el de Naur (informático europeo del comité ALGOL) en el desarrollo de ALGOL, la notació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 de computadoras 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 una técnica interesante que permitía escribir expresiones matemáticas sin paréntesis, con un proceso eficiente de evaluación con basado en pilas. Aunque no se trataba de un resultado matemático importante, esta técnica tuvo un efecto profundo sobre la teoría de 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 una arquitectura de pilas y pronto tuvo un compilador de ALGOL mucho más rápido que cualquier compilador de FORTRAN. El LISP creado por Jhon McCarty del MIT, en 1962, es muy adecuado para operar con expresiones simbólicas y para aplicaciones de inteligencia artificial. El LISP es diferente de casi todos los demás lenguajes en varios aspectos. El más notable es la equivalencia de forma entre programas y datos en el lenguaje, que permite ejecutar estructuras de datos como programas y modificar programas como datos. Otra característica Daniel 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. 93 parámetros a los procedimientos. En este sentido, COBOL representó un paso atrás respecto a FORTRAN. COBOL se difundió rápidamente y fue convertido en estándar ANSI en 1968, 1974 y 1985. La CODASYL vigiló su evolución para evitar que se realizaran 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 IBM desarrolló NPL (New Programming Language; Nuevo lenguaje de programación) en su laboratorio Hursley en Inglaterra. Después de algunas quejas por parte del English National Physical Laboratory (Laboratorio de Física Nacional Inglés), el nombre se cambio a MPPL (Multi-Purpose Programming Language; lenguaje de programación de usos múltiples) y más tarde se acortó a solo PL/I. El PL/I incorporó todas las innovaciones de los lenguajes anteriores, es decir, fusionó los atributos numéricos de FORTRAN con las características de programación para negocios de COBOL. El PL/I alcanzó 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 les denominaba así. Estaban orientados a facilitar la utilización de grandes conjuntos de datos en los que las interrelaciones eran complejas. El arquetipo de aplicación era el Bill of materials o Parts explosion, típica en las industrias del automóvil, en la construcción de naves espaciales y en campos similares. Estos sistemas trabajaban exclusivamente por lotes que ya hemos descrito como funcionaban en los sistemas operativos. Los SGBD estaban totalmente relacionados con el software de comunicaciones y de gestión de transacciones. IBM denominaba a este software Data Base/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