Известия РАН. Теория и системы управления, 2019, № 2, стр. 41-46

СИНТЕЗ МНОГОПРОЦЕССОРНОЙ СИСТЕМЫ ПРИ ПОСТРОЕНИИ РАСПИСАНИЙ С ПРЕРЫВАНИЯМИ И ДИРЕКТИВНЫМИ ИНТЕРВАЛАМИ

М. Г. Фуругян *

ВЦ ФИЦ ИУ РАН
Москва, Россия

* E-mail: rtsccas@ya.ru

Поступила в редакцию 16.10.2018
После доработки 12.11.2018
Принята к публикации 26.11.2018

Полный текст (PDF)

Аннотация

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

Введение. Задача построения допустимых многопроцессорных расписаний является одной из основных задач при разработке математического и программного обеспечения многопроцессорных вычислительных систем реального времени. Эти системы находят широкое применение при разработке и эксплуатации сложных технических объектов (самолеты, ядерные реакторы, системы экологического и экономического мониторинга, конвейерные системы и др.). Задачам построения расписаний с прерываниями посвящено большое число работ. Отметим, например, такие работы, как [1] (идентичные процессоры), [2] (произвольные процессоры, одинаковые директивные интервалы), [35] (произвольные процессоры, произвольные директивные интервалы). В некоторых случаях аналогичные задачи сводятся к минимаксным и сетевым задачам, методы решения которых приведены в [69]. В настоящей статье рассматривается своего рода обратная задача по отношению к перечисленным выше, а именно задача нахождения таких производительностей процессоров, при которых допустимое расписание существует. При этом предполагается, что директивные интервалы фиксированы, а объемы работ в одном случае также фиксированы, а во втором – линейно зависят от количества выделенных работ дополнительных ресурсов. Кроме того, приведена задача, когда на производительности процессоров накладываются ограничения сверху и снизу.

1. Задача с фиксированными объемами работ. Рассматривается задача нахождения допустимых производительностей процессоров при заданных директивных интервалах и объемах работ. Результаты, полученные в этом разделе, основаны на результатах работ [4, 10].

1.1. Постановка задачи. Описывается вычислительная система, состоящая из m процессоров. Каждый процессор  j характеризуется производительностью ${{s}_{j}}$, $j = \overline {1,m} $. Имеется набор работ (заданий) $N = \{ \overline {1,n} \} $, подлежащих выполнению. При выполнении заданий допускаются прерывания и переключения с одного процессора на другой. Предполагается, что прерывания и переключения не сопряжены с временны́ми затратами. В фиксированный момент времени каждый процессор может выполнять не более одной работы, а каждая работа выполняется не более чем одним процессором. Каждое задание $i \in N$ характеризуется своим директивным интервалом $({{b}_{i}},{{f}_{i}}]$ (работа i может быть начата после момента времени ${{b}_{i}}$ и должна быть завершена не позднее момента времени ${{f}_{i}}$) и объемом ${{Q}_{i}}$ работы процессоров по его выполнению (суммарный объем работы процессоров по выполнению задания i должен быть равен ${{Q}_{i}}$). Если суммарная длительность работы процессора  j по выполнению работы i составляет ${{\tau }_{{ij}}}$, $i \in N$, $j = \overline {1,m} $, то

${{Q}_{i}} = \sum\limits_{j = 1}^m {{{s}_{j}}{{\tau }_{{ij}}}} .$

Требуется определить множество ${{s}_{1}},{{s}_{2}},\; \ldots ,{{s}_{m}}$ производительностей процессоров, для которых существует допустимое расписание (т.е. расписание, при котором каждая работа полностью выполняется в своем директивном интервале).

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

(1.1)
${{s}_{1}} \geqslant {{s}_{2}} \geqslant \; \ldots \; \geqslant {{s}_{m}}$.

