Файл: Основные задания к самостоятельным работам в системе gpss.docx
Добавлен: 09.11.2023
Просмотров: 76
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ОСНОВНЫЕ ЗАДАНИЯ К САМОСТОЯТЕЛЬНЫМ РАБОТАМ В СИСТЕМЕ GPSS
1. Задание для освоения темы: Построение имитационных моделей и сравнительный анализ характеристик одноканальной системы обслуживания заявок с заданными приоритетами.
Задача 1. Для одноканального устройства (ОКУ, пусть это процессор) при поступлении на вход одного потока заявок (транзактов – в терминологии GPSS) коэффициент загрузки определяется как отношение среднего времени обслуживания к среднему времени поступления входного потока заявок Тобсл/Т вх.
Пример программы:
Simulate
Generate 150,50
QUEUE OCH1 …
Seize OKU1
DEPART OCH1
ADVANCE 130,30
Release OKU1
Terminate
Generate 10000; время моделирования
Terminate 1
Start 1
Примечание : ожидаемый коэф. загрузки OKU1 равен: 130/150=0.87
Однако, если на ОКУ поступает два потока с равными интенсивностями (равные Твх) и с одинаковым временем обслуживания Тобсл , то коэфф. загрузки получается из отношения (2*Тобсл)/Твх, и очевидно, что при трёх потоках на входе ОКУ получаем формулу 3*Тобсл/Твх.
Пункты задания к самостоятельному выполнению темы 1.
Стройте схемы вариантов моделируемых СМО.
1. Приведённую выше программу запустить и проверить подтверждение ожидаемых результатов. Ваш вывод…
2. Провести с программой 3 серии экспериментов (для поиска времени моделирования, обеспечивающего стационарный режим работы модели – с точки зрения получения близких к ожидаемым статистическим значениям характеристик СМО), изменяя время моделирования: 100,200,300,… 1000, а затем с шагом 1000 от 1000до 10000,а затем от 10000 с шагом 10000 до 100000. Сравните результаты моделирования…(Для удобства сравнительного анализа результатов – свести в таблицы). Ваш вывод…- какой вариант (варианты) задания времени обслуживания обеспечивает ожидаемый результат коэффициента загрузки и других характеристик.
3. Построить схему и свою программу для ОКУ с тремя потоками на входе, имеющими равные интенсивности входа и соответственно одинаковые интенсивности обслуживания, задавая исходные данные, обеспечивающие коэф. загрузки 0.9. Результаты –ожидаем характеристики обслуживания для всех трёх потоков одинаковы!? Ваши комментарии…
4. Подправить программу п.3 для обслуживания трёх потоков, отличающихся наличием относительных приоритетов, например – для первого потока – приоритет равен 0 (эквивалентно отсутствию приоритета), для второго –равен 1, для третьего – равен 5. Ваши комментарии – по результатам. (пункт 4.1: Можете поменять приоритеты, задав, например, соответственно: 0, 10, 25). Сравните с результатами п.4. Ваши выводы…
5. Разработать программу для обслуживания четырёх потоков, отличающихся наличием относительных приоритетов, например – для первого потока – приоритет равен 0 , для второго – приоритет 1, для третьего – приоритет 5, для четвёртого – абсолютный приоритет. Ваши комментарии – сравнительный анализ результатов обслуживания четырёх потоков одной одноканальной СМО.
Ход работы:
1. Схема исходной СМО:
Файл REPORT:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 10000.000 9 1 0
NAME VALUE
OCH1 10000.000
OKU1 10001.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 65 0 0
2 QUEUE 65 0 0
3 SEIZE 65 0 0
4 DEPART 65 0 0
5 ADVANCE 65 1 0
6 RELEASE 64 0 0
7 TERMINATE 64 0 0
8 GENERATE 1 0 0
9 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
OKU1 65 0.837 128.774 1 66 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCH1 1 0 65 42 0.073 11.305 31.950 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
66 0 10063.903 66 5 6
67 0 10096.532 67 0 1
68 0 20000.000 68 0 8
Как видим, коэффициент загрузки прибора обслуживания OKU1 немного отличается от ожидаемого и составляет 0,837. Это отличие можно обосновать тем, что при моделировании используются случайные величины, поэтому полученные результаты и отличаются от теоретических: например, среднее время обслуживания составляет не 130, а 128,774 ед. времени.
2. Проведем с программой 3 серии экспериментов.
2.1. Изменяем время моделирования: 100,200,300,… 1000.
Результаты моделирования представим в виде таблицы:
| 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 |
UTIL. | 0 | 0,079 | 0,386 | 0,477 | 0,582 | 0,643 | 0,694 | 0,639 | 0,679 | 0,666 |
AVE.TIME | 0 | 15,763 | 115,763 | 95,426 | 96,950 | 96,392 | 121,392 | 102,273 | 122,273 | 110,943 |
2.2. Изменяем время моделирования: 1000,2000,3000,… 10000.
Результаты моделирования представим в виде таблицы:
| 1000 | 2000 | 3000 | 4000 | 5000 | 6000 | 7000 | 8000 | 9000 | 10000 |
UTIL. | 0,666 | 0,788 | 0,818 | 0,842 | 0,829 | 0,846 | 0,840 | 0,821 | 0,828 | 0,837 |
AVE.TIME | 110,943 | 121,255 | 129,160 | 129,462 | 125,639 | 126,919 | 127,751 | 128,822 | 128,471 | 128,774 |
2.3. Изменяем время моделирования: 10000,20000,30000,… 100000.
Результаты моделирования представим в виде таблицы:
| 10000 | 20000 | 30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000 |
UTIL. | 0,837 | 0,855 | 0,857 | 0,869 | 0,859 | 0,861 | 0,864 | 0,864 | 0,866 | 0,868 |
AVE.TIME | 128,774 | 129,519 | 129,783 | 130,113 | 129,424 | 129,470 | 129,487 | 129,370 | 129,667 | 129,948 |
Как видим по собранной статистике, только примерно к 20000 результаты имитационного моделирования почти вплотную приближаются к ожидаемым результатам – к этому моменту через систему прошло достаточно много транзактов. С дальнейшим увеличением времени моделирования загрузка прибора и среднее время обработки заявок в нем изменяются незначительно в сторону увеличения, и ко времени
=100000 практически сравниваются с ожидаемыми значениями.
3. Схема ОКУ с тремя потоками на входе:
Программа:
SIMULATE
GENERATE (Exponential (1,0,10)) ;1-й поток
ASSIGN 1,1 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (2,0,10)) ;2-й поток
ASSIGN 1,2 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (3,0,10)) ;3-й поток
ASSIGN 1,3 ;номер потока в 3-ем параметре
obsl QUEUE P1 ;стали в очередь
SEIZE OKU1 ;заняли прибор
DEPART P1 ;ушли из очереди
ADVANCE (Exponential (4,0,3)) ;обслуживание
RELEASE OKU1 ;закончили обслуживание
TERMINATE ;ушли из системы
GENERATE 100000 ;время моделирования
TERMINATE 1
START 1
Файл REPORT:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100000.000 16 1 0
NAME VALUE
OBSL 9.000
OKU1 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 9879 0 0
2 ASSIGN 9879 0 0
3 TRANSFER 9879 0 0
4 GENERATE 9883 0 0
5 ASSIGN 9883 0 0
6 TRANSFER 9883 0 0
7 GENERATE 9896 0 0
8 ASSIGN 9896 0 0
OBSL 9 QUEUE 29658 27 0
10 SEIZE 29631 0 0
11 DEPART 29631 0 0
12 ADVANCE 29631 1 0
13 RELEASE 29630 0 0
14 TERMINATE 29630 0 0
15 GENERATE 1 0 0
16 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
OKU1 29631 0.896 3.022 1 29633 0 0 0 27
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 35 10 9879 1000 3.157 31.952 35.551 0
2 38 8 9883 1015 3.252 32.903 36.669 0
3 35 9 9896 1007 3.151 31.838 35.445 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
29662 0 100002.929 29662 0 1
29633 0 100004.800 29633 12 13 1 3.000
29658 0 100011.203 29658 0 7
29661 0 100026.469 29661 0 4
29663 0 200000.000 29663 0 15
Как видим, при равных интенсивностях поступления заявок и обслуживания, параметры ожидания обслуживания у всех потоков примерно одинаковы – средняя длина очереди немногим выше 3 транзактов в очереди, а среднее время ожидания – немного превышает 30 единиц времени.
4. Вносим относительные приоритеты в модель
Программа:
SIMULATE
GENERATE (Exponential (1,0,10)) ;1-й поток без приоритета
ASSIGN 1,1 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (2,0,10)),,,,5 ;2-й поток с небольшим приоритетом
ASSIGN 1,2 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (3,0,10)),,,,10 ;3-й поток с наивысшим приоритетом
ASSIGN 1,3 ;номер потока в 3-ем параметре
obsl QUEUE P1 ;стали в очередь
SEIZE OKU1 ;заняли прибор
DEPART P1 ;ушли из очереди
ADVANCE (Exponential (4,0,3)) ;обслуживание
RELEASE OKU1 ;закончили обслуживание
TERMINATE ;ушли из системы
GENERATE 100000 ;время моделирования
TERMINATE 1
START 1
Файл REPORT:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100000.000 16 1 0
NAME VALUE
OBSL 9.000
OKU1 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 9879 0 0
2 ASSIGN 9879 0 0
3 TRANSFER 9879 0 0
4 GENERATE 9883 0 0
5 ASSIGN 9883 0 0
6 TRANSFER 9883 0 0
7 GENERATE 9896 0 0
8 ASSIGN 9896 0 0
OBSL 9 QUEUE 29658 27 0
10 SEIZE 29631 0 0
11 DEPART 29631 0 0
12 ADVANCE 29631 1 0
13 RELEASE 29630 0 0
14 TERMINATE 29630 0 0
15 GENERATE 1 0 0
16 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
OKU1 29631 0.896 3.022 1 29660 0 0 0 27
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 96 27 9879 1000 8.231 83.320 92.703 0
2 21 0 9883 1015 0.939 9.496 10.583 0
3 8 0 9896 1007 0.389 3.935 4.381 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
29662 0 100002.929 29662 0 1
29660 5 100004.800 29660 12 13 1 2.000
29658 10 100011.203 29658 0 7
29661 5 100026.469 29661 0 4
29663 0 200000.000 29663 0 15
Добавление в модель относительных приоритетов кардинально изменило статистику ожидания заявок: поток с наивысшим приоритетом имеет наименьшую среднюю очередь ожидания, что позволяет заявкам этого потока ожидать начала обслуживания в среднем всего 3,935 ед. времени, а заявки потока, имеющего средний приоритет в обслуживании, проводят в очереди примерно втрое времени больше. Что касается заявок потока без приоритета, то его показатели очереди ожидания значительно ухудшились в сравнении с моделью без приоритетов – средняя длина очереди ожидания этих заявок теперь превышает восемь заявок, а среднее время ожидания – более восьмидесяти единиц времени.
5. Схема ОКУ с четырьмя потоками на входе:
Программа:
SIMULATE
GENERATE (Exponential (1,0,13)) ;1-й поток без приоритета
ASSIGN 1,1 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (2,0,13)),,,,5 ;2-й поток с небольшим приоритетом
ASSIGN 1,2 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (3,0,13)),,,,10 ;3-й поток с большим приоритетом
ASSIGN 1,3 ;номер потока в 3-ем параметре
obsl QUEUE P1 ;стали в очередь
SEIZE OKU1 ;заняли прибор
DEPART P1 ;ушли из очереди
ADVANCE (Exponential (5,0,3)) ;обслуживание
RELEASE OKU1 ;закончили обслуживание
TERMINATE ;ушли из системы
GENERATE (Exponential (4,0,13)),,,,20 ;4-й поток с наивысшим приоритетом