книги / Моделирование систем. Практикум
.pdfных номеров. Каждая новая копия становится членом семейства транзактов, порожденного одним исходным транзактом, который был создан блоком GENERATE.
Блок ASSEMBLE условно относится к блокам уничтожения транзактов. Функция уничтожения проявляется в том, что блок ASSEMBLE объединяет определенное количество транзактов, по сле чего из него выходит один транзакт, а все остальные уничтожа ются. В то же время этот блок выполняет скорее собирательную функцию, которая бывает необходима при моделировании про цесса сбора деталей, сообщений, отдельных частей информации для полного представления объекта моделирования, т. е. системы S. Блок ASSEMBLE осуществляет сборку заданного числа тран зактов. Блок ASSEMBLE имеет следующий формат:
ASSEMBLE <А>
Поле <А> объединяет заданное число транзактов, принадлежа щих к одному семейству, в один транзакт, который переходит в следующий по номеру блок. Операнд поля <А> может быть поло жительным целым числом, именем, СЧА, СЧА с параметром.
Блок TRANSFER относится к блокам, которые изменяют мар шруты транзактов. Он является основным средством моделирую щего алгоритма, позволяющим направить сообщение к любому блоку модели.
Общий формат записи для блока TRANSFER имеет вид:
TRANSFER <A>,[<B>],[<C>],[<D>]
Блок TRANSFER имеет следующие режимы работы: безуслов ный (пробел); статистический (.); BOTH; ALL; PICK; функция (FN); параметр (Р); подпрограмма (SBR); SIM.
Операнд поля <А> может быть положительным целым числом, именем, дробным числом, СЧА, СЧА с параметром. Поля <В> и <С> задают возможные значения номеров (имен по метке) сле дующих блоков или их положение. В поле <D> в некоторых случа ях указывается параметр перехода к следующему блоку.
Пример 3.5. В систему массового обслуживания ( Q -схем у) поступают пакеты заявок по равномерному закону в интервале 5 ± 2 мин. Обработка заявок, поступивших на первую сортировку, осуществляется также по равномерному закону в интервале 6 ± 2 мин. Далее рассортированные за явки проходят параллельную обработку с еще одним этапом сортировки. После обработки заявки собираются в один пакет и выводятся из систе мы. Необходимо смоделировать работу системы по обработке 100 паке тов.
4* |
51 |
SIMULATE
10 GENERATE 5,3,,100
20 SPLIT 1,CHAN1
30 SEIZE 1
40 ADVANCE 6,2
50 RELEASE 1
60 TRANSFER ,OUT3 70CHAN1 SPLIT 1,CHAN2 80 SEIZE 2
90 ADVANCE 6,2
100 RELEASE 2
П0 TRANSFER ,OUT3 120CHAN2 SEIZE 3 130 ADVANCE 6,2
140 RELEASE 3 150OUT3 ASSEMBLE 3 160 TERMINATE 1 START 100
END
Р и с . 3.9. Программа E X A M 05.G PS
Текст программы приведен под именем EXAM05.GPS на рис. 3.9. В приведенной программе блок TRANSFER используется в режиме безус ловного перехода по метке к заданному блоку ASSEMBLE, который осу ществляет сборку трех компонентов пакета заявок и выводит один пакет. Таким образом, происходит обработка и формирование 100 пакетов. Первый блок программы SPLIT создает одну копию и отправляет по мет ке CHAN 1 на другой блок SPLIT, который также создает одну копию и от правляет на сборку в блок ASSEMBLE. Такое копирование транзактов моделирует сортировку информации каждого пакета. Входящий пакет рассортировывается на три части, которые проходят обработку в трех уст ройствах с одной и той же временнбй задержкой и потом вновь из них формируется один пакет. Формально в блоке ASSEMBLE собираются 300 частей, из которых собирается 100 пакетов.
Рассматриваемые блоки в программе имеют следующие форматы за писи:
— блоки SPLIT:
20 SPLIT 1, CHAN1
70 CHANl SPLIT 1, CHAN2
— блоки TRANSFER:
60 TRANSFER, OUT3
110 TRANSFER, OUT3
— блок ASSEMBLE:
150 OUT3 ASSEMBLE 3
Блок SPLIT под номером 20 копирует один транзакт, отправляет его по метке CHANl на второй блок SPLIT. При этом через первый блок
52
GPSS/PC |
R e p o r t f i l e |
REPORT.GPS. (V 2 , |
# 3 7349) |
0 1 -1 0 -2 0 0 1 |
0 5 :2 1 :4 9 |
p a g e 1 |
||||
START_TIME |
£ND_TIME BLOCKS |
FA C ILITIES |
STORAGES |
FR£E_MEMORY |
||||||
|
0 |
|
611 |
16 |
3 |
|
0 |
|
80648 |
|
LINE |
LOC |
|
BLOCK_TYPE |
ENTRY_ COUNT |
CURRENT COUNT |
RETRY |
||||
10 |
1 |
|
GENERATE |
"100 |
|
|
0 |
0 |
||
20 |
2 |
|
SPLIT |
100 |
|
|
0 |
0 |
||
30 |
3 |
|
SEIZE |
100 |
|
|
0 |
0 |
||
40 |
4 |
|
ADVANCE |
100 |
|
|
0 |
0 |
||
50 |
5 |
|
RELEASE |
100 |
|
|
0 |
0 |
||
60 |
6 |
|
TRANSFER |
100 |
|
|
0 |
0 |
||
70 |
CHAN1 |
|
SPLIT |
100 |
|
|
0 |
0 |
||
80 |
8 |
|
SEIZE |
100 |
|
|
0 |
0 |
||
90 |
9 |
|
ADVANCE |
100 |
|
|
0 |
0 |
||
100 |
10 |
|
RELEASE |
100 |
|
|
0 |
0 |
||
110 |
11 |
|
TRANSFER |
100 |
|
|
0 |
0 |
||
120 |
CHAN2 |
|
SEIZE |
100 |
|
|
0 |
0 |
||
130 |
13 |
|
ADVANCE |
100 |
|
|
0 |
0 |
||
140 |
14 |
|
RELEASE |
100 |
|
|
0 |
0 |
||
150 |
OUT3 |
|
ASSEMBLE |
300 |
|
|
0 |
0 |
||
160 |
16 |
|
TERMINATE |
100 |
|
|
0 |
0 |
||
FACILITY |
ENTRIES |
UTIL |
AVE. TIME AVAILABLE |
OWNER PEND |
INTER RETRY DELAY |
|||||
1 |
100 |
0 .9 7 5 |
5 .9 6 |
1 |
0 |
0 |
0 |
0 |
0 |
|
2 |
100 |
0 |
986 |
6 .0 3 |
1 |
0 |
0 |
0 |
0 |
0 |
3 |
100 |
0 .9 3 4 |
5 .7 1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
XACT_GROUP |
GROUP_SIZE |
RETRY |
|
|
|
|
|
|||
POSITION |
|
|
0 |
|
0 |
|
|
|
|
|
Р и с . ЗЛО. Стандартный отчет EX A M 05.RPT
SPLIT проходит транзакт-родитель на следующий по номеру блок (30 SEIZE 1). Второй блок SPLIT также копирует один транзакт, отправляет его по метке на третье устройство (120 CHAN2 SEIZE 3) и пропускает транзакт-родителя на второе устройство (80 SEIZE 2). В блоке ASSEMBLE собираются транзакты после блоков TRANSFER (60 TRANSFER, OUT3 и 110 TRANSFER, OUT3) и блока RELEASE (140 RELEASE 3). С каждым шагом уменьшения числа счетчика завершений в блоке ASSEMBLE собираются три транзакта, а выходит из него только один. За полный цикл моделирования в блоке ASSEMBLE собираются 300 транзактов и выходят из него 100 транзактов. Формально блок ASSEMBLE уничтожает 200 транзактов.
Описанную логику работы программы EXAM05.GPS легко просмот реть по файлу стандартного отчета, который имеет имя EXAM05.RPT (рис. 3.10). Основное внимание следует обратить на количество транзак тов, входящих в каждый блок модели. Видно, что во все блоки, кроме ASSEMBLE, входило 100 транзактов. В блок ASSEMBLE вошло 300 транзактов, а вышло 100, которые затем вошли в блок TERMINATE и там все уничтожились (выведены из системы). Формально в блоке ASSEMBLE уничтожено 200 транзактов, а по логике работы системы произошло объединение отдельных частей заявок в один общий пакет.
В устройства под номерами 1,2,3 (FACILITY) входило 100 транзактов (тем самым осуществлялась параллельная обработка), среднее время пре бывания в них составило 5.96,6.03, 5.71 единиц времени соответственно. Коэффициенты использования этих устройств (часть времени от общего времени моделирования) соответственно равны 0.975, 0.986, 0.934. Пол ное время моделирования заняло 611 единиц времени. Наличие поля
53
<D> в блоке GENERATE позволило завести в систему обслуживания 100 пакетов и 100 обработанных пакетов вывести. Причем первый блок SPLIT под номером 20 формально порождает одну копию транзакта и от правляет по метке CHAN1 для еще одного копирования (блоком SPLIT под номером 70) и по обработке во втором устройстве (блоки SEIZE, ADVANCE, RELEASE соответственно под номерами 80, 90, 100). Второй блок SPLIT копирует транзакт и отправляет его по метке CHAN2 на третье устройство, которое моделируется блоками SEIZE, ADVANCE, RELEASE (номера блоков 120, 130, 140).
Два блока TRANSFER под номерами 60 и 110 в режиме безусловной передачи отправляют обработанные транзакты в блок сборки ASSEMBLE под номером 150 с меткой OUT3. В блок ASSEMBLE входит также транзакт после третьего устройства. Блок ASSEMBLE принял всего 300 транзактов, а вывел 100 транзактов, что отражает процесс сборки со общений в одно новое. Формально же блок ASSEMBLE собрал 300 транзактов, 200 из них уничтожил и 100 транзактов отправил на следую щий по номеру блок (блок TERMINATE под номером 160). Каждый сге нерированный транзакт расщепляется в конце концов на три и после об работки происходит сбор в блоке ASSEMBLE.
Рассмотрим работу блока TRANSFER в режиме статистического вы бора.
Пример 3.6. В систему массового обслуживания (Q -схем у) поступают заявки по равномерному закону через 5 ± 2 мин. Обработка заявок осуще ствляется двумя обслуживающими каналами. Поступление заявок в тот или иной канал происходит с вероятностью 0.3 и 0.7. Обслуживание зая вок каждым каналом происходит по равномерному закону со временем 7 ± 2 мин. Необходимо осуществить обработку 100 заявок при одном и двух прогонах программы.
Программа решения примера 3.6 EXAM06.GPS приведена на рис. 3.11. Здесь предусмотрен оператор очистки данных CLEAR. В приводи мой программе первый прогон происходит при закомментированных операторах CLEAR и START 100. Для выполнения двух прогонов про-
10 GENERATE 5,2„100
20 TRANSFER .7,CHAN1,CHAN2
30 CHAN1 SEIZE 1
40 ADVANCE 7,2
50 RELEASE 1
60 TRANSFER,EXIT
70CHAN2 SEIZE 2
80 ADVANCE 7,2
90 RELEASE 2
100 EXIT TERMINATE 1 START 100
;CLEAR ;START 100 END
Р и с . 3.11. Программа EXAM06.GPS
54
граммы используются два оператора START 100 и один оператор CLEAR между ними.
Формат записи блока TRANSFER в режиме статистического выбора имеет вид:
20T R A N SFE R S,C H A N 1,C H A N 2
Вполе <А> записано число 0.7. Это означает, что из общего числа транзактов, входящих в блок TRANSFER под номером 20, в среднем 0.7 по вероятности будут пытаться войти в блок CHAN2. Остальные 0.3 от 100 также по вероятности будут пытаться войти в блок CHAN1. Передача транзактов в блоки происходит по меткам, которые записываются в поля
<В> и <С> соответственно. Блок TRANSFER под номером 60 осуществ ляет безусловную передачу транзактов в блок TERMINATE.
Оператор CLEAR записывается в формате без параметров или с пус тыми полями данных. Он позволяет осуществлять параллельные машин ные эксперименты с моделями систем. Проведение параллельных экспе риментов необходимо для систем с вероятностными процессами, для ко торых, как правило, необходимо вычисление средних операционных ха рактеристик.
Следующие файлы стандартного отчета для программы EXAM06.GPS отражают процессы моделирования при одном и двукратном прогонах при статистическом выборе блока TRANSFER.
Приведем файлы стандартного отчета программы EXAM06.GPS при однократном (рис. 3.12) и при двукратном прогоне (рис. 3.13). Как видно на файлах стандартного отчета (под одним и тем же именем EXAM06.RPT), результаты моделирования заметно различаются: в пер вом случае через устройство с меткой CHAN1 прошло и обработалось 28 транзактов, через устройство с меткой CHAN2 прошло и обработалось 72 транзакта. В сумме они дают 100 транзактов, что и требовалось по усло вию примера. Во втором случае имеем 38 и 62 транзакта соответственно. В сумме опять получается 100. Разброс обрабатываемых транзактов обу-
GPSS/PC |
R e p o rt f i l e |
REPORT.GPS. (V 2 , |
# 37349) |
0 1 - 1 0 - 2001 05 :2 1 :4 9 |
p a g e |
1 |
|||
S T A R T _ TIME |
END TIME |
BLOCKS |
FACILITIES STORAGES |
FREE |
MEMORY |
|
|||
|
0 |
516 |
10 |
2 |
|
0 |
84464 |
|
|
LINE |
LOC |
BLOCK TYPE |
ENTRY COUNT |
CURRENT COUNT RETRY |
|||||
10 |
1 |
GENERATE |
|
100 |
|
0 |
|
0 |
|
20 |
2 |
TRANSFER |
|
100 |
|
0 |
|
0 |
|
30 |
CHAN1 |
SEIZE |
|
2B |
|
0 |
|
0 |
|
40 |
4 |
ADVANCE |
|
28 |
|
0 |
|
0 |
|
50 |
5 |
RELEASE |
|
2B |
|
0 |
|
0 |
|
60 |
6 |
TRANSFER |
|
28 |
|
0 |
|
0 |
|
70 |
CHAN2 |
SEIZE |
|
72 |
|
0 |
|
0 |
|
60 |
В |
ADVANCE |
|
72 |
|
0 |
|
0 |
|
90 |
9 |
RELEASE |
|
72 |
|
0 |
|
0 |
|
100 |
EXIT |
T E R M IN A T E |
|
100 |
|
0 |
|
0 |
|
FACILITY |
ENTRIES |
UTIL |
AVE. TIME AVAILABLE |
OWNER PEND |
INTER R E T R Y D ELA Y |
||||
1 |
28 |
0 .3 7 7 |
6 .9 6 |
1 |
0 |
0 |
0 |
0 |
0 |
2 |
72 |
0 .9 7 6 |
7 .0 0 |
1 |
0 |
0 |
0 |
0 |
0 |
XACT_GROUP |
GROUP SIZE |
RETRY |
|
|
|
|
|
||
POSITION |
0 |
|
0 |
|
|
|
|
|
Р и с . 3.12. Стандартный отчет EXAM06.GPS при однократном прогоне
55
GPSS/PC |
R e p o rt f i l e REPORT.GPS. |
(V 2 , |
* 37349) |
0 1 - 1 0 - 2001 |
0 5 :2 1 :1 51 |
p a g e 1 |
|||||||
START_ TIME |
END TIME |
BLOCKS |
FACILITIES |
STORAGES |
FREE MEMORY |
||||||||
|
" |
0 |
|
514 |
|
10 |
|
2 |
|
0 |
64464 |
|
|
LINE |
|
LOG |
|
BLOCK_TYPE |
ENTRY_COUNT |
CURRENT COUNT |
RETRY |
||||||
10 |
|
1 |
|
GENERATE |
|
100 |
|
0 |
|
0 |
|||
20 |
|
2 |
|
TRANSFER |
|
100 |
|
0 |
|
0 |
|||
30 |
|
CHANI |
|
SEIZE |
|
|
|
38 |
|
0 |
|
0 |
|
40 |
|
4 |
|
ADVANCE |
|
|
38 |
|
0 |
|
0 |
||
SO |
|
S |
|
RELEASE |
|
|
38 |
|
0 |
|
0 |
||
60 |
|
6 |
|
TRANSFER |
|
|
38 |
|
0 |
|
0 |
||
70 |
|
CHAN2 |
|
SEIZE |
|
|
|
62 |
|
0 |
|
0 |
|
BO |
|
8 |
|
ADVANCE |
|
|
62 |
|
0 |
|
0 |
||
90 |
|
9 |
|
RELEASE |
|
|
62 |
|
0 |
|
0 |
||
100 |
|
EXIT |
|
TERMINATE |
100 |
|
0 |
|
0 |
||||
FACILITY |
|
ENTRIES |
U TIL. |
AVE. TIME AVAILABLE |
OWNER PEND |
INTER RETRY DELAY |
|||||||
1 |
|
38 0 .5 2 7 |
|
7 .1 3 |
1 |
0 |
0 |
0 |
0 |
0 |
|||
2 |
|
62 |
0 |
046 |
|
7 .0 2 |
1 |
0 |
0 |
0 |
0 |
0 |
|
XACTJ3ROUP |
|
GROUP SIZE |
|
RETRY |
|
|
|
|
|
||||
POSITION |
|
|
0 |
|
|
|
0 |
|
|
|
|
|
|
Р и с . |
3.13. Стандартный |
отчет |
E X A M 06.G PS |
при |
двукратном |
прогоне |
|||||||
|
|
|
10 |
G ENERA TE 5,2„100 |
|
|
|
|
|
||||
|
|
|
20 |
TR A NSFER BO TH,CH AN 1,CHAN2 |
|
|
|
||||||
|
|
|
30 |
CHAN1 |
SEIZE 1 |
|
|
|
|
|
|||
|
|
|
40 |
A D VAN CE 5,3 |
|
|
|
|
|
|
|||
|
|
|
50 |
RELEASE 1 |
|
|
|
|
|
|
|||
|
|
|
60 |
T R A N SF E R ,EXIT |
|
|
|
|
|
||||
|
|
|
70 |
CHAN2 |
SEIZE 2 |
|
|
|
|
|
|||
|
|
|
80 |
AD VANCE 7,2 |
|
|
|
|
|
|
|||
|
|
|
90 |
RELEASE 2 |
|
|
|
|
|
|
100 EXIT TERM IN ATE 1 START 100
END
Р и с . 3.14. П рограмма EX A M 07.G PS
словлен статистическим выбором блока под номером 20 TRANSFER. Пе реброс 70 % транзактов в устройство с меткой CHAN2 происходит стати стически. Статистика работы устройств также различна: в первом случае (при однократном прогоне) коэффициенты использования каналов рав ны 0.377 и 0.976, соответственно для CHAN 1 и CHAN2, среднее время об работки равно 6.96 и 7.00 мин; во втором случае (при двукратном прого не) коэффициенты использования устройств равны 0.527 и 0.846, соот ветственно для CHAN1 и CHAN2, среднее время обработки равно 7.13 и 7.02 мин.
Блок TRANSFER под номером 60 функционирует в режиме безусловной передачи. Он отправляет обработанные транзакты в блок TERMINATE для их уничтожения или, как можно сказать, в реальном случае для вывода сообщений из системы.
Пример 3.7. Блок TRANSFER в режиме BOTH. Пусть в условиях при мера 3.6 заявки могут обрабатываться на одном из двух приборов; на 1-м за 5 ± 3 мин, на 2-м за 7 ± 2 мин. Причем предпочтительнее обработка на первом приборе. Программа решения примера 3.7 приведена под именем
56
GPSS/PC |
R e p o r t f i l e |
REPORT GPS |
(V 2 , |
# 37349) |
0 2 -1 0 - 2 0 0 1 |
05 2 1 :1 2 |
p a g e 1 |
||||
START_TIME |
END TIME |
BLOCKS |
FACILITIES |
STORAGES |
FREE_MEMORY |
||||||
LINE |
0 |
|
~497 |
10 |
|
2 |
|
0 |
85008 |
|
|
LOC |
|
BLOCK TYPE |
ENTRY_ COUNT |
CURRENT COUNT |
RETRY |
||||||
10 |
1 |
|
GENERATE |
|
'lOO |
|
0 |
|
0 |
||
20 |
2 |
|
TRANSFER |
|
102 |
|
0 |
|
0 |
||
30 |
CHANl |
|
SEIZE |
|
|
65 |
|
0 |
|
0 |
|
40 |
4 |
|
ADVANCE |
|
|
6S |
|
0 |
|
0 |
|
50 |
5 |
|
RELEASE |
|
|
65 |
|
0 |
|
0 |
|
60 |
6 |
|
TRANSFER |
|
|
65 |
|
0 |
|
0 |
|
70 |
CHAN2 |
|
SEIZE |
|
|
3S |
|
0 |
|
0 |
|
80 |
8 |
|
ADVANCE |
|
|
35 |
|
0 |
|
0 |
|
90 |
9 |
|
RELEASE |
|
|
35 |
|
0 |
|
0 |
|
100 |
EXIT |
|
TERMINATE |
100 |
|
0 |
|
0 |
|||
FACILITY |
ENTRIES |
|
UTIL. |
AVE. TIME AVAILABLE |
OW NER |
PEND |
INTER RETR |
DELAY |
|||
1 |
6S 0 .6 6 8 |
S 11 |
1 |
0 |
0 |
0 |
0 |
0 |
|||
2 |
35 |
0 |
472 |
6 |
71 |
1 |
0 |
0 |
0 |
0 |
0 |
XACT_GROUP |
GROUP_SIZE |
|
RETRY |
|
|
|
|
|
|||
POSITION |
|
|
|
|
|
0 |
|
|
|
|
|
Р и с . 3.15 Стандартный отчет EXA M 07.R PT
EXAM07.GPS на рис. 3.14. Формат записи блока TRANSFER в режиме BOTH для программы EXAM07.GPS имеет вид:
20 TR A NSFER BO TH , C H A N l, CH A N 2
Вполе <А> блока TRANSFER стоит зарезервированное слово BOTH.
Вэтом случае каждый входящий в блок TRANSFER транзакт пытается пе рейти к блоку, указанному в поле <В> (переход к устройству с меткой CHAN 1). Если это сделать не удается, транзакт пытается перейти к блоку,
указанному в поле <С> (переход к устройству с меткой CHAN2). Если транзакт не может перейти ни к одному из блоков, он остается в блоке TRANSFER и будет повторять в том же порядке попытки перехода при ка ждом просмотре интерпретатором G P S S /P C списка текущих событий до тех пор, пока не сможет выйти из блока TRANSFER. Режим работы BOTH блока TRANSFER определяет предпочтительность выбора перехода сооб щения к тому или иному объекту моделируемой системы.
Результаты работы блока TRANSFER в режиме BOTH приведены в файле стандартного отчета EXAM07.RPT (рис. 3.15). Здесь отправка транзактов в устройство с меткой CHANl имеет преимущество перед уст ройством с меткой CHAN2. Посылка транзактов во второе устройство происходит только в том случае, если 1-й канал занят. Количество прохо дящих через первое устройство транзактов может быть изменено при из менении времени обслуживания транзактов, т. е. при изменении временнбго интервала, который задается в блоке ADVANCE.
Пример 3.8. Рассмотрим работу блока TRANSFER в режиме ALL. В систему массового обслуживания ( Q -схему) поступают заявки по равно мерному закону со временем 5 + 2 мин. Обработка заявок происходит в одном из четырех каналов обслуживания, для которых времена обслужи вания составляют: 17 ± 2 мин, 12 ± 2 мин, 9 ± 2 мин и 3 ± 2 мин соответст венно. Смоделировать работу системы по обработке 100 заявок четырьмя каналами, когда вновь поступающая заявка обслуживается любым сво бодным каналом.
57
60 TRANSFER ,EXIT 70CHAN2 SEIZE 2 80 ADVANCE 12,2 90 RELEASE 2
100 |
TRANSFER ,EXIT |
110CHAN3 SEIZE 3 |
|
120 |
ADVANCE 9,2 |
130 |
RELEASE 3 |
140 |
TRANSFER,EXIT |
150CHAN4 SEIZE 4 |
|
160 |
ADVANCE 3,2 |
170 |
RELEASE 4 |
180 |
EXIT TERMINATE 1 |
START 100 |
|
Р и с . 3 1 6 |
П рограмма EX A M 08.G PS |
Блок TRANSFER в режиме ALL автоматически анализирует систему и выбирает свободное место по обслуживанию входящих заявок. В этом ре жиме транзакт занимает первый блок из совокупности, заданной полями <В>, <С>, <D> (программа EXAM08.GPS на рис. 3.16).
Блок TRANSFER в режиме ALL имеет следующий формат записи:
20TR A N SFER ALL, CH A N 1, CH A N 4,4
Вполе <А> блока TRANSFER задается режим ALL. В поле <В> зада ется метка первого анализируемого устройства, а в поле <С> — метка по следнего устройства В поле <D> задается число, кратное количеству бло ков между каждым из анализируемых устройств. В программе каждое уст ройство, начиная с первого, отделено друг от друга четырьмя блоками: SEIZE, ADVANCE, RELEASE, TRANSFER, EXIT. Блоки TRANSFER, EXIT работают в режиме безусловного перехода. В программе EXAM08.GPS время обработки каждого из устройств подобрано так, чтобы были задей ствованы все четыре устройства.
Если одно из устройств освобождается быстрее остальных, то это уст ройство окажется наиболее загруженным. Различную загрузку каналов без изменения времени обработки можно задать с помощью блоков копи рования транзактов SPLIT. Такой вариант работы системы ( Q -схем ы ) представлен в распечатке файла программы EXAM09.GPS на рис 3 17.
В программах EXAM08.GPS и EXAM09.GPS рассмотрены примеры работы блока TRANSFER в режиме ALL. В этом режиме каждый транзакт пытается прежде всего перейти к блоку, указанному в поле <В>. Если транзакт в этот блок войти не может, то последовательно проверяются все блоки в определенном ряду в поисках первого, способного принять этот транзакт, включая блок, указанный в поле <С>. При этом номер каждого проверяемого блока вычисляется как сумма номера предыдущего блока и шага (натурального числа), заданного в поле <D>:
58
|
|
SIMULATE |
|
|
|
|
|
|
|
|
|||
|
|
10 |
|
GENERATE 5,2„100 |
|
|
|
|
|
||||
|
|
11 |
|
SPLIT 1,CHAN2 |
|
|
|
|
|
|
|||
|
|
12 |
|
SPLIT 1,CHAN3 |
|
|
|
|
|
|
|||
|
|
20 |
|
TRANSFER ALL,CHAN1,CHAN4,4 |
|
|
|
||||||
|
|
30CHAN1 SEIZE 1 |
|
|
|
|
|
|
|||||
|
|
40 |
|
ADVANCE 17,2 |
|
|
|
|
|
|
|||
|
|
50 |
|
RELEASE 1 |
|
|
|
|
|
|
|||
|
|
60 |
|
TRANSFER,EXIT |
|
|
|
|
|
||||
|
|
70CHAN2 SEIZE 2 |
|
|
|
|
|
|
|||||
|
|
80 ADVANCE 12,2 |
|
|
|
|
|
|
|||||
|
|
90 RELEASE 2 |
|
|
|
|
|
|
|||||
|
|
100 TRANSFER,EXIT |
|
|
|
|
|
||||||
|
|
110CHAN3 SEIZE 3 |
|
|
|
|
|
||||||
|
|
120 |
ADVANCE 9,2 |
|
|
|
|
|
|
||||
|
|
130 |
RELEASE 3 |
|
|
|
|
|
|
||||
|
|
140 |
TRANSFER,EXIT |
|
|
|
|
|
|||||
|
|
150CHAN4 SEIZE 4 |
|
|
|
|
|
||||||
|
|
160 |
ADVANCE 3,2 |
|
|
|
|
|
|
||||
|
|
170 |
RELEASE 4 |
|
|
|
|
|
|
||||
|
|
180 EXIT TERMINATE 1 |
|
|
|
|
|
||||||
|
|
START 100 |
|
|
|
|
|
|
|
|
|||
|
|
END |
|
|
|
|
|
|
|
|
|
||
|
Р и с |
3 1 7 |
П рограмма E X A M 09.G PS |
|
|
|
|||||||
GPSS/PC R e p o r t f i l e |
REPORT.GPS. |
(V 2 , |
# 37349) |
02- 1 0 -2 0 0 1 05 |
21 :1 5 |
p a g e |
1 |
||||||
START_ TIME |
END TIME BLOCKS |
FACILITIES !STORAGES |
FREE MEMORY |
|
|||||||||
|
0 |
|
|
502 |
|
IB |
|
4 |
|
0 |
83696 |
|
|
LINE |
LOC |
|
|
BLOCK_TYPE |
ENTRY COUNT |
CURRENT COUNT RETRY |
|||||||
10 |
1 |
|
|
|
GENERATE |
|
100 |
|
0 |
|
0 |
||
20 |
2 |
|
|
|
TRANSFER |
|
101 |
|
0 |
|
0 |
||
30 |
CHAN1 |
|
|
|
SEIZE |
|
|
|
25 |
|
0 |
|
0 |
40 |
4 |
|
|
|
ADVANCE |
|
|
25 |
|
0 |
|
0 |
|
50 |
5 |
|
|
|
RELEASE |
|
|
25 |
|
0 |
|
0 |
|
60 |
6 |
|
|
|
TRANSFER |
|
25 |
|
0 |
|
0 |
||
70 |
CHAN2 |
|
|
|
SEIZE |
|
|
|
2B |
|
0 |
|
0 |
80 |
В |
|
|
|
ADVANCE |
|
|
28 |
|
0 |
|
0 |
|
90 |
9 |
|
|
|
RELEASE |
|
|
28 |
|
0 |
|
0 |
|
100 |
10 |
|
|
|
TRANSFER |
|
28 |
|
0 |
|
0 |
||
110 |
CHAN3 |
|
|
|
SEIZE |
|
|
|
27 |
|
0 |
|
0 |
120 |
12 |
|
|
|
ADVANCE |
|
|
27 |
|
0 |
|
0 |
|
130 |
13 |
|
|
|
RELEASE |
|
|
27 |
|
0 |
|
0 |
|
140 |
14 |
|
|
|
TRANSFER |
|
27 |
|
0 |
|
0 |
||
150 |
CHAN4 |
|
|
|
SEIZE |
|
|
|
20 |
|
0 |
|
0 |
160 |
16 |
|
|
|
ADVANCE |
|
|
20 |
|
0 |
|
0 |
|
170 |
17 |
|
|
|
RELEASE |
|
|
20 |
|
0 |
|
0 |
|
160 |
EXIT |
|
|
|
TERMINATE |
|
100 |
|
0 |
|
0 |
||
FACILITY |
ENTRIES |
UTIL. |
AVE |
TIME |
AVAILABLE |
OWNER PEND |
INTER |
RETRY DELAY |
|||||
1 |
25 |
0 |
852 |
|
17 |
12 |
1 |
0 |
0 |
0 |
0 |
0 |
|
2 |
2 В |
0 |
651 |
|
11 |
66 |
1 |
0 |
0 |
0 |
0 |
0 |
|
3 |
27 |
0 |
470 |
|
В |
89 |
1 |
0 |
0 |
0 |
0 |
0 |
|
4 |
20 |
0 |
121 |
|
3 |
OS |
1 |
0 |
0 |
0 |
0 |
0 |
|
XACT_GROUP |
|
GROUP_SIZE |
|
RETRY |
|
|
|
|
|
||||
POSITION |
|
|
|
|
0 |
|
|
0 |
|
|
|
|
|
|
Р и с |
|
3 1 8 |
Стандартный отчет |
EXA M 08.R PT |
|
|
59
N + h, N + 2h, N + 3h.........M ,
где N — номер блока, указанного в поле <В>; h — значение шага, указан ного в поле <D>; М — номер последнего блока, указанно в поле <С>. Для рассматриваемых программ шаг равен 4.
Результаты моделирования представлены на рис. 3.18 с именем EXAM08.RPT. Каждое из четырех устройств обслуживает заявки (транзакты). В блоке под номером 20 TRANSFER фигурирует число 101. Это объясняется тем, что какой-то транзакт не мог попасть ни в один из бло ков из-за их занятости и поэтому он вновь из этого же блока TRANSFER пытался перейти в один из свободных блоков. Перераспределение транзактов по устройствам в программе EXAM09.GPS осуществляется блока ми SPLIT, которые дополнительно загружают устройства. В каждое из устройств вошло соответственно 13, 23, 30, 37 транзактов. В сумме они дают число 103. По условию систему должны покинуть 100 транзактов. Оставшиеся три транзакта остались в трех первых приборах (в поле CURRENT_COUNT). Результаты моделирования приведены на рис. 3.19 именем EXAM09.RPT.
Пример 3.9. Рассмотрим работу блока TRANSFER в режиме PICK. Смоделировать обслуживание 100 заявок, которые поступают в Q -схему каждые 5 ± 2 мин. Обработка заявок может осуществляться четырьмя ка
налами с равной вероятностью и временем обслуживания |
12 ± 2 мин, |
|||||||||||
9 ± 2 мин, |
7 ± 2 мин, 13 ± 2 |
мин |
соответственно. |
|
|
|
|
|||||
GPSS/PC R e p o r t f i l e |
REPORT.GPS |
(V 2 , |
# |
37349) |
0 2 -1 0 -2 0 0 1 0 5 :2 1 .1 7 |
p a g e 1 |
||||||
START_TIME |
END-TIME |
BLOCKS |
FA C ILITIES STORAGES |
FREE MEMORY |
||||||||
LINE |
О |
|
~ 260 |
|
20 |
|
4 |
0 |
|
80304 |
|
|
LOC |
|
BLOCK__TYPE |
|
ENTRY |
COUNT |
CURRENT COUNT |
RETRY |
|||||
10 |
1 |
|
GENERATE |
|
|
50 |
|
0 |
|
0 |
||
11 |
2 |
|
SPLIT |
|
|
|
50 |
|
0 |
|
0 |
|
12 |
3 |
|
SPLIT |
|
|
|
50 |
|
0 |
|
0 |
|
20 |
4 |
|
TRANSFER |
|
|
56 |
|
0 |
|
0 |
||
30 |
CHAN1 |
|
SEIZE |
|
|
|
13 |
|
0 |
|
0 |
|
40 |
6 |
|
ADVANCE |
|
|
13 |
|
1 |
|
0 |
||
50 |
7 |
|
RELEASE |
|
|
12 |
|
0 |
|
0 |
||
60 |
8 |
|
TRANSFER |
|
|
12 |
|
0 |
|
0 |
||
70 |
CHAN2 |
|
SEIZE |
|
|
|
23 |
|
0 |
|
0 |
|
80 |
10 |
|
ADVANCE |
|
|
23 |
|
1 |
|
0 |
||
90 |
11 |
|
RELEASE |
|
|
22 |
|
0 |
|
0 |
||
100 |
12 |
|
TRANSFER |
|
|
22 |
|
0 |
|
0 |
||
110 |
CHAN3 |
|
SEIZE |
|
|
|
30 |
|
0 |
|
0 |
|
120 |
14 |
|
ADVANCE |
|
|
30 |
|
1 |
|
0 |
||
130 |
15 |
|
RELEASE |
|
|
29 |
|
0 |
|
0 |
||
140 |
16 |
|
TRANSFER |
|
|
29 |
|
0 |
|
0 |
||
150 |
CHAN4 |
|
SEIZE |
|
|
|
37 |
|
0 |
|
0 |
|
160 |
18 |
|
ADVANCE |
|
|
37 |
|
0 |
|
0 |
||
170 |
19 |
|
RELEASE |
|
|
37 |
|
0 |
|
0 |
||
180 |
EXIT |
|
TERMINATE |
|
|
100 |
|
0 |
|
0 |
||
FACILITY |
ENTRIES |
|
UTIL. |
AVE. TIME |
A V A IL A B L E |
OWNER PEND |
INTER |
RETRY |
DELA1 |
|||
1 |
13 |
0 .8 2 3 |
|
1 6 .4 6 |
|
1 |
140 |
0 |
0 |
0 |
0 |
|
2 |
23 |
0 |
980 |
|
1 1 .0 9 |
|
1 |
69 |
0 |
0 |
0 |
27 |
3 |
30 0 .9 8 0 |
|
8 .5 0 |
|
1 |
91 |
0 |
0 |
0 |
20 |
||
4 |
37 |
0 .4 1 9 |
|
2 95 |
|
1 |
0 |
0 |
0 |
0 |
0 |
|
XACT__G R O U P |
G R O U P S I Z E |
|
R E T R Y |
|
|
|
|
|
|
|||
POSITION |
|
|
О |
|
|
О |
|
|
|
|
|
|
|
Р и с . |
3.19. Стандартный |
отчет EXAM09.RPT |
|
|
60