Опубликован: 20.04.2011 | Уровень: для всех | Доступ: платный
Лекция 14:

Прикладная теория организации очередей

Дисциплина организации очереди, сохраняющая работу

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

На практике это не всегда происходит именно так. Если "обслуживающий прибор" - человек, скорость обслуживания часто будет увеличиваться с длиной очереди, и после некоторого времени "прибор" может устать и уменьшить скорость обслуживания.

Введём две функции, которые широко применяются в теории организации очереди.

Функция нагрузки U(t) обозначает время, которое требуются, чтобы обслужить клиентов, прибывших в систему в момент времени t (рис. 13.2). Одновременно с поступлением вызова U(t) увеличивается скачком на величину времени обслуживания поступившего вызова, а между поступлением вызовов U(t) уменьшается линейно с наклоном -1 до нуля и остается нулевой до прибытия следующего вызова. Средняя величина

 Функция нагрузки U (t) для системы организации очереди GI/G/1.

Рис. 13.2. Функция нагрузки U (t) для системы организации очереди GI/G/1.

Если мы обозначим время интервала T_{i+1} - T_i через a_i, то получим U_{i+1} = max\{0, U_i + s_i - a_i\},

функции нагрузки обозначается U=E\{U(t)\} . В системе организации очереди GI/G/1 функция U(t) будет независима от дисциплины организации очереди, если обработка информации сохраняет время обслуживания.

Виртуальное время ожидания W(t) обозначает время ожидания

клиента, если вызов поступает в момент t. Виртуальное время ожидания W(t) зависит от организации очереди. Средняя величина обозначена W=E\{W(t)\} . Если дисциплина очереди - FCFS, то U(t) = W(t) .

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

Теперь рассмотрим функцию нагрузки в случайный момент времени t. Она состоит из вклада V от времени, оставшегося от обслуживания обслуживаемого клиента, если таковые вообще имеются, и вклада от клиентов, ждущих в очереди. Средняя величина U = E\{U(t)\} равна:

U=V+\sum_{i=1}^N L_i*s_i.

L_i - длина очереди для клиентов типа i. Применяя формулу Литтла, получаем:

U=V+\sum_{i=1}^N \lambda_i *W_i*s_i\\
=V+\sum_{i=1}^NA_i*W_i. ( 13.20)

Как было сказано выше, U независима от дисциплины организации очереди (предполагается, что система - с сохранением работы), и V определяется выражением (13.17) для неприоритетных дисциплин организации очереди.

U получен в предположении дисциплины FCFS, тогда мы имеем W_i = U:

U=V+\sum_{i=1}^NA_i*U=V+A*U,\\
U=\frac{V}{1-A}, ( 13.21)
U-V=\frac{A*V}{1-A}. ( 13.22)

Согласно этим общим предположениям, подставляя (13.22) в (13.20), мы получим закон сохранения Клейнрока (1964 [65] ).

Теорема 13.2. Закон сохранения Клейнрока:

\sum_{i=1}^NA_i*W_i=\frac{A*V}{1-A}=conctant. ( 13.23)

Среднее время ожидания для всех классов взвешенной нагрузки является независимым от дисциплины очереди.

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

Приоритетная дисциплина организации очереди без прерывания обслуживания

До этого мы рассматривали приоритетные системы организации очереди для M/G/1, где клиенты разделены на N приоритетных классов так, чтобы клиент p имел более высокий приоритет, чем клиенты p + 1, и имел право на прерывание процесса обслуживания низкоприоритетного клиента. В рассматриваемой ниже системе это обслуживание не прерывается. Предполагается, что клиенты в классе p имеют среднее время обслуживания S_p и интенсивность прибытия \lambda_p. В секции 13.4.1 мы получили p

Полное среднее время ожидания W_p клиента класса p может быть вычислено непосредственно, учитывая следующие три вклада:

  • остаточное время обслуживания V для обслуживаемого клиента;
  • время ожидания, из-за клиентов, стоящих в очереди с приоритетом p или выше, который находятся уже в очередях (формула Литла):

    \sum_{i=1}^ps_i*(\lambda_iW_i).
  • время ожидания из-за клиентов с более высоким приоритетом, которые поступают по ходу его ожидания:

    \sum_{i=1}^{p-1}s_i* \lambda_i*W_p.

Всего мы имеем:

W_p=V+\sum_{i=1}^ps_i* \lambda_i *W_i+ \sum_{i=1}^{p-1}s_i*\lambda_i*W_p. ( 13.24)

Для клиентов класса 1, которые имеют самый высокий приоритет, предполагая дисциплину обслуживания FCFS, мы имеем:

W_1=V+L_1*s_i\\

=V+A_1*W_1 ( 13.25)
W_1=\frac{V}{1-A_1}. ( 13.26)

V - остаточное время обслуживания для клиента, когда поступает вызов от клиента, которого мы рассматриваем (13.18):

V=\sum_{i=1}^N \frac{\lambda_i}{2}*m_{2i}, ( 13.27)

где m_{2i} - второй момент распределения времени обслуживания i-того класса.

Для клиента класса 2 находим:

