Моделирование процессов прерывании обслуживании

В задачах дискретно-событийного моделирования часто возникает ситуация прерывания процесса обработки заявки (транзакта). Прерывание процесса может быть вызвано разными причинами. Например, выход из строя (поломка) канала обслуживания; приход более приоритетной заявки, которая вытесняет заявку с более низким приоритетом; плановое отключение оборудования и т.п.

В ExtendSim настройки процесса прерывания задаются в блоке Activity. В диалоговом окне блока есть две вкладки Preemption (приоритетность) и Shutdown (отключение) для описания процесса прерывания.

Во вкладке Preemption задаются настройки для моделирования ситуации прихода более приоритетной заявки. В случае ее прихода, прерванная заявка выводится из блока Activity через дополнительный выходной коннектор (PEJtemOut). В зависимости от настроек может быть прервано выполнение заявки с более низким приоритетом (the item with the lowest priority); заявки, на завершение которой требуется наибольшее/наименьшее время (the item furthest/closest to finishing); все текущие заявки (all items currently in processing); только заявки с определенным значением атрибута (only items with a particular attribute value).

Также можно задать режим прерывания только в случае занятости все каналов в блоке Activity (Preempt only if block is full) и задать атрибут, в котором будет хранится оставшееся время обработки заявки {Store remaining process time in attribute).

Во вкладе Shutdown задаются настройки для моделирования ситуации временной блокировки (отказа) блока Activity. Блокировка происходит, когда на входной коннектор SD блока Activity приходит сигнал (value) или элемент (item).

Для задания расписания работы блока Activity можно использовать блок

Shutdown, в диалоговом окне которого задаются законы распределения интервалов между блокировками (TBFtime between failures) и восстановлением (777? — time to repair) блока Activity. На выходном коннекторе блока Shutdown (SD ValueOut) генерируется значение 1 (блокировка) или 0 (работа). Этот коннектор связывается с коннектором SD блока Activity и таким образом происходит управление процессом обслуживания заявок.

В диалоговом окне блока Activity во вкладке Shutdown также можно задать что происходит с заявкой в случае блокировки блока: заявка сохраняется и ее обслуживание возобновляется после восстановления (keep items, resume process after shutdown); заявка сохраняется и ее обслуживание начинается сначала после восстановления (keep items, restart process after shutdown), завершается обработка текущей заявки, а потом только блок блокируется (finish processing items before shutting down): заявка уничтожается (discard items that are being processed).

Приведем пример, в котором иллюстрируются разные варианты прерывания процесса моделирования.

При мер 14. В вычислительную систему на обработку поступают два потока пакетов с низким и высоким уровнями приоритета. Интенсивность поступления пакетов первого потока — 0,2; второго потока — 0,25. Пакеты проходят два этапа обработки. Па первом этапе обработки задействовано одно устройство, средний интервал обслуживания равен 2 с. В случае поступления пакета с высоким приоритетом во время обслуживания пакета с низким приоритетом происходит прерыванне обработки, пакет с низким приоритетом выводится из системы и снова становится в очередь на обработку. На втором этапе происходит обработка пакета равновероятно одним из двух устройств, средний интервал обслуживания равен 3 с. На втором этапе возможна блокировка устройства. Средний интервал между блокировками — 100 с, средний интервал восстановления — 10 с. Все потоки, протекающие в системе, — Пуассоновские.

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

Конечный вид модели приведен на рис. 51.

Модель вычислительной системы (пример 14^

Рис. 51. Модель вычислительной системы (пример 14^

Настройки основных блоков следующие.

  • 1. Задать в диалоговом окне блоков Create режим Create items randomly, распределение Exponential с заданным средним mean = 5 (4) и location = 0.
  • 2. Задать в диалоговом окне блоков Set в поле Property Name атрибут приоритет: Item Priority равный 1 и 2 соответственно для первого и второго потоков.
  • 3. Задать в диалоговом окне блоков Activity во вкладке Process режим Delay is: specified by a distribution распределение Exponential c mean = 2 (3) и location = 0. В первом блоке Activity, во вкладке Preempt включить режим прерывания: Enable preemption, задать режим прерывания пакета с низким приоритетом: the item with the lowest priority, прерывание только в случае полностью занятого устройства: Preempt only if block is full, задать имя атрибута, в котором хранится оставшееся время обработки прерванного пакета: Store remaining process time in attribute - Remainingtime и его использование: Use this attribute as delay. Bo втором и третьем блоках Activity, во вкладке Shutdown включить режим блокировки: Enable shutdown, опцию сохранения прерванного пакета и возобновления его обслуживания после снятия блокировки: When activity’ shuts down Keep items, resume process after shutdown.
  • 4. Задать в диалоговом окне первого блока Select Item In режим select input based on: merge, во втором блоке Select Item In режим select input based on: random.
  • 5. Задать в диалоговом окне первого блока Queue метод сортировки очереди по приоритету: Select sort methodSort by Priority.
  • 6. Задать в диалоговом окне блока Decision режим сравнения приоритетов пакета, находящегося на обслуживании, и пакета, стоящего в очереди на обслуживание: А —> В.
  • 7. Задать в диалоговом окне блоков Shutdown распределение времени между блокировками (поломками): Set time between failures и времени восстановления: Set time to repair по экспоненциальному закону Exponential с параметрами: mean = 100 (10) и location = 0.

Для остальных блоков модели используются настройки «по умолчанию».

В результате моделирования коэффициенты использования устройств Utilization на первом и втором этапах обработки равны соответственно 0,95 (0,74; 0,76); средняя длина очереди на обработку Length по этапам обслуживания: 11,3 (1,9; 2,4). Количество прерываний Preemptions обработки пакетов с низким уровнем приоритета на первом этапе обслуживания: 104. Количество блокировок Total пит downs и суммарное время блокировки устройств Total down time на втором этапе обслуживания: 11 (5) и 96,2 (52,7). В целом, система справляется с обработкой потока пакетов, наибольший коэффициент загрузки соответствует первому устройству.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >