В начале алгоритма ставится оператор SIMU, необходимый для запуска модели на исполнение. Следующим идёт оператор EQU. Он устанавливается для присвоения функции с именем EXP значения 1. Функция EXP определяет время, через которое формируются задания. Далее стоит оператор FUNC. С его помощью описывается функция с именем EXP: тип функции, закон распределения. Формирование входного потока осуществляет блок 1. Далее блоком 2 производится постановка задания в очередь для дальнейшей обработки. Вывод задания из очереди осуществляет блок 3. Далее управление передаётся блоку 4, который предназначен для того чтобы задание заняло устройство обработки. Блоком 5 имитируется обслуживание путём выделения транзакту определённого времени нахождения в блоке. Вывод из устройства, обслуженного транзакта, осуществляется блоком 6. Блок 7 осуществляет постановку транзакта в очередь при входе следующий блок контроля. Далее блок 8 осуществляет вывод задания из очереди. Блоком 9 осуществляется занятие транзактом следующего устройства контроля. Затем блоком 10 имитируется процесс контроля путём выделения транзакту определённого времени нахождения в блоке. Далее 11 блок производит вывод транзакта из устройства контроля. Следующий идёт 12 блок, с помощью которого имитируется правило обслуживания. Данный блок производит контроль заданий, после прохождения этого блока 25% заданий отбраковывается и возвращаются на ввод и повторную обработку, а остальная часть заданий попадает в блок 13, где происходит их уничтожение. Блоком 14 создаётся транзакт, который определяет время моделирования. Далее следует блок 15, который определяет число удаляемых транзактов. Затем управление передаётся оператору STAR 1, который определяет число прогонов модели. Далее следует оператор END, который означает окончание алгоритма.
В связи с высокой вероятностью переполнения очереди меняем управляемые переменные, увеличиваем скорость обработки заданий тем самым, уменьшая время на обработку задания. Возьмём скорость обработки 312,5 байт/мин тогда время обработки будет 99±45 с. Также меняем время контроля, возьмём это время равное в среднем 99 с.
Ниже приведен фрагмент листинга программы.
GPSSR/PC V1.1 7-DEC-2003 16:14 PAGE 1
kursovoy.LST=kursovoy.gps
LINE BLOCK
1 SIMU Запуск модели на исполнение
2 EXP EQU 1 Функции с именем EXP присвоить значение 1
3 EXP FUNC RN$1,C24 Функция с именем EXP является
случайной непрерывной и имеет 24 пары
точек
4 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38
5 .8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2
6 .97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 Координаты 24 пар точек
7 1 GENE 300,100 Создавать транзакты через каждые 300±100 с
8 2 M QUEU 1 Отправить транзакт в очередь №1
9 3 DEPA 1 Покинуть очередь №1
10 4 SEIZ 1 Транзакту занять устройство №1
11 5 ADVA 99,45 Задержать транзакт на 99±45 с
12 6 RELE 1 Покинуть устройство №1
13 7 QUEU 2 Отправить транзакт в очередь №2
14 8 DEPA 2 Покинуть очередь №2
15 9 SEIZ 2 Транзакту занять устройство №2
16 10 ADVA 99,FN$1 Задержать транзакт на 99 (значение функции
EXP) с
17 11 RELE 2 Покинуть устройство №2
18 12 TRAN .75,M1,M Если задания прошли контроль, то перейти к
метке М1 иначе к М2
19 13 M1 TERM При обращении к метке удалить
транзакт из системы
20 14 GENE 108000,,,1 Создавать транзакты через 108000 с
21 15 TERM 1 Уничтожить один транзакт
22 STAR 1 Число прогонов модели 1
23 END
SYMBOL VALUE SYMBOL VALUE
====== ===== ====== =====
EXP 1 M 2
M1 13
GPSSR/PC V1.1 7-DEC-2003 16:14 PAGE 3
kursovoy.LST=kursovoy.gps
RELATIVE CLOCK 108000 ABSOLUTE CLOCK 108000
BLOCK COUNTS
BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL
1 1 359 2 0 1144 3 75 1144
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.