Задание на лабораторные работы, страница 9
Описание файла
Документ из архива "Задание на лабораторные работы", который расположен в категории "". Всё это находится в предмете "моделирование систем" из 8 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "моделирование систем" в общих файлах.
Онлайн просмотр документа "Задание на лабораторные работы"
Текст 9 страницы из документа "Задание на лабораторные работы"
160 msavevalue mat2+,2,3,5
В поле <A> каждого блока MSAVEVALUE задается имя матрицы, для которой осуществляется определение или переопределение ее элементов (матрица mat2). В поле <B> указывается номер строки определяемой матрицы: первые три блока имеют первую строку — цифра 1, последующие три блока имеют цифру 2. В поле <C> указывается номер столбца определяемой матрицы: для первых трех блоков заданы 1,2,3 столбцы (строка 1), для последующих блоков и второй строки матрицы заданы 1,2,3 столбцы.
В поле <D> задается определяемая величина: в блоке под номером 110 задана величина С1 — условное абсолютное время моделирования, в блоке 120 задано число 100, в блоке 130 задана переменная под именем var1, которая определена оператором VARIABLE как С1+100 (условное модельное время плюс число 100), в блоке 140 задана переменная под именем var2, которая определена оператором VARIABLE как С1+ , в блоке 150 задано число 2, которое вычитается из начального значения элемента матрицы второй строки и второго столбца, и это вычитание происходит всякий раз как в блок MSAVEVALUE входит транзакт, т.е. 10 раз (в соответствии с оператором START 100). В блоке под номером 160 задано число 5, которое 10 раз складывается с начальным значением элемента матрицы второй строки и третьего столбца. Операция сложения или вычитания в блоке MSAVEVALUE задается в поле <A> после имени матрицы соответственно знаком + и . Если после имени матрицы в поле <A> знак опущен, то тогда происходит замещение значения элемента матрицы полем <D>. Сохранение переменной var3 блоком SAVEVALUE приведено для демонстрации использования оператора INT — вычисления целой части выражения. Закомментировав команду END, возможно просмотреть матрицу mat1 в рабочем окне с помощью клавиш ALT+M. Результаты программы 1 приводится как Файл стандартного отчета 1.
Файл стандартного отчета 1 |
GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 06-17-2001 17:25:42 page 1 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 70 15 0 0 97296 LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 10 1 GENERATE 10 0 0 50 2 MSAVEVALUE 10 0 0 60 3 MSAVEVALUE 10 0 0 70 4 MSAVEVALUE 10 0 0 80 5 MSAVEVALUE 10 0 0 90 6 MSAVEVALUE 10 0 0 100 7 MSAVEVALUE 10 0 0 110 8 MSAVEVALUE 10 0 0 120 9 MSAVEVALUE 10 0 0 130 10 MSAVEVALUE 10 0 0 140 11 MSAVEVALUE 10 0 0 150 12 MSAVEVALUE 10 0 0 160 13 MSAVEVALUE 10 0 0 170 14 SAVEVALUE 10 0 0 200 15 TERMINATE 10 0 0 XACT_GROUP GROUP_SIZE RETRY POSITION 0 0 SAVEVALUE VALUE RETRY MMM3 +10 0 MATRIX RETRY ROW COLUMN VALUE MAT1 0 1 1 +1 1 2 +3 1 3 +5 2 1 +7 2 2 +9 2 3 +11 MAT2 0 1 1 +70 1 2 +100 1 3 +170 2 1 +80 2 2 +30 2 3 +60 |
В отчете приводится статистика по количеству генерируемых транзактов (10), сохраняемой величине блоком SAVEVALUE и формированию матриц блоками MSAVEVALUE. Как видно, операторы VARIABLE, MATRIX, INITIAL в отчете не фигурируют. Значения, определяемые этими операторами, переопределяются или сохраняются блоками SAVEVALUE и MSAVEVALUE. В отчете указываются начальное (0) и конечное (70) время моделирования, количество блоков (15), количество устройств (0 — нет), количество накопителей или памятей (0 — нет), свободная память (84080). Приводятся блоки, их номера и порядковые номера, количество транзактов, вошедших в блоки (для всех 10).
Сформированные матрицы в отчете описываются в поле MATRIX. Указывается имя матрицы (для первой матрицы МАТ1, для второй — МАТ2). Поле RETRY определяет количество транзактов, ожидающих специальных условий, связанных с состоянием матричной сохраняемой величины (специальных условий нет). Поля ROW и COLUMN определяют номер строки и номер столбца матричной сохраняемой величины. Поле VALUE определяет значение элемента матричной сохраняемой величины в конце моделирования (для первой матрицы это 1, 3, 5, 7, 9, 11, для второй матрицы — 70, 100, 170, 80, 30, 60).
Задание к примеру 1.
1) В программе 1 задать только одну матрицу (того же размера) и выполнить следующие действия: начальные значения матрицы инициализировать с помощью оператора INITIAL и задать элементы матрицы, равными 100; с помощью блока MSAVEVALUE в соответствующем режиме установить следующие значения элементов матрицы:
а) в первой строке: 20, 40, 60; во второй строке: 110, 120, 130.
б)в первой строке: -100, -200, -300; во второй строке: -30, 160, -10.
Пример 2.
В систему поступают требования по равномерному закону со временем 52 мин. Обработка требований производится параллельно в двух каналах по равномерному закону. Первый канал обслуживает со временем 152 мин., второй — со временем 172 мин. Смоделировать процесс обслуживания поступающих требований, собрать статистику об очередях при обслуживании 100 требованиях. Также представить визуальное изображение длины очереди одного из каналов и гистограмму распределения длительности пребывания требования в очереди средствами GPSS/PS.
Программа решения дана как программа 2. По условию примера требования распределяются по двум каналам, т.е. поступающий поток требования разделяется и поровну направляется в каждый канал. В связи с тем, что время обслуживания каждым каналом различно, то, очевидно, следует ожидать, что количество обслуженных требований одним каналом будет отличаться от количества обслуженных требований другим каналом. Но поступающих требований в каждый канал будет одинаковым. Статистика об очередях собирается автоматически при наличии в системе блоков QUEUE и DEPART. Табулирование значений какого-либо СЧА (стандартного числового атрибута) достигается применением оператора TABLE и блока TABULATE. Для построения диаграммы изменения значений выбранного СЧА используется команда PLOT.
Программа 2 |
simulate ttab1 table qt1,5,30,11; поле <D> >= 11 ttab2 table qt$len2,6,30,12; поле <D> >= 12 *************************************************** 10 generate 5,2 20 split 1,chan2 30 chan1 queue 1 40 seize 1 50 depart 1 60 advance 15,2 70 release 1 75 tabulate ttab1 80 transfer ,exit 90 chan2 queue LEN2 100 seize 2 110 depart LEN2 120 advance 17,2 130 release 2 135 tabulate ttab2 200 exit terminate 1 plot q1,130,0,900 start 100 ;end |
Формат записи первого оператора TABLE:
ttab1 table qt1,5,30,11
В поле метки имя оператора — ttab1, в поле <A> задан стандартный числовой атрибут qt1 — среднее время пребывания транзакта (требования) в очереди под номером 1 (в соответствии с блоком QUEUE 1). В общем случае в поле <A> задается аргумент таблицы — элемент данных, чье частотное распределение будет табулироваться. В поле <B> задается верхний предел первого интервала (в программе число 5). Операнд поля <В> может быть целым. В поле <C> задается ширина частотного интервала (в программе число 30). Операнд поля <C> может быть положительным целым. В поле <D> задается число частотных интервалов (в программе число 11). Число частотных интервалов не должно превышать 8191. Операнд поля <D> может быть положительным целым.
Формат записи второго оператора TABLE:
ttab2 table qt$lan2,6,30,12
Меткой оператора TABLE является ttab2, табулируемая величина поля <A> qt$lan2 — среднее время пребывания в очереди под именем lan2, величина первого интервала равна 6 (поле <B>), ширина интервала равна 30 (поле <C>), число частотных интервалов равно 12 (поле <D>).
Выбор значений полей <B>,<C>,<D> сделан на основе результатов моделироывания и статистики для очередей блоков SEIZE.
Формат записи первого блока TABULATE:
-
tabulate ttab1
Блок TABULATE табулирует текущее значение заданного аргумента таблицы. В поле <A> задается номер или имя таблицы (в программе имя первой таблицы под именем ttab1). Блок может иметь и поле <B>, в котором задается число единиц, заносимых в частотный интервал. Если поле <B> пусто (как в программе), то эта величина полагается равной единице.
Формат записи второго блока TABULATE:
135 tabulate ttab2
В поле <A> задано имя второй таблицы ttab2. Каждая таблица должна быть определена оператором TABLE. Для отображения в рабочем окне диаграммы изменения числа требований, находящихся в очереди, в программе 2 применена команда PLOT.
Формат записи команды PLOT:
plot q1,130,0,900
В поле <A> задается СЧА — аргумент отображения (q1 — длина первой очереди), в поле <B> — максимальная величина отображаемой величины (в программе задано число 130 — предполагаемая максимальная длина очереди), в поле <C> — начальное время отображения (принят 0), в поле <D> — конечное время отображения (принято число 900, несколько превышающее общее время моделирования).
Закомментированная команда END позволяет использовать команду PLOT. Команда PLOT инициализирует оси отображения и строит диаграмму изменения значений СЧА в процессе моделирования на интервале времени, заданном полями <C> и <D>. Для просмотра таблицы следует в рабочей строке набрать клавиши ALT+T.
Пример 3. Применение оператора QTABLE.
В систему поступают требования по равномерному закону со временем 52 мин. Обработка требований производится параллельно в двух каналах. Первый канал обслуживает со временем 152 мин., второй — со временем 172 мин. Смоделировать процесс обслуживания поступающих требований и построить распределение времени пребывания требований в очереди при обслуживании 100 требований.
Пример 3 по своему содержанию полностью совпадает с примером 2. Специальный вопрос о получении распределения пребывания требований в очереди решается с помощью оператора QTABLE. Решение примера 3 приводится в программе 3.
Программа 3 |
simulate ttab3 qtable 17,5,20,29; поле <D> >= 29 ttab4 qtable len2,6,20,31; поле <D> >= 31 *************************************************** 10 generate 5,2 20 split 1,chan2 30 chan1 queue 17 40 seize 1 50 depart 17 60 advance 15,2 70 release 1 75 tabulate ttab3 80 transfer ,exit 90 chan2 queue LEN2 100 seize 2 110 depart LEN2 120 advance 17,2 130 release 2 135 tabulate ttab4 200 exit terminate 1 start 100 ;end |
Оператор QTABLE действует совместно с блоком TABULATE. Формат записи оператора QTABLE отличается от формата оператора TABLE только заданием поля <A>.
Формат записи первого оператора QTABLE:
ttab3 qtable 17,5,20,29
В поле метки оператора задано имя ttab3, по которому происходит обращение к оператору QTABLE. В поле <A> задано число 17 — номер очереди, которая формируется блоком QUEUE под номером 30 (30 QUEUE 17). В поле <B> задана ширина первого частотного интервала (число 5), в поле <C> задана ширина частотного интервала (число 20), в поле <D> задается число частотных интервалов (это число равно 29, экспериментально подобранное и являющееся минимальным для данных условий моделирования). Операнд поля <D> не может превышать 8191.