|
Блок FUNAVAIL имеет следующий формат:
FUNAVAIL <A>,[<B>],[<C>],[<D>],[<E>],[<F>],[<G>],[<H>]
Блок FUNAVAIL делает недоступным устройство до тех пор, пока не вступит в действие блок FAVAIL. Этот блок игнорируется, если устройство уже недоступно.
В поле А задается номер или имя устройства, которое должно стать недоступным. Операнд может быть именем, положительным целым, СЧА или СЧА*<параметр>. Если задано только поле А, с сообщениями происходит следующее:
- сообщение, использующее устройство, временно прерывается до окончания периода недоступности;
- сообщениям, которые были прерваны при использовании этого устройства, больше не разрешается занимать это устройство;
- задержанным сообщениям не разрешается занять устройство или сгенерировать на нем прерывание до окончания периода недоступности;
- сообщения, пытающиеся занять устройство или сгенерировать на нем прерывание, помещаются в список задержки.
Если в момент, когда устройство стало недоступным, оно было не занято и не прервано, поля B-H игнорируются. Поля B,C и D относятся к сообщению, которое занимало устройство или генерировало на нем прерывание в момент, когда оно стало недоступным.
В поле G задаются режимы работы с сообщениями, использующими устройство в момент, когда оно становится недоступным. Допустимые режимы работы:
- режим СО (continue - режим продолжения) позволяет сообщению использовать устройство в период недоступности. Если не задан альтернативный выход (поле С), предпочтительней использование режима СО;
- режим RE (remove - режим удаления) означает, что занимавшее устройство сообщение больше не может претендовать на это устройство. Удаленное сообщение попытается войти в альтернативный блок, заданный в поле С;
- если режим не задан (режим по умолчанию), то это означает, что сообщение, использующее устройство, прерывается до тех пор, пока устройство вновь не станет доступным. В этот момент сообщение может попытаться занять устройство.
В поле С задается номер блока, к которому направляется сообщение, использующее устройство в момент, когда оно становится недоступным. Если в поле В задан режим RE, то необходимо и задание поля С, поскольку сообщение теряет управление устройством и должно быть направлено к другому блоку. Если в поле В задан режим СО, то задание поля С необязательно. Если поле С задано, то сообщение, использующее устройство в момент, когда оно становится недоступным, пытается войти в альтернативный блок. Важно отметить, что это сообщение сохраняет право на использование устройства. Поэтому должен быть предусмотрен альтернативный путь для возможного освобождения устройства.
Операнд С может представлять собой имя, положительное целое число, СЧА или СЧА*<параметр>.
В поле D задается номер параметра управляющего сообщения. Операнд D может представлять собой имя, положительное целое число, СЧА или СЧА*<параметр>.
Когда устройство становится недоступным, вычисляется время, которое сообщение должно провести в списке будущих событий, и значение это записывается в параметр, заданный в поле D.
Аргументы полей E и F относятся к тем сообщениям, которые в момент, когда устройство стало недоступным, были прерваны.
Поле Е определяет, что нужно делать с ранее прерванными сообщениями, когда ожидаемое устройство становится недоступным. Допустимые режимы работы аналогичны режимам, задаваемым в поле G.
Поле F задает номер альтернативного блока, к которому направляется прерванное сообщение. Операнд может быть именем, положительным целым, СЧА или СЧА*<параметр>.
Поле F необходимо, если в поле Е указан режим RE.
Поля G и H относятся ко всем сообщениям, которые находятся в списках задержки в ожидании момента, когда устройство станет недоступным. Поля G и H не влияют на сообщения, находящиеся в блоках GATE NI или GATE NU.
Поле G определяет, как нужно поступать с сообщениями, пытающимися занять устройство или сгенерировать на нём прерывание в момент, когда это устройство становится недоступным. Допускаются следующие режимы:
- режим СО (продолжение) предполагает, что всем этим сообщениям будет разрешено использовать устройство во время периода его недоступности. Сообщения занимают устройство в порядке их приоритета;
- режим RE (удаление) указывает на то, что задержанные сообщения больше не должны претендовать на устройство. Эти сообщения не должны пытаться войти в блоки RETURN или RELEASE. Они удалятся из списков задержки, с тем, чтобы в дальнейшем попытаться войти в альтернативный блок, заданный полем Н. Действие аргументов полей G и Н не относятся к сообщениям, находящимся в блоках GATE NI и GATE NU;
- если режим не задан, то это означает, что задержанные сообщения покидают список задержки или список ожидания устройства и не могут претендовать на устройство во время периода недоступности.
Операнд Н не действует, когда операнд G не задан.
Поле Н задает номер блока, к которому направляются задержанные сообщения. Поле Н необходимо, если в поле G записано RE. Если используется поле Н, то в поле G должно быть записано RE. Операнд может представлять собой имя, положительное целое число, СЧА или СЧА*<параметр>.
Примечание. Режимы полей B-H относятся только к тем сообщениям, которые использовали устройство или генерировали на нем прерывание в момент, когда устройство стало недоступным. Другие сообщения, пытающиеся позднее занять устройство или прервать его в период недоступности, помещаются в список задержки; эти сообщения не подлежат воздействию режимов, заданных в полях В-Н.
Помещение блоков PRIORITY 0, BUFFER перед блоком FUNAVAIL позволяет обрабатывать сообщения списка текущих событий таким образом, что последним обрабатывается сообщение, вызывающее недоступность устройства. Это означает, что все сообщения, которым разрешено попытаться занять или прервать устройство, могут сделать это до того, как оно станет недоступным.
Дата добавления: 2015-11-16; просмотров: 56 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Блоки описания устройств | | | Блоки описания многоканальных устройств |