Совместимая система разделения времени ( CTSS ) была первой операционной системой общего назначения с разделением времени . [2] [3] Совместимое разделение времени относится к разделению времени, совместимому с пакетной обработкой ; он может одновременно предлагать как разделение времени, так и пакетную обработку.
CTSS был разработан в Вычислительном центре Массачусетского технологического института («Комп-центр»). CTSS был впервые продемонстрирован на модифицированном IBM 709 Массачусетского технологического института в ноябре 1961 года. Аппаратное обеспечение было заменено на модифицированный IBM 7090 в 1962 году, а затем на модифицированный IBM 7094, названный «синей машиной», чтобы отличить его от IBM 7094 Project MAC CTSS. Регулярное обслуживание Пользователи MIT Comp Center начались летом 1963 года и действовали там до 1968 года.
Второе развертывание CTSS на отдельном IBM 7094, полученном в октябре 1963 года («красная машина»), использовалось на ранних этапах проекта MAC до 1969 года, когда красная машина была перенесена в Центр обработки информации [4] и работала до июля. 20, 1973. CTSS работал только на этих двух машинах; однако были удаленные пользователи CTSS за пределами Массачусетского технологического института, в том числе в Калифорнии, Южной Америке, Эдинбургском университете и Оксфордском университете . [1] [5]
Джон Бэкус сказал на летней сессии 1954 года в Массачусетском технологическом институте , что «при разделении времени большой компьютер можно использовать как несколько маленьких; для каждого пользователя потребуется станция чтения». [6] Компьютеры того времени, такие как IBM 704 , не были достаточно мощными для реализации такой системы, но в конце 1958 года Вычислительный центр Массачусетского технологического института, тем не менее, добавил к своему 704 ввод для пишущей машинки с намерением, чтобы программист или оператор мог «получить дополнительные ответы от машины в режиме разделения времени с другими программами, одновременно использующими машину». [7]
В июне 1959 года Кристофер Стрейчи опубликовал на конференции ЮНЕСКО по обработке информации в Париже статью «Распределение времени в больших быстрых компьютерах» , в которой он представил, как программист отлаживает программу на консоли (например, телетайпе ), подключенной к компьютеру, в то время как другая программа одновременно работал на компьютере. [8] [9] Отладка программ была важной проблемой в то время, потому что при пакетной обработке часто требовался день от отправки измененного кода до получения результатов. Джон Маккарти написал об этом записку в Массачусетском технологическом институте, после чего в Массачусетском технологическом институте были созданы предварительный учебный комитет и рабочий комитет для развития разделения времени. Комитеты предусмотрели, что компьютер будет использовать множество пользователей одновременно, определили детали внедрения такой системы в Массачусетском технологическом институте и начали ее разработку.
К июлю 1961 года [10] несколько команд разделения времени начали действовать на IBM 709 Вычислительного центра, а в ноябре 1961 года Фернандо Дж. Корбато продемонстрировал в Массачусетском технологическом институте то, что было названо экспериментальной системой разделения времени . 3 мая 1962 года Ф. Дж. Корбато, М. М. Даггетт и Р. К. Дейли опубликовали статью об этой системе на весенней совместной компьютерной конференции . [11] Роберт К. Дейли, Питер Р. Бос и как минимум 6 других программистов реализовали операционную систему, частично основанную на Fortran Monitor System .
В системе использовалась IBM 7090 , модифицированная Гербертом М. Тигером, с добавлением трех флексорайтеров для пользовательских консолей и, возможно, таймера . У каждого из трех пользователей было по два ленточных накопителя : один для каталога файлов пользователя, а другой для дампа ядра (программы в памяти). Для системных команд также был один ленточный накопитель, дисководов не было. Память составляла 27 тыс. слов (36-битные слова) для пользователей и 5 тыс. слов для супервизора (операционной системы). Ввод с консолей записывался в буферы супервизора посредством прерываний , и при получении символа возврата управление передавалось супервизору, который сбрасывал работающий код на ленту и решал, что запускать дальше. В то время были реализованы следующие консольные команды: вход в систему, выход из системы, ввод, редактирование, fap, mad, madtrn, load, use, start,skippm, listf, printf, xdump и xundump . [ нужна цитата ]
Это стало начальной версией совместимой системы разделения времени. Очевидно, это была первая публичная демонстрация разделения времени ; Есть и другие утверждения, но они относятся к системам специального назначения или не имеют известных опубликованных статей. «Совместимость» 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, который имел два банка основной памяти по 32 768 (32 КБ) 36-битных слов вместо конфигурации по умолчанию, которая предоставляет только один. [27] Один банк был зарезервирован для программы управления разделением времени, другой — для пользовательских программ. CTSS имел ядро защищенного режима, функции супервизора в A-ядре (банке памяти A) могли вызываться только программными прерываниями, как в современных операционных системах. Для программных прерываний использовались прерывания защиты памяти. [8] Планирование выделения процессора с тактом времени 200 мс контролировалось многоуровневой очередью обратной связи . [27] Он также имел специальное оборудование для управления памятью, прерывание тактового сигнала и способность перехватывать определенные инструкции.
Сначала CTSS имел только ассемблер FAP и компилятор MAD. Кроме того, код Fortran II можно перевести в код MAD с помощью MADTRN. Позже половина системы была написана на MAD. Позже появились и другие языки программирования, включая COMIT II , LISP 1.5 и версию ALGOL .
У каждого пользователя был свой каталог , а также существовали общие каталоги для групп людей с одним и тем же «номером проблемы». Каждый файл имел два имени, второе указывало его тип, как и расширение в более поздних системах. Сначала каждый файл мог иметь один из четырех режимов: временный, постоянный, класс 1 только для чтения и класс 2 только для чтения. Класс 1 только для чтения позволял пользователю изменять режим файла. Файлы также могут быть символически связаны между каталогами. Листинг каталога с помощью listf :
ИСПОЛЬЗУЕТСЯ 10 ФАЙЛОВ 20 ТРЕКОВДАТА ИМЯ РЕЖИМ НОМЕР. ТРЕКЫ20.05.63 ГЛАВНЫЙ МЭД П 1517.05.63 DPFA SYMTB P 117.05.63 DPFA BSS P 117.05.63 ДПФА ФАП П 2
Аппаратное обеспечение ввода-вывода в основном представляло собой стандартную периферию IBM . В их число входили шесть каналов передачи данных, подключающихся к:
CTSS был описан в документе, представленном на Объединенной компьютерной конференции весной 1962 года , и сильно повлиял на разработку других ранних систем с разделением времени.
Морис Уилкс стал свидетелем CTSS, и это вдохновило его на создание Titan Supervisor . [29] [30]
Деннис Ритчи писал в 1977 году, что UNIX можно рассматривать как «современную реализацию» CTSS. [31] Multics, который также был разработан в рамках проекта MAC, был запущен в 1960-х годах как преемник CTSS и, в свою очередь, вдохновил на разработку Unix в 1969 году. Одним из технических терминов, унаследованных этими системами от CTSS, является daemon .
Несовместимая система разделения времени (ITS), еще одна ранняя, революционная и влиятельная система разделения времени MIT, была создана людьми, несогласными с направлением, выбранным CTSS, а затем и Multics; это название было пародией на «CTSS», как позже название «Unix» было пародией на «Multics». [32] Файловые системы CTSS и ITS имеют ряд общих элементов конструкции. Оба имеют MFD (основной каталог файлов) и один или несколько UFD (каталоги пользовательских файлов). Ни один из них не имеет вложенных каталогов (подкаталогов). Оба имеют имена файлов, состоящие из двух имен длиной не более шести символов. Оба поддерживают связанные файлы. [5]
Я использовал CTSS, первую систему разделения времени.
Большая часть ранних разработок в области разделения времени происходила в университетских кампусах.
8
Яркими примерами являются CTSS (совместимая система разделения времени) в Массачусетском технологическом институте, которая была первой системой разделения времени общего назначения...
В разработке находилась модульная программа для перевода Брайля и автоматического управления режимами ввода и вывода, получившая впоследствии название «DOTSYS»...
Демонстрация CTSS телетайпа Брайля 2-го класса
Эти программы, первоначально написанные для работы с системой CTSS в Массачусетском технологическом институте, были модифицированы для 709 в Американской типографии для слепых. Это потребовало переписывания тех частей программ, которые зависели от CTSS.
С 27 сентября 1971 года БРИСЦ доступен на станции «Инженерная библиотека» два часа в день.
Основная концепция мгновенной отправки сообщений вошедшим в систему пользователям пришла с... CTSS...
Возможности консоли включают в себя аппаратное проецирование трехмерных линейных рисунков, автоматическое отслеживание световым пером и гибкий набор ручек, переключателей и кнопочных входов. Консоль подключается к совместимой с IBM 7094 системе разделения времени Project MAC напрямую или через компьютер PDP-7.
Сэр Морис, как его называют сегодня, был вдохновлен CTSS на создание системы разделения времени.
Морис Уилкс обнаружил CTSS во время визита в Массачусетский технологический институт примерно в 1965 году и вернулся в Кембридж, чтобы убедить всех нас, что разделение времени — это путь вперед.