Математические модели и алгоритмы оптимального управления fifо-очередями в общей памяти

Труды Карельского научного центра РАН № 8. 2016. С. 98-107 DOI: 10.17076/mat396

УДК 004.01:006.72

МАТЕМАТИЧЕСКИЕ МОДЕЛИ И АЛГОРИТМЫ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ Е1ЕС-ОЧЕРЕДЯМИ В ОБЩЕЙ ПАМЯТИ

А. В. Соколов1, А. М. Сазонов2, Е. В. Морозов1, Р. С. Некрасова1, Р. В. Разумчик3

1 Институт прикладных математических исследований Карельского научного центра РАН

2 Петрозаводский государственный университет

3 Институт проблем информатики ФИЦ ИУ РАН

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

Ключевые слова: FIFO-очереди; теория массового обслуживания; дискретное время; оптимальное разделение памяти.

A. V. Sokolov, A. M. Sazonov, E. V. Morozov, R. S. Nekrasova, R. V. Razumchik. MATHEMATICAL MODELS AND ALGORITHMS FOR THE OPTIMAL CONTROL OF FIFO-QUEUES IN SHARED MEMORY

The paper deals with the problems of optimal partition of shared memory for two and arbitrary number of queues in discrete time. Mathematical models and algorithms for the optimal partition of memory between queues, minimizing data loss, are presented.

Keywords: FIFO-queues; queuing theory; discrete time; optimal partition of the shared memory.

Введение

Рассмотрим ресурс (например, внутреннюю память ПК, которая обладает свойством дискретности) конечной емкости п € N. Каждая единица емкости может быть в одном из двух состояний - свободна или занята. Будем считать, что время изменяется в фиксированных интервалах (слотах). Величину слота примем равной Н > 0, единиц времени, и будем считать, что возможные изменения свободной емкости системы происходят случайным обра-

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

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

Во многих приложениях требуется работа с несколькими Р1РО-очередями, расположенными в общем пространстве памяти. Для этого применяют различные программные или аппаратные решения [1-3]. В ряде работ построены математические модели работы с различными динамическими структурами данных в виде случайных блужданий по целочисленной решетке. Первоначально такие модели в виде случайного блуждания в треугольнике [4-9] были построены для решения задачи анализа процесса работы с двумя стеками, растущими навстречу друг другу, поставленной в [1]. В этих моделях предполагается, что на каждом шаге дискретного времени с заданными вероятностями происходят некоторые операции с очередями. Время выполения этих операций — не случайная величина, а константа, поэтому фиксированным является и шаг времени. В [10-14] рассмотрены математические модели и алгоритмы оптимального управления Р1РО-очередями в общей памяти. В данной статье мы рассмотрим задачу оптимального разделения общей памяти для нескольких Р1РО-очередей в случае их последовательного циклического представления. Операции включения и исключения элементов в очереди выполняются за время 0( 1), т. е. за фиксированное время при любом числе элементов. В качестве критерия оптимальности рассматривается минимальная доля потерянных элементов при бесконечном времени работы очередей. Эту величину разумно минимизировать, когда переполнение очереди является не аварийной, а стандартной ситуацией. То есть если очередь занимает всю предоставленную ей память, все последующие элементы, поступающие в нее, отбрасываются до тех пор, пока не появится свободная память (т. е. до тех пор, пока не произойдет исключение элемента из очереди). Такая схема применяется, например, в работе сетевых маршрутизаторов [3] в том случае, когда по мере увеличения трафика очередь маршрутизатора заполняется. Такое поведение маршрутизатора называется «сбросом хвоста». Потери пакетов приводят к снижению качества обслуживания, поэтому процент потерь, как правило, нужно держать на низком уровне.

Аналогичные постановки уже встречались в области моделирования узлов связи с помо-

щью систем/сетей обслуживания, функционирующих в непрерывном времени. Например, в различных постановках решались задачи (статического/ динамического/ полудинамического) распределения имеющейся свободной емкости С € N между несколькими очередями таким образом, чтобы значение некоторого функционала было оптимальным.

Среди близких по постановке работ можно отметить [15, 16, 19-21], где прослеживается аналогия с рассматриваемой задачей (но в непрерывном времени). Так, например, в работе [19] рассматривается аналогичная система, но функционирующая в непрерывном времени, и для нее ставится (и в некоторых случаях решается) задача нахождения такого распределения свободной емкости, которое позволяет достичь заданных вероятностей потерь. Система также упоминается и в [20], но в этой работе внимание уделяется в основном численным экспериментам.

