Планирование вычислений в системах реального времени: эффективные алгоритмы построения оптимальных расписаний

Обложка

Цитировать

Полный текст

Аннотация

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

Полный текст

Введение. Вычислительные системы реального времени стали широко внедряться в различные сферы деятельности человека с конца 70-х гг. прошлого века. Они находят применение в тех областях, где на проведение вычислений отводится строго ограниченное время. В частности, при проектировании и эксплуатации сложных технических объектов (самолеты, электростанции, атомные реакторы) это время может составлять доли секунды. В ряде случаев на вычисления может отводиться существенно большее время, например, при обработке информации экономического и экологического характера.

Известны два основных подхода к разработке вычислительных систем реального времени. Первый подход основан на предварительном расчете расписания выполнения вычислений. Так, авторами [1–3] разработана методика построения допустимых расписаний с директивными сроками в многоядерной вычислительной системе реального времени. Согласно этой методике, сначала строится временная диаграмма работы системы, а затем с ее помощью проверяется выполнение каждого задания в своем директивном интервале. Кроме того, разработана имитационная модель системы, основанная на использовании сетей Петри и обобщенных конечных автоматов с остановкой таймера.

Авторы данной статьи в разное время принимали участие в проектах по созданию вычислительных систем реального времени: для обработки информации при проведении летных испытаний, для функционирования системы противовоздушной и космической обороны, при разработке газовых месторождений и строительных работах. При этом также использовался подход, основанный на предварительном расчете расписания выполнения вычислений, как это было сделано при разработке системы автоматизации программирования вычислительных систем реального времени, предназначенных для обработки циклически поступающей информации. На вход системы поступает программа пользователя, в которой описаны прикладные модули, предназначенные для вычисления, их длительности, входные и выходные параметры, частоты обращения к ним, длительности их выполнения и другие параметры. Блок генерации кодов переводит информацию, содержащуюся в этой программе, в таблицы, удобные для дальнейшей обработки. Далее работает генератор сетевой модели, который строит ориентированную сеть. Узлами сети являются прикладные модули, а дуги указывают отношения частичного порядка их выполнения. Затем подключается генератор расписаний, который, получая на вход эту сетевую модель, определяет, существует ли допустимое расписание выполнения прикладных модулей, и строит его в случае положительного ответа. Управляющая программа запускает в реальном времени прикладные модули согласно построенному расписанию. Одним из основных блоков этой системы является генератор расписаний.

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

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

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

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

В [13] описана процедура построения расписания, состоящая из двух шагов. На первом шаге с помощью эвристического алгоритма, основанного на методе ветвей и границ, определяется последовательность выполнения работ. На втором в построенный график добавляются интервалы простоя с учетом директивных сроков начала и окончания операций. Эта задача сводится к задаче линейного программирования. В [14] рассмотрены проблемы, связанные с установлением директивных сроков выполнения работ и допустимых отклонений от этих сроков. Предложена модель, показывающая связь директивных сроков и стохастической изменчивости объемов ресурсов, необходимых для выполнения работ. В [15] решается задача оптимизации работы и маршрутов двух роботов, которые доставляют продукты в определенные места и должны вернуться в исходное положение. Рассмотрена задача на быстродействие и доказана ее NP-трудность. Для ее решения используются методы целочисленного линейного программирования, а также генетический алгоритм. Для оценки качества решений применяется динамическое программирование.

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

Составление однопроцессорных и многопроцессорных расписаний с прерываниями и директивными сроками

  • Построение однопроцессорного расписания

Имеется совокупность работ (заданий) W = {w1, w2, …, wn}, которые должны быть выполнены с помощью m идентичных процессоров. Известны длительности ti выполнения работ wi и их директивные интервалы [bi; fi], ti  fibi (работа wi не может быть начата раньше момента ее готовности bi и должна быть завершена не позднее ее директивного срока fi). При выполнении работ допускаются прерывания и переключения с одного процессора на другой. Предполагается, что они не требуют временных затрат. Не допускаются параллельное выполнение одного задания несколькими процессорами и одновременное выполнение нескольких работ одним процессором. Требуется определить, существует ли допустимое расписание выполнения работ, и найти его, если оно существует. Допустимое расписание – это такое расписание, при котором каждая работа выполняется в своем директивном интервале.

