Пример 6.2. Рассмотрим ситуацию примера 6.1, когда мы хотим получить информацию о количестве обработанных заявок каждого из трех видов. Допустим, до момента начала моделирования уже было обработано 20, 10 и 30 заявок со 2-м, 3-м и 4-м уровнем приоритета соответственно. Для их описания введем сохраняемые величины SPRIOR2, SPRIOR3 и SPRIOR4.
Задать ненулевые начальные значения сохраняемых величин можно при помощи оператора INITIAL, а увеличить либо уменьшить их на определенное значение при помощи блока SAVEVALUE . В нашем примере при прохождении транзакта через соответствующий блок SAVEVALUE к значению сохраняемой величины добавляется единица. Для изучения очереди используем таблицу времени пребывания в очереди TCHERGA. Общее количество обслуживавшихся заявок определим двумя способами: с использованием таблицы KONTR, куда запишем число входов в блок OBSL (для этого использован СЧА N$), а также сохраняемой величины KONTR_2, в которую также записываем число входов в блок OBSL. Для определения уровня приоритета проходящего транзакта используется блок TEST. В нем производится сравнение приоритета транзакта, находящегося в СЧА PR с заданным значением. Ниже представлена соответствующая модель, а результаты за период 480 единиц модельного времени – на рисунке 6.1.
100 INITIAL X$SPRIOR2,20
101 INITIAL X$SPRIOR3,10
102 INITIAL X$SPRIOR4,30
105 TCHERGA QTABLE CHERGA,0,20,23
106 KONTR TABLE N$OBSL,0,2001,3
110 GENERATE 50,FN$EXPS,,,3
112 TRANSFER ,VHOD
114 GENERATE (Exponential(1,0,20)),,,,2
116 TRANSFER ,VHOD
118 GENERATE (Exponential(1,0,15))
119 PRIORITY 4
120 VHOD QUEUE CHERGA
122 OBSL SEIZE PRIBOR
135 DEPART CHERGA
140 ADVANCE 10,FN$EXPS
145 RELEASE PRIBOR
146 TEST E PR,2,PRIOR3
147 SAVEVALUE SPRIOR2+,1
149 TRANSFER ,VIHOD
150 PRIOR3 TEST E PR,3,PRIOR4
151 SAVEVALUE SPRIOR3+,1
152 TRANSFER ,VIHOD
153 PRIOR4 SAVEVALUE SPRIOR4+,1
156 VIHOD TABULATE KONTR
160 SAVEVALUE KONTR_2,N$OBSL
260 TERMINATE
Рисунок 6.1 – Результаты моделирования СМО с относительными приоритетами
Достарыңызбен бөлісу: |