3841
.pdfРис. 7.16. Блок схема системы.
Текст GPSS – программы
Generate 10,5; входной поток
QUEUE paket; очередь для определения времени жизни пакета TEST L Q$NAK,10,err1_gbye; определение,непереполненлинакопитель1 QUEUE NAK; поставить в накопитель 1
transfer 0.5,ab1,ab2;равновероятная передача по любой из двух линий
ab1 seize line_ab1; занять линию ab1 depart nak; убрать из накопителя advance 18,7; передать
release line_ab1; освободить линию
TEST L Q$buf,10,err2_gbye; определение,непереполненлинакопитель2 QUEUE buf; поставить в накопитель 2
281
seize line_bc1;занять линию bc1 depart buf; убрать из накопителя advance 25,3; передать
release line_bc1; освободить линию bc1 transfer ,gbye; заявка дошла
; то же самое для линии ab2 и bc2 ab2 seize line_ab2
depart nak advance 20,5 release line_ab2
TEST L Q$buf,10,err2_gbye QUEUE buf
seize line_bc2 depart buf advance 15,5 release line_bc2 transfer ,gbye
err1_gbye QUEUE err1; очередь подсчета потерянных изза переполнения накопителя 1
transfer ,gbye
err2_gbye Queue err2; очередь подсчета потерянных изза переполнения накопителя 2
gbye Depart Paket; пакет выходит из системы terminate 1
start 500
Проведение моделирования и анализ результатов
В результате моделирования получаем отчет, приведенный ниже.
Tuesday, May 17, 2016 22:09:30 |
|
|
|
|
START TIME |
END TIME BLOCKS FACILITIES STORAGES |
|||
0.000 |
5136.803 |
32 |
4 |
0 |
NAME |
VALUE |
|
|
|
AB1 |
6.000 |
|
|
|
AB2 |
17.000 |
|
|
|
|
|
|
282 |
|
|
BUF |
|
10004.000 |
|
|
|
|
|
|
|
|
ERR1 |
|
10007.000 |
|
|
|
|
|
|
|
|
ERR1_GBYE |
28.000 |
|
|
|
|
|
|
||
|
ERR2 |
|
10008.000 |
|
|
|
|
|
|
|
|
ERR2_GBYE |
30.000 |
|
|
|
|
|
|
||
|
GBYE |
|
31.000 |
|
|
|
|
|
|
|
|
LINE_AB1 |
10003.000 |
|
|
|
|
|
|
||
|
LINE_AB2 |
10002.000 |
|
|
|
|
|
|
||
|
LINE_BC1 |
10006.000 |
|
|
|
|
|
|
||
|
LINE_BC2 |
10005.000 |
|
|
|
|
|
|
||
|
NAK |
|
10001.000 |
|
|
|
|
|
|
|
|
PAKET |
|
10000.000 |
|
|
|
|
|
|
|
LABEL |
LOC BLOCK TYPE |
ENTRY COUNT CURRENT COUNT RETRY |
||||||||
|
1 |
GENERATE |
514 |
|
|
0 |
|
0 |
|
|
|
2 |
QUEUE |
|
514 |
|
|
0 |
|
0 |
|
|
3 |
TEST |
|
514 |
|
|
0 |
0 |
|
|
|
4 |
QUEUE |
|
511 |
|
|
0 |
|
0 |
|
|
5 |
TRANSFER |
511 |
|
|
2 |
|
0 |
|
|
AB1 |
6 |
SEIZE |
|
257 |
|
|
0 |
|
0 |
|
|
7 |
DEPART |
|
257 |
|
|
0 |
|
0 |
|
|
8 |
ADVANCE |
257 |
|
|
1 |
|
0 |
|
|
|
9 |
RELEASE |
256 |
|
|
0 |
|
0 |
|
|
|
10 |
TEST |
|
256 |
|
|
0 |
|
0 |
|
|
11 |
QUEUE |
|
214 |
|
|
9 |
|
0 |
|
|
12 |
SEIZE |
|
205 |
|
|
1 |
|
0 |
|
|
13 |
DEPART |
204 |
|
|
0 |
|
0 |
|
|
|
14 |
ADVANCE |
204 |
|
|
0 |
|
0 |
|
|
|
15 |
RELEASE |
204 |
|
|
0 |
|
0 |
|
|
|
16 |
TRANSFER |
204 |
|
|
0 |
|
0 |
|
|
AB2 |
17 |
SEIZE |
|
252 |
|
|
0 |
|
0 |
|
|
18 |
DEPART |
252 |
|
|
0 |
|
0 |
|
|
|
19 |
ADVANCE |
252 |
|
|
|
1 |
|
0 |
|
|
20 |
RELEASE |
251 |
|
|
|
0 |
|
0 |
|
|
21 |
TEST |
|
251 |
|
|
|
0 |
|
0 |
|
22 |
QUEUE |
|
166 |
|
|
|
0 |
|
0 |
|
23 |
SEIZE |
|
166 |
|
|
|
0 |
|
0 |
|
24 |
DEPART |
166 |
|
|
|
0 |
|
0 |
|
|
25 |
ADVANCE |
166 |
|
|
|
0 |
|
0 |
|
|
26 |
RELEASE |
166 |
|
|
|
0 |
|
0 |
|
|
27 |
TRANSFER |
166 |
|
|
|
0 |
|
0 |
|
ERR1_GBYE |
28 |
QUEUE |
|
3 |
|
|
|
0 |
|
0 |
|
29 |
TRANSFER |
3 |
|
|
|
0 |
|
0 |
|
ERR2_GBYE |
30 |
QUEUE |
|
127 |
|
|
|
0 |
|
0 |
GBYE |
31 |
DEPART |
|
500 |
|
|
|
0 |
|
0 |
|
32 |
TERMINATE |
500 |
|
|
|
0 |
|
0 |
|
FACILITY |
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY |
|||||||||
LINE_AB2 |
252 |
0.981 |
20.002 |
1 |
508 |
0 |
0 |
0 |
2 |
|
LINE_AB1 |
257 |
0.868 |
17.354 |
1 |
512 |
0 |
0 |
0 |
0 |
|
LINE_BC2 |
166 |
0.478 |
14.805 |
1 |
0 |
0 |
0 |
0 |
|
0 |
LINE_BC1 |
205 |
0.990 |
24.809 |
1 |
487 |
0 |
0 |
0 |
|
9 |
283
QUEUE |
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY |
|||||||||
PAKET |
|
24 |
14 |
|
514 |
3 |
17.407 |
173.964 |
174.985 |
0 |
NAK |
|
10 |
2 |
|
511 |
47 |
6.206 |
62.389 |
68.709 |
0 |
BUF |
10 |
10 |
|
380 |
148 |
7.883 |
106.559 |
174.537 |
0 |
|
ERR1 |
|
3 |
3 |
|
3 |
0 |
1.321 |
2262.663 |
2262.663 |
0 |
ERR2 |
127 |
127 |
127 |
0 |
49.265 |
1992.618 |
1992.618 |
0 |
||
CEC XN |
PRI |
|
M1 |
ASSEM CURRENT NEXT PARAMETER |
VALUE |
|||||
487 |
0 |
|
4849.312 |
487 |
12 |
13 |
|
|
||
FEC XN |
PRI |
|
BDT |
ASSEM CURRENT NEXT PARAMETER |
VALUE |
|||||
515 |
|
0 |
|
5138.721 |
515 |
0 |
1 |
|
|
|
512 |
|
0 |
|
5148.770 |
512 |
8 |
9 |
|
|
|
508 |
|
0 |
|
5155.116 |
508 |
19 |
20 |
|
|
Из отчета видно, что при обработке 500 заявок на втором буфере возникла очень большая потеря данных, что говорит о том, что емкость буфера в 10 ячеек очень мала и ее необходимо значительно увеличить, но и в первом буфере есть потери, а значит и его необходимо увеличивать [52].
Взадаче было необходимо улучшить работу программы
спомощью увеличения буферов, не трогая остальные параметры. Это и было сделано в следующей программе. Размеры буферов увеличивались, пока количество потерянных кадров не стала равна нулю.
Generate 10,5; входной поток
QUEUE paket; очередь для определения времени жизни пакета
TEST L Q$NAK,29,err1_gbye; определение, не переполнен ли накопитель 1
QUEUE NAK; поставить в накопитель 1
transfer 0.5,ab1,ab2; равновероятнаяпередачаполюбойиздвухлиний
ab1 seize line_ab1; занять линию ab1 depart nak; убрать из накопителя advance 18,7; передать
release line_ab1; освободить линию
TEST L Q$buf,51,err2_gbye; определение,непереполненлинакопитель2
284
QUEUE buf; поставить в накопитель 2
seize line_bc1;занять линию bc1 depart buf; убрать из накопителя advance 25,3; передать
release line_bc1; освободить линию bc1 transfer ,gbye; заявка дошла
; то же самое для линии ab2 и bc2 ab2 seize line_ab2
depart nak advance 20,5 release line_ab2
TEST L Q$buf,51,err2_gbye QUEUE buf
seize line_bc2 depart buf advance 15,5 release line_bc2 transfer ,gbye
err1_gbye QUEUE err1; очередь подсчета потерянных изза переполнения накопителя 1
transfer ,gbye
err2_gbye Queue err2; очередь подсчета потерянных изза переполнения накопителя 2
gbye Depart Paket; пакет выходит из системы terminate 1
start 500
В результате моделирования был получен следующий
отчет.
GPSS World Simulation Report - Untitled Model 1.39.1
|
Tuesday, May 17, 2016 22:48:00 |
|||
START TIME |
END TIME BLOCKS FACILITIES STORAGES |
|||
0.000 |
5663.705 |
32 |
4 |
0 |
NAME |
VALUE |
|
|
|
AB1 |
6.000 |
|
|
|
|
|
|
|
285 |
AB2 |
|
17.000 |
|
|
|
|
|
|
BUF |
|
10004.000 |
|
|
|
|
|
|
ERR1 |
|
UNSPECIFIED |
|
|
|
|
|
|
ERR1_GBYE |
28.000 |
|
|
|
|
|
|
|
ERR2 |
|
UNSPECIFIED |
|
|
|
|
|
|
ERR2_GBYE |
30.000 |
|
|
|
|
|
|
|
GBYE |
|
31.000 |
|
|
|
|
|
|
LINE_AB1 |
10003.000 |
|
|
|
|
|
|
|
LINE_AB2 |
10002.000 |
|
|
|
|
|
|
|
LINE_BC1 |
10006.000 |
|
|
|
|
|
|
|
LINE_BC2 |
10005.000 |
|
|
|
|
|
|
|
NAK |
|
10001.000 |
|
|
|
|
|
|
PAKET |
|
10000.000 |
|
|
|
|
|
|
LABEL |
LOC BLOCK TYPE ENTRY COUNT CURRENT |
|
COUNT RETRY |
|||||
|
1 |
GENERATE |
574 |
|
|
|
0 |
0 |
|
2 |
QUEUE |
574 |
|
|
|
0 |
0 |
|
3 |
TEST |
574 |
|
|
|
0 |
0 |
|
4 |
QUEUE |
574 |
|
|
|
0 |
0 |
|
5 |
TRANSFER |
574 |
|
|
|
21 |
0 |
AB1 |
6 |
SEIZE |
278 |
|
|
|
0 |
0 |
|
7 |
DEPART |
278 |
|
|
|
0 |
0 |
|
8 |
ADVANCE |
278 |
|
|
|
1 |
0 |
|
9 |
RELEASE |
277 |
|
|
|
0 |
0 |
|
10 |
TEST |
277 |
|
|
|
0 |
0 |
|
11 |
QUEUE |
277 |
|
|
|
50 |
0 |
|
12 |
SEIZE |
227 |
|
|
|
0 |
0 |
|
13 |
DEPART |
227 |
|
|
|
0 |
0 |
|
14 |
ADVANCE |
227 |
|
|
|
1 |
0 |
|
15 |
RELEASE |
226 |
|
|
|
0 |
0 |
|
16 |
TRANSFER |
226 |
|
|
|
0 |
0 |
AB2 |
17 |
SEIZE |
275 |
|
|
|
0 |
0 |
|
18 |
DEPART |
275 |
|
|
|
0 |
0 |
|
19 |
ADVANCE |
275 |
|
|
|
1 |
0 |
|
20 |
RELEASE |
274 |
|
|
|
0 |
0 |
|
21 |
TEST |
274 |
|
|
|
0 |
0 |
|
22 |
QUEUE |
274 |
|
|
|
0 |
0 |
|
23 |
SEIZE |
274 |
|
|
|
0 |
0 |
|
24 |
DEPART |
274 |
|
|
|
0 |
0 |
|
25 |
ADVANCE |
274 |
|
|
|
0 |
0 |
|
26 |
RELEASE |
274 |
|
|
|
0 |
0 |
|
27 |
TRANSFER |
274 |
|
|
|
0 |
0 |
ERR1_GBYE |
28 |
QUEUE |
0 |
|
|
|
0 |
0 |
|
29 |
TRANSFER |
0 |
|
|
|
0 |
0 |
ERR2_GBYE |
30 |
QUEUE |
0 |
|
|
|
0 |
0 |
GBYE |
31 |
DEPART |
500 |
|
|
|
0 |
0 |
|
32 |
TERMINATE |
500 |
|
|
|
0 |
0 |
FACILITY |
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY |
|||||||
LINE_AB2 |
275 |
0.983 20.245 |
1 |
532 |
0 |
0 |
0 |
19 |
286
LINE_AB1 |
278 |
0.894 |
18.206 |
1 |
570 |
0 |
0 |
0 |
2 |
LINE_BC2 |
274 |
0.728 |
15.053 |
1 |
0 |
0 |
0 |
0 |
0 |
LINE_BC1 |
227 |
0.991 |
24.725 |
1 |
473 |
0 |
0 |
0 |
50 |
QUEUE |
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY |
|||||||
PAKET |
77 |
74 |
574 |
0 |
41.379 |
408.292 |
408.292 |
0 |
NAK |
29 |
21 |
574 |
42 |
19.631 |
193.698 |
208.990 |
0 |
BUF |
51 |
50 |
551 |
243 |
18.153 |
186.590 |
333.803 |
0 |
FEC XN |
PRI |
BDT |
ASSEM CURRENT NEXT PARAMETER VALUE |
||
575 |
0 |
5667.077 |
575 |
0 |
1 |
532 |
0 |
5668.845 |
532 |
19 |
20 |
570 |
0 |
5670.107 |
570 |
8 |
9 |
473 |
0 |
5678.986 |
473 |
14 |
15 |
Из отчета видно, что параметры ERR1 и ERR2 пропали, а значит, потерь пакетов нет, этого удалось добиться при минимальных размерах буферов: первый29 ячеек, а второй51 ячейку.
7.3. Модель функционирования направления связи
(на примере AnyLogic)
7.3.1. Постановка задачи
Направление связи состоит из двух каналов (основного и резервного) и общего входного буфера емкостью на Еmk сообщений [6,8].
На направление поступают два потока сообщений с экспоненциально распределенными интервалами времени, средние значения которых Т1 = 3 мин и Т2 = 4 мин. При нормальной работе сообщения передаются по основному каналу. Время передачи одного сообщения распределено по экспоненциальному закону со средним значением Т3 = 2 мин.
В основном канале происходят сбои через интервалы времени, распределенные по экспоненциальному закону со средним значением Т4 = 15 мин. Если сбой происходит во время передачи, то сообщение теряется. За время Т5 = 5 с за-
287
пускается резервный канал, который передает сообщения, начиная с очередного. Время передачи одного сообщения распределено по экспоненциальному закону со средним значением Т6 = 3 мин.
Основной канал восстанавливается. Время восстановления канала подчинено экспоненциальному закону со средним значением Т7 = 2 мин. После восстановления резервный канал выключается и основной канал продолжает работу с очередного сообщения.
Необходимо разработать имитационную модель и провести исследование функционирования направления связи в течение 2 ч.
Определить: рациональную емкость накопителя; загрузку основного и резервного каналов связи; вероятности передачи сообщений потока 1 и потока 2; вероятность передачи сообщений направлением связи в целом.
Направление связи представляет собой систему массового обслуживания разомкнутого типа с ожиданием и с отказами из-за ограниченной ёмкости входного буфера. А также с выходами из строя (временного не функционирования) основного канала.
В модели сообщения следует представлять заявками, основной и резервный канал — одноканальными устройствами (ОКУ), входной буфер (накопитель) — очередью. В очереди следует использовать дисциплину обслуживания FIFO.
Введём масштабирование: 1 единица модельного времени соответствует 1 с, то есть, например, время моделирования равно 2 часам, тогда 2*60*60 = 7200 единиц модельного времени. Аналогично Т1 = 120, Т2 =240 и т.д.
Декомпозиция системы и состав сегментов модели определяются разработчиком.
Введём в модели функционирования направления связи следующие сегменты: исходные данные; источники сообщений; буфер, основной и резервный каналы связи; имитатор отказов основного канала; результаты моделирования.
288
7.3.2. Модель направления связи в AnyLogic. Исходные данные
Для ввода исходных данных используем элементы Па-
раметр.
1.Выполните команду Файл/Создать/Модель на панели инструментов.
2.В поле Имя модели диалогового окна Новая модель введите Направление связи. Выберите каталог, в котором будут сохранены файлы модели. Щёлкните кнопку Го-
тово.
3.Полагаем вначале, что все сегменты модели мы сможем разместить так, что они будут видны в ходе работы модели. В Палитре выделите Презентация.
4.Перетащите элемент Скругленный прямоуголь-
ник для размещения элементов исходных данных.
5.На странице Местоположение и размер панели Свойства: введите: X: 630, Y: 20, Ширина: 320, Высота:
280.
6.Перетащите элемент text и на странице Текст панели Свойства вместо text введите Исходные данные.
7.В Палитре выделите Основная. Перетащите эле-
менты Параметр на элемент с именем Исходные данные.
Разместите их и дайте имена так, как показано на рис. 7.17. Значения свойств установите согласно табл. 7.1.
Замечание. В данной модели (а это возможно и в любых других моделях) все идентификаторы на русском языке.
289
Рис.7.17.Размещениеэлементовдлявводаисходныхданных
|
|
Таблица7.1 |
|
|
|
|
|
|
Параметр |
|
|
Имя |
Тип |
Значение |
|
|
|
по умолчанию |
|
интер сообщ потока1 |
double |
180 |
|
интер сообщ потока2 |
double |
240 |
|
|
|
|
|
ёмкость_буфера |
int |
5 |
|
|
|
|
|
время передачи осн кан |
double |
120 |
|
время передачи_рез кан |
double |
180 |
|
|
|
|
|
время_вкл_рез_кан |
double |
10 |
|
|
|
|
|
времянаработказоснкан |
double |
900 |
|
время восстан оси кан |
double |
120 |
|
|
|
|
|
290