stringtranslate.com

IBM CP-40

CP-40 fue un precursor de investigación para CP-67 , que a su vez era 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 Model 67 , y el padre de la familia VM de IBM . CP-40 ejecutó múltiples instancias de sistemas operativos cliente, 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, trabajando en estrecha colaboración con investigadores del MIT en Project MAC y Lincoln Laboratory . El uso de producción de CP-40/CMS comenzó en enero de 1967. CP-40 se ejecutó en un IBM System/360 Model 40 único y especialmente modificado .

Objetivos del proyecto

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

Sin embargo, también había una importante misión no oficial: demostrar el compromiso de IBM con los usuarios de tiempo compartido como el MIT y su capacidad para dar soporte a ellos. CP-40 (y su sucesor) lograron sus objetivos desde puntos de vista técnicos y sociales: 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. El proyecto se vio envuelto en una guerra política interna de IBM sobre el tiempo compartido frente al procesamiento por lotes; y no logró ganarse los corazones y las mentes de la comunidad académica de la informática, que finalmente se alejó de IBM en favor de sistemas como Multics , UNIX , TENEX y varios sistemas operativos DEC . En última instancia, los conceptos de virtualización desarrollados en el proyecto CP-40 dieron frutos en diversas áreas 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 pudieran instalarse, probarse y usarse 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 de problema": las instrucciones privilegiadas, como las operaciones de E/S, causaban excepciones, que luego eran detectadas por el programa de control y simuladas. De manera similar, las referencias a ubicaciones de memoria virtual que no estaban presentes en la memoria principal causaban errores de página , que nuevamente eran manejados por el programa de control en lugar de reflejarse en la máquina virtual. Se pueden 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 trasladaron a CP-67/CMS , que evolucionó hasta convertirse en la actual línea de productos VM de IBM.

Plataforma de hardware

No había un Modelo 67 disponible para construir el CP-40, por lo que se diseñó y construyó un dispositivo de memoria virtual personalizado basado en memoria asociativa (la "caja CAT" [2] ) para CSC. Esto implicó cambios tanto de hardware como de microcódigo en un System/360 Modelo 40 especialmente modificado. Estos cambios le dieron a la unidad 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 se convirtieron en notables fracasos de ventas de IBM).

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

Todos estos sistemas eran diferentes, pero guardaban un cierto parecido familiar. 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 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, los ingenieros de IBM... construyeron una memoria asociativa de 64 registros y la integraron en un 360/40. El resultado, único en su tipo, se envió a Cambridge a principios de 1966".

Aunque la compatibilidad con la virtualización era un objetivo explícito del Modelo 40 modificado de CSC, aparentemente no fue así en el caso del diseño original del Modelo 67. El hecho de que las capacidades de virtualización se implementaran finalmente en el -67, y permitieran así el éxito del CP-67/CMS , habla de la tenacidad y la capacidad de persuasión del equipo de CSC.

CMS según CP-40

CMS se creó 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 podía ejecutarse en una máquina virtual CP-40, se decidió que un nuevo sistema operativo interactivo simple y de un solo usuario sería lo mejor para admitir 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 sobre el diseño del CMS:

Estos fueron cambios radicales con respecto a la difícil denominación 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 los sistemas operativos de otros proveedores, como Control Data Corporation y DEC ).

El diseño del sistema de archivos de CMS, con su estructura de directorios plana , se mantuvo deliberadamente simple. Creasy señala: "Se eligió esta estructura de múltiples discos, cada uno con un solo directorio, para que fuera simple pero útil. Los directorios vinculados de múltiples 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 implementación". [6]

Los programas de aplicación que se ejecutaban bajo CMS se ejecutaban 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 proporcionaba una variedad de llamadas al sistema, la mayoría de las cuales serían familiares para los programadores de CMS actuales. (Dado que las aplicaciones se ejecutaban en la máquina virtual de CMS, podrían comportarse mal, sobrescribiendo datos de CMS, utilizando instrucciones privilegiadas o realizando otras acciones que podrían tomar el control de la máquina virtual o hacerla colapsar. Por supuesto, al hacerlo no podrían afectar a otras máquinas virtuales, que estaban todas aisladas entre sí; ni podrían 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 aplicación, y por lo tanto eran relativamente raros).

Notas históricas

Las siguientes notas proporcionan citas breves, principalmente de Pugh, Varian y Creasy [ver referencias], que ilustran el contexto de desarrollo de CP-40. Se proporcionan citas directas en lugar de paráfrasis, porque las perspectivas de los autores influyen en sus interpretaciones. Véase también Historia de CP/CMS para obtener más contexto.

  • Acerca de 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. Aunque tuvo éxito como sistema de producción, las interconexiones y dependencias de su diseño supervisor 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 no se puede exagerar. [17]
  • Acerca de los primeros CMS, Creasy escribe: CMS "ofrecía un servicio de usuario único sin los problemas de compartir, asignar y proteger". [18] El desarrollo inicial de CMS implicaba arrancar CMS bajo BPS , uno de los primeros sistemas de soporte de S/360, hasta que CMS estaba 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 de Cambridge (GH20-0857-1) . IBM. Octubre de 1971.
  2. ^ Varian (1997), pág. 11 (la "caja CAT")
  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. doi :10.1109/PROC.1966.5261.
  5. ^ Varian (1997), p. 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 en el uso de un sistema de multiprogramación de tiempo compartido con hardware de reubicación de direcciones dinámicas", Proc. AFIPS Computer Conference 30 (Conferencia de informática conjunta de primavera, 1967), págs. 611-621 – thrashing on IBM M44/44X
  10. ^ LW Comeau, "Operating System/360 Paging Studies", Simposio sobre sistemas de jerarquía de almacenamiento de IBM, diciembre de 1966: una paliza al Atlas, citado en Varian (1997), pág. 17.
  11. ^ Creasy (1981), pág. 485 – similar pero independiente del IBM M44/44X
  12. ^ Creasy (1981), p. 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 todavía en crecimiento", White Plains Development Center Newsletter , vol. 2, núm. 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

Lectura adicional

Árbol genealógico