Файл: Основные задания к самостоятельным работам в системе 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-й поток с наивысшим приоритетом