Параллельное программирование



              

Схема организации параллельного процесса - часть 3


Для каждого задания, включенного в список выполняемых периодически с заданным темпом решения, проверяется, совпадает ли значение k? с началом его выполнения. Если совпадает, в очередь заданий заносится соответствующее задание с указанием его приоритета. Рассчитывается следующий момент начала выполнения данного задания.

Этим заканчиваются все работы супервизора. Снимается ранее установленная блокировка прерывания от менее приоритетных задач, после чего управление передается диспетчеру.

Программа реконфигурации для головного процессора в стандартной ситуации получает управление от супервизора. Через блок внешних сигналов связей или общую память на все процессоры в специально организованные области памяти рассылается текущее значение таймера. В свою очередь, в память П1 также поступают отметки времени от остальных активных процессоров, вытесняя пришедшие ранее. Каждая из этих отметок сравнивается с текущим значением t таймера П1. Если значение отметки, пришедшей от процессора Пi, превышает значение t - 2?, процессор Пi признается активным. Отрезок времени длиной 2? принимается во избежание дополнительной синхронизации обмена отметками. Если последняя отметка от процессора Пi пришла ранее момента t - 2?, этот процессор считается вышедшим из активного состояния. Задания, выполнение которых начато, но не закончено на Пi, переводятся вновь в очередь заданий. Для этого используется список выполняемых заданий. Производится перенумерация процессоров Пj для j > i уменьшением их номера на единицу. Таким образом производится анализ временных отметок всех ведомых процессоров. По окончании анализа управление вновь передается супервизору.

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

Программа реконфигурации для ведомого процессора (программа реконфигурации 2) входит в состав диспетчера и включается по прерыванию в моменты времени k?, k = 0, 1, .... Устанавливается блокировка прерывания от работ с более низким приоритетом, т.е. от всех работ АСУ. Рассылается временная отметка всем процессорам с номерами, большими номера данного процессора. Производится анализ, отметился ли в области памяти данного процессора хотя бы один процессор с меньшим номером. Если отметился, уточняется номер данного процессора с помощью числа активных процессоров с меньшими номерами, после чего снимается установленная ранее блокировка прерывания и включается диспетчер.

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




Содержание  Назад  Вперед