Задание на лабораторные работы, страница 13
Описание файла
Документ из архива "Задание на лабораторные работы", который расположен в категории "". Всё это находится в предмете "моделирование систем" из 8 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "моделирование систем" в общих файлах.
Онлайн просмотр документа "Задание на лабораторные работы"
Текст 13 страницы из документа "Задание на лабораторные работы"
Пример 1. Смоделировать обработку 500 требований в системе с пятью каналами обслуживания и конечным накопителем величиной 10, если поступающие требования в систему подчиняются пуассоновскому закону с параметром требований в секунду, обработка требований происходит по экспоненциальному закону с параметром требований в секунду. Требование, заставшее систему заполненной, покидает ее.
Решение примера 1 приводится как программа 1.
Программа 1 |
simulate nak1 storage 10 exp1 function rn1,c45 0,0/0.1813,.2/.3297,.4/0.4512,.6/0.5507,.8/0.6321,1.0/0.6988,1.2 0.7534,1.4/0.7981,1.6/0.8347,1.8/0.8647,2.0/0.8892,2.2/0.9093,2.4 0.9257,2.6/0.9392,2.8/0.9502,3.0/0.9592,3.2/0.9666,3.4/0.9727,3.6 0.9776,3.8/0.9817,4.0/0.9850,4.2/0.9877,4.4/0.9899,4.6/0.9918,4.8 0.9933,5.0/0.9945,5.2/0.9955,5.4/0.9963,5.6/0.9970,5.8/0.9975,6.0 0.9980,6.2/0.9983,6.4/0.9986,6.6/0.9989,6.8/0.9991,7.0/0.9993,7.2 0.9994,7.4/0.9995,7.6/0.9996,7.8/0.9997,8.0/0.9997,8.2/0.9998,8.4 0.9998,8.6/0.9998,8.8 10 generate 10,fn$exp1 20 gate snf nak1,exit 30 enter nak1 40 gate NU 1,serv2 120 queue 1 130 seize 1 140 depart 1 150 advance 8,fn$exp1 160 release 1 170 transfer ,com1 200 serv2 gate NU 2,serv3 220 queue 2 230 seize 2 240 depart 2 250 advance 8,fn$exp1 260 release 2 270 transfer ,com1 300 serv3 gate NU 3,serv4 320 queue 3 330 seize 3 340 depart 3 350 advance 8,fn$exp1 360 release 3 370 transfer ,com1 400 serv4 gate NU 4,serv5 420 queue 4 430 seize 4 440 depart 4 450 advance 8,fn$exp1 460 release 4 470 transfer ,com1 500 serv5 gate NU 5,exit 520 queue 5 530 seize 5 540 depart 5 550 advance 8,fn$exp1 560 release 5 570 com1 leave nak1 900 exit1 terminate 1 1000 exit terminate start 500 end |
Анализ незаполненности накопителя производится в строке 20:
20 gate snf nak1,exit
Если накопитель nak1 оказывается незаполненным, то транзакты следуют к следующему по номеру блоку — к блоку ENTER, в противном случае транзакт удаляется из системы в соответствии с полем <B>, в котором задано имя EXIT блока TERMINATE без параметров.
Блоки GATE в режиме NU — устройство свободно анализируют соответствующие устройства: если устройство свободно, то транзакт направляется к следующему по номеру блоку, если устройство не свободно, то транзакты направляются к блоку, имя которого указывается в поле <B> соответствующего блока GATE в режиме NU.
Задание к примеру 1:
-
Изменить емкость накопителя от 10 до 1. Объяснить результаты моделирования.
-
Изменить поле <A> блоков ADVANCE от 3 до 10.
-
Изменить поле <A> блока GENERATE от 8 до 4 (при исходных полях <A> блоков ADVANCE).
-
Изменить количество пар точек, задаваемых в операторе FUNCTION: 15, 25, 35.
-
Написать программу для моделирования ситуации, когда транзакты поступают в устройства с равной вероятностью.
-
Для исходной программы выполнить 2-3 прогона.
СПИСКИ СИСТЕМЫ GPSS/PC
Интерпретатором GPSS/PC сообщения (транзакты) заносятся в списки, в которых они хранятся в зависимости от типа списка.
В списке текущих событий находятся сообщения, соответствующие событиям, время наступления которых меньше или равно текущему модельному времени.
Список пользователя содержит сообщения, удаленные пользователем из списка текущих событий и помещенные в список пользователя как временно неактивные. Со списком пользователя связаны блоки LINK и UNLINK.
Перевод сообщений из списка текущих событий в список пользователя осуществляется блоком LINK. Удаление сообщений из списка пользователя производится блоком UNLINK.
Пример 2. Требования поступают в систему через 202 мин. и направляются во второй канал обслуживания в течение 70 мин. По прошествии 70 мин. требования направляются на обслуживание в первый канал. Каждый из каналов производит обслуживание со временем 197 мин. Предусмотреть вывод требований в списки пользователя и их возврат на обслуживание в каналы. Первый канал обслуживает требования, 100 из которых полностью обслуживаются и выводятся из системы, а остальные требования отправляются на дообслуживание во второй канал. В первом канале обслуживание предусмотреть по дисциплине FIFO ( первым пришел, первым обслужился). Смоделировать процесс обслуживания требований и собрать статистику о работе каналов, возникающих очередях, списках пользователя.
Решение примера 2 приводится как программа 2.
Программа 2 |
simulate 10 generate 20,2 20 assign 13,7 30 test G c1,70,que2 40 queue 1; 1-я очередь 50 link waz1,fifo,chan1 60 chan1 seize 1; 1-е устройство с меткой chan1 70 depart 1 80 advance 19,7 90 release 1 100 unlink G waz1,chan1,1,13,6,que2 150 terminate 1 200 que2 queue 2; 2-я очередь с меткой que2 210 seize 2; 2-е устройство 220 depart 2 230 advance 19,7 240 release 2 250 terminate start 100 end |
В программе 2 два блока, распределяющие транзакты по каналам: блок TEST в режиме сравнения "больше" (G) и блок UNLINK, который удаляет транзакты из списка пользователя сначала в первое устройство, а потом во второе устройство (точнее во вторую очередь). Следует отметить, что работа блоков LINK и UNLINK в сильной степени зависит от соотношения времени генерации транзактов и их временной задержки в устройствах. Реализация достижения момента в 70 мин. достигается при введении в поле <A> блока TEST системного числового атрибута С1 — текущего значения условного модельного времени. Один блок TERMINATE отсчитывает число завершений, заданного в операторе START (START 100). Другой блок TERMINATE выводит транзакты из системы без уменьшения счетчика числа завершений (поле <A> пусто).
Формат записи блока LINK:
50 link waz1,fifo,chan1
В поле <A> блока LINK задается имя списка пользователя, куда заносятся транзакты (в программе задано имя waz1). Поле <B> задает алгоритм упорядочивания списка пользователя (в программе применена дисциплина FIFO). В поле <B> могут быть использованы операнды: FIFO, LIFO — последним пришел первым вышел, номер параметра, приоритет, время нахождения транзакта в модели М1 или С1. В поле <C> задается альтернативный выход (в программе по метке chan1 транзакты отправляются в первое устройство под номером 60).
Формат записи блока UNLINK:
100 unlink G waz1,chan1,1,13,16,que2
В данном случае задействованы все поля блока UNLINK: <A>, <B>, <C>, <D>, <E>, <F> и вспомогательное поле <X>.
В поле <X> установлен указатель отношения G — больше. Отношение истинно, если значение параметра, заданного в поле <D>, больше значения, заданного в поле <E>.
Поле <A> задает имя списка пользователя (в программе waz1), из которого удаляются транзакты.
В поле <B> указывается имя блока, к которому переходят удаленные транзакты (в программе блок с меткой chan1).
Поле <C> задает число удаляемых из списка транзактов (в программе 1). Операнд поля <C> может быть именем, положительным целым (как в программе число 1), СЧА.
В поле <D> задан номер параметра (в программе номер 13, который переопределен блоком ASSIGN на число 7). Поле <D> может быть именем, целым (как в программе номер параметра), СЧА.
Поле <E> определяет числовой атрибут (в программе задано число 6), который сравнивается со значением параметра транзактов списка пользователя поля <D>.
Поле <F> задает имя следующего для входящего в блок UNLINK транзакта (в программе блок с меткой que2). При этом перевод транзактов в следующий блок происходит в случаях: когда соответствующий список пользователя пуст, когда выполняется заданное отношение в поле <X>.
Результаты моделирования примера 2 приводятся как файл стандартного отчета 2.
GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 11-23-2001 18:15:13 page 1 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 3897 17 2 0 96912 LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 10 1 GENERATE 194 0 0 20 2 ASSIGN 194 0 0 30 3 TEST 194 0 0 40 4 QUEUE 191 0 0 50 5 LINK 191 1 0 60 CHAN1 SEIZE 190 0 0 70 7 DEPART 190 0 0 80 8 ADVANCE 190 0 0 90 9 RELEASE 190 0 0 100 10 UNLINK 190 0 0 150 11 TERMINATE 100 0 0 200 QUE2 QUEUE 93 0 0 210 13 SEIZE 93 0 0 220 14 DEPART 93 0 0 230 15 ADVANCE 93 0 0 240 16 RELEASE 93 0 0 250 17 TERMINATE 93 0 0 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY 1 190 0.882 18.10 1 0 0 0 0 0 2 93 0.463 19.42 1 0 0 0 0 0 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 1 1 191 96 0.17 3.57 7.17 0 2 1 0 93 59 0.05 2.27 6.21 0 USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME WAZ1 0 0 0.17 100 1 6.81 XACT_GROUP GROUP_SIZE RETRY POSITION 0 0 |
Файл стандартного отчета 2 |
В отчете появилась статистика по списку пользователя. В поле USER_CHAIN задается имя списка пользователя (в отчете waz1). Поле CHAIN_SIZE определяет количество транзактов в списке пользователя в конце периода моделирования (в отчете 0). Поле RETRY определяет количество транзактов, ожидающих наступления специальных условий, связанных со списком пользователя. Поле AVE.CONT определяет среднее содержимое списка пользователя в течение периода моделирования (в отчете 0.17 транзактов). Поле ENTRIES определяет общее количество транзактов, помещаемых в список пользователя в течение периода моделирования (в отчете 100 транзактов). Поле МАХ определяет максимальное количество транзактов в списке пользователя за период моделирования (в отчете 1 транзакт; каждое помещение транзакта в список блоком LINK выводится затем из списка блоком UNLINK). Поле AVE.TIME определяет среднее время пребывания транзакта в списке пользователя (в отчете 6.81 мин. — единиц времени, которые были определены пользователем при моделировании).
Первое устройство обслужило 190 требований, но из них 90 отправлены во второе устройство. Второе устройство обслужило 93 требования: 3 требования через блок TEST, 90 требований через блок UNLINK.
Задание к примеру 2. В программе 2 изменить поле <A> блока GENERATE: от 2 до 28 с шагом 2. Проанализировать файлы стандартного отчета результатов моделирования.