Articulo de referencia

IBM CP-40

CP-40 fue un precursor de investigación de CP-67 , que a su vez formaba parte del entonces revolucionario CP[-67]/CMS de IBM , un sistema operativo de tiempo compartido de máqui...

CP-40 fue un precursor de investigación de CP-67 , que a su vez formaba parte del entonces revolucionario CP[-67]/CMS de IBM , un sistema operativo de tiempo compartido de máquina virtual / memoria virtual para el IBM System/360 Modelo 67 , y padre de la familia VM de IBM . CP-40 ejecutaba múltiples instancias de sistemas operativos cliente, en particular 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 Centro Científico de Cambridge (CSC) de IBM, trabajando en estrecha colaboración con investigadores del MIT en el Proyecto MAC y el Laboratorio Lincoln . El uso de producción de CP-40/CMS comenzó en enero de 1967. CP-40 se ejecutaba en un IBM System/360 Modelo 40 único y especialmente modificado .

Objetivos del proyecto

CP-40 fue un sistema de investigación único. Sus objetivos declarados fueron:

  • Proporcionar información de investigación al equipo del Sistema/360 Modelo 67 que trabaja en Poughkeepsie, quienes estaban abriendo nuevos caminos con el concepto aún no probado de memoria virtual.
  • Apoyar los requisitos de tiempo compartido de CSC en Cambridge.

Sin embargo, también existía una importante misión extraoficial: demostrar el compromiso y la capacidad de IBM para brindar soporte a usuarios de tiempo compartido como el MIT. CP-40 (y su sucesor) lograron sus objetivos tanto desde el punto de vista técnico como social: contribuyeron a demostrar la viabilidad de las máquinas virtuales, a establecer una cultura de usuarios de tiempo compartido y a impulsar la industria de servicios informáticos remotos. El proyecto se vio envuelto en una disputa interna dentro de IBM sobre el tiempo compartido frente al procesamiento por lotes; y no logró convencer a la comunidad académica de informática, que finalmente se decantó por sistemas como Multics , UNIX , TENEX y diversos sistemas operativos de DEC . En definitiva, los conceptos de virtualización desarrollados en el proyecto CP-40 dieron frutos en diversos ámbitos y siguen siendo importantes hoy en día.

Características

CP-40 fue el primer sistema operativo que implementó la virtualización completa, es decir, proporcionó un entorno de máquina virtual que soportaba todos los aspectos de su sistema informático de destino (un S/360-40), de modo que otros sistemas operativos S/360 podían instalarse, probarse y utilizarse como si se tratara de una máquina independiente. CP-40 admitía catorce máquinas virtuales simultáneas. Cada máquina virtual se ejecutaba en "estado problemático": las instrucciones privilegiadas, como las operaciones de E/S, provocaban excepciones, que luego eran capturadas y simuladas por el programa de control. Del mismo modo, las referencias a ubicaciones de memoria virtual no presentes en la memoria principal provocaban fallos de página , que también eran gestionados por el programa de control en lugar de reflejarse en la máquina virtual. Encontrará más detalles sobre esta implementación en CP/CMS (arquitectura) .

La arquitectura básica y la interfaz de usuario de CP-40 se mantuvieron en CP-67/CMS , que evolucionó hasta convertirse en la actual línea de productos de máquinas virtuales de IBM.

Plataforma de hardware

No se disponía de un Modelo 67 para la construcción del CP-40, por lo que se diseñó y construyó para CSC un dispositivo de memoria virtual personalizado basado en memoria asociativa (la "caja CAT" [ 2 ] ). Esto implicó modificaciones tanto de hardware como de microcódigo en un Modelo 40 del System/360 especialmente modificado. Dichas modificaciones dotaron a la unidad de la tecnología necesaria para la virtualización completa del hardware del System/360. Este Modelo 40 modificado influyó en el diseño del futuro Modelo 67, que estaba destinado a satisfacer las necesidades de la misma comunidad de usuarios de tiempo compartido (en particular, el Proyecto MAC del MIT y los Laboratorios Bell , aunque ambos sitios resultaron ser sonados fracasos de ventas para IBM).

Durante este período, IBM implementó tres sistemas de memoria virtual distintos:

  • La "Caja Blaauw" (llamada así por Gerry Blaauw ), parte del diseño original del S/360-67
  • La "CAT Box" (Cambridge Address Translator), añadida al S/360-40 de CSC para ejecutar CP-40
  • La "DAT Box" (Traducción Dinámica de Direcciones), anunciada como una adición a la serie S/370 en 1972.

