CP/CMS (Control Program/Cambridge Monitor System)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 23:55, 10 марта 2017.
CP/CMS
Разработчик IBM Cambridge Scientific Center
Линейка ОС VM
Состояние разработки Historic
Исходный код Исходный код
Дата первого релиза Май 1968
Последний релиз 3.2 / 1972
Платформы IBM System/360-67, System/370
По умолчанию
пользовательский
интерфейс
Интерфейс командной строки
Лицензия IBM Type-III Library (свободно в форме исходного кода бесплатно для клиентов IBM, без поддержки)

CP/CMS (англ. Control Program/Cambridge Monitor System) - операционная система с разделением времени конца 60-х - начала 70-х гг., известная своей отличной производительностью и расширенными возможностями. У неё было три различных версии:

  • CP-40/CMS, важная исследовательская "одноразовая" система, которая устанавливала архитектуру виртуальной машины CP/CMS.
  • CP-67/CMS, являвшаяся переопределением CP-40/CMS для IBM System/360-67.
  • CP-370/CMS, являющаяся переопределением CP-67/CMS для System/370 никогда не выпускалась, но стала основой для операционной системы VM/370 IBM, анонсированной в 1972 году.

Каждое переопределение было значительным переконструированием своего предшественника и эволюционным шагом вперед. CP-67/CMS была первой широко доступной архитектурой виртуальной машины. IBM впервые предложила эту идею совместно с исследовательскими системами M44/44X (которая использовала частичную виртуализацию) и CP-40 (которая использовала полную виртуализацию).
В добавлении к роли предшественника семейства операционных систем VM CP/CMS играла важную роль в развитии теории операционных систем, разработке System/370 от IBM, изучении разделения времени и создании поддерживающего себя самостоятельно сообщества пользователей, которое предсказало сегодняшнее движение за свободное программное обеспечение.

Обзор

CP/CMS была построена Кембриджским научным центром IBM (CSC) в научных исследованиях и разработках лаборатории вместе с MIT под руководством Роберта Кризи. Цели системы, процесс разработки, выпуск и наследие революционной технологии было установить эту систему отдельно от других операционных систем своего времени и от других крупных проектов IBM. Это была система с открытым исходным кодом, доступная в виде исходного кода для всех клиентов IBM на безвозмездной основе - в рамках неподдерживаемой IBM Type-III Library. CP/CMS пользователи поддержали себя и друг друга. Необычные обстоятельства, описанные в истории разделе ниже, привели к этой ситуации. CP / CMS состояла из двух основных компонентов:

  • CP, программа управления, среда виртуальной машины. Широко используемая версия была CP-67, установлена на S/360-67 . (Исследовательская система CP-40 установила архитектуру. Третья версия, CP-370, стал VM/370 .) Вместо явного разделения памяти и других ресурсов между пользователями, что было традиционным подходом, СР предоставляло каждому пользователю моделируемой автономной System/360 компьютер. Каждая система, способная выполнить любую S/360 программного обеспечения, которая работала на голой машине и фактически дала каждому пользователю личную компьютерную систему.
  • CMS, система Cambridge мониторов (а также консоли Monitor System), была легкой однопользовательской операционной системой для интерактивного использования с разделением времени. При выполнении многих копий CMS в виртуальных машинах компартий - вместо нескольких копий больших, традиционных многозадачных ОС - накладные расходы на одного пользователя были меньше. Это позволило большему количеству пользователей одновременно совместно использовать один S/360.

Концепция CP/CMS виртуальной машины стала важным шагом вперед в области разработки операционной системы.

  • Отделив пользователей друг от друга, CP/CMS значительно улучшила надежность и безопасность системы.
  • Моделируя полный, автономный компьютер для каждого пользователя, на CP/CMS могло работать любое программное обеспечение S/360 в среде разделения времени, а не только приложения, специально предназначенные для разделения времени.
  • Используя легкий CMS в качестве основного пользовательского интерфейса, CP/CMS достигла беспрецедентную производительность разделения времени. Кроме того, простота CMS сделала реализацию интерфейсов пользователя легче, чем в традиционной ОС.

IBM переписала CP/CMS в качестве линейки продуктов VM/370, выпущенной в 1972 году, когда виртуальная память была добавлена ​​к S/370 серии. Наследники VM/370 (например, z/VM ) и сегодня остаются в широком использовании.
Важно отметить, что IBM переопределил CP-67, как это было с CP-40, а не просто переименовал и упаковал его. VM сосуществовали с CP/CMS и его наследниками в течение многих лет. Таким образом целесообразно рассматривать CP/CMS в качестве самостоятельной ОС, отличной от семейства VM.
CP/CMS рассматривалась как "операционная система, отличная от IBM", отдалённая от рекомендованных пакетных предложений, ориентированных на IBM. До недавнего времени VM сохранял эту роль. Но CP/CMS поднялась выше ограниченных ресурсов и политики компании, чтобы создать прочное и важное техническое наследие, лояльную базу пользователей, основные производные системы в режиме разделения времени промышленности, и, в конечном счете, наследие как прародителя крупных продуктов IBM 21 века.

