Совместимая система разделения времени - Compatible Time-Sharing System

Совместимая система разделения времени (CTSS)
РазработчикВычислительный центр Массачусетского технологического института
Написано вСборка ФАП, СУМАСШЕДШИЙ
Рабочее состояниеСнято с производства, доступен симулятор
Исходная модельОткрытый исходный код
изначальный выпуск1961; 59 лет назад (1961)
Маркетинговая цельТолько MIT
Доступно ванглийский
ПлатформыIBM 7090, IBM 7094
Ядро типМонолитный, защищенный
Дефолт пользовательский интерфейсИнтерфейс командной строки
Лицензия?
Официальный веб-сайтwww.cozx.com/ dpitts/ ibm7090.html
История операционных систем мэйнфреймов IBM

В Совместимая система разделения времени (CTSS) был одним из первых совместное времяпровождение операционные системы; он был разработан в Вычислительный центр Массачусетского технологического института. CTSS был впервые продемонстрирован на MIT IBM 709 в ноябре 1961 г .; обслуживание пользователей MIT началось летом 1963 г. и продолжалось до 1973 г.[1] Часть этого времени влиятельные Проект MAC также работал сервис CTSS, но система не распространилась за пределы этих двух сайтов.

CTSS был описан в статье, представленной на 1962 г. Весенняя совместная компьютерная конференция, и сильно повлиял на дизайн других ранних систем разделения времени.

Экспериментальная система разделения времени

Джон Бэкус сказал на летней сессии 1954 г. Массачусетский технологический институт что «при разделении времени большой компьютер можно использовать как несколько маленьких; для каждого пользователя должна быть станция чтения».[2] Компьютеры в то время вроде IBM 704, не были достаточно мощными, чтобы реализовать такую ​​систему, но в конце 1958 года вычислительный центр Массачусетского технологического института, тем не менее, добавил в свой 704 ввод пишущей машинки с намерением, чтобы программист или оператор могли «получать дополнительные ответы от машины на основе разделения времени. с другими программами, использующими машину одновременно ».[3]

В июне 1959 г. Кристофер Стрейчи опубликовал доклад «Разделение времени в больших быстрых компьютерах» на Конференция ЮНЕСКО по обработке информации в Париже, где он задумал программиста отладка программа на консоли (например, телетайп ), подключенного к компьютеру, когда на компьютере одновременно работала другая программа.[4][5] Отладка программ была важной проблемой в то время, потому что при пакетной обработке часто требовался день от отправки измененного кода до получения результатов. Джон Маккарти написал меморандум об этом в Массачусетском технологическом институте, после чего в Массачусетском технологическом институте были созданы комитет по предварительным исследованиям и рабочий комитет для разработки режима разделения времени. Комитеты предполагали, что многие пользователи будут использовать компьютер одновременно, определили детали внедрения такой системы в Массачусетском технологическом институте и начали разработку системы.

К июлю 1961 г.[6] на вычислительном центре IBM 709 стали работать несколько команд разделения времени, и в ноябре 1961 г. Фернандо Х. Корбато продемонстрировал в Массачусетском технологическом институте то, что было названо «экспериментальной системой разделения времени». 3 мая 1962 г. Ф. Дж. Корбато, М. М. Даггетт и Р. К. Дейли опубликовали статью об этой системе в Весенняя совместная компьютерная конференция.[7] Роберт С. Дейли, Питер Р. Бос и по крайней мере 6 других программистов реализовали операционную систему, частично основанную на системе мониторинга Fortran.

Система использовала IBM 7090, модифицирован Герберт М. Тегер, с добавлением 3 Flexowriters для пользовательских консолей и, возможно, таймер. У каждого из 3-х пользователей было по два магнитофоны, один для файлового каталога пользователя и один для выгрузки ядра (программы в памяти). Также был один ленточный накопитель для системных команд, дисководов не было. В объем памяти было 27 тыс. слов (36-битных слов) для пользователей и 5 тыс. слов для супервизора (операционной системы). Ввод с консолей был записан в буферы супервизора с помощью прерывает, а когда символ возврата был получен, управление было отдано супервизору, который сбрасывал работающий код на ленту и решал, что запускать дальше. Консольные команды, реализованные в то время, были вход, выход, ввод, редактирование, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump и xundump.

Это стало первой версией Совместимой системы разделения времени. Это была первая публичная демонстрация совместное времяпровождение; есть и другие утверждения, но они относятся к системам специального назначения или к не опубликованным известным статьям. «Совместимость» CTSS заключалась в том, что фоновые задания выполнялись на одном компьютере, который обычно использовал больше вычислительных ресурсов, чем функции разделения времени.

