Sistema de tiempo compartido compatible
El Sistema de tiempo compartido compatible (CTSS) fue el primer sistema operativo de tiempo compartido de propósito general. El tiempo compartido compatible se refería al tiempo compartido que era compatible con el procesamiento por lotes; podría ofrecer tanto el tiempo compartido como el procesamiento por lotes al mismo tiempo.
CTSS se desarrolló en el Centro de Cómputo del MIT ("Comp Center"). CTSS se demostró por primera vez en el IBM 709 modificado del MIT en noviembre de 1961. El hardware se reemplazó con un IBM 7090 modificado en 1962 y más tarde un IBM 7094 modificado llamado "máquina azul". para distinguirlo del Proyecto MAC CTSS IBM 7094. El servicio de rutina para los usuarios del MIT Comp Center comenzó en el verano de 1963 y funcionó allí hasta 1968.
Una segunda implementación de CTSS en un IBM 7094 separado que se recibió en octubre de 1963 (la 'máquina roja') se usó al principio del Proyecto MAC hasta 1969, cuando la máquina roja se trasladó al área de procesamiento de información. Center y funcionó hasta el 20 de julio de 1973. CTSS se ejecutó solo en esas dos máquinas; sin embargo, había usuarios remotos de CTSS fuera del MIT, incluidos los de California, América del Sur, la Universidad de Edimburgo y la Universidad de Oxford.
Historia
John Backus dijo en la sesión de verano de 1954 en el MIT que "Al compartir el tiempo, una computadora grande podría usarse como varias computadoras pequeñas; tendría que haber una estación de lectura para cada usuario". Las computadoras en ese momento, como IBM 704, no eran lo suficientemente poderosas para implementar dicho sistema, pero a fines de 1958, el Centro de Cómputo del MIT agregó una entrada de máquina de escribir a su 704 con la intención de que un programador u operador pudiera & #34;obtenga respuestas adicionales de la máquina en tiempo compartido con otros programas que usan la máquina simultáneamente".
En junio de 1959, Christopher Strachey publicó un artículo "Tiempo compartido en grandes computadoras rápidas" en la Conferencia de Procesamiento de la Información de la UNESCO en París, donde imaginó a un programador depurando un programa en una consola (como un teletipo) conectada a la computadora, mientras otro programa se ejecutaba en la computadora al mismo tiempo. La depuración de programas era un problema importante en ese momento, porque con el procesamiento por lotes, a menudo tomaba un día desde que se enviaba un código modificado hasta que se obtenían los resultados. John McCarthy escribió un memorando sobre eso en el MIT, después de lo cual se establecieron un comité de estudio preliminar y un comité de trabajo en el MIT, para desarrollar el tiempo compartido. Los comités consideraron que muchos usuarios usarían la computadora al mismo tiempo, decidieron los detalles de la implementación de dicho sistema en el MIT y comenzaron el desarrollo del sistema.
Sistema Experimental de Tiempo Compartido
Para julio de 1961, algunos comandos de tiempo compartido estaban operativos en el IBM 709 del Centro de Cómputo, y en noviembre de 1961, Fernando J. Corbató demostró en el MIT lo que se denominó Sistema Experimental de Tiempo Compartido . El 3 de mayo de 1962, F. J. Corbató, M. M. Daggett y R. C. Daley publicaron un artículo sobre ese sistema en la Spring Joint Computer Conference. Robert C. Daley, Peter R. Bos y al menos otros 6 programadores implementaron el sistema operativo, en parte basado en Fortran Monitor System.
El sistema usó un IBM 7090, modificado por Herbert M. Teager, con 3 Flexowriters adicionales para consolas de usuario y tal vez un temporizador. Cada uno de los 3 usuarios tenía dos unidades de cinta, una para el directorio de archivos del usuario y otra para volcar el núcleo (programa en la memoria). También había una unidad de cinta para los comandos del sistema, no había unidades de disco. La memoria era de 27 k palabras (palabras de 36 bits) para los usuarios y de 5 k palabras para el supervisor (sistema operativo). La entrada de las consolas se escribía en los búferes del supervisor, mediante interrupciones, y cuando se recibía un carácter de retorno, el control se entregaba al supervisor, que descargaba el código en ejecución en la cinta y decidía qué ejecutar a continuación. Los comandos de consola implementados en ese momento eran login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump and xundump.
Esta se convirtió en la versión inicial del Sistema de Tiempo Compartido Compatible. Aparentemente, esta fue la primera demostración pública de tiempo compartido; hay otras afirmaciones, pero se refieren a sistemas de propósito especial, o sin trabajos conocidos publicados. La "compatibilidad" de CTSS era con trabajos en segundo plano ejecutados en la misma computadora, que generalmente usaba más recursos de cómputo que las funciones de tiempo compartido.
Aplicaciones
DOTSYS y BRAILLEMBOSS
La primera versión del software de traducción braille DOTSYS se ejecutaba en CTSS y podía imprimirse en una impresora de páginas braille BRAILLEMBOSS. DOTSYS en CTSS se demostró por primera vez el 18 de agosto de 1966 como parte de un estudio de viabilidad en el que la cinta del teletipo, en forma de noticias, se convirtió a Braille de grado 2. Al mes siguiente, se demostró con éxito la viabilidad de convertir la información de los libros de texto en la cinta del teletipo a Braille Grado 2 sin errores. Dado que MIT CTSS era un sistema académico, un vehículo de investigación y no un sistema de computación comercial, dos años más tarde se utilizó una versión de DOTSYS despojada de las dependencias de CTSS para la portabilidad del software en un IBM 709 en la American Printing House for the Blind para imprimir el primera edición en braille de un libro producido a partir de la entrada de un teletipo, solo unas pocas semanas después de la versión impresa en tinta. Al año siguiente, en CTSS, se mostró una demostración de impresión de tablas matemáticas en braille. Se escribió un breve programa FORTRAN II para producir una tabla de conversión de pulgadas a milímetros en braille a través de la impresora de páginas braille BRAILLEMBOSS.
Intrex
El sistema de recuperación de Intrex se ejecutó en CTSS. Intrex era un sistema de recuperación y almacenamiento bibliográfico experimental, modelo piloto, orientado a máquina, con una base de datos que almacenaba un catálogo de aproximadamente 15.000 artículos de revistas. Se utilizó para desarrollar y probar conceptos para la automatización de bibliotecas. Una implementación de tres consolas BRISC CRT para realizar pruebas en la Biblioteca de ingeniería del MIT demostró que se prefería a otros dos sistemas, ARDS y DATEL.
Características
- El ELIZA original corrió en CTSS.
- CTSS fue el primer sistema informático para implementar el login de contraseña.
- CTSS tenía una de las primeras utilidades informatizadas de edición y formato de texto, llamadas TYPSET y RUNOFF (los sucesores de MEMO, MODIFY y DITTO).
- CTSS tenía una de las primeras implementaciones de mensajería entre usuarios, correo electrónico pionero.
- CTSS tenía uno de los primeros sistemas de mensajería instantánea similar a escribir.
- El funcionario del MIT Computation Center Louis Pouzin creó para CTSS un comando llamado RUNCOM, que ejecutó una lista de comandos contenidos en un archivo. La RUNCOM también preveía la sustitución del parámetro. Más tarde creó un diseño para la concha Multics que fue implementada por Glenda Schroeder que a su vez inspiró scripts Unix shell.
- CTSS tuvo una implementación del editor de texto QED, el predecesor de ed, vi, y vim, con expresiones regulares agregadas por Ken Thompson.
Implementación
Núcleo
CTSS utilizó una computadora central IBM 7090 modificada que tenía dos bancos de memoria central de 32 768 (32 000) palabras de 36 bits en lugar de la configuración predeterminada que proporciona solo uno. Un banco estaba reservado para el programa de supervisión de tiempo compartido, el otro para los programas de usuario. CTSS tenía un kernel en modo protegido, las funciones del supervisor en el núcleo A (banco de memoria A) solo podían ser llamadas por interrupciones de software, como en los sistemas operativos modernos. Las interrupciones de protección de memoria causantes se utilizaron para interrupciones de software. La programación de la asignación del procesador con una unidad de tiempo cuántica de 200 ms se controló mediante una cola de retroalimentación de varios niveles. También tenía un hardware especial de administración de memoria, una interrupción de reloj y la capacidad de atrapar ciertas instrucciones.
Subrutinas de supervisor
- RDFLXA – Lea una línea de entrada de la consola
- WRFLX – Escribe una línea de salida para consolar
- DEAD – Poner al usuario en estado muerto, sin programa en memoria
- DORMNT – Poner al usuario en estado inactivo, con programa en memoria
- GETMEM – Obtenga el tamaño de la asignación de memoria
- SETMEM – Establecer el tamaño de la asignación de memoria
- TSSFIL – Obtener acceso a los archivos del sistema CTSS en el disco
- USRFIL – Cambiar de nuevo al directorio propio del usuario
- GETBRK – Obtenga el mostrador de ubicación de instrucciones en el momento de dejar de fumar
Lenguajes de programación
CTSS al principio solo tenía un ensamblador, FAP, y un compilador, MAD. Además, el código Fortran II podría traducirse a código MAD utilizando MADTRN. La mitad posterior del sistema se escribió en MAD. Más tarde hubo otros lenguajes de programación, incluidos COMIT II, LISP 1.5 y una versión de ALGOL.
Sistema de archivos
Cada usuario tenía su propio directorio y también había directorios compartidos para grupos de personas con el mismo "número de problema". Cada archivo tenía dos nombres, el segundo indicando su tipo al igual que la extensión en el sistema posterior. Al principio, cada archivo podía tener uno de cuatro modos: temporal, permanente, clase 1 de solo lectura y clase 2 de solo lectura. La clase 1 de solo lectura permitía al usuario cambiar el modo del archivo. Los archivos también podrían vincularse simbólicamente entre directorios. Una lista de directorios por listf:
10 FILES 20 TRACKS USED Nombrar el nombre MODE NO. TRACKS 5/20/63 MAIN MAD P 15 5/17/63 DPFA SYMTB P 1 5/17/63 DPFA BSS P 1 5/17/63 DPFA FAP P 2
Periféricos
El hardware de entrada y salida consistía principalmente en periféricos estándar de IBM. Estos incluían seis canales de datos que se conectaban a:
- Impresoras, lectores de tarjetas perforadas y golpes
- IBM 729 unidades de cinta, un almacenamiento de disco IBM 1301, posteriormente actualizado a un IBM 1302, con 38 millones de capacidad de palabra
- Una memoria de tambor IBM 7320 con palabras 186K que podrían cargar un banco de memoria de 32K en un segundo (más tarde actualizado a 0.25 segundos)
- Dos pantallas gráficas vectoriales de alta velocidad personalizadas
- Una unidad de control de transmisión IBM 7750 capaz de soportar hasta 112 terminales de teleimpresión, incluyendo IBM 1050 Selectrics y Model 35s. Algunas de las terminales estaban ubicadas remotamente, y el sistema podía accederse utilizando las redes públicas Telex y TWX.
Influencias
CTSS se describió en un documento presentado en la Conferencia informática conjunta de primavera de 1962 e influyó en gran medida en el diseño de otros primeros sistemas de tiempo compartido.
Maurice Wilkes fue testigo de CTSS y el diseño del Titan Supervisor se inspiró en eso.
Dennis Ritchie escribió en 1977 que UNIX podría verse como una "implementación moderna" de CTSS. Multics, que también fue desarrollado por Project MAC, se inició en la década de 1960 como sucesor de CTSS y, a su vez, inspiró el desarrollo de Unix en 1969. Uno de los términos técnicos heredados por estos sistemas de CTSS es daemon.
Incompatible Timesharing System (ITS), otro de los primeros, revolucionarios e influyentes sistemas de tiempo compartido del MIT, fue producido por personas que no estaban de acuerdo con la dirección tomada por CTSS y, más tarde, por Multics; el nombre era una parodia de "CTSS", como más tarde el nombre "Unix" era una parodia de "Multics". Los sistemas de archivos CTSS e ITS tienen varios elementos de diseño en común. Ambos tienen un M.F.D. (directorio de archivos maestros) y uno o más U.F.D. (directorios de archivos de usuario). Ninguno de ellos tiene directorios anidados (subdirectorios). Ambos tienen nombres de archivo que consisten en dos nombres que tienen un máximo de seis caracteres. Ambos admiten archivos vinculados.
Contenido relacionado
SRS
Rapira
Píxel empaquetado