Назначение. Блок
позволяет активному транзакту занять прибор или встать в очередь к прибору.
Синтаксис.
SEIZE
A
Назначение
операндов.
Операнд |
Назначение |
Значение |
Значение по умолчанию |
A |
Имя
занимаемого прибора |
Имя,
число,
СЧА |
Обязательный операнд |
Особенности выполнения.
1. При попытке
транзакта войти в блок
SEIZE
всегда проверяется, свободен ли прибор и находится ли в состоянии «готов к
использованию».
2.
Если прибор свободен и готов, он занимается. Транзакт, занявший прибор, пытается
перейти к следующему по номеру блоку. Прибор остается занятым до тех пор, пока
занимающий его транзакт не войдет в соответствующий блок
RELEASE.
Прежде чем освободить прибор, транзакт может пройти через произвольное число
блоков.
3.
Блок
SEIZE
отказывает во входе транзакту, если прибор занят или находится в состоянии «не
готов к использованию». При этом устанавливается его индикатор задержки и
транзакт помещается в список задержки прибора в конец своего приоритетного
класса
Пример
использования.
SEIZE
Server
Активный транзакт
пытается занять прибор с именем
Server.
Назначение. Блок
позволяет транзакту, в зависимости от
условий, заданных в операндах блока, занять прибор.
Синтаксис.
PREEMPT A,[B],[C],[D],[E]
Назначение операндов.
Операнд |
Назначение |
Значение |
Значение по умолчанию |
A |
имя занимаемого прибора |
Имя,
число,
СЧА |
Обязательный операнд |
B |
Условия занятия прибора |
PR |
Режим
прерывания |
C |
Блок,
куда должен перейти прерванный транзакт |
Имя,
число,
СЧА |
Нет |
D |
Параметр прерванного транзакта, в который записывается оставшееся время,
если транзакт удаляется из списка будущих событий |
Имя,
число,
СЧА |
Нет |
E |
Режим
удаления |
RE |
Нет |
Особенности выполнения.
1.
Если прибор находится в состоянии «не готов к использованию», то транзакт
помещаются в список задержки прибора в конец своего приоритетного класса.
2.
Операнд В задает приоритетный режим (PR) или режим прерывания, если
операнд опущен.
3.
При работе в приоритетном режиме транзакт, занимающий уже прибор, может
быть прерван только транзактом, приоритет которого выше приоритета данного
транзакта. Если приоритет входящего транзакта ниже, то он помещается в список
задержки в конец своего приоритетного класса.
4.
В режиме прерывания, если прибор уже используется, поступивший транзакт
помещается в список отложенных прерываний. Транзактам из списка отложенных
прерываний право занять прибор предоставляется раньше, чем транзактам из списков
прерываний или задержки.
5.
Прерванный транзакт теряет управление прибором , но может претендовать на
дообслуживание, когда прервавший его транзакт входит в соответствующий блок
RETURN(если только не задан операнд Е).
6.
Прерванные транзакты помещаются в список прерываний в порядке приоритета.
7.
Операнд С задает блок, куда должен
попытаться перейти прерванный транзакт в этот же момент модельного времени.
8.
Если прерываемый транзакт находится в списке будущих событий(вошел в
блоке ADVANCE), то для него выполняются следующие действия:
·
вычисляется остаток времени, в
течение которого транзакт должен был находиться в блоке ADVANCE, равный разнице
планируемого времени выхода транзакта из блока ADVANCE и текущего значения
абсолютного условного времени; Операнд D задает номер параметра прерванного
транзакта, куда записывается вычисленный остаток времени. Если такой параметр не
существует, то он создается.
·
транзакт удаляется из списка
будущих событий;
·
транзакт рассматривается, как
находящийся в состоянии прерывания и помещается в список прерывания;
·
счетчик прерываний увеличивается на
единицу.
9.
Прерываемый транзакт может находиться в списке текущих событий (например,
когда блок ADVANCE имеет нулевую задержку). В этом случае удаление транзакта из
списка текущих событий и перевод его в состояние прерывания производится не
сразу. Сначала устанавливается индикатор состояния прерывания. Транзакт,
занимающий прибор, будет обрабатываться интерпретатором как обычно и перейдет в
состояние прерывания только тогда, когда оно войдет в блок ADVANCE с ненулевой
задержкой.
10.
Поле Е задает один из следующих режимов:
-режим удаления(RE). Задание этого режима означает, что прерванный
транзакт более не претендует на пользование прибором. Прерванный транзакт
пытается войти в блок, заданный полем С (если в поле Е стоит RE, то должно быть
указано и поле С). При использовании RE прерванный транзакт не должен входить в
блоки RELEASE и RETURN, связанные с прерванным транзактом;
-если режим RE не задан, т.е. поле Е - пусто, то прерванный транзакт по
возвращении в список текущих событий будет вновь пытаться занять прибор.
11.
Прерванный транзакт борется за прибор, даже если он перемещен операндом С
(если RE не используется в операнде Е). Если прерванный транзакт все еще борется
за прибор, то попытка транзакта войти в блок TERMINATE приводит к ошибке. Такой
транзакт перед входом в блок TERMINATE должен войти в блок RELEASE или блок
RETURN.
12.
Транзакт может быть прерван на любом количестве приборов и продолжать
циркулировать в модели при выполнении следующих двух условий:
-транзакт вошел в блок ADVANCE с положительным временем;
-транзакту не разрешается покинуть блоки
ASSEMBLE, GATHER или MATCH до тех пор, пока в них не войдет заданное число
транзактов из того же семейства.
13.
Прибор может быть захвачен любое количество раз, но не два раза подряд
одним транзактом.
14.
При использовании операндов C, D, E следует учитывать следующее:
-при задании полей D и (или) E, поле С также должно быть задано;
-если приоритетный режим не задан (PR в
операнде B), то операнды C, D и (или) E игнорируются.
Примеры
использования.
PREEMPT UNIT
В режиме прерывания, если прибор
UNIT
уже занят, поступивший транзакт помещается в список отложенных прерываний
PREEMPT UNIT,PR,NODE2,P_Time
В приоритетном режиме, если приоритет
поступившего транзакта выше приоритета транзакта, .занимающего уже прибор,
возникает прерывание. Если приоритет входящего транзакта ниже, то он помещается
в список задержки в конец своего приоритетного класса. Прерванный транзакт
пытается перейти в блок с меткой
NODE2,
а остаток времени до окончания обслуживания будет помещен в параметр транзакта с
именем P_Time.
Назначение. Блок позволяет активному транзакту
освободить занятый прибор или исключить транзакт из списка прерываний прибора.
Синтаксис.
RELEASE A
Назначение
операндов.
Операнд |
Назначение |
Значение |
Значение по умолчанию |
A |
Имя
освобождаемого прибора |
Имя,
число,
СЧА |
Обязательный операнд |
Особенности выполнения.
1.
Если прибор занят активным транзактом, он освобождает
прибор и пытается войти в следующий по порядку блок.
2.
Если активный транзакт был ранее вытеснен из прибора,
он исключается из списка прерываний прибора и пытается войти в следующий по
порядку блок.
3.
Если он не занимает прибор и не вытеснен из него,
происходит останов по ошибке.
4.
Если активный транзакт освобождает прибор, следующий
транзакт выбирается из списка отложенных прерываний, списка прерываний или
списка задержки. Если в списках транзакты отсутствуют, прибор становится не
занятым.
5.
Активизируются транзакты из списка задержки
блоков GATE NU.
6. После того,
как новый занимающий транзакт выбран из списка задержки или списка отложенных
прерываний, он входит в блок SEIZE или
PREEMPT, и помещается в список текущих событий в конец
своего приоритетного класса.
Пример
использования.
RELEASE WorkStation
Освобождается
прибор с именем
WorkStation.
Следующий транзакт выбирается из списка отложенных прерываний, списка прерываний
или списка задержки. Если в списках транзакты отсутствуют, прибор становится не
занятым. Новый занимающий транзакт входит в блок
SEIZE
или
PREEMPT, и
помещается в список текущих событий в конец своего приоритетного класса.
Назначение. Блок
позволяет активному транзакту освободить занятый
прибор или исключить транзакт из списка прерываний прибора.
Синтаксис.
RETURN A
Назначение
операндов.
Операнд |
Назначение |
Значение |
Значение по умолчанию |
A |
Имя
освобождаемого прибора |
Имя,
число,
СЧА |
Обязательный операнд |
Особенности
выполнения(см. блок
RELEASE).
Пример
использования.
RETURN WorkStation
Освобождается
прибор с именем
WorkStation
Назначение. Блок
обеспечивает перевод прибора в состояние
«готов к использованию»
.
Синтаксис.
FAVAIL A
Назначение операндов.
Операнд |
Назначение |
Значение |
Значение по умолчанию |
A |
Имя
переводимого прибора |
Имя,
число,
СЧА |
Обязательный операнд |
Особенности выполнения.
1.
Блок переводит
прибор в состояние «готов к использованию»
2.
Если прибор был до этого в состоянии «не готов к использованию», блок пытается
передать его ожидающему транзакту
Пример
использования.
FAVAIL Server
Прибор с именем
Server
переводится в состояние «готов к
использованию»
Блок
FUNAVAIL
Назначение. Блок
обеспечивает перевод прибора в состояние «не
готов к использованию».
Синтаксис.
FUNAVAIL A,[B],[C],[D],[E],[F],[G],[H]
Назначение операндов.
Операнд |
Назначение |
Значение |
Значение по умолчанию |
A |
Имя
переводимого прибора |
Имя,
число,
СЧА |
Обязательный операнд |
B |
Режим для транзакта,
занимающего в данный момент прибор |
RE,
CO |
|
C |
Блок,
куда должен перейти занимающий прибор транзакт |
Имя,
число,
СЧА |
Нет |
Комментарии
|
Нет комментариев.
|
|
Добавить комментарий
|
|
|
Рейтинги
|
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
|
|
|
Гость
|
|
|
|
Загрузки
|
|
Новые загрузки
Случайные загрузки
Топ загрузок
|
|
|
|