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

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

Создайте модель

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

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

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

  • Точно так же Entity Generator1 генерирует сущности, чье промежуточное время прибытия сгенерировано из экспоненциального распределения со средним значением 1. Сущности имеют одинаковые атрибуты, priority и start time. The priority для атрибута задано значение 2 что является срочностью обслуживания клиента. The start time для атрибута задано значение 1.

Блок Выходной Коммутатор Сущности принимает сущности, сгенерированные блоками Генератор Сущностей и Generator1 Сущности, и пересылает их в очередь приоритетов.

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

  • Емкость блока Entity Queue 25.

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

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

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

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

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

entity.starttime = getCurrentTime();

В блоке Simulink Function блок Digital Clock используется для временной метки сущности, входящего в блок Сущности Queue.

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

Блок Выход Switch выводит сущности для отправки.

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

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

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

  • В блоке Entity Terminator, на вкладке Event actions, в Элементе, recordHighPriorityWaitTimes(starttime) вызывается функция.

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

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

  • Точно так же recordLowPriorityWaitTimes(starttime) функция вычисляет время для низкоприоритетных сущностей.

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

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

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

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

См. также

| | | |

Похожие примеры

Подробнее о