Введем следующие обозначения: ${{S}_{k}} = \;{{s}_{{\text{1}}}}\; + \;{{s}_{{\text{2}}}}\; + \;... + \;{{s}_{k}}$,  $k = \overline {1,m} $; ${{y}_{0}} < {{y}_{1}} < \; \ldots \; < {{y}_{p}}$, $p < 2n$, – все разные по величине значения ${{b}_{i}}$, ${{f}_{i}}$, $i \in N$; ${{I}_{l}} = ({{y}_{{l - 1}}},{{y}_{l}}]$, $l = \overline {1,p} $; ${{\delta }_{l}} = {{y}_{l}} - {{y}_{{l - 1}}}$ – длина интервала ${{I}_{l}}$. Очевидно, что для любых двух интервалов ${{I}_{l}}$ и $({{b}_{i}},{{f}_{i}}]$ либо ${{I}_{l}} \subseteq ({{b}_{i}},{{f}_{i}}]$, либо ${{I}_{l}} \cap ({{b}_{i}},{{f}_{i}}] = \emptyset $. Директивный интервал $({{b}_{i}},{{f}_{i}}]$ каждой работы $i \in N$является объединением некоторых интервалов ${{I}_{l}}$.

Будем говорить, что работа $i \in N$ доступна в интервале ${{I}_{l}}$, если ${{I}_{l}} \subseteq ({{b}_{i}},{{f}_{i}}]$, т.е. работа i может выполняться в интервале ${{I}_{l}}$. Без ограничения общности можно считать, что в каждом интервале ${{I}_{l}}$, $1 \leqslant l \leqslant p$, доступна хотя бы одна работа $i \in N$, поскольку интервалы ${{I}_{l}}$, которые не удовлетворяют этому условию, можно исключить из дальнейшего рассмотрения, а оставшиеся интервалы перенумеровать.

Как следует из [4], допустимое расписание в поставленной задаче существует тогда и только тогда, когда для любого подмножества $\tilde {N} \subseteq N$ выполнено неравенство

(1.2)
$\sum\limits_{i \in \tilde {N}} {{{Q}_{i}}} \leqslant \sum\limits_{l = 1}^p {{{\delta }_{l}}} {{S}_{{k(l,\tilde {N})}}},$
где $k(l,\tilde {N}) = \min (m,m{\text{'}})$, $m{\text{'}}$ – число работ $\tilde {N} \subseteq N$, доступных в интервале Il. По аналогии с тем, как это сделано в [1] для случая идентичных процессоров, число подмножеств $\tilde {N}$, для которых следует выполнять проверку условия (1.2), в некоторых случаях можно существенно сократить. Предположим, что множество работ N можно разбить на $r \geqslant 2$ непересекающихся подмножеств, $N = {{N}_{{{{l}_{1}}{{l}_{2}}}}} \cup {{N}_{{{{l}_{3}}{{l}_{4}}}}} \cup \; \ldots \; \cup {{N}_{{{{l}_{{2r - 1}}}{{l}_{{2r}}}}}}$, ${{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}} \cap {{N}_{{{{l}_{{2v - 1}}}{{l}_{{2v}}}}}} = \emptyset $ при $u \ne v$, таких, что
$\bigcup\limits_{i \in {{N}_{l}}_{{_{{2u - 1}}{{l}_{{2u}}}}}} {({{b}_{i}},{{f}_{i}}]} = {{I}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}},$
где

${{I}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}} = \bigcup\limits_{l = {{l}_{{2u - 1}}}}^{{{l}_{{2u}}}} {{{I}_{l}}} ,\quad u = \overline {1,r} ,\quad 1 \leqslant {{l}_{1}} \leqslant {{l}_{2}} < {{l}_{3}} \leqslant {{l}_{4}} < \ldots < {{l}_{{2r - 1}}} \leqslant {{l}_{{2r}}} \leqslant p.$

Докажем следующее утверждение.

Лемма 1. Для существования допустимого расписания необходимо и достаточно, чтобы для любой пары ${{l}_{{2u - 1}}}$, ${{l}_{{2u}}}$, $u = \overline {1,r} $, и любого подмножества ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$ выполнялось неравенство

(1.3)
$\sum\limits_{i \in {{{\tilde {N}}}_{u}}} {{{Q}_{i}}} \leqslant \sum\limits_{l = {{l}_{{2u - 1}}}}^{{{l}_{{2u}}}} {{{\delta }_{l}}} {{S}_{{k(l,{{{\tilde {N}}}_{u}})}}}.$

Доказательство. Необходимость. Если допустимое расписание существует, то неравенство (1.2) справедливо для всех подмножеств $\tilde {N} \subseteq N$ и, в частности, для подмножеств ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$, $u = \overline {1,r} $.

Достаточность. Пусть неравенство (1.3) справедливо для любого подмножества ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$, $u = \overline {1,r} $. Выберем произвольное подмножество $\tilde {N} \subseteq N$. Его можно представить в виде следующего объединения непересекающихся подмножеств:

