stringtranslate.com

IBM CP-40

CP-40 был исследовательским предшественником CP-67 , который, в свою очередь, был частью революционной на тот момент CP[-67]/CMS от IBM — операционной системы с разделением времени виртуальной машины / виртуальной памяти для IBM System/360 Model 67 и родителя семейства VM от IBM . CP-40 запускал несколько экземпляров клиентских операционных систем — в частности, CMS , Cambridge Monitor System , [1] созданных в рамках тех же усилий. Как и CP-67, CP-40 и первая версия CMS были разработаны сотрудниками Cambridge Scientific Center (CSC) IBM в тесном сотрудничестве с исследователями MIT в Project MAC и Lincoln Laboratory . Производственное использование CP-40/CMS началось в январе 1967 года. CP-40 работал на уникальной, специально модифицированной IBM System/360 Model 40 .

Цели проекта

CP-40 была одноразовой исследовательской системой. Ее заявленными целями были:

Однако была и важная неофициальная миссия: продемонстрировать приверженность IBM и ее возможности для поддержки пользователей с разделением времени, таких как MIT. CP-40 (и его преемник) достигли своих целей с технической и социальной точек зрения — они помогли доказать жизнеспособность виртуальных машин, создать культуру пользователей с разделением времени и запустить индустрию удаленных компьютерных услуг. Проект оказался втянутым во внутреннюю политическую войну IBM по поводу разделения времени против пакетной обработки; и он не смог завоевать сердца и умы академического сообщества компьютерных наук, которое в конечном итоге отвернулось от IBM к таким системам, как Multics , UNIX , TENEX и различным операционным системам DEC . В конечном итоге концепции виртуализации, разработанные в проекте CP-40, принесли плоды в различных областях и остаются важными сегодня.

Функции

CP-40 была первой операционной системой, которая реализовала полную виртуализацию, т. е. она предоставляла среду виртуальной машины, поддерживающую все аспекты ее целевой компьютерной системы (S/360-40), так что другие операционные системы S/360 могли быть установлены, протестированы и использованы как на отдельной машине. CP-40 поддерживала четырнадцать одновременных виртуальных машин. Каждая виртуальная машина работала в «проблемном состоянии» — привилегированные инструкции, такие как операции ввода-вывода, вызывали исключения, которые затем перехватывались управляющей программой и моделировались. Аналогично, ссылки на области виртуальной памяти, отсутствующие в основной памяти, вызывают ошибки страниц , которые снова обрабатывались управляющей программой, а не отражались на виртуальной машине. Дополнительные сведения об этой реализации можно найти в CP/CMS (архитектура) .

Базовая архитектура и пользовательский интерфейс CP-40 были перенесены в CP-67/CMS , которая впоследствии стала текущей линейкой продуктов IBM для виртуальных машин.

Аппаратная платформа

Модель 67 не была доступна для построения CP-40, поэтому для CSC было спроектировано и построено специальное устройство виртуальной памяти на основе ассоциативной памяти («CAT box» [2] ). Оно включало как аппаратные, так и микрокодовые изменения в специально модифицированной System/360 Model 40. Эти изменения дали устройству технологию, необходимую для полной виртуализации оборудования System/360. Эта модифицированная Model 40 повлияла на дизайн будущей Model 67, которая была предназначена для удовлетворения потребностей того же сообщества пользователей с разделением времени (в частности, Project MAC MIT и Bell Laboratories – хотя обе эти площадки стали заметными провалами продаж IBM).

В этот период IBM реализовала три различные системы виртуальной памяти:

Все эти системы были разными, но имели семейное сходство. CAT box CP-40 был ключевой вехой. Pugh et al. [3] цитируют статью IEEE [4] об аппаратном обеспечении виртуальной памяти CP-40 и утверждают, что она была «уникальна тем, что включала банк регистров параллельного поиска для ускорения динамической трансляции адресов. На средства, предоставленные Кембриджем, инженеры IBM... построили 64-регистровую ассоциативную память и интегрировали ее в 360/40. Единственный в своем роде результат был отправлен в Кембридж в начале 1966 года».

Хотя поддержка виртуализации была явной целью для модифицированной модели 40 CSC, это, по-видимому, не относилось к оригинальной конструкции модели 67. Тот факт, что возможности виртуализации были в конечном итоге реализованы в -67 и, таким образом, обеспечили успех CP-67/CMS , говорит об упорстве и убедительности команды CSC.

CMS по CP-40

CMS была впервые создана в 1964 году в CSC для работы в качестве «клиентской» операционной системы под управлением CP-40. Руководителем проекта CMS был Джон Хармон. Хотя любая операционная система S/360 могла работать в виртуальной машине CP-40, было решено, что лучше всего для поддержки интерактивных пользователей с разделением времени подойдет новая, простая, однопользовательская интерактивная операционная система. Это позволило бы избежать сложности и накладных расходов на работу многопользовательской системы, такой как CTSS . (Сравните это с OS/MVT-TSO от IBM и ее преемниками — по сути, операционной системой с разделением времени, работающей как одна задача под пакетной операционной системой IBM. С CMS каждый интерактивный пользователь получает частную виртуальную машину.)

К сентябрю 1965 года многие важные решения по проектированию CMS уже были приняты:

Это были радикальные отступления от сложного именования файлов, управления заданиями (через JCL) и других требований «реальных» операционных систем IBM. [5] (Некоторые из этих концепций были целями для операционных систем других поставщиков, таких как Control Data Corporation и DEC .)

Дизайн файловой системы CMS с ее плоской структурой каталогов был намеренно сохранен простым. Кризи отмечает: «Эта структура из нескольких дисков, каждый с одним каталогом, была выбрана, чтобы быть простой, но полезной. Многоуровневые связанные каталоги с файлами, хранящимися в общих областях, были тенденцией дизайна, когда мы начинали. Мы упростили дизайн этого и других компонентов CMS, чтобы уменьшить сложность реализации». [6]

Прикладные программы, работающие под CMS, выполнялись в том же адресном пространстве. Они обращались к системным службам, таким как файловая система CMS, через простой программный интерфейс к ядру CMS , которое находилось в нижней памяти виртуальной машины CMS. Были предоставлены различные системные вызовы, большинство из которых знакомы нынешним программистам CMS. (Поскольку приложения работали в виртуальной машине CMS, они могли потенциально вести себя неправильно, перезаписывая данные CMS, используя привилегированные инструкции или выполняя другие действия, которые могли бы захватить или привести к сбою виртуальной машины. Конечно, это не могло повлиять на другие виртуальные машины, которые все были взаимно изолированы; и это не могло повредить базовую программу управления. В отличие от большинства операционных систем, сбои CP редко возникали из-за ошибок приложений — и, таким образом, сами по себе были относительно редки.)

Исторические заметки

В следующих заметках приводятся краткие цитаты, в основном из Pugh, Varian и Creasy [см. ссылки], иллюстрирующие контекст разработки CP-40. Здесь приведены прямые цитаты, а не парафразы, поскольку точки зрения авторов окрашивают их интерпретации. Также см. History of CP/CMS для получения дополнительного контекста.

  • О решении разделить CMS и CP Кризи пишет: «Внедрение CTSS проиллюстрировало необходимость модульной конструкции для эволюции системы. Несмотря на успех в качестве производственной системы, взаимосвязи и зависимости ее супервизорной конструкции затрудняли расширение и изменение. Ключевой концепцией конструкции CP/CMS было разделение управления компьютерными ресурсами и поддержки пользователей. По сути, интегрированная конструкция [CTSS] была разделена на CP и CMS». Ценность опыта, полученного в проекте CTSS, невозможно переоценить. [17]
  • О ранних CMS Кризи пишет: CMS «предоставляла однопользовательские услуги, не обремененные проблемами совместного использования, распределения и защиты». [18] Ранняя разработка CMS включала загрузку CMS под BPS , ранней системой поддержки S/360, пока CMS не продвинулась достаточно далеко, чтобы загрузиться автономно. В конце концов разработка перешла на виртуальные машины под CP. [19]

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

Ссылки

  1. ^ Control Program-67/Cambridge Monitor System (GH20-0857-1) . IBM. Октябрь 1971 г.
  2. ^ Вариан (1997), стр. 11 («коробка CAT»)
  3. ^ Pugh, Johnson & Palmer (1991), стр. 741 (примечание 218 к гл. 6)
  4. ^ AB Lindquist; RR Seeber; LW Comeau (декабрь 1966 г.). «Система разделения времени с использованием ассоциативной памяти». Труды IEEE . 54 (12): 1774–1779. doi :10.1109/PROC.1966.5261.
  5. ^ Вариан (1997), стр. 14 – новизна интерфейса CMS
  6. ^ Creasy (1981), стр. 489 – плоская файловая система
  7. ^ Вариан (1997), стр. 3, 9, 16 – генезис проекта CP-40
  8. ^ Кризи (1981), стр. 485 – цели дизайна
  9. ^ W. O'Neill, «Опыт использования многопрограммной системы с разделением времени и аппаратным обеспечением динамического перемещения адресов», Proc. AFIPS Computer Conference 30 (Spring Joint Computer Conference, 1967), стр. 611–621 – работа на IBM M44/44X
  10. ^ LW Comeau, «Operating System/360 Paging Studies», симпозиум IBM Storage Hierarchy System, декабрь 1966 г. – критика Atlas, цитируется в Varian (1997), стр. 17.
  11. ^ Creasy (1981), стр. 485 – аналогично, но независимо от IBM M44/44X
  12. ^ Кризи (1981), стр. 486 – стратегия виртуализации: выполнение состояния проблемы, плюс трансляция адресов
  13. ^ Вариан (1997), стр. 9, 13
  14. ^ Комо (1982), стр. 40, 42–43, цитируется в Вариан (1997), стр. 9, 13
  15. Л. Токингтон, «Хорошая идея, которая все еще растет», Информационный бюллетень Центра развития Уайт-Плейнс , том 2, № 3 (март 1969 г.), цитируется в Varian (1997 г.), стр. 10.
  16. ^ Пью, Джонсон и Палмер (1991), стр. 364–365.
  17. ^ Кризи (1981), стр. 485 – разделение CP и CMS
  18. ^ Кризи (1981), стр. 485 – область применения CMS
  19. ^ Вариан (1997), стр. 12, 15–16 – Загрузка CMS под BPS

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

Генеалогическое древо