Компьютерное моделирование. Тарасов В.Н - 67 стр.

UptoLike

67
Рисунок 7.10- Блок MARK
Для моделирования захвата (прерывания) одноканального устройства
вместо блоков
SEIZE и RELEASE используются соответственно блоки
PREEMPT (захватить) и RETURN (вернуть). Блок PREEMPT имеет сле-
дующий формат:
PREEMPT A,B,C,D,E.
В поле A указывается имя или номер устройства, подлежащего захва-
ту. В поле B кодируется условие захвата. Если это поле пусто, то захват воз-
никает, если обслуживаемый транзакт сам не является захватчиком. Если же
в поле B записан операнд PR, то захват возникает, если приоритет транзакта-
захватчика выше, чем приоритет обслуживаемого транзакта.
Поля C, D и E определяют поведение транзактов, обслуживание кото-
рых было прервано. Поле C указывает имя блока, в который будет направлен
прерванный транзакт. В поле D может быть указан номер или имя параметра
прерванного транзакта, в который записывается время, оставшееся этому
транзакту до завершения обслуживания на устройстве. При отсутствии опе-
ранда в поле E прерванный транзакт сохраняет право на автоматическое
восстановление на устройстве по окончании захвата. Если же в поле E указан
операнд RE, то транзакт теряет такое право. Блоки
PREEMPT и RETURN по-
казаны на рисунке 7.11.
Рисунок 7.11- Блоки PREEMPT и RETURN
Блок
RETURN имеет единственный операнд A, содержащий имя или
номер устройства, подлежащего освобождению от захвата. Блоки
PREEMPT
и
RETURN могут быть использованы для моделирования СМО с абсолютны-
ми приоритетами. В простейших случаях, при одном уровне захвата, в блоке
PREEMPT используется единственный операнд A. При этом прерванный
транзакт переводится симулятором из списка будущих событий в так называе-
мый список прерываний устройства, а по окончании захвата устройства воз-
MARK
A,B,C,D,E
RETURN
A
                              MARK




                        Рисунок 7.10- Блок MARK
      Для моделирования захвата (прерывания) одноканального устройства
вместо блоков SEIZE и RELEASE используются соответственно блоки
PREEMPT (захватить) и RETURN (вернуть). Блок PREEMPT имеет сле-
дующий формат:
             PREEMPT A,B,C,D,E.
      В поле A указывается имя или номер устройства, подлежащего захва-
ту. В поле B кодируется условие захвата. Если это поле пусто, то захват воз-
никает, если обслуживаемый транзакт сам не является захватчиком. Если же
в поле B записан операнд PR, то захват возникает, если приоритет транзакта-
захватчика выше, чем приоритет обслуживаемого транзакта.
      Поля C, D и E определяют поведение транзактов, обслуживание кото-
рых было прервано. Поле C указывает имя блока, в который будет направлен
прерванный транзакт. В поле D может быть указан номер или имя параметра
прерванного транзакта, в который записывается время, оставшееся этому
транзакту до завершения обслуживания на устройстве. При отсутствии опе-
ранда в поле E прерванный транзакт сохраняет право на автоматическое
восстановление на устройстве по окончании захвата. Если же в поле E указан
операнд RE, то транзакт теряет такое право. Блоки PREEMPT и RETURN по-
казаны на рисунке 7.11.


                                                               A
                      A,B,C,D,E                 RETURN




                    Рисунок 7.11- Блоки PREEMPT и RETURN

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


                                                                         67