Функции

  • В CTSS была одна из первых компьютерных утилит для форматирования текста, называемая СТОК (преемник DITTO).
  • У CTSS была одна из первых реализаций межпользовательского обмена сообщениями, возможно, изобретающая электронное письмо.[8]
  • Сотрудник вычислительного центра Массачусетского технологического института Луи Пузен создал для CTSS команду под названием RUNCOM, который выполнил список команд, содержащихся в файле. (Позже он создал дизайн для Мультики ракушка это было реализовано Гленда Шредер что, в свою очередь, вдохновило Unix сценарии оболочки.) RUNCOM также допускает подстановку параметров.
  • В CTSS был текстовый редактор QED, предшественник ред, vi, и vim, с регулярными выражениями, добавленными Кен Томпсон.
  • CTSS была первой компьютерной системой, реализовавшей вход по паролю.[9][10]

Выполнение

Ядро

CTSS использовал модифицированный IBM 7090 мейнфрейм, на котором было два 32768 (32K) 36-битныхслово банки основная память вместо обычного.[11] Один банк был зарезервирован для программы надзора за разделением времени, другой - для пользовательских программ. В CTSS было ядро ​​защищенного режима, функции супервизора в A-ядре (банк памяти A) могли вызываться только программными прерываниями, как в современных операционных системах. Вызывающие прерывания защиты памяти использовались для программных прерываний.[4] Процессор распределение планирование с квантовой единицей времени 200 мс, управлялся многоуровневая очередь обратной связи.[11] У него также было специальное оборудование для управления памятью, прерывание часов и возможность перехвата определенных инструкций.

Подпрограммы супервизора

  • RDFLXA - читать строку ввода с консоли
  • WRFLX - записывает строку вывода в консоль
  • DEAD - перевод пользователя в мертвый статус, без программы в памяти
  • DORMNT - перевод пользователя в неактивный статус с программой в памяти
  • GETMEM - получить размер выделенной памяти
  • SETMEM - установить размер выделения памяти
  • TSSFIL - получить доступ к системным файлам CTSS на диске
  • USRFIL - вернуться в собственный каталог пользователя
  • GETBRK - Получить счетчик расположения инструкций при выходе

Языки программирования

В CTSS сначала был только ассемблер ФАП и компилятор СУМАСШЕДШИЙ. Также, Фортран II код может быть переведен в MAD-код. Позже половина системы была написана на MAD. Позже появились и другие языки программирования, такие как LISP и версия АЛГОЛ.

Файловая система

У каждого пользователя была своя каталог, а также были каталоги для групп людей, у которых был одинаковый «номер проблемы». Каждый файл имел два имени, второе имя было похоже на расширение сегодня. Сначала каждый файл мог иметь один из четырех режимов: временный, постоянный, доступный только для чтения класс 1 и только для чтения класс 2. Доступный только для чтения класс 2 отличался тем, что пользователь не мог изменять режим этих файлов. Файлы также могут быть связаны из других каталогов, кроме каталога пользователя. Список каталогов от listf:

10 ФАЙЛОВ 20 ТРЕКОВ ИСПОЛЬЗОВАНИЕ ДАТЫ ИМЯ РЕЖИМ № TRACKS5 / 20/63 MAIN MAD P 155/17/63 DPFA SYMTB P 15/17/63 DPFA BSS P 15/17/63 DPFA FAP P 2

Подпрограммы управления дисками

  • .DUMP - Выгрузить непрерывный блок в файл
  • .LOAD - загрузить непрерывный блок из файла
  • .ASIGN - Подготавливает файл к записи
  • .APEND - подготавливает файл к добавлению
  • .SEEK - Подготавливает файл к чтению.
  • .RELRW - Подготавливает файл к чтению и записи.
  • .WRITE - записывать данные в относительное место в файле.
  • .READK - читать данные из относительного места в файле
  • .FILE - Прекратить запись файла
  • .ENDRD - Прекратить чтение файла
  • .DLETE - Удалить файл
  • .RENAM - переименовать файл и изменить его режим
  • .FILDR - Получить копию каталога пользовательских файлов.
  • .FSTAT - получить информацию о файле