Estos sistemas eran todos diferentes, pero guardaban cierto parecido. La caja CAT del CP-40 fue un hito clave. Pugh et al. [ 3 ] citan un artículo del IEEE [ 4 ] sobre el hardware de memoria virtual del CP-40 y afirman que era «único porque incluía un banco de registros de búsqueda paralela para acelerar la traducción dinámica de direcciones. Con fondos proporcionados por Cambridge, los ingenieros de IBM... construyeron una memoria asociativa de 64 registros y la integraron en un 360/40. El resultado, único en su clase, se envió a Cambridge a principios de 1966».

Si bien la compatibilidad con la virtualización era un objetivo explícito para el Modelo 40 modificado de CSC, aparentemente no lo era para el diseño original del Modelo 67. El hecho de que finalmente se implementaran capacidades de virtualización en el Modelo 67, lo que permitió el éxito de CP-67/CMS , demuestra la tenacidad y la capacidad de persuasión del equipo de CSC.

CMS bajo CP-40

CMS se desarrolló por primera vez en 1964 en CSC para funcionar como un sistema operativo "cliente" bajo CP-40. El líder del proyecto CMS fue John Harmon. Si bien cualquier sistema operativo S/360 podía ejecutarse en una máquina virtual CP-40, se decidió que un nuevo sistema operativo interactivo, sencillo y monousuario sería la mejor opción para dar soporte a usuarios interactivos de tiempo compartido. Esto evitaría la complejidad y la sobrecarga de ejecutar un sistema multiusuario como CTSS . (En contraste con el sistema operativo/MVT-TSO de IBM y sus sucesores, que esencialmente eran sistemas operativos de tiempo compartido que se ejecutaban como una sola tarea bajo un sistema operativo por lotes de IBM. Con CMS, cada usuario interactivo dispone de una máquina virtual privada).

Para septiembre de 1965, ya se habían tomado muchas decisiones importantes sobre el diseño de CMS:

  • Comandos fáciles de usar, con parámetros predeterminados y no obligatorios siempre que sea posible (para facilitar su uso y capacitación, y para minimizar los requisitos de control de tareas).
  • Un conjunto básico de comandos y macros del sistema de archivos; una convención simple para nombrar archivos, basada en el nombre del 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 ).
  • Los registros se asignaban a bloques de tamaño fijo, que podían leerse o escribirse mediante el número de registro relativo.
  • Archivos que podrían crearse simplemente escribiendo en ellos, sin necesidad de operaciones especiales de "creación".
  • Modos de archivo predeterminados, que permiten buscar en los discos en un orden fijo.

