Burroughs MCP

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:49, 11 ноября 2017.
MCP
Разработчик Burroughs / Unisys
Написана на ESPOL, NEWP
Линейка ОС Не применимо
Состояние разработки Текущее
Исходный код Доступный источник
Дата первого релиза 1961 год
Последний релиз 17.0 / Sept 2015
Платформы Burroughs больших систем, в том числе компания Clearpath/МСР
Лицензия Проприетарное
Официальный веб-сайт unisys.com

MCP (Master Control Program) - это патентованная операционная система от Burroughs(Берроуз) малых, средних и больших систем, в том числе компания Clearpath/МСР систем.

Изначально написанная в 1961 году в ESPOL, которая сама по себе является продолжением Burroughs Расширенный ALGOL, в 1970-х годах он был преобразован в NEWP, лучше структурированная, более надежной, и более безопасной форме ESPOL.[Источник 1]

MCP был лидером во многих областях, в том числе:

  • первая операционная система для управления несколькими процессами;
  • первые коммерческие реализации виртуальной памяти;
  • первая ОС, написанная исключительно на языке высокого уровня;
  • возможность отладки программы на исходном языке;
  • мультипрограммирование.

История

Структура программного кода MCP

В 1961 году MCP была первая ОС, написанная исключительно на языке высокого уровня high-level language. Крупные системы Burroughs (B5000 и выше) были уникальны тем, что они проектировались с расчетом на то, что все программное обеспечение, включая системное программное обеспечение, будет написано на HLL, а не в ассемблере, который был уникальным и инновационным подходом в 1961 году.[Источник 2]

В отличие от IBM, которая столкнулась с аппаратной конкуренцией после ухода Gene Amdahl, Burroughs была предназначена для работы только на фирменном оборудовании. По этой причине, Burroughs могла свободно распространять исходный код всего программного обеспечения, в том числе управляющую программу, которая была разработана с учетом публичности.

Берроуз была не первым производителем, распространяющим свой исходный код, также у неё были свои соперники: компании NCR, IBM). По иронии судьбы, теперь, MCP, работает на стандартном оборудовании некоторых элементов MCP на основе программного пакета в виде исходного кода на Unisys.[Источник 1]

Файловая система

MCP имеет файловую систему с иерархической структурой каталогов. Каждый файл в системе имеет набор атрибутов файла(различные метаданные). Другие атрибуты файла: размер записи (если он установлен для коммерческого применения), размер блока (в кратных записях) и площадь в упаковке из блоков, которая выделяет размер диска на участки в качестве расширения файла. Тип файла указывает, что файл состоит из символьных данных или исходный код, написанный на отдельных языках, двоичных данных, или файлы, код. Файлы защищены обычными механизмами безопасности, такие как государственные или частные, также владелец может задавать свои правила безопасности. Другой механизм безопасности указывает на то, что файлы с кодом могут быть созданы только посредством надежных компиляторов. Управляющая программа реализует журналируемые файловые системы, обеспечивающие отказоустойчивость в случае сбоя диска, потери мощности и т. д. Невозможно повредить файловую систему (за исключением операционной системы или другой доверенной системы программного обеспечения с прямым доступом в нижние слои). Файловая система является нечувствительной к регистру.

Программные компоненты и библиотеки

MCP библиотеки предоставляют возможность обмена кодом и данными между процессами. В статье на Берроуза больших систем рассматриваются как зависимые процессы могут быть асинхронно запущены так, что многие процессы могут совместно использовать данные (с помощью механизмов, чтобы обеспечить синхронное обновление). Такое семейство родственных процессов должно быть написано единым блоком программы.

Преимущества этих библиотек:

  • Библиотеки и независимые процессы записываются в виде независимых программных блоков;
  • библиотеки полностью имеют контролируемый доступ к общим ресурсам (данным, инкапсуляция и скрытие);
  • библиотеки и клиенты могут быть написаны на разных языках;
  • переключении процессов не требуется для безопасного доступа к данным.