Неоптимальность (с точки зрения потерь) статического распределения свободной емкости обсуждается во многих работах. Чаще всего преимущество отдается полудинамическому распределению (см, например, [20]).

В [16], в более общей постановке, рассматривается случай, когда заявки могут иметь различный целочисленный объем (распределенный по геометрическому закону).

Алгоритмы (целочисленного) поиска оптимального (с точки зрения пропускной способности) распределения свободной емкости в сети массового обслуживания произвольной структуры (но состоящей из узлов типа М/М/1) обсуждаются в [17]. В работе упоминается, что решение задачи оптимизации затруднено тем, что для таких систем не существует явных формул для стационарного распределения вероятностей состояний. Одним из вариантов решения является применение эвристических алгоритмов. Однако чаще всего встречается прием, когда каждая система рассматривается независимо от остальных. Здесь подходы отличаются друг от друга тем, каким образом оцениваются исходные параметры каждой системы (интенсивность входящего потока и обслуживания). Подробнее с приближенными методами авторы предлагают ознакомиться в [18].

Применение методов теории очередей к описанной задаче в дискретном времени найти не удалось, однако, как будет показано, данный подход является весьма естественным. В [1, параграф 2.2.2] Д. Кнут писал: «Провести математический анализ алгоритмов динамического распределения памяти чрезвычай-

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

Постановка задачи для двух очередей

Рассмотрим систему обслуживания с буфером заданного размера п, разделенного между двумя очередями. Заявки из каждой очереди обрабатываются обслуживающим устройством (сервером). Рассматривается дискретная шкала времени, разделенного на слоты. В каждый момент времени (слот) возможно одно из следующих событий:

• приход заявки в очередь 1 с вероятностью р1,

• уход из очереди 1 после завершения обслуживания с вероятностью 51,

• приход заявки в очередь 2 с вероятностью р2,

• уход из очереди 2 после завершения обслуживания с вероятностью 52,

• отсутствие приходов и уходов с вероятностью г.

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

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

Анализ стационарного режима

Пусть целочисленные случайные величины (с. в.) т(г), £(г) есть типичный интервал между приходами заявок и типичное время обслуживания в системе г = 1, 2 соответственно. Легко

получить, что с. в. т(г) является геометрической,

Р

со средней длиной Ет(г) = р- и интенсивностью прихода Аг = рг,г = 1,2. Аналогично находим, что периоды обслуживания являются геометрическими с интенсивностями ^ = 1/Е5(г) = 5, г = 1,2. Таким образом, коэффициент загрузки системы г равен:

Pi . 0 рг = —, г = 1, 2. 5г

Определим п = 1 — (р1 + 51) = Р2 + 52 + г — вероятность того, что в системе 1 за 1 слот времени не было событий. Пусть V есть число заявок в системе 1 в момент (слот) £ = 0,1,.... Процесс {щ} является цепью Маркова с множеством состояний {0,1,..., к}, матрицей переходных вероятностей

/1 — р1 р1 0 ... 0 0 0 \ 51 г1 р1 0 ... 0 0 р _ 0 51 п Р1 0 ... 0

0 0

0 0 51 г1

Р1

0 0 0 51 1 — 51/

и стационарным распределением

Р3 = 11ш Р

В результате мы стандартным образом получаем такую систему уравнений для стационарного распределения числа заявок в системе 1

Ро = Ро

Р3 = Р3-1  Р1 + Р3  Г1 + Р,-+1  51, (5) 3 = 1,..., к — 1

Рк = Рк-1  Р1 + Рк

решение которой с условием нормировки

к

Р] = 1 имеет вид

]=о

Р = Р ] = (1 — Р1)  Р1] Р = Ро ' р1 = 1 — р1к+1

3 = 0,..., к,

где при р1 = 1

Ро =

1 — р1 1 — р1к+1

и Ро = к+! при Р1 = 51.

В данной модели за вероятность потери принимается непосредственно потеря заявки

100

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

Ploss = pk • Pi.

Таким образом, вероятность потери в системе 1 при р1 = 1 есть

Р1 Р Р р

розз = Рк+1 = рк = -, к+1-.

1 р1

Аналогично вероятность потери в системе 2 при р2 = 1 есть

