Образовательный портал «Кафедра онлайн» НИЯУ «МИФИ», Обнинск"

Главная » Рубрики » Блоги преподавателей » Крылов Евгений Васильевич » Крылов - статьи » Вычислительная модель IBM/360/370 и параллелизм

Вычислительная модель IBM/360/370 и параллелизм

Е.В. Крылов, доцент ИАТЭ НИЯУ «МИФИ», Обнинск

Поговорим о вещах, возможно интересных, но в данный момент не нужных. О возникновении параллельных разработок. Скорее всего, они возникли несколько раньше появления компьютеров. Пример: первый ядерный реактор рассчитывался (примерно 1955 год), когда о существовании компьютера приходилось только мечтать.

В качестве процессоров использовались «девочки-расчётчицы». Были организованы несколько параллельных конвейеров  с несколькими точками встречи, где проводился контроль результатов с возвратом, если они не совпадали. Алгоритм распараллеливания мне неизвестен. При желании уточнить можно, т.к. знающие люди в Обнинске ещё живы.

Следует, в историческом плане, отдельно рассматривать математическое распараллеливание и аппаратно-программную поддержку. На каком-то этапе эти линии слились. Дальнейшее изложение посвящено аппаратно-программной поддержке.

Рассмотрим цепочку компьютеров: М20-М220-М222-IBM/360/370. Другие цепи я не рассматриваю, поскольку их не знаю. Параллельно необходимо рассматривать операционные системы. Нельзя анализировать отдельно аппаратные и программные средства. Правильная точка зрения: «Компьютер есть программно-аппаратная совокупность».

Выбранная цепочка интересна тем, что здесь произошли революционные изменения в организации компьютера и его использования. Нередко применяется понятие «фон-Неймановские машины». На самом деле уже здесь появились средства, категорически не укладывающиеся в принципы фон Неймана, например, прерывание. Прерывание появилось на М222. Там же появилась примитивная операционная система, названная «диспетчером». Её возможности были крайне ограничены. В основном она позволяла перехватывать «Авосты». Система IBM/360 имела блестяще реализованную систему прерываний.  Появилось средство фиксации событий, которое до сих пор лежит в основе организации параллелизма. Система IBM/370 принципиально отличается наличием виртуальной памяти.

Рассматривать организацию вычислительных сред вне операционных систем занятие неблагодарное. Развитие операционных систем: MFT, MVT, системы с разделением времени, VM/SP. Раскрытие смысла и возможностей этих систем является предметом отдельного разговора. Идеология стабилизировалась на уровне системы MVT, IBM/360. (Мэдник, Донован Операционные системы.). Переход от М20 к IBM/360 характеризовался переломом в осознании компьютера. В однозадачном режиме мы вполне правильно считали, что компьютер управляется алгоритмом.

Сейчас я думаю, что компьютер управляется цепочкой случайных событий. Итак! Параллелизм, программно-аппаратная поддержка с общей точки зрения. Параллелизм появляется, если появляются асинхронные процессы, управляемые событиями. Процессы слабо связаны по данным и зависят от событий, происходящих в других процессах. Главная проблема программной поддержки: как писать программы, которые правильно работают при любом порядке событий.

Компоненты разработки:

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

Аппаратная поддержка:

  • Реакция на событие: система прерываний, служба времени;
  • Наличие нескольких процессоров, центральных и специальных;
  • Аппаратные средства организации семафора: команда «записать и проверить».

Введём несколько нераздельных определений. Для продвижения процесса во времени ему нужно выделить ресурсы. Ресурсом может быть оперативная память, файл, регистр процессора,  процессор, программа, другой процесс. Необходимым условием продвижения является наличие процессора. Совокупность ресурсов, выделенных процессу, назовём окружением. Изменение состояния окружения назовём событием. Поскольку для нас окружение представляется двоичным целым без знака, событие можно определить как изменение значения двоичного целого без знака.

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

На рис.2 показана схема организации IBM/360. В соответствии с требованиями времени она ориентирована на автономную организацию обмена и максимальное использование процессора.  Процессор напрямую связан с оперативной памятью. Управление обменом выполняют специализированные процессоры, называемые каналами. Каждый канал связан своей шиной с оперативной памятью. Процессор запускает обмен и возвращается к фоновой программе. По завершению обмена следует прерывание.