Алгоритм относительной срочности. Для однопроцессорных систем (m = 1) известен алгоритм [16], который выглядит следующим образом.

Алгоритм 1.

Пусть A(t) – множество активных работ в момент времени t, то есть таких работ wi, которые еще не завершены (или не начаты), и при этом t ∈ [bi; fi]. Процессор выделяется активной работе wi с минимальным директивным сроком f:fi0=mini:wiA(t)fi. Если таких работ несколько, то выбирается любая из них. Работа wi выполняется до тех пор, пока либо она не завершится, либо не появится активная работа wj0 с меньшим директивным сроком fj0. В последнем случае выполнение работы wi0 прерывается и процессор передается заданию wj0.

Поскольку выполнение работ может прерываться только в моменты времени bi, число прерываний не более n. В отличие от [16] величины fi для активных работ будем хранить в виде двоичной кучи с минимальным элементом в вершине. В этом случае вычислительная сложность алгоритма 1 составляет O(n log n). Алгоритм, описанный в [16], не использует двоичную кучу и имеет вычислительную сложность O(n2). В работе доказано, что данный алгоритм является корректным: если он не находит решение, то оно не существует.

Построение однопроцессорного расписания с отношением частичного порядка на множестве работ. Сформулированную постановку задачи для однопроцессорной системы дополним еще одним условием. Будем предполагать, что на множестве работ W задано отношение частичного порядка в виде ориентированного графа без циклов G = (W, A), где A – множество ориентированных дуг. Если (wi, wj) ∈ A, значит, работа wj может быть начата только после завершения работы wi. Здесь wi – непосредственный предшественник работы wj, а wj – непосредственный последователь работы wi. Предлагаемый алгоритм основан на коррекции директивных интервалов с последующим применением алгоритма 1.

В основе коррекции директивных интервалов лежит следующее простое правило: если (wi, wj) ∈ A, то момент готовности bj работы wj и директивный срок fi работы wi пересчитываются по следующим формулам:

bj = max (bj, bi + ti), fi = min (fi, fjtj).

Действительно, bi + ti – это наиболее ранний возможный срок окончания работы wi, а fjtj – наиболее поздний допустимый срок завершения работы wi. Перед выполнением процедуры коррекции множество W необходимо разбить на уровни следующим образом. Пусть W0 – это множество работ, не имеющих непосредственных предшественников. Если построены множества W0, W1, …, Wk - 1, то Wk – это множество работ, имеющих непосредственных предшественников только в множествах W0, W1, …, Wk - 1. Предположим, что построено разбиение множества W на уровни W0, W1, …, Wp, p n – 1. Коррекция моментов готовности работ проводится начиная с W1, затем W2 и т.д. следующим образом: если wjWk, то принять

bj = max (bj ,  (bi + ti)), k=1,p¯. 

Коррекция директивных сроков работ проводится начиная с Wp-1, затем Wp-2 и т.д. следующим образом: если wiWk, то принять

fi = min (fi,  (fjtj)), k=p1,​ 0¯. 

Вычислительная сложность процедуры коррекции директивных интервалов составляет O(n2).

После выполнения процедуры коррекции множество W будет обладать следующим свойством: если (wi, wj) ∈ A, то bi < bj, fi < fj. Следовательно, для поиска допустимого расписания может быть использован алгоритм относительной срочности (алгоритм 1). Таким образом, алгоритм решения поставленной в настоящем разделе задачи следующий.

Алгоритм 2.

Шаг 1. Выполнить процедуру коррекции директивных интервалов.

Шаг 2. Применить алгоритм 1.

Вычислительная сложность алгоритма 2 составляет O(n2).

