Совместимая система разделения времени ( CTSS ) была первой универсальной операционной системой с разделением времени . [2] [3] Совместимая система разделения времени относилась к разделению времени, которое было совместимо с пакетной обработкой ; она могла предлагать как разделение времени, так и пакетную обработку одновременно.
CTSS был разработан в Вычислительном центре Массачусетского технологического института («Comp Center»). CTSS был впервые продемонстрирован на модифицированном IBM 709 в Массачусетском технологическом институте в ноябре 1961 года. Аппаратное обеспечение было заменено на модифицированный IBM 7090 в 1962 году, а позднее на модифицированный IBM 7094, названный «синей машиной», чтобы отличать его от IBM 7094 проекта MAC CTSS. Плановое обслуживание пользователей Comp Center Массачусетского технологического института началось летом 1963 года и продолжалось до 1968 года.
Второе развертывание CTSS на отдельной IBM 7094, которая была получена в октябре 1963 года («красная машина»), использовалось на раннем этапе проекта MAC до 1969 года, когда красная машина была перемещена в Центр обработки информации [4] и проработала до 20 июля 1973 года. CTSS работала только на этих двух машинах; однако были удаленные пользователи CTSS за пределами MIT, в том числе в Калифорнии, Южной Америке, Эдинбургском университете и Оксфордском университете . [1] [5]
Джон Бэкус сказал на летней сессии 1954 года в Массачусетском технологическом институте , что «Благодаря разделению времени большой компьютер может использоваться как несколько маленьких; для каждого пользователя должна быть своя считывающая станция». [6] Компьютеры того времени, такие как IBM 704 , не были достаточно мощными для внедрения такой системы, но в конце 1958 года Вычислительный центр Массачусетского технологического института все же добавил к своему 704 вход для пишущей машинки с намерением, чтобы программист или оператор мог «получать дополнительные ответы от машины на основе разделения времени с другими программами, использующими машину одновременно». [7]
В июне 1959 года Кристофер Стрейчи опубликовал статью «Разделение времени в больших быстрых компьютерах» на конференции ЮНЕСКО по обработке информации в Париже, где он представил программиста, отлаживающего программу на консоли (например, телетайпе ), подключенной к компьютеру, в то время как другая программа работала на компьютере в то же время. [8] [9] Отладка программ была важной проблемой в то время, потому что при пакетной обработке часто требовался день от отправки измененного кода до получения результатов. Джон Маккарти написал меморандум об этом в MIT, после чего в MIT были созданы предварительный исследовательский комитет и рабочий комитет для разработки разделения времени. Комитеты предусмотрели, что многие пользователи будут использовать компьютер одновременно, определили детали внедрения такой системы в MIT и начали разработку системы.
К июлю 1961 года [10] несколько команд разделения времени стали работать на IBM 709 Вычислительного центра, а в ноябре 1961 года Фернандо Дж. Корбато продемонстрировал в Массачусетском технологическом институте то, что называлось Экспериментальной системой разделения времени . 3 мая 1962 года Ф. Дж. Корбато, М. М. Даггетт и Р. К. Дейли опубликовали статью об этой системе на Весенней совместной компьютерной конференции . [11] Роберт К. Дейли, Питер Р. Бос и по меньшей мере 6 других программистов реализовали операционную систему, частично основанную на Fortran Monitor System .
Система использовала IBM 7090 , модифицированную Гербертом М. Тигером, с добавленными 3 Flexowriters для пользовательских консолей и, возможно, таймером . У каждого из 3 пользователей было два ленточных устройства , одно для каталога файлов пользователя и одно для дампа ядра (программы в памяти). Также было одно ленточное устройство для системных команд, дисководов не было. Память составляла 27 тыс. слов (36-битных слов) для пользователей и 5 тыс. слов для супервизора (операционной системы). Ввод с консолей записывался в буферы супервизора с помощью прерываний , и когда получался символ возврата , управление передавалось супервизору, который сбрасывал работающий код на ленту и решал, что запускать дальше. Консольные команды, реализованные в то время, были login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump и xundump . [ необходима цитата ]
Это стало начальной версией Compatible Time-Sharing System. Это была, по-видимому, первая публичная демонстрация разделения времени ; есть и другие заявления, но они относятся к системам специального назначения или к тем, на которые не было опубликовано никаких известных статей. «Совместимость» CTSS была связана с фоновыми заданиями, запущенными на том же компьютере, которые обычно использовали больше вычислительных ресурсов, чем функции разделения времени.
Первая версия программного обеспечения для перевода шрифта Брайля DOTSYS работала на CTSS и могла выводить данные на принтер брайлевских страниц BRAILLEMBOSS. [12] [13] DOTSYS на CTSS была впервые продемонстрирована 18 августа 1966 года в рамках технико-экономического обоснования, в рамках которого лента телетайпа в форме новостей была преобразована в шрифт Брайля 2-го класса. В следующем месяце была успешно продемонстрирована возможность преобразования информации учебника на ленте телетайпа в безошибочный шрифт Брайля 2-го класса. [14] Поскольку MIT CTSS была академической системой, исследовательским средством, а не системой для коммерческих вычислений, два года спустя версия DOTSYS, лишенная зависимостей CTSS для переносимости программного обеспечения, использовалась на IBM 709 в Американской типографии для слепых для печати первого издания книги шрифтом Брайля, полученного с ввода с телетайпа, всего через несколько недель после версии с чернильной печатью. [15] В следующем году на CTSS была показана демонстрация печати математических таблиц шрифтом Брайля. Была написана короткая программа на FORTRAN II для создания таблицы преобразования из дюймов в миллиметры шрифтом Брайля с помощью принтера страниц Брайля BRAILLEMBOSS. [16]
Система поиска Intrex работала на CTSS. Intrex была экспериментальной, пилотной моделью машинно-ориентированной библиографической системы хранения и поиска с базой данных, в которой хранился каталог примерно из 15 000 журнальных статей. Она использовалась для разработки и тестирования концепций автоматизации библиотек. [17] [18] [19] Развертывание трех консолей BRISC CRT для тестирования в Инженерной библиотеке Массачусетского технологического института показало, что она предпочтительнее двух других систем, ARDS и DATEL. [20]
CTSS использовал модифицированный мэйнфрейм IBM 7090 [27] , который имел два банка памяти ядра по 32 768 (32 КБ) 36-битных слов вместо конфигурации по умолчанию, которая предусматривает только один. [28] [29] Один банк был зарезервирован для программы супервизора с разделением времени, другой — для пользовательских программ. CTSS имел ядро защищенного режима; функции супервизора в ядре A (банк памяти A) могли быть вызваны только программными прерываниями, как в современных операционных системах. Для программных прерываний использовались прерывания защиты памяти. [8] Планирование распределения процессора с квантовым временным блоком 200 мс контролировалось многоуровневой очередью обратной связи . [28] Он также имел некоторое специальное оборудование управления памятью, [30] прерывание часов, [31] и возможность перехвата определенных инструкций. [30]
Сначала в CTSS был только ассемблер FAP и компилятор MAD. Кроме того, код Fortran II можно было перевести в код MAD с помощью MADTRN. Позже половина системы была написана на MAD. Позже появились и другие языки программирования, включая COMIT II , LISP 1.5 и версию ALGOL .
У каждого пользователя был свой собственный каталог , а также были общие каталоги для групп людей с одинаковым «номером проблемы». У каждого файла было два имени, второе из которых указывало его тип, как и расширение в более поздней системе. Сначала каждый файл мог иметь один из четырех режимов: временный, постоянный, класс 1 «только для чтения» и класс 2 «только для чтения». Класс 1 «только для чтения» позволял пользователю изменять режим файла. Файлы также могли быть символически связаны между каталогами. Список каталогов по listf :
10 ФАЙЛОВ 20 ИСПОЛЬЗОВАННЫХ ТРЕКОВДАТА ИМЯ РЕЖИМ КОЛИЧЕСТВО ТРЕКОВ5/20/63 ГЛАВНЫЙ MAD P 155/17/63 DPFA СИМВОЛ P 15/17/63 DPFA BSS P 15/17/63 DPFA FAP P 2
Аппаратные средства ввода-вывода в основном представляли собой стандартные периферийные устройства IBM . Они включали шесть каналов данных, подключаемых к:
Система CTSS была описана в докладе, представленном на Весенней объединенной компьютерной конференции 1962 года , и оказала большое влияние на разработку других ранних систем с разделением времени.
Морис Уилкс был свидетелем CTSS, и дизайн Titan Supervisor был вдохновлен этим событием. [33] [34]
Деннис Ритчи писал в 1977 году, что UNIX можно рассматривать как «современную реализацию» CTSS. [35] Multics, который также был разработан Project MAC, был начат в 1960-х годах как преемник CTSS – и, в свою очередь, вдохновил разработку Unix в 1969 году. Одним из технических терминов, унаследованных этими системами от CTSS, является daemon .
Incompatible Timesharing System (ITS), еще одна ранняя, революционная и влиятельная система разделения времени MIT, была создана людьми, которые не соглашались с направлением, принятым CTSS, а позже и Multics; название было пародией на «CTSS», как позже название «Unix» было пародией на «Multics». [36] Файловые системы CTSS и ITS имеют ряд общих элементов дизайна. Обе имеют MFD (главный файловый каталог) и один или несколько UFD (пользовательских файловых каталогов). Ни одна из них не имеет вложенных каталогов (подкаталогов). Обе имеют имена файлов, состоящие из двух имен, длина которых не превышает шести символов. Обе поддерживают связанные файлы. [5]
Я использовал CTSS, первую систему с разделением времени
Большая часть ранних разработок в области разделения времени происходила в университетских кампусах.
8
Яркими примерами являются CTSS (Compatible Time-Sharing System) в Массачусетском технологическом институте, которая была первой универсальной системой разделения времени...
программа для перевода шрифта Брайля и автоматического управления режимами ввода и вывода, впоследствии названная «DOTSYS», находилась в стадии разработки...
Демонстрация на CTSS телетайпного набора для брайлевского шрифта 2-го класса
Эти программы, изначально написанные для работы в системе CTSS в Массачусетском технологическом институте, были модифицированы для 709 в Американской типографии для слепых. Это включало переписывание тех частей программ, которые зависели от CTSS.
С 27 сентября 1971 г. BRISC доступен на станции Инженерной библиотеки по два часа в день.
Основная концепция мгновенной отправки сообщений вошедшим в систему пользователям пришла с ... CTSS ...
консоли включают аппаратную проекцию трехмерных линейных рисунков, автоматическое отслеживание светового пера и гибкий набор входов ручек, переключателей и кнопок. Консоль подключается к совместимой с Project MAC IBM 7094 системе разделения времени либо напрямую, либо через компьютер PDP-7.
, как его сегодня называют, был вдохновлен CTSS на создание системы разделения времени
Морис Уилкс открыл для себя CTSS во время визита в Массачусетский технологический институт примерно в 1965 году и вернулся в Кембридж, чтобы убедить остальных из нас, что разделение времени — это путь вперед.