Консольные команды

  • login - Вход в систему
  • logout - выйти из системы
  • listf - Список файлов в каталоге
  • input - входной исходный код, строки фиксированного размера
  • edit - редактировать исходный код в стиле BASIC с номерами строк
  • printf - Распечатать файл, начиная с номера строки
  • fap - ассемблер FAP
  • mad - MAD компилятор
  • madtrn - Переводчик Fortran II в MAD
  • load - Загрузить двоичные файлы (связывание в памяти)
  • use - Загрузить недостающие двоичные файлы
  • start - запустить программу, загруженную в память
  • save - Сохранить программу в памяти в файл
  • возобновить - загрузить сохраненную программу и возобновить ее выполнение
  • pm - Получить посмертную информацию о программе в памяти
  • патч - Редактировать память
  • tra - Создать перенос в относительное место в программе
  • stopat - Создать передачу, чтобы остановить программу в определенном месте
  • rename - переименовать файл
  • chmode - изменить режим файла
  • delete - Удалить файл с подстановочными знаками *
  • split - Разделить файл
  • combin - Объединение файлов, а также двоичных файлов, создание библиотек
  • cpu - Получить текущее состояние машины
  • octlk - Печать памяти
  • memo - входные текстовые файлы, строки переменного размера
  • изменить - редактировать текстовые файлы аналогично редактированию
  • то же самое - печатать текстовые файлы с форматированием (сноски, страницы)

Периферийные устройства

Оборудование ввода-вывода было в основном стандартным IBM периферийные устройства. К ним относятся шесть каналов данных, подключенных к:

  • Принтеры, перфокарта читатели и удары
  • IBM 729 ленточные накопители, IBM 1301 дисковое хранилище, позже обновленное до IBM 1302, с объемом 38 миллионов слов
  • An IBM 7320 память барабана с 186К слов, которая может загрузить банк памяти из 32К слов за одну секунду (позже увеличена до 0,25 секунды)
  • Два настраиваемых дисплея с высокоскоростной векторной графикой
  • An IBM 7750 блок управления трансмиссией, способный поддерживать до 112 телетайп терминалы, в том числе IBM 1050 Selectrics и Телетайп Модель 35с. Некоторые из терминалов были расположены удаленно, и доступ к системе можно было получить с помощью общедоступных Телекс и TWX сети.

Влияния

Мультики, который также был разработан Project MAC, был начат в 1960-х годах как преемник CTSS - и, в свою очередь, вдохновил на разработку Unix в 1969 году. Одним из технических терминов, унаследованных этими системами от CTSS, является демон.

Несовместимая система разделения времени (ITS), еще одна ранняя, революционная и влиятельная система разделения времени MIT, была создана людьми, которые не соглашались с направлением, принятым CTSS, а затем Multics; имя было пародия «CTSS», так как впоследствии название «Unix» было пародией на «Multics».[12]

Смотрите также

Рекомендации

  1. ^ Совместимая система с разделением времени (1961-1973): обзор памятной даты пятидесятилетия, Дэвид Уолден и Том Ван Флек (редакторы), IEEE Computer Society, 2011 г.
  2. ^ Бэкус, Джон, Компьютерные передовые методы кодирования В архиве 2018-09-29 в Wayback Machine, MIT 1954, стр. 16-2. Первое известное описание компьютерного разделения времени.
  3. ^ Отчет о проделанной работе № 4 по исследовательской и образовательной деятельности в области машинных вычислений сотрудничающими колледжами Новой Англии, Декабрь 1958 г.,
  4. ^ а б Ф. Дж. Корбато и др., Совместимая система разделения времени Руководство программиста (MIT Press, 1963) ISBN  978-0-262-03008-3. Опишите систему и ее команды
  5. ^ Джон Маккарти, Воспоминания об истории разделения времени В архиве 2007-10-20 на Wayback Machine (Стэнфордский университет, 1983).
  6. ^ Отчет о проделанной работе № 9 по исследовательской и образовательной деятельности в области машинных вычислений сотрудничающими колледжами Новой Англии, Июль 1961 г.
  7. ^ Ф. Дж. Корбато, М. М. Даггетт, Р. К. Дейли, Экспериментальная система разделения времени В архиве 2009-09-06 на Wayback Machine (IFIPS 1962).
  8. ^ Том Ван Влек мемуары История электронной почты
  9. ^ Макмиллан, Роберт (27 января 2012 г.). «Первый в мире компьютерный пароль? Он тоже был бесполезен». Wired журнал. Получено 22 марта 2019.
  10. ^ Хант, Трой (26 июля 2017 г.). «Развитие паролей: руководство по аутентификации в современную эпоху». Получено 22 марта 2019.
  11. ^ а б Зильбершац, Авраам; Петерсон, Джеймс Л. (июнь 1988 г.). «13: Историческая перспектива». Понятия операционной системы. п. 514. ISBN  0-201-18760-4.
  12. ^ Леви, Стивен (2010). «Победители и проигравшие». Хакеры: Герои компьютерной революции - издание к 25-летию (1-е изд.). Севастополь, Калифорния: O'Reilly Media. С. 85–102. ISBN  978-1449388393.

дальнейшее чтение

внешняя ссылка