Котором появилось сообщение
OPROS FUNCTION P1,D4;Функция, задающая
Д/2,3/3,4/4,1; последовательность опроса НК
Опрос каналов
GENERATE 10,„1; Генерация сообщений, опрашивающих каналы
ASSIGN 1,4; В первом параметре фиксируется
; номер последнего опрошенного НК
NEXT ASSIGN 1,FN$OPROS; Номер опрашиваемого НК
SEIZE VK; Занятие ВК
ADVANCE 50; Время опроса
TESTNE CH*l,0,MREL; Есть ли сообщения в НК?
UNLINK P1,MESS,1.; Разрешить передачу по ВК
MREL RELEASE VK; Освободить ВК
ADVANCE 10; Время переключения
TRANSFER,NEXT; Продолжить опрос НК
*Передача сообщений по каналам
GENERATE 1500,500; Генерация сообщений ^Ш
ASSIGN 1,FN$NUMBKS; Номер НК, в котором Н
; появилось сообщение
LINK P1,FIFO; Ожидать опроса канала
MESS SEIZE VK; Занять ВК для передачи
ADVANCE 500,60; Передача сообщений
RELEASE MPD; Освободить ВК
TERMINATE 1
START 1000; Передать 1000 сообщений
Пример 4.57
На вход СМО поступает пуассоновский поток заявок со средним временем 55 с, которые последовательно обслуживаются двумя устройствами. Порядок выбора требований из очереди для обслуживания первым и вторым устройствами - LIFO. Заявки покидают систему не обслужившись, если на момент входа заявки в первую очередь в ней есть больше четырех заявок или время нахождения во второй очереди превышает 40 с. Время обслуживания заявки первым устройством составляет 30 с, вторым - 20 ± 5 с. Необходимо смоделировать прохождение через СМО 100 заявок.
Программа:
EXP FUNCTION RN1,C24
L 00,. 104/.200,.222/.300,.355/.400,.509
.500,.690/.600,.915/. 700,1.200/.750,1.380
L.830/.880,2.120/.900,2.300
.920,2.520/.940,2.810/.950,2.990/.960,3.200
.970,3.500/.980,3.900/.990,4.600/.995,5.300
.998,6.200/.999,7/1,8
20 GENERATE 55,FN$EXP
30 TESTL CH$SP1,4,TER1; В списке SP1 меньше
; четырех транзактов?
; Нет - покинуть систему.
QUEUE OCH1; Да - стать в очередь.
LINK SP1,L1FO,MUS1
MUSI SEIZE USTR1
DEPART OCH1
ADVANCE 30
RELEASE USTR1
UNLINK SP1JV1US1
ASSIGN TOCH2.C1; Запомнить время прихода
120 ASSIGN TOCH2+,40; Добавить 40 с
LINK SP2,LIFO,MUS2
MUS2 SEIZE USTR2
ADVANCE 20,5
RELEASE USTR2
170 UNLINK LE SP2,TER1,ALL,TOCH2,C1; Время < 40 c?
G0 UNLINK SP2,MUS2,1; Идти на обслуживание
L90 TER1 TERMINATE 1 200
START 100
В модели значения индикаторов списков пользователя позволяет определить состояние устройств обслуживания. Если в момент входа в блок LINK индикатор списка включен («1»), это означает, что соответствующее устройство занято и транзакт становится в начало списка SP1 или SP2 (LIFO), индикатор остается включенным Если индикатор списка выключен («0» - соответствующее устройство свободно) - он включается, а транзакт переходит на обслуживание в блок MUS1 или MUS2. В параметре с именем ТОСН транзакта запоминается момент времени, к которому транзакт должен попаст.ч на обслуживание устройством USTR2, в противном случае транзакт будет удален из модели блоком UNLINK (строка 170).