Transfer. 95,,box20

Активний транзакт з ймовірністю 0,95 скеровується до блоку з міткою BOX20 і з ймовірністю 0,05 скеровується за замовчуванням до наступного блоку згідно порядку.

Блок TRANSFER працює в режимі BOTH, якщо в операнді А викорис­товується ключове слово BOTH (Обоє). У цьому режимі кожний транзакт, що ввійшов у блок TRANSFER, перевіряє два шляхи. Спочатку перевіряється можливість увійти в блок В. Якщо транзакт не може ввійти в цей блок, він намагається ввійти в блок С.

Якщо транзакт не може ввійти у блоки, вказані операндами В і С, то він затримується в блоці TRANSFER. Опитування блоків В і С повторю­ється для кожної зміни поточного модельного часу доти, поки транзакт не отримає можливість увійти в який-небудь блок. Якщо не використовується операнд В, то перевіряється можливість увійти в наступний блок.

Розглянемо приклад використання блоку TRANSFER в режимі ВОТН.

TRANSFER ВОТН,SAM1,SAM2

......

SAM1 SEIZE PR52

SAM2 SEIZE PR84

Транзакт блоку TRANSFER намагається ввійти у блок з міткою SAM1. Якщо відповідний пристрій PR52 зайнятий, то транзакт скеровується у блок з міккою SAM2. Якщо пристрій PR84 теж зайнятий, то транзакт залишається у блоці TRANSFER. Зі зміною поточного стану моделювання спроби виходу транзакта, затриманого у блоці TRANSFER, повторюються.

Таким чином, блок TRANSFER у режимі BOTH виконує роль “диспетчера”, тобто розподіляє транзакти між двома ОКП.

Розглянемо роботу блоку TRANSFER у режимі ALL. Тоді в полі операнда А використовується ключове слово ALL. У цьому режимі транзакт, який увійшов у блок TRANSFER, перевіряє можливість увійти в будь-який блок, починаючи із блоку, зазначеного операндом В, і закінчуючи блоком, зазначеним операндом С. Операнд D визначає крок d зміни номера блоку, що перевіряється. Значення кроку дає можливість опитувати певні блоки, розташовані між тими, які задані операндами В і С. Далі транзакт, що ввійшов у блок TRANSFER, намагається ввійти в блок В. Якщо блок В зайнятий, транзакт намагається ввійти в блоки з номерами v + d, v + 2d,..., z, де v – номер блоку В, z – номер блоку С. При цьому z = v + nd, де п – деяке ціле додатне число.

Якщо транзакт не може увійти ні в один з даних блоків, то він залишається у блоці TRANSFER і зі зміною поточного часу моделювання повторює вищеописану процедуру.

Зазвичай в операндах В і С записуються мітки блоків. Тому блоки варто розташовувати таким чином, щоб під час присвоєння різниця між номерами блоків, зазначених в операндах В і С, була кратна кроку, визначеному в операнді D. Наприклад:


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



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