Вы находитесь на странице: 1из 7

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Составители: д.т.н. проф. Кобак В.Г., ст. преп. Титов Д.В., ст.

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ преп. Золотых О.А.


ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УДК 681.3.681.5


УНИВЕРСИТЕТ

Кафедра “Программное обеспечение вычислительной техники и


автоматизированных систем”
Изучение методов составления списочных расписаний:
методические указания – Ростов н/Д: Издательский центр ДГТУ,
2012. – 14 с.

Методические указания
и контрольные задания к практическим, лабораторным занятиям,
курсовому проектированию по теме «Теория расписаний», для
дисциплин «Алгоритмические языки и программирование»,
«Алгоритм Крона (модификации)»

В методической разработке рассматривается алгоритм Крона и его


модификации. Даны задания по выполнению лабораторной
работы. Методические указания предназначены для студентов
специальностей 090102 «Компьютерная безопасность».

Ростов-на-Дону
2012
 Издательский центр ДГТУ, 2012 каждый момент времени отдельный процессор обслуживает не более
одного задания и выполнение задания не прерывается для передачи на
другой процессор. Требуется найти такое распределение заданий по
1. Общие сведения процессорам, при котором суммарное время выполнения заданий на
Предметом области исследования расписаний является круг задач каждом из процессоров было бы минимальным. Под расписанием
проектирования и организационного управления в различных системах, следует понимать отображение AR : T  P , такое что, если AR (ti )  p j
в которых требуется найти наилучшее (оптимальное) значение
, то говорят что задание ti  T , в расписании R назначенного на
выбранных критериев их функционирования с учетом имеющихся
ограничений. процессор p j  P . При сделанных выше допущениях, расписание
Программирование для многопроцессорных машинных систем можно представить разбиением множества заданий T на N
связано с распараллеливанием и синхронизацией вычислений и непересекающихся подмножеств T j ; j  1,..., N
организацией выполнения параллельных вычислительных процессов. Критерий, используемый для минимизации времени завершения
Это выдвигает целый ряд сложных задач, среди которых весьма обслуживания заданий, является минимальным критерием и
важными являются, расчет характеристик времени и количества
определяется в следующем виде: f r  max f j  min , где
операций, требующихся для выполнения параллельных программ, и l  j n

построения расписаний (планов), выполнения параллельных программ fj   (t ) - время завершения работы процессора
i pj .
на многопроцессорных и многомашинных вычислительных системах. ti T j

Модели параллельных программ и операционные характеристики


процессов их выполнения служат основой для планирования Задача №1
параллельных вычислительных процессов, т.е. для построения Для примера рассмотрим задачу N  M , где N  3 , M  7 .
расписаний указанных процессов. Расписания параллельных Исходный вектор заданий T  [5 10 15 7 4 22 5] . Решим
вычислительных процессов определяют порядок выполнения приведенными ниже алгоритмами, нахождения расписаний.
программы на вычислительной системе, включая распределение частей
программы по процессам. С увеличением числа распределяемых частей 3. Алгоритмы списочных расписаний
программ и количества используемых процессоров сложность
построения оптимальных расписаний обычно резко возрастает. Поэтому 1 Алгоритм Крона
важное значение имеют простые в построении и удобные в реализации Принцип действия алгоритма Крона можно описать в два этапа.
приближенные расписания параллельных вычислительных процессов, Первый этап заключается в случайном распределении множества
близкие к оптимальным с точки зрения времени выполнения заданий на множество приборов, второй этап уточняет полученное
параллельных программ. распределение. Алгоритм первого этапа можно представить в виде
последовательности шагов:
2. Постановка задачи Ш1. Сгенерировать случайное число pi – номер прибора, равномерно
Имеется вычислительная система (ВС), состоящая из N распределённое на интервале [1,N]. Инициализировать j = 1.
несвязанных идентичных устройств (приборов, процессоров и т.п.) Ш2. Назначить на прибор с номером pi j-ое задание. Увеличить j = j + 1.
P  { p1 , p 2 ,..., p n } Ш3. Проверить, больше ли значение j количества заданий M. Если
На обслуживание в ВС поступает набор из M независимых условие выполняется, то прекратить распределение, а иначе перейти к
параллельных заданий (работ) T  {t1 , t 2 ,..., t m } известно время шагу 1.
Второй этап – уточнение, включает следующие шаги:
решения  (t i ) задания t i на любом из устройств. При этом каждое
задание может выполняться на любом из устройств (процессоре), в
Ш1. Вычислить время загрузки каждого прибора {T j} ( j = 1,..,N ) путем p1 4 22 
суммирования времен выполнения заданий загруженных в каждый j-й R  p 2 5 15  ,
прибор.
Ш2. Из полученного множества {T k} выбрать номера приборов с p3 10 7 5
максимальным Tmax и минимальным Tmin значениями из набора {Tk} Далее выполняем второй этап алгоритма Крона. На шаге 1
соответственно. вычисляем время загрузки каждого прибора.
Ш3. Для каждого прибора с минимальной и максимальной загрузкой p1 4 22  f1 ( p1 )  26
проверить условие по принципу каждый с каждым R  p 2 5 15  , f 2 ( p 2 )  20
tkmax – tlmin < ,
где  = Tmax - Tmin, k,l = 1,.., M. При этом tkmax > tlmin. p3 10 7 5 f 3 ( p3 )  22
Если условие выполняется, то перейти к следующему шагу, а иначе На следующем шаге в соответствие с полученным множеством
прекратить выполнение алгоритма. {Tk }  ( f1 ( p1 ), f 2 ( p 2 ), f 3 ( p3 ))  (26,20,22) выбираем приборы с
Ш4. Переставить значения tk и tl местами и перейти к шагу 1. максимальной max(Tk )  26 и минимальной min(Tk )  20 загрузкой,
т.е. получаем первый p1 и второй p2 приборы.
Решим задачу №1 алгоритмом Крона:
Ш1. Генерируется число i из интервала [1,3]. Пусть i = 2. Согласно Так же нужно организовать проверку: нет ли среди заданий
Ш.2 На устройство p2 назначается для выполнения j-е задание, на прибора p1 (с максимальной загрузкой) время выполнения которых
меньше .
текущей итерации j = 1, т.е. t1 ,  (t1 )  5 . Расписание на 1-вом шаге:
В данном случае такое задание есть t1max < . Поэтому это задание
p1
переходит в прибор p2 и распределение заданий выглядит следующим
R  p2 5 образом:
p3  p1  22  f1 ( p1 )  22
Генерируем номер следующего прибора, пусть i = 3 т.е. p3 . R  p 2 5 15 4 , f 2 ( p 2 )  24
Назначаем следующую по порядку работу t2 , (t2 )  10 Расписание на p3 10 7 5 f 3 ( p3 )  22
2-ом шаге примет вид: Снова пересчитываются значения загрузки приборов и
p1  выбираются приборы с максимальной и минимальной загрузкой. При
R  p2 5 данных значениях это p2 и p1 соответственно. Осуществляется
p3 10 проверка: нет ли среди заданий прибора p2 (с максимальной загрузкой)
И снова генерируем номер следующего прибора, пусть i = 2 т.е. время выполнения которых меньше . При данных значениях времени
p2 . Назначаем следующую по порядку работу t3 , (t3 )  15 выполнения заданий, загруженных в p2 и значения  = 2, таких заданий
Расписание на 3-ем шаге примет вид: нет.
p1   Теперь можно организовать перебор заданий, загруженных в
первый и второй прибор по принципу каждый с каждым и проверять
R  p 2 5 15
условие
p3 10  tkmax – tlmin < .
Выполнив все итерации, получаем расписание R При этом важно, чтобы tk > tlmin. max
Начнём проверку с первого задания, загруженного в прибор p2 . p1 p2 p3 p1 p2 p3
Проверяем условие 5 > 22 – ложь. Переходим к следующему заданию и
a11 a21 a31 a11 a21 a31
проверяем условие 15 > 22 – выражение ложно. Опять берём следующее
задание и проверяем условие 4 > 22 – ложь. a12 a22 a32 a12 a22 a32
Поскольку условие ни разу не выполнилось, следовательно, ни a13 a23 a33 a13 a23 a33
одной перестановки не совершалось, а значит, никаких улучшений в a14 a34 a14 a34
распределении сделать нельзя и алгоритм завершает свою работу.
a15 a15
Итак, в результате выполнения итераций, получено расписание R
p1  22  Tmax Tmin Tmax Tmin
R  p2 5 15 4 (a11+a12) – (a21+a22) <  (a11+a12) – (a21+a23) < 
p3 10 7 5
p1 p2 p3 p1 p2 p3
Критерий оценки алгоритма – максимальное время завершения
a11 a21 a31 a11 a21 a31
выполнения работ: max( f1 ( p1 ), f 2 ( p 2 ), f 3 ( p3 ))  max(22,24,22) =24
a12 a22 a32 a12 a22 a32
2 Модификации алгоритма Крона a13 a23 a33 a13 a23 a33
Модификация заключается в случайном начальном a14 a34 a14 a34
распределении множества заданий, затем уточнении полученного a15
a15
распределения по алгоритму Крона, и дополнительном уточнении.
Tmax Tmin Tmax Tmin
Дополнительное уточнение будет осуществляться посредством обмена
парами заданий между приборами с максимальным Tmax и минимальным
Tmin значениями из набора {Ti} при выполнении условия q max - qmin < , (a11+a12) – (a22+a23) <  (a11+a13) – (a21+a22) < 
где pmax = pimax + pjmax, pmin = pkmin + plmin,  = Tmax - Tmin, i, k = 1,2,..,m-1, j, l =
2,3,..,m (m – количество заданий). После каждой операции обмена p1 p2 p3
значения {Ti} пересчитываются, выбираются новые два прибора с Tmax и a11 a21 a31
Tmin и процесс проверки указанного выше условия повторяется. Если
a12 a22 a32
сравнение с Tmax проведено для каждого Tmin и условие ни разу не
выполнилось, то алгоритм завершает свою работу. a13 a23 a33
Для большего понимания принципов работы модифицированного a14 a34
алгоритма Крона приведём его графическую интерпретацию. a15
Пусть на вход модифицированного алгоритма Крона поступает Tmax Tmin
множество из 12 заданий распределённое случайным образом на 3
прибора. Далее вычисляется суммарная загрузка каждого прибора, в (a11+a13) – (a21+a23) < 
результате чего получаем множество T = {T1, T2, T3,}. Из полученного Рисунок 1 – Итерационный процесс выбора двух пар заданий для обмена
множества {T} выбираем Tmax и Tmin. На следующем этапе начинаем
Пусть условие (a11+a13) – (a21+a23) <  выполняется, тогда
итерационный процесс в ходе которого необходимо суммировать пары
задания a11 и a13 из первого прибора необходимо «перебросить» во
заданий из Tmax и Tmin и проверять условие pmax - pmin < . Графическая
интерпретация итерационного процесса приведена на рисунке 1. второй прибор, а задания а21 и а23 со второго прибора
«перебросить» на первый прибор. В результате получим же алгоритмов, но при увеличении количества приборов эффект
распределение, приведённое на рисунке 2. уменьшается. При увеличении количества заданий и приборов, порядок
p1 p2 p3 совмещения «модифицированный алгоритм - исходный алгоритм»
несколько лучше обратного порядка совмещения.
a12 a22 a31
a14 a11 a32
a15 a13 a33 4. Варианты заданий
а21 a34 Кол Кол Значения исследуемых критериев
-во -во
a23 при зад Opt Крона +
Модификация +
бор ани Крона Модификаци
Крона
ов й я
Рисунок 2 – Распределение, полученное в результате обмена заданиями
После этого, значения множества {T} пересчитываются и для 130,
приборов с Tmax и Tmin итерационный процесс повторяется. И, так до тех 4 19 136,1 136,1 136,24
69
пор, пока условие qmax - qmin <  ни разу не выполнится.
Следует заметить, что для работы алгоритма Крона необходимо 104,
5 19 110,35 110,35 110,37
сформировать начальное распределение множества заданий по приборам, 56
которое затем уточняется. В данном случае уточнение производится с 87,0
помощью двух алгоритмов – исходного алгоритма Крона и его 6 19 101,84 101,84 101,77
9
модифицированного алгоритма. То есть, получив начальное
распределение для его уточнения можно использовать сначала исходный 254,
4 37 255,95 255,95 255,9
алгоритм Крона, а потом на основе его результатов модифицированный 54
или наоборот. Здесь возникает вопрос о влиянии порядка использования 203,
уточняющих алгоритмов. Смысл данной работы заключается в том, чтобы 5 37 208,18 208,18 208,12
59
исследовать приведённую модификацию алгоритма Крона и ответить на
поставленный вопрос. 169,
6 37 177,38 177,38 177,24
В рамках исследования предложенных алгоритмов поставлены 54
вычислительные эксперименты. В ходе экспериментов были случайным Задание определяется согласно № - номера студента в списке, по
образом сгенерированы по 100 векторов загрузки, содержащие задания в приведенным ниже таблицам (Таблица 1, Таблица 2, Таблица 3). Алг. -
диапазоне [25,30]. Полученные результаты усреднялись по количеству название алгоритма, который необходимо запрограммировать. Параметр
экспериментов. В сводной таблице 1 представлены результаты n-определяет число устройств. m – количество работ, выбирается одно
экспериментов. значение из указанного отрезка в таблице 3, T – множество весов работ,
Таблица 1 – Усредненные значения критериев случайным образом берется m работ в пределах указанных в таблице 3.
Например, если студент в списке под номером №5, то Алг. =
На основе данных приведённых в таблице можно сделать вывод о “Критический путь”, n = 4, m выбирается произвольно в отрезке [20,25]
том, что порядок использования уточняющих методов играет важную m = 21, T формируется из n работ, вес которых выбирается случайным
роль и в данном случае порядок совмещения «исходный алгоритм - образом в отрезке [20,35].
модифицированный алгоритм» при количестве заданий равном 19 даёт
больший эффект по сравнению с обратным порядком совмещения этих Таблица 1
№ 1 2 3 4 5 6 7 8 9 10 11 12
Алг. Крона + Модификация Модификация + Крона
n 2 3 4 2 3 4
m, T 1 2 1 2 1 2 1 2 1 2 1 2

5. Литература
1. Коффман Э.Г. “Теория расписания и вычислительные машины” –
M.: “Наука”, 1987

2. Романовский И.В. “Алгоритмы решения экстремальных задач” –


М.: “Наука”, 1977

3. Пашкеев С.Д., Минязов Р.И., Могилевский В.Д. “Машинные


методы оптимизации в технике связи” – М.: “Связь”, 1976.

Редактор __________________
_________________________________________________________
ЛР № 04779 от 18.05.01. В набор В печать
Объем 0,5 усл.п.л., уч.-изд.л. Офсет. Формат 60x84/16.
Бумага тип №3. Заказ № Тираж 140.
_________________________________________________________
Издательский центр ДГТУ
Адрес университета и полиграфического предприятия:
344010, г. Ростов-на-Дону, пл. Гагарина, 1.