Сама по себе операционная система ещё не параллелизм. Как MVT, так и система разделения времени определяет только способ выделения процессора. Параллелизм начинается с управления задачами. Далее определяются средства  организации пользовательских процессов. Язык программирования Ассемблер (макрокоманды). Из модели вычислительного процесса видно, что определяется пара процессов (Рис. 3а. Отношения процессов) ведущий и ведомый. Ведущий запускает ведомый с помощью макрокоманды ATTACH, выделяя в своей области данных область связи. Поскольку память общая, достаточно передать адрес. Запуск осуществляется в одном из режимов. Либо с ожиданием завершения, либо без ожидания завершения. В последнем случае оба процесса продвигаются во времени.

Ведущий процесс с помощью макрокоманды WAIT может расставить закрытые семафоры (Рис. 3б. Отношения процессов).  Если процесс доходит до закрытого семафоры, он помещается в состояние ожидания. Ведомый процесс, или сам ведущий может открыть семафор с помощью макрокоманды POST. Если ведомый завершается, он просто исчезает.

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

 Субъективный анализ

MVT IBM/360/370

Windows

Поддержка параллельных процессов

Сильная поддержка на аппаратном и программном уровнях Слабая поддержка на аппаратном уровне

Управление виртуальной памятью

Запоминается дескриптор одной страницы в теневом регистре Запоминается несколько дескрипторов нескольких страниц в КЭШ-памяти

Защита

Жесткая защита на аппаратном уровне Слабая защита. Частично на аппаратном уровне. Проверка кода защиты при выборке дескриптора.

Управление программными структурами

  • Самобазирующиеся программные секции.
  • Модули простой структуры.
  • Многообластной оверлей.
  • Динамически последовательная организация по схеме произвольного графа.
  • Динамически параллельная иерархическая организация.
  • Модули простой структуры.
  • Нечётко определённая смесь простого оверлея и одноуровневой динамически последовательной организации.

Файловая организация

Единственная файловая система, встроенная в операционную систему Множество автономных файловых систем
Записеориентированная и потокоориентированная организация Записеориентированная и потокоориентированная организация
Типы записей: фиксированная длина, переменная длина, записи неопределённой длины. Записи фиксированной длины.
Переходящие записи Нет
Много буферная поддержка с опережающей загрузкой. Одно буферная поддержка. Опережающая загрузка отсутствует.
Блоки фиксированной длины, переменной длины, поддержанные на уровне операционной системы. Блоки фиксированной длины без переходящих блоков единственной длины, равной размеру сектора диска.
Обменные операции
Одной канальной программой можно разбросать физический блок по нескольким буферам, либо собрать несколько физических блоков в один буфер. Один физический блок – один буфер такого же размера (сектор диска).

Средства программирования

Язык PL/1, Фортран, Кобол, Ассемблер. Мощный макроязык. Фортран, С++, Паскаль.
Файловая поддержка на уровне языка программирования PL/1. Записеориентированный и потокоориентированный обмен. Записи фиксированной, переменной, неопределённой длины.

Методы доступа:

  • Последовательный.
  • Прямой.
  • Индексно-последовательный.
  • Библиотечный.
  • Теледоступ.
Файловая поддержка в Паскале: записеориентированный и слабовыраженный потокоориентированный обмен. Записи фиксированной длины. Последовательный доступ, имитация прямого.

Си: хорошо организованный поток, слабо выраженный записеориентированный. Записи неопределённой длины. Последовательный доступ.

Только процедурноориентированная парадигма Процедурноориентированная и объектноориентированная парадигма
Интегральные среды отсутствуют Несколько интегральных сред

Управление проектом

На пяти уровнях:

  • Препроцессор.
  • Редактор связей.
  • Загрузчик.
  • Несколько пользовательских библиотек автовызова.
  • Динамическое управление.
Примитивный препроцессор.Слабые средства динамического управления

 

Комментариев нет

Похожие публикации
 
 

Комментариев нет

Вы можете быть первым, кто оставит комментарий.

 
 

Вы можете оставить комментарий

 





 
 

Выполните простое задание (антиспам). Картинки можно сибирать приблизительно, без точной подгонки фрагментов.


 
 
 

Наверх