Сорок лет назад появились первые компьютерные системы с разделением времени
телетайп model 33, применявшийся в качестве рабочего места пользователя |
Сегодня понятие time sharing чаще всего ассоциируется со специфической формой владения курортной недвижимостью. Многих сегодня удивит, что в 60-е и 70-е годы термин «разделения времени» относился к распределению ресурсов мэйнфреймов и мини-ЭВМ между пользователями. Эта задача была в числе наиболее актуальных научных и инженерных проблем, поскольку компьютеры были чрезвычайно дороги; естественно, хотелось оптимизировать их использование.
Одну из первых реализаций режима разделения времени компьютера обеспечивала система Dartmouth Time-Sharing, продемонстрированная 23 сентября 1964 года Джоном Кемени и Томом Куртцем, более известными как создатели языка Basic. Аппаратно-программная разработка, реализующая разделение времени, являлась совместным детищем Дартмутского колледжа и лаборатории GE Advanced Systems Lab, она базировалась на компьютере GE 265 и обеспечивала работу до 32 пользователей одновременно. По сути, такого отдельно взятого компьютера не существовало: GE 265 представлял собой некий комплекс, состоящий из компьютеров GE Datanet-30 и GE-235. Первый в основном предназначался для управления консолями и поддержки режима разделения времени, а основная работа, такая как компиляция программ и вычисления с плавающей точкой, выполнялась на GE-235; собственно, его время и являлось предметом распределения. Таким образом, Datanet-30 обеспечивал выполнение квантования времени GE-235 между пользователями. Для взаимодействия по управлению между этими двумя компьютерами была создана прямая связь на уровне системы команд, а обмен данными в основном осуществлялся через общий дисковый накопитель. В качестве консолей — рабочих мест пользователей — применялись стандартные телетайпы model 33/35.
Джон Кемени и Том Куртц, создатели языка Бейсик |
Работа начиналась с того, что пользователь представлял себя, вводя команду HELLO, а затем отвечал на несколько коротких вопросов, которыми идентифицировал самого себя и решаемую задачу. Последнее было нужно, чтобы загрузить на диск необходимый набор программ. Имелась и среда разработки, довольно скромная по возможностям, предоставлявшая возможность создавать новые программы. В Dartmouth Time-Sharing (разумеется, в зачаточном виде) появились средства для работы с библиотеками файлов. Авторами предполагалось использование двух языков программирования — Бейсик и Алгол, к ним позже прибавился Фортран, однако все же изначально Dartmouth Time-Sharing была ориентирована на Бейсик и поэтому оказалась наиболее эффективна при выполнении небольших заданий.
Как ни странно, но эта полулюбительская разработка оказала заметное влияние на будущее систем с разделением времени в более широком масштабе. В частности, ее можно рассматривать в качестве предшественника знаменитого проекта MAC (Multiple Access Computers), выполненного в Массачусетском технологическом институте.
Проект MAC был той экспериментальной площадкой, на которой отрабатывались подходы, ставшие основополагающими для современных компьютерных систем. Если бы не было этого проекта, то неизвестно, появился бы или нет Internet в его нынешнем виде, поскольку идея сети вначале родилась как развитие системы разделения времени, сеть ARPAnet создавалась для более эффективного использования вычислительных ресурсов. Кроме того, непосредственным следствием MAC оказалась операционная система с разделением времени Multics, являющаяся праматерью современных операционных систем.
В 1975 году проект был преобразован в Laboratory for Computer Science, в июле 2003 года она слилась с Лабораторией искусственного интеллекта МТИ, известной как AI Lab, образовав MIT Computer Science and Artificial Intelligence Laboratory.