2 _(1 - Р2) • Р2П-к • Р2

loss

1 - P2n-fc+i

При р1 = 1 вероятность потери в системе 1 равна

,1 Р1

loss

k + 1

и в системе 2, при р2 = 1:

P2

loss

П — k + 1

P(k) = т^- +

k + 1 n — k + 1

d^>(x) dx

Получим

Pi

+

P2

(x + 1)2 (n — x + 1)2

= 0.

x* = ^ .

V/Pl + \/P2

Поскольку

d2^(x) 2pi

dx2

+

2P2

(x + 1)3 (n — x + 1)3

> 0,

память очереди 2, тем самым не сохраняя очередь 1, либо выделить очереди 2 п — 1 и оставить очередь 1 размера 1. Случай х* ^ п аналогичен предыдущему с точностью до перестановки очередей.

Рассмотрим случай рг = дг,г = 1, 2. В данном случае

=(1 ~1Pl>p1P+k •Pl +

(1 — P2) • Р2П-к • P2 1 — p2n-fc+i .

+

ОПТИМАЛЬНОЕ РАЗБИЕНИЕ

Далее задача сводится к минимизации функции

Р

Рассмотрим случай равных вероятностей: рг = дг, 2 = 1, 2. В данном случае функция имеет вид:

Р2

Перейдем к непрерывной функции <^(х), заданной на [0, п].

Теорема 1. Функция <^(х) имеет единственный минимум, и этот минимум является глобальным.

Доказательство. Для того чтобы доказать существование единственного минимума, являющегося глобальным, достаточно доказать, что функция <^(х) выпуклая. Дифференцируем функцию <^(х) дважды, находим

д2^(х) _ дх2

= Pi •

+ P2 • (1 — p2) • ln2 p2

n-x p2

(1 — pn-x+i )3

Перейдем к непрерывной функции <^(х), заданной на [0, п].

Найдем ее минимум, для чего решим уравнение

то х* есть точка минимума. Теперь достаточно сравнить значения ^>(|_х*]) и ^>(|~х*~|) и выбрать наименьшее. Существование двух решений означает наличие двух оптимальных разбиений памяти, отличающихся на одну единицу. В случае х* ^ 0 можно либо выделить всю

Так как

и (1 — рП-х+1) имеют одинаковый знак, а остальные множители в каждом из слагаемых положительны, то д > 0.

Таким образом, функция <^(х) выпуклая и имеет единственный глобальный минимум.

Обозначим точку минимума функции <^(х) через хтгп. Поскольку функция ^>(х) — выпуклая, то рассматриваемая на множестве целых чисел функция может иметь не больше двух точек минимума — ближайшие целые точки к хтгп. Таким образом, достаточно сравнить значения ^>(|_хтгга]) и ^(|хтгга|) и выбрать наименьшее.

Замечание 1. В случае равенства только одной пары рг = дг функция ^ также является выпуклой, как доказано выше (см. (18), (20)). Таким образом, функция будет иметь единственный глобальный минимум.

2

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

Постановка задачи для произвольного числа очередей

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

• приход заявки в очередь г с вероятностью Рг

• уход из очереди г после завершения обслуживания с вероятностью 5г

• отсутствие приходов и уходов с вероятностью г.

Кроме того, предполагается, что р1 + 51 +... + рт+5ш+г = 1. Таким образом, появление двух и более событий в одном слоте невозможно. Пусть к1,..., кт-1 — максимальные размеры очереди 1,..., очереди т — 1 соответственно. Тогда максимальный размер очереди т равен

т— 1

п — ^ кг. Требуется найти такие значения

г=1

кг, г = 1,..., т — 1, чтобы потери заявок быт— 1

ли минимальны. Обозначим кт = ^ кг для

г=1

удобства записи.

Анализ стационарного режима

Для вывода уравнений для данной модели можно провести аналогичные рассуждения как в случае двух очередей. Пусть все рг = 5г. Тогда для г = 1 , . . . , т — 1

p = (1 - Pi) • Pj = 0

Pj = i - pifci+1 'j =0,...,ki>

и для г = m:

pm = (1 pm) • pmj . j 1 — pm™-fcm+1 ' j

, n — km

Вероятность потери в системе г, г < m

P i = p i . p.

P1oss = pfci pi

(1 — Pi) • Piki • Pi

1 — ргк*+1 Вероятность потери в системе т:

лт = л т р =

Р1о«« = Рп—кт рт =

(1 — рт) ' рт т'рт

1 — Pmn-fcm+ 1

При pi = q

pi loss

Pi

ki + 1

'i = 1,...' m — 1'

pm

= п — кт + 1 .

Дальнейшие результаты совпадают с результатами, полученными в работах [11] и [13].

Оптимальное разбиение

Как и выше, будем минимизировать функцию:

P(k) = Е P

i

loss

i=1

m— 1

Е

+

(1 — Pm) • Pm

i=1

(1 — Pi) • Piki • Pi

1 — Piki+1 • pm

+

1 — Pmn—km + 1

где k = (kb... 'km—1).

В случае рг = 5г г-е слагаемое имеет вид: . В случае рт = 5т последнее слагаемое имеет

вид: п—кт+г.

Рассмотрим случай в (27) рг = 5г, г = 1, . . . , т. Тогда функция имеет вид

m1

¥>(k) = Е

pi

+

pm

i=1

ki + 1 n — km + 1

Перейдем к непрерывной функции ^>(ж), заданной на Ет—1.

Чтобы найти точку минимума ж*, получаем систему уравнений

д^>

pi

+

dxi

pm

+

m1

2

(п — Е ж +1) ]=1

решение которой имеет вид:

„ (п + т)^рг

ж* = --- — 1

^г т

Е

]=1

102

и

2

0

0

Докажем, что х* — точка минимума. Найдем частные производные 2-го порядка:

д 2

2рт

дхг дх.,-

= А,

т— 1

(п — Е хх + 1) 1=1

д2((х) дхг2

2рг

(хг + 1)3

+

2рт

т- 1

=

(п — X) хг + 1) 1=1

= Вг + А.

т1

Так как 0 < хг и ^ хг < п, то А > 0, Вг > 0.

г=1

Для того чтобы доказать, что х* — точка ми-

нимума, нужно, чтобы матрица

/А + В1 А ... А \

А А + В2 ... А

А

А

... А + Вт/

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

Докажем это методом математической индукции.

• База (г = 1): = А + В1 > 0.

• Пусть > 0. Докажем, что > 0.

3

3

(г+1 =

А + В1 А. .А А

А А + В2 . .А А

А А. . А + Вг А

А А. .А А + Вг+1

А + В1 А. .А А

А А + В2 . .А А

. . .А..... А . . А + Вг А

А А. .А А

+

В1 0. . 0 А

0 В2. . 0 А

0 0. . .. . .В.г. А

0 0. . 0 А

+

А + В1 А. .А 0

А А + В2 . .А 0

А А . . А + Вг 0

А А. .А Вг+1

А + В1 А. .А 0

А А + В2 . .А 0

А А. . А + Вг 0

А А. .А Вг+1

ф' (хг) =

д

дхг

+

рг

(хг + 1)2

рт

+

т1

.7 = 1

Как доказано ранее, х*

1

един-

Таким образом, х* есть точка минимума функции ((х).

Перейдем к целочисленному решению. Рассмотрим функцию Ф(хг) = ((хЦ,..., хг,..., хт-1) при фиксированном г. Тогда

ственная точка минимума функции Ф(хг) на [0, п]. На промежутке [0, х*) функция ф(хг) убывает, поэтому

Ф

= АВ1 . . . Вг + Вг+1(г > 0

На промежутке (х*,п] функция ф(хг) возрастает, поэтому

ф

Авторами предложен следующий алгоритм разбиения памяти: округлить вниз значения х* и распределить оставшуюся память (размера меньше т) между очередями по методу, описанному далее. Можно показать, что х* ^ п + 1. Так как значения х* округляются вниз, то к* ^ п. В случае, если несколько к* = п, можно решать задачу только для этих очередей, выделив остальным либо по 1, либо 0.

Рассмотрим общий случай, когда есть очереди, для которых рг = дг. Обозначим кт =

т- 1

п — кг размер т-й очереди. Как указано

г=1

2

выше, функция ^ будет иметь вид:

p(k) = Е POss =

i=1

(1 — Pi) • Piki • Pi 1 — Piki+1 '

где k = (k1, . . . , km).

E

i=1

^ra(k) = min Ep

fcl+... + fcm =n '

i=1

i

loss

min

fci+...+fcm=ra r^

i=1

^ (1 — Pi) • Pik • Pi

1 — Pifci+1

Рассмотрим рекуррентную формулу:

^n(k) = ^n—1(k) —

— max (POss(ki) — Pioss(ki + 1)). Вычислим начальное значение (k): (1 — Pi) • Pi

^o(k) = E

i=1

1 — Pi

EPi.

i=1

При размере памяти равном 0 попытка включения элемента в любую очередь будет приводить к его потере. Таким образом, применяя рекуррентную формулу (40), получаем разбиение памяти к* = (к*,...,кт). Покажем, что данное разбиение оптимально, т. е. нужно доказать, что ^>(к*) ^ ^>(к**) для любого к** = (к**,..., к**). Введем обозначение:

5 = тах (Р^(кг) — РО^к + 1)). (42) Покажем, что Р^^г) — Ровв(кг + 1) >

Р^(кг + а) — Р^(кг + а + 1), где а > 0 — некоторое число.

Перейдем к непрерывному случаю. Рассмотрим функцию Н(жг) = РО^(жг) — Р0^(жг + 1) на (0, п). При рг = 5г,

В случае рг = 5г г-е слагаемое имеет вид .

Для решения данной задачи используем алгоритм, предложенный в [13].

Будем пошагово увеличивать выделяемую очередям память от 0 до п на 1, так чтобы на каждом шаге минимизировать вероятность потери. Будем увеличивать на 1 размер очереди, для которой значение d = (Ро88(кг) — Ро^(кг + 1)) максимально, т. е. при увеличении размера данной очереди достигается наибольшее уменьшение вероятности потери.

Покажем, что данный алгоритм применим для решения данной задачи, т. е. приводит к оптимальному решению.

Обозначим ^п(к) вероятность потери при оптимальном разбиении памяти размера п между т очередями.

h(xi) = h' (xi) = —

Pi

Pi

Xi + 1

Pi

+

Xi + 2 Pi

2

Поскольку xi + 1 < xi + 2, то h' (xi) < 0. Если Pi = qi, то

h

— Pi •

Pi

1 — Pixi+1

Pi"j+1

1 — Pixi+2 '

h' (xi) = Pi • (1 — Pi) • ln Pi • — Pi • (1 — Pi) • ln p.

-—-2 —

(1 — Pixi+1 )2

Pi

.Xi+1

(1 — Pixi+2)2

Заметим, что в слагаемых в (46) совпадают множители, кроме R1

— _р±.

{1—Pi*i+1)2

и R2 : =

(1—Р +2)2. Рассмотрим отношение: (1 — Pixi+2)2

Ri

R2 Pi • (1 — Pixi+1)2 V1 — Pi

1 - Pi

Xi+2

.

• Пусть рг < 1. Тогда, как нетрудно видеть, Н' (жг) < 0 (т.к. Ц > 0, 1п рг < 0).

• Пусть рг > 1. В этом случае также Н' (жг) < 0 (т.к. Ц > 0, 1п рг > 0).

Таким образом, Н (жг) < 0, следовательно, Н(жг) монотонно убывает на (0, п). Очевидно, что дискретная функция Н(кг) также монотонно убывает.

По п°стр°ению РгО^(а) — Р^(а + 1) ^ 5

при 0 < а < кг и Р1зз(а) — Р1озз(а + 1) < 5 при

а ^ кг.

ь— 1

Р^

]=о

—Ро^(а + 3 + 1)) > Ь« при а + Ь ^ кг.

Аналогично

Р^

Разобьем множество индексов I = {1, ...,п} следующим образом:

h = {г

12 = {г

13 = {г

k* < k**}

k* = k**l ki = ki }

k* > k**}

104

2

2

E

0 < d ^ n.

Следовательно,

p(k*) — <^(k**) < E (k** — k*) • s — (51) ie/i

— E (k* — k**) • s = ds — ds = 0.

ie/з

Таким образом, ^>(k*) ^ ^>(k**), поэтому разбиение k** не лучше k*, т. е. разбиение k* — оптимальное. Возможно существование нескольких оптимальных разбиений. В этом случае можно выбрать любое из них.

Данным способом можно найти оптимальное разбиение памяти за время O(mn), так как для вычисления ..., <^n требуется n шагов, и на каждом шаге осуществляется поиск максимума выражения (POss(ki)—P/oss(ki+1)) среди m очередей.

Заключение

