Файл: Основные задания к самостоятельным работам в системе gpss.docx
Добавлен: 09.11.2023
Просмотров: 265
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ОСНОВНЫЕ ЗАДАНИЯ К САМОСТОЯТЕЛЬНЫМ РАБОТАМ В СИСТЕМЕ GPSS1. Задание для освоения темы: Построение имитационных моделей и сравнительный анализ характеристик одноканальной системы обслуживания заявок с заданными приоритетами.Задача 1. Для одноканального устройства (ОКУ, пусть это процессор) при поступлении на вход одного потока заявок (транзактов – в терминологии GPSS) коэффициент загрузки определяется как отношение среднего времени обслуживания к среднему времени поступления входного потока заявок Тобсл/Т вх. Пример программы: SimulateGenerate 150,50QUEUE OCH1 …Seize OKU1DEPART OCH1ADVANCE 130,30Release OKU1TerminateGenerate 10000; время моделированияTerminate 1Start 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 STORAGES0.000 10000.000 9 1 0NAME VALUE OCH1 10000.000OKU1 10001.000LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY1 GENERATE 65 0 02 QUEUE 65 0 03 SEIZE 65 0 04 DEPART 65 0 05 ADVANCE 65 1 06 RELEASE 64 0 07 TERMINATE 64 0 08 GENERATE 1 0 09 TERMINATE 1 0 0FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAYOKU1 65 0.837 128.774 1 66 0 0 0 0QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRYOCH1 1 0 65 42 0.073 11.305 31.950 0FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE66 0 10063.903 66 5 667 0 10096.532 67 0 168 0 20000.000 68 0 8Как видим, коэффициент загрузки прибора обслуживания OKU1 немного отличается от ожидаемого и составляет 0,837. Это отличие можно обосновать тем, что при моделировании используются случайные величины, поэтому полученные результаты и отличаются от теоретических: например, среднее время обслуживания составляет не 130, а 128,774 ед. времени.2. Проведем с программой 3 серии экспериментов.2.1. Изменяем время моделирования: 100,200,300,… 1000.Результаты моделирования представим в виде таблицы:
2.2. Изменяем время моделирования: 1000,2000,3000,… 10000.Результаты моделирования представим в виде таблицы:
2.3. Изменяем время моделирования: 10000,20000,30000,… 100000.Результаты моделирования представим в виде таблицы:
Как видим по собранной статистике, только примерно к 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 STORAGES0.000 100000.000 16 1 0NAME VALUE OBSL 9.000OKU1 10000.000LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY1 GENERATE 9879 0 02 ASSIGN 9879 0 03 TRANSFER 9879 0 04 GENERATE 9883 0 05 ASSIGN 9883 0 06 TRANSFER 9883 0 07 GENERATE 9896 0 08 ASSIGN 9896 0 0OBSL 9 QUEUE 29658 27 010 SEIZE 29631 0 011 DEPART 29631 0 012 ADVANCE 29631 1 013 RELEASE 29630 0 014 TERMINATE 29630 0 015 GENERATE 1 0 016 TERMINATE 1 0 0FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAYOKU1 29631 0.896 3.022 1 29633 0 0 0 27QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY1 35 10 9879 1000 3.157 31.952 35.551 02 38 8 9883 1015 3.252 32.903 36.669 03 35 9 9896 1007 3.151 31.838 35.445 0FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE29662 0 100002.929 29662 0 129633 0 100004.800 29633 12 13 1 3.00029658 0 100011.203 29658 0 729661 0 100026.469 29661 0 429663 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 STORAGES0.000 100000.000 16 1 0NAME VALUE OBSL 9.000OKU1 10000.000LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY1 GENERATE 9879 0 02 ASSIGN 9879 0 03 TRANSFER 9879 0 04 GENERATE 9883 0 05 ASSIGN 9883 0 06 TRANSFER 9883 0 07 GENERATE 9896 0 08 ASSIGN 9896 0 0OBSL 9 QUEUE 29658 27 010 SEIZE 29631 0 011 DEPART 29631 0 012 ADVANCE 29631 1 013 RELEASE 29630 0 014 TERMINATE 29630 0 015 GENERATE 1 0 016 TERMINATE 1 0 0FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAYOKU1 29631 0.896 3.022 1 29660 0 0 0 27QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY1 96 27 9879 1000 8.231 83.320 92.703 02 21 0 9883 1015 0.939 9.496 10.583 03 8 0 9896 1007 0.389 3.935 4.381 0FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE29662 0 100002.929 29662 0 129660 5 100004.800 29660 12 13 1 2.00029658 10 100011.203 29658 0 729661 5 100026.469 29661 0 429663 0 200000.000 29663 0 15Добавление в модель относительных приоритетов кардинально изменило статистику ожидания заявок: поток с наивысшим приоритетом имеет наименьшую среднюю очередь ожидания, что позволяет заявкам этого потока ожидать начала обслуживания в среднем всего 3,935 ед. времени, а заявки потока, имеющего средний приоритет в обслуживании, проводят в очереди примерно втрое времени больше. Что касается заявок потока без приоритета, то его показатели очереди ожидания значительно ухудшились в сравнении с моделью без приоритетов – средняя длина очереди ожидания этих заявок теперь превышает восемь заявок, а среднее время ожидания – более восьмидесяти единиц времени.5. Схема ОКУ с четырьмя потоками на входе:Программа:SIMULATEGENERATE (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-й поток с наивысшим приоритетом
4. Подправить программу п.3 для обслуживания трёх потоков, отличающихся наличием относительных приоритетов, например – для первого потока – приоритет равен 0 (эквивалентно отсутствию приоритета), для второго –равен 1, для третьего – равен 5. Ваши комментарии – по результатам. (пункт 4.1: Можете поменять приоритеты, задав, например, соответственно: 0, 10, 25). Сравните с результатами п.4. Ваши выводы…5. Разработать программу для обслуживания четырёх потоков, отличающихся наличием относительных приоритетов, например – для первого потока – приоритет равен 0 , для второго – приоритет 1, для третьего – приоритет 5, для четвёртого – абсолютный приоритет. Ваши комментарии – сравнительный анализ результатов обслуживания четырёх потоков одной одноканальной СМО.Ход работы:1. Схема исходной СМО:Файл REPORT:START TIME END TIME BLOCKS FACILITIES STORAGES0.000 10000.000 9 1 0NAME VALUE OCH1 10000.000OKU1 10001.000LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY1 GENERATE 65 0 02 QUEUE 65 0 03 SEIZE 65 0 04 DEPART 65 0 05 ADVANCE 65 1 06 RELEASE 64 0 07 TERMINATE 64 0 08 GENERATE 1 0 09 TERMINATE 1 0 0FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAYOKU1 65 0.837 128.774 1 66 0 0 0 0QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRYOCH1 1 0 65 42 0.073 11.305 31.950 0FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE66 0 10063.903 66 5 667 0 10096.532 67 0 168 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 |
| 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 |
=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 STORAGES0.000 100000.000 16 1 0NAME VALUE OBSL 9.000OKU1 10000.000LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY1 GENERATE 9879 0 02 ASSIGN 9879 0 03 TRANSFER 9879 0 04 GENERATE 9883 0 05 ASSIGN 9883 0 06 TRANSFER 9883 0 07 GENERATE 9896 0 08 ASSIGN 9896 0 0OBSL 9 QUEUE 29658 27 010 SEIZE 29631 0 011 DEPART 29631 0 012 ADVANCE 29631 1 013 RELEASE 29630 0 014 TERMINATE 29630 0 015 GENERATE 1 0 016 TERMINATE 1 0 0FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAYOKU1 29631 0.896 3.022 1 29633 0 0 0 27QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY1 35 10 9879 1000 3.157 31.952 35.551 02 38 8 9883 1015 3.252 32.903 36.669 03 35 9 9896 1007 3.151 31.838 35.445 0FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE29662 0 100002.929 29662 0 129633 0 100004.800 29633 12 13 1 3.00029658 0 100011.203 29658 0 729661 0 100026.469 29661 0 429663 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 STORAGES0.000 100000.000 16 1 0NAME VALUE OBSL 9.000OKU1 10000.000LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY1 GENERATE 9879 0 02 ASSIGN 9879 0 03 TRANSFER 9879 0 04 GENERATE 9883 0 05 ASSIGN 9883 0 06 TRANSFER 9883 0 07 GENERATE 9896 0 08 ASSIGN 9896 0 0OBSL 9 QUEUE 29658 27 010 SEIZE 29631 0 011 DEPART 29631 0 012 ADVANCE 29631 1 013 RELEASE 29630 0 014 TERMINATE 29630 0 015 GENERATE 1 0 016 TERMINATE 1 0 0FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAYOKU1 29631 0.896 3.022 1 29660 0 0 0 27QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY1 96 27 9879 1000 8.231 83.320 92.703 02 21 0 9883 1015 0.939 9.496 10.583 03 8 0 9896 1007 0.389 3.935 4.381 0FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE29662 0 100002.929 29662 0 129660 5 100004.800 29660 12 13 1 2.00029658 10 100011.203 29658 0 729661 5 100026.469 29661 0 429663 0 200000.000 29663 0 15Добавление в модель относительных приоритетов кардинально изменило статистику ожидания заявок: поток с наивысшим приоритетом имеет наименьшую среднюю очередь ожидания, что позволяет заявкам этого потока ожидать начала обслуживания в среднем всего 3,935 ед. времени, а заявки потока, имеющего средний приоритет в обслуживании, проводят в очереди примерно втрое времени больше. Что касается заявок потока без приоритета, то его показатели очереди ожидания значительно ухудшились в сравнении с моделью без приоритетов – средняя длина очереди ожидания этих заявок теперь превышает восемь заявок, а среднее время ожидания – более восьмидесяти единиц времени.5. Схема ОКУ с четырьмя потоками на входе:Программа:SIMULATEGENERATE (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-й поток с наивысшим приоритетом