.

 

6.4. Способы организации мультипроцессорных систем

 

Для повышения надежности и уменьшения времени обработки данных создают многопроцессорные вычислительные системы. В ранних МВС все подключаемые дополнительные процессоры имели жестко закрепленные функции, как правило, функции каналов ввода-вывода. Более поздние машины (например, CDC 6600) имели один центральный (главный) процессор и несколько подчиненных процессоров, выполняющих достаточно сложные функции, в частности функции по управлению мониторами. Большое распространение получил принцип компоновки МВС из двух и более одинаковых процессоров (UNIVAC 1108, Burroughs 6700, Эльбрус-2 и т. д.).

Существуют различные способы объединения и использования МВС. Рассмотрим наиболее типичные из них:

·  самостоятельные системы;

·  объединение на уровне планирования заданий;

·  объединение с подчиненными процессорами;

·  объединение равноправных процессоров.

Они различаются в основном по сложности управления.

 

Самостоятельные системы

 

МВС могут быть логически разделены на несколько самостоятельных систем, каждая со своим процессором, ОП и периферийными устройствами. Так, IBM 360/67 была разделена на две самостоятельные ВС по одному процессору, 512 Кб ОП и 8 накопителей на НМД. Очень быстро ее можно преобразовать в одну ВС, имеющую 1024 Кб оперативной памяти, 16 накопителей на НМД, один процессор (второй процессор использовать в качестве "горячего" резерва).

Такая гибкость позволяет эффективно использовать память, ЦП и периферийные устройства, если одна из компонент выходит из строя например, на время их ремонта.

В МВС, построенных по указанному принципу, отсутствует какое бы то ни было совместное планирование на уровне заданий или процессов.

Объединение на уровне планирования заданий

Этот способ – дальнейшее развитие объединения самостоятельных ВС, создание так называемых слабосвязанных систем. Каждый процессор по-прежнему входит в свою подсистему, выполнение также полностью происходит на одной подсистеме, однако подсистема для выполнения задания выбирается в соответствии с принятой дисциплиной. Например, задание может направляться на наименее загруженную подсистему.

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

Объединение с подчиненными процессорами

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

При построении МВС по принципу объединения с подчиненными процессорами один главный процессор следит за состоянием процессов и руководит работой подчиненных процессоров. Например, для выполнения выбранного процесса планировщик находит свободный процессор и запускает его командой START PROCESSOR (начать вычисление). Подчиненный процессор начнет выполнять программу по указанному адресу памяти. Если в работе подчиненного процессора встретилась особая ситуация (например, необходим ввод-вывод), он подает сигнал главному процессору и ждет дальнейших указаний. Отметим, что один и тот же процесс в разное время может выполняться на разных процессорах.

Для того чтобы было больше процессов в активном состоянии, в оперативную память помещают только некоторую часть адресного пространства процесса.

Объединение равноправных процессоров

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

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

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

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

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

 

На главную