Автор работы: Пользователь скрыл имя, 14 Января 2011 в 02:07, лабораторная работа
Мета роботи – навчитись використовувати складні блоки знищення та створення транзактів.
До групи блоків створення та знищення транзактів відносяться блоки GENERATE, TERMINATE, SPLIT та ASSEMBLE.
Лабораторна
робота № 3
Блоки
знищення та створення
транзактів
Мета
роботи – навчитись використовувати
складні блоки знищення та створення транзактів.
3.1 Теоретичні відомості
До
групи блоків створення та знищення
транзактів відносяться блоки
GENERATE, TERMINATE, SPLIT
та ASSEMBLE.
<№>
GENERATE <A>,<В>,<C>,<D>
У блоці GENERATE використовуються поля <A>, <В>, <C>, <D>, серед яких поля <С>, <D> – нові. Поле <С> призначає часову затримку початку моделювання. Якщо воно порожнє, то це означає, що затримка нулева. В полі <D> вказується число транзактів, що генеруються.
Блок SPLIT, на відміну від блоку GENERATE, самостійно не створює транзактів. Він тільки створює задану кількість копій від вхідного транзакту. При цьому вхідний транзакт часто називають транзактом-батьком, а копію – транзактом- нащадком.
Блок
SPLIT має наступний формат запису:
<№>
SPLIT <A>,[<B>],[<C>]
У полі <А> блоку SPLIT задається число заданих копій. Операнд поля <A> може бути позитивним цілим, ім’ям, СЧА, СЧА з параметром. Якщо використовується тільки поле <А>, то з блоку SPLIT виходить задана кількість копій, що слідують в наступний по номеру блок. Поле <В> задає номер наступного блоку, до якого переходять копії вихідного повідомлення або транзакта-батька. В полі <C> може бути заданий номер параметра, що використовується для присвоєння копіям послідовних номерів. Кожна нова копія стає членом сімейства транзактів, створеним одним вхідним транзактом, який був створений блоком GENERATE.
Блок ASSEMBLE умовно належить до блоків знищення транзактів. Функція знищення проявляється у тому, що блок ASSEMBLE об’єднує певну кількість транзактів, після чого із нього виходить один транзакт, а всі інші знищуються. В той же час цей блок виконує швидше накопичувальну функцію, яка буває необхідна при моделюванні процесу збору деталей, повідомлень, окремих частин інформації для повного уявлення об’єкта моделювання – системи S. Блок ASSEMBLE виконує зборку заданого числа транзактів. Блок ASSEMBLE має наступний формат:
<№>
ASSEMBLE <A>
Поле <А> об’єднує задане число транзактів, що відносяться до одного сімейства, в один транзакт, який переходить в наступний по номеру блок. Операнд поля <А> може бути позитивним цілим числом, ім’ям, СЧА, СЧА з параметром.
Блок TRANSFER відноситься до блоків, які змінюють маршрути транзактів. Він є основним засобом моделюючого алгоритму, що дозволяє направити повідомлення до будь-якого блоку моделі.
Загальний
формат запису для блока TRANSFER
має вигляд:
<№>
TRANSFER <A>,[<B>],[<C>],[<D>]
Блок TRANSFER має наступні режими роботи: безумовний (пропуск); статистичний (.); BOTH; ALL; PICK; функція (FN); параметр (Р); підпрограма (SBR); SIM.
Операнд поля <А> може бути позитивним цілим числом, ім’ям, дробовим числом, СЧА, СЧА с параметром. Поля <В> та <С> задають можливі значення номерів (імен по мітці) наступних блоків або їх положення. У полі <D> в деяких випадках вказується параметр переходу до наступного блоку.
3.2 Лабораторне завдання
Змоделювати систему, в якій виконується розгалуження та злиття потоків, згідно з наведеною схемою. Усього згенерувати 200 вимог.
3.3 Виконаня
Текст
програми:
simulate
10 generate 10,3,,200
20 seize 1
30 advance 2
40 release 1
50 split 1,chan1
60 split 1,chan2
70 split 1,chan3
75 terminate
80 chan1 seize 2
90 advance 2
100 release 2
110 transfer ,out3
120 chan2 seize 3
140 advance 2
150 release 3
160 transfer ,out3
170 chan3 seize 4
180 advance 2
190 release 4
205 transfer ,out3
200 out3 assemble 3
210 terminate 1
start 200
Текст
звіту:
GPSS World Simulation Report - Untitled 3.21.1
Saturday, December 18, 2010 12:57:02
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 1971.924
22 4
0
NAME VALUE
CHAN1
CHAN2 13.000
CHAN3 17.000
OUT3
21.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 200 0 0
2 SEIZE 200 0 0
3 ADVANCE 200 0 0
4 RELEASE 200 0 0
5 SPLIT 200 0 0
6 SPLIT 200 0 0
7 SPLIT 200 0 0
8 TERMINATE 200 0 0
CHAN1 9 SEIZE 200 0 0
10 ADVANCE 200 0 0
11 RELEASE 200 0 0
12 TRANSFER 200 0 0
CHAN2 13 SEIZE 200 0 0
14 ADVANCE 200 0 0
15 RELEASE 200 0 0
16 TRANSFER 200 0 0
CHAN3 17 SEIZE 200 0 0
18 ADVANCE 200 0 0
19 RELEASE 200 0 0
20 TRANSFER 200 0 0
OUT3 21 ASSEMBLE 600 0 0
22 TERMINATE
200
0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
1 200 0.203 2.000 1 0 0 0 0 0
2 200 0.203 2.000 1 0 0 0 0 0
3 200 0.203 2.000 1 0 0 0 0 0
4
200 0.203 2.000
1 0 0
0 0 0