Модуль 6. Управление процессорами


Тема 12. Управление процессорами и заданиями в мультипроцессорном вычислительном комплексе

Два вида мультипроцессорных авчислительных систем

Мультипроцессорные системы   с подчиненными процессорами

Мультипроцессорные системы с равноправными процессорами

Решение фирмы Сompaq


Современной тенденцией развития вычислительной техники является построение вычислительных комплексов, содержащих несколько ЦП, называемых мультипроцессорными вычислительными системами. Мультипроцессорная обработка – это способ организации вычислений в системах с несколькими процессорами, при котором несколько задач (процессов, нитей) могут одновременно выполняться на разных процессорах системы.

Целью построения мультипроцессорных вычислительных систем является:

Существует два вида мультипроцессорных вычислительных систем:

  1. Мультипроцессорная вычислительная система со слабо связанными процессорами, называемая многомашинными комплексами, которые предусматривают соединение двух или более вычислительных машин при помощи канала связи и/или внешней памяти.
  2. Мультипроцессорные системы с сильно связанными процессорами, называющиеся многопроцессорными вычислительными комплексами, которые имеют единую ОП, коллективно используемую несколькими ЦП.

Рисунок 9.1. Системы со слабо связанными процессорами.

Мультипроцессорная организация системы приводит к усложнению всех алгоритмов управления ресурсами.

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

Итак, в отличие от однопроцессорных ОС, подсистемы управления процессами и заданиями должны выполнять следующие основные функции:

Существует несколько способов взаимодействия ЦП:

  1. Вычислительный комплекс и ОС с подчиненными процессорами - асимметричное мультипроцессирование (один главный процессор и несколько подчиненных).
  2. Вычислительный комплекс и ОС с равноправными процессорами.
  3. Вычислительный комплекс и ОС с симметричной организацией - симметричное мультипроцессирование.

В мультипроцессорных системах с подчиненными процессорами один ЦП является главным, остальные - подчиненными (ведущий - ведомые). Это самая простая организация не намного сложнее однопроцессорной системы. Операционная система выполняется только на главном процессоре. Этот ЦП осуществляет ввод/вывод и управляет загрузкой подчиненных процессоров. Подчиненные процессоры выполняют только программы пользователя. Узкое место - главный процессор. Он должен иметь большую мощность (производительность), чем подчиненные процессоры, чтобы последние не простаивали.

Рисунок.9.2 Мультипроцессорная система

В мультипроцессорной системе с равноправными процессорами каждый ЦП имеет собственную ОС и управляет собственными ресурсами и устройствами ввода/вывода по типу многомашинных комплексов. В такой организации для управления всей системы существуют таблицы с глобальной системной информацией, доступ к которой строго контролируется методом взаимного исключения. Каждый ЦП берет из общей операции задание и выполняет его до завершения. Во время исполнения взаимодействие между ЦП не предусматривается. Данную систему характеризует высокая надежность, но не достаточно высокий уровень распараллеливания

Симметричная организация мультипроцессорной системы наиболее сложна и эффективна. Здесь все ЦП - идентичны. Каждый из них может управлять работой любого периферийного устройства и обращаться к любому устройству памяти. В таких системах в общей области памяти существует две очереди: очередь готовых процессов и очередь готовых процессоров

В любой момент времени любой готовый процесс может выполняться на любом готовом процессоре. Процессы во время своего исполнения мигрируют между ЦП. ОС также перемещается по процессорам, но в каждый момент времени может находиться только на одном процессоре.

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

Разные процессоры могут в какой-то момент времени выполнять как разные, так и одинаковые модули общей ОС. Для этого программные модули ОС должны обладать свойством повторной входимости – реентерабельности. ОС полностью децентрализована. Освободившийся процессор сам запускает планировщик задач, который выбирает из общей системной очереди задачу для выполнения. Все ресурсы выделяются для задачи по мере потребности и не закрепляются за процессором. При таком подходе все процессоры работают с одной и той же динамически выравниваемой загрузкой. В решении одной задачи могут участвовать сразу несколько процессоров, если она допускает распараллеливание, например, путем представления нескольких нитей (потоков для WINDOWS NT фирмы Microsoft), UNUX - SOLARIS компании Sun, базирующийся на UNIIX System V Release.

Рисунок.9.3 Архитектура однопроцессорной системы

Достоинства этой организации:

Недостатки - возрастает число конфликтов по системному обслуживанию, так как ОС имеется только в одном экземпляре.

Фирма COMPAQ, сотрудничая с NOVELL, выпустила OS-NETWARE from COMPAQ.

SCO UNIX оптимизирована под серверы COMPAQ и поддерживает многопроцессорность с помощью утилиты SCO MPX, которая эффективно использует симметричную многопроцессорную архитектуру.

Рассмотрим архитектуру двухпроцессорной вычислительной системы фирмы COMPAQ. В основу решения положено два принципа:

Первое - за счет наращивания разрядности шин. Второе - за счет кэширования. Первоначально IBM PC/XT/AT имели один 8/16 разрядный канал передачи данных, к которому посредством шины подключались все основные компоненты системы: процессор, память, устройство ввода/вывода (рисунок 9.3)

По сути, канал - расширение шины процессора, и повышение производительности канала за счет применения новых более быстродействующих процессоров оказалось невозможным из-за сохранения совместимости с существующими устройствами, рассчитанными на работу с 8 мгц шиной ISA. Шина стала узким местом, которое ограничивало скорость доступа ЦП к памяти.

Решение фирмы Сompaq?

Разделение шины ЦП - память (что позволило повысить ее разрядность до 32) и шины ISA - ее последующего модификационного развития EISA.

Повысилась пропускная способность канала (CPU-RAM). Его оптимизация за счет применения внешней КЭШ памяти для каждого процесса. Выборка команд из внешней КЭШ памяти выполняется одновременно с передачей данных между ОЗУ и ВНУ в режиме прямого доступа к памяти (ПДП) в результате распараллеливания работы системы. Это условно симметричная многопроцессорная система, которая позволяет одинаково разделять задачи между процессорами. Асимметрия состоит в том, что аппаратные прерывания от ВНУ может воспринимать только один (первичный процессор).

Развитием стало внедрение архитектуры tri Flex, которая легла в основу Systempro/x2. Еще больше параллелизма и оптимизации проходимости каналов передачи между основными подсистемами компьютера. Выделены уже три отдельные высокоскоростные шины. Основной выигрыш производительности за счет использующейся 64 разрядной шины CPU.

Высокоэффективное КЭШ - ОЗУ (64 разр.) минимизирует частоту обращения к основной памяти. Когда процессору понадобиться доступ к ней, в его распоряжении 128-разрядная шина (267 мб/сек). Специальная схема контроллера (управление потоком данных) содержит 256-разрядные многоступенчатые буферы, способные накапливать и самостоятельно осуществлять до 16 операций ввода/ввывода по шине EISA.

Рисунок 4.  Архитектура FLEX/MP и Multiproc Support