Содержимое списка можно наблюдать – Window\Simulation Snapshort\FEC Snapshort» («Кадр СБС»).
2) Список текущих событий
В список текущих событий входят транзакты, которые должны перемещаться в модели в текущий момент модельного времени. Если при этом транзакт входит в блок ADVANCE с ненулевым временем задержки, то он перемещается в список будущих событий.
Содержимое списка можно наблюдать – Window\Simulation Snapshort\CEC Snapshort («Кадр СТС»).
3) Список пользователя
Содержимое списка можно наблюдать – Window\Simulation Snapshort\UserChains Snapshort»(«Кадр списков пользователя»)
4) Cписок прерываний
В список прерываний помещаются транзакты, обслуживание которых прервано блоком PREEMPT. После снятия прерывания в блоке RETURN транзакты вновь возвращаются в список будущих событий.
5) Список синхронизации
В список синхронизации помещаются транзакты, ожидающие объединения с другими транзактами в блоках GATHER и ASSEMBLE или находящиеся в блоках MATCH. После выполнения условий синхронизации транзакты возвращаются в список текущих событий. Кроме рассмотренных списков, обработка которых происходит без участия программиста, в GPSS/PC существуют списки пользователя, управление которыми осуществляется с помощью блоков LINK и UNLINK.
СВЯЗАННЫЕ СЧА:
CA$j - среднее число транзактов в списке j;
CCSj - общее число входов транзактов в список j;
СН$j - текущее число транзактов в списке j;
CM$j - максимальное число транзактов в списке j;
CT$j - среднее время пребывания транзакта в списке j.
1.4. Устройства
Устройства моделируют объекты, в которых может происходить обработка транзактов. Как правило, она связана с затратами времени. Особенность устройств состоит в том, что каждое из них в данный момент времени может быть занято лишь одним транзактом. Существует аналогия между устройствами GPSS и каналами систем массового обслуживания. В GPSS имеется возможность моделировать прерывания устройств. Существуют средства логической проверки состояния устройств.
МОДЕЛИРУЩИЕ БЛОКИ:
SEIZE А
Занимает устройство.
А - номер устройства.
RELEASE А
Освобождает устройство.
А - номер устройства (числовое или символьное имя освобождаемого устройства).
PREEMPT А
Переводит устройство в прерванное состояние.
А - номер прерываемого устройства.
Удаляет транзакт из прерванного устройства.
А - номер устройства (числовое или символьное имя освобождаемого устройства).
FAVAIL А
Обеспечивает перевод устройства с номером А в доступное состояние
FUNAVAIL А,В,C,D,E,F,G,H
Обеспечивает перевод устройства в недоступное для входа транзактов состояние.
Проверка состояния устройства может быть выполнена с помощью блока GATE.
СВЯЗАННЫЕ СЧА:
F$j - состояние устройства с номером j: О - если устройство свободно, и 1 - если
устройство занято;
FC$j – количество транзактов, занимавших устройство;
FI$j - если устройство в настоящий момент прервано блоком PREEMPT, то 1.
FR$j - коэффициент использования устройства j. Доля времени, когда устройство было занято. Принимает значение от 0 до 1000;
FT$j - среднее время использования устройства j одним транзактом;
FV$j – если устройство находится в доступном состоянии, то1.
1.5. Памяти
Памяти служат для моделирования объектов, обладающих определенной емкостью. Емкость памяти задают с помощью оператора STORAGE. Транзакт может занимать и освобождать определённую часть памяти.
МОДЕЛИРУЮЩИЕ БЛОКИ:
ENTER A,B
Помещает транзакт в память.
А - имя памяти символическое или числовое;
В - число занимаемых единиц памяти (необязательный операнд).
LEAVE А,В
Выводит транзакт из памяти.
А - номер памяти;
В - число освобождаемых единиц, памяти (необязательный операнд).
SAVAIL А
Обеспечивает доступное состояние памяти, имя или номер которого указаны в А.
SUNAVAIL А
Обеспечивает недоступное состояние памяти.
СВЯЗАННЫЕ СЧА:
R$j – емкость неиспользованной памяти j;
S$j - емкость используемой памяти j;
SA$j - среднее заполнение памяти j;
SC$j - число входов в память j;
SE$j - память j пуста;
SF$j - память j заполнена;
SM$j - максимальное заполнение памяти j;
ST$j – среднее время использования элемента в памяти j;
SV$j - память j в доступном состоянии;
SR$j - коэффициент использования памяти j . Доля общего использования, представленная средним объемом используемой памяти в памяти j;
1.6. Очереди
Транзакты в процессе движения могут задерживаться перед блоками, вход в которые в данных условиях невозможен. При поступлении транзактов на вход задерживающих блоков образуются очереди. Для сбора статистики об очередях в местах задержки ставят блоки QUEUE. Эти блоки сами по себе не создают очередь, а лишь являются средством ее регистрации. При входе транзакта в блок QUEUE текущая длина очереди получает приращение. Уход из очереди отображается блоком DEPART.
МОДЕЛИРУЮЩИЕ БЛОКИ:
QUEUE А,В
Помещает транзакт в конец очереди.
А - номер очереди (числовое или символьное имя очереди);
В - число добавляемых к очереди элементов (необязательный операнд).
DEPART A,B
Удаляет транзакт из очереди.
А - номер (имя) очереди;
В - число удаляемых из очереди элементов (необязательный операнд).
СВЯЗАННЫЕ СЧА:
Q$j - текущая длина очереди j;
QA$j - средняя длина очереди j;
QC$j - число входов в очередь j;
QM$j - максимальная длина очереди j;
QT$j - среднее время пребывания в очереди j, включая нулевые входы;
QX$j - среднее время пребывания в очереди j, без нулевых входов.
QZ$j - число входов в очередь с нулевым временем пребывания (транзакт прошел
через блок QUEUE, не задерживаясь в очереди);
1.7. Таблицы
Для сбора статистических данных о различных отчетах модели и их представления в стандартной табличной форме используют таблицы. Занесение информации в таблицу осуществляется блоком TABULATE в момент входа очередного транзакта в этот блок. Описание структуры таблицы и типа заносимых данных (СЧА) осуществляется картой TABLE.
МОДЕЛИРУЮЩИЕ БЛОКИ:
TABULATE A,B
Заносит значение в таблицу.
А – имя или номер таблицы;
В - вес, указывающий сколько раз значение должно быть занесено в таблицу (необязательный операнд).
NAME TABLE A,B,C,D
Определяет таблицу.
NAME – метка объекта;
А - аргумент таблицы (необязательный операнд): элемент данных, плотность распределения которого будет заноситься в таблицу;
В - верхняя граница нижнего интервала гистограммы;
С - ширина интервалов;
D - число интервалов (частотных классов);
Определяет таблицу статистики очереди (Q-таблицу), гистограмму плотности распределения времени ожидания в очереди
NAME – метка объекта;
А – имя очереди;
В - верхняя граница нижнего интервала гистограммы;
С - ширина интервалов;
D - число интервалов (частотных классов);
СВЯЗАННЫЕ СЧА:
TB$j - среднее значение фиксируемой в таблице j переменной;
TC$j - число входов в таблицу j;
TD$j - стандартное среднеквадратическое отклонение табулируемой переменной.
ПРИЛОЖЕНИЕ 4.
Системные числовые атрибуты
Системные числовые атрибуты являются переменными состояния процесса моделирования и доступны для использования в течение всего процесса моделирования. Они возвращают числовые или строковые значения и могут быть применимы в операндах операторов GPSS и выражениях.
Часть СЧА поддерживаются автоматически, другие требуют вычисления после их вызова. Например, как СЧА доступен счетчик количества входа транзактов в блок. Всего существует свыше 50 классов СЧА.
Следующие СЧА допустимы для использования в операндах и выражениях команд и операторов. Во всех случаях Еntпит необходимо заменять одним из спецификаторов объектов. Это может быть имя (перед именем должен стоять символ «$») или номер. В случае косвенной адресации перед именем или номером должен стоять символ «*».
Допустимые СЧА
A1 – Семейство активного транзакта. Целочисленное значение.
АС1 - Значение абсолютного модельного времени. (Модельное время с момента последней команды CLEAR). Вещественное значение.
ВVЕntпит - Значение булевой переменной Епtпит. Вещественное значение.
С1 - Значение относительного модельного времени. (Модельное время с момента последней команды RESET). Вещественное значение.
CAЕntпит - Среднее содержимое списка пользователя. Взвешенное по времени среднее количество транзактов, помещенных в список пользователя Еntпит. Вещественное значение.
CCЕntпит - Общее число входов транзактов в список пользователя. Число всех транзактов, находившихся в списке пользователя Епtпит. Целочисленное значение.