Estos fueron cambios radicales con respecto a la difícil nomenclatura de archivos, el control de trabajos (mediante JCL) y otros requisitos de los sistemas operativos "reales" de IBM. [ 5 ] (Algunos de estos conceptos habían sido objetivos de 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 múltiples discos, cada uno con un solo directorio, se eligió por su simplicidad y utilidad. Los directorios vinculados de varios niveles, con archivos almacenados en áreas comunes, eran 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 ejecutaban bajo CMS lo hacían dentro del mismo espacio de direcciones. Accedían a los servicios del sistema, como el sistema de archivos de CMS, a través de una interfaz de programación sencilla al núcleo de CMS , que residía en la memoria baja dentro de la máquina virtual de CMS. Se proporcionaban diversas llamadas al sistema, la mayoría de las cuales resultarían familiares para los programadores actuales de CMS. (Dado que las aplicaciones se ejecutaban en la máquina virtual de CMS, podían comportarse de forma anómala, sobrescribiendo datos de CMS, utilizando instrucciones privilegiadas o realizando otras acciones que pudieran tomar el control o provocar el fallo de la máquina virtual. Por supuesto, esto no podía afectar a otras máquinas virtuales, que estaban aisladas entre sí; tampoco podía dañar el programa de control subyacente. A diferencia de la mayoría de los sistemas operativos, los fallos de CP rara vez se debían a errores de la aplicación, y por lo tanto, eran relativamente raros).

Notas históricas

Las siguientes notas incluyen citas breves, principalmente de Pugh, Varian y Creasy [véanse las referencias], que ilustran el contexto de desarrollo de CP-40. Se proporcionan citas directas en lugar de paráfrasis, ya que la perspectiva de los autores influye en sus interpretaciones. Véase también Historia de CP/CMS para obtener información adicional.

  • Origen del proyecto CP-40:
    • Rasmussen, de CSC, tenía "muchas dudas" sobre TSS/360 y decidió que sus recursos ociosos de CSC debían utilizarse para crear un "sistema de tiempo compartido creíble para el S/360", que pasó a conocerse como CP-40. El líder del proyecto fue Robert Creasy, quien había sido programador de CTSS . [ 7 ]
    • Los objetivos del CP-40 incluían tanto la realización de investigaciones (obtención y análisis de datos sobre sistemas y software, incluido el uso de memoria asociativa) como la satisfacción de los propios requisitos informáticos del CSC mediante el tiempo compartido. Varian añade: «El verdadero propósito del proyecto era construir un sistema de tiempo compartido, pero los otros objetivos también eran genuinos y siempre se enfatizaron para disimular los aspectos "contraestratégicos" del proyecto». Creasy describe los objetivos del CP/CMS de esta manera: Se trataba de «un sistema de tiempo compartido de segunda generación para el recién anunciado IBM System/360... [que] daría soporte a todas las actividades del centro de Cambridge, incluidas actividades tan diversas como la investigación de sistemas operativos, el desarrollo de aplicaciones y la preparación de informes por parte de programadores, científicos, secretarios y gerentes. Poco después de su creación, fue conveniente que el sistema fuera reconocido y financiado externamente como una herramienta para evaluar y probar el rendimiento de los sistemas operativos». [ 8 ]
    • La investigación de CSC fue importante para IBM porque, en aquel entonces, "no se sabía mucho sobre los sistemas de memoria virtual". Varian cita a LW Comeau: "[El compromiso de IBM] con la memoria virtual no estaba respaldado por ninguna experiencia exitosa... Lo aterrador era que nadie que estuviera definiendo esta dirección de la memoria virtual en IBM sabía por qué [el sistema de memoria virtual contemporáneo Ferranti] Atlas no funcionaba". (Comeau concluyó más tarde que el Atlas había sufrido de sobrecarga , que no se estudió hasta que se observó en el IBM M44/44X y en el CP-40). [ 9 ] [ 10 ]
  • Diseño del CP-40: Pugh et al. escriben que: "En 1964... IBM Research recomendaba el uso de principios de máquinas virtuales a los planificadores de tiempo compartido... [que] fueron adoptados 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 finales de 1964, fue basar CP-40 no solo en memoria virtual sino en máquinas virtuales (inicialmente llamadas pseudomáquinas , hasta que el término posterior fue apropiado del proyecto IBM M44/44X, que Creasy describe como con "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 de supervisor" distintas de las instrucciones normales 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..." Al ejecutar un sistema operativo en estado de problema, todas las instrucciones "complicadas" serían interceptadas automáticamente por el hardware. Esto dejó solo un problema principal de virtualización: las referencias de memoria. "La experiencia [con CTSS]... sugirió la necesidad de una reubicación dinámica de programas... para dividir los programas en partes que pudieran moverse hacia dentro y hacia fuera de, y dentro de la memoria independientemente una de la otra." [ 12 ]
  • Máquinas virtuales CP-40:
    • Los proyectos de investigación anteriores que involucraban el concepto de máquina virtual, como el IBM M44/44X, no habían intentado crear una réplica virtual exacta de una máquina real. Creasy: "[Eran] ​​lo suficientemente parecidas... como para demostrar que 'lo suficientemente parecidas' no era suficiente".
    • CP-40 dio el audaz paso de la virtualización completa , creando catorce entornos virtuales S/360, cada uno con un tamaño de memoria virtual fijo de 256 KB, acceso mapeado a particiones de disco y acceso en cola a dispositivos de registro de unidades (por ejemplo, impresoras). Comeau: "[La creación de la virtualización completa] permitió el desarrollo simultáneo de CP y CMS; nos permitió medir sistemas no virtuales, OS 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 completa, el sistema experimental IBM M44/44X "implantó la idea de que el concepto de máquina virtual no es necesariamente menos eficiente que los enfoques más convencionales", una premisa fundamental en la arquitectura CP-40, y que finalmente resultó muy exitosa. [ 15 ]
    • El CP-40 pronto admitiría "hasta una docena de máquinas virtuales System/360" bajo control de terminal [la mayoría de las fuentes indican catorce]. (Posteriormente, el CP-67 "aprovechó... la traducción de direcciones... y aumentó la velocidad... para duplicar la capacidad" del CP-40. [ 16 ] )
  • CMS bajo CP-40:
  • Sobre la decisión de separar CMS y CP, Creasy escribe: «La implementación de CTSS ilustró la necesidad de un diseño modular para la evolución del sistema. Si bien tuvo éxito como sistema de producción, las interconexiones y dependencias de su diseño de supervisión dificultaron la extensión y el cambio. Un concepto clave del diseño CP/CMS fue la bifurcación de la gestión de recursos informáticos y el soporte al usuario. En efecto, el diseño integrado [de CTSS] se dividió en CP y CMS». El valor de la experiencia adquirida en el proyecto CTSS es incalculable. [ 17 ]
  • Acerca de los inicios de CMS, Creasy escribe: CMS "proporcionaba un servicio para un solo usuario sin las limitaciones de los problemas de compartición, asignación y protección". [ 18 ] El desarrollo inicial de CMS implicaba arrancar CMS bajo BPS , un sistema de soporte S/360 primitivo, hasta que CMS estuviera lo suficientemente avanzado como para arrancar de forma independiente. Finalmente, el desarrollo se trasladó a máquinas virtuales bajo CP. [ 19 ]

Véase también

Referencias

  1. Programa de control-67/Sistema de monitorización Cambridge (GH20-0857-1) . IBM. Octubre de 1971.
  2. Varian (1997) , pág. 11 (la "caja del gato") 
  3. Pugh, Johnson y Palmer (1991) , pág. 741 (nota 218 del cap. 6) 
  4. AB Lindquist; RR Seeber; LW Comeau (diciembre de 1966). "Un sistema de tiempo compartido que utiliza una memoria asociativa". Actas del IEEE . 54 (12): 1774– 1779. Bibcode : 1966IEEEP..54.1774L . doi : 10.1109/PROC.1966.5261 .
  5. Varian (1997) , pág. 14 – novedad de la interfaz CMS 
  6. Creasy (1981) , pág. 489 – sistema de archivos planos 
  7. Varian (1997) , págs. 3, 9, 16 – génesis del proyecto CP-40 
  8. Creasy (1981) , pág. 485 – objetivos de diseño 
  9. W. O'Neill, "Experiencia con un sistema de multiprogramación de tiempo compartido con hardware de reubicación dinámica de direcciones", Actas de la Conferencia de Computación AFIPS 30 (Conferencia Conjunta de Computación de Primavera, 1967), págs. 611–621 – thrashing en IBM M44/44X
  10. LW Comeau, "Estudios sobre paginación de sistemas operativos/360", Simposio sobre sistemas de jerarquía de almacenamiento de IBM, diciembre de 1966 – thrashing on the Atlas, citado en Varian (1997) , pág. 17 . 
  11. Creasy (1981) , pág. 485 – similar a, pero independiente de, IBM M44/44X 
  12. Creasy (1981) , pág. 486 – Estrategia de virtualización: ejecución del estado del problema, más traducción de direcciones 
  13. Varian (1997) , págs. 9, 13 
  14. Comeau (1982) , págs. 40, 42–43 , citado en Varian (1997) , págs. 9, 13  
  15. L. Talkington, "Una buena idea y que sigue creciendo", Boletín del Centro de Desarrollo de White Plains , vol. 2, n.º 3 (marzo de 1969), citado en Varian (1997) , pág. 10 . 
  16. Pugh, Johnson y Palmer (1991) , págs. 364–365 
  17. Creasy (1981) , pág. 485 – separando CP de CMS 
  18. Creasy (1981) , pág. 485 – alcance del CMS 
  19. Varian (1997) , págs. 12, 15-16 – Arranque de CMS bajo BPS 

Lecturas adicionales

  • Adair, R.  J.; Bayles, R.  U.; Comeau, L.  W.; Creasy, R.  J. (1966). Un sistema de máquina virtual para el 360/40 (PDF) (Informe técnico). Cambridge, MA: IBM, Cambridge Scientific Center. Informe 320-2007., citado en Varian (1997) y Creasy (1981)
  • Comeau, L.  W. (septiembre de 1982). "CP-40, el origen de VM/370" . Actas 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 que utiliza una memoria asociativa". Proc. IEEE . 54 (12): 1774– 1779. Bibcode : 1966IEEEP..54.1774L . doi : 10.1109/PROC.1966.5261 .
  • Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). Los sistemas 360 y los primeros 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) . SHARE 89 Sesiones 9059-9061.

Árbol genealógico