CP-40 fue un precursor de la investigación para CP-67 , que a su vez era parte del entonces revolucionario de IBM CP [-67] / CMS - una máquina virtual / memoria virtual de tiempo compartido sistema operativo para el IBM System / 360 modelo 67 , y el padre de la familia de máquinas virtuales de IBM . CP-40 ejecutó varias instancias de sistemas operativos de clientes, particularmente CMS , el Cambridge Monitor System , [1] construido como parte del mismo esfuerzo. Al igual que CP-67, CP-40 y la primera versión de CMS fueron desarrollados por el personal del Cambridge Scientific Center (CSC) de IBM , en estrecha colaboración con los investigadores del MIT enProyecto MAC y Laboratorio Lincoln . El uso de la producción de CP-40 / CMS comenzó en enero de 1967. El CP-40 se ejecutó en un IBM System / 360 Model 40 único y especialmente modificado .
Desarrollador | Centro científico de IBM Cambridge (CSC) |
---|---|
Familia OS | CP / CMS |
Estado de trabajo | Histórico |
Versión inicial | Enero de 1967 |
Objetivo de marketing | Mainframe de IBM ordenadores |
Disponible en | inglés |
Plataformas | Un IBM System / 360 Model 40 único y especialmente modificado |
Interfaz de usuario predeterminada | Interfaz de línea de comandos |
Licencia | Propiedad |
Sucesor | CP-67 |
Objetivos del proyecto
CP-40 fue un sistema de investigación único. Sus objetivos declarados fueron:
- Proporcionar información de investigación al equipo de System / 360 Model 67 que trabaja en Poughkeepsie, que estaba abriendo nuevos caminos con el concepto aún no probado de memoria virtual.
- Respalde los requisitos de tiempo compartido de CSC en Cambridge.
Sin embargo, también había una misión no oficial importante: demostrar el compromiso y la capacidad de IBM para dar soporte a usuarios de tiempo compartido como MIT. CP-40 (y su sucesor) lograron sus objetivos desde el punto de vista técnico y social: ayudaron a demostrar la viabilidad de las máquinas virtuales, a establecer una cultura de usuarios de tiempo compartido y a lanzar una industria de servicios informáticos remotos. Sin embargo, el proyecto se vio envuelto en una guerra política interna de IBM sobre el tiempo compartido versus el procesamiento por lotes; y no logró ganarse los corazones y las mentes de la comunidad académica de ciencias de la computación, que finalmente se alejó de IBM hacia sistemas como Multics , UNIX , TENEX y varios sistemas operativos DEC . Sin embargo, en última instancia, los conceptos de virtualización desarrollados en el proyecto CP-40 dieron sus frutos en diversas áreas y siguen siendo importantes en la actualidad.
Características
CP-40 fue el primer sistema operativo que implementó la virtualización completa, es decir, proporcionó un entorno de máquina virtual compatible con todos los aspectos de su sistema informático de destino (un S / 360-40), de modo que se podrían instalar y probar otros sistemas operativos S / 360. y se utiliza como si estuviera en una máquina independiente. CP-40 admitía catorce máquinas virtuales simultáneas. Cada máquina virtual se ejecutó en un "estado de problema": las instrucciones privilegiadas, como las operaciones de E / S, provocaron excepciones, que luego fueron detectadas por el programa de control y simuladas. De manera similar, las referencias a ubicaciones de memoria virtual que no están presentes en la memoria principal causan fallas de página , que nuevamente fueron manejadas por el programa de control en lugar de reflejarse en la máquina virtual. Más detalles sobre esta implementación se encuentran en CP / CMS (arquitectura) .
La arquitectura básica y la interfaz de usuario de CP-40 se trasladaron a CP-67 / CMS , que evolucionó hasta convertirse en la línea de productos VM actual de IBM.
Plataforma de hardware
Un Modelo 67 no estaba disponible para construir CP-40, por lo que un dispositivo de memoria virtual personalizado basado en memoria asociativa (la "caja CAT" [2] ) fue diseñado y construido para CSC. Implicaba cambios tanto de hardware como de microcódigo en un System / 360 Model 40 especialmente modificado. Estos cambios dieron a la unidad la tecnología necesaria para la virtualización completa del hardware System / 360. Este Modelo 40 modificado influyó en el diseño del próximo Modelo 67, que estaba destinado a satisfacer las necesidades de la misma comunidad de usuarios de tiempo compartido (en particular, Project MAC y Bell Laboratories del MIT , aunque ambos sitios se convirtieron en fracasos de ventas notables de IBM).
IBM implementó tres sistemas de memoria virtual distintos durante este período:
- La "Caja Blaauw" (llamada así por Gerry Blaauw ), parte del diseño original del S / 360-67
- El "CAT Box" (Cambridge Address Translator), agregado a CSC's S / 360-40 para ejecutar CP-40
- El "DAT Box" (traducción dinámica de direcciones), anunciado como una adición a la serie S / 370 en 1972
Estos sistemas eran todos diferentes, pero tenían un parecido familiar. La caja CAT de CP-40 fue un hito clave. Pugh y col. [3] citan un artículo de IEEE [4] sobre el hardware de memoria virtual CP-40, y afirma que era "único en el sentido de que incluía un banco de registros de búsqueda paralela para acelerar la traducción dinámica de direcciones. Con fondos proporcionados por Cambridge, ingeniero de IBM [s] ... construyó una memoria asociativa de 64 registros y la integró en 360/40. El resultado único fue enviado a Cambridge a principios de 1966 ".
Es importante señalar que, aunque el soporte de virtualización era un objetivo explícito para el Modelo 40 modificado de CSC, aparentemente no era el caso del diseño del Modelo 67 original. El hecho de que las capacidades de virtualización se implementaron finalmente en el -67 y, por lo tanto, permitieron el éxito de CP-67 / CMS , habla de la tenacidad y persuasión del equipo de CSC.
CMS bajo CP-40
CMS se construyó por primera vez en 1964 en CSC para ejecutarse como un sistema operativo 'cliente' bajo CP-40. El líder del proyecto CMS fue John Harmon. Aunque cualquier sistema operativo S / 360 podría ejecutarse en una máquina virtual CP-40, se decidió que un sistema operativo nuevo, sencillo e interactivo de un solo usuario sería lo mejor para apoyar a los usuarios interactivos de tiempo compartido. Esto evitaría la complejidad y la sobrecarga de ejecutar un sistema multiusuario como CTSS . (Compare esto con OS / MVT-TSO de IBM y sus sucesores, esencialmente un sistema operativo de tiempo compartido que se ejecuta como una sola tarea bajo un sistema operativo por lotes de IBM. Con CMS, cada usuario interactivo obtiene una máquina virtual privada).
En septiembre de 1965, ya se habían tomado muchas decisiones importantes de diseño de CMS:
- Comandos fáciles de usar, con modo predeterminado, parámetros no requeridos siempre que sea posible (para facilitar el uso y la capacitación, y para minimizar los requisitos de control del trabajo)
- Un conjunto básico de comandos y macros del sistema de archivos; una simple convención de nomenclatura de archivos, basada en el nombre de archivo, el tipo de archivo y el modo de archivo (modo de archivo = identificador de disco lógico o minidisco , una forma de asignación de letra de unidad )
- Registros asignados a bloques de tamaño fijo, que se pueden leer o escribir por número de registro relativo
- Archivos que podrían crearse simplemente escribiéndoles, sin la necesidad de operaciones especiales de 'creación'
- Modos de archivo predeterminados, lo que permite buscar discos en un orden fijo
Se trataba de desviaciones radicales de los difíciles nombres de archivos, el control de trabajos (a través de JCL) y otros requisitos de los sistemas operativos "reales" de IBM. [5] (Algunos de estos conceptos habían sido objetivos para sistemas operativos de otros proveedores, como Control Data Corporation y DEC ).
El diseño del sistema de archivos CMS, con su estructura de directorios plana , se mantuvo deliberadamente simple. Creasy señala: "Esta estructura de varios discos, cada uno con un directorio único, se eligió por ser simple pero útil. Los directorios vinculados de varios niveles, con archivos almacenados en áreas comunes, habían sido la tendencia de diseño cuando comenzamos. Simplificamos el diseño de este y otros componentes de CMS para reducir la complejidad de la implementación ". [6]
Los programas de aplicación que se ejecutan en CMS se ejecutan dentro del mismo espacio de direcciones. Accedieron a los servicios del sistema, como el sistema de archivos CMS, a través de una interfaz de programación simple para el núcleo CMS , que residía en poca memoria dentro de la máquina virtual CMS. Se proporcionó una variedad de llamadas al sistema, la mayoría de las cuales serían familiares para los programadores actuales de CMS. (Dado que las aplicaciones se ejecutaron en la máquina virtual CMS, podrían comportarse mal al sobrescribir los datos del CMS, usar instrucciones privilegiadas o tomar otras acciones que podrían tomar el control o bloquear la máquina virtual. Por supuesto, hacerlo no podría afectar a otras máquinas virtuales, que estaban todos mutuamente aislados; ni podían dañar el programa de control subyacente. A diferencia de la mayoría de los sistemas operativos, los bloqueos de CP rara vez se debían a errores de aplicación y, por lo tanto, eran relativamente raros).
Notas históricas
Las siguientes notas proporcionan breves citas, principalmente de Pugh, Varian y Creasy [ver referencias], que ilustran el contexto de desarrollo de CP-40. Aquí se proporcionan citas directas en lugar de paráfrasis, porque las perspectivas de los autores colorean sus interpretaciones. También vea Historia de CP / CMS para contexto adicional.
- Génesis del proyecto CP-40:
- Rasmussen de CSC se sintió "muy dudoso" acerca de TSS / 360 y decidió que sus recursos inactivos de CSC deberían utilizarse para crear un "sistema de tiempo compartido creíble para el S / 360", que se conoció como CP-40. El líder del proyecto era Robert Creasy, que había sido programador de CTSS . [7]
- Los objetivos del CP-40 incluían tanto realizar investigaciones (obtener y analizar datos sobre sistemas y software, incluido el uso de memoria asociativa) como cumplir con los requisitos informáticos propios de CSC a través del tiempo compartido. Varian agrega: "El propósito real del proyecto era construir un sistema de tiempo compartido, pero los otros objetivos también eran genuinos, y siempre se enfatizaron para disfrazar los aspectos 'contraestratégicos' del proyecto". Creasy describe los objetivos de CP / CMS de esta manera: iba a ser "un sistema de tiempo compartido de segunda generación para el recientemente anunciado IBM System / 360 ... [que] apoyaría todas las actividades del centro de Cambridge, incluidas actividades tan diversas como investigación del sistema operativo, desarrollo de aplicaciones y preparación de informes por parte de programadores, científicos, secretarias y gerentes. Poco después de su inicio, fue conveniente que el sistema fuera reconocido y respaldado financieramente desde fuera del centro como una herramienta para evaluar y probar la rendimiento de los sistemas operativos ". [8]
- La investigación de CSC fue importante para IBM, porque en ese momento, "no se sabía mucho sobre los sistemas de memoria virtual". Varian cita a LW Comeau: "El compromiso [de IBM] con la memoria virtual fue respaldado sin una experiencia exitosa ... Lo aterrador es que nadie que estaba estableciendo esta dirección de memoria virtual en IBM sabía por qué [el sistema de memoria virtual contemporáneo Ferranti] Atlas no lo hizo". no funciona ". (Comeau concluyó más tarde que el Atlas había sufrido golpes , que no se estudió hasta que se observó en el IBM M44 / 44X y en el CP-40). [9] [10]
- Diseño CP-40: Pugh et al. escribe que: "En 1964 ... IBM Research recomendaba el uso de los principios de la máquina virtual a los planificadores de tiempo compartido ... [que fueron] recogidos por el equipo de Cambridge [CSC], que quería, entre otras cosas, un sistema capaz de probar sistemas operativos ". Una decisión de diseño clave, tomada por Creasy y Comeau a fines de 1964, fue basar el CP-40 no solo en la memoria virtual, sino en máquinas virtuales (al principio llamadas pseudo-máquinas , hasta que el término posterior fue apropiado del IBM M44 / Proyecto 44X, que Creasy describe como que tiene "ideas similares pero independientes". [11] Creasy proporciona una descripción clara de la estrategia de virtualización de CP, basada en el conjunto de instrucciones S / 360 , que consistía en instrucciones privilegiadas de 'estado supervisor' distintas de las normales ' instrucciones de estado de problema: "Cada programa de máquina virtual [CP] se ejecuta [completamente] en estado de problema ... Las instrucciones privilegiadas ... [son] reproducidas por CP dentro de las máquinas virtuales ..." Ejecutando un sistema operativo en estado de problema, todas las instrucciones 'complicadas' serían automáticamente interceptadas por el hardware. Esto dejaba solo un problema principal de virtualización: referencias de memoria. "La experiencia [con CTSS] ... sugirió la necesidad de reubicación dinámica del programa ... para romper programas en piezas que podrían moverse dentro, fuera y dentro de la memoria independientemente unos de otros " [12].
- Máquinas virtuales CP-40:
- Los proyectos de investigación anteriores relacionados con el concepto de máquina virtual, como IBM M44 / 44X, no habían intentado crear un duplicado virtual exacto de una máquina real. Creasy: "[Estaban] lo suficientemente cerca ... para demostrar que 'lo suficientemente cerca' no contaba".
- CP-40 dio el paso audaz de la virtualización completa , creando catorce entornos virtuales S / 360, cada uno con un tamaño de memoria virtual fijo de 256K, acceso mapeado a particiones de disco y acceso en cola a dispositivos de grabación de unidades (por ejemplo, impresoras). Comeau: "[Crear virtualización completa] permitió el desarrollo simultáneo de CP y CMS; nos permitió medir sistemas no virtuales, SO y DOS, en un entorno de memoria virtual, y también proporcionó un alto nivel de integridad y seguridad". [13] [14]
- Además de revelar el valor de la virtualización total, el IBM M44 / 44X experimental "implantó la idea de que el concepto de máquina virtual no es necesariamente menos eficiente que los enfoques más convencionales", una suposición central en la arquitectura CP-40, y que en última instancia resultó muy exitoso. [15]
- CP-40 pronto admitiría "hasta una docena de máquinas virtuales System / 360" bajo el control de la terminal [la mayoría de las fuentes afirman catorce]. (CP-67 más tarde "aprovechó ... la traducción de direcciones ... y aumentó la velocidad ... para duplicar la capacidad" de CP-40. [16] )
- CMS bajo CP-40:
- Acerca de la decisión de separar CMS y CP, Creasy escribe: "La implementación de CTSS ilustró la necesidad del diseño modular para la evolución del sistema. Aunque tuvo éxito como sistema de producción, las interconexiones y dependencias de su diseño supervisor hicieron que la extensión y el cambio fueran difíciles. Una clave El concepto del diseño CP / CMS fue la bifurcación de la gestión de recursos informáticos y el apoyo al usuario. De hecho, el diseño integrado [de CTSS] se dividió en CP y CMS ". No se puede exagerar el valor de la experiencia adquirida en el proyecto CTSS. [17]
- Acerca de los primeros CMS, escribe Creasy: CMS "proporcionaba un servicio de usuario único sin problemas de uso compartido, asignación y protección". [18] El desarrollo temprano de CMS implicó arrancar CMS bajo BPS , un sistema de soporte de S / 360 temprano, hasta que CMS estuvo lo suficientemente avanzado como para arrancar de forma independiente. Finalmente, el desarrollo se trasladó a máquinas virtuales bajo CP. [19]
Ver también
- CP [-67] / CMS : el sucesor ampliamente utilizado de CP-40 y el precursor de los sistemas VM de IBM
- Cambridge Scientific Center , donde se construyeron CP-40 y CP / CMS
- IBM M44 / 44X , un sistema de localización experimental contemporáneo
- Historia de CP / CMS , una revisión de eventos y problemas que llevaron a la creación de CP-40
- Evolución del sistema de tiempo compartido
Referencias
- ^ Control Program-67 / Cambridge Monitor System (GH20-0857-1) . IBM. Octubre de 1971.
- ^ Varian (1997) , p. 11 (la "caja CAT")
- ^ Pugh, Johnson y Palmer (1991) , p. 741 (nota 218 al capítulo 6)
- ^ AB Lindquist; RR Seeber; LW Comeau (diciembre de 1966). "Un sistema de tiempo compartido utilizando una memoria asociativa". Actas del IEEE . 54 (12): 1774-1779. doi : 10.1109 / PROC.1966.5261 .
- ^ Varian (1997) , p. 14 - novedad de la interfaz CMS
- ^ Creasy (1981) , p. 489 - sistema de archivo plano
- ^ Varian (1997) , págs. 3, 9, 16 - génesis del proyecto CP-40
- ^ Creasy (1981) , p. 485 - objetivos de diseño
- ^ W. O'Neill, "Experiencia en el uso de un sistema de multiprogramación de tiempo compartido con hardware de reubicación dinámica de direcciones", Proc. AFIPS Computer Conference 30 (Spring Joint Computer Conference, 1967), págs. 611–621 - paliza en IBM M44 / 44X
- ^ LW Comeau, "Operating System / 360 Paging Studies", Simposio del sistema de jerarquía de almacenamiento de IBM, diciembre de 1966 - paliza en el Atlas, citado en Varian (1997) , p. 17.
- ^ Creasy (1981) , p. 485 - similar pero independiente de IBM M44 / 44X
- ^ Creasy (1981) , p. 486 - estrategia de virtualización: ejecución del estado del problema, más traducción de direcciones
- ^ Varian (1997) , págs. 9, 13
- ^ Comeau (1982) , págs. 40, 42–43, citado en Varian (1997) , págs. 9, 13
- ^ L. Talkington, "Una buena idea y sigue creciendo", Boletín del centro de desarrollo de White Plains , vol. 2, núm. 3 (marzo de 1969), citado en Varian (1997) , pág. 10.
- ^ Pugh, Johnson y Palmer (1991) , págs. 364–365
- ^ Creasy (1981) , p. 485 - separando CP de CMS
- ^ Creasy (1981) , p. 485 - alcance de CMS
- ^ Varian (1997) , págs. 12, 15–16 - Arranque de CMS bajo BPS
Otras lecturas
- Adair, R. J .; Bayles, R. U .; Comeau, L. W .; Creasy, R. J. (1966). Un sistema de máquina virtual para 360/40 . Cambridge, MA. Informe del IBM Cambridge Scientific Center 320-2007., citado en Varian (1997) y Creasy (1981)
- Comeau, L. W. (septiembre de 1982). "CP-40, el origen de VM / 370" . Procedimientos de SEAS AM82 .
- Creasy, R. J. (1981). "El origen del sistema de tiempo compartido VM / 370" (PDF) . IBM Journal of Research & Development . 25 (5): 483–490. doi : 10.1147 / rd.255.0483 .
- Lingquist, A. B .; Seeber, R. R .; Comeau, L. W. (1966). "Un sistema de tiempo compartido utilizando una memoria asociativa". Proc. IEEE . 54 (12): 1774-1779. doi : 10.1109 / PROC.1966.5261 .
- Pugh, Emerson W .; Johnson, Lyle R .; Palmer, John H. (1991). Sistemas 360 y Early 370 de IBM . Cambridge MA: MIT Press. ISBN 0-262-16123-0.
- Varian, Melinda (1997). "VM y la comunidad de VM, pasado, presente y futuro" (PDF) . COMPARTIR 89 Sesiones 9059-9061 .
Árbol de familia
Relaciones familiares CP / CMS | |||
→ derivación >> fuerte influencia > alguna influencia / precedencia | |||
CTSS | |||
> IBM M44 / 44X | |||
>> CP-40 / CMS → CP [-67] / CMS | → VM / 370 → Versiones VM / SE → Versiones VM / SP → Versiones VM / XA → VM / ESA → z / VM | ||
→ VP / CSS | |||
> TSS / 360 | |||
> TSO para MVT → para OS / VS2 → para MVS → ... → para z / OS | |||
>> MULTICS y la mayoría de las otras plataformas de tiempo compartido | |||