exponenta event banner

Обслуживание клиентов с высоким приоритетом путем сортировки объектов на основе приоритета

В этом примере показано, как минимизировать время, необходимое для обслуживания клиентов с высоким приоритетом, с помощью очереди приоритетов и блоков коммутатора ввода и вывода объектов. Клиенты обслуживаются в зависимости от их приоритетов обслуживания. В этом примере два типа клиентов входят в систему очередей. Один тип представляет высокоприоритетных клиентов с высокой срочностью. Второй тип клиентов имеет более низкий приоритет и обслуживается с меньшей срочностью. Приоритетная очередь ставит высокоприоритетных клиентов выше низкоприоритетных.

Построение модели

В модели прибывающие клиенты представлены генератором объектов и Generator1 объектов.

  • В блоке Entity Generator время между поступлениями клиента генерируется из экспоненциального распределения со средним значением 3.

  • Блок «Генератор объектов» генерирует объекты, имеющие атрибуты. priority и start time. priority атрибут имеет значение 1, что является срочностью обслуживания клиента. start time атрибут также имеет значение 1, которая инициализирует значение времени начала, используемое в модели.

  • Аналогично, объект Generator1 генерирует объекты, время между поступлениями которых генерируется из экспоненциального распределения со средним значением 1. Объекты имеют одинаковые атрибуты, priority и start time. priority атрибут имеет значение 2 что является срочностью обслуживания клиента. start time атрибут имеет значение 1.

Блок коммутатора вывода объектов принимает объекты, созданные генератором объектов, и блоки Generator1 объектов и пересылает их в очередь приоритетов.

Блок Entity Queue представляет постановку клиентов в очередь и определяет их приоритеты на основе срочности обслуживания.

  • Емкость блока очереди объектов: 25.

  • Для типа очереди установлено значение Priority для сортировки объектов на основе их значений приоритета.

  • Для источника приоритета установлено значение priority, который является атрибутом, используемым для сортировки объектов.

  • Для направления сортировки установлено значение Ascending. Объекты с более низкими значениями priority размещаются в передней части очереди. В этой настройке клиенты с priority значение 1 имеют приоритет над клиентами со значением 2.

Блок Simulink Function используется для метки времени объектов, которые входят в блок Entity Queue.

  • В блоке Очередь сущностей (Entity Queue) на вкладке Действия с событиями (Event actions) в действии Запись (Entry) используется следующий код, чтобы каждый раз при входе сущности в блок getCurrentTime() Вызывается функция Simulink.

entity.starttime = getCurrentTime();

В блоке Simulink Function блок цифровых часов используется для временной метки объекта, входящего в блок Entity Queue.

Блок сервера сущностей представляет услугу, которую получает клиент.

Блок «Переключатель вывода объектов» выводит объекты для отправки.

  • Критерий переключения установлен в значение From attribute, который выбирает путь отправления на основе атрибута сущности.

  • Для имени атрибута коммутатора установлено значение priority. Если priority значение равно 1, блок переключается на выходной порт 1 и если priority значение равно 2, блок переключается на выходной порт 2 для отъезда организации.

Когда объект входит в блок терминатора объекта, recordHighPriorityWaitTimes(starttime) вызывается функция для вычисления времени, затраченного между поступлением объекта в блок Entity Queue и его отходом от блока Entity Terminator.

  • В блоке Терминатор сущности (Entity Terminator), на вкладке Действия с событиями (Event actions), в разделе Запись (Entry), recordHighPriorityWaitTimes(starttime) вызывается функция.

  • Входной аргумент функции: startime, которая является отметкой времени, которая была записана при входе объекта в блок Entity Queue.

  • Блок Simulink Function принимает этот аргумент и вычисляет разницу между временем начала и временем отправления.

  • Аналогично, recordLowPriorityWaitTimes(starttime) функция вычисляет время для низкоприоритетных объектов.

  • Вычисленное общее время обслуживания отображается блоком области панели мониторинга.

Моделирование модели и анализ результатов

Время моделирования модели устанавливается равным 100.

Смоделировать модель и наблюдать за результатами, отображаемыми в блоке Область панели мониторинга (Dashboard Scope). Блок показывает, что время ожидания высокоприоритетных клиентов значительно меньше, чем низкоприоритетных клиентов.

См. также

| | | |

Связанные примеры

Подробнее