- •Лекция №1 Имитационное моделирование
- •Основные и вспомогательные события
- •Обработка событий в представленной системе
- •Работа системного таймера
- •Одновременные события.
- •Получение значений случайных чисел.
- •Равномерное распределение
- •Лекция №2 Создание модели в системе gpss
- •Лекция №3 Листинги, которые появляются в процессе моделирования.
- •Логика работы интерпретатора
- •Модификация параметров при моделировании
- •Различные законы распределения вероятности появления транзактов в модели
- •Лекция № 4 Задание функций.
- •Многоканальные устройства
- •Модель многопроцессорной системы
- •Лекция № 5
- •Параметры транзактов
- •Лекция №6 Выбор элементов по их состояниям
- •Арифметические переменные
- •Формирование случайных чисел, распределенных по нормальному закону
- •Лекция № 7 Сохраняемые величины
- •Initial имя сохраняемой величины, ее значение/имя, значение/...
- •Управление последовательностью событий
- •Лекция № 8 Логический переключатель
- •Блок select в логическом режиме
- •Организация цикла
- •Булевские переменные
- •Блок buffer
- •Лекция № 9
- •Косвенная адресация
- •Лекция № 10 Цепи пользователя
- •Лекция № 11 .
- •Условный вывод транзактов из цепи пользователя
- •Лекция №12
- •Захват устройства
- •Лекция №13
- •Ансамбли транзактов
- •Использование таблиц
- •Лекция №14
- •Сча таблиц.
- •Дополнительные режимы использования таблиц.
- •2) Rt (Rate – интенсивность) – режим.
- •Время моделирования.
- •Некоторые сведения из Теории вероятностей
Лекция № 10 Цепи пользователя
До сих пор мы имели дело с цепями текущих и будущих событий. Эти цепи недоступны пользователю .
Язык GPSS предоставляет программисту для использования третью разновидность цепей цепь пользователя. Цепь пользователя - такое место, где могут находиться транзакты , присутствующие в модели ,но не находящиеся ни в цепи будущих,ни в цепи текущих событий.Цепей пользователя может быть несколько (количество определяется объемом памяти машины) .
Иногда пользователю известно ,что некоторые транзакты не будут продвигаться в модели, и тогда пользователь может перенести их из цепи текущих событий в цепь пользователя. А поскольку интерпретатор в процессе моделирования просматривает все транзакты, находящиеся в цепи текущих событий, быстрее будет происходить процесс моделирования .
LINK A,B,C позволяет поместить транзакт в цепь пользователя .
A имя цепи пользователя ,может быть как численным так и символическим.
B способ включения транзакта в цепь пользователя.Имеет следующие варианты:
FIFO новый транзакт ставится в конец (обычная очередь);
LIFO новый транзакт становится в начало очереди;
P указывает параметр, в соответствии с которым транзакты помещаются в цепь пользователя: в начале находятся транзакты с меньшим значением этого параметра.
C (необязательный параметр) Если С отсутствует, то блок LINK работает в режиме безусловного присоединения,присутствие операнда С задает режим условного присоединения.
Для каждой цепи пользователя вводится индикатор состояния, принимающий состояния Set либо Reset.
Set транзакт безусловно присоединяется к цепи пользователя
Reset при поступлении на оператор LINK транзакта индикатор состояния устанавливается в состояние Set и транзакт поступает на блок с меткой‚ указанной в операнде С.
UNLINK A,B,C,D,E,F обеспечивает вывод транзактов из цепи пользователя .
A имя цепи пользователя ‚из которой извлекаются транзакты.
C указывается число выводимых транзактов. Здесь может стоять число‚слово ALL (выводятся все
транзакты) или любой числовой атрибут.
B метка блока‚ на который должны поступить выводимые транзакты.
Выводимые из цепи пользователя транзакты поступают в цепь текущих событий и занимают там место в соответствии со своим приоритетом.
D,E определяют порядок вывода транзактов
F имя блока‚ в который поступает транзакт–инициатор‚ то есть тот транзакт который поступил на блок UNLINK‚ если из цепи пользователя не был выведен ни один транзакт. Если был выведен хотя бы один транзакт или операнд F отсутствует‚ то транзакт–инициатор идет на следующий по написанию блок.
При выполнении блока LINK индикатор состояния устанавливается в режим Set. Индикатор состояния может быть выключен только блоком UNLINK, когда в цепи пользователя не останется ни одного транзакта. В начальный момент времени все индикаторы находятся в состоянии Reset.
Пример № 10.1: Смоделировать систему ОП–БП–ЦП. ОП посылает данные на обработку в ЦП. Если ЦП занят, то данные поступают в БП.
-
GENERATE
15,5
QUEUE
A
* 1-й транзакт‚ пройдя блок LINK‚ установит индикатор состояния
* из Reset в Set и поступит на устройство. Последующие транзакты‚
* если 1-й транзакт ещё не прошел блок UNLINK‚ будут поступать
* в цепь пользователя .
-
LINK
C1,FIFO,M
M
SEIZE
B
DEPART
A
ADVANCE
10,7
RELEASE
B
* При прохождении блока UNLINK, если цепь пользователя
* пуста‚ индикатор состояния установится в состояние Reset .
-
UNLINK
C1,M
TERMINATE