Библиотеки MCP могут быть ‘общими для всех', ‘rununit’ или 'частными'. Частный случай(ближайший к библиотекам других систем) - для каждого клиента отдельная копия библиотеки вызывается и нет обмена данными между процессами.

Общим для всех является , когда клиент запускается, он может работать некоторое время, пока не требуется обслуживания в библиотеке. Если экземпляр библиотеки уже работает, клиент присоединяется к этому экземпляру. Всем клиентам одинаковая копия библиотеки.

Rununit - это механизм обмена между двумя схемами обмена. Он был разработан специально для COBOL (COmmon Business Oriented Language), где rununit определяется как первоначально инициирующего клиентскую программу и все связанные библиотеки. Каждый rununit получает одну копию библиотеки и различные rununits другую копию. Это единственная динамичная реализация rununits COBOL.

Если это был первый вызов библиотеки, выполнится основная программа (наружный блок в программе ALGOL), чтобы инициализировать свои глобальные среды. Как только инициализация завершена, она выполняет заморозку, после чего все экспортируемые точки входа будут доступны для клиентов. В этот момент стек библиотеки не будет работать, пока библиотека не разморозится.

Заморозка также может быть в трех формах – временная, постоянная и контролируемая. Временная означает, что как только количество клиентов упало до нуля, библиотеки будут разморожены. Постоянная заморозка означает, что библиотеки остались доступны для дальнейших клиентов, даже если количество клиентов упало до нуля – постоянные библиотеки могут быть разморожены оператором с помощью команды. Контролируемая заморозка означает, что библиотека продолжает функционировать, клиент может выполнять функцию мониторинга и инициализации данных, очистки библиотеки. Также в библиотеках реализована очень важная функция безопасности связующих классов. Вся система базы данных реализуется посредством библиотек, обеспечивая эффективный и индивидуальный доступ к базам данных между многими клиентами. То же самое касается и всех возможностей сети и системы встроенных функций.[Источник 1].

Процесс управления

МСР процессы называются "задания" и "задачи." Задание содержит одну или несколько задач. Задачи в задании могут выполняться последовательно или параллельно. Логика может быть реализована на уровне задания, как правило, в управление МСР для управления потоком работы.

Процесс МСР проходит жизненный цикл от момента его поступления в систему и до выхода. Начальное состояние для задания задаётся как "в очереди". Существует период времени, в то время как задание находится в одном из нескольких пользовательских очереди заданий. Следующее состояние это "запланирован", работа переходит из очереди в память. Задачи в задании не ждут в очереди.

Запущенные процессы - это те, которые используют ресурс процессора и помечается как "работает". Процессы, которые готовы, но когда нет свободного процесса помещаются в очередь готовности. Процессы могут быть назначены, как “объявлен” или “видимый” приоритет, как правило, 50% по умолчанию, но может быть от 0 до 99 для пользовательских процессов. Система процессов может быть назначена на более высокие значения. Обратите внимание, что этот численный приоритет является вторичным по отношению к общему, который зависит от типа задач. Процессы, которые являются непосредственно частью операционной системы, называемые "независимые бегуны", имеют самый высокий приоритет независимо от числового значение приоритета. Далее идут процессы с помощью блокировки МСР, те системы управления сообщениями. Затем процессы прекращаются. Процессы, которые были прекращены помечены как "завершенные". Задачи ожидании ресурса, перечислены в записях ожидания с соответствующей причиной.[Источник 1].

Процедуры и атрибуты управления

Как и с атрибутами файла, задачи имеют атрибуты, такие как приоритетная задача (которая присваивается во время компиляции или времени выполнения), время работы процессора, время ожидания, статус и т. д. Эти атрибуты задач могут осуществляться программно. Родительская задача доступна программно как атрибут задачи, задачи типа.

