Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Цепи пользователя






 

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

Язык 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.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.