GATE I Print,tan

У першому прикладі блок GATE пропустить транзакт, коли ОКП Stn буде перерваний. У другому прикладі транзакт пройде до наступного блоку, коли не перерваний ОКП, номер якого визначається як результат обчислення виразу в дужках (V$Qaps–5) з наступним його заокругленням до цілого числа. У третьому прикладі у випадку переривання ОКП Print транзакт буде спрямований до блоку з міткою Tan.

Наведемо приклад використання блоку GATE для перевірки стану ОКП. Блок PREEMPT функціонує в пріоритетному режимі, а також використовуються операнди А, С і D. (рис. 5.9)

Рис. 5.9. Використання блоку GATE І

Блок GENERATE генерує п'ять транзактів і перестає бути активним. Кожний наступний транзакт має вищий пріоритет, ніж попередній: 1, 2, 3, 4 і 5 відповідно. Однак жоден з п'яти транзактів не пропущений блоком GATE до блоку PREEMPT (рис.5.10). Відбулося це тому, що ОКП Reml вільний й умова, задана в блоці GATE, не виконалася.

Рис. 5.10. Результати моделювання з використанням блоку GATE І

Якщо у блоці GATE умовний оператор I приймає значення , то кожний наступний транзакт перерве обслуговування попереднього. Перші чотири транзакта будуть спрямовані до блоку TERMINATE. Лише один п'ятий транзакт буде обслужений до кінця без переривання. Це відбувається тому, що пріоритет наступного транзакта вищий, ніж пріоритет попереднього транзакта. Умова, зазначена в блоці GATE, виконується: адже переривання на блоці PREEMPT згенерував транзакт із меншим пріоритетом (рис. 5.11).

Рис. 5.11. Результати моделювання з використанням блоку GATE


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: