GATE SNF Buf,Mit3

Якщо БКП з назвою Buf не заповнений, тобто є вільні канали, задана в блоці GATE умова виконується й транзакт спрямовується до наступного блоку. Якщо БКП заповнений, то транзакт буде спрямований до блоку з міткою Mit3.

Розглянемо приклад використання блоку GATE. Нехай БКП переводиться в недоступний стан. Обслуговування транзактів, що перебували в БКП до моменту переведення його в недоступний стан, триває, але транзакти, що знову надходять, не потрапляють в список затримування БКП. Відновлення доступності БКП починається після того, як БКП буде порожній (рис. 7.5).

Рис. 7.5. Імітаційна модель з використанням блоку GATE

Блок GENERATE другого сегмента в t = 0 генерує один транзакт (XN 1=2), що входить у блок затримування ADVANCE. В t = 5 перший транзакт (XN 1=1) блоку GENERATE першого сегмента проходить перший і другий блоки GATE і займає два канали із п’яти БКП Nak. Обслуговування цього транзакта закінчиться в t =5 + 12 = 17. В t = 10 другий транзакт (XN 1=3) також проходить обидва блоки GATE першого сегмента і займає наступні два канали БКП Nak. Залишається вільним один канал. Обслугову­вання другого транзакта закінчиться в t = 10 + 12 = 22. В t = 15 третій транзакт (XN 1=4) пройде перший блок GATE першого сегмента і ввійде в другий блок GATE. Оскільки БКП Nak має один вільний канал, умова в другому блоці GATE також виконується і транзакт пройде до блоку ENTER. Але одного вільного каналу недостатньо для оброблення вимоги, потрібно два, тому третій транзакт потрапляє в список затримування БКП Nak.

В t = 17 БКП Nak блоком SUNAVAIL переводиться в недоступний стан. У цей же час завершиться обслуговування першого транзакта, але третій транзакт не займе БКП. Він залишиться в списку затримування. В БКП Nak перебуває тільки другий транзакт (тобто він не порожній). Тоді транзакт, що викликав переведення у недоступний стан, буде затриманий блоком GATE другого сегмента (задана в ньому умова не виконується). В t = 20 четвертий транзакт (XN 1=5) першим блоком GATE першого сегмента внаслідок недоступності БКП Nak направляється до блоку TERMINATE з міткою Vuhid і знищується.

Обслуговування другого транзакта завершиться в t = 22. БКП стане порожнім, умова в блоці GATE другого сегмента виконається. Транзакт, що згенерував недоступність, увійде в блок затримування ADVANCE. B t = 25 п'ятий транзакт (XN 1=6) першим блоком GATE першого сегмента внаслідок недоступності БКП Nak направляється до блоку TERMINATE з міткою Vuhid і знищується. В t = 22 + 5 = 27 блок SAVAIL переведе БКП в доступний стан. Третій транзакт зі списку затримки БКП займе два канали БКП. Обслуговування третього транзакта (XN 1=4) закінчиться в t = 27 + 12 = 39 одиниць часу.

Для перевірки стану БКП використовується також і блок TEST. Формат блоку та умовні оператори ті ж що й для перевірки стану ОКП.

У булевій змінній використовуються наступні логічні оператори, пов'язані із БКП:

· SF дорівнює 1, якщо БКП заповнений повністю, інакше – 0;

· SE дорівнює 1, якщо БКП порожній, інакше – 0;

· SV дорівнює 1, якщо БКП доступний, інакше – 0,

а також СЧА БКП:

· S – число зайнятих каналів БКП;

· SA – середнє значення зайнятих каналів БКП;

· SC – лічильник використання БКП;

· SR – коефіцієнт використання БКП;

· SM – максимальне число зайнятих каналів БКП;

· ST – середній час використання одного каналу БКП.

Отже, SE, SF і SV можна використовувати як у блоці GATE, так і в булевих змінних.


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



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