El Conversational Monitor System ( CMS - originalmente: "Cambridge Monitor System" [1] ) es un sencillo sistema operativo interactivo de un solo usuario . CMS se desarrolló originalmente como parte del sistema operativo CP / CMS de IBM , que comenzó a utilizarse en producción en 1967. CMS es parte de la familia VM de IBM , que se ejecuta en computadoras mainframe de IBM . VM se anunció por primera vez en 1972 y todavía se utiliza hoy como z / VM .
CMS se ejecuta como un sistema operativo "invitado" en una máquina virtual privada creada por el programa de control de VM . El programa de control más CMS juntos crean un sistema operativo de tiempo compartido multiusuario.
Historia
CMS se desarrolló originalmente como parte del sistema operativo CP / CMS de IBM . En ese momento, el acrónimo significaba "Cambridge Monitor System" (pero también: "Console Monitor System").
- CMS se ejecutó por primera vez con CP-40 , un sistema de investigación único que utiliza hardware personalizado en el Cambridge Scientific Center de IBM . El uso de producción en CSC comenzó en enero de 1967. La interfaz de usuario de CMS se basó en gran medida en la experiencia con el influyente sistema de tiempo compartido de primera generación CTSS , algunos de cuyos desarrolladores trabajaron en CP / CMS . (CTSS se utilizó como una de las primeras plataformas de desarrollo de CP / CMS ).
- Más tarde, en 1967, CP / CMS estuvo disponible en el IBM System / 360 Modelo 67 , donde, aunque el nuevo programa de control CP-67 fue una reimplementación sustancial de CP-40 , CMS permaneció esencialmente igual. IBM proporcionó CP / CMS "tal cual", sin ningún tipo de soporte, en forma de código fuente, como parte de la biblioteca IBM Type-III . CP / CMS era, por tanto, un sistema de código abierto . A pesar de esta falta de apoyo de IBM, CP / CMS logró un gran éxito como plataforma de tiempo compartido; en 1972, había unos 44 sistemas CP / CMS en uso, incluidos sitios comerciales que revendían el acceso a CP / CMS .
En 1972, IBM lanzó su sistema operativo VM / 370 , una reimplementación de CP / CMS para System / 370 , en un anuncio que también agregó hardware de memoria virtual a la serie System / 370 . A diferencia de CP / CMS , VM / 370 fue compatible con IBM. VM pasó por una serie de versiones y todavía se usa hoy como z / VM .
A través de todas sus distintas versiones y lanzamientos, la plataforma CMS siguió siendo bastante reconocible como un descendiente cercano de la versión CMS original que se ejecuta bajo CP-40 . Muchas decisiones clave de la interfaz de usuario familiares para los usuarios de hoy ya se tomaron en 1965, como parte del esfuerzo CP-40 . Consulte CMS en CP-40 para ver ejemplos.
Tanto VM como CP / CMS tenían historiales accidentados en IBM. VM no era uno de los sistemas operativos "estratégicos" de IBM, que eran principalmente las familias OS y DOS , y sufría de luchas políticas internas de IBM sobre el tiempo compartido versus los objetivos de procesamiento por lotes . Este conflicto es la razón por la que CP / CMS se lanzó originalmente como un sistema sin soporte y por qué VM a menudo tenía recursos limitados de desarrollo y soporte dentro de IBM. Una comunidad de usuarios excepcionalmente fuerte, establecida por primera vez en los días de autosuficiencia de CP / CMS pero que permaneció activa después del lanzamiento de VM, hizo contribuciones sustanciales al sistema operativo y mitigó las dificultades de ejecutar el "otro sistema operativo" de IBM.
Arquitectura
CMS es una parte intrínseca de la arquitectura VM / CMS, establecida con CP / CMS . Cada usuario de CMS tiene control sobre una máquina virtual privada , una copia simulada de la computadora física subyacente, en la que CMS se ejecuta como un sistema operativo independiente. Este enfoque se ha mantenido constante a lo largo de los años y se basa en:
- Virtualización completa , utilizada para crear múltiples máquinas virtuales independientes, cada una de las cuales simula completamente el hardware subyacente.
- Paravirtualización , utilizada para proporcionar una interfaz de hipervisor que CMS utiliza para acceder a los servicios de VM; esto se implementa mediante la instrucción DIAG (diagnóstico) no virtualizada
Se pueden encontrar más detalles sobre cómo CMS interactúa con el entorno de la máquina virtual en los artículos de VM y CP / CMS .
CMS se construyó originalmente como un sistema operativo independiente, capaz de ejecutarse en una máquina simple (aunque, por supuesto, nadie elegiría hacerlo). Sin embargo, CMS ya no puede ejecutarse fuera del entorno de VM, que proporciona la interfaz de hipervisor necesaria para varias funciones críticas.
Características
CMS proporciona a los usuarios un entorno para ejecutar aplicaciones o trabajos por lotes , administrar archivos de datos , crear y depurar aplicaciones, realizar desarrollo multiplataforma y comunicarse con otros sistemas o usuarios.
CMS todavía está en desarrollo y se usa ampliamente en la actualidad.
Entorno básico
Los usuarios inician sesión en la VM, proporcionan un ID de usuario y una contraseña, y luego inician su propia máquina virtual. Esto se puede hacer emitiendo el comando "IPL CMS" ("IPL" = carga inicial del programa , jerga tradicional de IBM para arrancar una máquina); aunque esto normalmente se hace automáticamente para el usuario. La personalización personal se realiza mediante un archivo de script de shell estándar llamado "PROFILE EXEC", que configura los valores predeterminados del entorno especificados por el usuario, como a qué discos y bibliotecas se accede.
Soporte terminal
CMS comenzó en la era de los terminales de papel de estilo teletipo y los posteriores terminales tontos de "teletipo de vidrio" . Sin embargo, a fines de la década de 1970, la mayoría de los usuarios de VM se conectaban a través de terminales de pantalla completa, en particular el IBM 3270 , el omnipresente terminal de procesamiento de transacciones en los mainframes de IBM. El 3270 desempeñó un papel estratégico en la línea de productos de IBM, por lo que su selección fue una opción natural para los grandes centros de datos del momento. Muchos otros fabricantes finalmente ofrecieron terminales bisync que emulaban el protocolo 3270.
Los 3270 tenían almacenamiento en búfer local, algunas capacidades de procesamiento y, por lo general, manejaban una pantalla completa de datos a la vez. Manejaban tareas de edición localmente y luego transmitían un conjunto de campos (o toda la página) a la vez cuando se presionaba la tecla ENTER o una tecla de función de programa (PFK).
La familia 3270 incorporó unidades de control "inteligentes", concentradores y otros elementos de procesamiento de red, comunicándose con el mainframe a través de circuitos dedicados a velocidades relativamente altas, a través de un protocolo de comunicación síncrono bisync . (Estas tecnologías de comunicación orientadas a mainframe proporcionaron algunas de las capacidades que se dan por sentadas en las redes de comunicación modernas, como direccionamiento de dispositivos, enrutamiento, corrección de errores y soporte para una variedad de configuraciones como topologías multipunto y multipunto ).
El enfoque 3270 difería de las terminales tontas de menor costo del período, que eran punto a punto y asincrónicas . Los usuarios comerciales de tiempo compartido , un segmento importante de los primeros sitios de CP / CMS y VM, confiaban en estos dispositivos porque podían conectarse a través de módems de 300 o 1200 bit / s a través de circuitos telefónicos normales de grado de voz. La instalación de un circuito dedicado para un 3270 a menudo no era práctico, económico ni oportuno.
El enfoque orientado a bloques del 3270 era más coherente con la visión de la informática orientada a lotes y tarjetas perforadas de IBM, y era particularmente importante para los mainframes de IBM de la época. A diferencia de las minicomputadoras contemporáneas, la mayoría de los mainframes de IBM no estaban equipados para interrupciones de carácter a la vez. El soporte de terminal tonto se basaba en unidades de control de terminal como IBM 270x (ver IBM 3705 ) o Memorex 1270. Estos controladores de terminal asíncronos ensamblaron una línea de caracteres, hasta una longitud máxima fija, hasta que se presionó la tecla RETURN. Escribir demasiados caracteres resultaría en un error, una situación familiar para los usuarios del día. (La mayoría de los centros de datos no incluían este equipo, excepto cuando era necesario para el acceso telefónico. Se prefirió el enfoque 3270).
Los terminales orientados a bloques como el 3270 hicieron que fuera práctico implementar editores orientados a pantalla en mainframes, a diferencia de los editores orientados a líneas , la norma anterior. Esta había sido una ventaja importante de las miniordenadores contemporáneos y otros sistemas orientados a los personajes, y su disponibilidad a través del 3270 fue bien recibida.
Se desarrolló un abismo entre el mundo 3270, centrado en el procesamiento de transacciones de mainframe orientado a páginas (especialmente a través de CICS ), y el mundo de terminales asíncronos, centrado en miniordenadores orientados a caracteres y tiempo compartido de marcación. Los proveedores de terminales asíncronos mejoraron gradualmente sus productos con una gama de funciones de terminales inteligentes , a las que generalmente se accede a través de secuencias de escape . Sin embargo, estos dispositivos rara vez compitieron por 3270 usuarios; IBM mantuvo su dominio sobre las decisiones de compra de hardware del centro de datos de mainframe.
Visto en retrospectiva, hubo una gran divergencia filosófica entre la informática orientada a bloques y la orientada a caracteres. Los controladores de terminal asíncronos y los 3270 proporcionaron al mainframe interacciones orientadas a bloques; esencialmente, hicieron que la entrada del terminal pareciera un lector de tarjetas. Este enfoque, preferido por IBM, condujo al desarrollo de paradigmas de interfaz de usuario y estrategias de programación completamente diferentes. Los sistemas orientados a los personajes evolucionaron de manera diferente. La diferencia es evidente cuando se compara el enfoque de transacciones atómicas del CICS dominante con el estilo interactivo orientado a la transmisión de UNIX . VM / CMS evolucionó en algún lugar entre estos extremos. CMS tiene un entorno interactivo con estado controlado por comandos , en lugar de adoptar el enfoque CICS de una interfaz orientada a transacciones sin estado . Sin embargo, CMS responde a la interacción de página o línea a la vez, en lugar de las interrupciones de caracteres.
Actuación
CMS se ganó una muy buena reputación por ser eficiente y por tener buenos factores humanos para la facilidad de uso, en relación con los estándares de la época (y, por supuesto, antes del uso generalizado de entornos de interfaz gráfica de usuario como los que se usan comúnmente en la actualidad). No era raro tener cientos (más tarde: miles) de usuarios interactivos CMS concurrentes en el mismo mainframe VM, con tiempos de respuesta inferiores a un segundo para funciones comunes y "triviales". VM / CMS superó sistemáticamente a MVS y otros sistemas operativos de IBM en términos de soporte para usuarios interactivos simultáneos.
Programación y aplicaciones principales
Muchos usuarios de CMS programaron en lenguajes como COBOL , FORTRAN , PL / I , C / 370 , APL y el lenguaje de scripting REXX . VM / CMS se usaba a menudo como plataforma de desarrollo para sistemas de producción que se ejecutaban en otros sistemas operativos de IBM, como MVS .
Otros usuarios de CMS trabajaron con paquetes de software comerciales como FOCUS , NOMAD , SPSS y SAS .
En un momento, CMS también fue un entorno importante para el correo electrónico y la productividad de la oficina; un producto importante fue PROFS de IBM (más tarde rebautizado como OfficeVision ).
Dos herramientas CMS de uso común son el editor XEDIT y el lenguaje de programación REXX . Ambos productos se han adaptado a otras plataformas y ahora se utilizan mucho fuera del entorno de mainframe.
Referencias
Consulte VM (sistema operativo) para fuentes relacionadas con VM y citas de fuentes.
Notas
- ^ Control Program-67 / Cambridge Monitor System (GH20-0857-1) . IBM. Octubre de 1971.
Ver también
- Sistema de archivos CMS
Fuentes primarias de CP / CMS
- RJ Creasy, " El origen del sistema de tiempo compartido VM / 370 ", IBM Journal of Research & Development , vol. 25, No. 5 (septiembre de 1981), págs. 483–90, PDF
- perspectiva sobre la historia de CP / CMS y VM por el líder del proyecto CP-40 , también autor de CTSS - EW Pugh, LR Johnson y John H. Palmer, los sistemas 360 y los primeros 370 de IBM, MIT Press, Cambridge MA y Londres, ISBN 0-262-16123-0
: tratamiento extenso (819 págs. ) De las ofertas de IBM durante este período; la cobertura limitada de CP / CMS en un trabajo tan definitivo es reveladora - Melinda Varian, VM y la comunidad VM, pasado, presente y futuro , SHARE 89 Sessions 9059–61, 1997;
- una fuente excepcional para el historial de CP / CMS y VM
Fuentes adicionales de CP / CMS
- RJ Adair, RU Bayles, LW Comeau y RJ Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320‐2007 (mayo de 1966)
- un artículo fundamental que describe la implementación del concepto de máquina virtual, con descripciones del diseño personalizado CSC S / 360-40 y CP-40 - International Business Machines Corporation, CP-67 / CMS , Programa 360D-05.2.005, Departamento de Información de Programas de IBM (junio de 1969)
- Manual de referencia de IBM - RA Meyer y LH Seawright, "Un sistema de tiempo compartido de máquina virtual", IBM Systems Journal, vol. 9, núm. 3, págs. 199–218 (septiembre de 1970)
: describe el sistema CP-67 / CMS y describe características y aplicaciones. - RP Parmelee, TI Peterson, CC Tillman y DJ Hatfield, "Almacenamiento virtual y conceptos de máquina virtual", IBM Systems Journal, vol. 11, No. 2 (junio de 1972)
Fuentes de CP / CMS en segundo plano
- FJ Corbató, et al., The Compatible Time-Sharing System, A Programmer's Guide, MIT Press, 1963
- FJ Corbató, M. Merwin-Daggett y RC Daley, "Un sistema experimental de tiempo compartido", Proc. Spring Joint Computer Conference (AFIPS) 21, págs. 335–44 (1962) - descripción de CTSS
- FJ Corbató y VA Vyssotsky, "Introducción y descripción general del sistema MULTICS", Proc. Conferencia conjunta sobre informática de otoño (AFIPS) 27, págs. 185–96 (1965)
- PJ Denning, "Memoria virtual", Computing Surveys Vol. 2, págs. 153–89 (1970)
- JB Dennis, "Segmentación y diseño de sistemas informáticos multiprogramados", JACM Vol. 12, págs. 589–602 (1965)
- requisitos de memoria virtual para Project MAC, destinado a GE 645 - CAR Hoare y RH Perrott, Eds., Técnicas de sistemas operativos , Academic Press, Inc., Nueva York (1972)
- T. Kilburn, DBG Edwards, MJ Lanigan y FH Sumner, "Sistema de almacenamiento de un nivel", IRE Trans. Electrón. Computers EC-11, págs. 223–35 (1962)
- Manchester / Ferranti Atlas - RA Nelson, "Mapping Devices and the M44 Data Processing System" , Informe de investigación RC 1303 , IBM Thomas J. Watson Research Center (1964)
- sobre IBM M44 / 44X - RP Parmelee, TI Peterson, CC Tillman y DJ Hatfield, "Almacenamiento virtual y conceptos de máquina virtual", IBM Systems Journal , vol. 11, págs. 99-130 (1972)
Recursos adicionales de CP / CMS en línea
- febcm.club.fr - Cronología de la tecnología de la información , 1964–74
- www.multicians.org - ensayo corto de Tom Van Vleck The IBM 360/67 y CP / CMS
- www.cap-lore.com - Breve historia de Norman Hardy de las máquinas virtuales de IBM
- www.cap-lore.com - Breve descripción de Norman Hardy de la "Caja Blaauw"