Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделювання Систем_метод до л_р 2008.doc
Скачиваний:
9
Добавлен:
20.08.2019
Размер:
784.38 Кб
Скачать

3.2.2 Блоки gpss для синхронізації руху транзактів

Блок ASSEMBLE використовується для об'єднання заданої кількості транзактів, які належать до одного ансамблю. Кількість транзактів, які будуть об’єднані в один вказується в полі А. Транзакти будуть знаходитися в блоці ASSEMBLE доти, поки там не збереться задана кількість транзактів цього ансамблю. У результаті з блоку виходить лише один (перший з послідовності транзактів одного ансамблю) транзакт, а решта транзактів того ж ансамблю видаляються з моделі. В одному блоці ASSEMBLE можуть накопичуватися транзакти різних ансамблів. Транзакти одного ансамблю можуть також накопичуватися в різних блоках ASSEMBLE. Якщо кількість транзактів ансамблю для об’єднання задається за допомогою непрямої адресації, то береться значення параметру того транзакту ансамблю, який надійшов до блоку ASSEMBLE першим. Розглянемо приклади використання блоку ASSEMBLE:

ASSEMBLE 5

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

ASSEMBLE P1

Функція блоку GATHER аналогічна діям блоку ASSEMBLE. Відмінність полягає тільки в тому, що після зібрання в блоці GATHER необхідної кількості транзактів, вони всі передаються до наступного блоку. Блок GATHER дозволяє синхронізувати рух транзактів одного ансамблю за одним маршрутом. Нижче приведений приклад використання блоку GATHER, де після надходження трьох транзактів з одного ансамблю, вони всі одночасно переходять до наступного блоку:

GATHER 3

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

Одна й та ж сама пара блоків MATCH може синхронізувати одночасно будь-яку кількість пар транзактів різних ансамблів. Транзакти одного й того ж ансамблю можуть синхронізуватися в будь-якій кількості пар блоків MATCH. Блок MATCH може бути також сполучений сам собі. При цьому його дія буде аналогічною дії блоку GATHER з параметром 2 у полі А. Розглянемо приклади використання блоку MATCH. У першому випадку транзакт в блоці з міткою ААА буде очікувати приходу іншого транзакта того ж ансамблю в блок MATCH з міткою BBB:

AAA MATCH BBB

…....

BBB MATCH AAA

........

В другому прикладі транзакт буде очікувати приходу іншого транзакта того ж ансамблю в блок MATCH ССС.

CCC MATCH CCC

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]