Математическое моделирование

         

Блоки PREETMP и RETURN. Захват приборов обслуживания


С помощью блоков PREETMP и RETURN удобно описывается обслуживание с прерыванием, то есть такие ситуации, когда обслуживающий прибор временно прекращает обработку поступившей на него заявки и переходит на обслуживание «срочной» заявки. В это время замещенный (прерванный) транзакт либо может ждать, пока прибор не освободится вновь, либо может пойти куда-либо с намерением или без намерения вернуться впоследствии к прибору, с которого его сняли.

Транзакт может захватить прибор, только войдя в блок PREEMPT. Операнды этого блока и их значение показаны в табл. 3.2.

Таблица 3.2

Операнды оператора PREEMPT



Операнд

Значение

Значение по умолчанию

А

Имя прибора, подлежащего захвату

Ошибка

B

Необязательный операнд.Используется для указания условий,при которых разрешен захват. Существуют две возможности:

1.   Операнд В используется. В нем должна стоять двухбуквенная последовательность PR. Тогда  захват разрешен только в том случае, когда  возможный захватчик имеет более высокий уровень приоритета.

2.   Операнд В не используется. Тогда захват происходит, когда обслуживаемый транзакт сам не является  захватчиком

Транзакт, захвативший прибор, может освободить его (то есть возвратить прибор ранее прерванному транзакту) только при дальнейшем вхождении в блок RETURN. Операнд А этого блока указывает имя прибора, подлежащего освобождению.

Пример использования операторов PREEMPT и RETURN в программной конструкции:

simulate

generate 120,30,,,1

arrive newsq   ! Встать в очередь

preempt sal    ! Отнять прибор

depart newsq

advance 45,30

return sal     ! Возвратить прибор

terminate 1

start 1

end



Содержание раздела