Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 1223 / 124 | Оценка: 4.73 / 4.45 | Длительность: 18:17:00
ISBN: 978-5-94774-546-7
Специальности: Программист
Лекция 8:

Организация и оптимизация параллельных процессов

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

Децентрализованное диспетчирование в многоканальном и многоциклическом режиме

Рассмотрим схему организации параллельного вычислительного процесса в реальном времени.

Система управления обслуживает в многоканальном режиме ряд однотипных объектов. Одновременно обслуживаемые объекты могут находиться на разных стадиях обслуживания. По каждому объекту циклически и в разных комбинациях решаются задачи из некоторого заранее установленного множества информационно взаимосвязанных задач. Частичная упорядоченность задач задается расширенной матрицей следования S*.

  1. Рассмотрим случай, когда задачи решаются в цикле одной длительности.

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

    Информация для одноциклического режима обслуживания

    Рис. 8.4. Информация для одноциклического режима обслуживания

    (Для этого из матрицы S* для каждого объекта исключаются строки и столбцы, соответствующие нерешаемым задачам, и блочно-диагональным наращиванием строится S'.)

    Каждая задача характеризуется именем, номером i канала или объекта, по которому она решается, относительным приоритетом p, значением t времени решения, контрольным временем t0, по истечении которого следует сделать вывод об аварийной ситуации.

    При обращении процессора к очереди, назначение очередной задачи на процессор производится на основе анализа S*. Из множества задач, которым соответствуют нулевые строки этой матрицы, выбирается еще не назначенная задача с максимальным приоритетом (минимальное значение p ) из тех, которые по времени выполнения укладываются в ресурс процессора в цикле (см. далее). Если таких задач с одинаковым приоритетом несколько, из них выбирается задача с максимальным временем выполнения. Назначенная задача отмечается, чтобы исключить повторное назначение.

    После решения любой задачи и исключения информации о ней из S* могут оказаться "открытыми" задачи, обладающие более высоким приоритетом, чем некоторые из тех, которые уже решаются. В этом случае возможен один из вариантов, когда диспетчер того процессора, на котором закончилось решение некоторой задачи, после назначения (себе) очередной задачи производит попытку дополнительного назначения другим процессорам. Находится готовая к решению задача с максимальным приоритетом и для него — с максимальным временем t. Процессоры последовательно опрашиваются. По опросу прерывается работа того процессора, который решает задачу с приоритетом меньшим, чем приоритет найденной задачи, и с текущим ресурсом времени в цикле \delta, превышающим t. Ему выдается сигнал прерывания, по которому он выполняет прерывание и обращается к очереди. Тогда эта задача будет назначена вместо прерванной.

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

    Циклическая работа процессоров организуется с помощью прерывания от системы синхронизации (таймера или СЕВ). В этом случае восстанавливается исходный вид матрицы S* и очередь Q. Процесс решения задач повторяется, если супервизор не внес коррективы в их состав.

  2. Многоциклический режим. Пусть часть задач решается в цикле длительности k_{1}\delta, часть — в цикле длительности k_{2} \delta и т.д. Всего — r длительностей, и k1 < k2 < ... < kr. (Обычно k1 = 1.) Через интервалы, кратные \delta, в ВС формируются сигналы прерывания, анализируемые диспетчерами процессоров. Если k_{\mu } > k_{\nu }, то все задачи, решаемые в цикле k_{\nu }\delta, обладают более высоким приоритетом, чем все задачи, решаемые в цикле k_{\mu }\delta.

    При составлении комплексного задания объединяют его части, относящиеся к циклам одинаковой длительности. Каждая часть заканчивается признаком "конец задания для k_{j}\delta " j = 1 , ... , r (рис. 8.5). По этому признаку после выполнения всего задания для данного цикла и поступления сигнала от системы синхронизации о начале следующего цикла этой же длительности восстанавливается исходный вид соответствующей части задания. После этого диспетчеры производят дополнительное назначение в соответствии с готовыми к решению более приоритетными задачами, т.е. начинают новый цикл по возможности с более приоритетных задач.

    Многоциклический режим параллельного решения задач

    Рис. 8.5. Многоциклический режим параллельного решения задач

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

    Как же считается и учитывается этот ресурс? Рассмотрим его как переменный ресурс времени Rij, которым располагает i -й процессор, i = 1, ... , n, в цикле длительности k_{j}\delta  , j = 1 , \dots  , r.

    Пусть первоначально, до назначения на процессор задач i -й процессор в цикле длительности k_{1}\delta располагал ресурсом R_{i1} =k_{1}\delta, в цикле длительности k_{2}\delta — ресурсом R_{i2} = k_{2}\delta и т.д. Пусть на процессор для решения выбрана задача \alpha с временем решения t_{\alpha }. Пусть она решается в цикле длительности k_{j} \delta. Ее назначение не влияет на порядок решения задач в циклах меньшей длительности, т.к. они обладают более высоким приоритетом. Однако при последующем назначении на этот же процессор задач, решаемых в цикле этой и большей длительности, необходимо учитывать решение задачи — с равным или большим приоритетом.

    Запишем оператор определения нового значения вычислительного ресурса в цикле длительности k_{j} \delta и в циклах большей длительности после единичного назначения на этот же процессор в цикле k_{j} \delta

    \begin{align*}
R_{il}: = R_{il}\frac{k_l}{k_j}t_\alpha, \,l = j,\, j + 1 \dts r
\end{align*}

    Здесь ресурс оценивается приближенно, без учета дискретности работ, соразмерности длительности циклов и неточности определения t_{\alpha }.

Таким образом, прежде чем производить назначение другой задачи, \beta, решаемой в цикле длительности k_{j} \beta, на i -й процессор, необходимо проверить, располагает ли он ресурсом R_{ij} \ge  t_{\beta }? Если располагает, назначение производится, после чего значения ресурса для l >= j уточняются. Если не располагает, производится поиск подходящей задачи.

Это и было отражено выше при рассмотрении назначения в одно- и многоциклическом режиме решения задач.

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >