Научная статья на тему 'Эффективные алгоритмы планирования вычислений в многопроцессорных системах реального времени'

Эффективные алгоритмы планирования вычислений в многопроцессорных системах реального времени Текст научной статьи по специальности «Математика»

CC BY
1070
140
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОГОПРОЦЕССОРНАЯ СИСТЕМА / ДОПУСТИМОЕ РАСПИСАНИЕ / ПРЕРЫВАНИЕ / ДИРЕКТИВНЫЕ ИНТЕРВАЛЫ / ЗАДАЧА НА БЫСТРОДЕЙСТВИЕ / MULTIPROCESSOR SYSTEM / PREEMPTIVE AND NO PREEMPTIVE JOBS / SCHEDULING

Аннотация научной статьи по математике, автор научной работы — Гончар Дмитрий Русланович, Фуругян Меран Габибуллаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Efficient scheduling algorithms in multiprocessor real time systems

We study a task scheduling problem for real-time multiprocessor systems and consider the cases when (a) – jobs are pre-emptive and allow for processor switch, (b) – jobs are not pre-emptive and processor switch are prohibited, (c) – only a part of tasks are pre-emptive and allow for processor switch. We suggest a number of approximate algorithms, provide simulation results, and carry out comparative analysis of the developed algorithms.

Текст научной работы на тему «Эффективные алгоритмы планирования вычислений в многопроцессорных системах реального времени»

УДК 519.86 ББК 22.18

ЭФФЕКТИВНЫЕ АЛГОРИТМЫ ПЛАНИРОВАНИЯ ВЫЧИСЛЕНИЙ В МНОГОПРОЦЕССОРНЫХ СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ

Гончар Д. Р.1, Фуругян М. Г.2

(ФГБУН Вычислительный центр им.А.А. Дородницына РАН, Москва)

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

Ключевые слова: многопроцессорная система, допустимое расписание, прерывание, директивные интервалы, задача на быстродействие.

1. Введение

Одна из основных задач, возникающих при разработке программного обеспечения многопроцессорных вычислительных систем жесткого реального времени (МПВСРВ, систем, в которых заданиям сопоставляются директивные сроки, не подлежа-

1 Дмитрий Русланович Гончар, кандидат технических наук (rtsccas@ya. т).

2 Меран Габибуллаевич Фуругян, кандидат физико-математических наук, доцент (Москва, ул. Вавилова, д. 40, тел. (499) 135-40-29).

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

Рассматриваемый класс задач имеет, помимо чисто научной, большую практическую важность. Потребность в быстрых алгоритмах, составляющих многопроцессорные расписания, часто возникает в задачах оперативного управления на основе обработки и анализа поступающих в реальном времени данных. В качестве примеров можно привести задачи управления работой ядерных реакторов, управления испытаниями летательных аппаратов, анализа текущей ситуации в космосе на предмет оповещения об атаке баллистическими ракетами и многие другие практические задачи управления, в которых для принятия адекватных решений нужно успевать обрабатывать данные в темпе поступления. Корректность систем реального времени зависит не только от правильности результатов ее вычислений, но и от времени, за которое эти результаты были получены. В секторе проектирования систем реального времени вычислительного центра им. А.А. Дородницына РАН разрабатывается инструментальная система автоматизации проектирования вычислительных систем реального времени. Составление расписаний реального времени - важная часть подобных систем, так как все задания должны быть выполнены в срок. В настоящей статье предложены некоторые алгоритмы, разработанные авторами для данной системы. В разделе 2 рассматривается задача составления многопроцессорных расписаний с прерываниями и переключениями с одного процессора на другой для случая, когда заданы директивные интервалы. В разделе 3 рассматривается задача составления оптимального по быстродействию расписания без прерываний и переключений. В разделе 4 рас-

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

2. Построение расписаний с прерываниями

В настоящем разделе рассматривается задача составления допустимого расписания с прерываниями при заданных сложностях (или объемах) работ, директивных интервалах и производительности процессоров. Разработаны эвристические алгоритмы для случая, когда издержки на обработку прерываний и переключений не учитываются [19]. Вычислительная сложность предложенных алгоритмов значительно меньше сложности точного потокового алгоритма, что подтверждается также машинными экспериментами (выигрыш во времени составляет до нескольких тысяч раз). При этом процент некорректной работы алгоритмов незначительный (от 1 до 20% в зависимости от параметров задачи). Эвристический алгоритм работает некорректно, если он не находит допустимого расписания в том случае, когда оно на самом деле есть.

2.1. ПОСТАНОВКА ЗАДАЧИ

Рассматривается вычислительная система, состоящая из m процессоров. Каждый процессор ], ] = 1, ..., m, характеризуется производительностью 51. Предполагается, что процессоры упорядочены по невозрастанию производительностей (51 > s2 > ... > sm). Задан набор работ N = {1, 2, ..., п}, подлежащих выполнению. Каждая работа / характеризуется своим директивным интервалом А, = [Ь,(т.е. работа I может быть начата не ранее момента времени Ь, и должна быть выполнена не позднее момента времени а также сложностью (или объемом работы процессоров по ее выполнению) Qi, г = 1, ..., п. Работа сложности Qi может быть выполнена на процессоре ] за время Qi/sj. В фиксированный момент времени каждая работа может выполняться не более чем одним процессором и каждый процессор может выполнять не более одной работы. При выпол-

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

2.2. ТОЧНЫЙ АЛГОРИТМ

Алгоритм, находящий точное решение рассматриваемой в этом разделе задачи, был разработан и реализован как комбинация полиномиальных алгоритмов, предложенных в [23] и [25]. Будем предполагать, что имеется t типов процессоров, каждый

из которых характеризуется скоростью Sj, у = 1, ..., t, всего име-

t

ется т,у = 1, ..., t, процессорову-го типа, т = ^т, .

1=1

В [23] доказывается, что такая задача может быть сведена к задаче поиска максимального потока в сети, построенной специальным образом. Для поиска максимального потока в построенной сети применялся алгоритм «поднять-и-в-начало», описанный в [9]. Предложенный алгоритм находит точное решение задачи о многопроцессорном расписании за время О^ п ), допуская при этом не более 2(п2 + 2тп - 3п - т + 1) прерываний. Несмотря на то, что предложенный алгоритм является полиномиальным, время его работы в ряде случаев является слишком большим для практического применения в задачах достаточно большой размерности, имеющих практический смысл и возникающих при разработке МПВСРВ. Одним из решений возникшей проблемы может быть разработка существенно более быстрого эвристического алгоритма, который находил бы правильное решение задачи в достаточно широком спектре случаев.

Построим и проанализируем два эвристических алгоритма, эффективно решающих поставленную задачу. Оба эти алгоритма будут являться обобщениями однопроцессорного алгоритма Коффмана [15] на случай нескольких процессоров с различны-

ми производительностями. Назовем эти два алгоритма Эвристика 1 и Эвристика 2.

2.3. ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ

Пусть т < т2 < ... < т, k < 2n, - все различные моменты времени, в каждый из которых либо завершается выполнение одной или нескольких работ, либо наступает готовность одной или нескольких работ, либо происходят оба эти события. Работа i завершается, когда суммарный объем работы процессоров по ее выполнению становится равным Qi (если работа в течение интервала времени величиной А выполняется процессором j, то объем выполненной работы составляет SjА). В момент т наступает готовность работы i, если т = bi. Величины т вычисляются в ходе работы алгоритма следующим образом. Пусть a\ < a2 < ... < ap - все различные величины b, i = 1, ..., n. Тогда полагаем т = a1. Пусть А j = Qi / Sj, если на процессоре j в

момент т выполняется работа i (Qi - невыполненный объем работы i к моменту т), и Aj = 0, если процессор j в момент т простаивает. Пусть А = min {А . : А . > 0} . Далее, полагаем

j=1,...,m j j

т1+1 = min{т + А, av}, если т е [av_1, av), 1 < v <p, и т+1 = т + А, если т > ap.

Для каждого момента т, I = 1, ..., k, определим два множества: C - множество работ, выполняемых в момент т, и D - множество работ, готовых к выполнению в момент т. Введем обозначения: если C Ф 0, то i1 - это работа из C с наибольшим директивным сроком, т.е. di = max f; если D Ф 0, то

1 ieC

i2 - это работа из D с минимальным директивным сроком, т.е. di = min f . Алгоритм Эвристика 1 основан на следующих трех

2 ieD

процедурах.

Процедура 1. Если в момент времени l наступает готовность работы i0, то i0 включается в D. Если таких работ несколько, включение выполняется поочередно в произвольном порядке.

Процедура 2. Если в момент времени т1 работа 70 е С, которая выполнялась на процессоре у0, завершается, то она исключается из С, а процессор у0 освобождается. Если таких работ несколько, данная процедура выполняется для каждой из них в произвольном порядке.

Процедура 3. Если в момент времени т1 не все процессоры заняты, то работа 72 е D назначается на свободный процессор с минимальным номером, включается в С и исключается из D. Если свободных процессоров нет, di > di и работа 7\ выполнялась на процессоре у0, то работа 7\ снимается с процессора у0, работа 72 исключается из D, назначается на процессор у0 и включается в С, а работа 7\ включается в D.

Величины fi для работ 7 е С хранятся в виде кучи с максимальным элементом в вершине, а величины fi для работ 7 е D хранятся в виде кучи с минимальным элементом в вершине. Таким образом, в вершине первой кучи хранится значение di , а

в вершине второй кучи - значение di . Добавление элементов в

множества С и D и исключение их предполагает такие преобразования этих множеств, при которых сохраняется основное свойство кучи [9].

Алгоритм Эвристика 1.

Для каждого I = 1, 2, ..., k выполнять шаги 1 - 3.

1) Вычислить т1.

2) Выполнить процедуру 1. (Пусть h - число работ, готовность которых наступила в момент т1).

3) Выполнить процедуру 2.

4) Выполнять процедуру 3 до тех пор, пока изменяется множество D (но не более h раз).

Вычислительная сложность шага 1 и процедур 1, 2 и 3 (для одной работы) составляет соответственно О(т), О(^2 п), О(^2 п) и О(т + п), а алгоритма Эвристика 1 -О(п(т + п)). Число прерываний в полученном расписании есть О(п).

Алгоритм Эвристика 2 отличается от Эвристики 1 тем, что при назначении работы на процессор сначала она включается в множество С, после чего все работы из С переназначаются на процессоры так, что работа с меньшим директивным сроком назначается на процессор с меньшим номером (т.е. на процессор с большей производительностью). В этом случае сложность процедуры 3 (для одной работы) составляет 0(т т + п) (с учетом сортировки множества С), а сложность алгоритма Эвристика 2 составляет 0(п (т т + п)). Число прерываний в полученном расписании есть О(тп).

2.4. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТОЧНОГО И ЭВРИСТИЧЕСКИХ АЛГОРИТМОВ

Были проведены машинные эксперименты по сравнительному анализу точного и эвристических алгоритмов. Машинные программы были разработаны Д.С. Гузом, который также провел вычислительные эксперименты. В таблице 1 приводится среднее время (в условных единицах) работы алгоритмов при различных значениях параметров. Как видно из таблицы 1, алгоритм Эвристика 1 является более быстрым, чем Эвристика 2, а при больших размерностях задачи оба эти алгоритма в тысячи раз быстрее точного алгоритма.

Таблица 1. Среднее время работы точного и эвристических

алгоритмов в зависимости от размерности задачи

Размерность задачи Среднее время работы

Число процессоров Число работ Эвристика 1 Эвристика 2 Точный алгоритм

4 10 0,03 0,06 1,23

8 25 0,11 0,32 14,32

16 50 0,28 1,36 1090,87

16 100 1,23 4,86 6311,1

64 500 3,45 14,6 39600

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

одних и тех же условиях последовательно Эвристики 1, Эвристики 2 и алгоритма поиска точного решения. Было проведено около 25 000 серий численных экспериментов с рандомизированными и плавно варьируемыми переменными в условиях исходной задачи. В приведенной ниже таблице 2 показано, какой процент от общего числа испытаний составляют эксперименты, в которых эвристические алгоритмы Эвристика 1 и Эвристика 2 отработали некорректно. На основании этой таблицы можно сделать вывод, что Эвристика 2 работает некорректно существенно реже, чем Эвристика 1, и поэтому является более предпочтительным алгоритмом (несмотря на то, что Эвристика 2 требует несколько больше вычислительных ресурсов, чем Эвристика 1, а также генерирует расписание с большим, чем эвристика 1, числом прерываний).

Таблица 2. Процент некорректной работы эвристических

алгоритмов в зависимости от размерности задачи

Размерность задачи % некорректной работы

Число процессоров Число работ Эвристика 1 Эвристика 2

4 10 18% 2%

8 25 19% 3%

16 50 22% 2%

16 100 19% 1%

64 500 17% 2%

Таким образом, можно эффективно находить допустимые расписания при помощи алгоритмов Эвристика 1 и 2, лишь иногда (когда оба эвристических алгоритма дали отрицательный ответ) прибегая к точному алгоритму.

3. Алгоритмы решения минимаксной задачи составления расписания без прерываний

Для задачи составления оптимального по быстродействию расписания без прерываний и переключений в многопроцессорной системе разработан ряд точных и приближенных алгорит-

мов [16, 20]. Определяется эффективность алгоритмов и проводится их сравнительный анализ.

3.1. ПОСТАНОВКА ЗАДАЧИ

В отличие от задачи, рассмотренной в разделе 2, в настоящем разделе предполагается, что при выполнении работ не допускаются прерывания и переключения. Кроме того, директивные интервалы не задаются, а решается задача на быстродействие. Время выполнения работы i на процессоре j равно

% = Qi/Sj, i = 1, •••, n, j = 1, ..., m.

Под расписанием выполнения работ будем понимать разбиение множества N на m непересекающихся подмножеств

m

N1, N2, ..., Nm (N = U Nj; N ji П N h = 0 при j ф j2).

j=1

Работы из множества Nj приписываются процессору j и выполняются на нем одна за другой в произвольном порядке. Величина Bj = - загруженность процессора j, j = 1, ..., m,

ieNj

а max — Bj - это длина расписания. Задача заключается в

построении оптимального по быстродействию расписания, т.е. расписания минимальной длины.

Известно [9], что данная задача является NP-трудной в сильном смысле и все известные точные алгоритмы их решения имеют переборный характер, а точных полиномиальных (эффективных) алгоритмов в настоящее время не известно. Число шагов переборного метода, как правило, растет экспоненциально в зависимости от размеров задачи. Поэтому возникает необходимость в разработке приближенных методов.

Подобные задачи широко освещены в литературе. Отметим, например, такие методы, применяемые при их решении, как случайный и исчерпывающий поиск [8, 13], методы математического программирования [14], метод ветвей и границ [1], муравьиные алгоритмы [11, 21], поиск с запретами [24], вероятностные алгоритмы [27], генетические алгоритмы [12], метод

имитации отжига [26, 28], различные эвристические алгоритмы [4, 10, 22] и др.

3.2. ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ.

Эвристический алгоритм «Процессор с ранним окончанием первым» (ПРОП). Работа этого алгоритма состоит в следующем. На k-м шаге задание k назначается на тот процессор, суммарное время выполнения работ на котором с учетом данной работы минимальное. Иными словами, минимизируется по j величина (Bjj_1 + ), где Bjj_j - суммарное время выполнения

работ, назначенных на j-й процессор на первых k _ 1 шагах. После чего работа k назначается на процессор j. Вычислительная сложность алгоритма составляет O(nm).

Вероятностный алгоритм (ВА). Предлагаемый алгоритм основан на методе решения задачи упаковки, изложенном в [27]. Запишем поставленную задачу в виде задачи булевого линейного программирования:

m

(1) Z xß = 1, i = 1,..., n,

j=1

(2) ¿Xji Ty. < B, j = 1,..., m,

i=1

(3) xß e {0,1},

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(4) Z = B ^ min.

При этом работа i выполняется на процессоре j тогда и только тогда, когда Xji = 1. В силу условий (1) и (3) каждая работа будет выполнена ровно на одном процессоре (расписание без прерываний). Условие (2) - это ограничение на длину расписания, а в силу условия (4) будет найдено расписание с минимальной длиной.

Сначала найдем решение релаксационной задачи линейного программирования, в которой Xji e [0, 1]. Это может быть сделано, например, симплексным методом или одним из полиномиальных алгоритмов. Пусть в результате получена матрица с элементами Xji . Затем найдем такую целочисленную матрицу

|| Хр ||, аппроксимирующую Хц , что Р(х■ = 1) = х*■ и выполняется условие (1). Это можно сделать следующим образом. Заполним элементы матрицы || х■ || по строкам: для каждого р будем

брать последовательно элементы х ■ с ■ от 1 до п, полагая х ■

А № У*

равным 1 с вероятностью х■ . Если некоторый элемент х■,

полученный таким образом, окажется равным 1, то остальные элементы строки р полагаем равными 0. Матрица || х■ || определяет искомое расписание.

Псевдополиномиальный алгоритм (ПА). Теперь будем предполагать, что система состоит из т идентичных процессоров. Длительность работы ■ е N на любом процессоре равна и. Задан общий директивный срок Т выполнения работ N. Предполагается, что и < Т при всех ■ е N. Требуется определить, существует ли допустимое расписание для работ N (т.е. такое расписание без прерываний и переключений, при котором каждая работа завершается не позднее момента времени Т), и построить его, если оно существует. Будем строить допустимое расписание с помощью (п + 1)-уровневого дерева решений, каждый лист которого соответствует одному из возможных вариантов распределения работ по процессорам при заданном директивном сроке. Корень дерева (нулевой уровень) соответствует множеству всех вариантов распределения. С корнем ребрами связаны т вершин первого уровня, соответствующих множеству всех вариантов распределения, в которых первая работа назначена на определенный процессор. Каждой такой вершине соответствует т-мерный вектор, р-я компонента которого равна временной загруженности р-го процессора. Таким образом, вершинам первого уровня дерева решений соответствуют т-мерные векторы (¿ь 0, ..., 0), (0, 0, ..., 0), ..., (0, ..., 0, ¿1) (всего т векторов). Каждая вершина первого уровня связана ребрами с т вершинами второго уровня, соответствующими множеству всех вариантов распределения работ по процессорам, в которых первые две работы закреплены за определенными процессорами. Например, вершина первого уровня

(0, ..., 0, t1, 0, ..., 0) связана с т вершинами второго уровня, которым соответствуют т-мерные векторы 0, ..., 0, t1, ..., 0), (0, t2, 0, ..., 0, tl, ..., 0), ..., (0, ..., t2, tl, 0, ..., 0), (0, ..., tl + t2, 0, ..., 0), ..., (0, ..., tl, t2, ..., 0), (0, ..., tl, 0, ..., t2). Далее, с вершинами второго уровня дерева решений связаны вершины третьего уровня и т.д. Каждая вершина (сь с2, ..., ст) уровня k связана ребрами с т вершинами уровня k + 1, k = 2, ..., п - 1, которым соответствуют т-мерные векторы (с1 + tk+1, с2, ..., ст),

(c1, с2 + tk+1, cm), (c1, c2, ст

Если хотя бы одна компонента вектора, приписываемого вершине, превышает величину Т, то данная вершина в дерево решений не включается и дальнейшее ветвление из нее не производится. Допустимое расписание в поставленной задаче существует в том случае, если построенное дерево решений содержит хотя бы одну вершину п-го уровня (т.е. если вектор (т1, ..., тт), соответствующий некоторой вершине п-го уровня, содержится в т-мерном кубе с ребром Т или Ту < Т при всех у = 1, ..., т). Для построения допустимого расписания следует построить путь, соединяющий вершину п-го уровня с корнем дерева решений. Если вершина ^го уровня (к = 1, ..., п) в этом пути соответствует процессору у, то работа k назначается на процессор у.

Определим вычислительную сложность предложенного алгоритма. Число вершин дерева решений, которые могут быть получены в результате работы алгоритма, не превосходит числа точек с целочисленными координатами в т-мерном кубе с ребром Т, т.е. (Т + 1)т. Для каждой вершины строится не более т вершин следующего уровня. Таким образом, сложность алгоритма составляет 0(т(Т + 1)т) операций с т-мерными векторами. Выполнение одной операции заключается в сложении одной компоненты вектора с числом 7 е N. Максимальное значение одной компоненты каждого вектора равно ^ ti , т.е. длина

¡еЫ

слова, соответствующего одной компоненте каждого вектора, с которым работает алгоритм, есть 0(^2 ^ t¡). Таким образом,

iеN

предложенный алгоритм является псевдополиномиальным при фиксированном значении т.

Агрегирующий алгоритм. Метод агрегирования для поставленной задачи заключается в том, что исходное множество заданий разбивается на несколько подмножеств, для каждого из которых применяется один из точных алгоритмов построения расписания. Из полученных таким образом расписаний строится расписание выполнения исходного множества заданий. Авторами были разработаны и исследованы несколько агрегирующих алгоритмов для случая, когда все процессоры идентичны. В этом случае для каждого задания ■ задается его длительность и, которая не зависит от процессора. Лучшие результаты были получены для многоуровневого агрегирующего алгоритма (МАА), который может быть описан следующим образом. Множество всех заданий, предварительно упорядоченных по не возрастанию длительностей, разбивается на ^ подмножеств. Если п кратно то в каждое подмножество попадает [п/k 1] соседних заданий. В противном случае в некоторые подмножества может попасть на одно задание больше, при этом разброс длительностей в пределах одного подмножества должен быть минимальным. Для каждого из полученных подмножеств с помощью ПА строится оптимальное т-процессорное расписание. Задания из одного подмножества, назначенные на один и тот же процессор, объединяются в одно задание, длительность которого равна сумме длительностей соответствующих заданий. В результате получаем множество из т^ агрегированных заданий, которое, свою очередь, может быть аналогично разбито на ^ подмножеств. После выполнения нескольких процедур агрегирования будет получено решение исходной задачи. При реализации данного метода полагалось ^ = [^/2]. Отметим, что подобный подход для решения задачи коммивояжера описан в [17].

3.3. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТОВ

Продемонстрируем результаты работы описанных выше алгоритмов. Машинные программы были разработаны

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

расписания; Д = ———х 100 % - относительная погрешность

(в процентах); ^ - время работы алгоритма (в условных единицах); т - количество процессоров; п - количество работ; ^ - число подмножеств заданий на первом уровне агрегирования при работе МАА. Для каждого набора (т, п) проводилось 50 экспериментов со значениями длительностей работ, полученных с помощью программного генератора случайных чисел, позволяющего получать псевдослучайные числа с равномерным распределением на отрезке [1, 1000]. Полученные значения погрешности и времени работы алгоритма затем усреднялись путем отбрасывания 5 самых лучших и 5 самых худших значений и вычисления среднего арифметического оставшихся значений.

Для случая различных процессоров в таблице 3 приведены результаты работы алгоритмов ПРОП, ВА и ПА, а также, для сравнения, одного из лучших ранее известных алгоритмов -алгоритма, основанного на методе имитации отжига (МИО), для пяти вариантов данных. Как видно из результатов расчета, из приближенных алгоритмов наиболее предпочтительным является ВА. ПА позволяет находить точные решения, однако для задач больших размерностей время его работы существенно превосходит время работы остальных алгоритмов. Для случая идентичных процессоров в таблице 4 приведены результаты работы алгоритмов МАА, ПРОП и МИО для шести вариантов данных. Как видно из результатов расчета, наименьшую погрешность имеет МАА, однако для задач больших размерностей время его работы существенно превосходит время работы остальных алгоритмов. Время работы алгоритма ПРОП существенно меньше времени работы остальных алгоритмов. Что касается погрешности, то ПРОП ненамного уступает МИО, а в ряде случаев превосходит его.

Таблица 3. Сравнительные характеристики алгоритмов ПРОП, ВА, ПА и МИО_

Условия задачи ПРОП ВА ПА МИО

т = 2, п = 20 Д = 18,2, t = 0,001 Д = 6,1, t = 0,1 Д = 0, t = 0,02 Д = 12,6, t = 1,4

т = 2, п = 50 Д = 14,2, t = 0,002 Д = 3,1, t = 0,2 Д = 2,9, t = 320 Д = 16,4, t = 2,5

т = 8, п = 30 Д = 47,6, t = 0,001 Д = 46,2, t = 0,1 Д = 0, t = 120 Д = 46,3, t = 1,8

т = 2, п = 1000 Д = 13,6, t = 0,016 Д = 0,2, t = 1,0 — Д = 12,3, t = 8,7

т = 4, п = 5000 Д = 25,1, t = 0,042 Д = 0,1, t = 56 — Д = 22,9, t = 1,8

Таблица 4. Сравнительные характеристики алгоритмов МАА,

ПРОП и МИО

Условия задачи МАА ПРОП МИО

т = 2, п = 20, = 2 Д = 0,05, t < 1 Д = 0,5, t < 0,01 Д = 3,7, t = 1,5

т = 2, п = 100, 51 = 8 Д = 0,0, t = 1 Д = 2, t < 0,01 Д = 0,1, t = 2,1

т = 4, п = 20, 51 = 2 Д = 0,5, t = 2,1 Д = 15, t < 0,01 Д = 14,9, t = 1,6

т = 4, п = 100, 51 = 16 Д = 0,5, t = 12 Д = 1, t = 0,01 Д = 1,4, t = 2,4

т = 2, п = 1000, 51 = 16 Д = 0,5, t = 12 Д = 3,5, t = 0,02 Д = 0,8, t = 9,1

т = 4, п = 1000, 51 = 100 Д = 2,4, t = 317 Д = 3,5, t = 0,02 Д = 3,2, t = 12,4

4. Алгоритмы составления многопроцессорного расписания для неоднородного множества работ с директивными интервалами

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

4.1. ПОСТАНОВКА ЗАДАЧИ

В отличие от постановок, рассмотренных в разделах 2 и 3, предполагается, что множество работ N = N1 и N1 п N = 0, где N1 - непрерываемые работы, N2 - работы, допускающие прерывания и переключения с одного процессора на другой. Работы N1 могут выполняться только процессорами р = 1, ..., т1, т1 < т (процессорами первой группы), а работы N - как процессорами первой, так и процессорами второй группы ( = т1 + 1, ..., т).

Заданы объемы wi работ ■ е N. Для работ ■ е N1 установлен единый директивный интервал [0; Т], который не может быть нарушен. Для каждой работы ■ е N установлен директивный интервал [Ьи $] ($ - Ь1 > ¿). Выполнение работы ■ е N2 может быть начато не ранее момента Ь, а если она завершится в момент $, то штраф за несвоевременное выполнение работ N составит величину F = тахтах($ - $, 0). Требуется найти

iеN 2

такое расписание выполнения работ N, при котором все работы N1 выполняются в интервале [0; Т] и при этом штраф F минимален.

Задачи со смешанным типом работ мало освещены в литературе. Так, например, в [5] исследована задача на быстродействие, в [2, 3] предполагается, что каждая работа строго закреплена за конкретным процессором, на множестве работ

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

4.2. ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ НЕПРЕРЫВАЕМЫХ РАБОТ

Для построения расписания выполнения работ N на т1 процессорах первой группы используется приближенный оптимизационный мультиоценочный алгоритм с калибровкой [7], который, как показали численные эксперименты, имеет высокую точность и является достаточно быстрым. Если длина полученного расписания не превышает Т, строится расписание прерываемых работ (раздел 4.3). Далее будем предполагать, что построено расписание выполнения работ N и его длина не превосходит Т. Введем следующие обозначения:

М = {р:] = 1, ..., т1>; М2 = {р:] = т1 + 1, ..., т};

М = М1 и М2.

Для р е М1 определим величины: Qj - длина интервала загруженности процессора р; Lj = Т - 0;, Lj > 0; N1(j) - номера работ из N1, назначенных на процессор р; aij, ■ е Мр), - момент начала выполнения работы i процессором р.

4.3. ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРЕРЫВАЕМЫХ РАБОТ

Для выполнения работ N используются процессоры второй группы и частично процессоры первой группы. Каждой работе i е N приписывается заданная величина рь характеризующая ее срочность. Работы с меньшей величиной pi являются более срочными. Рассмотрим два варианта вычисления величин рв первом варианте pi = $; во втором pi = $ - bi - ti.

Пусть d1 < d2 < ... < ds - все различные величины Ь, i е N2.. Для интервала й; 1], k = 1, ..., 5 - 1, введем следующие обозначения:

N2(dk) - список номеров работ i е N2, готовых к выполнению в интервале [dk; dk+1\ (т.е. работ i е N2, для которых bi < dk); список N2(dk) будем хранить упорядоченным по неубыванию величин pi (т.е. первая работа в списке самая срочная);

T - момент времени, начиная с которого на процессор j можно назначить очередную работу из N2(dk);

Vj, j е M, - максимальное время, которое может быть выделено процессором j на выполнение работ в интервале [dk; dk+1\;

M11(dk) - номера процессоров первой группы, на которые можно дополнительно назначить работы из N2(dk) в интервале [dk; dk+1\, корректируя при этом построенное ранее расписание выполнения работ N\;

M12(dk) - номера процессоров первой группы, на которые можно дополнительно назначить работы из N2(dk) в интервале [dk; dk+1\, не корректируя при этом построенное ранее расписание выполнения работ N\.

При описании алгоритма составления расписания выполнения работ N2 будут использованы следующие процедуры.

1. Процедура ni(i0, j0) назначает работу i0 е N2(dk) на процессор j0 е M2 в интервале [dk; dk+1\.

Положить tio = wifj / s]fj; t = min(t^; v^). Работу i0 назначить

на процессор j0 в интервале [t,. ;t, +t\. Положить тh = т h +t ;

w = w -т-s . ; v. = v -т . Работу i0 исключить из N2(dk). Если

i0 i0 j0 i0 i0

w^ Ф 0 и k < S, то работу i0 включить в N2(dk+1).

2. Процедура M11(dk) строит множество M11(dk) и вычисляет величины Vj и т, j е M11(dk).

Множество M11(dk) определяется по правилу: M„(dk) = {j j е M1, Lj > 0, Q] > dk+1; 3 i е N1(]), dk < a^ < dk+1} Для каждогоj е Mn(dk) положить т. = min {a.. : dk < a.. };

j0 ieN1( j0) "j0 k 40

vj0 =min( dk+1 т l]0).

3. Процедура n2(i0, j0) назначает работу i0 е N2(dk) на процессор ]o е Mu(dk) в интервале [dk; dk+1\.

Положить ti = w, /s, ; т = min(t. ;v. ).

'0 '0 J» i0 j0 '

Для всех работ ' е N1(70), у которых а.. > т. , положить

Ус 70

а70 = а70 +т .

Назначить работу '0 на процессор 7 в интервале

[^70 ; Т.0 +Т].

Положить и>; = ж -т-5. ; X. = X -т; т. =т. +т;

Ч г0 .0 .0 .0 .0 .0

б,- = б,- +т; V,. = V,. -т.

.0 .0 .0 .0

Работу /0 исключить из N2^). Если ^ Ф 0 и к < 5, то работу '0 включить в N2^+1).

Если для .о условие принадлежности множеству М11{йк) не выполняется, то исключить у0 из М11{йк).

4. Процедура М12^к) строит множество М12^к) и вычисляет величины V.. и т,. е Ml2(dk).

Множество М12^к) определяется по правилу: М12 ^к ) = О' : . е М1, бу < dk+1 } . Для каждого .о е Ml2(dk) положить

т = тах{б;0; dk}; ^0 = ^+1 ^

5. Процедура Пз('0, .о) назначает работу /0 е N2(dk) на процессор .о е Ml2(dk) в интервале [dk; dk+1].

Положить г. = ж- / 5. ; т = тт(?. ;V. ).

'о 'о Л 4 'о' 1о'

Работу '0 назначить на процессор ус в интервале [т.. ; т. + т].

Положить т. =т +т; V. = V -т; б = б +т .

Перейдем к описанию алгоритма 1 распределения прерываемых работ и построения окончательного расписания выполнения работ N. Алгоритм является обобщением известного однопроцессорного алгоритма относительной срочности ^и-алгоритм Э.Г. Коффмана [15]), который при N1 = 0, т = 1 и р. = f' находит допустимое расписание, если оно существует.

Алгоритм 1.

1. Положить k = 1.

2. Включить в N2(dk) все работы i е N2, для которых bi = dk.

3. Если k < s, перейти на шаг 4, если k = s, перейти на шаг 10.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Положить Tj = dk, Vj = dk+\ - dk для j е M2.

5. С помощью процедуры Mu(dk) построить множество Mu(dk) и вычислить величины т и v., j е Mu(dk). С помощью процедуры M12(dk) построить множество M12(dk) и вычислить величины Tj и Vj, j е Mi2(dk).

Для j е Mi\(Mn(dk) u M12(dk)) положить v. = 0.

6. Если N2(dk) = 0, перейти на шаг 9; если N2(dk) Ф 0, перейти на шаг 7.

7. Пусть maxv = v .

jeM 1 1

Если Vj = 0, перейти на шаг 9; если Vj^ Ф 0, перейти на шаг 8.

8. Пусть i0 - номер первой в списке N2(dk) работы. Если j0 е M2, выполнить процедуру ni(i0, j0 если j0 е Mu(dk) выполнить процедуру n2(i0, j0); если j0 е M12(dk), выполнить процедуру n3(i0, j0).

9. Положить k = k + 1. Перейти на шаг 2.

10. Положить Tj = max(QJ; ds) для j е M\ и т = ds для j е M2.

11. Если N2(ds) = 0, остановиться, расписание построено; если N2(ds) Ф 0, перейти на шаг 12.

12. Пусть i0 - первая в списке N2(ds) работа; min т. = т. ;

JeM j j0

to = wiQ / s j . Назначить работу i0 на процессор j0 в интервале T ;т +1.1; исключить работу i0 из N2(ds); положить

Lj0 j0 i0J

т . = т +1- ; перейти на шаг 11.

j0 j0 i0

Дадим некоторые пояснения к алгоритму 1. На шаге 2 к работам, которые могли быть включены в N2(dk) при выполнении процедур П1 и П2, добавляются работы с начальным директив-

ным сроком Ь, равным dk. На шаге 5 определяются процессоры . е М1, которые могут выполнять в интервале dk+1] прерываемые работы. На шаге 7 определяется процессор, который может выделить в интервале dk+1] наибольший объем процессорного времени. На шаге 8 выбирается наиболее срочная из числа готовых к выполнению работ из N2 и назначается на процессор, выбранный на шаге 8. Шаги 10-12 описывают построение расписания после момента d5, которое строится по «жадному» алгоритму.

Алгоритм 2 отличается от алгоритма 1 тем, что расписание выполнения работ N1 остается неизменным, а процессор . е М1 может использоваться только после момента б]. На шаге 5 вызывается только процедура М12^к) (процедура М11{йк) никогда не вызывается) и полагается V. = 0 для . е МДМп^)). На шаге 8 проверка . е М11{йк) не выполняется (и поэтому процедура П2 вообще никогда не вызывается). Остальные шаги алгоритма 1 не изменяются.

4.4. ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ АЛГОРИТМА

Определим сначала вычислительную сложность процедур,

используемых в предложенных алгоритмах. Вычислительная сложность процедуры П1('0, .о) есть 0(1), процедуры Щ'о, .о) - 0(|М|), процедуры Щ'о, .о) - 0(1), процедуры Мл^к) - 0(т1\Ы1\), процедуры M12(dk) - 0(т1). Кроме того, 5 = 0(^2|). Шаги 2 - 10 выполняются 5 раз, поэтому сложность этой части алгоритма составляет 0(т1\Ы11\Ы2\). Сложность части алгоритма, соответствующей шагам 11, 12, составляет 0(т\Ы2\). Таким образом, вычислительная сложность алгоритмов 1 и 2 составляет 0(|^2|-тах(т1|^1|, т)).

4.5. РЕЗУЛЬТАТЫ ЧИСЛЕННЫХ ЭКСПЕРИМЕНТОВ

Были проведены численные эксперименты по сравнительному анализу алгоритмов 1, 2 и алгоритма, описанного в [5], для решения задачи на быстродействие, в которой, как и в рассмотренной в настоящей работе, N1 - непрерываемые работы, N - работы, допускающие прерывания и переключения с одного

процессора на другой, 51, s2, ..., sm - производительности процессоров, wi - объемы работ. Алгоритм, описанный в [5], будем называть алгоритмом 3. Отметим, что вычислительная сложность алгоритма 3 составляет + Т) [5], а сложность алгоритмов 1 и 2, приспособленных для решения задачи на быстродействие, составляет 0(|^2|-тах(т1|^1|, т)-^ Т). Таким образом, в случае, когда число прерываемых работ существенно превосходит число непрерываемых работ, алгоритм 3 является более трудоемким, чем алгоритмы 1 и 2. В остальных случаях более трудоемкими являются алгоритмы 1 и 2. Следует также отметить, что алгоритм 3 может быть использован только для решения задачи на быстродействие, а алгоритмы 1 и 2 - как для решения задачи минимизации максимального запаздывания, так и для решения задачи на быстродействие.

Вычисления проводились для частного случая, когда производительности процессоров одинаковые (т.е. заданы длительности ti = wi выполнения работ / е N а производительности процессоров равны Sj = 1, у = 1, 2, ..., т). Для проведения сравнительного анализа алгоритмы 1, 2 были приспособлены для решения задачи на быстродействие (которую решает алгоритм 3). Для этого рассматривался отрезок [0; Т ], где

Т = таХ^шах , 2 • Т^ах = тах Ъ , Т* =

геN

I ^ \т

С помощью процедуры деления отрезка [0; Т ] пополам определялось такое целое значение R, что F Ф 0 при значениях параметров Т = R, Ь^ = 0, Л = R и F = 0 при Т = R + 1, Ь^ = 0, Л = R + 1 (/ е N).

Число работ п и число процессоров т полагались равными п = 100, т = 20, п = 400, т = 60 и п = 1000, т = 100 (см. таблицу 5). Эксперименты проводились для различных значений числа п1 непрерываемых работ и числа п2 прерываемых работ. Для каждого набора значений п, т, щ, п2 проводилось по 50 экспериментов с произвольными значениями длительностей работ, полученных с помощью программного генератора слу-

чайных чисел, позволяющего получать псевдослучайные числа с равномерным распределением на отрезке [1, 2600]. В каждом эксперименте для алгоритмов 1, 2, 3 вычислялось среднее значение А оценки погрешности (по 50 расчетам) для каждого набора п, т, п1, п2. Относительная погрешность алгоритма вычислялась по формуле А = (^ - ТуТ*) х 100 %.

Из результатов численных экспериментов можно сделать следующие выводы.

1. Алгоритм 3 во всех экспериментах показал наименьшую погрешность и поэтому является наиболее точным.

2. При увеличении доли числа непрерываемых работ в общем числе работ погрешность алгоритмов 2 и 3 уменьшается, а погрешность алгоритма 1 увеличивается.

Таблица 5. Результаты численных экспериментов

П П2 А (%)

Алгоритм 1 Алгоритм 2 Алгоритм 3

20 99 1 12,8758 12,8758 5,3422

90 10 10,5927 9,9584 1,8969

80 20 11,6868 9,7330 0,1402

70 30 12,5248 8,3514 0,0350

60 40 13,5868 7,4849 0,0485

50 50 14,8923 6,5079 0,0110

40 60 16,1697 5,3710 0,0100

30 70 17,3155 4,9975 0,0017

20 80 18,3677 4,9338 0,0000

10 90 20,3087 3,8595 0,0000

1 99 20,1817 2,2781 0,0001

60 399 1 10,7130 10,7130 2,1668

350 50 10,5679 9,1204 0,2786

300 100 13,6249 7,7860 0,0975

250 150 13,0765 6,6231 0,0641

200 200 14,1618 4,9706 0,0060

150 250 14,8607 3,4407 0,0014

100 300 15,3573 2,8331 0,0061

50 350 15,8864 2,1975 0,0006

1 399 16,6970 1,2249 0,0000

т «1 "2 Д (%)

Алгоритм 1 Алгоритм 2 Алгоритм 3

100 999 1 7,0942 7,0942 1,2892

900 100 7,1364 6,1736 0,0746

800 200 7,7099 5,4968 0,0662

700 300 8,7774 5,0084 0,0172

600 400 9,1372 3,9406 0,0218

500 500 9,7690 3,3775 0,0215

400 600 10,2068 2,6450 0,0002

300 700 10,5510 0,5969 0,0041

200 800 10,6646 2,1021 0,0000

100 900 11,0718 1,0274 0,0005

1 999 11,6089 0,4214 0,0006

5. Заключение

Для задачи составления многопроцессорного расписания с прерываниями разработано два эвристических алгоритма. Вычислительная сложность предложенных алгоритмов значительно меньше сложности точного потокового алгоритма, что подтверждается также машинными экспериментами (выигрыш во времени составляет до нескольких тысяч раз). При этом процент некорректной работы алгоритмов незначительный (от 1 до 20 % в зависимости от параметров задачи). Для задачи составления оптимального по быстродействию расписания без прерываний и переключений в многопроцессорной системе разработан ряд точных и приближенных алгоритмов. Определена эффективность алгоритмов и проведен их сравнительный анализ. Для задачи составления допустимого расписания со смешанным набором работ (часть работ допускает прерывания и переключения, а часть не допускает) разработано два приближенных алгоритма. Определена сложность алгоритмов и проведен их сравнительный анализ.

Технические и программные средства управления Литература

1. АЛЕКСЕЕВ О.Г. Комплексное применение методов дискретной оптимизации. - М.: Наука, 1986. - 247 с.

2. БУЛАНЖЕ Д.Ю., СУШКОВ Б.Г. Алгоритмы управления вычислительными системами жесткого реального времени // Изв. АН СССР, Техн. кибернетика. - 1982. - №6. -С. 160-169.

3. БУЛАНЖЕ Д.Ю. Оптимальная коррекция директивных интервалов для задачи одного прибора. - М.: ВЦ АН СССР, 1983. - 20 с.

4. ГОЛОВКИН Б.А. Расчет характеристик и планирование параллельных вычислительных процессов. - М.: Радио и связь, 1983. - 272 с.

5. ГОНЧАР Д.Р., ФУРУГЯН М.Г. Алгоритмы управления многопроцессорными системами с неоднородным множеством работ // Управление большими системами. - 2010. -№29. -С. 232-244.

6. ГОНЧАР ДР., ФУРУГЯН М.Г. Алгоритмы составления многопроцессорного расписания для неоднородного множества работ с директивными интервалами и произвольными процессорами // Системы управления и информационные технологии. - 2013. - № 3.1(53). - С. 204-208.

7. ГОНЧАР Д.Р. Мультиоценочный алгоритм решения минимаксной задачи составления расписания // Системы управления и информационные технологии. - 2007. - №1.3(27). -С.324-328.

8. ГОНЧАРОВ Е.Н., КОЧЕТОВ Ю.А. Вероятностный поиск с запретами для дискретных задач безусловной оптимизации // Дискретный анализ и исследования операций. Сер. 2. - 2002. - Т. 9, №2. - С. 13-30.

9. КОРМЕН Т., ЛЕЙЗЕРСОН Ч., РИВЕСТ Р. и др. Алгоритмы: построение и анализ. - М.: МЦНМО, 2005. - 1291 с.

10. КОСТЕНКО В.А. Алгоритмы построения расписаний для вычислительных систем реального времени, допускающие

использование имитационных моделей // Программирование. - 2013. - №5 - С. 53-71.

11. КОСТЕНКО В.А., ПЛАКУНОВ А.В. Алгоритм построения одноприборных расписаний, основанный на схеме муравьиных колоний // Известия РАН. Теория и системы управления. - 2013. - № 6. - С. 87-96.

12. КОСТЕНКО В.А., СМЕЛЯНСКИЙ Р.Л., ТРЕКИН А.Г. Синтез структур вычислительных систем реального времени с использованием генетических алгоритмов // Программирование. - 2000. - №5. - С. 63-72.

13. КОЧЕТОВ Ю., МЛАДЕНОВИЧ Н., ХАНСЕН П. Локальный поиск с чередующимися окрестностями // Дискретный анализ и исследования операций. Сер. 2. - 2003. - Т. 10, №1. -С. 11-44.

14. КОЧЕТОВ Ю.А., СТОЛЯР А.А. Использование чередующихся окрестностей для приближенного решения задачи календарного планирования с ограниченными ресурсами // Дискретный анализ и исследования операций. Сер. 2. -2003. - Т. 10, №2. - С. 29-56.

15. КОФФМАН Э.Г. Введение в детерминированную теорию расписаний // Теория расписаний и вычислительные машины / Под ред. Коффмана Э.Г. - М.: Наука, 1984. - С. 9-64.

16. КРАСОВСКИЙ Д.В., ФУРУГЯН М.Г. Алгоритмы решения минимаксной задачи составления расписания // Изв. РАН, ТиСУ. - 2008. - Т. 47, №5. - С. 732-736.

17. СИГАЛ И Х., ИВАНОВА А.П. Введение в прикладное дискретное программирование. - М.: Физматлит, 2002. - 240 с.

18. СКИНДЕРЕВ С.А., ФУРУГЯН М.Г. Алгоритмы планирования вычислений в многопроцессорных системах с неоднородным множеством работ. - М.: ВЦ РАН, 2006. - 28 с.

19. ФУРУГЯН М.Г. Некоторые алгоритмы анализа и синтеза многопроцессорных вычислительных систем реального времени // Программирование. - 2014. - №1. - С. 36-44.

20. ФУРУГЯН М.Г. Некоторые алгоритмы решения минимаксной задачи составления многопроцессорного расписания // Изв. РАН, ТиСУ. - 2014. - №2. - С. 48-54.

21. ШТОВБА С.Д. Муравьиные алгоритмы // ExponentaPro. Математика в приложениях. - 2003. - №4(4). - C. 70-75.

22. BRUCKER P. Scheduling Algorithms. - Heidelberg, Springer, 2007. - 371 p.

23. FEDERGRUEN A., GROENEVEL H.T. Preemptive Scheduling of Uniform Machines by Ordinary Network Flow Technique // Management Science. - 1986. - Vol. 32, №3. - P. 341-349.

24. GLOVER F., LAGUNA M. Chapter 3: Tabu search / Ed. R. Colin Reeves, Modern Heuristics Techniques for Combinatorial Problems. - Oxford, Blackwell Scientific Publications, 1993. - P.70-150.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

25. GONZALES T., SAHNI S. Preemptive Scheduling of Uniform Processor Systems // Journal of the Association for Computing Machinery, January. - 1978. - Vol. 25, №1. - P. 92-101.

26. LAARHOVEN P., AARTS E., LENSTRA J. Job Shop Scheduling by Simulated Annealing // Operations Research. - 1992. -Vol. 40(1). - P. 113-125.

27. RAGHAVAN R. Probabilistic Construction of Deterministic Algorithms: Approximating Packing Integer Programs // J. Computer and System Sciences. - 1988. - Vol.37. - P. 130-143.

28. SHEN C., PAO Y., YIP P. Scheduling multiple job problems with guided evolutionary simulated annealing approach // Proc. First IEEE Conf. on Evolutionary Computations. - Orlando, 1994. - P. 702-706.

EFFICIENT SCHEDULING ALGORITHMS IN MULTIPROCESSOR REAL TIME SYSTEM S

Dmitry R. Gonchar, Computing Center of RAS, Moscow, Cand. Sc. (rtsccas@ya.ru).

Meran G. Furugyan, Computing Center of RAS, Moscow, Cand. Sc. assistant professor (rtsccas@ya.ru).

Abstract: We study a task scheduling problem for real-time multiprocessor systems and consider the cases when (a) - jobs are preemptive and allow for processor switch, (b) - jobs are not preemptive and processor switch are prohibited, (c) - only a part of tasks are pre-emptive and allow for processor switch. We suggest a number of approximate algorithms, provide simulation results, and carry out comparative analysis of the developed algorithms.

Keywords: multiprocessor system, preemptive and no preemptive jobs, scheduling.

Статья представлена к публикации членом редакционной коллегии М. Ф. Караваем

Поступила в редакцию 14.02.2014.

Опубликована 31.05.2014.

XI Всероссийская школа-конференция молодых ученых «Управление большими системами»

9-12 сентября, 2014, Арзамас http://ubs2014.ru/

Срок подачи доклада 23. 06.2014

i Надоели баннеры? Вы всегда можете отключить рекламу.