Designing a real-time computing system with specified characteristics
- Authors: Furugyan M.G.1
-
Affiliations:
- Federal Research Center “Computer Science and Control” of the RAS
- Issue: No 1 (2025)
- Pages: 90-98
- Section: SYSTEM ANALYSIS AND OPERATIONS RESEARCH
- URL: https://journals.rcsi.science/0002-3388/article/view/293789
- DOI: https://doi.org/10.31857/S0002338825010079
- EDN: https://elibrary.ru/AHCXEG
- ID: 293789
Cite item
Full Text
Abstract
The problem of determining the parameters of a real-time computing system (processor performance, volume and efficiency of resource use), allowing to perform a given set of jobs in a predetermined time frame, is considered. If it is impossible to select such parameters, the problem of minimal correction of job characteristics (directive intervals and job volumes) is solved. To solve these problems, network modeling and algorithms for finding flows with specified properties in networks with winnings are used.
Full Text
Введение. С конца 70-х гг. прошлого века вычислительные системы реального времени стали широко внедряться в различные области деятельности человека. Главным образом они используются там, где требуемые вычисления необходимо выполнить в заранее установленные временные интервалы. В системах жесткого реального времени такие интервалы могут составлять доли секунды. Например, подобная ситуация имеет место при испытаниях и эксплуатации летательных аппаратов, атомных реакторов, при наблюдении за космическими объектами, проведении военных операций. Менее жесткие временные ограничения возникают при обработке информации экономического и экологического характера.
Во всех указанных выше случаях требуется решение следующих задач. Во-первых, необходимо построить расписание, согласно которому все вычисления будут проведены в заданном темпе. Во-вторых, надо определить производительность системы, позволяющую это сделать. И в-третьих, в случае необходимости, минимальным образом скорректировать параметры системы и характеристики заданий.
По вопросам построения расписаний имеется большое количество публикаций. Так, в работе [1] подробно исследуются задачи, связанные с разработкой алгоритмов построения расписаний для систем обслуживания с одним и несколькими приборами. Рассматриваются задачи как с независимыми заданиями, так и с работами, связанными отношениями предшествования. Большое внимание уделяется вопросам вычислительной сложности задач и построенных алгоритмов. Исследован ряд полиномиально разрешимых и NP-трудных задач. В работе [2] приводится подробная классификация задач теории расписаний. Обсуждаются некоторые задачи комбинаторной оптимизации, задачи составления расписаний для систем с одной и несколькими параллельными машинами, задачи на минимизацию времени выполнения заданий и соблюдения директивных сроков, метод ветвей и границ. Рассмотрены вопросы вычислительной сложности алгоритмов. В отличие от [1, 2], в работе [3] изучаются задачи построения расписаний в многостадийных системах. Исследуются различные задачи с одинаковыми последовательностями прохождения приборов, а также различными и нефиксированными маршрутами. Развивается теоретико-игровой подход к анализу таких задач.
В работах [4, 5] развивается метод “ветвей и границ” для решения задач теории расписаний. Предполагается, что некоторые параметры, такие как длительности выполнения заданий и объемы имеющихся ресурсов, не являются фиксированными. Рассмотрены случаи, когда эти параметры могут принимать значения из заданных интервалов либо являются случайными величинами. При этом множества значений этих параметров разбиваются на области, внутри каждой из которых расписание имеет неизменную структуру. В работах [6, 7] исследован ряд NP-трудных задач составления однопроцессорных и многопроцессорных расписаний. Предложены алгоритмы для критериев минимизации времени выполнения всего комплекса работ, а также минимизации максимального запаздывания. Вводится понятие расстояния между заданиями, на основе которого предложена методика нахождения приближенных решений.
В работах [8–10] предложен метод решения задачи построения расписаний с директивными интервалами для многоядерной вычислительной системы реального времени. Метод основан на построении временной диаграммы, описывающей работу системы. Это позволяет выполнять непосредственную проверку ограничений реального времени, заключающихся в том, что каждая работа успевает завершиться в своем директивном интервале. Указанные исследования проведены с помощью имитационной модели, основанной на использовании обобщенных конечных автоматов.
Упомянутые выше работы посвящены задачам распределения нескладируемых ресурсов, т.е. таких ресурсов, которые могут применяться многократно (приборы, процессоры, машины, станки и т.д.). В отличие от них, складируемые ресурсы повторно использоваться не могут. Примерами являются финансы, горюче-смазочные материалы, электроэнергия, устройства вычислительной системы, предназначенные для конкретного программного модуля. В работах [11, 12] рассмотрены задачи минимизации времени выполнения комплекса работ, потребляющих складируемые ресурсы. При этом предполагается, что длительности выполнения заданий линейно зависят от объема выделенных им ресурсов. В работе [11] также рассмотрена задача минимизации потребления ресурсов при заданном директивном сроке выполнения всех работ.
В работе [13] изучена задача составления допустимого расписания со смешанным набором ресурсов – складируемых и нескладируемых. Решение этой задачи сведено к поиску максимального потока в сети специального вида. Задача нахождения производительностей процессоров, при которых существует допустимое расписание в системе с однородным набором ресурсов, исследована в работе [14] и сведена к системе линейных ограничений.
В настоящей статье рассматривается задача планирования комплекса работ в вычислительной системе реального времени со смешанным набором ресурсов – складируемых и нескладируемых. Исследуется вопрос о существовании и построении решения (допустимого распределения ресурсов и допустимого расписания). В случае, если решения не существует, ставится вопрос о корректировке параметров системы (производительности процессоров, объемы и эффективности ресурсов) и характеристик работ (объемы и директивные интервалы). Предлагаемая методика основана на использовании потоковых сетей с выигрышами. Решение указанных задач имеет большое значение при проектировании и функционировании сложных технических объектов, в частности бортовых систем управления.
1. Обозначения и определения. Введем следующие обозначения: W = {w1, w2, ..., wn} – комплекс работ (заданий), которые должны быть выполнены с использованием вычислительной системы, состоящей из m процессоров (нескладируемые ресурсы) и набора складируемых ресурсов. Каждая работа wi имеет две характеристики – директивный интервал [bi; fi] (задание wi может выполняться только в этом временном интервале) и объем Vi . Далее P1, P2, ..., Pm – процессоры, производительности которых равны s1, s2, ..., sm соответственно. Каждая работа может выполняться на любом процессоре. Допускаются прерывания и переключения с одного процессора на другой, которые, по предположению, не требуют временных затрат. Кроме того, возможно параллельное выполнение одной работы несколькими процессорами (в частности, всеми процессорами вместе). Не допускается одновременное выполнение нескольких работ одним процессором. Если процессор с производительностью s выполняет некоторое задание в течение интервала времени , то объем сделанной им работы составляет .
Помимо процессоров для выполнения заданий могут использоваться L типов складируемых ресурсов. Для краткости в дальнейшем будем называть их просто ресурсами. Их объемы составляют R1, R2, ..., RL соответственно. В отличие от процессоров, ресурсы повторно использоваться не могут. Если для выполнения задания wi выделено rli единиц ресурса l-го типа, то это обеспечивает объем работы, равный rli zli , где zli – эффективность применения ресурса l-го типа для задания wi. В отличие от работы [13], эффективность зависит как от типа ресурса, так и от задания. Работе wi должно быть выделено не менее rli0 и не более rli1 единиц ресурса l-го типа, l = . Величина Vi – это суммарный объем работы, обеспечиваемый процессорами и ресурсами, необходимый для выполнения задания wi.
Допустимым распределением ресурсов будем называть распределение rli, которое удовлетворяет ограничениям:
(1.1)
(1.2)
Расписание для комплекса W показывает для каждой работы wi ∈ W, в какие временные интервалы времени какими процессорами она выполняется. Допустимое расписание – это такое расписание для W, при котором каждое задание wi ∈ W полностью исполняется в своем директивном интервале [bi; fi]. Решением задачи будем называть пару “допустимое распределение ресурсов – допустимое расписание”.
2. Постановка задачи. Входными данными задачи обозначим совокупность характеристик заданий (директивные интервалы и объемы) и параметров системы (производительности процессоров, объемы и эффективность использования ресурсов). Требуется решить следующие задачи.
З а д а ч а 1. При фиксированных входных данных определить, существует ли решение, и найти его при положительном ответе.
З а д а ч а 2. В случае отрицательного ответа в задаче 1 скорректировать параметры системы и характеристики заданий так, чтобы решение существовало.
Решение сформулированных задач основано на построении потоковой сети и нахождении в ней потоков с определенными свойствами. В отличие от [13], будем применять сети с выигрышами [11].
3. Решение задачи 1. Используем аппарат потоковых сетей с выигрышами. Сеть с выигрышами отличается от обычной сети тем, что в некоторых узлах величина выходящего потока отличается от величины входящего потока некоторой мультипликативной константой [11]. А именно величина выходящего потока из узла a равна величине входящего потока в узел a, умноженной на постоянное для данного узла число c(a), называемое коэффициентом выигрыша узла a.
Пусть y0 < y1 < ... < yp – все различные величины bi и fi, i = . Построим потоковую ориентированную сеть с выигрышами G = (N, A) (см. рисунок). Определим множество узлов:
, j, , .
Рисунок. Потоковая сеть G с выигрышами.
Здесь u – источник, v – сток, Ij соответствует интервалу [yj–1; yj], El – ресурсу l-го типа, Dli – ресурсу l-го типа и заданию wi, Pkj – работе процессора Pk в интервале Ij, wi – заданию wi ∈ W. Определим множество дуг:
j = , l = , k = , i = .
Дуга (Pkj, wi) вводится в сеть G в том случае, если Ij ⊆ [bi; fi], т.е. если работа wi может выполняться в интервале Ij. Сеть G содержит O(pm + Ln) узлов и O((pm + Ln)n) ориентированных дуг.
Узел Pkj имеет коэффициент выигрыша, равный sk. Это означает, что если в узел Pkj по дуге (Ij, Pkj) входит поток g, то величина суммарного потока, выходящего из узла Pkj по дугам (Pkj, wi), равна sk g, т.е.
(3.1)
Коэффициент выигрыша узла Dli равен zli. Это означает, что если в узел Dli по дуге (El, Dli) входит поток g, то величина потока, выходящего из узла Dli по дуге (Dli, wi), равна zli g, т.е.
(3.2)
Коэффициенты выигрыша остальных узлов равны 1, т.е. для них выполняется условие сохранение потока. В узлах Pkj и Dli это условие трансформируется в равенства (3.1), (3.2) соответственно. Каждая дуга (x, y) ∈ A сети G имеет два параметра: L(x, y) – нижняя граница потока по дуге (x, y), U(x, y) – верхняя граница потока по дуге (x, y). Значения параметров L и U приведены в табл. 1.
Таблица 1. Значения параметров дуг сети G
Дуга | L | U |
(u, Ij) | 0 | mdj |
(u, El) | 0 | Rl |
(El, Dli) | rli0 | rli1 |
(Ij, Pkj) | 0 | dj |
(Pkj, wi) | 0 | skdj |
(Dli, wi) | zli rli0 | zli rli1 |
(wi, v) | Vi | Vi |
В табл. 2 поясняется смысловое значение потока g по дугам сети G.
Таблица 2. Физическая интерпретация потока g по дугам сети G
Поток по дуге | Физический смысл потока по дуге |
g(u, Ij) | Суммарное распределяемое процессорное время в интервале Ij |
g(u, El) | Суммарное распределяемое количество ресурса l-го типа |
g(El, Dli) | Объем ресурса l-го типа, выделяемый заданию wi |
g(Ij, Pkj) | Суммарное время работы процессора Pk в интервале Ij |
g(Pkj, wi) | Объем работы процессора Pk по выполнению задания wi в интервале Ij |
g(Dli, wi) | Объем работы по выполнению задания wi с помощью ресурса l-го типа |
g(wi, v) | Суммарный объем работы по выполнению задания wi с помощью процессоров и ресурсов |
Предположим, что в сети G существует некоторый поток g. С помощью этого потока и пояснений, содержащихся в табл. 2, можно построить решение задачи 1. Используя дополнительно соотношения (3.1), (3.2), сделаем следующие выводы.
- Структура сети G такова, что каждая работа wi выполняется только в своем директивном интервале [bi; fi].
- Суммарное время работы процессора Pk в интервале Ij составляет
Такое расписание выполнения работ W процессорами P1, P2, ..., Pm может быть реализовано, поскольку по условию задачи допускается параллельное выполнение одного задания произвольным числом процессоров.
- Суммарное время работы всех m процессоров в интервале Ij составляет
что допустимо.
- Объем ресурса l-го типа, выделяемый работе wi, составляет g(El, Dli), что удовлетворяет условию задачи, поскольку .
- Суммарный объем ресурса l-го типа, используемый для выполнения работ, составляет
что удовлетворяет условию задачи.
- Каждая работа выполнена полностью, поскольку g(wi, v) = Vi при всех i = 1, n.
Таким образом, если в сети G существует поток, то в задаче 1 существует решение.
Покажем теперь, что из существования решения в задаче 1 следует существование потока g в сети G. Пусть работе wi выделено rli единиц ресурса l-го типа. Определим поток по дуге (El, Dli) равным этой величине, т.е. g(El, Dli) = rli. Пусть далее g(Dli, wi) = zli rli,
Тогда из (1.1), (1.2) следует, что
, .
Допустим, что tkji – продолжительность выполнения работы wi процессором Pk в интервале Ij (tkji ≤ j). Определим ,
Тогда
.
Положим, что
Тогда . Наконец, определим
т.е. g(wi, v) – это суммарный объем работы по выполнению задания wi, предоставляемый процессорами и ресурсами. Поскольку работа wi сделана полностью, то g(wi, v) = Vi. Следовательно, не нарушены ограничения на поток по всем дугам сети G, заданные в табл. 1. Кроме того, верны условия сохранения потока в узлах Ij, j = , El, l = , и wi, i = , а также условия (3.1), (3.2) для узлов Dli, l = , i = и Pkj, k = , j = . Тогда g является потоком в сети G.
Таким образом, доказано, следующее утверждение.
Л е м м а. В задаче 1 решение существует в том и только том случае, когда в сети G существует поток.
Из леммы 1 и проведенных выше рассуждений вытекает следующий алгоритм решения задачи 1.
Ш а г 1. Построить сеть G.
Ш а г 2. Найти в сети G поток g. (Для этого может быть использован, например, алгоритм дефекта [15]. При этом стоимость единицы потока по каждой дуге полагается равной нулю.) Если поток существует, то перейти на шаг 3. В противном случае – на шаг 4.
Ш а г 3. Работе wi следует выделить ресурс l-го типа в количестве g(Dli, wi)/zli, l = , и выполнять ее процессором Pk в интервале Ij в течение времени
, , j, .
Завершение алгоритма.
Ш а г 4. Решения не существует.
Оценим вычислительную сложность предложенного алгоритма. Учитывая неравенство p ≤ 2n – 1, получаем, что число узлов и число дуг в сети G составляет соответственно O(mn + Ln) и O(mn2 + Ln). Тогда сложность отдельных этапов алгоритма следующая: шаг 1 – O(mn2 + Ln), шаг 2 –
шаг 3 – O(mn + Ln). Таким образом, вычислительная сложность алгоритма составляет
.
З а м е ч а н и е. Одним из действий алгоритма дефекта [15], применяемого на шаге 2, является поиск увеличивающего пути. Следует учесть, что при прохождении через узелDli по дугам (El, Dli) и (Dli, wi) поток по дуге (Dli, wi) необходимо умножить на zli. Аналогично при прохождении через узел Pkj по дугам (Ij, Pkj) и (Pkj, wi) поток по дуге (Pkj, wi) нужно умножить на sk. При прохождении через узлы Dli и Pkj по дугам (wi, Dli), (Dli, Ei) и (wi, Pkj), (Pkj, Ij) соответственно (т.е. в случае, когда эти дуги используются как обратные) потоки по дугам (Dli, El) и (Pkj, Ij) следует разделить на zli и sk.
4. Решение задачи 2. Используя поток g в сети G и данные из табл. 1 и 2, опишем задачу 1 в виде следующей системы линейных ограничений, в которой требуется найти значения переменных g(u, Ij), g(u, El), g(El, Dli), (Pkj, wi), (Dli, wi), (wi, v), j = , l = , k = , i = :
(4.1)
(4.2)
(4.3)
(4.4)
(4.5)
(4.6)
(4.7)
(4.8)
(4.9)
(4.10)
(4.11)
(4.12)
Данная система содержит O(pmn + Ln) переменных и O(pm + Ln) линейных ограничений.
Перейдем к решению задачи 2. Предположим, что при исходных данных решения в задаче 1 не существует. Определим, каким образом следует изменить параметры системы и характеристики заданий, чтобы решение существовало. Сначала исследуем, как надо увеличить производительности процессоров, чтобы решение в задаче 1 существовало. При этом будем минимизировать максимальное приращение производительностей. Пусть производительность sk процессора Pk увеличена на sk0. Найдем такие величины sk0, при которых
принимает минимальное значение. Это означает, что производительности всех процессоров следует увеличить на одну и ту же величину. Иными словами, надо минимизировать величину s0 при условии, что с производительностями процессоров sk + s0, k = , решение в задаче 1 существует. Таким образом, получаем следующую задачу линейного программирования: найти min s0 при условиях (4.1)–(4.3), (4.5)–(4.8), (4.10)–(4.12) и ограничениях
Аналогично для определения минимального увеличения объема R 0 ресурсов каждого типа получаем задачу линейного программирования: найти min R 0 при условиях (4.1)–(4.6), (4.8)–(4.12) и ограничениях
Для определения минимального увеличения эффективности z0 ресурсов каждого типа получаем задачу линейного программирования: найти min z0 при условиях (4.1), (4.2), (4.4)–(4.10), (4.12) и ограничениях
Для определения минимального уменьшения объема работ V 0 получаем задачу линейного программирования: найти min V 0 при условиях (4.1)–(4.11) и ограничениях
Задача минимизации суммарной стоимости процессоров при условии существования решения в задаче 1 выглядит следующим образом: найти
при условиях (4.1)–(4.12) и ограничениях sk ≤ sk1, k = , где ck1 – стоимость одной единицы производительности процессора Pk, sk1 – верхняя допустимая граница производительности процессора Pk.
Задача минимизации суммарной стоимости используемых ресурсов при условии существования решения в задаче 1 выглядит следующим образом: найти
при условиях (4.1)–(4.12) и ограничениях Rl ≤ Rl1, l = , где cl2 – стоимость одной единицы ресурса l-го типа, Rl1 – верхняя допустимая граница объема ресурса l-го типа.
Эту задачу можно также решить и путем поиска потока минимальной стоимости в сети G. Для этого надо определить стоимость единицы потока по дуге (u, El), равной cl2, l = , а в качестве верхней границы объема ресурса l-го типа взять Rl1, l = . Далее, используя алгоритм дефекта, найдем искомые величины Rl, l = , если поток в сети G существует. Если же потока не существует, то и решения в этой задаче нет.
Задачу минимизации увеличения директивных сроков заданий, при котором имеется решение задачи 1, будем решать в предположении, что все начальные директивные сроки bi совпадают, т.е. bi = b0, i = . Без ограничения общности можно считать, что f1 < f2 < ... < fn. По-прежнему предполагаем, что требуется минимизировать максимальное увеличение директивного срока. Поэтому можно считать, что все величины fi увеличиваются на одно и то же значение, например на . В этом случае длина интервала I1 увеличится на , а длины остальных интервалов Ij, j = , останутся без изменения. Таким образом, получаем следующую задачу линейного программирования: найти min при условиях (4.1)–(4.5), (4.7), (4.10) (4.12), ограничениях
и при условиях (4.6), (4.8), (4.9) для j = .
Заключение. Исследована задача распределения ресурсов и построения допустимого расписания для комплекса работ в многопроцессорной системе реального времени. Разработан алгоритм нахождения параметров системы (производительности процессоров, объемы и эффективность использования ресурсов), при которых решение в поставленной задаче существует. Решена задача оптимальной коррекции характеристик заданий (директивные интервалы и объемы работ). Для решения указанных задач применяется сетевое моделирование и алгоритмы нахождения потоков с заданными свойствами.
About the authors
M. G. Furugyan
Federal Research Center “Computer Science and Control” of the RAS
Author for correspondence.
Email: rtsccas@yandex.ru
Russian Federation, Moscow
References
- Танаев В.С., Гордон В.С., Шафранский Я.М. Теория расписаний. Одностадийные системы. М.: Наука, 1984.
- Brucker P. Scheduling Algorithms. Heidelberg: Springer, 2007.
- Танаев В.С., Сотсков Ю.Н., Струсевич В.А. Теория расписаний. Многостадийные системы. М.: Наука, 1989.
- Горский М.А., Мищенко А.В., Нестерович Л.Г., Халиков М.А. Некоторые модификации целочисленных оптимизационных задач с учетом неопределенности и риска // Изв. РАН. ТиСУ. 2022. № 5. С. 106–117.
- Мищенко А.В., Кошелев П.С. Оптимизация управления работами логистического проекта в условиях неопределенности // Изв. РАН. ТиСУ. 2021. № 4. С. 123–134.
- Лазарев А.А. Теория расписаний. Оценка абсолютной погрешности и схема приближенного решения задач теории расписаний. М.: МФТИ, 2008.
- Лазарев А.А. Теория расписаний. Методы и алгоритмы. М.: ИПУ РАН, 2019.
- Глонина А.Б., Балашов В.В. О корректности моделирования модульных вычислительных систем реального времени с помощью сетей временных автоматов // Моделирование и анализ информационных систем. 2018. Т. 25. № 2. С. 174–192.
- Глонина А.Б. Обобщенная модель функционирования модульных вычислительных систем реального времени для проверки допустимости конфигураций таких систем // Вестн. ЮУрГУ. Сер. Вычисл. математика и информатика. 2017. Т. 6. № 4. С. 43–59.
- Глонина А.Б. Инструментальная система проверки выполнения ограничений реального времени для конфигураций модульных вычислительных систем // Вестн. МГУ. Сер. 15. Вычисл. математика и кибернетика. 2020. № 3. С. 16–29.
- Филлипс Д., Гарсиа-Диас А. Методы анализа сетей. М.: Мир, 1984.
- Давыдов Э.Г. Исследование операций. М.: Высш. шк., 1990.
- Фуругян М.Г. Распределение неоднородного набора ресурсов при составлении многопроцессорного расписания // Изв. РАН. ТиСУ. 2021. № 5. С. 120–127.
- Фуругян М.Г. Синтез многопроцессорной системы при построении расписаний с прерываниями и директивными интервалами // Изв. РАН. ТиСУ. 2019. № 2. С. 41–46.
- Майника Э. Алгоритмы оптимизации на сетях и графах. М.: Мир, 1981.
Supplementary files



