Publicado el Martes 10 de Octubre del 2006 @ 13:10 por Kujaku.
Para explicar un poco el tema, antes hay que comentar también el tipo de Hardware que había en esa época para entender mejor ciertas decisiones de diseño que se tomaron.
Como dije en ocasiones anteriores, hasta Abril de 1964 cada computador era de un padre y una madre distintos. Esto hacia que estas computadoras “bastardas” requiriesen un nivel de especialización importante, y tanto sus programas como datos tenían obligatoriamente que estar adaptados a esas maquinas. Pero a partir de esa fecha, IBM creo el S/360 (360 hace referencia a los 360 grados de una circunferencia, dando a entender que podría adaptarse a todo el rango de opciones habidas y por haber). Esta máquina constaba de varios modelos, desde el modelo 20 que tenía 64 raquíticos KBs de RAM (pero en aquella época era como tener 4 GB en tu PC), hasta el modelo 91, que era el ordenador mas potente de la gama que se instaló en el sistema de defensa de misiles nucleares de los EEUU, en plena guerra fría. A pesar de sus diferencias en potencia, tenían el mismo juego de instrucciones, solo que en el modelo pequeño muchas instrucciones las tenía en microcódigo mas que en hardware propiamente dicho (por ejemplo, mientras que en el modelo 91 la multiplicación estaba implementada por hardware, en el modelo 20 era una macroinstrucción que sumaba n veces).
Se desarrollaron una serie de sistemas operativos, de acuerdo a la potencia de cada maquina. Mientras que las mas cutres y salchicheras no tenían SO y que lo único que hacían era leer de tarjetas perforadas y generar nuevos datos en tarjetas o impresoras, las máquinas de gama media con una cierta potencia, se instalaban con una versión de DOS (se lo que pensáis y no oiga, que no, de MS-DOS nada J ) y las de gama alta, con un sistema operativo llamado OS/360. DOS era un sistema operativo que solo podia ejecutar una tarea a la vez (que no, coño, que no es MS-DOS), y mientras esa tarea se ejecutaba, solo cabía esperar a que la finalizara. En cambio, OS/360 era… bueno, de esto hablaremos largo y tendido…
Pero al tema: En Abril de 1964 se hizo pública la noticia del desarrollo del IBM S/360, pero no fue hasta un año mas tarde cuando se comercializó el modelo de mas baja gama. Al modelo 20 le siguieron modelos 40, etc, hasta que en junio de 1966 salió el modelo 67, el primero que tenía soporte hardware para la memoria virtual. Tenia un DAT (Dynamic Address Translation) y una lógica de paginación de memoria, por lo que a partir de ese momento, podrías ejecutar cualquier programa del espacio de direcciones dado a pesar de no tener la suficiente memoria real. IBM planeo el perfecto Sistema Operativo que explotara todas las capacidades de esta máquina, llamado TSS/360, pero lamentablemente no lo hicieron funcionar lo suficientemente bien como para comercializarlo con la cabeza bien alta ya que se petaba cada dos por tres (es decir, que tuvieron mas vergüenza que Microsoft y su Windows con pantallas azules). Luego lo explicaré mas detalladamente…
No obstante, IBM también desarrollo otro sistema operativo para ese modelo, llamado CP-67, que permitía la virtualización de varias máquinas en una sola, dando la sensación a cada usuario que tenia toda la máquina para el solito. Además, podía emular otro tipo de máquinas, por lo que este SO vino de perlas para desarrolladores de software de esta y otras plataformas distintas.
En verano de 1970, IBM amplió el juego de instrucciones e implementó el mecanismo de memoria virtual del 360/67 en todos los modelos, y por consiguiente, desarrollando y adaptando los SO existentes para trabajar con memoria virtual, rebautizando la nueva arquitectura como IBM S/370. A partir de aquí, a lo largo de los años 70 y 80, las máquinas se hicieron más grandes en tamaño, potencia, velocidad y recursos, pero la arquitectura básica de 1964 no cambió en absoluto.
Por un lado venía de puta madre, porque los programas escritos en 1964 funcionaban perfectamente en 1980, pero a toda leche. Pero por otro, dado que el bus de direcciones era de 24 bits, y los programas eran cada vez mayores, se dieron cuenta que al final existía una limitación hardware de 16 MB de RAM direccionable, tanto real como virtual. Así que IBM se puso manos a la obra, y en 1982 desarrollo la arquitectura S/370-XA, que tenía un bus de 32 bits, lo que hacía que se direccionala hasta ¿4 GB de RAM? Noooo! Sólo podía direccionar 2 GB de RAM.
Y a que se debe esto? Pues muy sencillo: Como para IBM primaba la compatibilidad hacia atrás, se las arreglo para que a nivel hardware los programas escritos para 24 bits no notaran la diferencia, usando de los 32 bits, un bit (el 31) para decir si la página de memoria esta por encima de los 16 bits (XA) o esta por debajo (tradicional). Así, mi programa escrito en 1964 funcionaría por debajo de los 16 MB como siempre, pero los nuevos programas que escriba a partir de ahora, podría desarrollarlos a 31 bits y situarlos en un espacio de direcciones por encima de los 16 MB. O que coño, puedo coger mis fuentes y recompilarlos con mi compilador y decirle que me los sitúe encima de los 16 MB de RAM (solo tengo que poner un parámetro en el compilador).
Como información adicional, esa diferencia entre menos de 16 MB y mas de 16 MB la denominó “La LINEA”, haciendo referencia a que por debajo de la línea, se situaban los programas tradicionales, y por encima de la línea, los programas “cool” nuevecitos. Y ya que estamos, IBM en 1988 le dio por desarrollar un nuevo concepto de memoria virtual: Los múltiples espacios de almacenamiento, haciendo referencia a que cada programa podría tener su propia gestión de la memoria virtual, por capas, desterrando así el concepto de gestión plana de memoria. A esta arquitectura, se la denomino IBM ESA/370 (Enterprise Systems Architecture).
En la década de los 90, IBM desarrolló una nueva arquitectura llamada ES/9000, multiprocesadores con múltiples espacios de memoria, sistema LPAR de particiones virtuales de máquina (vamos, VMwares por hardware), cambiando el nombre de la arquitectura ESA/370 a ESA/390. Fue también la época donde se desterró el cobre como medio de transmisión y se impuso la fibra óptica (ESCON –Enterprise Systems CONnection), por lo que el acceso a discos, cintas, etc, se realizaba vía fibra a velocidades de 20 MB/seg por canal, mientras que en cobre como mucho se podían alcanzar velocidades de 4,5 MB/seg (decir que puedes conectar mas de un canal a un periférico, así que el ancho de banda se balancea automáticamente y lo multiplicas).
A partir de ese momento, y una vez que en 1994 los ES/9000 estaban en pleno auge, IBM cambió la tecnología a una más barata, pequeña pero mucho mas veloz, llamada IBM Parallell Enterprise Server, sacando cada año, una generación (desde la G1 hasta el G6 de 1999).
Pero fue en el año 2000 cuando IBM dijo: 2 GB me saben a poco. Quiero más. Así que desarrolló la arquitectura z/Series, con un espacio de direcciones de 64 bits, lo que hacía que podría direccionar hasta 16 EXABYTES de datos en memoria. Es decir, que en el último z/Series que me compre mañana mismo, me va a funcionar un programa escrito en 1964. Te cagas.
No existe otro sistema informático en el mundo que respete de forma tan fiel la compatibilidad hacia atrás. Como nota curiosa, como el bit 31 es el identificador que sitúa a un programa por encima o por debajo de la línea, hay 2 GB que no se pueden direccionar, para la máquina no existen. Así que a estos 2 GB “fantasmas” se les denomino La BARRA.
Por encima de la Barra, y al igual que pasaba con la línea, puedo compilar un programa y hacer que se ejecute o debajo de la línea, o entre la línea y la barra o por encima de la barra, ya os digo que cambiando un parámetro.
Después de este “breve” paso por los adelantos tecnológicos que ha sufrido la historia del mainframe, paso ya a comentar los adelantos de los SO de la época hasta nuestros días.
A lo largo de la vida de la plataforma S/360, se desarrollaron los siguientes SO:
Pero como el TSS/360 fue un fiasco mayúsculo, fue reemplazado por los siguientes productos:
A continuación, paso a explicar brevemente cada uno:
Este SO sólo podía ejecutar una tarea a la vez, así que era como podréis observar similar al MS-DOS, pero con 25 años de diferencia. Vamos, que Microsoft no inventó absolutamente nada. Tenía un espacio de direcciones plano así que si tu programa no cabía en memoria real, pues a joderse.
Se introducía en programa por tarjetas y daba un resultado. Simple a mas no poder –por eso no petaba, a menos que tu, como programador lo metieras en un bucle infinito por tu ineptitud picando código-, y como esto se parece mucho al MS-DOS, pues poco mas que añadir.
El resultado fue un pedazo de mierda solo comparable con MS Windows 95 Primera edición: tardaba 10 minutos arrancar, hasta que te aparecía el LOGON, y luego tenías 10 minutos de vida aproximadamente hasta que se cayera todo el sistema de manera dramática. Evidentemente, IBM abandonó dicho proyecto y nunca se llegó a comercializar.
El problema es que por aquel entonces, no funcionaba tan maravillosamente, ya que el TSO comía más de media máquina en MFT o MVT (luego los explico), sin contar con el hecho que una vez al día por lo menos, cascaba estrepitosamente.
Por consiguiente, podías instalar un SO dentro de esa máquina, ya sea MVT, MFT, DOS o lo que quisieras, al igual que lo hace un VMware de los de hoy en día. Al final, este SO se rebautizó como VM/370 con la llegada del System/370. Y ha seguido una evolución tecnológica de acuerdo a la tecnología existente, pasando de ser VM/370 a VM/370-XA, VM/ESA, y ahora, z/VM.
OS/360: El estandarte de los sistemas operativos de la época y el que mas recursos humanos en todo el mundo ha tenido –antes de la llegada de GNU/Linux-. Robusto de narices, es EL SO mas seguro del mundo. El nombre de OS/360 viene a que ese iba a ser el SO que iba a soportar toda la gama de máquinas, pero al principio se desarrollaron varias fases:
OS/360-PCP: Primary Control Program: Era una parte muy muy simple del OS/360, y como el DOS, solo podía ejecutar un programa a la vez. Pero claro, OS/360-PCP necesitaba de un maquinón para su ejecución, así que la gente que se decantaba por una máquina pequeña y un sistema operativo similar, se iba de cabeza al DOS. Así que este SO se quedo en los laboratorios de IBM para desarrollar software para otros SO.
OS/360-MFT: Multiprogramming with Fixed number of Tasks: Meses mas tarde, salió a la luz y fue el primer SO multitarea de la historia. La memoria la dividías en regiones y cada región podía ejecutar un programa distinto. Pero la pega es que debías conocer al dedillo los jobs o programas que ibas a lanzar, ya que si un job ocupaba más que la región seleccionada, no cabía y por lo tanto, no podía ser ejecutado.
Y si tenias que cambiar la configuración de las regiones de memoria, tenías que apagar todo y volver a configurar, por lo que era un modelo chungo de trabajo, aunque si te lo montabas bien, podrías ejecutar cientos de tareas simultáneas.
La ventaja es evidente, ya que el sistema se reconfigura automáticamente de acuerdo a las necesidades de tu job, pero esto traía una desventaja con los jobs que consumían poca memoria pero que requerían de mucho tiempo de CPU para finalizar, y era que al de un rato de tener la máquina funcionando, estos jobs se situaban en una zona central de la memoria, y que el espacio libre de memoria de alrededor no se podía aprovechar porque los otros jobs que están esperando en la cola no entraban en esas partes libres, así que no podrían entrar hasta que estos pequeños jobs terminaran y se liberase dicha memoria, creando cuellos de botella y paradas de exclusiones mútuas si un job en ejecución necesitara que otro job se ejecutara para terminar.
Por lo tanto, se desarrolló un producto llamado HASP que no era mas que un planificador de trabajos, que ordenaba la cola de jobs de acuerdo a sus consumos de memoria y demás parámetros, y saliendo en un orden predefinido mediante unas hebras o “slots” predefinidos. Esta ejecución se parece mas a MFT, pero con la ventaja de la reordenación de la memoria que realiza el HASP (que con el paso de los años se rebautizaría como JES –Job Entry Subsystem-).
Cuando el hardware de memoria virtual estuvo disponible en los modelos posteriores, los diversos SOs se rebautizaron. Al OS/360-MFT se llamó OS/VS1 y al OS/360-MVT se le llamó OS/VS2. Además se re-escribieron ya que con la memoria virtual, dejaba de ser necesario que el programa adquiriera la memoria contigua, con lo que el problema del MVT sin el HASP desaparecía (aunque se siguió utilizando el HASP –JES2- igualmente). Sucesivas ampliaciones del OS/VS2 y con el hardware que admitía múltiples espacios de direcciones virtuales, lo rebautizaron como MVS (Multiple Virtual Storage).
Con la llegada de la arquitectura 370 se le llamó MVS/370, luego con la XA se le llamo MVS/XA, luego MVS/ESA, y ya con el cambio de nombre de la arquitectura a S/390, se volvió a utilizar el OS/360 para llamarlo OS/390. Y en el 2000, con el z/Series, z/OS. Pero vamos, en la practica el z/OS se basa en los mismos fundamentos que el OS/360 pero con las mejoras tecnológicas. Existe el concepto de submitir jobs, el JES2, el TSO, etc.
A partir de aquí, hay toda una gama de productos para el buen desempeño de la máquina: El SDSF (Spool Display and Search Facility) que administra el JES2 y todos los trabajos, colas, etc. El RMF (Resource Measuremente Facility) que monitoriza usando los registros del SMF (System Management Facility) el estado de la máquina, productos como DFSMS (Data Facility Storage Management System) que ordena los datos en disco según ciertas políticas, el DFSMS-hsm (Hierachical Storage Manager) que migra datos poco usados a cintas, etc.
Y luego productos como DB2 para bases de datos, CICS para el transaccional, herramientas de programación y desarrollo en Cobol, C, Java, así como herramientas de orientación a la web tipo Lotus Domino+Notes, Websphere, así como OMVS (Openedition MVS, un UNIX embebido dentro del SO), etc. Y eso sin contar con los monitores de rendimiento de cada producto que instales, por ejemplo el TMON o el OmegaMon del CICS, y demás utilidades de Boole& Babagge de monitorización, a no ser que te guste mas el Tivoli Netview.
Y eso es todo amigos. Si queréis alguna información adicional, Internet es el camino, sobre todo los ABC’s Of System Programming z/OS que IBM publica en PDF con descarga directa desde mi web.
No obstante, se podría montar un buen foro de opinión sobre esto, ya que ya he recibido mensajes de los que apoyan esta arquitectura y los que la rechazan. Y creedme, es muy interesante conocer opiniones de todos los ámbitos.
Los hay que la “rechazan”? Insensatos… ahora hay cosas que se hacen con mainframe que no se pueden hacer con Free Software porque NO HAY Free Software que lo haga.
A lo mejor en lugar de “rechazar” las cosas nos convendria estudiarlas más, a ver si algún dia además de aprender algo mejoramos el mundo escribiendo parte del Free Software que FALTA.
Eso seria… positivo, no? :-P
Enhorabuena, realmente es una bonita y completa historia de los Mainframes de IBM,solo te ha faltado el consabido comentario acerca de HAL en 2001.
Muchas gracias por tus artículos sobre mainframes, me has hecho recordar mis tiempos mozos en la segunda mitad de los 70, migrando de DOS a OS/VS1 en Motor Ibérica, SEAT, Banco Central… Ha sido muy nostálgico. En los 80 pasé a dedicarme a los minis y todo esto lo tenía casi olvidado. Las cajas de tarjetas perforadas ( por cierto recuerda que al final teníamos las de 96 columnas) que se te caian al suelo y tenias que ir a la clasificadora para reordenarlas. El escribir los programas sobre papel, y luego pasárselo a perforación para perforar las tarjetas. El maravilloso CICS que nos permitia hacer cosas que ahora no se pueden hacer en las mismas condiciones. En fín recordar el tiempo en que la informática era una cosa seria.
Repito muchas gracias por tus artíclos.
Jordi Planas
Hola! Sólo una pequeña corrección: además del TSO y del CICS lo que veas en una pantalla verde puede ser IMS :).
DEN INFORMACION BUENA
Hola:
De donde puedo obtener todos los CD’s AD-CD Z/os (tampoco importa si es muy actual), para el emulador Hercules?
Saludos y gracias
JULIO
nuevamente gracias por el articulo todo referente al entorno me ayuda a entender mejor sobre este tema!…recien me estoi iniciando en OS/390.
Buenisima la nota, tengo que hacer una tarea para la universidad, alguien tiene material bibliografico acerca de SISTEMA OPERATIVO MAINFRAME… desde ya muchas gracias
Hola,
Solo decir que en la decada de los 90 casi se muere el mainframe, porque la tecnologia con la que se hacía el hardware era bipolar,(tecnologia demasiado cara, comparada con la CMOS) la aparición de los mainframe hechos con tecnologia CMOS tenía una expectativa de abarcar la gama baja de rendimiento.
El hecho que el CMOS al comienzo no permitiera los rendimientos que hoy en dia se alcanzan hizo que se desarrollara lo que se llamó SYSPLEX que no era otra cosa que juntar varias maquinas para obtener mas potencia.
Luego se le buscó otras aplicaciones al sysplex, pero la realidad es que hoy en dia hay pocas instalaciones que necesiten mas mips que los que puede ofrecer una sola maquina de las mas grandes que ofrece IBM,las Z990 .
Muy buenas,
Acabo de empezar en el mundo mainframe como quien dice, y la verdad es que ayudas, como las que nos has regalo, me ayudan a interesarme mas y sobretodo ha enriquecerme historicamente, en este mundillo.
Gracias
Hola a todos aquellos que deseen ser becarios usuarios o programadores del sistema operativo Z/OS V1.7 de IBM, un selecto grupo de consultores de este ramo, los podemos capacitar, para emplearlos en futuros empleos que exige dicho mercado en México, ya que se esta iniciando un proyecto para dar servicios de seguridad, soluciones y automatizacion, tanto del sistema operativo como bases de datos, CICS, VTAM, JCL STORAGE, DRP, etc. así como instalación de productos no IBM.
Buen día.. en ora buena por tu explicación tan extensa, es una gran y por demás clara historia del mundo de los dinosaurios, pero aunque creo que te falto explicar sobre la evolución del control-m y la llegada de racf, que están por demás decirlo que forman una parte muy importante, tanto en la administración de los procesos, como de la seguridad de los recursos del sistema…
Es grato que uno se encuentre información como esta en Internet y lo mejor de todo en castellano, ya que por lo regular todas las personas que conocen este sistema son mayores de edad (sin ofender) y la forma más común de conocerlo en este momento es ingresando a una institución bancaria en el área de sistemas y ser capacitado por una de estas personas, que en muchos casos se encuentran renuentes a transmitir sus conocimientos..
En este momento tengo 22 años y los 3 años que llevo de conocer la pantalla verde, he tenido la oportunidad de trabajar con varios recursos del sistema (en este momento RACF) y lo poco que conozco, me ha sido suficiente para ir incrementando mi interés en este sistema , por lo robusto en cuanto a su seguridad, sus capacidades de procesamiento, así como su compatibilidad con nuevas tecnologías, como bien comentan son dinosaurios que cada vez se hacen mas fuertes lejos de extinguirse..
Saludos…
20 puntos por eso te apollo soy tsu en informatica………..