El IBM Time Sharing System TSS / 360 es un sistema operativo inicial de tiempo compartido descontinuado diseñado exclusivamente para un modelo especial de la línea de mainframes System / 360 , el Modelo 67 . Disponible a modo de prueba para un grupo limitado de clientes en 1967, nunca fue lanzado oficialmente como un producto soportado por IBM. TSS fue pionero en una serie de características novedosas, algunas de las cuales aparecieron más tarde en sistemas más populares como MVS . TSS se migró a los sistemas System / 370 y 303x, pero a pesar de sus muchos avances y capacidades novedosas, TSS no cumplió con las expectativas y finalmente fue cancelado. TSS / 370 se utilizó como base para un puerto de UNIX al mainframe de IBM. [1] TSS / 360 también inspiró el desarrollo del sistema operativo TSS-8 . [2]
Desarrollador | IBM |
---|---|
Estado de trabajo | Interrumpido |
Versión inicial | 1967 |
Disponible en | inglés |
Plataformas | System / 360 Modelo 67 , System / 370 modelos con DAT |
Interfaz de usuario predeterminada | Interfaz de línea de comandos |
Características novedosas
TSS / 360 fue una de las primeras implementaciones del multiprocesamiento simétrico estrechamente acoplado . Un par de mainframes Modelo 67 compartían un espacio de memoria física común y ejecutaban una única copia del código del kernel (y de la aplicación). Una operación de E / S iniciada por un procesador podría finalizar y provocar una interrupción en el otro. El Modelo 67 usó una instrucción estándar 360 llamada Probar y Configurar para implementar bloqueos en secciones críticas de código .
También implementó memoria virtual y máquinas virtuales utilizando código independiente de la posición . [3]
TSS / 360 incluyó una implementación temprana de un "Programador basado en tablas", una tabla configurada por el usuario cuyas columnas eran parámetros como la prioridad actual, el tamaño del conjunto de trabajo y el número de cortes de tiempo utilizados hasta la fecha. El kernel se referiría a esta tabla al calcular la nueva prioridad de un hilo . Esto apareció más tarde en sistemas tan diversos como Honeywell CP-V e IBM z / OS .
Como era estándar con el software del sistema operativo en ese momento, los clientes de TSS / 360 (como los Laboratorios de Investigación de General Motors ) tuvieron acceso completo a toda la fuente del código del sistema operativo y las herramientas de desarrollo. Las mejoras y los parches desarrollados por el usuario se incorporaron con frecuencia al código fuente oficial.
Interfaz de usuario
TSS proporciona a los usuarios una interfaz de línea de comandos . [4] Los usuarios interactúan con el sistema de comando . El formato de comando consta de Command_Name[ operands]
. El nombre del comando tiene de uno a ocho caracteres sin espacios en blanco incrustados. Los operandos son opcionales según el comando y deben estar separados del nombre del comando por al menos un espacio en blanco. Los operandos múltiples deben estar separados por comas o caracteres TAB . Las líneas de comando se pueden continuar escribiendo un guión ("-") al final de la línea que se continuará y escribiendo la continuación al principio de la siguiente línea. Se pueden escribir varios comandos en una línea separándolos con punto y coma (";"). Se permiten comentarios en las líneas de comando, separados del comando con un punto y coma y entre comillas simples ("'"). Los operandos pueden ser posicionales o palabras clave, con el formato "palabra clave = valor".
Los comandos del sistema se dividen en siete categorías:
- Gestión de tareas: INICIAR SESIÓN, SALIR, ABEND, etc.
- Gestión de datos - CATALOG, DDEF, DELETE, etc.
- Gestión de programas: CARGA, VACIADO, PANTALLA, TRAMPA, etc.
- Creación de comandos: PROCDEF, BUILTIN
- Manejo de mensajes
- Perfil de usuario: SINÓNIMO, PREDETERMINADO, PERFIL, etc.
- Interfaz del lenguaje del producto del programa: ASM ( Ensamblador (F) ), COBOL , HASM ( Ensamblador (H) ), PLI ( PL / I (F) ), PLIOPT ( Compilador de optimización PL / I ), FTNH ( FORTRAN (H)) , etc.
Código independiente de la posición
TSS proporcionó una implementación temprana de código independiente de la posición , la capacidad de hacer que diferentes procesos ejecuten una sola copia de un ejecutable posiblemente mapeado a diferentes direcciones virtuales en cada proceso.
Cada procedimiento puede tener un CSECT público de solo lectura, una sección de prototipo privada de escritura (PSECT) y un área de guardado de escritura, normalmente ubicada en el PSECT. Las constantes de dirección de los procedimientos externos y los puntos de entrada deben ubicarse en el PSECT, ya que el cargador dinámico [5] no colocará una rutina en la misma dirección virtual en todos los procesos. Un programa que sigue las convenciones de vinculación de Tipo I es generalmente responsable en la entrada de guardar sus registros en el área de guardado señalada por el registro 13, recuperando la dirección de su PSECT de la palabra 19 del área de guardado, encadenando el área de guardado a una nueva área de guardado y poner la dirección de la nueva área de guardado en el registro 13. Un llamador que sigue las convenciones de vinculación de Tipo I carga una constante V para la rutina en el Registro general 15 (GR15) y copia una constante R para el PSECT de la rutina en la 19a palabra del área de guardado apuntaba a ser GR13 antes de llamar a esas rutinas. [6] [7]
Cuando el cargador dinámico carga un programa, hace una copia del PSECT y reubica los anuncios para reflejar las direcciones virtuales asignadas dentro del proceso actual, por lo tanto, cada usuario del programa tiene una copia única del PSECT.
Dynamic Loader no carga páginas de programa ni resuelve constantes de dirección hasta que se produce el error de la primera página.
Crítica
TSS / 360 sufrió problemas de rendimiento y confiabilidad y falta de compatibilidad con OS / 360 , aunque esos problemas finalmente se solucionaron. IBM intentó desarrollar TSS en un horario muy agresivo con un gran personal de programadores para competir con Multics . En 1967, se hizo evidente que TSS / 360 sufría los mismos tipos de retrasos que OS / 360. En febrero de 1968, en el momento de SHARE 30, había dieciocho sitios S / 360-67 que intentaban ejecutar TSS. Durante la conferencia, IBM anunció a través de una "carta azul" que TSS / 360 estaba siendo liberado, un gran golpe para la comunidad de tiempo compartido. Esta decisión se revocó temporalmente y TSS / 360 no se canceló oficialmente hasta 1971. Sin embargo, TSS / 360 siguió estando disponible discretamente durante un tiempo para los clientes existentes de TSS / 360, como medida provisional.
Después de que se canceló TSS / 360, IBM puso sus esfuerzos principales en la Opción de tiempo compartido (TSO), un monitor de tiempo compartido para OS / 360. Varios otros grupos desarrollaron sistemas de tiempo compartido menos ambiciosos y más exitosos para el S / 360-67, en particular CP-67 en el Cambridge Scientific Center de IBM , uno de los primeros monitores de máquina virtual que evolucionó a VM / 370 , MTS en la Universidad de Michigan , y ORVYL en la Universidad de Stanford . IBM también proporcionó el TSS / 370 PRPQ como una ruta de migración para los clientes existentes de TSS / 360, que pasaron por múltiples versiones.
Ver también
- Historia de los sistemas operativos de mainframe de IBM
- Evolución del sistema de tiempo compartido
- Historia de los sistemas operativos
- Cronología de los sistemas operativos
Referencias
- ^ Felton, WA; Miller, GL; Milner, JM (octubre de 1984). "El sistema UNIX: una implementación del sistema UNIX para System / 370". Revista técnica de AT&T Bell Laboratories . 63 (8): 1751-1767. doi : 10.1002 / j.1538-7305.1984.tb00063.x .
- ^ C. Gordon Bell; J. Craig Mudge; John E. McNamara (12 de mayo de 2014). Ingeniería informática: una visión DEC del diseño de sistemas de hardware . Ciencia de Elsevier. pag. 180. ISBN 978-1-4832-2110-6.
TSS / 8 fue diseñado en la Universidad Carnegie-Mellon con el estudiante de posgrado Adrian van de Goor, como reacción al costo, desempeño, confiabilidad y complejidad del TSS / 360 de IBM (para su Modelo 67). Aunque el TSS / 360 no se comercializó, finalmente funcionó y aportó algunas ideas y capacitó a miles para IBM. En Carnegie-Mellon (CMU), un TSS / 8 funcionó hasta 1974 cuando expiró el disco de intercambio especial. El costo por usuario o por trabajo tendía a ser aproximadamente 1/20 de la CMU del sistema TSS / 360 ejecutada.
- ^ Levine, John R. (2000) [octubre de 1999]. "Capítulo 8: Carga y superposiciones". Enlazadores y cargadores . La Serie Morgan Kaufmann en Ingeniería de Software y Programación (1 ed.). San Francisco, Estados Unidos: Morgan Kaufmann . ISBN 1-55860-496-0. OCLC 42413382 . ISBN 978-1-55860-496-4 .Código: [1] Errata: [2]
- ^ IBM Corporation (agosto de 1976). Time Sharing System Command System User's Guide (GC28-2001-9) (PDF) . Consultado el 2 de mayo de 2015 .
- ^ IBM System / 360 Time Sharing System Dynamic Loader (PDF) (Cuarta ed.). Septiembre de 1971. GY28-2031-3.
- ^ IBM Corporation (abril de 1976). IBM Time Sharing System Assembler Programmer's Guide (GC28-2032-6) (PDF) . págs. 132-147 . Consultado el 2 de mayo de 2015 .
- ^ IBM Corporation (1966). Resumen técnico preliminar del sistema IBM System / 360 Model 67 Time Sharing System (C20-1647-0) (PDF) . págs. 47–50 . Consultado el 2 de mayo de 2015 .
Otras lecturas
- Pugh, Emerson; Lyle R. Johnson; John H. Palmer (1991). Sistemas 360 y Early 370 de IBM . Cambridge MA: MIT Press. págs. 362 –265, 596. ISBN 0-262-16123-0. Describe el origen y los problemas de programación de TSS.
- Brooks, Frederick P. (1995). El mes mítico del hombre . Lectura MA: Addison-Wesley. ISBN 0-201-83595-9. Describe el "síndrome del segundo sistema" que afectó al TSS.
enlaces externos
- Archivo de software de dominio público , incluye archivos binarios y fuente TSS / 370
- Archivo de manuales TSS / 360 en BitSavers.org , contiene archivos PDF para una gran cantidad de manuales TSS de IBM