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 может быть именем, положительным целым, СЧА, СЧА*СЧА.