Имитационное моделирование систем массового обслуживания…
7
0
загр
очер
очер
0, 346;
0, 077;
0, 654;
0, 385;
11, 7647 мин.
m
p
p
K
Q
Т
Исходный код модели на формальном языке, похожем на GPSS,
с комментариями представлен в листинге 1; комментарии в каждой
строчке следуют после символа «;».
Листинг 1
; Замкнутая СМО с m источниками заявок
generate 0,0,1; Из блока выходит 1 транзакт (первый источник)
assigni 1,Met1; Номер блока с меткой Met1 помещается в первый целочисленный
параметр транзакта
Met1 advance exponential(1, 1/60); Задержка - моделирование работы без сбоев
transfer Obsl; Транзакт отправляем на метку Obsl, где моделируется сбой
generate 0,0,1; Из блока выходит 1 транзакт (второй источник)
assigni 1,Met2; Номер блока с меткой Met2 помещается в параметр транзакта
Met2 advance exponential(2, 1/60); Задержка - моделирование работы без сбоев
transfer Obsl; Транзакт отправляем на метку Obsl, где моделируется сбой
generate 0,0,1; Из блока выходит 1 транзакт (третий источник)
assigni 1,Met3; Номер блока с меткой Met3 помещается в параметр транзакта
Met3 advance exponential(3, 1/60); Задержка - моделирование работы без сбоев
Obsl queue 1; Занимаем очередь с номером 1
test e q1,2,Prop3; Если в очереди 2 заявки, то идем далее, иначе - на метку Prop3
savevalue t2,ac1; Запоминаем время, когда в системе стало максимальное число
заявок
Prop3 seize 1; Занимаем устройство с номером 1
test e q1,2,Prop4; Если в очереди 2 заявки, то идем далее, иначе - на метку Prop4
savevalue T_M,(x$T_M+ac1-x$t2); Считаем общее время, когда в системе было мак-
симальное число заявок
Prop4 depart 1; Освобождаем очередь с номером 1
advance exponential(4, 0.05); Задержка - моделирование устранения сбоя
release 1; Освобождаем устройство с номером 1
Prop1 transfer pi1; Транзакт возвращается на блок, номер которого в первом цело-
численном параметре