Совместимая система разделения времени - Compatible Time-Sharing System
Эта статья включает в себя список общих Рекомендации, но он остается в основном непроверенным, потому что ему не хватает соответствующих встроенные цитаты.Май 2019) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчик | Вычислительный центр Массачусетского технологического института |
---|---|
Написано в | Сборка ФАП, СУМАСШЕДШИЙ |
Рабочее состояние | Снято с производства, доступен симулятор |
Исходная модель | Открытый исходный код |
изначальный выпуск | 1961 |
Маркетинговая цель | Только MIT |
Доступно в | английский |
Платформы | IBM 7090, IBM 7094 |
Ядро тип | Монолитный, защищенный |
Дефолт пользовательский интерфейс | Интерфейс командной строки |
Лицензия | ? |
Официальный веб-сайт | www |
История операционных систем мэйнфреймов IBM |
---|
OS / 360 и последователи (1966)
|
|
|
В Совместимая система разделения времени (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]
Смотрите также
Рекомендации
- ^ Совместимая система с разделением времени (1961-1973): обзор памятной даты пятидесятилетия, Дэвид Уолден и Том Ван Флек (редакторы), IEEE Computer Society, 2011 г.
- ^ Бэкус, Джон, Компьютерные передовые методы кодирования В архиве 2018-09-29 в Wayback Machine, MIT 1954, стр. 16-2. Первое известное описание компьютерного разделения времени.
- ^ Отчет о проделанной работе № 4 по исследовательской и образовательной деятельности в области машинных вычислений сотрудничающими колледжами Новой Англии, Декабрь 1958 г.,
- ^ а б Ф. Дж. Корбато и др., Совместимая система разделения времени Руководство программиста (MIT Press, 1963) ISBN 978-0-262-03008-3. Опишите систему и ее команды
- ^ Джон Маккарти, Воспоминания об истории разделения времени В архиве 2007-10-20 на Wayback Machine (Стэнфордский университет, 1983).
- ^ Отчет о проделанной работе № 9 по исследовательской и образовательной деятельности в области машинных вычислений сотрудничающими колледжами Новой Англии, Июль 1961 г.
- ^ Ф. Дж. Корбато, М. М. Даггетт, Р. К. Дейли, Экспериментальная система разделения времени В архиве 2009-09-06 на Wayback Machine (IFIPS 1962).
- ^ Том Ван Влек мемуары История электронной почты
- ^ Макмиллан, Роберт (27 января 2012 г.). «Первый в мире компьютерный пароль? Он тоже был бесполезен». Wired журнал. Получено 22 марта 2019.
- ^ Хант, Трой (26 июля 2017 г.). «Развитие паролей: руководство по аутентификации в современную эпоху». Получено 22 марта 2019.
- ^ а б Зильбершац, Авраам; Петерсон, Джеймс Л. (июнь 1988 г.). «13: Историческая перспектива». Понятия операционной системы. п. 514. ISBN 0-201-18760-4.
- ^ Леви, Стивен (2010). «Победители и проигравшие». Хакеры: Герои компьютерной революции - издание к 25-летию (1-е изд.). Севастополь, Калифорния: O'Reilly Media. С. 85–102. ISBN 978-1449388393.
дальнейшее чтение
- Фано, Роберт М. (1964). «Система MAC: отчет о проделанной работе» (PDF). BitSavers.Informatik.Uni-Stuttgart.de. MIT Project MAC.
- Зальцер, Джером Х. (1965). "Технические примечания CTSS" (PDF). BitSavers.Informatik.Uni-Stuttgart.de. MIT Project MAC.
- Зальцер, Джером Х. (1964). «Набор и редактирование рукописей». Web.MIT.edu. Вычислительный центр Массачусетского технологического института.
внешняя ссылка
- Экспериментальная система разделения времени, Фернандо Дж. Корбато, Марджори Мервин Даггетт, Роберт С. Дейли, вычислительный центр, Массачусетский технологический институт, Кембридж, Массачусетс
- Совместимая система с разделением времени (1961-1973): обзор памятной даты пятидесятилетия
- Устное историческое интервью с Джоном Маккарти, Институт Чарльза Бэббиджа, Университет Миннесоты. Обсуждает компьютерные разработки в MIT, включая разделение времени.
- IBM 7094 и CTSS: личные воспоминания Том Ван Влек, системный программист на CTSS
- Происхождение раковины описывает эволюцию RUNCOM в современную оболочку
- Источник CTSS в коллекции Пола Пирса.
- ИТ-директор: 40 лет Multics, 1969-2009 гг.: Интервью с разработчиком CTSS и Multics Фернандо Дж. Корбато.
- Устное историческое интервью с Фернандо Х. Корбато, Институт Чарльза Бэббиджа, Университет Миннесоты. Обсуждает многие компьютерные разработки в MIT, включая CTSS.
- Устное историческое интервью с Робертом М. Фано, Институт Чарльза Бэббиджа, Университет Миннесоты. Обсуждает компьютерные разработки в MIT, включая CTSS.
- Служба поддержки IBM 7094 Дэйва Питтса - Включает симулятор, кросс-ассемблер и компоновщик, которые можно использовать для сборки и запуска CTSS. Сайт также содержит исходный код CTSS. CTSS полностью работает на симуляторе.