Устройства в GPSS: FACILITY
Устройство (FACILITY) в системе GPSS представляет собой объект, в котором могут выполняться операции обработки транзакта (обслуживания заявок).
Особенность устройства состоит в том, что в любой данный момент времени оно может быть занято лишь одним транзактом. Если устройство занято и текущий транзакт не может войти в устройство, то транзакт прекращает перемещение по модели (становится заблокированным) и ожидает освобождения данного устройства. Занятие и освобождение устройства моделируют соответственно блоки
SEIZE A
RELEASE А
где A – имя или номер устройства.
Как правило, обработка связана с затратами времени. В системе моделирования длительность обработки отображается блоком задержки транзакта, имеющим вид:
ADVANCE A,B
где A – среднее время задержки, задаваемое числом (целое без знака) или идентификатором ячейки, переменной, содержащих целочисленное значение задержки;
B – разброс времени задержки транзакта относительно среднего значения А с равновероятным распределением в интервале (А-В, А+В). Очевидно, что В должно быть меньше или равно A.
Объекту FACILITY в ДС могут соответствовать реальные устройства обработки данных (процессоры, ЭВМ, каналы передачи данных), технические средства или любые компоненты системы, обеспечивающие обслуживание заявок (в терминах теории массового обслуживания устройству соответствует одноканальная система массового обслуживания).
В GPSS имеется возможность моделировать обслуживание заявок (транзактов) с учетом их приоритетов. Различают два типа приоритетов: относительный и абсолютный.
Приоритет называется относительным, если из множества заявок, пытающихся войти в устройство, такое право предоставляется той заявке, которая имеет наибольший приоритет. При этом выбор следующей заявки для обслуживания в данном устройстве происходит после освобождения устройства от обслуживания предыдущей заявки, имеющей произвольное значение приоритета.
Заявки, имеющие одинаковые приоритеты, обслуживаются в устройстве в порядке поступления в очередь к данному устройству (дисциплина обслуживания FIFO – First-In-First-Out). В GPSS есть два способа задания относительного приоритета транзакта – в блоке GENERATE и в блоке PRIORITY.
При появлении перед устройством заявки, имеющей абсолютный приоритет, эта заявка захватывает устройство даже если оно занято обслуживанием некоторой другой заявки, имеющей относительный приоритет или не имеющей приоритета вовсе. При этом до захвата устройства происходит прерывание процесса обслуживания заявки, вошедшей в данное устройство ранее. Прерванная заявка поступает в список прерываний. Захват устройства А транзактом с абсолютным приоритетом и освобождение устройства (снятие прерывания) с последующим дообслуживанием прерванного ранее транзакта имитируется соответственно блоками
PREEMРT A
RETURN A
Таким образом, работа устройства в GPSS-модели отображается тремя блоками:
SEIZE A ; занять устройство
ADVANCE A, B ; задержать транзакт
RELEASE A ; освободить устройство
или
PREEMPT A ; захватить устройство с прерыванием
ADVANCE A,B ; задержать транзакт
RETURN A ; освободить устройство с дообслуживанием
С устройствами связаны следующие СЧА:
SF$j – состояние j-го устройства: равно 0, если устройство свободно, и равно 1,
если устройство занято;
FR$j – коэффициент использования устройства j;
FC$j – число входов в устройство j;
FT$j – среднее время использования j -го устройства одним транзактом.
Устройства имеют также стандартные логические атрибуты, каждый из которых может принимать одно из двух значений: «истина» или «ложь»:
U – устройство занято;
NU – устройство свободно;
I – устройство прервано;
NI – не прервано.
Проверка состояния устройства осуществляется блоком GATE, который в зависимости от значения проверяемого СЛА либо беспрепятственно пропускает транзакты (если СЛА = «истина» ), либо (если СЛА = «ложь») задерживает их – при отсутствии поля С в блоке GATE или направляет транзакты по другому маршруту – по метке, указанной в поле С.