$\tilde {N} = \bigcup\limits_{u = 1}^r {{{{\tilde {N}}}_{u}}} ,$
где ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$, $u = \overline {1,r} $, ${{\tilde {N}}_{u}} \cap {{\tilde {N}}_{v}} = \emptyset $ при $u \ne v$. Для каждого ${{\tilde {N}}_{u}}$, $u = \overline {1,r} $, неравенство (1.3) справедливо. Складывая неравенства (1.3) для всех $u = \overline {1,r} $, получаем (1.2) и, следовательно, допустимое расписание существует. Лемма доказана.

Доказанная лемма 1 позволяет выполнять проверку условия (1.2) не для всех подмножеств $\tilde {N} \subseteq N$, а только для подмножеств вида ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$, $u = \overline {1,r} $ (условие (1.3)), число которых может быть существенно меньше, чем число всех подмножеств множества N, т.е. ${{2}^{n}}$. Перепишем неравенство (1.3) в следующем виде:

(1.4)
${{q}_{u}} \leqslant {{H}_{{u1}}}{{S}_{1}} + H_{{u2}}^{{}}{{S}_{2}} + \; \ldots \; + {{H}_{{um}}}{{S}_{m}},$
где
${{q}_{u}} = \sum\limits_{i \in \tilde {N}u} {{{Q}_{i}}} ,\quad {{H}_{{uj}}} = \sum\limits_{l:k(l,{{{\tilde {N}}}_{u}}) = j} {{{\delta }_{l}}} ,\quad j = \overline {1,m} ,$
а неравенство (1.4) перепишем в виде
(1.5)
${{q}_{u}} \leqslant {{G}_{{u1}}}{{s}_{1}} + G_{{u2}}^{{}}{{s}_{2}} + \; \ldots \; + {{G}_{{um}}}{{s}_{m}},$
где ${{G}_{{uj}}} = {{H}_{{u1}}} + {{H}_{{u2}}} + \; \ldots \; + {{H}_{{uj}}}$, $j = \overline {1,m - 1} $. Теперь задача заключается в нахождении производительностей ${{s}_{1}},{{s}_{2}},\; \ldots ,\;{{s}_{m}}$ процессоров, удовлетворяющих системе линейных неравенств с m переменными (1.1), (1.5) для любой пары ${{l}_{{2u - 1}}}$, ${{l}_{{2u}}}$, $u = \overline {1,r} $, и любого подмножества ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$.

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

(1.6)
${{h}_{j}} \leqslant {{s}_{j}} \leqslant {{g}_{j}},\quad j = \overline {1,m} ,$
где hj и  gj  – заданные величины. В этом случае неравенства (1.6) добавляются к неравенствам (1.1), (1.5).

Величины s1, s2, …, sm можно также искать, ограничившись неравенствами (1.4). Для этого будем использовать следующее утверждение [10].

Лемма 2. Для того, чтобы по заданным величинам ${{S}_{1}},{{S}_{2}},\; \ldots ,\;{{S}_{m}}$ можно было определить величины ${{s}_{1}},{{s}_{2}},\; \ldots ,\;{{s}_{m}}$, удовлетворяющие неравенствам (1.1), необходимо и достаточно выполнения неравенств

(1.7)
$0 \leqslant {{S}_{1}} \leqslant {{S}_{2}} \leqslant \; \ldots \; \leqslant {{S}_{m}},$
(1.8)
$2{{S}_{k}} \geqslant {{S}_{{k - 1}}} + {{S}_{{k + 1}}},\quad k = \overline {2,\;m - 1} ,$
(1.9)
$2{{S}_{1}} \geqslant {{S}_{2}}.$

Доказательство. Необходимость. Справедливость (1.7) следует из определения величин Sk, $k = \overline {1,m} $. Кроме того, 2S1S2 = 2s1 – (s1 + s2) = s1s2, откуда в силу (1.1) следует (1.9), и 2Sr – (S– 1 + Sr + 1) = 2(s1 + … + sr) – (s1 + … + sr – 1) – (s1 + … + s+ 1) = srs+ 1, откуда в силу (1.1) вытекает (1.8).

Достаточность. Пусть величины S1, …, Sm удовлетворяют неравенствам (1.7)–(1.9). Определим величины s1, …, sm следующим образом:

