IBM CP-40
Разработчик | IBM Кембриджский научный центр (CSC) |
---|---|
Семейство ОС | КП/CMS |
Рабочее состояние | Исторический |
Первоначальный выпуск | январь 1967 года |
Маркетинговая цель | IBM Мэйнфреймы |
Доступно в | Английский |
Платформы | Уникальная, специально модифицированная IBM System/360 Model 40. |
По умолчанию пользовательский интерфейс | Интерфейс командной строки |
Лицензия | Собственный |
Преемник | СР-67 |
История операционных систем для мэйнфреймов IBM |
---|
CP-40 был исследовательским предшественником CP-67 , который, в свою очередь, был частью революционной на тот момент CP[-67]/CMS от IBM — виртуальной машины / виртуальной памяти с разделением времени операционной системы для IBM System/360 Model 67 . и родитель семейства IBM VM . На CP-40 работало несколько экземпляров клиентских операционных систем, в частности CMS , Cambridge Monitor System , [1] построен в рамках тех же усилий. Как и CP-67, CP-40 и первая версия CMS были разработаны сотрудниками Кембриджского научного центра IBM (CSC) в тесном сотрудничестве с исследователями Массачусетского технологического института в Project MAC и Лаборатории Линкольна . Производство CP-40/CMS началось в январе 1967 года. CP-40 работал на уникальной, специально модифицированной IBM System/360 Model 40 .
Цели проекта [ править ]
CP-40 представлял собой одноразовую исследовательскую систему. Его заявленными целями были:
- Предоставить исследовательский вклад команде System/360 Model 67, работающей в Покипси, которая открыла новые горизонты с помощью еще не доказанной концепции виртуальной памяти.
- Поддержка требований CSC по разделению времени в Кембридже.
Однако существовала и важная неофициальная миссия: продемонстрировать приверженность 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 VM.
Аппаратная платформа [ править ]
Модель 67 не была доступна для сборки CP-40, поэтому было создано специальное устройство виртуальной памяти, основанное на ассоциативной памяти («CAT box»). [2] ) был спроектирован и построен для CSC. Это включало в себя изменения как аппаратного обеспечения, так и микрокода специально модифицированной System/360 Model 40. Эти изменения предоставили устройству технологию, необходимую для полной виртуализации оборудования System/360. Эта модифицированная Модель 40 повлияла на дизайн будущей Модели 67, которая была предназначена для удовлетворения потребностей того же сообщества пользователей с разделением времени (в частности, Project MAC и Bell Laboratories Массачусетского технологического института - хотя оба этих сайта стали заметными провалами продаж IBM).
За этот период IBM внедрила три отдельные системы виртуальной памяти:
- «Blaauw Box» (названный в честь Джерри Блаау ), часть оригинальной конструкции S / 360-67.
- «CAT Box» (Кембриджский переводчик адресов), добавленный к S / 360-40 CSC для запуска CP-40.
- «DAT Box» (динамический перевод адресов), анонсированный как дополнение к серии S / 370 в 1972 году.
Все эти системы были разными, но имели семейное сходство. Коробка CAT для CP-40 стала ключевой вехой. Пью и др. [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 . (Сравните это с IBM OS/MVT-TSO и ее преемниками — по сути, операционной системой с разделением времени, выполняющейся как одна задача в пакетной операционной системе IBM. С CMS каждый интерактивный пользователь получает частную виртуальную машину.)
К сентябрю 1965 года многие важные решения по проектированию CMS уже были приняты:
- Удобные для пользователя команды с необязательными параметрами по умолчанию, где это возможно (для простоты использования и обучения, а также для минимизации требований к управлению заданиями)
- Базовый набор команд и макросов файловой системы; простое соглашение об именовании файлов, основанное на имени файла, типе файла и режиме файла (режим файла = идентификатор логического диска или минидиск , форма назначения буквы диска )
- Записи, сопоставленные с блоками фиксированного размера, которые можно читать или записывать по относительному номеру записи.
- Файлы, которые можно создать простой записью в них без необходимости специальных операций создания.
- Файловые режимы по умолчанию, позволяющие осуществлять поиск на дисках в фиксированном порядке.
Это были радикальные отходы от сложного именования файлов, управления заданиями (через JCL) и других требований «настоящих» операционных систем IBM. [5] (Некоторые из этих концепций были целями для операционных систем других поставщиков, таких как Control Data Corporation и DEC .)
Структура файловой системы CMS с плоской структурой каталогов была намеренно сохранена простой. Кризи отмечает: «Эта структура из нескольких дисков, каждый из которых имеет один каталог, была выбрана как простая, но полезная. Многоуровневые связанные каталоги с файлами, хранящимися в общих областях, были тенденцией проектирования, когда мы начинали. Мы упростили дизайн. этого и других компонентов CMS для уменьшения сложности реализации». [6]
Прикладные программы, работающие под управлением CMS, выполняются в одном адресном пространстве. Они получили доступ к системным службам, таким как файловая система CMS, через простой программный интерфейс ядра CMS , который находился в малой памяти виртуальной машины CMS. Было предоставлено множество системных вызовов, большинство из которых знакомы нынешним программистам CMS. (Поскольку приложения запускались на виртуальной машине CMS, они потенциально могли вести себя некорректно, перезаписывая данные CMS, используя привилегированные инструкции или предпринимая другие действия, которые могли бы перехватить управление виртуальной машиной или привести к ее сбою. Конечно, это не может повлиять на другие виртуальные машины. все они были взаимно изолированы и не могли повредить основную управляющую программу. В отличие от большинства операционных систем, сбои CP редко были вызваны ошибками приложений и, следовательно, сами по себе были относительно редки.)
Исторические заметки [ править ]
В следующих примечаниях представлены краткие цитаты, в основном Пью, Вариана и Кризи [см. ссылки], иллюстрирующие контекст разработки CP-40. Здесь приводятся прямые цитаты, а не пересказы, поскольку точка зрения авторов определяет их интерпретации. Также см. «Историю CP/CMS» для получения дополнительной информации.
- Генезис проекта СР-40:
- Расмуссен из CSC «очень сомневался» в отношении TSS/360 и решил, что его простаивающие ресурсы CSC следует использовать для создания «надежной системы разделения времени для S/360», которая стала известна как CP-40. Руководителем проекта был Роберт Кризи, который был программистом CTSS . [7]
- Цели CP-40 включали как проведение исследований (получение и анализ данных о системах и программном обеспечении, включая использование ассоциативной памяти), так и удовлетворение собственных вычислительных требований CSC посредством разделения времени. Вариан добавляет: «Настоящей целью проекта было создание системы разделения времени, но и другие цели были подлинными, и на них всегда подчеркивали, чтобы замаскировать «контрстратегические» аспекты проекта». Кризи так описывает цели CP/CMS: Это должна была быть «система разделения времени второго поколения для недавно анонсированной IBM System/360... [которая будет] поддерживать всю деятельность Кембриджского центра, включая столь разнообразные виды деятельности». как исследование операционной системы, разработка приложений и подготовка отчетов программистами, учеными, секретарями и менеджерами. Вскоре после ее создания стало удобно, что система получила признание и финансовую поддержку извне в качестве инструмента для оценки и тестирования. производительность операционных систем». [8]
- Исследование CSC было важно для IBM, поскольку в то время «о системах виртуальной памяти было известно не так много». Вариан цитирует Л.В. Комо: «Приверженность [IBM] развитию виртуальной памяти не была подкреплена никаким успешным опытом… Что пугало, так это то, что никто из тех, кто задавал это направление виртуальной памяти в IBM, не знал, почему [современная система виртуальной памяти Ferranti] Atlas этого не сделала». не работает». (Позже Комо пришел к выводу, что Атлас пострадал от тряски , которая не изучалась до тех пор, пока она не наблюдалась на IBM M44/44X и на CP-40.) [9] [10]
- Конструкция CP-40: Пью и др. напишите следующее: «В 1964 году... IBM Research рекомендовала использовать принципы виртуальных машин планировщикам с разделением времени... [которые были] подхвачены командой Кембриджа [CSC], которая хотела, среди прочего, система, способная тестировать операционные системы». Ключевое проектное решение, принятое Кризи и Комо в конце 1964 года, заключалось в том, чтобы основывать CP-40 не просто на виртуальной памяти, но и на виртуальных машинах (сначала называвшихся псевдомашинами , пока более поздний термин не был заимствован из IBM M44/). 44X, который Кризи описывает как имеющий «похожие, но независимые идеи». [11] Кризи дает четкое описание стратегии виртуализации CP, основанной на наборе инструкций S/360 , который состоит из привилегированных инструкций «состояния супервизора», отличных от обычных инструкций «состояния проблемы»: «Каждая программа виртуальной машины [CP] фактически выполняется [полностью] ] в проблемном состоянии.... Привилегированные инструкции... [воспроизводятся] CP на виртуальных машинах...». При запуске ОС в проблемном состоянии все «хитрые» инструкции автоматически перехватываются аппаратным обеспечением. В результате осталась только одна основная проблема виртуализации: ссылки на память. «Опыт [с CTSS]... показал необходимость динамического перемещения программ... для разбиения программ на части, которые можно было бы перемещать в память, из нее и внутри нее независимо друг от друга». [12]
- Виртуальные машины CP-40:
- Более ранние исследовательские проекты, связанные с концепцией виртуальной машины, такие как IBM M44/44X, не пытались создать точную виртуальную копию реальной машины. Кризи: «[Они были] достаточно близки... чтобы доказать, что «достаточно близко» не в счет».
- CP-40 сделал смелый шаг по полной виртуализации , создав четырнадцать виртуальных сред S/360, каждая с фиксированным размером виртуальной памяти 256 КБ, сопоставленным доступом к разделам диска и буферным доступом к устройствам единичной записи (например, принтерам). Комо: «[Создание полной виртуализации] позволило одновременно разрабатывать CP и CMS; это позволило нам измерять невиртуальные системы, ОС и DOS, в среде виртуальной памяти, а также обеспечило высокий уровень целостности и безопасности». [13] [14]
- Помимо раскрытия ценности полной виртуализации, экспериментальный IBM M44/44X «внедрил идею о том, что концепция виртуальной машины не обязательно менее эффективна, чем более традиционные подходы» – основное предположение в архитектуре CP-40, которое в конечном итоге оказался весьма успешным. [15]
- Вскоре CP-40 будет поддерживать «до дюжины виртуальных машин System/360» под управлением терминала [большинство источников утверждают, что их четырнадцать]. (Позже CP-67 «использовал... преобразование адресов... и увеличил скорость... чтобы удвоить емкость» CP-40. [16] )
- CMS под CP-40:
- О решении разделить CMS и CP Кризи пишет: «Внедрение CTSS продемонстрировало необходимость модульного проектирования для развития системы. Несмотря на успех в качестве производственной системы, взаимосвязи и зависимости конструкции ее супервизора затрудняли расширение и изменение. Концепция дизайна CP/CMS заключалась в разделении управления компьютерными ресурсами и поддержки пользователей. По сути, интегрированный дизайн [CTSS] был разделен на CP и CMS». Ценность опыта, полученного в рамках проекта CTSS, невозможно переоценить. [17]
- О первых версиях CMS Кризи пишет: CMS «предоставляла однопользовательский сервис, не обремененный проблемами совместного использования, распределения и защиты». [18] Ранняя разработка CMS включала загрузку CMS под BPS , ранней системой поддержки S/360, пока CMS не продвинулась достаточно далеко, чтобы загружаться автономно. Со временем разработка перешла на виртуальные машины под управлением CP. [19]
См. также [ править ]
- CP[-67]/CMS : широко используемый преемник CP-40 и предшественник систем виртуальных машин IBM.
- Кембриджский научный центр CP-40 и CP/CMS. , где были построены
- IBM M44/44X , современная экспериментальная система подкачки.
- История CP/CMS , обзор событий и проблем, приведших к созданию CP-40.
- Эволюция системы разделения времени
Ссылки [ править ]
- ^ Программа управления-67/Кембриджская система мониторинга (GH20-0857-1) . ИБМ. Октябрь 1971 года.
- ^ Вариан (1997) , с. 11 («КОШКА»)
- ^ Пью, Джонсон и Палмер (1991) , с. 741 (прим. 218 к гл. 6)
- ^ АБ Линдквист; Р. Р. Сибер; Л. В. Комо (декабрь 1966 г.). «Система разделения времени, использующая ассоциативную память». Труды IEEE . 54 (12): 1774–1779. дои : 10.1109/PROC.1966.5261 .
- ^ Вариан (1997) , с. 14 – новизна интерфейса CMS
- ^ Кризи (1981) , с. 489 – плоская файловая система
- ^ Вариан (1997) , стр. 3, 9, 16 - возникновение проекта CP-40.
- ^ Кризи (1981) , с. 485 – цели проектирования
- ^ У. О'Нил, «Опыт использования многопрограммной системы с разделением времени с аппаратным обеспечением динамического перемещения адресов», Proc. AFIPS Computer Conference 30 (Весенняя объединенная компьютерная конференция, 1967), стр. 611–621 - работа над IBM M44/44X
- ^ Л.В. Комо, «Исследование операционных систем/360 подкачек», Симпозиум IBM Storage Hierarchy System, декабрь 1966 г. - размышления об Атласе, цитируется в Varian (1997) , стр. 17.
- ^ Кризи (1981) , с. 485 - аналогично IBM M44/44X, но не зависит от него.
- ^ Кризи (1981) , с. 486 – стратегия виртуализации: выполнение состояния проблемы плюс преобразование адресов
- ^ Вариан (1997) , стр. 9, 13
- ^ Комо (1982) , стр. 40, 42–43, цитируется по Varian (1997) , стр. 9, 13.
- ^ Л. Токингтон, «Хорошая идея, которая все еще растет», Информационный бюллетень Центра развития Уайт-Плейнс , Vol. 2, № 3 (март 1969 г.), цитируется по Varian (1997) , с. 10.
- ^ Пью, Джонсон и Палмер (1991) , стр. 364–365.
- ^ Кризи (1981) , с. 485 – отделение CP от CMS
- ^ Кризи (1981) , с. 485 – область действия CMS
- ^ Вариан (1997) , стр. 12, 15–16 – Загрузка CMS под BPS
Дальнейшее чтение [ править ]
- Адэр, Р.Дж.; Бэйлс, Румыния; Комо, LW; Кризи, Р.Дж. (1966). Система виртуальных машин для 360/40 (Отчет). Кембридж, Массачусетс: IBM, Кембриджский научный центр. Отчет 320-2007. , цитируется в Varian (1997) и Creasy (1981).
- Комо, LW (сентябрь 1982 г.). «CP-40, происхождение VM/370» . Труды SEAS AM82 .
- Кризи, Р.Дж. (1981). «Происхождение системы разделения времени VM/370» (PDF) . Журнал исследований и разработок IBM . 25 (5): 483–490. дои : 10.1147/rd.255.0483 .
- Лингквист, AB; Сибер, Р.Р.; Комо, LW (1966). «Система разделения времени, использующая ассоциативную память». Учеб. ИИЭЭ . 54 (12): 1774–1779. дои : 10.1109/PROC.1966.5261 .
- Пью, Эмерсон В.; Джонсон, Лайл Р.; Палмер, Джон Х. (1991). Системы IBM 360 и Early 370 . Кембридж, Массачусетс: MIT Press. ISBN 0-262-16123-0 .
- Вариан, Мелинда (1997). VM и сообщество VM, прошлое, настоящее и будущее (PDF) . ПОДЕЛИТЬСЯ 89 сеансами 9059-9061.
Генеалогическое древо [ править ]
→ происхождение >> сильное влияние > некоторое влияние/предшествование | ||
КТСС | ||
> IBM M44/44X | ||
>> CP-40/CMS → CP[-67]/CMS | → VM/370 → Версии VM/SE → Версии VM/SP → Версии VM/XA → VM/ESA → z/VM | |
→ Вице-президент/CSS | ||
> ТСС/360 | ||
> TSO для МВТ → для OS/VS2 → для MVS → ... → для z/OS | ||
>> MULTICS и большинство других разделения времени платформ |