Интеллектуальная модель системы массового обслуживания
с очередью типа D/D/1 в среде SimEvents (MATLab/SimuLink)

В.А. Гулиус
Харьковский Национальный университет радиоэлектроники
пр. Ленина, 14, г. Харьков, 61166, gulius@mail.ru

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

В работе рассматривается методика создания и проведения исследований одной из моделей систем массового обслуживания (СМО) – модели D/D/1 в среде SimEvents, являющейся одним из компонентов системы MATLab+SimuLink.

Для обозначения основных допущений, применяемых при моделировании СМО, была разработана так называемая нотация Кепдалла (Kendall's notation) [2]. Эта нотация имеет вид X/Y/N, где X обозначает распределение интервалов времени между поступлениями запросов, Y – распределение времени обслуживания, N – количество серверов. В обозначении модели D/D/1 первое D обозначает детерминированное время поступление запросов на обслуживание, второе D – фиксированное время обслуживания запросов, N – количество обслуживающих приборов.

SimEvents позволяет формировать требования с заданными пользователем параметрами и затем соединять блоки между собой таким образом, чтобы перемещение и обработка заявок соответствовала реальным условиям.

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

Такой тип системы известен как D/D/1 система организации очереди. При этом подразумевается детерминированный порядок поступления заявок в систему, детерминированный порядок обслуживания запросов и наличие единственного сервера.

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

Для построения модели были выбраны следующие блоки:

Выполним необходимые соединения блоков и получим схему модели D/D/1, представленную на рисунке 1.

####

Рисунок 1 – Модель D/D/1

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

В блоке Time-Based Entity Generator в окне Period установим интервал следования заявок, равный 2. Блок параметров этого блока представлен на рисунке 2.

####

Рисунок 2 – Установка периода следования заявок в блоке Time-Based Entity Generator

В блоке параметров блока FIFO Queue в разделе Statistics в окне параметра Average wait следует выбрать On. Для блока Single Server необходимо установить такие параметры: в окне Service time from: Signal from 1 и On – в окне Utilization. Для формирования времени обслуживания каждой заявки в сервере в блоке Event-Based Random Number в окнах Minimum и Maximum занесем 1.5 и 2.5 соответственно.

Начало моделирования. В меню рабочего окна модели нужно установить время моделирования – 50 и нажать кнопку Start. Когда моделирование завершится, блоки Signal Scope откроют окна, содержащие графики.

Блок Signal Scope, названный InterTime, показывает процедуру формирования заявок (рисунок 3). Горизонтальная ось времени показывает моменты, в которые заявки поступают на вход блока FIFO Queue.

####

Рисунок 3 – Формирование заявок на входе FIFO Queue блока

Блок Service time представляет последовательность псевдослучайных чисел, каждое из которых применяется в качестве времени обслуживания заявки в сервере (рисунок 4).

####

Рисунок 4 – Формирование времен обслуживания заявок в сервере

Блок Wait time (рисунок 5) показывает время ожидания каждой заявки в очереди перед обслуживающим прибором. Горизонтальная ось отображает номера заявок, а ось Y – время ожидания каждой заявки.

####

Рисунок 5 – Время ожидания заявок на обслуживание

Наконец, блок Utilization (рисунок 6) отображает загрузку сервера при обслуживании каждой заявки. Горизонтальная ось отображает номера заявок, а вертикальная – загрузку.

####

Рисунок 6 – Загрузка сервера

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

Модель D/D/1, представленная на рисунке 1, была дополнена следующим блоками:

Эти блоки предназначены для формирования в окне MatLab’а Workspace массивов выходных данных. В результате модель D/D/1 приняла вид (рисунок 7).

cl_gva026.png, 24kB

Рисунок 7 – Модель D/D/1 для выполнения исследований в автоматическом режиме

Следующий этап доработки модели – внесение изменений параметров в блоки модели. В среде SimuLink в блоках параметров предусмотрена возможность занесения не только численных величин, но и запись переменных. Такую процедуру в модели следует выполнить в блоке Time-Based Entity Generator. В окно Period бока параметров занесем переменную per1 (рисунок 8). При выполнении моделирования в автоматическом режиме эта переменная будет принимать численные значения 1.5, 2.0, 2.5, … .

####

Рисунок 8 – Запись в окне Period переменной per1

Автоматизация процесса моделирования требует разработки программного кода в среде Matlab. Ниже приведен текст программы.

%Программа – исследование модели D/D/1.
%Wait Time, utilization;
%Зависимость загрузки сервера и времени ожидания
%заявок от интенсивности
%входного потока
nruns=10;%Количество испытаний;
mina=1;maxa=3;%Интервал времени обслуживания
p=1.5;
per1=zeros(nruns,1);%интервал времени между соседними
%требованиями
w=zeros(nruns,1);%коэффициент загрузки сервера
for k=1:nruns;
    per1=p;
    sim('Study_dd1',[]);%Run simulation)
    format short g;
    w(k)  = util;%Коэффициент загрузки сервера
    w1(k) = random_numb;%Время обработки требований
    w2(k) = per1;%Межкадровый интервал
    w3(k) = wait;%Длина очереди
    p=p+.5;
