Структура вычислительной системы: трехмерная с размерностью 4х4х3, страница 2

3.  Далее если общих ресурсов работающих процессоров хватает для распределения задания, то находится рабочий процессор со свободными ресурсами, и от задания отделяется часть, которая полностью займет свободные ресурсы этого процессора. От остальной части вычитается распределенная часть. После чего алгоритм запускается снова - п.1 (рекурсия).

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

5.  Далее при завершении выполнения какой-либо задачи (и следовательно освобождение ресурсов процессора) задачи из очереди поступают в систему (снова вызывается функция распределения задач – п.1).


Описание интерфейса программы.

После запуска программы на экране появляется главное окно рис.1., в котором изображена структура системы. После выбора пункта «Параметры» в меню File программа предлагает ввести задачи (количество необходимых ресурсов  и время выполнения) и распределяет их на процессоры. Неработающие процессоры зачеркиваются крестиком, а процессоры, загруженные на сто процентов – закрашиваются черным цветом.

Также возле каждого процессора отображается его загруженность в процентах.

В специальном окне информации можно посмотреть какая задача выполняется на каком процессоре, сколько ресурсов она занимает на данном процессоре, а также время, оставшееся до конца выполнения задачи.

Кнопка «Добавить задачу» - вводит задачу  в систему .

Кнопка «Сломать» - служит для вывода процессора из строя (удаления из системы).

Кнопка «Таймер» - служит для имитации течения времени в системе.


Результат работы программы.

На рис. 1  приведена общая структура системы.


Рис. 1  Главное окно программы.

Далее на рис. 2  приводится пример работы системы при выводе из строя нескольких узлов (неработающие узлы обозначены крестом). При этом происходит перераспределение задач на свободные процессоры.


Рис. 2  Перераспределение задач при выходе из строя процессора.

В системе находится две задачи (задача 1  и задача 3). Трудоемкость задачи 1 равна 120, она распределена на процессоры CPU 1 (Р=100) и CPU 2 (P=20), оставшееся время выполнения 3 (время = 3); трудоемкость задачи 3 равна 900 (задача 3 распределена на процессоры CPU 2 (Р=80), 3 (Р=100) , 4 (Р=100) , 6 (Р=100) , 7 (Р=100) , 9 (Р=100) , 11 (Р=100) , 12 (Р=100) , 13 (Р=100) , 14 (Р=20), т.к. CPU 5,8,10 – выведены из строя).   


На рис.3  у задачи 3 закончилось время выполнения и она была удалена из системы.

Рис. 3 Удаление задачи из системы при окончании времени ее выполнения.


На рис. 4 представлена ситуация, когда при выводе из строя процессора CPU 27 система оказывается перегруженной, часть задачи с CPU 27 перераспределяется на свободный ресурс CPU 48 (Р=30), а остальная часть (Р=70) ставится в очередь на выполнение и ожидает когда в системе появится свободный ресурс.


Рис. 4  Задача ставится в очередь на выполнение.

На рис. 5  задача 1 (Р= 120) вышла из системы и освободила CPU 1 (P=100) и

CPU 2 (P=20), а часть задачи 4 (Р=70) из очереди занимает ресурс CPU 1 (P=70).

       Рис. 5  Задача из очереди занимает освободившийся ресурс.

Выводы

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