Построение многопроцессорных расписаний. Для случая m  2 может быть использован потоковый алгоритм [5] (алгоритм 3), основанный на сведении исходной задачи к нахождению максимального потока в ориентированной сети специального вида. Вычислительная сложность алгоритма 3 составляет O(n3) (если при нахождении максимального потока использовать алгоритм кубической сложности). Алгоритм 3, как и алгоритм 1, является корректным.

Идея алгоритма относительной срочности в том, что процессор всегда занят активной работой с наименьшим директивным сроком и она легко может быть перенесена на многопроцессорный случай (m 2).

Алгоритм 4.

Процессоры всегда должны занимать m активных работ с наименьшими директивными сроками (если таковые имеются). Если активных работ меньше m, то все они должны выполняться. Если появляется новая активная работа с директивным сроком, меньшим наибольшего директивного срока из выполняемых работ, то она заменяет последнюю. В этом случае следует иметь две двоичные кучи. Первая содержит директивные сроки работ, которые выполняются в данный момент (их не более m). В вершине этой кучи находится максимальный элемент. Вторая куча содержит директивные сроки активных работ, которые в данный момент не выполняются. В вершине этой кучи находится минимальный элемент. Возникшая новая активная работа включается во вторую кучу. Если при этом она оказывается в вершине кучи и ее директивный срок меньше директивного срока, находящегося в вершине второй кучи, то элементы, находящиеся в вершинах обеих куч, меняются местами. После этого каждый из них становится на свое место в соответствующей куче. Вычислительная сложность алгоритма 4 составляет O((n log n) log m). Алгоритм, описанный в [17], является аналогичным обобщением алгоритма 1 на многопроцессорный случай. Однако он не использует двоичные кучи и имеет более высокую вычислительную сложность: O(n (m log m + log n).

Поскольку можно считать, что m << n, вычислительная сложность алгоритма 4 существенно меньше вычислительной сложности потокового алгоритма 3. Рассмотрим простой пример, показывающий работу алгоритма 4.

Пример. Пусть n = 3, m = 2, bi = 0, fi = 3, ti = 2 при всех i = 1, 2, 3. Пусть Rij – временной интервал, в котором работа wi выполняется j-м процессором. Тогда алгоритм 4 построит следующее расписание: R11 = [0; 2], R22 = [0; 2], R13 = [2; 4]. Это означает, что работа w3 не успевает завершиться к своему директивному сроку f3 = 3, то есть алгоритм 4 не находит допустимого расписания. Однако на самом деле допустимое расписание существует: R11 = [0; 2], R22 = [0; 1], R21 = [2; 3], R13 = [1; 3]. В этом случае все работы успевают завершиться к своему директивному сроку fi = 3, i = 1, 2, 3.

Следовательно, алгоритм 4 не всегда работает корректно. Как показано в [17], на основании результатов 25 000 численных экспериментов с рандомизированными и плавно варьируемыми переменными можно сделать вывод, что при больших размерностях задачи алгоритм 4 работает в тысячи раз быстрее алгоритма 3. В то же время некорректная работа алгоритма 4 была отмечена не более чем в 3 % случаев. Поэтому можно предложить следующий алгоритм решения задачи: сначала запускается быстрый алгоритм 4; если решение не найдено, запускается алгоритм 3.

Замечание. Если предположить, что прерывания и переключения с одного процессора на другой требуют временных затрат, то задача становится NP-трудной. Покажем, что в этом случае к рассматриваемой задаче полиномиально сводится известная NP-полная задача о разбиении (имеются n натуральных чисел a1, a2, …, an, и пусть B=i=1nai – четное число; можно ли разбить это множество на два непересекающихся подмножества с одинаковой суммой элементов, то есть существует ли такое подмножество {1, 2, …, n}, что iN¯ai=iN\N¯ai=B/2) [18]. Если в рассматриваемой задаче о построении расписания принять m = 2, bi = 0, fi = B/2, i = 1,n¯, то допустимое расписание будет существовать в том и только том случае, когда в задаче о разбиении ответ положительный.

Составление многопроцессорных расписаний без прерываний с общим директивным интервалом

Предположим, что работы не допускают прерываний и переключений с одного процессора на другой, длительности ti принимают натуральные значения, а директивные интервалы всех работ совпадают: bi = 0, fi = F, tiF. Известно, что такая задача является NP-трудной в сильном смысле [18]. Однако при фиксированном числе процессоров m существует псевдополиномиальный алгоритм.

Пусть X = {x = (x1, x2, …, xm): 0 xj F, j = 1,m¯}. Здесь xj – временная загруженность j-го процессора,  Пусть XkX, k = 1,n¯ – непересекающиеся подмножества множества X, которые определяются следующим образом:

X1 = {xX: xi = 0 при ij, xj = tj, j = 1,m¯}, то есть X1 – множество векторов из X, у которых все компоненты, кроме xj, равны 0, а xj = tj, j = 1,m¯;

Xk = {x ϵ X: xjxj¯ + tk, xj F, j = 1,m¯, x ∈ Xk-1}, k=2,n¯, то есть каждый вектор из Xk получается прибавлением величины tk к j-й компоненте некоторого вектора x ∈ Xk-1, j = 1,m¯. Каждому вектору xXk приписывается метка, указывающая, из какого вектора x ∈ Xk-1 он получен.

Важно отметить: если при построении множества Xk для некоторой компоненты xj вектора xXk выполняется неравенство xj > F, то вектор x не включается в Xk. К тому же число векторов в Xk не превосходит (F + 1)m. Алгоритм решения задачи (алгоритм 5) заключается в построении множеств Xk, k = 1,n¯. Если Xn, то допустимое расписание существует и может быть построено путем следования по меткам, указанным при построении множеств Xk,
k = 2,n¯.

Алгоритм 5.

Шаг 1. Построить множества Xk, k = 1,n¯.

Шаг 2. Если Xn , перейти на шаг 3. В противном случае перейти на шаг 5.

Шаг 3. С помощью меток, указанных при построении множеств Xk, k = 2,n¯, построить последовательность векторов xk ϵ Xk, k = n,1¯.

Шаг 4. Если xk и xk-1 отличаются j-й компонентой, то работа wk приписывается процессору j, k = n,1¯. Завершение алгоритма.

Шаг 5. Допустимого расписания не существует. Завершение алгоритма.

Далее работы, приписанные процессору j, j = 1,m¯, выполняются этим процессором в произвольном порядке. Поскольку число элементов в каждом множестве Xk, k = 1,n1¯, не превосходит число элементов в X, то есть величины (F + 1)m, и для каждого из них строится не более m элементов в Xk+1, то вычислительная сложность алгоритма 5 составляет O(mn(F + + 1)m), или O(mnFm). Следовательно, при фиксированном числе процессоров m алгоритм 5 является псевдополиномиальным.

Составление расписаний в системе с неоднородными ресурсами

В работе исследовались задачи с возобновляемыми ресурсами. Это ресурсы, которые могут использоваться многократно, например, процессоры, приборы, машины и т.д. Кроме того, все работы либо допускали прерывания и переключения с одного процессора на другой, либо были непрерываемыми. Рассмотрим задачу планирования работ в системе, где, помимо процессоров, имеются невозобновляемые ресурсы. Эти ресурсы не могут использоваться повторно, например, электроэнергия, финансы, дополнительная память или специализированные устройства, выделяемые конкретному программному модулю и не используемые другими модулями. Кроме того, исследуем задачу, в которой часть работ допускают прерывания и переключения с одного процессора на другой, а часть не допускают.

  • Смешанный комплекс работ, общий директивный интервал

Рассмотрим комплекс работ W = W1W2, где W1 = {w11, w12, …, } – работы, допускающие прерывания и переключения с одного процессора на другой, W2 = {w21, w22, …, } – непрерываемые работы. Для работ W1 и W2 остаются предположения, сделанные ранее. Для всех работ установлен общий директивный интервал [0; F]. Для выполнения работ имеются m идентичных процессоров и L типов невозобновляемых ресурсов, объемы которых составляют R1, R2, …, RL. Если работе wki выделен ресурс l-го типа в количестве rkil, l = 1,L¯, то длительность ее выполнения составляет

tki=tki0l=1Lakilrkil, k = 1, 2, i = 1,nk¯, (1)

где tki0 – длительность выполнения работы wki в случае, если невозобновляемые ресурсы ей не выделяются; tki0F, k = 1, 2, i = 1,nk¯, akil > 0 – заданные величины. На величины rkil накладываются следующие ограничения:

rkil1rkilrkil2, ​k=1,​ 2,  i=1,​ nk¯,  l=1,L¯, (2)

k=12i=1nkrkilRl,l=1,L¯, (3)

tki0l=1Lakilrkil2>0,  k=1,​ 2,  i=1,​ nk¯. (4)

Неравенство (2) определяет ограничения на объемы ресурсов, выделяемых каждой работе. Неравенство (3) ограничивает общий объем выделяемых ресурсов каждого типа. Согласно неравенству (4), при выделении работе максимально допустимого объема ресурсов каждого типа ее длительность остается положительной. Распределение ресурсов rkil, k=1,​ 2,  i=1,​ nk¯, l=1,L¯, удовлетворяющее ограничениям (2)–(4), будем называть допустимым. Задача заключается в поиске допустимого распределения ресурсов и допустимого расписания.

Алгоритм 6 решения задачи состоит из трех этапов. На первом этапе выполняется распределение невозобновляемых ресурсов, после чего будут определены длительности выполнения работ. На втором этапе процессоры делятся на две группы: первая – для выполнения работ W1, вторая – для выполнения работ W2. На третьем этапе строится расписание, отдельное для W1 и W2.

Для каждого l=1,L¯ ресурс l-го типа распределяется следующим образом. Определяется maxk,iakil=ak0i0l, и работе wkoio выделяется максимально возможное количество ресурса l-го типа (то есть такое количество, при котором не нарушаются ограничения (2), (3)). Оставшаяся неиспользованной часть ресурса l-го типа распределяется среди оставшихся работ по аналогичному правилу. Такое распределение ресурсов позволяет максимально сократить длительности работ. Если для каждого l=1,L¯ величины akil отсортировать по невозрастанию, то вычислительная сложность первого этапа будет составлять O(Ln log n).

После распределения невозобновляемого ресурса между работами вычисляются их длительности по (1) и величины

m1=i=1n1t1ii=1n1t1i+i=1n2t2i, m2 = mm1. (5)

Работы W1 будут выполняться первыми m1 процессорами, а работы W2 – оставшимися m2 процессорами. По формуле (5) распределяются процессоры между работами W1 и W2 пропорционально суммарной длительности выполнения работ этих множеств. Вычислительная сложность второго этапа составляет O(n), где n = n1 + n2.

Для построения расписания выполнения работ W1 и W2 соответственно могут быть использованы алгоритм упаковки [5], вычислительная сложность которого составляет O(n1), и рассмотренный псевдополиномиальный алгоритм, вычислительная сложность которого составляет

  • Прерываемые работы, произвольные директивные интервалы

Предположим, что множество W однородное: каждая работа wiW допускает прерывания и переключения с одного процессора на другой и имеет директивный интервал [bi; fi]. Для ресурса l-го типа известен коэффициент al, показывающий, на какую величину сократится время выполнения работы, если ей будет выделена единица этого ресурса. К тому же выполнены приведенные далее ограничения, аналогичные условиям (1)–(4), а именно: если работе wi выделено ril ресурсов l-го типа, то справедливы соотношения:

ti=ti0l=1Lalril, i = 1,n¯, (6)

rilril2, ​ i=1,​ n¯,l=1,L¯, (7)

i=1nrilRl,l=1,L¯, (8)

ti0l=1Lalril2>0,  i=1,​ n¯. (9)

Величины ti0 и ril2 определяются по аналогии с тем, как это сделано для смешанного комплекса работ.

Для решения задачи по примеру [5] построим потоковую сеть G = (N, A), дополнив ее элементами, соответствующими невозобновляемым ресурсам (см. рисунок). Множество узлов определим как N = {u, Ij, rl, wi, v, j = 1,p¯, l = 1,L¯, i = 1,n¯}, где Ij = [yj-1; yj], y0 < y1 < … < yp – все различные величины bi, fi; i =1,n¯ ; u – источник; v – сток; rl соответствует ресурсу l-го типа. Множество дуг A определим как A = {(u, Ij), (u, rl), (Ij, wi), (ri, wi), (wi, v), j = 1,p¯, l = 1,L¯, i = 1,n¯}. Дуга (lj, wi) вводится в сеть G в том случае, если Ij[bi;fi].

 

Потоковая сеть G (j = 1,p¯, l = 1,L¯, i = 1,n¯)

Stream network G (j = 1,p¯ , l = 1,L¯ , i = 1,n¯ )

 

Пропускные способности U дуг определим следующим образом: U(u, Ij) = m(yj+1yj), U(u, rl) = Rl, U(Ij, wi) = yj+1yj, U(rl, wi) = ai , U(wi, v) = ti, j = 1,p¯, l = 1,L¯, i = 1,n¯. В отличие от [5] будем рассматривать обобщенные сети, в некоторых внутренних узлах которых величина выходящего потока равна величине входящего потока, умноженной на некоторый коэффициент (коэффициент выигрыша), постоянный для данного узла. Так, для рассматриваемой сети G в узлах lj и wi выполняется условие сохранения потока, а в узле rl коэффициент выигрыша равен al.

По аналогии с тем, как это сделано в [5], можно показать, что решение задачи существует только в том случае, когда максимальный поток g в сети G насыщает все дуги (wi, v), то есть

(wi, v) = ti  (10)

при всех i = 1,n¯. Если это условие выполнено, то потоки по дугам определяют расписание выполнения работ W процессорами [5]. Потоки по дугам (ri, wi) определяют распределение ресурса l-го типа:

ril = g(ri, wi)/al, l = 1,L¯, i = 1,n¯ (11)

Таким образом, для решения рассматриваемой задачи разработан следующий алгоритм.

Алгоритм 7.

Шаг 1. Построить сеть G.

Шаг 2. Найти максимальный поток g в сети G.

Шаг 3. Если выполнено условие (10), решение существует; перейти на шаг 4, в противном случае – на шаг 5.

Шаг 4. Расписание выполнения работ W определяется с помощью величин g(Ij, wi) и алгоритма упаковки [5]. Распределение невозобновляемых ресурсов определяется по формуле (11). Алгоритм завершен.

Шаг 5. Решения не существует. Алгоритм завершен.

Если при нахождении максимального потока в сети G использован алгоритм кубической сложности, то вычислительная сложность алгоритма 7 составляет O((n + L)3), поскольку число узлов в сети G равно O(n + L). Отметим, что в [19] предполагается, что длительность выполнения каждой работы выражается убывающей по каждой переменной функцией от количества предоставленных этой работе невозобновляемых ресурсов. Эта задача сводится к минимизации некоторой функции с O(n(n + L)) переменными при O(n2) линейных ограничений. Предположение о линейности длительностей от выделенных ресурсов позволило свести задачу к потоковой.

Заключение

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

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

×

Об авторах

Дмитрий Алексеевич Кононов

Институт проблем управления им. В.А. Трапезникова РАН

Email: dmitrykon52@gmail.com

д.т.н., доцент, ведущий научный сотрудник

Россия, г. Москва, 117997

Меран Габибуллаевич Фуругян

Федеральный исследовательский центр «Информатика и управление» РАН

Автор, ответственный за переписку.
Email: rtsccas@yandex.ru

к.ф.-м.н.,  доцент, старший научный сотрудник

Россия, г. Москва, 119333

Список литературы

  1. Глонина А.Б. Обобщенная модель функционирования модульных вычислительных систем реального времени для проверки допустимости конфигураций таких систем // Вестн. ЮУрГУ. Сер. Вычисл. математика и информатика. 2017. Т. 6. № 4. С. 43–59. doi: 10.14529/cmse170404.
  2. Глонина А.Б., Балашов В.В. О корректности моделирования модульных вычислительных систем реального времени с помощью сетей временных автоматов // МАИС. 2018. Т. 25. № 2. С. 174–192. doi: 10.18255/1818-1015-2018-2-174-192.
  3. Глонина А.Б. Инструментальная система проверки выполнения ограничений реального времени для конфигураций модульных вычислительных систем // Вестн. МГУ. Сер. 15. Вычисл. матем. и киберн. 2020. № 3. С. 16–29.
  4. Кононов Д.А., Фуругян М.Г. Региональное управление: оперативное планирование в режиме реального времени // Управление развитием крупномасштабных систем: тр. Междунар. конф. 2023. № 1. C. 1138–1144.
  5. Танаев В.С., Гордон В.С., Шафранский Я.М. Теория расписаний. Одностадийные системы. М.: Наука, 1984. 383 с.
  6. Brucker P. Scheduling Algorithms. Springer Publ., 2007, 383 p.
  7. Кошелев П.С., Мищенко А.В. Оптимизация управления работами логистического проекта в условиях неопределенности // Изв. РАН. ТиСУ. 2021. № 4. С. 123–134. doi: 10.31857/S0002338821040089.
  8. Горский М.А., Мищенко А.В., Нестерович Л.Г., Халиков М.А. Некоторые модификации целочисленных оптимизационных задач с учетом неопределенности и риска // Изв. РАН. ТиСУ. 2022. Т. 6. № 6. С. 65–76. doi: 10.31857/S0002338822050079.
  9. Косоруков О.А., Лемтюжникова Д.В., Мищенко А.В. Методы и модели управления ресурсами проекта условиях неопределенности // Изв. РАН. ТиСУ. 2023. № 3. С. 38–56. doi: 10.31857/S0002338823020117.
  10. Лазарев А.А. Теория расписаний. Методы и алгоритмы. М.: ИПУ РАН, 2019. 408 с.
  11. Костенко В.А., Смирнов А.С. Потоковые алгоритмы планирования вычислений в интегрированной модульной авионике // Изв. РАН. ТиСУ. 2019. № 3. С. 77–86. doi: 10.1134/S0002338819030119.
  12. Балашов В.В., Костенко В.А., Федоренко И.А., Гао Ц., Сун Ч.М., Сун Ц. Алгоритм имитации отжига для построения списочных расписаний с ограничениями на количество межпроцессорных передач данных // Автоматика и телемеханика. 2023. № 8. С. 138–152. doi: 10.31857/S0005231023080093.
  13. Gorman M.F., Conway D.G. A tutorial of integrating duality and branch and bound in earliness–tardiness scheduling with idle insertion time problems. IJPR, 2018, vol. 56, no. 1-2, pp. 262–277. doi: 10.1080/00207543.2017.1397794.
  14. Graves S.C. How to think about planned lead times. SSRN Electronic J., 2022. doi: 10.2139/ssrn.3485059. URL: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3485059 (дата обращения: 10.07.2024).
  15. Thomasson O., Battarra M., Erdoğan G., Laporte G. Scheduling twin robots in a palletising problem. IJPR, 2018, vol. 56, no. 1-2, pp. 518–542. doi: 10.1080/00207543.2017.1401249.
  16. Коффман Э.Г. Теория расписаний и вычислительные машины; [пер. с англ.]. М.: Наука, 1984. 336 с.
  17. Фуругян М.Г. Некоторые алгоритмы анализа и синтеза многопроцессорных вычислительных систем реального времени // Программирование. 2014. № 1. С. 36–44.
  18. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы. Построение и анализ; [пер. с англ.]. М.: Вильямс, 2011. 1296 с.
  19. Kononov D.A., Furugyan M.G. Distribution of heterogeneous complex of resources on a multiprocessor system. Proc. Int. Conf. SUMMA, 2023, pp. 368–372. doi: 10.1109/SUMMA60232.2023.10349570.

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML
2. Потоковая сеть G (j = , l = , i = )

Скачать (22KB)

© Kononov D.А., Furugyan M.Г., 2025

Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution-ShareAlike 4.0 International License.

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».