(1.10)
${{s}_{1}} = {{S}_{1}},\quad {{s}_{r}} = {{S}_{r}}--{{S}_{r}}_{{ - 1}},\quad r = \overline {2,m} .$

Тогда ${{s}_{r}} \geqslant 0$, $r = \overline {1,m} $, в силу (1.7). В силу (1.8), (1.9) имеем

${{s}_{1}} - {{s}_{2}} = {{S}_{1}} - ({{S}_{2}} - {{S}_{1}}) = 2{{S}_{1}} - {{S}_{2}} \geqslant 0,$
${{s}_{r}} - {{s}_{{r + 1}}} = ({{S}_{r}} - {{S}_{{r - 1}}}) - ({{S}_{{r + 1}}} - {{S}_{r}}) = 2{{S}_{r}} - {{S}_{{r - 1}}} - {{S}_{{r + 1}}} \geqslant 0,\quad r = \overline {2,m - 1} ,$
откуда следует (1.1). Лемма доказана.

Таким образом, величины ${{S}_{1}},{{S}_{2}},\; \ldots ,\;{{S}_{m}}$, по которым можно определить производительности ${{s}_{1}},{{s}_{2}},\; \ldots ,\;{{s}_{m}}$ процессоров, должны удовлетворять системе линейных неравенств (1.4), (1.7)–(1.9) с m переменными. Как показано в лемме 2, по величинам ${{S}_{1}},{{S}_{2}},\; \ldots ,\;{{S}_{m}}$ производительности ${{s}_{1}},{{s}_{2}},\; \ldots ,\;{{s}_{m}}$ процессоров вычисляются по формулам (1.10).

Отметим также, что в рассматриваемой задаче можно потребовать выполнение ряда дополнительных условий, как, например: 1) суммарная производительность процессоров должна быть минимальной, т.е. ${{s}_{1}} + {{s}_{2}} + \; \ldots \; + {{s}_{m}} \to \min $; 2) производительность самого быстрого процессора должна быть минимальной, т.е. ${{s}_{1}} \to \min $, а также других условий. В этом случае получаем задачу линейного программирования с целевой функцией соответственно ${{s}_{1}} + {{s}_{2}} + \; \ldots \; + {{s}_{m}}$ и s1 и ограничениями (1.1), (1.5), (1.6).

1.3. Парето-оптимальные решения. Рассмотрим задачу поиска парето-оптимального вектора $(s_{1}^{0},s_{2}^{0},\; \ldots ,\;s_{m}^{0})$ с точки зрения минимизации производительностей процессоров. Будем предполагать, что выполнены неравенства ${{g}_{1}} \geqslant {{g}_{2}} \geqslant \; \ldots \; \geqslant {{g}_{m}}$. Пусть $\Delta $ – это множество векторов $(s_{1}^{{}},s_{2}^{{}},\;...,\;s_{m}^{{}})$, удовлетворяющих неравенствам (1.5). Опишем процедуру поиска вектора $(s_{1}^{0},s_{2}^{0},\; \ldots ,\;s_{m}^{0}) \in \Delta $, для которого не существует такого вектора $(s_{1}^{{}},s_{2}^{{}},\; \ldots ,\;s_{m}^{{}}) \in \Delta $, что ${{s}_{j}}\; \leqslant s_{j}^{0}$ при всех  $j = \overline {1,m} $ и хотя бы для одного ${{j}_{1}}$, $1 \leqslant {{j}_{1}} \leqslant m$, ${{s}_{{{{j}_{1}}}}} < s_{{{{j}_{1}}}}^{0}$.

Все неравенства (1.5), записанные для каждой пары ${{l}_{{2u - 1}}}$, ${{l}_{{2u}}}$, $u = \overline {1,r} $, и каждого подмножества ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$, занумеруем от 1 до некоторого T и будем рассматривать их в следующем виде:

(1.11)
${{a}_{t}} \leqslant {{c}_{{t1}}}{{s}_{1}} + {{c}_{{t2}}}{{s}_{2}} + \; \ldots \; + {{c}_{{tm}}}{{s}_{m}},\quad t \in T.$

