В этом примере транзакт, вошедший в блок, помещается в конец списка с именем LIST.
Стандартные числовые атрибуты, связанные с блоком LINK:
СА<номер списка>, СА$<имя списка> – среднее число транзактов в СП;
СС<номер списка>, СС$<имя списка> – общее число транзактов в СП;
СН<номер списка>, СН$<имя списка> – текущее число транзактов в СП;
СМ<номер списка>, СМ$<имя списка> – максимальное число транзактов в СП;
СТ<номер списка>, СТ$<имя списка> – среднее время пребывания транзакта в СП.
Блок UNLINK (ВЫВЕСТИ ИЗ СПИСКА). Блок UNLINK удаляет транзакты из СП. После этого интерпретатор ОР85 возобновляет их движение по модели.
Формат блока:
UNLINK [Х] A,B,[C],[D],[E],[F]
Операторы отношения, которые записываются во вспомогательном операнде X, определяют, какое условие (отношение) будет рассматриваться. Если этот оператор не задан, предполагается отношение равенства Е.
Операторы отношения могут быть такими:
G (больше) – отношение истинно, если значение параметра, заданного в операнде D, больше значения, заданного в операнде Е;
|
|
GЕ (больше или равно) – отношение истинно, если значение параметра, заданного в операнде D, больше значения, заданного в операнде Е, или равно ему;
L (меньше) — отношение истинно, если значение параметра, заданного в операнде D, меньше значения, заданного в операнде Е;
LЕ (меньше или равно) – отношение истинно, если значение параметра, заданного в операнде D, меньше значения, заданного в операнде Е, или равно ему;
Е (равно) – отношение истинно, если значение параметра, заданного в операнде D, равно значению, заданному в операнде Е;
NЕ (не равно) – отношение истинно, если значение параметра, заданного в операнде D, не равно значению, заданному в операнде Е.
Операнд А задает СП, из которого удаляются один или несколько транзактов. Операнд А может быть именем, положительным целым, СЧА или СЧА*СЧА.
В операнде В указывается номер блока, к которому переходят удаляемые из списка транзакты. Операнд В может быть именем, положительным целым, СЧА, СЧА* СЧА.
Операнд С задает число транзактов, удаляемых из СП (счетчик удалений). Операнд С может быть именем, положительным целым, СЧА, СЧА*СЧА или «ALL» (означает удаление всех транзактов).
Операнд D может быть именем, целым, СЧА, СЧА*СЧА, «ВАСК». Действия, выполняемые при вхождении транзакта в блок UNLINK, зависят от того, на что ссылается операнд D. В операнде D могут быть указаны номер параметра, булева переменная или слово «ВАСК».
Номер параметра. Если операнд E пропущен, значение заданного параметра вошедшего транзакта сравнивается со значением этого же параметра транзактов СП. Если Е не пропущен, значение заданного параметра транзактов СП сравнивается со значением СЧА из операнда Е. В обоих случаях транзакты, удовлетворяющие заданному отношению, будут удалены из списка и направлены в блок, указанный в операнде В.
|
|
Булева переменная BVj вычисляется отдельно для каждого транзакта из СП. Если для транзакта значение BVj= 1, то он удаляется из СП (количество удаляемых транзактов не может превышать значения операнда С). Если BVj= 0 для всех транзактов списка, то вошедший транзакт пытается переместиться в блок, заданный в операнде F. Если операнд F пропущен, транзакт пытается перейти в следующий по номеру блок.
Если в операнде D задана булева переменная, операнд Е должен быть пустым. Если булева переменная BVj имеет ссылку на какой-либо параметр, то эта ссылка относится к параметрам транзактов из списка, а не к входящему в блок UNLINK транзакту.
Слово «ВАСК». Из указанного списка, начиная с его конца, будет исключено столько транзактов, сколько задано операндом С. Операнд Е в этом случае должен быть пустым.
Операнд Е содержит СЧА, значение которого сравнивается ее значением параметра транзактов СП (номер параметра указан в операнде D). Операнд Е может быть именем, целым, СЧА, СЧА*СЧА.
Операнд F задает номер следующего блока для того транзакта, который входит в блок UNLINK в случаях, когда соответствующий СП пустой или не выполнено заданное отношение, или же указанная в операнде D булева переменная равна нулю для всех транзактов списка (т.е. в случае, когда из СП нельзя ничего удалить). Операнд F может быть именем, положительным целым, СЧА, СЧА*СЧА.