W_2 = V+ L_1*s_1+ L_2*s_2 + W_2*(s_1 \lambda_1).

Подставляя W_1 (13.25), находим:

W_2=W_1+A_2*W_2+A_1*W_2,\\
W_2=\frac{W_1}{1-A_1-A_2} ( 13.28)
W_2=\frac{V}{\{1-A_1\}\{1-(A_1-A_2)\} ( 13.29)

Находим общее время ожидание (Cobham, 1954 [14] ):

W_p=\frac{V}{\{1-A_{p-1}'\}\{1-A_p'\}}, ( 13.30)

где:

A_p'=\sum_{i=1}^p A_i, \quad A_0=0. ( 13.31)

Формула (13.30) может быть интерпретирована следующим образом. Полное время ожидания клиентов класса p не зависит класса клиентов, ожидающих, пока обработка очереди не будет закончена {V для всех классов одинаково}.

Кроме того, время ожидания включает время ожидания клиентов, которые уже прибыли и имеют, по крайней мере, такой же приоритет \{A_p'\}, а также клиентов с более высоким приоритетом, прибывающим в течение времени ожидания \{ A_{p-1}'\}

Пример 13.4.1: Система с программным управлением

Мы рассматриваем компьютер, который обслуживает два типа клиентов. Первый тип имеет постоянное время обслуживания 0,1с. и интенсивность поступления 1 вызов/сек. Другой тип имеет экспоненциально распределенное время обслуживания со средней величиной 1,6 с. и интенсивность поступления 0,5 клиента/с.

Нагрузка от двух клиентов типов тогда - A_1 = 0,1 Эрл., соответствен-но A_2 = 0,8 Эрл.

Из (13.27) мы находим:

V=\frac 12*(0.1)^2+\frac{0.5}{2}*2(1.6)^2=1.2850 c.

Без какого-либо приоритета среднее время ожидания по формуле Полячека-Хинчина (13.2) равно:

W=\frac{1.2850}{1-(0.8+0.1)}=12.85c.

С приоритетом без прерывания процесса обслуживания находим:

Тип 1 (самый высокий приоритет)

W_1=\frac{1.285}{1-0.01}=1.43c.,\\
W_2=\frac{W_1}{1-(A_1+A_2)}=14.28c.

Тип 2 (высокий приоритет):

W_2=6.43c.\\
W_1=64.25c.

Это показывает, что мы можем изменять тип 1, почти не влияя на тип 2. Однако обратное утверждение не имеет места. Константа в законе Сохранения (13.23) такая же, как в дисциплине без приоритета.

0.9 * 12.85 = 0.1*1.43 + 0.8 * 14.28 = 0.8 * 6.43 + 0.1 * 64.25 = 11.57

Дисциплина организации очереди SJF: M/G/1

Одно из основных свойств дисциплины организации очереди SJF: чем короче время обслуживания клиента, тем выше его приоритет. Вводя бесконечное число приоритетных классов, мы получаем из формулы (13.30), что клиент со временем обслуживания t имеет среднее время ожидания W_t (Phipps 1956):

W_t=\frac{v}{(1-A_t)^2}, ( 13.32)

где A_t - нагрузка от клиентов со временем обслуживания меньше или равным t.

SJF -дисциплина в результате приводит к наименьшему времени ожидания. При ожидании различные приоритетные классы имеют различные затраты в единицу времени. Клиенты класса j имеют среднее время обслуживания s_j и платят c_j за единицу времени ожидания. Оптимальная стратегия (минимальная стоимость) состоит в том, чтобы назначить приоритеты 1, 2, … согласно увеличивающемуся отношению s_j /c_j.

Пример 13.4.2: M/M/1 с дисциплиной очереди SJF

Мы полагаем, что случай с экспоненциально распределенными временами пребывания в системе со средней величиной 1/ \mu, которая оговорена, выбран как единица времени ( M/M/1 ). Заметим, что очень длительные времена обслуживания, даже когда их немного, все равно вносят значительный вклад в полную нагрузку (рис.3.2).

Вклад в полную нагрузку от клиентов со временем обслуживания \le t - это {(3.22), умноженное на A= \lambda * \mu }:

A_t=\int_0^t x* \lambda * f(x)dx\\

=\int_0^tx* \lambda *( \mu *e^{- \mu x})dx\\

=A\{1-e^{-\mu t}(\mu t+1)\}.

Подставляя это в (13.32), находим W_t, как это проиллюстрировано на рис. 13.3, где показана FCFS -стратегия. Она имеет такое же среднее время ожидания, как LCFS и SIRO, показанное для сравнения как функция фактического времени пребывания в системе.

 Среднее время ожидания Wt как функция фактического времени обслуживания в M/M/1 системе для SJF- и FCFS-дисциплин, соответственно.

Рис. 13.3. Среднее время ожидания Wt как функция фактического времени обслуживания в M/M/1 системе для SJF- и FCFS-дисциплин, соответственно.

Среднее время ожидания для всех клиентов с SJF - меньше, чем с FCFS, но это не очевидно из рисунка. Среднее время ожидания для SJF равно:

W_{SJF}=\int_0^{\infty}W_tf(t)dt\\
=\int_0^{\infty}\frac{V}{(1-A_t)^2}*f(t)dt\\
=\int_0^{\infty}\frac{A*e^{-\mu t}dt}{\{1-A(1-e^{-\mu t}(\mu t +1))\}^2}

Это выражение вычислить не просто.

Предложенная нагрузка - 0,9 Эрл, и как единица времени выбрано среднее время обслуживания. Заметьте, что для SJF минимальное среднее время ожидания является 0,9 единиц времени, потому что вероятная предыдущая обслуживаемая работа должна быть закончена. Максимальное среднее время ожидания - 90 единиц времени. По сравнению с FCFS, при использовании SJF 93,6 % заданий имеют более короткое среднее время ожидания. Это относится к заданиям со временем обслуживания, меньшим, чем 2,747 средних значений времени обслуживания (единицы времени). Предложенная нагрузка может быть больше, чем один Эрл, но тогда только более короткие задания будут иметь конечное время ожидания

M/M/n приоритетная дисциплина организации очереди без прерывания обслуживания

Мы можем также обобщить классическую систему времени ожидания Эрланга M/M/n на приоритетную дисциплину организации очереди без прерывания обслуживания. При этой дисциплине все классы клиентов имеют одно и то же экспоненциальное распределение времени обслуживания со средней величиной s= \mu^{-1}. Обозначая интенсивность прибытия на класс \lambda_i, мы имеем среднее время ожидания Wp на класс p:

W_p=V+\sum_{i=1}^p \frac sn*L_i+W_p\sum_{i=1}^{p-1} \frac sn \lambda_i,\\
W_p=E_{2,n}(A)*\frac sn+\sum_{i=1}^p \frac {s \lambda_i}{n}*W_i+W_p \sum_{i=1}^{p-1} \frac sn \lambda_i.

A - полная предложенная нагрузка для всех классов. Вероятность E_{2,n} (A) для времени ожидания определяется C-формулой Эрланга, обслуживание клиентов завершается со средним временем между окончаниями обслуживания s/n, когда все обслуживающие приборы заняты. Для самого высокого приоритетного класса p = 1 находим:

W_1=E_{2,n}(A) \frac sn +\frac 1n A_1W_1,\\
W_1=E_{2,n}(A)*\frac{s}{n-A_1}. ( 13.33)

Для p = 2 подобным способом находим:

W_2=E_{2,n}(A) \frac sn+\frac 1nA_1W_1+\frac 1n A_2W_2+W_2 \left \{ \frac sn* \lambda_1 \right \}\\
=W_1+\frac 1n A_2W_2+\frac 1n*A_1W_2,\\
W_2=\frac{nsE_{2,n}(A)}{\{n-A_1\}\{n-(A_1+A_2)\}}. ( 13.34)

В общем случае находим (Cobham, 1954 [14] ):

W_p=\frac{nsE_{2,n}(A)}{\{n-A_{p-1}'\}\{n-A_p'\}} ( 13.35)

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

Рассмотрим случай, когда продолжающееся обслуживание прервано прибытием клиента с более высоким приоритетом. После того как новый вызов будет обслужен, работа по обслуживанию прерванного вызова продолжается с того места, где оно было прервано. Эта ситуация типична для компьютерных систем. Для клиента с приоритетом p клиенты с более низким приоритетом не существуют. Среднее время ожидания W_p для клиента в классе p состоит из двух вкладов.

a) Время ожидания из-за клиентов с более высоким или тем же самым приоритетом, которые уже находится в очереди. Это время ожидания определяется как время ожидания клиентом в системе без приоритета, где существуют только первые p классов:

\frac{V_p}{1-A_p'} \quad \mbox{где} V_p=\sum_{i=1}^p \frac{\lambda_i}{2}*m_2,i}, ( 13.36)

Оно является остающимся временем обслуживания из-за клиентов с более высоким или тем же самым приоритетом, и A_p' определяется (13.31).

б) Время ожидания из-за клиентов с более высоким приоритетом, вызовы от которых поступают в течение время ожидания или во время обслуживания клиента, которого мы рассматриваем:

(W_p+s_p)\sum_{i=1}^{p-1}s_i* \lambda_i=(W_p+s_p)*A_{p-1}'.

Таким образом, мы имеем:

W_p=\frac{V_p}{1-A_p'}+(W_p+s_p)*A_{p-1}'.

Это может быть представлено следующим образом:

W_p(1-A_{p-1}')=\frac{V_p}{\{1-A_p'\}}+s_p*A_{p-1}',

В результате получается:

W_p=\frac{V_p}{(1-A_{p-1}')}+\frac{A_{p-1}'}{1-A_{p-1}'}*s_p. ( 13.37)

Тем же самым способом, как в секции 13.4.4, мы можем получить формулу для среднего времени ожидания для SJF дисциплины организации очереди с приоритетным возвращением к работе. Полное время реакции будет равно:

T_p=W_p+s_p ( 13.38)
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Иван Бузмаков
Иван Бузмаков
Россия, Сарапул
Никита Сомов
Никита Сомов
Россия, Удмуртская республика