JESSY ( Eng. Job Edit Service SYstem , sistema de servicio para ingresar y editar trabajos) es un subsistema interactivo multiusuario que proporcionó un lugar de trabajo para el usuario de una computadora ES . JESSY implementó sus propias herramientas para administrar la memoria, los dispositivos y el sistema de archivos. El sistema fue desarrollado a finales de los años 70, principios de los 80 del siglo XX en el Centro de Computación del Instituto de Administración de Moscú por iniciativa y no tiene prototipos. Los autores y desarrolladores del sistema son Evfimiu Vadim Anatolyevich, Shipovalov Alexey Dmitrievich, Bolotov Alexander Sergeevich. JESSY se ha implementado en varias versiones de EU OS y TKS . Los principales problemas que enfrentaron los autores del sistema durante el desarrollo fueron:
La naturaleza por lotes del sistema operativo de la UE asumió que cualquier programa antes de ser lanzado para su ejecución debe enmarcarse como una tarea, es decir, equipado con declaraciones de control de lenguaje JCL que definen los recursos que necesita el programa (tamaño máximo de RAM, conjuntos de datos en discos, otros dispositivos). Cambiar la composición de estos recursos después del inicio del programa fue imposible. El trabajo generado se envió a la cola de entrada del sistema mediante el programa de entrada del sistema ( RDR ). Luego, el programa iniciador seleccionó una tarea de la cola, verificó la disponibilidad de los recursos solicitados (incluida la solicitud al operador de la computadora para instalar los medios de almacenamiento extraíbles necesarios, si es necesario). Si todos los recursos estaban disponibles, la tarea comenzaba a ejecutarse; de lo contrario, la tarea se cancelaba. Durante la ejecución del programa, los resultados de su trabajo se escribieron en conjuntos de datos temporales en discos y, una vez finalizado, se formó un elemento de la cola de salida, atendido por el programa de salida del sistema ( WTR ), que genera los resultados de el programa al dispositivo de impresión. Físicamente, la tarea, antes de la llegada de las pantallas, era un juego de tarjetas perforadas. El usuario entregó sus tareas al centro de cómputo y después de un tiempo recibió una copia impresa de los resultados.
En JESSY, el usuario que trabajaba en la terminal (pantalla) tenía la capacidad de editar documentos, incluidos los textos fuente de las tareas, enviarlos para su ejecución y ver los resultados de su trabajo. Para ello se implementó la posibilidad de conexión y liberación dinámica de terminales. Cuando el siguiente usuario necesitaba trabajar en la computadora, se le conectaba una terminal libre y, cuando se iba, la terminal quedaba libre.
Al conectar el siguiente terminal en JESSY, se inició la siguiente subtarea (análoga al subproceso de Windows ). Dentro de esta subtarea, se ejecutaron todos los comandos del usuario. Los modelos más jóvenes de computadoras EC no tenían soporte para memoria virtual, por lo que la RAM era un recurso muy crítico. Era necesario garantizar la operatividad del sistema al conectar un número arbitrario (teóricamente) de terminales (es decir, subtareas, ¡cada una de las cuales requería una parte de RAM!). Esta tarea se resolvió con éxito, gracias a su propio esquema de gestión de memoria dentro de la sección de memoria asignada por JESSY, restricciones internas sobre el tamaño y la estructura interna de los módulos del sistema, así como su entorno de almacenamiento y método de llamada. Otro problema era el entorno de almacenamiento de los documentos originales (programas, tareas) de los usuarios.
Las bibliotecas de símbolos diseñadas para ello requerían un largo procedimiento de compresión a la hora de actualizar los documentos contenidos en ellas. En JESSY, para resolver este problema, creó su propio medio de almacenamiento para documentos de origen, el llamado archivo H. Desde el punto de vista del sistema operativo, el archivo H era solo un archivo de disco normal. Si es necesario, se pueden crear archivos H adicionales en cualquier unidad extraíble. Los documentos de usuario se llamaban textos. Cada texto era una lista de bloques doblemente enlazada, en la que el enlace hacia adelante siempre permanecía correcto con cualquier ajuste (tales eran los algoritmos). Cuando el sistema colgaba, el usuario solo podía perder los resultados del último comando de ajuste que se estaba ejecutando en ese momento.