La historia de los sistemas operativos mainframe de IBM es significativa dentro de la historia de los sistemas operativos mainframe , debido a la posición de larga data de IBM como el mayor proveedor de hardware de computadoras mainframe del mundo . Los mainframes de IBM ejecutan sistemas operativos suministrados por IBM y por terceros.
Los sistemas operativos de los primeros mainframes de IBM rara vez han sido muy innovadores, a excepción de TSS/360 y los sistemas de máquinas virtuales a partir de CP-67 . Pero la conocida reputación de la empresa de preferir la tecnología probada ha dado a los usuarios potenciales la confianza para adoptar los nuevos sistemas de IBM con bastante rapidez. Los sistemas operativos actuales de mainframe de IBM, z/OS , z/VM , z/VSE y z/TPF , son sucesores compatibles con versiones anteriores de los introducidos en la década de 1960.
IBM tardó en introducir sistemas operativos. General Motors produjo General Motors OS en 1955 y GM-NAA I/O en 1956 para su uso en sus propias computadoras IBM; y en 1962 Burroughs Corporation lanzó MCP y General Electric introdujo GECOS , en ambos casos para su uso por parte de sus clientes. [1] [2]
Los primeros sistemas operativos para computadoras IBM fueron escritos a mediados de la década de 1950 por clientes de IBM con máquinas muy costosas, de US$2.000.000 (equivalentes a unos US$23.000.000 en 2023), que habían permanecido inactivas mientras los operadores configuraban trabajos manualmente, y por eso querían un mecanismo para mantener una cola de trabajos. [3]
Estos sistemas operativos funcionan únicamente en unos pocos modelos de procesadores y son adecuados únicamente para cálculos científicos y de ingeniería. Otras computadoras IBM u otras aplicaciones funcionan sin sistemas operativos. Pero una de las computadoras más pequeñas de IBM, la IBM 650 , introdujo una característica que luego pasó a formar parte de OS/360 : si el procesamiento se interrumpe por un "error de procesamiento aleatorio" (falla de hardware), la máquina se reanuda automáticamente desde el último punto de control en lugar de requerir que los operadores reinicien el trabajo manualmente desde el principio. [4]
La división de investigación de General Motors produjo el módulo de E/S GM-NAA para su IBM 701 en 1956 (a partir de un prototipo, GM Operating System, desarrollado en 1955), y lo actualizó para el sucesor del 701. En 1960, la asociación de usuarios de IBM SHARE se hizo cargo y produjo una versión actualizada, SHARE Operating System . [3]
Finalmente, IBM se hizo cargo del proyecto y suministró una versión mejorada llamada IBSYS con las computadoras IBM 7090 e IBM 7094. IBSYS requería 8 unidades de cinta (menos si había una o más unidades de disco). Sus componentes principales son un lenguaje de control de trabajos basado en tarjetas , que es la interfaz de usuario principal; compiladores para FORTRAN y COBOL ; un ensamblador ; y varias utilidades, incluido un programa de ordenación . [5] [6]
En 1958, el Sistema Ejecutivo de la Universidad de Michigan adaptó el sistema de E/S GM-NAA para producir UMES , que se adaptaba mejor a la gran cantidad de pequeños trabajos creados por los estudiantes. UMES se utilizó hasta 1967, cuando fue reemplazado por el sistema de tiempo compartido MTS . [7]
Bell Labs produjo BESYS (a veces denominado BELLMON) y lo utilizó hasta mediados de la década de 1960. Bell también lo puso a disposición de otros sin cargo ni soporte técnico formal. [8] [3]
Antes de IBSYS, IBM produjo para sus computadoras IBM 709 , 7090 y 7094 un sistema operativo basado en cinta cuyo único propósito era compilar programas FORTRAN . De hecho, FMS y el compilador FORTRAN estaban en la misma cinta. [9] [10]
Fernando Corbató del MIT produjo los primeros sistemas experimentales de tiempo compartido , como CTSS , desde 1957 hasta principios de los años 1960, utilizando mainframes IBM 709 , [11] [12] IBM 7090 , [11] [12] e IBM 7094 [12] ligeramente modificados ; estos sistemas se basaban en una propuesta de John McCarthy . [13] [14] En los años 1960, los propios laboratorios de IBM crearon sistemas experimentales de tiempo compartido, utilizando mainframes estándar con modificaciones de hardware y microcódigo para soportar memoria virtual : IBM M44/44X a principios de los años 1960; CP-40 de 1964 a 1967; CP-67 de 1967 a 1972. La compañía incluso lanzó el CP-67 sin garantía ni soporte técnico a varios clientes importantes entre 1968 y 1972. El CP-40 y el CP-67 usaban CPU System/360 modificadas , pero el M44/44X se basaba en el IBM 7044 , una generación anterior de CPU que era muy diferente internamente. [15] [16] [17]
Estos sistemas experimentales llegaron demasiado tarde para ser incorporados a la serie System/360 que IBM anunció en 1964, pero alentaron a la compañía a agregar memoria virtual y capacidades de máquina virtual a sus mainframes System/370 y sus sistemas operativos en 1972: [15]
En 1968, una empresa de consultoría llamada Computer Software Systems utilizó la versión publicada de CP-67 para establecer un servicio comercial de tiempo compartido. El equipo técnico de la empresa incluía a dos reclutas del MIT (ver CTSS arriba), Dick Orenstein y Harold Feinleib. A medida que crecía, la empresa cambió su nombre a National CSS y modificó el software para aumentar el número de usuarios de pago que podía admitir hasta que el sistema fuera lo suficientemente diferente como para justificar un nuevo nombre, VP/CSS . VP/CSS fue el mecanismo de entrega de los servicios de National CSS hasta principios de la década de 1980, cuando cambió al VM/370 de IBM (ver abajo). [19] [20]
Las universidades produjeron otros tres sistemas operativos de tiempo compartido S/360 a finales de la década de 1960:
Hasta principios de los años 1960, los sistemas de gama baja y alta de IBM eran incompatibles, por lo que los programas no se podían transferir fácilmente de uno a otro, y los sistemas a menudo utilizaban periféricos completamente diferentes , como unidades de disco. [25] IBM concluyó que estos factores estaban aumentando sus costos de diseño y producción tanto de hardware como de software a un nivel que era insostenible, y estaban reduciendo las ventas al disuadir a los clientes de actualizar. Entonces, en 1964, la compañía anunció System/360 , una nueva gama de computadoras que usaban todos los mismos periféricos y la mayoría de las cuales podían ejecutar los mismos programas. [26]
Originalmente, IBM tenía la intención de que System/360 tuviera un único sistema operativo orientado a lotes , el OS/360. Existen al menos dos explicaciones de por qué IBM decidió posteriormente que también debía producir un sistema operativo orientado a lotes más simple, el DOS/360 :
Los sistemas operativos de System/360 eran más complejos que los sistemas operativos IBM anteriores por varias razones, entre ellas: [28]
Esto hizo que el desarrollo de OS/360 y otros programas de System/360 fuera uno de los proyectos de software más grandes que alguien hubiera intentado, e IBM pronto se encontró con problemas, con enormes sobrecostos y sobrecostos y una gran cantidad de errores . [28] Estos problemas solo se magnificaron porque para desarrollar y probar sistemas operativos System/360 en hardware real, IBM primero tuvo que desarrollar Basic Programming Support/360 (BPS/360). [29] BPS se utilizó para desarrollar las herramientas necesarias para desarrollar DOS/360 y OS/360, así como las primeras versiones de herramientas que proporcionaría con estos sistemas operativos: compiladores para FORTRAN y COBOL , utilidades incluyendo Sort , y sobre todo el ensamblador que necesitaba para construir todo el resto del software. [30]
Los competidores de IBM aprovecharon los retrasos en el lanzamiento del OS/360 y del System/360 para anunciar sistemas dirigidos a los sectores más vulnerables del mercado de IBM. Para evitar que las ventas del System/360 se desplomaran, IBM lanzó cuatro sistemas operativos provisionales: [26]
Cuando IBM anunció el S/360-67 también anunció un sistema operativo de tiempo compartido , TSS/360 , que utilizaría las nuevas capacidades de memoria virtual del 360/67. TSS/360 llegó tarde y las primeras versiones fueron lentas y poco fiables. Para entonces, el sistema operativo alternativo CP-67 , desarrollado por el Centro Científico de Cambridge de IBM , funcionaba lo suficientemente bien como para que IBM lo ofreciera "sin garantía" como una función de tiempo compartido para unos pocos clientes importantes. [32] CP-67 se convertiría en VM/370 y, finalmente, en z/VM . IBM finalmente ofreció tres versiones de un TSS/370 PRPQ como una vía de migración para sus clientes de TSS/360, y luego lo abandonó.
Los traumas de producir los sistemas operativos System/360 dieron un impulso a la disciplina emergente de la ingeniería de software , el intento de aplicar principios científicos al desarrollo de software y la gestión de proyectos de software . Frederick P. Brooks , quien fue gerente de proyecto senior para todo el proyecto System/360 y luego se le dio la responsabilidad específica de OS/360 (que ya era muy esperada), escribió un libro aclamado, The Mythical Man-Month , basado en los problemas encontrados y las lecciones aprendidas durante el proyecto, dos de las cuales fueron: [33]
Mientras que OS/360 era el sistema operativo preferido para las máquinas System/360 de gama alta, DOS/360 era el sistema operativo habitual para las máquinas menos potentes. Proporcionaba un conjunto de programas de utilidad , un ensamblador de macros y compiladores para FORTRAN y COBOL . El soporte para RPG [34] [35] llegó más tarde, y finalmente un subconjunto PL/I . Y admitía una gama útil de organizaciones de archivos con métodos de acceso para ayudar a utilizarlos:
Los archivos secuenciales e ISAM pueden almacenar registros de longitud fija o de longitud variable, y todos los tipos pueden ocupar más de un volumen de disco.
DOS/360 también ofrecía BTAM , un sistema de comunicación de datos primitivo y difícil de utilizar para los estándares actuales, pero que podía comunicarse con casi cualquier tipo de terminal, lo que suponía una gran ventaja en una época en la que apenas existía una estandarización de los protocolos de comunicación.
Pero DOS/360 tenía limitaciones significativas en comparación con OS/360 , que se usaba para controlar la mayoría de las máquinas System/360 más grandes:
IBM esperaba que los usuarios de DOS/360 pronto actualizaran a OS/360, pero a pesar de sus limitaciones, DOS/360 se convirtió en el sistema operativo más utilizado del mundo porque:
DOS/360 funcionaba bien en los procesadores System/360 que podían permitirse las organizaciones de tamaño medio, y era mejor que los "sistemas operativos" que estos clientes tenían antes. Como resultado, su descendiente z/VSE todavía se usa ampliamente hoy en día, a partir de 2005. [27]
OS/360 incluía múltiples niveles de soporte, una única API y mucho código compartido. PCP era una versión provisional que podía ejecutar solo un programa a la vez, pero MFT (" Multiprogramming with a Fixed number of Tasks") y MVT (" Multiprogramming with a Variable number of Tasks") se utilizaron al menos hasta finales de los años 1970, unos buenos cinco años después de que se lanzaran sus sucesores. [38] No está claro si las divisiones entre PCP, MFT y MVT surgieron porque MVT requería demasiada memoria para ser utilizable en máquinas de gama media o porque IBM necesitaba lanzar una versión multiprogramación del sistema operativo (MFT) lo antes posible.
PCP, MFT y MVT tenían diferentes enfoques para gestionar la memoria (ver a continuación), pero proporcionaban funciones muy similares:
PROJECT.USER.FILENAME
.La experiencia indicó que no era aconsejable instalar OS/360 en sistemas con menos de 256 KB de memoria, [30] lo que era una limitación común en la década de 1960.
Al instalar MFT , los clientes especificarían hasta cuatro particiones de memoria con límites fijos, en las que los programas de aplicación podrían ejecutarse simultáneamente. [39] MFT versión II (MFT-II) aumentó el límite a 52.
El MVT era considerablemente más grande y más complejo que el MFT y, por lo tanto, se utilizaba en las CPU más potentes del System/360. Trataba toda la memoria no utilizada por el sistema operativo como un único conjunto desde el que se podían asignar "regiones" contiguas según lo requerido por un número indefinido de programas de aplicación simultáneos. Este esquema era más flexible que el de MFT y, en principio, utilizaba la memoria de manera más eficiente, pero era propenso a la fragmentación : después de un tiempo, uno podía descubrir que, aunque había suficiente memoria libre en total para ejecutar un programa, estaba dividida en fragmentos separados, ninguno de los cuales era lo suficientemente grande. [31] : 372–373
En 1971 se añadió la opción de tiempo compartido (TSO) para su uso con MVT. La TSO se empezó a utilizar ampliamente para el desarrollo de programas porque proporcionaba: un editor, depuradores para algunos de los lenguajes de programación utilizados en System/360 y la capacidad de enviar trabajos por lotes, recibir notificaciones de su finalización y ver los resultados sin esperar a que se imprimieran los informes. La TSO se comunicaba con los terminales mediante el uso de TCAM ( método de acceso a telecomunicaciones ), que acabó sustituyendo al anterior método de acceso a telecomunicaciones en cola (QTAM). El nombre de TCAM sugiere que IBM esperaba que se convirtiera en el método de acceso estándar para las comunicaciones de datos, pero, de hecho, la TCAM se utilizó casi exclusivamente para la TSO y fue sustituida en gran medida por la VTAM a partir de finales de los años 70.
El hardware y los sistemas operativos de System/360 fueron diseñados para procesar trabajos por lotes que, en casos extremos, podían durar horas. Como resultado, no eran adecuados para el procesamiento de transacciones , en el que hay miles de unidades de trabajo por día y cada una toma entre 30 segundos y unos pocos minutos. En 1968, IBM lanzó IMS para manejar el procesamiento de transacciones, y en 1969 lanzó CICS , un sistema de procesamiento de transacciones más simple que un grupo del personal de IBM había desarrollado para un cliente. IMS solo estaba disponible para OS/360 y sus sucesores, pero CICS también estaba disponible para DOS/360 y sus sucesores. [40] [41] Durante muchos años, este tipo de producto se conoció como "monitor de TP (teleprocesamiento)". Estrictamente hablando, los monitores de TP no eran componentes del sistema operativo, sino programas de aplicación que administraban otros programas de aplicación. En las décadas de 1970 y 1980, varios monitores TP de terceros compitieron con CICS (en particular, COM-PLETE, DATACOM/DC, ENVIRON/1, INTERCOMM, SHADOW II, TASK/MASTER y WESTI), pero IBM mejoró gradualmente CICS hasta el punto en que la mayoría de los clientes abandonaron las alternativas. [42] [43]
En la década de 1950, las aerolíneas se expandieron rápidamente, pero este crecimiento se vio frenado por la dificultad de gestionar miles de reservas manualmente (utilizando archivos de tarjetas). En 1957, IBM firmó un contrato de desarrollo con American Airlines para el desarrollo de un sistema de reservas computarizado, que se conocería como SABRE . El primer sistema experimental se puso en marcha en 1960 y el sistema asumió todas las funciones de reserva en 1964, en ambos casos utilizando mainframes IBM 7090. A principios de la década de 1960, IBM emprendió proyectos similares para otras aerolíneas y pronto decidió producir un único sistema de reservas estándar, PARS , para ejecutarse en computadoras System/360 .
En SABRE y las primeras versiones de PARS no existía separación entre los componentes de aplicación y sistema operativo del software, pero en 1968 IBM lo dividió en PARS (aplicación) y ACP (sistema operativo). Las versiones posteriores de ACP se denominaron ACP/TPF y luego TPF (Transaction Processing Facility), ya que las empresas no relacionadas con las aerolíneas adoptaron este sistema operativo para gestionar grandes volúmenes de transacciones en línea. La última versión es z/TPF .
IBM desarrolló ACP y sus sucesores porque: a mediados de la década de 1960, los sistemas operativos estándar de IBM ( DOS/360 y OS/360 ) estaban orientados al procesamiento por lotes y no podían manejar grandes cantidades de transacciones cortas con la suficiente rapidez; incluso sus monitores de transacciones IMS y CICS , que se ejecutan bajo el control de sistemas operativos estándar de propósito general, no son lo suficientemente rápidos para manejar reservas en cientos de vuelos de miles de agentes de viajes.
La última versión de "dominio público" de ACP, y por lo tanto su última versión "gratuita", fue ACP 9.2, que se distribuyó en un único mini-reel con un conjunto de manuales adjunto (alrededor de dos docenas de manuales, que ocupaban quizás 48 pulgadas lineales de espacio en el estante) y que podía restaurarse en unidades de disco IBM 3340 y que, de ese modo, proporcionaría un sistema ACP completamente funcional.
ACP 9.2 fue pensado principalmente para tarjetas bancarias como MasterCard y otras aplicaciones financieras, pero también podía utilizarse para sistemas de reservas de aerolíneas, ya que para ese entonces ACP se había convertido en un sistema operativo de propósito más general.
Para entonces, ACP había incorporado un módulo de hipervisor (CHYR) que soportaba un sistema operativo virtual (normalmente VS1 , pero posiblemente también VS2 ) como invitado, con el que se podía realizar el desarrollo de programas o el mantenimiento de archivos simultáneamente con las funciones en línea.
En algunos casos, el trabajo de producción se ejecutó bajo VS2 bajo el hipervisor, incluido, posiblemente, IMS DB.
El Modelo 20 fue etiquetado como parte de la gama System/360 porque podía conectarse a algunos de los mismos periféricos, pero era una máquina de 16 bits y no era totalmente compatible con otros miembros de la gama System/360. Los laboratorios de IBM en Alemania desarrollaron tres sistemas operativos para diferentes configuraciones de 360/20: DPS, con discos (memoria mínima requerida: 12 KB); TPS, sin discos pero con cintas (memoria mínima requerida: 8 KB); y CPS, basado en tarjetas perforadas (memoria mínima requerida: 4 KB). [44] Estos no tuvieron sucesores directos desde que IBM introdujo la gama System/3 de computadoras para pequeñas empresas en 1969 y System/3 tenía un diseño interno diferente al 360/20 y periféricos diferentes a los de los mainframes de IBM.
El 360/44 es otro procesador que utiliza los periféricos del System/360 pero tiene un conjunto de instrucciones modificado. Fue diseñado para cálculos científicos utilizando números de punto flotante , como análisis geológicos o meteorológicos. Debido a las diferencias internas y al tipo de trabajo especializado para el que fue diseñado, el 360/44 tiene su propio sistema operativo, PS/44. [45] Una característica opcional permite que un emulador del System/360 se ejecute en almacenamiento oculto e implemente las instrucciones faltantes para ejecutar OS/360. El 360/44 y el PS/44 no tienen sucesores directos.
El System/370 se anunció en 1970 con básicamente las mismas características que el System/360 pero con una velocidad de procesador aproximadamente cuatro veces superior a la de las CPU System/360 de precio similar. [46] Luego, en 1972, IBM anunció las "Funciones avanzadas del System/370", cuyo elemento principal era que las futuras ventas del System/370 incluirían la capacidad de memoria virtual y que ésta también podría ser instalada en las CPU System/370 existentes. Por lo tanto, IBM también se comprometió a ofrecer sistemas operativos mejorados que pudieran soportar el uso de memoria virtual. [47] [48]
La mayoría de los nuevos sistemas operativos se distinguen de sus predecesores por la presencia de "/VS" en sus nombres. "VS" significa "Virtual Storage" (Almacenamiento virtual). IBM evitó el término "memoria virtual", supuestamente porque la palabra "memoria" podría interpretarse como que los ordenadores IBM podían olvidar cosas.
Todos los sistemas operativos mainframe modernos de IBM, excepto z/TPF, son descendientes de aquellos incluidos en el anuncio "Funciones avanzadas del sistema/370"; z/TPF es un descendiente de ACP , el sistema que IBM desarrolló inicialmente para soportar aplicaciones de reservas de aerolíneas de gran volumen.
DOS/VS es el sucesor de DOS/360 y ofrece funciones similares, con la incorporación de memoria virtual. Además de la memoria virtual, DOS/VS ofrece otras mejoras:
A DOS/VS le siguieron importantes actualizaciones: DOS/VSE y VSE/SP (años 1980), VSE/ESA (1991) y z/VSE (2005). [49] [50]
OS/VS1 sucedió a MFT , con funciones similares y añadiendo memoria virtual. [31] IBM lanzó mejoras bastante menores de OS/VS1 hasta 1983, y en 1984 anunció que no habría más. OS/VS1 y TSS/370 son los únicos sistemas operativos IBM [51] System/370 que no tienen descendientes modernos.
El sistema operativo especial en tiempo real (SRTOS), programa RPQ Z06751, es una variante de OS/VS1 ampliada para soportar computación en tiempo real . Estaba destinado a industrias como la gestión de energía de servicios públicos de electricidad y aplicaciones de refinería de petróleo. [52]
OS/VS2 Release 1 ( SVS ) es un reemplazo de MVT con memoria virtual. Hay muchos cambios, pero conserva la estructura general de MVT.
En 1974, IBM lanzó lo que describió como OS/VS2 Release 2, pero que es una reescritura importante que era compatible con el anterior OS/VS2 SVS. La característica más notable del nuevo sistema es el soporte para múltiples espacios de direcciones virtuales. Diferentes aplicaciones pensaban que estaban usando el mismo rango de direcciones virtuales, pero las funciones de memoria virtual del nuevo sistema las asignaban a diferentes rangos de direcciones de memoria reales. [31] Como resultado, el nuevo sistema rápidamente se hizo conocido como " MVS " (Multiple Virtual Storages), el OS/VS2 original se hizo conocido como "SVS" (Single Virtual Storage). IBM aceptó esta terminología y etiquetó a los sucesores de MVS como "MVS/...". [53]
Otras características distintivas de MVS son: su catálogo principal debe ser un catálogo VSAM ; admite "multiprocesamiento estrechamente acoplado" (2 o más CPU comparten la misma memoria y copia del sistema operativo); incluye un Administrador de recursos del sistema (rebautizado como Administrador de carga de trabajo en versiones posteriores) que permite a los usuarios cargar trabajo adicional en el sistema sin reducir el rendimiento de los trabajos de alta prioridad.
IBM ha lanzado varias actualizaciones de MVS: MVS/SE, MVS/SP versión 1, MVS/XA (1981), MVS/ESA (1985), OS/390 (1996) y actualmente z/OS (2001). [54]
VM/370 combina una función de máquina virtual con un sistema de usuario único llamado Conversational Monitor System (CMS); esta combinación proporciona tiempo compartido al permitir que cada usuario ejecute una copia de CMS en una máquina virtual. Esta combinación fue un descendiente directo de CP/CMS . [55] La función de máquina virtual se utilizaba a menudo para probar software nuevo mientras el trabajo de producción normal continuaba en otra máquina virtual, y el sistema de tiempo compartido de CMS se utilizaba ampliamente para el desarrollo de programas. [56]
A VM/370 le siguieron una serie de actualizaciones: VM/SEPP (" Producto de programa de extensiones de sistemas "), VM/BSEPP ("Producto de programa de extensiones de sistemas básicos"), VM/SP (Producto de sistema), VM/SP HPO ("Opción de alto rendimiento"), VM/XA MA ("Ayuda para la migración de arquitectura extendida"), VM/XA SF ("Instalación de sistema de arquitectura extendida"), VM/XA SP ("Producto de sistema de arquitectura extendida"), VM/ESA ("Arquitectura de sistemas empresariales") y z/VM . IBM también produjo ayudas de microcódigo opcionales para VM y sucesores, para acelerar la emulación del hipervisor de instrucciones privilegiadas (aquellas que sólo los sistemas operativos pueden usar) en nombre de los sistemas operativos "invitados". Como parte de 370/Arquitectura extendida, IBM agregó la instrucción Iniciar ejecución interpretativa (SIE) [57] para permitir una mayor aceleración del hipervisor CP. [58]
{{cite book}}
: CS1 maint: multiple names: authors list (link)