3. Далее если общих ресурсов работающих процессоров хватает для распределения задания, то находится рабочий процессор со свободными ресурсами, и от задания отделяется часть, которая полностью займет свободные ресурсы этого процессора. От остальной части вычитается распределенная часть. После чего алгоритм запускается снова - п.1 (рекурсия).
4. Если же и общих ресурсов работающих процессоров не хватает, то задача ставится в очередь на выполнение и выдается сообщение о том, что система перегружена.
5. Далее при завершении выполнения какой-либо задачи (и следовательно освобождение ресурсов процессора) задачи из очереди поступают в систему (снова вызывается функция распределения задач – п.1).
После запуска программы на экране появляется главное окно рис.1., в котором изображена структура системы. После выбора пункта «Параметры» в меню File программа предлагает ввести задачи (количество необходимых ресурсов и время выполнения) и распределяет их на процессоры. Неработающие процессоры зачеркиваются крестиком, а процессоры, загруженные на сто процентов – закрашиваются черным цветом.
Также возле каждого процессора отображается его загруженность в процентах.
В специальном окне информации можно посмотреть какая задача выполняется на каком процессоре, сколько ресурсов она занимает на данном процессоре, а также время, оставшееся до конца выполнения задачи.
Кнопка «Добавить задачу» - вводит задачу в систему .
Кнопка «Сломать» - служит для вывода процессора из строя (удаления из системы).
Кнопка «Таймер» - служит для имитации течения времени в системе.
Результат работы программы.
На рис. 1 приведена общая структура системы.
Рис. 1 Главное окно программы.
Далее на рис. 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 Удаление задачи из системы при окончании времени ее выполнения.
Рис. 4 Задача ставится в очередь на выполнение.
На рис. 5 задача 1 (Р= 120) вышла из системы и освободила CPU 1 (P=100) и
CPU 2 (P=20), а часть задачи 4 (Р=70) из очереди занимает ресурс CPU 1 (P=70).
Рис. 5 Задача из очереди занимает освободившийся ресурс.
В соответствии с заданием была разработана система и разработан алгоритм перераспределения заданий. В процессе тестирования работы, алгоритм работает корректно и выполняет все требуемые задачи: перераспределение и удаление заданий. Среди систем, реализующих непрерывную работу программ, этот алгоритм наиболее выгоден. Т.к. не требуется дополнительное количество резервных процессоров, не нужно устройство переконфигурации связей между ПЭ, а всю работу выполняет маленькая микропрограмма в ПЗУ/ОЗУ. Таким образом система будет продолжать работать и в случае выхода из строя каких-либо процессоров (в отличие от других систем где работа прекращается).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.