CP/CMS как свободное ПО

CP/CMS была распространена в форме исходного кода, и многие пользователи CP/CMS принимали активное участие в изучении и модификации этого исходного кода. Такое участие прямого пользователя операционной системы было необычным. В эру CP/CMS многие производили распределенные операционные системы в машиночитаемом исходном коде. Многие пользователи CP/CMS сделали обширные изменения в свои собственные копии исходного кода. Большая часть этой работы была разделена между сайтами и важные изменения нашли свой путь обратно в основной системе. Другие пользователи, такие как National CSS и некоторые научные сайты, продолжали самостоятельное развитие CP/CMS, а не перешли на VM/370, когда она стала доступна. Эти усилия расходились от сообщества, в том, что сегодня было бы назвать форком ПО.

История

Фундаментальный архитектурные и стратегические параметры CP/CMS были установлены в СР-40, которую стали использовать в Кембриджском научном центре IBM в начале 1967г. Эти происходило в сложной политической и технической обстановке. В двух словах:

  • В начале 60-х годов, IBM стремилась сохранить господство в сфере научных вычислений, где усилия были сфокусированы на разделение времени, на такие разработки Массачусетского технологического института как CTSS и MAC Project. Но IBM взяла на себя обязательства по крупному проекту System/360, который повёл компанию в другом направлении.
  • Сообщество за разделение времени было разочаровано S/360 в отсутствие возможности разделения времени. Это привело к потерям ключевых продаж IBM в Project MAC и Bell Laboratories. IBM Cambridge Scientific Center (CSC), изначально созданная для поддержки проекта MAC, начал усилия, чтобы восстановить доверие к IBM в области разделения времени путем создания операционной системы разделения времени для S/360. Эта система в конечном счете станет CP/CMS. В том же духе, IBM разработала и выпустила S/360 с функциями разделения времени в IBM System/360-67, а также операционную систему разделения времени TSS/360. TSS не удалось; но 360-67 и CP/CMS удалось, несмотря на внутренние политические баталии в течение долгого времени обмена, а также согласованные усилия на IBM , чтобы отказаться от усилий CP/CMS.
  • В 1967 году началось производство CP/CMS, в первую очередь на CP-40, а потом на CP-67 в лаборатории Линкольна и других сайтах. Он стал доступным через Type-III библиотеки IBM в 1968 г. К 1972 году CP/CMS прошла несколько релизов; это была надежная, стабильная система, работавшая на 44 системах; она могла поддержать более 60 пользователей S/360-67 при разделении времени. По крайней мере два коммерческих поставщика разделения времени (National CSS и IDC) перепродавали время S/360-67 с использованием технологии CP/CMS.
  • В 1972 году IBM объявила о добавлении виртуальной памяти в серии S/370, вместе с операционной системой VM/370, переопределением CP/CMS для S/370. Это положило конец CP/CMS, хотя система продолжала свое самостоятельное существование в течение некоторого времени. VM-релизы в течение некоторого времени по- прежнему включали в себя исходный код, и члены VM-сообщества долгое время оставались активными участниками.

Архитектура

Архитектура CP/CMS была революционной для своего времени. Система состояла из программы управления виртуализации (CP), которая создавала несколько независимых виртуальных машин (VM). Виртуализация платформы стала возможным благодаря двум элементам IBM System/360-67 :

  • Сегрегация привилегированных инструкций «состояние супервизора» от обычных инструкций "проблема состояния".
  • Аппаратное обеспечение с адресным переводом

Когда программа работает в режиме «проблемное состояние», используя привилегированную команду или неверный адрес памяти, вызовется состояние аппаратного исключения. Путем захвата этих условий, CP может имитировать соответствующее поведение, например, выполняет операции ввода/вывода или подкачки операций. Гостевая операционная система, которая будет работать в "состоянии супервизора " на голой машине, будет запущена в режиме «проблемное состояние» под CP. В результате получилась полностью виртуальная среда. Каждая виртуальная машина имеет свой собственный набор виртуальных устройств, переведенный из реальной аппаратной среды системы.
Следует отметить, что некоторые моделезависимые и диагностические инструкции в СР-67 не были виртуализированы, в частности инструкции DIAG. В конечном счете, в дальнейшем развитии в IBM и в других местах, были использованы DIAG инструкции для создания невиртуализованного интерфейса(гипервизора). Клиентские операционные системы могут использовать этот механизм для непосредственного обмена данными с программой управления. Этот факт дал значительный прирост производительности.
Любая операционная система S/360 может фактически работать под CP, но обычные пользователи используют систему Cambridge Monitor (CMS), простую однопользовательскую операционную систему. CMS позволяет пользователям запускать программы и управлять их виртуальными устройствами. CP-67 версии 1 и 2 не поддерживает виртуальную память внутри виртуальной машины. Она была добавлена ​​в версии 3. На этом этапе тестирования и развития самой CP было возможно , запустив полную копию CP/CMS внутри одной виртуальной машины. Некоторые операционные системы CP/CMS, такие как разработки CP-370 и тестирование MVS, работают на стеках четырех- или пятиуровневой глубины аппаратных и операционных систем моделирования.
Создание CP/CMS представляет собой отход от других IBM в монолитных операционных системах . В CP/CMS отделены сложные проблемы"большой системы" (диспетчирование, аппаратного управления, запоминающих устройств большой емкости и т.д.) от возможностей "малой системы", необходимых для одного пользователя (исполнения прикладной программы, файл ввода/вывода, консоль ввода/вывода и т.д.). Каждый компонент в результате становился проще. Изолирование пользователей друг от друга улучшило стабильность системы, так как ошибка в программном обеспечении одного пользователя не могла привести к аварии CMS другого пользователя. Эта архитектура в конечном счете достигнет своего апофеоза в микроядерных операционных системах.
Решение от IBM для реализации виртуализации и виртуальной памяти функции в последующих конструкциях S/370 (хотя отсутствует в исходной серии S/370) отражает, по крайней мере частично, успех подхода CP/CMS. В свою очередь, выживание и успех операционной системы семейства IBM, VM и технологии виртуализации в целом, во многом обязаны к S/360-67.
Во многих отношениях, CP-67 и CP/CMS предвосхитили появление (и в значительной степени повлияли на них) современного программного обеспечения для виртуализации , таких как VMware Workstation, Xen и Windows Virtual PC .

Структура файловой системы

Рис. 1. Структура файловой системы

Подход заключался в присвоении каждому носителю с файловой системой литеры от A до Z, которая приписывалась к началу путевого имени файла и использовалась для определения файловой системы, к которой данный файл относится. На ранних этапах данная модель применялась для файловых систем без иерархической организации файлов с помощью директорий, и так как количество файлов во всей системе редко превышало несколько сотен, разбиение всего файлового пространства на 26 литер позволяло организовать эффективную работу с носителями. Развиваясь, данный подход получил своё применение в таких операционных системах, как MSDOS/Windows, Symbian OS, OS/2 и Atari TOS.

Структура виртуальной памяти

Структура виртуальной памяти в CMS также очень проста. Нижнюю часть виртуального АП занимают структуры ядра CMS, создаваемые для каждой ВМ. Выше расположено частное адресное пространство программы, выполняющейся в CMS. Верхнюю часть АП занимают объекты, совместно используемые в режиме чтения: общая для всех ВМ часть структур и кодов CMS, система подсказки и т.п.

Структура реальной памяти

Каждое реальное дисковое устройство разделяется на несколько областей. Среди таких областей - область системных данных, вторичная память страничного обмена, область спулинга и области минидисков - постоянных и временных. Для обеспечения ВМ внешней памятью CP использует разделение дискового пространства. Каждая ВМ получает в свое распоряжение несколько минидисков. С точки зрения ВМ минидиск выглядит как реальное дисковое устройство с собственным физическим адресом. На самом же деле минидиск - это лишь часть дисковой памяти, выделенная для ВМ в области минидисков на реальном диковом накопителе. Описание минидисков, принадлежащих ВМ (адрес на реальном диске и размер), хранится в каталоге CP. Минидиски могут быть доступными только для чтения или для чтения/записи и использоваться в монопольном или совместном режиме. Обычно каждой ВМ назначается один или несколько минидисков для монопольного использования в режиме чтения/записи, а также разрешается доступ к нескольким минидискам, совместно используемым в режиме чтения (содержащим, например, системные утилиты, средства разработки и т.п.). Наряду с этим, ВМ может получать доступ к минидискам других ВМ - при соответствующей авторизации. Если минидиск разделяется двумя или более ВМ в режиме чтения/записи, то требуются специальные средства для предотвращения конфликтов и потери данных. Наряду с постоянно назначенными для ВМ минидисками, для ВМ могут создаваться и временные минидиски (создаваемые в области временных минидисков на реальном накопителе), и временные виртуальные минидиски (моделируемые буферами в памяти).

Ссылки