В будущем мы предполагаем перенести подход, предложенный в данной статье, на задачу оптимального управления настраиваемыми очередями (Custom Queuing) в случае последовательного циклического представления входящих в механизм FIFO-очередей. Настраиваемые очереди - это один из аппаратно-независимых механизмов управления перегрузками, который похож на механизм приоритетных очередей, но, в отличие от него, не блокирует низкоприоритетный трафик. Настраиваемые очереди обслуживаются по очереди через некоторый промежуток времени.

Работа А. В. Соколова, Р. С. Некрасовой и А. М. Сазонова поддержана РФФИ (грант № 15-01-03404-a), а также Программой стратегического развития ПетрГУ в рамках реализации комплекса мероприятий по развитию научно-исследовательской деятельности.

Работа Е. В. Морозова частично поддержана РФФИ (проекты 15-07-02341, 15-0702354, 15-07-02360), а также Программой стратегического развития ПетрГУ в рамках реализации комплекса мероприятий по развитию научно-исследовательской деятельности.

Работа Р. В. Разумчика поддержана РФФИ (грант 15-07-03007).

ЛИТЕРАТУРА

1. Кнут Д. Искусство программирования для ЭВМ. Т. 1. М.: Вильямс, 2001. 712 с.

2. Седжвик Р. Фундаментальные алгоритмы на С++. Киев: Диасофт, 2001. 687 с.

3. Боллапрагада В., Мэрфи К., Уайт Р. Структура операционной системы Cisco IOS. М.: Вильямс, 2002. 197 с.

4. Соколов А. В. О распределении памяти для двух стеков // Автоматизация эксперимента и обработки данных. 1980. С. 65-71.

5. Yao A. C. An Analysis of a Memory Allocation Scheme for Implementing Stacks // SIAM J. Comput. 1981. 10(2) P. 398-403. doi: 10.1137/0210029

6. Louchard G. Some distributed algorithms revisited // Communications in Statistics. Stochastic Models. 1995. Vol. 11, iss. 4. doi: 10.1080/15326349508807361

7. Louchard G., Schott R., Tolley M., Zimmermann P. Random walks, heat equation and distributed algorithms // Journal of Computational and Applied Mathematics. 1994. Vol. 53, iss. 2, P. 243-274. doi: 10.1016/0377-0427(94)90048-5

8. Louchard G., Schott R. Probabilistic analysis of some distributed algorithms // Random Structures & Algorithms, 1991. Vol. 2, iss. 2. P. 151-186. doi: 10.1002/rsa.3240020203

9. Flajolet Ph. The evolution of two stacks in bounded space and random walks in a triangle // Mathematical Foundations of Computer Science, Lecture Notes in Computer Science. 1986. Vol. 233. P. 325-340. doi: 10.1007/BFb0016257

10. Аксенова Е. А. Оптимальное управление FIFO-очередями на бесконечном времени // Стохастическая оптимизация в информатике. СПб.: С.-Петербургский университет, 2006. № 2 С. 71-76.

11. Аксенова Е. А., Драц А. В., Соколов А. В. Оптимальное управление n FIFO-очередями на бесконечном времени // Информационно-управляющие системы. 2009. № 6. С. 401-415.

12. Drac A. V., Sokolov A. V. The linked list representation of n LIFO-stacks and/or FIFO-queues in the single-level memory // Information Processing Letters. Elsevier Science Publishing Company Inc. 2013. Vol. 13, no. 19-21. P. 832835.

13. Соколов А. В., Драц А. В. Моделирование некоторых методов представления n FIFO очередей в памяти одного уровня // Эвристические алгоритмы и распределенные вычисления. 2014. Т. 1, № 1. С. 40-52.

14. Барковский Е. А., Соколов А. В. Оптимальное управление двумя параллельными

FIFO-очередями на бесконечном времени // Информационно-управляющие системы. 2015. № 5. С. 65-71.

15. Irland M. I. Buffer management in packet switch // IEEE Transactions on Communications. Vol. COM-26. March 1978. P. 328-337. doi: 10.1109/TCOM.1978.1094076

16. Rich M, Schwartz M. Buffer sharing in computer-communication network nodes // IEEE trans. commun. Vol. COM-25. 1977. P. 958-970.

17. Yamashita H., Onvural R. O. Allocation of buffer capacities in queueing networks with arbitrary topologies // Annals of Operations Research. August 1994. Vol. 48, iss. 4. P. 313-332. doi: 10.1007/BF02024519

18. Perros H. G. Open queueing networks with blocking // Stochastic Analysis of Computer and

Communications Systems / Ed. H. Takagi. North-Holland, 1990.

19. Yum T. P., Dou C. Buffer allocation strategies with blocking requirements // Performance Evaluation. 1984. Vol. 4, iss. 4. P. 285-295. doi: 10.1016/0166-5316(84)90013-0

20. Kamoun E., Kleinrock L. Analysis of Shared Finite Storage in a Computer Network Node Environment Under General Traffic Schemes // IEEE Transactions on Communications. July 1980. Vol. COM-28, no. 7. P. 992-1003.

21. Ozel O., Uysal-Biyikoglu E., Girici T. Optimal Buffer Partitioning on a Multiuser Wireless Link // Proceedings of Information Theory and Applications Workshop, UCSD, San Diego, CA, Jan. 31 - Feb. 5, 2010. doi: 10.1109/ITA.2010.5454079

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

References

1. Knuth D. Iskusstvo programmirovaniya dlya EVM [The art of computer programming]. Vol. 1. Moscow: Vilyams, 2001. 712 p.

2. Sedgewick R. Fundamentalnye algoritmy na C++ [Fundamental algorithms in C++]. Kiev: Diasoft, 2001. 687 p.

3. Bollapragada V., Murphi C., White R. Struktura operacionnoj sistemy Cisco IOS [The structure of Cisco IOS]. Moscow: Vilyams, 2002. 197 p.

4. Sokolov A. V. O raspredelenii pamyati dlya dvuh stekov [On memory distribution for 2 stacks]. Avtomatizaciya eksperimenta i obrabotki dannyh [Experiment automation and data processing]. 1980. P. 65-71.

5. Yao A. C. An Analysis of a Memory Allocation Scheme for Implementing Stacks. SIAM J. Comput. 10(2). 1981. P. 398-403. doi: 10.1137/0210029

6. Louchard G. Some distributed algorithms revisited. Communications in Statistics. Stochastic Models. 1995. Vol. 11, iss. 4. doi: 10.1080/15326349508807361

7. Louchard G., Schott R., Tolley M., Zimmermann P. Random walks, heat equation and distributed algorithms. Journal of Computational and Applied Mathematics. 1994. Vol. 53, iss. 2. P. 243-274. doi: 10.1016/0377-0427(94)90048-5

8. Louchard G., Schott R. Probabilistic analysis of some distributed algorithms. Random Structures & Algorithms. Summer 1991. Vol. 2, iss. 2. P. 151-186. doi: 10.1002/rsa.3240020203

9. Flajolet Ph. The evolution of two stacks in bounded space and random walks in a triangle.

Mathematical Foundations of Computer Science, Lecture Notes in Computer Science. 1986. Vol. 233. P. 325-340. doi: 10.1007/BFb0016257

10. Aksenova E. A. Optimalnoe upravlenie FIFO-ocheredyami na beskonechnom vremeni [Optimal control of the FIFO-queues for infinity time]. Stohasticheskaya optimizaciya v informatike [Stochastic optimization in informatics]. St.-Pe-tersburg: S-Peterburgskii un., 2006. No. 2. C. 71-76.

11. Aksenova E. A., Drac A. V., Sokolov A. V. Optimalnoe upravlenie n FIFO-ocheredyami na beskonechnom vremeni [Optimal control of the n FIFO-queues for infinity time]. Informacionno-upravlyayushchie sistemy [Information and control systems]. 2009. No. 6. C. 401-415.

12. Drac A. V., Sokolov A. V. The linked list representation of n LIFO-stacks and/or FIFO-queues in the single-level memory. Information Processing Letters. Elsevier Science Publishing Company Inc. 2013. Vol. 13, no. 19-21. P. 832835.

13. Sokolov A. V., Drac A. V. Modelirovanie nekotoryh metodov predstavleniya n FIFO ocheredej v pamyati odnogo urovnya [Simulation of some methods of representation of n FIFO-ques in the single-level memory]. Evristicheskie algoritmy i raspredelennye vychisleniya [Heuristic algorithms and distributed computing]. 2014. Vol. 1, no. 1. C. 40-52.

14. Barkovsky E. A., Sokolov A. V. Optimalnoe upravlenie dvumya parallelnymi FIFO-ocheredyami na beskonechnom vremeni [Optimal control of two parallel FIFO-queues on an infinite time]. Informacionno-upravlyayushchie sistemy [Information and control systems]. 2015. No. 5 C. 65-71.

15. Irland M. I. Buffer management in packet switch. IEEE Transactions on Communications. Vol. COM-26. March 1978. P. 328-337. doi: 10.1109/TCOM.1978.1094076

16. Rich M, Schwartz M. Buffer sharing in computer-communication network nodes. IEEE trans, commun. Vol. COM-25. 1977. P. 958-970.

17. Yamashita H., Onvural R. O. Allocation of buffer capacities in queueing networks with arbitrary topologies. Annals of Operations Research. August 1994. Vol. 48, iss. 4. P. 313332. doi: 10.1007/BF02024519

18. Perros H. G. Open queueing networks with blocking, in: Stochastic Analysis of Computer and Communications Systems, ed. H. Takagi. North-Holland, 1990.

СВЕДЕНИЯ ОБ АВТОРАХ:

Соколов Андрей Владимирович

ведущий научный сотрудник, к. т. н. Институт прикладных математических исследований Карельского научного центра РАН ул. Пушкинская, 11, Петрозаводск, Республика Карелия, Россия, 185910 эл. почта: sokavs@gmail.com тел.: (8142) 766313

Сазонов Александр Михайлович

студент

Петрозаводский государственный университет пр. Ленина, 33, Петрозаводск, Республика Карелия, Россия, 185910 эл. почта: sazonov@cs.karelia.ru

Морозов Евсей Викторович

ведущий научный сотрудник, д. ф.-м. н., проф. Институт прикладных математических исследований Карельского научного центра РАН ул. Пушкинская, 11, Петрозаводск, Республика Карелия, Россия, 185910 эл. почта: emorozov@krc.karelia.ru тел.: (8142) 766313

Некрасова Руслана Сергеевна

младший научный сотрудник, к. ф.-м. н. Институт прикладных математических исследований Карельского научного центра РАН ул. Пушкинская, 11, Петрозаводск, Республика Карелия, Россия, 185910 эл. почта: nekrasova@krc.karelia.ru тел.: (8142) 766313

Разумчик Ростислав Валерьевич

старший научный сотрудник, к. ф.-м. н. Институт проблем информатики ФИЦ ИУ РАН ул. Вавилова, 44, Москва, Россия, 119333 эл. почта: rrazumchik@gmail.com

19. Yum T. P., Dou C. Buffer allocation strategies with blocking requirements. Performance Evaluation. 1984. Vol. 4, iss. 4. P. 285-295. doi: 10.1016/0166-5316(84)90013-0

20. Kamoun E., Kleinrock L. Analysis of Shared Finite Storage in a Computer Network Node Environment Under General Traffic Schemes. IEEE Transactions on Communications. July 1980. Vol. COM-28, no. 7. P. 992-1003.

21. Ozel O., Uysal-Biyikoglu E., Girici T. Optimal Buffer Partitioning on a Multiuser Wireless Link, In proceedings of Information Theory and Applications Workshop, UCSD, San Diego, CA, Jan. 31 - Feb. 5, 2010. doi: 10.1109/ITA.2010.5454079

Received May 30, 2016

CONTRIBUTORS:

Sokolov, Andrey

Institute of Applied Mathematical Research,

Karelian Research Centre,

Russian Academy of Sciences

11 Pushkinskaya St., 185910

Petrozavodsk, Karelia, Russia

e-mail: sokavs@gmail.com

tel.: (8142) 766313

Sazonov, Alexandr

Petrozavodsk State University 33 Lenin St., 185910 Petrozavodsk, Karelia, Russia e-mail: sazonov@cs.karelia.ru

Morozov, Evsey

Institute of Applied Mathematical Research, Karelian Research Centre, Russian Academy of Sciences 11 Pushkinskaya St., 185910 Petrozavodsk, Karelia, Russia

e-mail: emorozov@krc.karelia.ru tel.: (8142) 766313

Nekrasova, Ruslana

Institute of Applied Mathematical Research, Karelian Research Centre, Russian Academy of Sciences 11 Pushkinskaya St., 185910 Petrozavodsk, Karelia, Russia

e-mail: nekrasova@krc.karelia.ru tel.: (8142) 766313

Razumchik, Rostislav

Institute of Informatics Problems, Russian Academy of Science 44 Vavilova St., 119333 Moscow, Russia e-mail: rrazumchik@gmail.com