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

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

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

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

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

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

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

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

Блок Entity Queue представляет организацию очередей клиентов и приоритизирует их базирующийся в их сервисной безотлагательности.

  • Способностью блока Entity Queue является 25.

  • Тип очереди установлен в Priority отсортировать сущности на основе их приоритетных значений.

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

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

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

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

entity.starttime = getCurrentTime();

В Функциональном блоке Simulink блок Digital Clock используется, чтобы добавить метку времени к сущности, вводящей блок Entity Queue.

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

Блок switch Сущности Выход вывел сущности для отъезда.

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

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

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

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

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

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

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

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

Симулируйте модель и рассмотрите результаты

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

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

Смотрите также

| | | |

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

Больше о