Planning computations in real-time systems: Efficient algorithms for constructing optimal schedules

Capa

Citar

Texto integral

Resumo

The paper discusses issues related developing one of the main blocks of a real-time computing system, specifically the computation scheduling block. The authors propose algorithms for constructing optimal schedules for different cases depending on the number of processors and characteristics of works and computing system resources. For the single-processor case with interruptions and directive intervals, they improved the relative urgency algorithm using a heap for data storage. This contributed to lowering the algorithm computational complexity. The authors also developed an algorithm for a problem with a partial order of job execution. It bases on the pre-correction of ready moments and directive deadlines and on the reduction of the original task to a task without precedence relations. For the multiprocessor case with interruptions and directive intervals, the authors proposed an approximate algorithm that is based on a generalization of the single-processor relative urgency algorithm to the multi-processor case. The authors performed a comparative analysis with the exact stream algorithm. They proved that the problem is NP-hard when interruption and switching time costs are taken into account. For the multiprocessor case without interruptions and switches with a common directive interval for all works and identical processors, the authors developed a pseudo-polynomial algorithm based on a limited search of options. The authors also created an approximate algorithm for a system with renewable and non-renewable resources, as well as for a complex with a mixed set of works (both continuous and allowing interruptions and switching). The algorithm is based on network modeling and reducing the problem under study to the search for a stream with certain properties in a special network.

Texto integral

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

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

×

Sobre autores

Dmitry Kononov

Trapeznikov Institute of Control Sciences of the Russian Academy of Sciences

Email: dmitrykon52@gmail.com

Dr.Sci. (Engineering), Associate Professor, Leading Researcher

Rússia, Moscow, 117997

Meran Furugyan

Federal Research Center “Computer Science and Control” of the Russian Academy of Sciences

Autor responsável pela correspondência
Email: rtsccas@yandex.ru

Cand. of Sci. (Physics), Associate Professor, Senior Researcher

Rússia, Moscow, 119333

Bibliografia

  1. Glonina, A.B. (2017) ‘General model of real-time modular computer systems operation for checking acceptability of such systems configurations’, Bull. of the SUrSU. Ser. Math. Mechanics. Physics, 6(4), pp. 43–59 (in Russ.). doi: 10.14529/cmse170404.
  2. Glonina, A.B., Balashov, V.V. (2018) ‘On the correctness of real-time modular computer systems modeling with stopwatch automata networks’, Modeling and Analysis of Information Systems, 25(2), pp. 174–192 (in Russ.). doi: 10.18255/1818-1015-2018-2-174-192.
  3. Glonina, A.B. (2020) ‘A tool system for schedulability analysis of modular computer systems configulations’, Bull. of MSU. Computational Math. and Cybernetics, (3), pp. 16–29 (in Russ.).
  4. Kononov, D.A., Furugyan, M.G. (2023) ‘Situational operational planning in real-time systems’, Proc. Int. Conf. MLSD, (1), pp. 1138–1144 (in Russ.).
  5. Tanaev, V.S., Gordon, V.S., Shafranskii, Ya.M. (1984) Theory of Scheduling: Single-Stage Systems. Moscow, 383 p. (in Russ.).
  6. Brucker, P. (2007) Scheduling Algorithms, Springer Publ., 378 p.
  7. Koshelev, P.S., Mishchenko, A.V. (2021) ‘Optimizing management of jobs in a logistic project under conditions of uncertainty’, J. of Computer and Systems Sci. Int., 60(4), pp. 595–609. doi: 10.1134/S1064230721040079.
  8. Gorskiy, M.A., Mishchenko, A.V., Nesterovich, L.G., Khalikov, M.A. (2022) ‘Some modifications of integer optimization problems with uncertainty and risk’, J. of Computer and Systems Sci. Int., 6(6), pp. 65–76 (in Russ.). doi: 10.31857/S0002338822050079.
  9. Kosorukova, O.A., Lemtyuzhnikova, D.V., Mishchenko, A.V. (2023) ‘Methods and models of project resource management under uncertainty’, J. of Computer and Systems Sci. Int., (3), pp. 38–56 (in Russ.). doi: 10.31857/S0002338823020117.
  10. Lazarev, A.A. (2019) Scheduling Theory. Methods and Algorithms. Moscow, 408 p. (in Russ.).
  11. Kostenko, V.A., Smirnov, A.S. (2019) ’Flow algorithms for scheduling computations in integrated modular avionics’, J. of Computer and Systems Sci. Int., 58(3), pp. 404–414. doi: 10.1134/S1064230719030110.
  12. Balashov, V.V., Kostenko, V.A., Fedorenko, I.A., Gao, C., Sun, C.M., Sun, C. (2023) ’Simulated annealing algorithm for constructing list schedules with restrictions on the number of interprocessor data transfers’, Automation and Remote Control, (8), pp. 138–152 (in Russ.). doi: 10.31857/S0005231023080093.
  13. Gorman, M.F., Conway, D.G. (2018) ‘A ttutorial of integrating duality and branch and bound in earliness–tardiness scheduling with idle insertion time problems’, IJPR, 56(1-2), pp. 262–277. doi: 10.1080/00207543.2017.1397794.
  14. Graves, S.C. (2022) ‘How to think about planned lead times’, SSRN Electronic J. doi: 10.2139/ssrn.3485059, available at: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3485059 (accessed July 10, 2024).
  15. Thomasson, O., Battarra, M., Erdoğan, G., Laporte, G. (2018) ‘Scheduling twin robots in a palletising problem’, IJPR, 56(1-2), pp. 518–542. doi: 10.1080/00207543.2017.1401249.
  16. Coffman, E.G. (1976) Computer and Job-Shop Scheduling Theory. John Wiley & Sons Publ., 299 p. (Russ. ed.: (1984) Moscow, 336 p.).
  17. Furugyan, M.G. (2014) ‘Some algorithms for analysis and synthesis of real-time multiprocessor computing systems’, Programming and Computer Software, 40(1), pp. 21–27. doi: 10.1134/S0361768814010034.
  18. Cormen, T.H., Leiserson, Ch.E., Rivest R.L., Stein, C. (2011) Introduction to Algorithms. The MIT Press, 1312 p. (Russ. ed.: (2011) Moscow, 1296 p.).
  19. Kononov, D.A., Furugyan, M.G. (2023) ‘Distribution of heterogeneous complex of resources on a multiprocessor system’, Proc. Int. Conf. SUMMA, pp. 368–372. doi: 10.1109/SUMMA60232.2023.10349570.

Arquivos suplementares

Arquivos suplementares
Ação
1. JATS XML
2. Stream network G (j = , l = , i = )

Baixar (22KB)

Declaração de direitos autorais © Kononov D.A., Furugyan M.G., 2025

Creative Commons License
Este artigo é disponível sob a Licença Creative Commons Atribuição–Compartilhalgual 4.0 Internacional.

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

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») на элемент с текстом «Принять и продолжить».