КИРИЛЛ ТКАЧЕНКО, инженер 1-й категории, ФГАОУ ВО «Севастопольский государственный университет», tkachenkokirillstanislavovich@gmail.com
Аналитическое моделирование в 1С многоканальной системы массового обслуживания
Для описания компьютерных и иных технических систем часто применяются многоканальные системы массового обслуживания с буферированием. Рассматривается программа для проведения описательного демонстрационного аналитического моделирования. Приводятся исходный текст и результаты работы
В области информационных технологий и во многих других сферах науки и промышленности довольно часто применяются системы массового обслуживания (СМО).
Целесообразность их применения настолько высока, что чем раньше, полнее и глубже будут выработаны знания, умения и навыки по проведению аналитического моделирования СМО, то есть их расчетов, тем результативнее возможная деятельность будущего компьютерного инженера.
С другой стороны, одной из сфер деятельности, доступной для отечественного разработчика, являются разработка в системе 1С и обслуживание конфигураций. Поэтому нужно совмещать обучение СМО и 1С.
Аналитическому моделированию СМО посвящено достаточно много литературы, из числа которой следует отметить работы [1-5].
Особняком стоит СМО типа M/M/K/N. В этой системе простейший входной поток заявок с интенсивностью λ, очередь с емкостью N перед каналами, наконец, K каналов обработки по экспоненциальному закону с производительностью μ. Системы массового обслуживания такого типа в специальной литературе принято называть многоканальными с буферированием.
Целью работы является разработка программы в виде модуля управляемого приложения 1С, позволяющей выполнять демонстрационное аналитическое моделирование многоканальной системы с буферированием, инвариантной относительно решаемой задачи.
Поскольку аналитическое моделирование для определения характеристик СМО сводится к счету по формулам, то можно воспользоваться справочными инженерными соотношениями.
Например, в приложении работы [5] собраны воедино основные соотношения для расчетов. Поэтому к важнейшим системным характеристикам СМО можно отнести:
- Коэффициент загрузки ρ:
(1)
- Коэффициент загрузки СМО ρs:
(2)
- Вероятность простоя СМО p0:
(3)
- Вероятность пребывания в СМО i заявок pi:
(4)
- Вероятность отказа в обслуживании заявки potk:
(5)
- Среднее число занятых каналов Kz:
(6)
- Среднее число заявок в очереди Wq:
(7)
- Среднее время ожидания заявки в очереди Tq:
(8)
- Среднее число заявок в СМО Ws:
(9)
- Среднее время пребывания заявки в СМО Ts:
(10)
Расчеты по формулам (1)-(10) сводятся к типовым языковым конструкциям в 1С: присваиванию и циклу с параметром.
С целью упрощения оптимизация не производится, а также отсутствует контроль входных данных для удовлетворения области допустимых значений (1)-(10).
Также вся готовая программа помещается в модуль управляемого приложения.
Функция, в которой будут производиться расчеты, носит идентификатор СМО.
Ее четыре аргумента – K, N, lam, mu – задают соответственно число каналов, емкость буфера, интенсивность и производительность.
Функция СМО(K, N, lam, mu)
Перем rho, rhos;
Перем p0, potk;
Перем Kz;
Перем Wq, Tq;
Перем Ws, Ts;
Перем psost;
Перем i, j;
Перем Числ, Знам;
Перем KФакт;
Перем ТЕРМИНАТОР;
Перем Рез;
Идентификаторы используемых функцией переменных приближены к обозначениям (1)-(10), а сами переменные используются для хранения:
- rho – ρ,
- rhos – ρs,
- p0 – p0,
- potk – potk,
- Kz – Kz,
- Wq – Wq,
- Tq – Tq,
- Ws – Ws,
- Ts – Ts,
- psost – pi,
- i – номер состояния и счетчик цикла,
- j – счетчик цикла,
- Числ и Знам – числители и знаменатели в циклах для упрощения нахождения многократных произведений,
- KФакт – K!.
В переменную ТЕРМИНАТОР помещается символ для разделения строк в выходной переменной Рез.
Вначале символ, разделяющий строки, помещается в:
ТЕРМИНАТОР = ""
"";
Затем по формуле (1) производится расчет ρ. Здесь и далее результат вычислений помещается в результирующую строку с точностью четыре знака после запятой, затем добавляется терминатор:
rho = lam / mu;
Рез = "rho = " + Формат(rho, "ЧДЦ=4") + ТЕРМИНАТОР;
Аналогичным образом по формуле (2) получается ρs:
rhos = rho / K;
Рез = Рез + "rho_s = " + Формат(rhos, "ЧДЦ=4") + ТЕРМИНАТОР;
Счет по формуле (3) несколько более сложен и требует использования циклов с параметром:
p0 = 1;
Числ = 1;
Знам = 1;
Для j = 1 По K - 1 Цикл
Числ = Числ * rho;
Знам = Знам * j;
p0 = p0 + Числ / Знам;
КонецЦикла;
Числ = Числ * rho * (1 - Pow(rhos, N + 1));
KФакт = Знам * K;
p0 = p0 + Числ / (KФакт * (1 - rhos));
p0 = 1 / p0;
Рез = Рез + "p0 = " + Формат(p0, "ЧДЦ=4") + ТЕРМИНАТОР;
Для этого расчета удобно манипулировать значениями числителей и знаменателей слагаемых суммы отдельно, чтобы, во-первых, уменьшить возможные ошибки от потери точности при делении, во-вторых, чтобы в дальнейшем непроизводить расчет значения K!.
В свою очередь, вычисление вероятности отказа по (5) достаточно просто:
potk = (Pow(rho, K + N) * p0) / (KФакт * Pow(K, N));
Рез = Рез + "potk = " + Формат(potk, "ЧДЦ=4") + ТЕРМИНАТОР;
Значения величин Kz, Wq, Tq, Ws, Ts рассчитываются по формулам (6)-(10) и помещаются в результат образом, аналогичным для (1):
Kz = rho * (1 - potk);
Рез = Рез + "Kz = " + Формат(Kz, "ЧДЦ=4") + ТЕРМИНАТОР;
Wq = (Pow(rho, K + 1) * p0) / (KФакт * K);
Wq = Wq * (1 - Pow(rhos, N) * (N + 1 - N * rhos)) / Pow(1 - rhos, 2);
Рез = Рез + "Wq = " + Формат(Wq, "ЧДЦ=4") + ТЕРМИНАТОР;
Tq = Wq / lam;
Рез = Рез + "Tq = " + Формат(Tq, "ЧДЦ=4") + ТЕРМИНАТОР;
Ws = Wq + Kz;
Рез = Рез + "Ws = " + Формат(Ws, "ЧДЦ=4") + ТЕРМИНАТОР;
Ts = Tq + (1 - potk) / mu;
Рез = Рез + "Ts = " + Формат(Ts, "ЧДЦ=4") + ТЕРМИНАТОР;
Определение вероятностей состояний СМО по (5) выполняется в два цикла. В первом цикле определяются pi для случая 1≤i≤K:
Числ = p0;
Знам = 1;
Для i = 1 По K Цикл
Числ = Числ * rho;
Знам = Знам * i;
psost = Числ / Знам;
Рез = Рез + "p" + i + " = " + Формат(psost, "ЧДЦ=4") + ТЕРМИНАТОР;
КонецЦикла;
Во втором цикле – pi для случая K<i≤K+N:
Для i = K + 1 По K + N - 1 Цикл
Числ = Числ * rho;
Знам = Знам * K;
psost = Числ / Знам;
Рез = Рез + "p" + i + " = " + Формат(psost, "ЧДЦ=4") + ТЕРМИНАТОР;
КонецЦикла;
В этих циклах расчет числителей и знаменателей, а также накопление сумм аналогично циклу, определяющему значение (3).
Функция завершается возвратом Рез:
Возврат Рез;
КонецФункции
Наконец, результат сообщается пользователю:
Сообщить(СМО(4, 7, 30, 17));
Полный исходный текст находится на сайте журнала http://samag.ru.
Результаты работы программы:
rho = 1,7647
rho_s = 0,4412
p0 = 0,1678
potk = 0,0002
Kz = 1,7643
Wq = 0,0943
Tq = 0,0031
Ws = 1,8586
Ts = 0,0620
p1 = 0,2961
p2 = 0,2613
p3 = 0,1537
p4 = 0,0678
p5 = 0,0299
p6 = 0,0132
p7 = 0,0058
p8 = 0,0026
p9 = 0,0011
p10 = 0,0005
Полученная программа демонстрирует возможности аналитического моделирования в среде 1С. Это пригодно, например, для анализа характеристик сложных систем для планирования закупок.
- Вентцель Е.С. Теория вероятностей / Е.С.Вентцель, Л.А. Овчаров. – М.: Наука, 1973. –368 с.
- Новиков О.А. Прикладные вопросы теории массового обслуживания / О.А. Новиков, Б.В. Гнеденко, С.И. Петухов. – М.: Советское радио, 1969. – 398 с.
- Клейнрок Л. Теория массового обслуживания / Л. Клейнрок. – М.: Машиностроение, 1979. – 432 с.
- Клейнрок Л. Вычислительные системы с очередями / Л.Клейнрок. – М.: Мир, 1979. – 600 с.
- Балакирева И.А. Методические указания для выполнения типовой выпускной квалификационной работы бакалавра по тематике анализа эффективности компьютерных систем обработки данных / И.А. Балакирева, А.В. Скатков. – Севастополь: СевГУ, 2015. – 32 с.
Ключевые слова: 1С, системы массового обслуживания, аналитическое моделирование.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|