Будем предполагать, что при ${{s}_{j}} = g_{j}^{{}}$, $j = \overline {1,m} $, неравенства (1.11) выполняются при всех  $t = \overline {1,T} $. В противном случае,  как следует, из леммы 1, решения не существует. Найдем минимальное значение sm, при котором $(g_{1}^{{}},g_{2}^{{}},\; \ldots ,\;{{g}_{{m - 1}}},s_{m}^{{}}) \in \Delta $. В силу (1.11) и леммы 1 ${{s}_{m}} \geqslant ({{a}_{t}} - {{c}_{{t1}}}{{g}_{1}} - {{c}_{{t2}}}{{g}_{2}} - \; \ldots \; - {{c}_{{t,m - 1}}}{{g}_{{m - 1}}}){\text{/}}{{c}_{{tm}}}$ при всех $t = \overline {1,T} $. Тогда полагаем $s_{m}^{0}\, = \,{\text{max}}({\text{min}}(\bar {s}_{m}^{0},{{g}_{m}}),{{h}_{m}})$, где $\bar {s}_{m}^{0} = {{\max }_{{t = \overline {1,T} }}}({{a}_{t}} - {{c}_{{t1}}}{{g}_{1}} - {{c}_{{t2}}}{{g}_{2}} - \; \ldots \; - {{c}_{{t,m - 1}}}{{g}_{{m - 1}}}){\text{/}}{{c}_{{tm}}}$. Очевидно, что вектор $(g_{1}^{{}},g_{2}^{{}},\; \ldots ,\;{{g}_{{m - 1}}},s_{m}^{0})$ удовлетворяет неравенствам (1.1), (1.6), (1.11) и в силу выбора $s_{m}^{0}$ вектор $(g_{1}^{{}},g_{2}^{{}},\; \ldots ,\;{{g}_{{m - 1}}},s_{m}^{{}}) \notin \Delta $ при ${{s}_{m}} < s_{m}^{0}$, так как для него не выполнены некоторые из неравенств (1.11). Тем более, $(s_{1}^{{}},s_{2}^{{}},\; \ldots ,\;{{s}_{{m - 1}}},s_{m}^{{}}) \notin \Delta $ при ${{s}_{j}} < g_{j}^{{}}$, $j = \overline {1,m - 1} $, и ${{s}_{m}} < s_{m}^{0}$.

В общем случае, предположим, что уже определены значения $s_{{v + 1}}^{0}, \ldots ,s_{m}^{0}$, $1 \leqslant v \leqslant m - 1$. Найдем минимальное значение ${{s}_{v}}$, при котором $({{g}_{1}}, \ldots ,{{g}_{{v - 1}}},{{s}_{v}},s_{{v + 1}}^{0},s_{m}^{0}) \in \Delta $. В силу (1.11) и леммы 1 ${{s}_{v}} \geqslant ({{a}_{t}} - {{c}_{{t1}}}{{g}_{1}} - {{c}_{{t2}}}{{g}_{2}} - \ldots - {{c}_{{t,v - 1}}}{{g}_{{v - 1}}},{{c}_{{t,v + 1}}}s_{{v + 1}}^{0} - \ldots - {{c}_{{tm}}}s_{m}^{0}){\text{/}}{{c}_{{tv}}}$ при всех $t = \overline {1,T} $. Тогда полагаем $s_{v}^{0} = \max (\min (\bar {s}_{v}^{0},{{g}_{v}}),s_{{v + 1}}^{0},{{h}_{v}})$, где $\bar {s}_{v}^{0} = {{\max }_{{t = \overline {1,T} }}}({{a}_{t}} - {{c}_{{t1}}}{{g}_{1}} - {{c}_{{t2}}}{{g}_{2}} - \ldots - {{c}_{{t,v - 1}}}{{g}_{{v - 1}}},{{c}_{{t,v + 1}}}s_{{v + 1}}^{0} - \ldots - {{c}_{{tm}}}s_{m}^{0}){\text{/}}{{c}_{{tv}}}$. Очевидно, что $({{g}_{1}}, \ldots ,{{g}_{{v - 1}}},s_{v}^{0},s_{{v + 1}}^{0},s_{m}^{0})$ удовлетворяет неравенствам (1.1), (1.6), (1.11) и в силу выбора $s_{v}^{0}$ вектор $({{g}_{1}}, \ldots ,{{g}_{{v - 1}}},{{s}_{v}},s_{{v + 1}}^{0},s_{m}^{0}) \notin \Delta $ при ${{s}_{v}} < s_{v}^{0}$, так как для него не выполнены некоторые из неравенств (1.11). Тем более, $({{g}_{1}}, \ldots ,{{g}_{{v - 1}}},{{s}_{v}},s_{{v + 1}}^{0},s_{m}^{0}) \notin \Delta $ при ${{s}_{j}} < g_{j}^{{}}$, $j = \overline {1,v - 1} ,$ и ${{s}_{v}} < s_{v}^{0}$. Следовательно, вектор $(s_{1}^{0},s_{2}^{0},\; \ldots ,\;s_{m}^{0})$ является парето-оптимальным в смысле минимизации производительностей процессоров, так как ни одну из величин $s_{j}^{0}$ нельзя уменьшить без увеличения некоторых величин $s_{v}^{0}$, $v = \overline {1,m} $, $v \ne j$, оставаясь при этом во множестве $\Delta $.

