Historia del software en computación aplicado a la informática educativa.   953.6.3. Tercera Era (1965-1970).[37][35][7][3...
96    Historia del software en computación aplicado a la informática educativa.     magnitud mayor que el FMS. El sistema ...
Historia del software en computación aplicado a la informática educativa.   97                      Fig. 56. Ejemplo de ti...
98    Historia del software en computación aplicado a la informática educativa.     mismas posiciones de memoria, no era n...
Historia del software en computación aplicado a la informática educativa.   99 La filosofía de UNIX (Fig. 57) se basa en l...
100    Historia del software en computación aplicado a la informática educativa.       El programa "Hola mundo" escrito en...
Historia del software en computación aplicado a la informática educativa.    101Begin Class Saludos; Begin  OutText("¡Hola...
102    Historia del software en computación aplicado a la informática educativa.       El sistema de bases de datos en red...
Historia del software en computación aplicado a la informática educativa.   103cambiaban los requisitos de los usuarios o ...
Upcoming SlideShare
Loading in …5
×

9. tercera era

422 views
357 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
422
On SlideShare
0
From Embeds
0
Number of Embeds
34
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

9. tercera era

  1. 1. Historia del software en computación aplicado a la informática educativa. 953.6.3. Tercera Era (1965-1970).[37][35][7][32][45][46] A principios de la década de los sesenta casi todos los fabricantes decomputadoras disponían de dos líneas de producto distintas e incompatibles. Cadafabricante tenía computadoras comerciales orientadas hacia los caracteres como la1401, esta computadora era utilizada por bancos y compañías de seguros con la queordenaban sus datos e imprimían desde una cinta. En el otro extremo, los fabricantesdesarrollaban computadoras científicas a gran escala, orientadas hacia las palabras,como la computadora 7094, que era utilizada para cálculos numéricos en ciencias eingeniería. Todo esto se realizaba entre una terrible competencia de los fabricantes.Los fabricantes debían mantener las dos líneas para poder competir con los demás, loque les costaba grandes sumas de dinero aparte de que muchos clientes pedían unamáquina pequeña para empezar, lo que con la evolución del software rápidamente sele quedaba pequeño, pues las prestaciones eran insuficientes. Estos usuarios requeríanuna máquina más grande que ejecutara todos los programas que habían utilizadohasta ahora, pero más rápido.Sistemas operativos. La compañía IBM introdujo al mercado una serie de máquinas de softwarecompatible para resolver a la vez los problemas de las computadoras comerciales y lascomputadoras científicas. Esta serie de máquinas se llamaban System/360 utilizadastanto en la computadora 1401 como en la computadora 7094. La arquitectura y elconjunto de instrucciones de ambas computadoras era la misma por lo que todos losprogramas escritos para una se podían ejecutar en las demás. La diferencia residía enel rendimiento, pues tenían diferente memoria máxima, velocidad de procesador,número de dispositivos de E/S permitidos y principalmente en el precio. Con esta seriede máquinas la compañía IBM pretendía satisfacer las necesidades de todos losclientes. En años posteriores IBM sacó al mercado máquinas sucesoras comparables ala 360 como las series 370, 4300, 3080 y 3090 con tecnología más moderna. La System/360 fue la primera línea de computadoras que usaban circuitos integrados,por lo que aventajaban tanto en el precio como en el rendimiento a las máquinas de lasegunda generación que se construían con transistores individuales. El software debíafuncionar en todos los modelos independientemente de su tamaño. Por un lado seencontraba con sistemas pequeños en los que lo único que hacían era sustituir a lacomputadora 1401 para copiar las tarjetas en cinta y, por otro, se encontraban lossistemas grandes como el computador 7094 que fue sustituido para realizarpronósticos de tiempo y otros trabajos de computación pesada. Este software teníaque ser eficiente independientemente de que el computador tuviese muchos o pocosperiféricos. Este intento de abarcar todos los tipos de computadores fue su error. IBMdesarrolló un sistema operativo enorme muy complejo y con dos o tres órdenes deDaniel Merchán López. 2013
  2. 2. 96 Historia del software en computación aplicado a la informática educativa. magnitud mayor que el FMS. El sistema estaba compuesto por millones de líneas de lenguaje ensamblador escrito por miles de programadores con miles de errores. Para solucionar estos errores se creaban nuevas versiones, pero estas versiones corregían algunos o traían mas, de modo que los errores se mantenían constantes en el tiempo. A pesar de todos estos errores, este sistema operativo logró satisfacer a los usuarios de la época incluyendo varias técnicas que no se utilizaban en la segunda Era del software. La técnica que mayor influencia tuvo en esta Era del software fue la multiprogramación. Se impuso a otras técnicas por ser una forma de aprovechar el tiempo en las operaciones con los periféricos. La multiprogramación (Fig.55) consiste en mantener varios trabajos simultáneamente en memoria principal y realizar las operaciones de E/S por acceso directo a memoria, a fin de que se pueda aprovechar el tiempo perdido con otras técnicas. A la hora de realizar un trabajo, si este necesita una operación de E/S, el sistema operativo se debe encargar de congelar el trabajo solicitante, después iniciar la operación por DMA (Acceso directo a memoria) y por último pasar a realizar otro trabajo residente en memoria. Todas estas tareas se realizan de forma transparente al usuario. Fig. 55. Multiprogramación. Con la multiprogramación se dividía la memoria en varias secciones, y en cada una de ellas había un trabajo distinto. De este modo, mientras un trabajo esperaba que terminara su E/S, otro trabajo distinto podía utilizar la CPU cargando la memoria principal y así la CPU estaba constantemente ocupada. Para proteger cada trabajo, la computadora 360 disponía de hardware especial porque al haber múltiples trabajos en memoria siempre había perjuicios en la empresa por parte de otros empleados. El tiempo compartido o timesharing (Fig.56) permiten que varios usuarios trabajen de forma interactiva o conversacional con la computadora desde diferentes terminales. En estos años los terminales eran teletipos electromecánicos. El sistema operativo repartía el tiempo de la CPU entre los usuarios, este tiempo lo asignaba en intervalos pequeños de forma rotativa también llamados time slice. Este tipo de sistemas hace que cada usuario piense que la computadora solo le atiende a él. De este modo aparecen los planificadores. Daniel Merchán López. 2013
  3. 3. Historia del software en computación aplicado a la informática educativa. 97 Fig. 56. Ejemplo de tiempo compartido o timesharing. Otros modos de funcionamiento son los multiprocesadores, el concepto deindependencia de dispositivo y, por primera vez, aparecen los sistemas en tiempo real.Un multiprocesador está compuesto por varios procesadores que forman una solacomputadora de mayores prestaciones. Como se ha señalado anteriormente hay una independencia de dispositivo, pues elusuario ya no tiene que referenciar, en los programas que realice, la cinta magnética ola impresora donde van a ir. Solo tiene que especificar que quiere grabar un archivoconcreto o imprimir unos resultados. El sistema operativo es el encargado de asignar eldispositivo de E/S que esté disponible e indicar al operador que monte la cinta o elpapel correspondiente en la unidad seleccionada. En cuanto a la aparición de lossistemas en tiempo real, son sistemas utilizados en aplicaciones militares y másconcretamente para la detención de ataques aéreos. La computadora se conecta a unsistema externo que debe responder rápidamente las necesidades de ese sistema. Losprimeros sistemas de ese tipo estaban escritos en ensamblador y se ejecutaban sobrela máquina desnuda, lo que hacía de estas aplicaciones sistemas muy complejos,debemos señalar que una máquina desnuda carece de sistema operativo y en sí mismano hace nada. En esta Era se desarrollaron varios sistemas operativos, uno de ellos es CTSS(Compatible Time-Sharing System) que fue desarrollado en el MIT y se considera comoel primer sistema operativo de tiempo compartido. El grupo que lo desarrolló sellamaba Proyecto MAC ( Machine-Aided Cognition o Multiple-Access Computers) y estesistema operativo fue utilizado primero para una IBM 709 en 1961 y después en unaIBM 7094. Comparado con otros sistemas que se desarrollaron posteriormente sepuede considerar primitivo, pero funcionaba. Era muy simple, lo que minimizaba eltamaño del monitor. Una ventaja era que los trabajos siempre se cargaban en lasDaniel Merchán López. 2013
  4. 4. 98 Historia del software en computación aplicado a la informática educativa. mismas posiciones de memoria, no era necesario utilizar técnicas para reubicarlas durante la carga. Al ejecutar en una 7094, daba soporte como mucho a 32 usuarios. El sistema se ejecutaba con una memoria de 32.000 palabras de 36 bit con un monitor residente que consumía 5.000 de las mismas. Cuando se le asignaba el control a un usuario interactivo, el programa del usuario y los datos eran cargados en las restantes 27.000 palabras de la memoria principal. El sistema también disponía de un reloj de sistema, que generaba interrupciones cada 0,2 segundos y en cada una de ellas el sistema se adueñaba del control y asignaba el procesador a otro usuario. Otro sistema también desarrollado en el MIT es el MULTICS (Multiplexed Information and Computing Service) por Bell Labs y General Electric. Con este sistema intentaban proporcionar potencia de cómputo a todos los usuarios de Boston. No pensaban que años después, computadores más potentes que su GE-645 se fueran a vender por poco dinero. Por ello, tanto Bell Labs como General Electric abandonaron este proyecto. Sin embargo MULTICS tuvo una gran influencia sobre los sistemas siguientes. Un gran avance en esta Generación es la aparición y crecimiento de las minicomputadoras como la PDP-1 en 1961. PDP-1 fue también el hardware original donde se jugó el primer videojuego computarizado de la historia, el Spacewar de Steve Russell. Un operario de Bell Labs que había trabajado en el proyecto de MULTICS, Ken Thompson se propuso escribir una versión de MULTICS reducida a un usuario para la minicomputadora PDP-1. Este trabajo evolucionó para convertirse en el sistema operativo UNIX, popularizándose en las dependencias del gobierno, el mundo académico y muchas otras compañías. Fig. 57. Slogan que nos muestra la filosofía de UNIX. Daniel Merchán López. 2013
  5. 5. Historia del software en computación aplicado a la informática educativa. 99 La filosofía de UNIX (Fig. 57) se basa en la idea de que un sistema informático potentey complejo debe ser simple, general y extensible, y que esto proporciona importantesbeneficios tanto para los usuarios como para los que desarrollan programas. Otramanera de expresar los objetivos de la filosofía UNIX es resaltar que, en toda sucomplejidad y tamaño, el Sistema UNIX aún refleja la idea de que "lo pequeño esbello". Este planteamiento queda reflejado en la forma que el sistema UNIX trata a losarchivos pues ve de la misma manera los directorios, los archivos ordinarios, losdispositivos, y los teclados y terminales de pantalla. El sistema de archivos oculta alusuario detalles del hardware sobre el que se ejecuta. Esta simplicidad le permiteconcentrarse en lo realmente necesario: los datos y la información de cada archivo. El hecho de que la pantalla y el teclado se traten como archivos permite utilizar conellos los mismos programas u órdenes que con archivos almacenados de maneraordinaria, tomando la entrada desde el terminal o visualizando la información sobre él.Lenguajes de programación.[12][47][11] En esta Era nace en programación lo que se denomina programaciónestructurada. Edsger W. Dijskstra expone en un trabajo suyo donde señala que el serhumano es un ser incapaz de razonar en presencia de un número excesivo de detallesy que la claridad de un razonamiento es inversamente proporcional a la cantidad deelementos que intervienen en él. Eso explica el gran problema que había en la época:programas voluminosos, lenguajes con construcciones inseguras y para probar que nohabía errores sólo disponían de pocos casos de prueba. La prueba de programasconsistía en seleccionar un conjunto de casos de prueba y comprobar si después deejecutarlos el programa funcionaba. La programación estructurada utilizabaconstrucciones simples para facilitar la tarea de razonamiento. Una de ellas es go to,que la mayoría de los lenguajes de la época incluían. Esta construcción representa unsalto incondicional a un punto arbitrario del programa, con ella se puede salir de unbucle o saltar a un punto arbitrario de un procedimiento. El lenguaje desarrollado para representar las ideas de la programación estructuradaes el Pascal, llamado así en honor a Blaise Pascal, autor de las primeras calculadorasmecánicas (explicado en el apartado 2.4). El creador de este lenguaje de programaciónfue Niklaus Wirth, profesor del Instituto Federal de Tecnología de Zurich. Este lenguajefue utilizado para iniciarse en la ciencia de la computación hasta los últimos añosochenta. Hoy día el lenguaje dominante es el C. Fue creado para intentar solucionarmuchas deficiencias del lenguaje de la generación anterior Algol, aunque tenía sumisma simplicidad. Entre las construcciones nuevas que tenía respecto a éste seencuentran los registros, punteros, separación entre for y while, instrucción case, etc.Daniel Merchán López. 2013
  6. 6. 100 Historia del software en computación aplicado a la informática educativa. El programa "Hola mundo" escrito en Pascal sería así: Program HolaMundo; Begin Write(¡Hola, Mundo!); ReadLn; End. Pascal era fácil de transportar debido a la estructura que tenía, además su compilador estaba escrito en el mismo lenguaje. Solo necesitaba reescribir el intérprete de código- P para ejecutarlo en el nuevo sistema. Era de un sólo paso, es decir recorría una sola vez el texto del programa de izquierda a derecha. Otra clave del éxito de Pascal es el desarrollo y difusión del P-kit, con el que se podía tener disponible Pascal en cualquier máquina sin casi ningún tipo de esfuerzo. Esta idea ha sido imitada por numerosos lenguajes posteriormente. El P-kit estaba compuesto por tres elementos: el código fuente del compilador, escrito en Pascal, el código P resultante de compilar el compilador y el intérprete de código-P, escrito en Pascal. La tarea que debía realizar el operador de la máquina X consistía en traducir manualmente el intérprete de código-P al lenguaje que utilizase en la máquina X. Otro lenguaje importante de esta época es el Simula 67. Incorpora por primera vez las ideas de lo que se conoce actualmente como la programación orientada a objetos (POO). Este lenguaje fue desarrollado por Kristen Nyaard y Olejohan Dahl, noruegos, en el Centro Noruego de Computación en Oslo entre 1962 y 1967. El objetivo de este lenguaje era definir un lenguaje de propósito específico para aplicaciones de simulación. La primera versión salió en 1964 e incluía pocos aspectos innovadores tales como la gestión dinámica de memoria y la introducción de la idea de procesos concurrentes aparte de proporcionar operaciones primitivas para su sincronización e interacción. Al mejorar lenguajes específicos de simulación como SIMSCRIPR y GPSS tuvo un gran éxito entre los usuarios americanos. "Hola mundo" escrito en Simula 67: Begin comment aquí comienza el programa ; OutText("¡Hola Mundo!"); OutImage; End of program; Al ser un lenguaje orientado a objetos también se puede escribir utilizando una clase que se encarga de escribir el saludo: Daniel Merchán López. 2013
  7. 7. Historia del software en computación aplicado a la informática educativa. 101Begin Class Saludos; Begin OutText("¡Hola Mundo!"); OutImage; End of class saludos; REF(Saludos) objeto; objeto :- New Saludos;End of module program; La primera innovación que se introducida fue la distinción entre una clase (textosuministrado por el programador) de entidades y los objetos (ejemplares de la mismacreados y destruidos dinámicamente a lo largo de una ejecución completa) que sederivan de ella. Esta innovación escapaba de la estructura de bloques de ALGOL 60,pues a diferencia de las reglas que rigen la estructura de bloques, un objeto ha desobrevivir al procedimiento que lo crea y necesitaba un tipo de datos "referencia a unobjeto" que permitiera que una misma variable designara objetos en distintosmomentos. Este tipo, llamado ref, era un puntero. La otra gran innovación es el concepto de subclase. El objetivo era ahorrardeclaraciones cuando el comportamiento de una entidad era muy parecido al de laotra. La idea esencial, en realidad es muy simple. Si una clase B ha de repetirdeclaraciones de variables y de procedimientos que ya están en otra clase A, se indicaque la clase B es una subclase de la clase A y se definen en B tan sólo las variables y losprocedimientos que son específicos de B. Posteriormente esto es denominado por lospropios autores concatenación de clases, aunque el término original es el de prefijo.Actualmente se le denomina herencia y decimos que la clase B hereda de la clase A.Bases de datos.[44][48] El empleo generalizado de los discos duros a finales de los años 60 modificó elprocesamiento de los datos. Los discos duros permitían el acceso directo a los datos.La ubicación de los datos en el disco no era importante, ya que se podía tener acceso acualquier posición del disco en sólo unas decenas de milisegundos. El acceso directo alos datos era mucho más rápido que el acceso secuencial utilizado hasta la fecha, puesno tenían que recorrer todo el disco para acceder a un dato. Gracias a la utilización delos discos se pudieron crear las bases de datos en red y las bases de datos jerárquicas,permitiendo que las estructuras de datos como las listas y los árboles pudieranalmacenarse en disco. Los programadores podían crear y manipular estas estructurasde datos.Daniel Merchán López. 2013
  8. 8. 102 Historia del software en computación aplicado a la informática educativa. El sistema de bases de datos en red fue desarrollado por Charles Bachman que formaba parte de la CODASYL. La CODASYL (Conference on Data Systems Languages) era un consorcio de industrias informáticas que tenían como objetivo la regularización de un lenguaje de programación estándar que pudiera ser utilizado en multitud de ordenadores. El modelo en red de los datos permitió la creación de un estándar en los sistemas de bases de datos, gracias a la creación de nuevos lenguajes de sistemas de información. Los miembros de la CODASYL pertenecían a industrias e instituciones gubernamentales relacionadas con el proceso de datos, cuya principal meta era promover un análisis, diseño e implementación de los sistemas de datos más efectivos; y aunque trabajaron en varios lenguajes de programación como COBOL, nunca llegaron a establecer un estándar fijo, proceso que posteriormente llevó a cabo ANSI. La crisis del Software.[12][26] La crisis del software es un término informático acuñado en 1968, en la primera conferencia organizada por la OTAN sobre desarrollo de software, de la cual nació formalmente la rama de la ingeniería de software. El término se adjudica a F. L. Bauer, aunque previamente había sido utilizado por Edsger Dijkstra en su obra The Humble Programmer. La crisis se fundamentó básicamente en el tiempo de realización del software, pues no se obtenían los resultados deseados, costaba mucho hacerlo y no ofrecía mucha flexibilidad. Se puede decir que se produce un establecimiento del software. El software se desarrollaba para tener una amplia distribución en un mercado multidisciplinario. Los programas se distribuían para computadoras grandes y para minicomputadoras, a cientos e incluso a miles de usuarios. Los patronos de la industria, del gobierno y de la universidad tenían una gran rivalidad para desarrollar el mejor paquete de software y ganar así mucho dinero. Pretendían encontrar un lenguaje de programación que sirviera para todo. Éste debería disponer de una buena notación matemática para la expresión de cálculos numéricos, de suficientes facilidades para la descripción de datos, una entrada/salida versátil y eficiente, y mecanismos para la creación de estructuras dinámicas semejantes a las de LISP. También debería tener algunas características de los lenguajes especializados, tales como el tratamiento de cadenas de caracteres o facilidades para la multiprogramación. Conforme crecía el número de sistemas informáticos, comenzaron a extenderse las bibliotecas de software de computadora. Las casas desarrollaban proyectos en los que se producían programas de decenas de miles de sentencias fuente. Los productos de software comprados al exterior incorporaban cientos de miles de nuevas sentencias. Una nube negra apareció en el horizonte. Todos esos programas, todas esas sentencias fuente tenían que ser corregidos cuando se detectaban fallos, modificados cuando Daniel Merchán López. 2013
  9. 9. Historia del software en computación aplicado a la informática educativa. 103cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardwareque se hubieran adquirido. Estas actividades se llamaron colectivamentemantenimiento del software. El esfuerzo gastado en el mantenimiento del softwarecomenzó a absorber recursos en una medida alarmante. Para salir de la crisis algunos investigadores como C. A. R. Hoare y N. Wirth, seapartaron del WG 2.1 ocupado en la definición de ALGOL 68 y crearon un nuevo grupo,el WG 2.3, sobre metodología de la programación. Para obtener una metodologíaadecuada para la concepción de programas se impuso un periodo de reflexión antes dehacerlos. El problema era que las metodologías estaban aún por hacer. Para salir de lacrisis necesitaban lenguajes más simples cuyas construcciones fueran completamentecomprendidas, y sistemas de tipos más exigentes que eliminaran la mayor cantidad deerrores posibles durante la compilación.Daniel Merchán López. 2013

×