Программирование в GPSS - Операции блокирования и разблокирования устройствТранзакты имеют возможность блокировать устройства, т.е. делать их недоступными, не занимая этих устройств. При этом могут задаваться разные режимы управления теми транзактами, которые будут пытаться занять или захватить блокированное устройство. Блокирование устройств выполняется с помощью блока FUNAVAIL (устройство недоступно):
FUNAVAIL A [ , B, C, D, E, F, G, H ]
у которого поле A обязательно, а поля B – H могут отсутствовать. В полях задаются: A - устройство или диапазон устройств; B – это обозначение RE или CO. Если задано RE, то транзакт, который в момент блокирования занимает (возможно) устройство, с обслуживания снимается и в дальнейшем не претендует на его занятие. В этом случае в поле C задается метка, на которую пересылается снятый с обслуживания транзакт. Если в поле B записано CO, то обслуживаемый транзакт продолжает обслуживаться до конца; C – метка или номер блока; D – номер параметра управляющего транзакта, E – определяет поведение ранее прерванных транзактов на период недоступного состояния устройства. Здесь может быть записано RE или CO: при RE они исключаются из борьбы за устройство и передаются по метке поля F, а при CO продолжают претендовать на дообслуживание после восстановления доступности устройства и его освобождении от более приоритетных транзактов; F – номер или метка блока; G – определяет поведение транзактов, которые будут обращаться к устройству в период его недоступности. Запись CO означает, что они будут ожидать устройство в обычном порядке, запись RE – что они исключаются из борьбы и передаются по метке поля H; H – метка или номер блока.
Разблокирование устройств выполняется блоком FAVAIL (устройство доступно):
FAVAIL A, где A – номер или диапазон номеров устройств (например, FUNAVAIL 4-8 ).
|