2. Задача с нефиксированными объемами работ. В этом разделе наряду с предположениями, сделанными в разд. 1, дополнительно будем предполагать, что помимо процессоров в системе имеется K типов дополнительных ресурсов невозобновляемого типа. Суммарное количество k-го типа этого ресурса составляет Rk, $k = \overline {1,K} $. Если заданию $i \in N$ выделено ${{r}_{{ik}}}$ единиц дополнительного ресурса k-го типа, $i \in N$; $k = \overline {1,K} $, то объем работы процессоров по выполнению задания $i$ составляет

(2.1)
${{Q}_{i}} = {{d}_{i}} - \sum\limits_{k = 1}^K {{{a}_{{ik}}}} {{r}_{{ik}}},$
(2.2)
${{r}_{{ik}}} \in [0,{{\bar {r}}_{{ik}}}],\quad i \in N,\quad \sum\limits_{i \in N} {{{r}_{{ik}}}} \leqslant {{R}_{k}},\quad k = \overline {1,K} ,$
где ${{a}_{{ik}}}$, ${{d}_{i}}$, ${{\bar {r}}_{{ik}}}$ – заданные величины, ${{a}_{{ik}}} \geqslant 0$, ${{d}_{i}} > 0$, ${{\bar {r}}_{{ik}}} \geqslant 0$,
${{d}_{i}} - \sum\limits_{k = 1}^K {{{a}_{{ik}}}} {{\bar {r}}_{{ik}}} > 0,$
${{d}_{i}}$ – объем работы процессоров по выполнению задания i в случае, если ей дополнительных ресурсов не выделено. Требуется найти такое распределение ресурсов $r_{{ik}}^{0}$, $i \in N$, $k = \overline {1,K} $, и производительности ${{s}_{1}},{{s}_{2}},\; \ldots ,\;{{s}_{m}}$ процессоров, при которых существует допустимое расписание. При этом указанное распределение ресурсов должно удовлетворять ограничениям (2.1, 2.2). Примеры подобных задач содержатся в [11, 12]. В этом случае неравенство (1.5) преобразуется в неравенство
(2.3)
$\sum\limits_{i \in {{{\tilde {N}}}_{u}}} {({{Q}_{i}} - \sum\limits_{k = 1}^K {{{a}_{{ik}}}{{r}_{{ik}}})} } \leqslant {{G}_{{u1}}}{{s}_{1}} + G_{{u2}}^{{}}{{s}_{2}} + \; \ldots \; + {{G}_{{um}}}{{s}_{m}}$
для любой пары ${{l}_{{2u - 1}}}$, ${{l}_{{2u}}}$, $u = \overline {1,r} $, и любого подмножества ${{\tilde {N}}_{u}} \subseteq {{N}_{{{{l}_{{2u - 1}}}{{l}_{{2u}}}}}}$. Таким образом, решение поставленной задачи сведено к решению системы линейных ограничений (1.1), (2.1)–(2.3) с m + nK переменными.

Пример. Рассмотрим пример, когда n = 3, $N = \{ 1,\;2,\;3\} $, m = 2, b1 = 0,  f1 = 2, b2 = 1,  f2 = 2, b3 = 2, f3 = 4, Q1 = 8, Q2 = 4, Q3 = 10, h1 = 4, g1 = 6, h2 = 1, g2 = 3. В этом случае y0 = 0, y1 = 1, y2 = 2, y3 = 4, I1 = (0, 1], I2 = (1, 2], I3 = (2, 4], ${{\delta }_{1}} = 1$, ${{\delta }_{2}} = 1$, ${{\delta }_{3}} = 2$, $N = {{N}_{{12}}} \cup {{N}_{{33}}}$, $N_{{12}}^{{}} = \{ 1,\;2\} $, ${{N}_{{33}}} = \{ 3\} $, ${{I}_{{12}}} = {{I}_{1}} \cup {{I}_{2}}$, ${{I}_{{33}}} = {{I}_{3}}$. Система неравенств (1.4) выглядит следующим образом:

$\left\{ \begin{gathered} 2{{S}_{1}} \geqslant 8, \hfill \\ {{S}_{1}} \geqslant 4, \hfill \\ {{S}_{1}} + {{S}_{2}} \geqslant 12, \hfill \\ 2{{S}_{1}} \geqslant 10. \hfill \\ \end{gathered} \right.$

Запишем систему неравенств (1.1), (1.5), (1.6):

$\left\{ \begin{gathered} {{s}_{1}} \geqslant 5, \hfill \\ {{s}_{1}} \leqslant 6, \hfill \\ {{s}_{2}} \geqslant 12 - 2{{s}_{1}}, \hfill \\ {{s}_{2}} \geqslant 1, \hfill \\ {{s}_{2}} \leqslant 3, \hfill \\ {{s}_{2}} \leqslant {{s}_{1}}. \hfill \\ \end{gathered} \right.$

На рисунке выделенная область (пятиугольник ABCDE) определяет допустимые пары значений производительностей процессоров s1, s2. Так, например, точка A имеет координаты s1 = 5, s2 = 2, а точка B – координаты s1 = 5.5, s2 = 1. Обе эти точки (а также их выпуклые линейные комбинации) определяют парето-оптимальные решения (вектора производительностей процессоров): (5; 2), (5.5; 1).

Рисунок.

Допустимые значения s1 и s2 в рассматриваемом примере

Заключение. Исследована задача синтеза вычислительной системы, заключающаяся в нахождении производительностей процессоров при построении допустимых расписаний с прерываниями и директивными интервалами. Рассмотрена постановка с фиксированными объемами заданий, а также задача распределения дополнительных ресурсов, влияющих на длительности выполнения работ. Разработан метод нахождения парето-оптимальных решений. Предложенные алгоритмы основаны на построении системы линейных неравенств.

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

  1. Танаев В.С., Гордон В.С., Шафранский Я.М. Теория расписаний. Одностадийные системы. М.: Наука, 1984.

  2. Gonzales T., Sahni S. Preemptive Scheduling of Uniform Processor Systems // J. Association for Computing Machinery. 1978. V. 25. № 1. P. 92–101.

  3. Federgruen A., Groenevel H. Preemptive Scheduling of Uniform Machines by Ordinary Network Flow Technique // Management Science. 1986. V. 32. № 3. P. 341–349.

  4. Martel C. Preemptive Scheduling with Release Times, Deadlines, and Due Times // J. ACM. 1982. V. 29. № 3. P. 812–829.

  5. Brucker P. Scheduling Algorithms. Heidelberg: Springer, 2007. 371 c.

  6. Tsurkov V.I. Decomposition Principle for Block-separable Systems // Doklady Akademii Nauk SSSR. 1979. V. 246. № 1. P. 27–31.

  7. Миронов А.А., Цурков В.И. Транспортные задачи с минимаксным критерием // ДАН. 1996. Т. 346. № 2. С. 342.

  8. Миронов А.А., Цурков В.И. Минимакс в моделях транспортного типа с интегральными ограничениями. I // Изв. РАН. ТиСУ. 2003. № 4. С. 69–81.

  9. Миронов А.А., Федорчук В.В., Цурков В.И. Минимакс в моделях транспортного типа с интегральными ограничениями. II // Изв. РАН. ТиСУ. 2005. № 5. С. 66–86.

  10. Фуругян М.Г. Некоторые алгоритмы анализа и синтеза многопроцессорных вычислительных систем реального времени // Программирование. 2014. № 1. С. 36–44.

  11. Фуругян М.Г. Планирование вычислений в многопроцессорных АСУ реального времени с дополнительным ресурсом // АиТМ. 2015. № 3. С. 144–150.

  12. Фуругян М.Г. Оптимальная коррекция директивных интервалов в задаче построения многопроцессорного расписания с дополнительным ресурсом // Изв. РАН. ТиСУ. 2015. № 2. С. 107–116.

Дополнительные материалы отсутствуют.