GETSPACE и FORGETSPACE являются двумя основными процедурами обработки выделение памяти и освобождение. Должна выделятся память на процесс инициации и всякий раз, когда блок ввода, который использует массивы, файлы и т. д. GETSPACE и FORGETSPACE не только управление памятью, они также выделяют или освобождают место на диске, где не резидентные данные могут быть расположены. Память можно сэкономить (например, резидентная память), OVERLAYABLE (т. е. виртуальная память) или клейкая (смысл резидентной памяти). Например, HARDWAREINTERRUPT когда процесс обращается к неинициализированному массиву или FILEOPEN.

HARDWAREINTERRUPT обрабатывает аппаратные прерывания и может призвать GETSPACE, IO_FINISH или тому подобное.

BLOCKEXIT блокирует задачи при выходе из блока. BLOCKEXIT может в свою очередь вызвать FILECLOSE, FORGETSPACE или очищать и высвобождать ресурсы, которые объявлены и использованы в пределах этого блока.

J_EDGAR_HOOVER - главный центр безопасности системы, может запускать процессы, открывать файлы, входить как пользователь, и т. д.

GEORGE это процедура, которая решает, какой процесс следующий, чтобы получить ресурсы процесса и, таким образом, одним из немногих процессов, который использует инструкцию MoveStack.

Протоколирование

Все действия в системе протоколируются, например, все сообщения, которые отображаются для оператора, и все действия оператора. Все значимые действия программы могут записываться в системный журнал и журнал программы.

Журналы могут быть использованы для судебно-медицинской экспертизы, чтобы выяснить, почему программы или системы могут выйти из строя, или для обнаружения попытки взлома системы безопасности. С помощью журналов система автоматически закрывается через систему устанавливаемого периода. Системные журналы содержат огромное количество информации, которые могут быть отфильтрованы и проанализированы с помощью программ, таких как "Loganalyser".

"Dumpanalyzer" анализирует дампы памяти, которые изначально были записаны на ленту. Как все компиляторы "Lineinfo" в код-файлы "Dumpanalyzer" способен точно определить, какой код выполнялся в момент ошибки.

Также нормальный дамп программы, в которой всего лишь одна программа была выброшена, содержит информацию о источник-коде номерной серии и именах переменных.

Два анализатора являются основными диагностическими инструментами для всех видов целей.

Файлы портов

Другая техника для межпроцессного взаимодействия (IPC) - это порт файлы. Они похожи на UNIX-системы, за исключением того, что они несколько обобщены, чтобы иметь многоканальные и двунаправленные потоки. Поскольку это на порядок медленнее, чем другие методы IPC, например библиотеки, лучше использовать другие техники, где MCP взаимодействует между различными процессами на этом же компьютере.

Поэтому наиболее выгодно использовать порт файлы для распределения MCP. Порт файлы были приобщены к БНА(Берроуз Сетевой Архитектуре), но с появлением стандартных сетевых технологий, таких как протокол TCP/IP, порт файлы могут быть использованы с этими сетями.

Сервер анализирует входящие соединения(файл с атрибутом, порт). Каждое соединение, которое исходит от клиента создает субфайл с индексом, так что каждый порт файл представляет несколько подключений к разным клиентам по сети.

Процесс: сервер получает запросы клиентов из любой точки сети, выдавая прочитанное в файл Port (субфайл = 0 чтение из субфайлов). Он выдает ответ клиенту, выдавшему запрос, написав к конкретному разделу, от которого запрос был зачитан.[Источник 1].

Источники

  1. 1,0 1,1 1,2 1,3 1,4 Burroughs MCP // Wikipedia. [2017-2017]. Дата обновления: 04.09.2017. URL: https://en.wikipedia.org/wiki/Burroughs_MCP (дата обращения: 14.10.2017).
  2. Burroughs Corporation // Википедия. [2015-2017]. Дата обновления: 28.08.2017. URL: https://ru.wikipedia.org/wiki/Burroughs (дата обращения: 19.10.2017).

Ссылки