Jessy
JESSY (англ. Job Edit Service SYstem, сервисная система ввода и редактирования заданий) — диалоговая многопользовательская подсистема, которая обеспечивала рабочее место пользователя ЕС ЭВМ. В JESSY были реализованы собственные средства управления памятью, устройствами, файловой системой. Система была разработана в конце 70-х, начале 80-х годов XX века в Вычислительном центре Московского Института Управления на инициативной основе и не имеет каких-либо прототипов. Авторами и разработчиками системы являются Евфимиу Вадим Анатольевич, Шиповалов Алексей Дмитриевич, Болотов Александр Сергеевич. JESSY была реализована в различных версиях ОС ЕС и TKS. Основными проблемами, с которыми столкнулись авторы системы при разработке, были:
- пакетный характер ОС ЕС;
- отсутствие поддержки виртуальной памяти на младших моделях ЕС ЭВМ;
- неудобная, неподходящая для частых корректировок среда хранения исходных текстов документов пользователей (символьные библиотеки);
- ненадёжная работа ЭВМ;
- отсутствие документации по внутреннему устройству ОС ЕС
Пакетный характер ОС ЕС предполагал, что любая программа перед запуском на выполнение должна быть оформлена как задание, т.е. снабжена управляющими операторами языка JCL, определяющими необходимые программе ресурсы (максимальный размер оперативной памяти, наборы данных на дисках, другие устройства). Изменение состава этих ресурсов после начала работы программы было невозможно. Сформированное задание с помощью программы системного ввода (RDR) отправлялось во входную очередь системы. Затем программа инициатор выбирала задание из очереди, проверяла наличие запрашиваемых ресурсов (в том числе делала запрос оператору ЭВМ на установку необходимых съемных носителей информации, если это требовалось). Если все ресурсы были в наличии, то задание начинало выполняться, если нет – выполнение задания отменялось. В процессе выполнения программы результаты её работы записывались во временные наборы данных на дисках, а по её завершении формировался элемент выходной очереди, обслуживаемой программой системного вывода (WTR), которая выводила на устройство печати результаты работы программы. Физически задание, до появления дисплеев представляло собой набор перфокарт. Пользователь сдавал свои задания в вычислительный центр и через некоторое время получал распечатку результатов.
В JESSY пользователь, работающий за терминалом (дисплеем), имел возможность редактировать документы, в том числе и исходные тексты заданий, отправлять их на выполнение и просматривать результаты их работы. Для этого была реализована возможность динамического подключения и освобождения терминалов. Когда очередному пользователю было необходимо поработать за компьютером, для него подключался свободный терминал, а когда он уходил – терминал освобождался.
При подключении очередного терминала в JESSY запускалась очередная подзадача (аналог потока Windows). В рамках этой подзадачи выполнялись все команды пользователя. Младшие модели ЕС ЭВМ не имели поддержки виртуальной памяти, поэтому оперативная память была весьма критичным ресурсом. Необходимо было обеспечить работоспособность системы при подключении произвольного (теоретически) количества терминалов (т.е. подзадач, каждая из которых требовала части оперативной памяти!). Эта задача была с успехом решена, благодаря собственной схеме управления памятью внутри раздела памяти, который выделялся JESSY, внутренним ограничениям на размер и внутреннюю структуру модулей системы, а также среду их хранения и способ вызова. Ещё одной проблемой была среда хранения исходных документов (программ, заданий) пользователей.
Символьные библиотеки, предназначенные для этого, требовали выполнения длительной процедуры сжатия, при корректировках содержащихся в них документов. В JESSY, для решения этой проблнмы, была создана собственная среда хранения исходных документов - так называемый H-файл. С точки зрения операционной системы H-файл был обычным файлом на диске. В случае необходимости дополнительные H-файлы могли быть созданы на любом съемном диске. Документы пользователей назывались текстами. Каждый текст представлял собой двусвязный список блоков, в котором ссылка вперёд при любых корректировках (такими были алгоритмы) всегда оставалась корректной. При зависании системы пользователь мог потерять только результаты последней команды корректировки, которая выполнялась непосредственно в этот момент.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |