Пример 4.53 СТ<номер списка>, СТ$<имя списка

LINK LIST,FIFO Я

В этом примере транзакт, вошедший в блок, помещается в ко­нец списка с именем LIST.

Стандартные числовые атрибуты, связанные с блоком LINK;

СА<помер списка>, СА$<имя списка> - среднее число тран-закто) в СП;

СС<номер списка>, СС$<имя списка> - общее число тран­зактов в СП;

СН<номер списка>, СН$<имя списка> - текущее число тран-заг то > в СП;

СМ<номер списка>, СМ$<имя списка> - максимальное число транзактов в СП;

СТ<номер списка>, СТ$<имя списка > - среднее время пребывания транзакта в СП.

Блок UNLINK (ВЫВЕСТИ ИЗ СПИСКА). Блок UNLINK уда­ляет транзакты из СП. После этого интерпретатор GPSS возобновляет их движение по модели.

Формат блока:

UNLINK [X] A,B,[C],[D],[E],[F ]

Операторы отношения, которые записываются во вспомога­тельном операнде X, определяют, какое условие (отношение) будет рассматриваться. Если этот оператор не задан, предполагается отно­шение равенства Е.

Операторы отношения могут быть такими:

G (больше) — отношение истинно, если значение параметра, за­данного в операнде D, больше значения, заданного в операнде Е;

GE (больше или равно) - отношение истинно, если значение параметра, заданного в операнде D, больше значения, заданного в операнде Е, или равно ему;

L (меньше) - отношение истинно, если значение параметра, за­данного в операнде D, меньше значения, заданного в операнде Е;

LE (меньше или равно) - отношение истинно, если значение параметра, заданного в операнде D, меньше значения, заданного в операнде Е, или равно ему;

Е (равно) - отношение истинно, если значение параметра, за­данного в операнде D, равно значению, заданному в операнде Е;

NE (не равно) - отношение истинно, если значение параметра, заданного в операнде D, не равно значению, заданному в операнде Е.

Операнд А задает СП, из которого удаляются один или несколь­ко транзактов. Операнд А может быть именем, положительным це-лым, СЧА или СЧА*СЧА.

В операнде В указывается номер блока, к которому переходят Удаляемые из списка транзакты. Операнд В может быть именем, по­ложительным целым, СЧА, СЧА*СЧА.

Операнд С задает число транзактов, удаляемых из СП (счетчик удалений). Операнд С может быть именем, положительным целым СЧА, СЧА*СЧА или «ALL» (означает удаление всех транзактов).

Операнд D может быть именем, целым, СЧА, СЧА*СЧА, «BACK». Действия, выполняемые при вхождении транзакта в блок UNLINK, зависят от того, на что ссылается операнд D. В операнде D могут быть указаны номер параметра, булева переменная или слово «BACK».

Номер параметра. Если операнд Е пропущен, значение задан­ного параметра вошедшего транзакта сравнивается со значением это­го же параметра транзактов СП. Если Е не пропущен, значение за­данного параметра транзактов СП сравнивается со значением СЧА из операнда Е. В обоих случаях транзакты, удовлетворяющие заданному отношению, будут удалены из списка и направлены в блок, указан­ный в операнде В.

Булева переменная BVj вычисляется отдельно для каждого транзакта из СП. Если для транзакта значение BVj =l, то он удаляется из СП (количество удаляемых транзактов не может превышать зна­чения операнда С). Если BVj=0 для всех транзактов списка, то во­шедший транзакт пытается переместиться в блок, заданный в операн­де F. Если операнд F пропущен, транзакт пытается перейти в сле­дующий по номеру блок.

Если в операнде D задана булева переменная, операнд Е должен быть пустым. Если булева переменная BVj имеет ссылку на какой-либо параметр, то эта ссылка относится к параметрам транзактов из списка, а не к входящему в блок UNLINK транзакту.

Слово «BACK». Из указанного списка, начиная с его конца, бу­дет исключено столько транзактов, сколько задано операндом С. Операнд Е в этом случае должен быть пустым.

Операнд Е содержит СЧА, значение которого сравнивается со значением параметра транзактов СП (номер параметра указан в опе­ранде D). Операнд Е может быть именем, целым, СЧА, СЧА*СЧА.

Операнд F задает номер следующего блока для того транзакта, который входит в блок UNLINK в случаях, когда соответствующий СП пустой или не выполнено заданное отношение, или же указанная в операнде D булева переменная равна нулю для всех транзактов спи­ска (т.е. в случае, когда из СП нельзя ничего удалить). Операнд F мо­жет быть именем, положительным целым, СЧА, СЧА*СЧА.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: