Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Блоки preempt и return





GPSS позволяет достаточно просто моделировать процедуру захвата прибора в то время, когда прибор занят обслуживанием другого транзакта. Такая возможность достигается при входе транзакта в блок PREEMPT. Возвращение захваченного прибора производится с помощью блока RETURN. Операнды блоков PREEMPT и RETURN описаны в табл. 2 и 3 соответственно.

Таблица 2. Операнды блока PREEMPT

Операнд Значение Значение по умолчанию
А Имя прибора (числовое или символическое), подлежащего захвату Ошибка
В Необязательный операнд; указывает на условие, при котором захват разрешен: Произойдет захват
Операнд В Условия захвата
Не используется Произойдет захват
  PR Захват произойдет, если приоритет захватчика выше приоритета обслуживаемого транзакта
С Необязательный операнд; имя блока, в который будет помещен прерванный транзакт Транзакт будет выведен в ЦТС и помещен в цепь прерывания
D Необязательный операнд; задает номер параметра прерванного транзакта, в который записывается значение времени, оставшееся транзакту до окончания его обслуживания Время не записывается
Е Необязательный операнд; указывает на возможность автоматического восстановления прерванного транзакта на приборе Транзакт сохраняет право восстановления на приборе
Операнд Е Значение
RE Транзакт теряет право восстановления на приборе
Не используется Транзакт сохраняяет право восстановления на приборе

 

 

Таблица 3. Операнды блока RETURN

операнд значение Значение по умолчанию
А Имя прибора, подлежащего возвращению ошибка

 

Операнд А блока PREEMPT задает имя прибора, подлежащего захвату. Это единственный обязательный операнд. Если все остальные операнды не используются, то захват прибора произойдет, если обслуживаемый транзакт сам не является захватчиком данного прибора.

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

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

Операнд D используется в том случае, когда в один из параметров прерванного транзакта необходимо записать время, оставшееся до окончания его обслуживания. Номер параметра задается значением операнда D.

Операнд Е используется лишь в том случае, если задано значение операнда С. он указывает на возможность возвращения прерванного транзакта на дообслуживание в момент освобождения прибора. Если в поле операнда Е указано двухсимвольное выражение RE, то прерванный транзакт не будет возвращен на дообслуживание. Если же операнд Е не используется, то сразу после входа транзакта-захватчика в соответствующий блок RETURN прерванный транзакт будет автоматически возвращен на дообслуживание.

Ниже приведены примеры использования блоков PREEMPT и RETURN.

Пример 11.

PREEMPT P2

RETURN P2

 

Пример 12.

PREEMPT DEL,PR,V8,2,RE

RETURN DEL

В примере 11 захват прибора с номером, равным значению второго параметра транзакта, происходит в том случае, если обслуживаемый в данный момент транзакт сам не является захватчиком прибора. Затем при входе транзакта-захватчика в блок RETURN прибор возвращается его предыдущему владельцу.

В примере 12 захват прибора DEL происходит в том случае, если приоритет транзакта-захватчика выше, чем приоритет обслуживаемого транзакта. При этом прерванный транзакт переходит в блок с номером, равным значению восьмой переменной и после освобождения прибора, наступающего при входе транзакта в блок RETURN, дообслуживаться не будет.

Время, оставшееся до окончания обслуживания прерванного транзакта, будет записано во второй параметр.

Date: 2015-07-24; view: 1506; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию