Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Логические ключи. Блоки управления потоками транзактов: logic, gate lr,gate ls и gate. ⇐ ПредыдущаяСтр 9 из 9
Некоторые события в системе могут заблокировать или изменить движение транзактов. Например, кассир кинотеатра, идя на обед, ставит табличку «В другое окно», и все следующие клиенты на протяжении обеда обращаются в другую кассу. Для моделирования этих ситуаций введены логические ключи. Транзакт может устанавливать эти ключи в положение «Включено» или «Выключено». Через некоторое время состояние ключа может быть использовано другими транзактами для выбора одного из двух возможных путей движения или ожидания момента изменения состояния ключа. Состояние ключа может быть изменено любым транзактом.
Логические ключи (блок LOGIC). Логические ключи используются для моделирования объектов, имеющих всего два положения: «Включен» ( set или 1) и «Выключен» (reset или 0). Блок LOGIC используется для включения, выключения или инвертирования положения ключа. Положение ключа можно проверить любым транзактом в любой части модели. Блок LOGIC имеет такой формат: LOGIC Х А Операнд А – номер логического ключа; он может быть именем, положительным целым, СЧА или CЧA*CЧA. Когда транзакт входит в блок LOGIC, положение логического ключа, номер которого задан в операнде А, изменяется в зависимости от значения вспомогательного оператора Х следующим образом: S – логический ключ устанавливается в положение «Включен»; R – логический ключ устанавливается в положение «Выключен»; I – логический ключ инвертируется, то есть положение его изменяется на противоположное. Логический ключ имеет СЧА LS <номер ключа> или LS $< HMH ключа>, который возвращает значение 1, если ключ в положении «Включен», и 0 – если в положении «Выключен». Для изменения направления движения сообщений в зависимости от положения логических ключей используются блоки GATE LR и GATE LS Блоки GATE LR, GATE LS проверяют положение логического ключа. В операнде В задается номер блока, к которому переходит транзакт, если вспомогательный оператор Х имеет значение «ложь». Если значение логического оператора – «истина», транзакт переходит к следующему по порядку блоку. Если операнд В пустой, блок GATE LR (GATE LS) работает в режиме условного вхождения, если заполнен – в режиме безусловного вхождения. В режиме условного вхождения транзакты могут войти в блок GATE только в том случае, если логический оператор (LRj или LSj) имеет значение «истина». Если значение логического оператора – «ложь», транзакт помещается в список задержки и не обрабатывается интерпретатором до тех пор, пока значение не станет истинным. Единственным исключением являются транзакты, находящиеся в блоке TRANSFER BOTH (или ALL). Когда потом какой-нибудь другой транзакт проходит блок LOGIC, изменяющий состояние соответствующего ключа, и присваивает указанному в блоке GATE логическому оператору значение «истина», все транзакты, находящиеся в списке задержки, активизируются. После этого интерпретатор, просматривая CTC, получает возможность переместить один или несколько транзактов (включая и те, что находятся в блоке TRANSFER BOTH или ALL) в блок GATE LR (GATE LS), работающий в режиме условного вхождения.
Блок GATE. Блок GATE управляет потоком транзактов c помощью логических операторов. Блок GATE, как и блок TEST, не изменяет никаких атрибутов транзактов. Он определяет номер следующего блока, к которому должен перейти транзакт из блока GATE. Блок GATE может задержать транзакт на входе, если не задан альтернативный выход. Блок GATE имеет такой формат: GATEX A,| B | Операнд А содержит имя или номер объекта, для которого производится проверка. Операнд А может быть именем, положительным целым числом, СЧА или CЧA*CЧA. Операнд В содержит номер следующего блока для входящего транзакта, если логический оператор имеет значение «ложь». Операнд В может быть именем, положительным целым числом, СЧА или CЧA*CЧA. Если операнд В определен, то он должен содержать номер блока, допустимый для текущей модели. В дополнительном операторе Х задается один из следующих логических операторов: 1. Логические операторы, связанные c устройствами: NU – устройство j, заданное в операнде А, свободно; U – устройство j, заданное в операнде А, занято (в результате выполнения транзактом блока SEIZE или PREEMPT); N I – устройство j, заданное в операнде А, не прервано; I – устройство j, заданное в операнде А, обслуживает прерывания; FV – устройство j, заданное в операнде А, доступно; FNV – устройство j, заданное в операнде А, не доступно.
2. Логические операторы, связанные c МКУ: SE – МКУ j, заданное в операнде А, пустое (S[j]=0); SNE – МКУ j, заданное в операнде А, не пустое (S[j]<>0); SF – МКУ j, заданное в операнде А, заполнено (R[t]=0); SNF – МКУ j, заданное в операнде А, не заполнено (R[j]<>0); SV – МКУ j, заданное в операнде А, доступно; SNV – МКУ j, заданное в операнде А, не доступно. 3. Логические операторы, связанные c транзактами: M – в блоке j, заданном в операнде А блока GATE, находится в состоянии синхронизации транзакт, принадлежащий тому же семейству, что и транзакт, который находится в блоке GATE или пытается войти в этот блок; NM – в блоке j, заданном в операнде А блока GATE, в состоянии синхронизации нет ни одного транзакта, принадлежащего тому же семейству, что и транзакт, который пытается войти в блок GATE. 4. Логические операторы, связанные c логическими ключами: LS – логический ключ j, заданный в операнде А, включен; LR – логический ключ j, заданный в операнде А, выключен. Режимы условного и безусловного входов в блок GATE. Блок GATE, как и блок TEST, может работать в режимах безусловного и условного вхождения. В режиме безусловного вхождения транзакт никогда не задерживается на входе блока GATE. Если заданный логический оператор имеет значение «истина», транзакт пытается перейти к следующему no номеру блоку. Если логический оператор имеет значение «ложь», го транзакты будут пытаться перейти к блоку, номер которого задан в операнде В блока GATE. Выбор следующего блока производится один раз в момент вхождения транзакта в блок GATE. В режиме условного вхождения, если операнд В блока GATE пустой (альтернативный выход не задан), транзакты не смогут войти в блок GATE до тех пор, пока указанный в этом блоке логический оператор не будет иметь значение «истина». Интерпретатор не проверяет значение логических операторов, за исключением операторов M и NM. В режиме условного вхождения задержанные транзакты находятся в списках задержки и, таким образом, исключаются из числа транзактов, обрабатываемых интерпретатором до тех пор, пока соответствующий логический оператор не примет значение «истина». Пример 4.60 В данном случае транзакт помещается в список задержки, если МКУ LINE 1 не доступно в тот момент, когда транзакт пытается войти в блок GATE. Когда МКУ становится доступным, все транзакты выводятся из списка и делают попытку войти в МКУ.
|
||||||
Последнее изменение этой страницы: 2021-01-08; просмотров: 167; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.126.11 (0.01 с.) |