end
%Create plot
x=1.5:.5:6;
y=[w];
plot (x,y)

Рисунок 9 – Текст программы исследования модели D/D/1

В результате выполнения программы исследования модели D/D/1, которая управляет работой совокупности блоков, входящих в эмпирическую модель D/D/1 (рисунок 7), в автоматическом режиме были построены графики загрузки сервера (рисунок 10) и времени ожидания заявок (рисунок 11).

####

Рисунок 10 – Зависимость загрузки сервера от интенсивности входного потока заявок

cl_gva029.png, 18kB

Рисунок 11 – Зависимость времени ожидания от интенсивности входного потока заявок

Выводы. Модель D/D/1 была построена в среде SimEvents с использованием стандартных блоков. Проведено моделирование детерминированной системы, включающей обслуживающий прибор (сервер) с дискретным временем обслуживания заявок и блок генерирования заявок также имеющий постоянное время поступления. Интеллектуальность модели была достигнута созданием программного кода, обеспечившим полную автоматизацию процесса моделирования. Результаты моделирования свидетельствуют о работоспособности построенной модели.

Перечень ссылок

  1. Иванищев В.В. Некоторые особенности интеллектуальных технологий моделирования.
    www.ccas.ru/Pavlovsky/confer/Ivanischev
  2. William Stallings. Queuing analysts. www.shore.net/~ws/COA5e

Список статей автора

  1. Гулиус В.А. Влияние дисциплины обслуживания заявок на производительность коммутатора. Представлены результаты исследований аналитических моделей и даны рекомендации по выбору дисциплины обслуживания заявок (пакетов LIFO) в буфере коммутатора, позволяющие снизить задержки, повысить полезную пропускную способность и обеспечить требуемое качество обслуживания (Quality of Service, QoS).
  2. Гулиус В.А. Исследование динамических характеристик пакетного коммутатора. В статье описано исследование, цель которого состояла в определении средних значений задержек продвижения пакетов в коммутаторе (в зависимости от размера пакета и емкости входного буфера), и в выявлении влияния дисциплины обслуживания заявок FIFO и LIFO на задержки.
  3. Гулиус В.А. Имитационная модель коммутатора. Цель данной работы – исследование характеристик коммутатора, и, в первую очередь, его производительности (в среде MatLab+SimEvents).
  4. Гулиус В.А. Интеллектуальная модель системы массового обслуживания с очередью типа D/D/1 в среде SimEvents (MATLab/SimuLink).
  5. Гулиус В.А. Влияние коллизий на производительность Ethernet. В статье выполнено исследование модели сети Ethernet в среде Simulink. Цель исследования – определение влияния коллизий на полезную пропускную способность.