Механики
Скачать 4.29 Mb.
|
<Имя>. Пример: Vara1 VARIABLE 5#EXP(V$Grad+2) когда активный транзакт попадает в блок, в котором используется пере- менная Vara1, (точнее, ссылка на эту переменную в виде СЧА: V$Vara1), например: ADVANCE V$Vara1, вычисляется значение переменной Vara1 в соответствии с заданным ариф- метическим выражением как 2 5 + Grad e , где V$Grad – ссылка на другую арифметическую переменную Grad, которая тоже должна быть опреде- лена с помощью другого оператора VARIABLE. 6.6.7. CLEAR ( ОЧИСТИТЬ ) Назначение: возврат процесса моделирования в исходное состояние с возможностью сохранения значений некоторых объектов GPSS-модели. Формат команды: CLEAR [A] Операнд A может принимать только два значения: ON или OFF; необязательный операнд [по умолчанию – ON]. Когда операнд А равен OFF, ячейки, логические ключи и элементы матриц остаются без изменений. 6.6.8. CONTINUE ( ПРОДОЛЖИТЬ ) Назначение: возобновление прерванного процесса моделирования. Формат команды: CONTINUE 6.6.9. HALT ( ОСТАНОВИТЬ ) Назначение: прерывает процесс моделирования и очищает очередь команд. Является срочной командой. Формат команды: HALT 6.6.10. INCLUDE ( ВКЛЮЧИТЬ ) Назначение: вставка в исходную модель и трансляция файла с операторами. Формат команды: INCLUDE А A – полный путь доступа к указанному файлу. 286 Раздел 6. Имитационное моделирование Если А – имя файла (без указания пути доступа), то предполагается, что вставляемый файл находится в той же папке, что и исходная модель. 6.6.11. REPORT ( СОЗДАТЬ ОТЧЁТ ) Назначение: немедленное создание отчета. Формат команды: REPORT 6.6.12. RESET ( СБРОСИТЬ ) Назначение: сброс в ноль статистики и атрибутов системы. Формат команды: RESET 6.6.13. SHOW ( ПОКАЗАТЬ ) Назначение: отображает значение выражения в строке состояния окна «Model». Формат команды: SHOW X Операнд X представляет собой выражение (арифметическое или логическое), значение которого необходимо отобразить в строке состояния окна «Model». 6.6.14. START ( НАЧАТЬ ) Назначение: запуск процесса моделирования. Формат команды: START A,[B],,[D] A – начальное значение «счетчика завершений»; B – признак вывода статистики: значение NP (no printout) блокирует вывод стандартной статистики; необязательный операнд; D – признак вывода списков: значение 1 включает вывод списков будущих и текущих событий в стандартный отчет; необязательный операнд. Операнд С остался от предыдущих версий GPSS и не используется в GPSS World. 6.6.15. STEP ( ШАГАТЬ ) Назначение: остановка процесса моделирования по определенному количеству входов транзактов в блоки. Формат команды: STEP A A – количество входов в блок (положительное целое число). Пример: команда STEP 1 приводит к приостановке процесса моделирования всякий раз, когда транзакт входит в очередной блок. Раздел 6. Имитационное моделирование 287 6.6.16. STOP ( ОСТАНОВИТЬ ) Назначение: устанавливает или снимает условие прерывания моделирования. Формат команды: STOP [A],[B],[C] A – номер транзакта (положительное целое число); B – номер блока (положительное целое число) или метка блока (имя); C – флаг состояния команды: • ON – устанавливает условие прерывания; • OFF – снимает условие прерывания; • по умолчанию ON. При отсутствии: • операнда A – любой транзакт, входящий в блок с номером B, вызывает условие прерывания; • операнда B – транзакт с номером A, при входе в любой блок вызывает условие прерывания; • операндов A и B – процесс моделирования немедленно преры- вается. Пример: команда STOP 100,21 определяет условие прерывания процесса моделирования: при входе транзакта с номером 100 в блок с номером 21. Продолжение модели- рования – команда CONTINUE. 6.7. GPSS- модели массового обслуживания «Если программа полностью отлажена, ее нужно скорректировать» (Законы программирования) Рассмотрим принципы построения GPSS-моделей на примерах моде- лей систем (СМО) и сетей (СеМО) массового обслуживания с однородным и неоднородным потоком заявок. GPSS-модели представлены в порядке возрастания сложности. Вначале рассматриваются и подробно комменти- руются простейшие GPSS-модели, имитирующие работу СМО с одно- родным потоком заявок и позволяющие получить представление об основ- ных операторах GPSS World. По мере усложнения моделей вводятся новые операторы, необходимые для построения более сложных GPSS-моделей. Для каждой модели представлено подробное описание моделируе- мой системы с указанием конкретных значений параметров. Далее приво- дится текст GPSS-модели и детально рассматривается каждый оператор. Все операторы GPSS-моделей сопровождаются комментариями. Для некоторых моделей приводятся и подробно описываются стандартные отчеты, формируемые автоматически по завершению моделирования и содержащие результаты моделирования. 288 Раздел 6. Имитационное моделирование 6.7.1. Модель 1: одноканальная СМО с детерминированным потоком заявок и равномерно распределенной длительностью обслуживания (D/U/1) Положим, что система содержит один обслуживающий прибор (рис.6.6). В СМО поступает детермини- рованный поток заявок с интервалом 10 секунд. Заявки выбираются на обслужи- вание из накопителя неограниченной ёмкости в порядке поступления, то есть по правилу «первым пришел – первым обслужен» (дисциплина обслуживания FIFO – First In First Out). Длительность обслуживания заявок в приборе – величина случайная, распределенная по равномерному закону в интервале от 4 до 12 секунд (8±4 секунды) со средним значением 8 секунд. Краткое описание рассматриваемой СМО имеет следующий вид: • количество обслуживающих приборов: 1; • количество потоков (классов) заявок: 1; • ёмкость накопителя: не ограничена (равна бесконечности); • интервалы между заявками в потоке: 10 секунд; • поток заявок: детерминированный; • значение длительности обслуживания заявок в приборе: 8±4 секунд; • закон распределения длительности обслуживания заявок в приборе: равномерный. Текст GPSS-модели: Рассмотрим подробно представленную модель и прокомментируем каждый оператор GPSS-модели, сопоставив их с реально протекающими в системе процессами. Первый оператор GENERATE формирует в модели через каждые 10 единиц модельного времени транзакты. Множество формируемых таким образом транзактов моделируют процесс поступления заявок в П ) ( τ A Н (О) ) ( τ B Рис.6.6. Одноканальная СМО ******************************************************************* GENERATE 10; формирование детерминированного потока заявок QUEUE 1; отметка момента поступления заявки в очередь 1 SEIZE uzel; занятия прибора с именем uzel DEPART 1; отметка момента покидания заявкой очереди 1 ADVANCE 8,4; задержка на время 8±4 единицы времени RELEASE uzel; освобождение прибора с именем uzel TERMINATE 1; удаление заявки из модели ******************************************************************* START 100000 ******************************************************************* Раздел 6. Имитационное моделирование 289 систему, образующих детерминированный поток с интервалом 10 секунд. Когда модельное время становится равным моменту формирования очередного транзакта, последний начинает движение в модели к следую- щему по порядку оператору QUEUE, который заносит транзакт (заявку) в очередь с именем «1». (В действительности же, все транзакты сохраняются в очереди даже при отсутствии оператора QUEUE. Оператор QUEUE отмечает момент поступления транзакта в очередь с целью сбора статистики по очередям). Далее транзакт продолжает движение к следующему оператору SEIZE, в соответствии с которым выполняет попытку занять одноканаль- ное устройство (прибор) с именем «uzel». При этом проверяется занятость устройства. Если прибор занят обслуживанием ранее поступившего транзакта, то рассматриваемый транзакт приостанавливает свое движение и остается в очереди до тех пор, пока не освободится прибор. Если прибор свободен, то рассматриваемый транзакт продвигается к следующему оператору DEPART. Оператор DEPART отмечает момент покидания транзактом очереди с именем (номером) «1» с целью сбора статистики по очередям (опреде- ляется время нахождения транзакта в очереди, то есть время ожидания заявки). Двигаясь дальше, транзакт попадает в оператор ADVANCE. Оператор ADVANCE задерживает транзакт на случайную величину, формируемую по равномерному закону распределения из интервала 8±4, моделируя, таким образом, процесс обслуживания заявок в приборе. Дальнейшее движение транзакта в модели возможно только тогда, когда значение модельного времени достигнет момента завершения обслужи- вания заявки в приборе. При попадании транзакта в операторе RELEASE выполняется совокупность действий по освобождению прибора с именем «uzel». Затем транзакт попадает в последний оператор TERMINATE, который выводит транзакт из модели (уничтожает транзакт), при этом из «Счетчика завершений» вычитается значение, указанное в качестве операнда А оператора TERMINATE и равное 1 в нашем примере. Процесс моделирования продолжается до тех пор, пока значение «Счетчика завершений» не станет равным нулю. Начальное значение «Счетчика завершений», указываемое в качестве операнда А, устанавливается с помощью команды START, которая одновременно запускает процесс моделирования. Таким образом, моделирование в данном примере завершится после прохождения через модель 100 тысяч транзактов (после обслуживания в моделируемой системе 100 тысяч заявок). Команда START может находиться непосредственно в модели или же может быть задана отдельно, после трансляции модели. В первом случае, после трансляции модели сразу же начинается ее выполнение. Во втором случае, выполнение модели начинается только после запуска 290 Раздел 6. Имитационное моделирование команды START. По завершению моделирования результаты формируются автоматически в виде стандартного отчета, представленного на рис.6.7. Стандартный отчет рассматриваемой модели содержит следующую информацию. 1. Заголовок с именем GPSS-модели: GPSS World Simulation Report - CMO_DU1.2.1 2. Дату и время проведения имитационного моделирования (эксперимента): Wednesday, January 25, 2006 11:58:53 3. Время старта и завершения моделирования, количество блоков (операторов), одноканальных устройств (приборов) и многоканальных устройств (памятей) в GPSS-модели: START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 1000005.010 7 1 0 4. Перечень заданных в модели символических имен (блоков, уст- ройств, памятей) и присвоенные им числовые значения (начиная с 10000): NAME VALUE UZEL 10000.000 5. Перечень ( BLOCK TYPE ) пронумерованных ( LOC ) блоков c присвоенными им в модели метками ( LABEL ): LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 100000 0 0 2 QUEUE 100000 0 0 GPSS World Simulation Report - CMO_DU1.2.1 Wednesday, January 25, 2006 11:58:53 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 1000005.010 7 1 0 NAME VALUE UZEL 10000.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 100000 0 0 2 QUEUE 100000 0 0 3 SEIZE 100000 0 0 4 DEPART 100000 0 0 5 ADVANCE 100000 0 0 6 RELEASE 100000 0 0 7 TERMINATE 100000 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY UZEL 100000 0.801 8.008 1 0 0 0 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 1 0 100000 69780 0.040 0.405 1.339 0 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 100001 0 1000010.000 100001 0 1 Рис.6.7. Стандартный отчет Модели 1 Раздел 6. Имитационное моделирование 291 3 SEIZE 100000 0 0 4 DEPART 100000 0 0 5 ADVANCE 100000 0 0 6 RELEASE 100000 0 0 7 TERMINATE 100000 0 0 Кроме того, для каждого блока указывается: ENTRY COUNT – количество транзактов, вошедших в данный блок за время моделирования; CURRENT COUNT – количество транзактов, в данном блоке на момент завершения моделирования; RETRY – количество транзактов, ожидающих выполнения некоторого специфического условия. 6. Результаты моделирования и дополнительная информация по устройствам: FACILITY ENTRIES UTIL. AVE.TIME AVAIL. OWNER PEND INTER RETRY DELAY UZEL 100000 0.801 8.008 1 0 0 0 0 0 Здесь: FACILITY – символическое имя или номер устройства; ENTRIES – количество транзактов, вошедших в данное устройство за время моделирования; UTIL. – коэффициент использования (загрузка) устройства; AVE.TIME – среднее время занятия устройства одним транзактом (средняя длительность обслуживания заявок); AVAIL. – состояние устройства на момент завершения моделирования: 1 – устройство доступно (не занято), 0 - устройство недоступно (занято); OWNER – номер транзакта, находящегося в устройстве на момент завершения моделирования; PEND – количество транзактов, ожидающих выполнения с прерыванием других транзактов; INTER – количество прерванных транзактов на момент завершения моделирования (в списке прерываний); RETRY – количество транзактов, ожидающих выполнения некоторого специфического условия; DELAY – количество транзактов, ожидающих занятия устройства. 7. Результаты моделирования и дополнительная информация по очередям: QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 1 0 100000 69780 0.040 0.405 1.339 0 Здесь: QUEUE – имя или номер очереди; MAX – максимальное количество транзактов в очереди за время моделирования; CONT. – текущее количество транзактов в очереди на момент завершения моделирования; ENTRY – количество транзактов, прошедших через очередь за время моделирования; 292 Раздел 6. Имитационное моделирование ENTRY(0) – количество транзактов, прошедших через очередь за время моделирования с нулевым временем ожидания; AVE.CONT. – средняя длина очереди за время моделирования; AVE.TIME – среднее время нахождения транзакта в очереди (среднее время ожидания заявок); AVE.(-0) – среднее время нахождения транзакта в очереди без учета транзактов с нулевым временем ожидания; RETRY – количество транзактов, ожидающих выполнения некоторого специфического условия; 8. Список будущих событий ( FEC ): FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 100001 0 1000010.000 100001 0 1 Здесь: FEC – Future Events Chain; XN – номера всех транзактов, находящихся в списке будущих событий (в данном примере это единственный транзакт с номером 100001); PRI – приоритет транзакта; BDT – момент времени, когда транзакт должен покинуть блок, а, следовательно, и список будущих событий); ASSEM – номер семейства данного транзакта; CURRENT – номер блока, в котором находился транзакт на момент завершения моделирования; NEXT – номер следующего блока, в который будет передан транзакт; PARAMETER – имя или номер параметра транзакта; VALUE – значение параметра. 6.7.2. Модель 1.A: одноканальная СМО с простейшим потоком заявок (M/U/1) Положим теперь, что в рассмотренную выше одноканальную СМО поступает простейший поток заявок, интервалы между которыми распре- делены по экспоненциальному закону со средним значением 10 секунд. Текст GPSS-модели: Рассмотрим изменения, внесенные в предыдущую модель и выделенные жирным шрифтом. ************************************************************* GENERATE (Exponential(5,0,10)) QUEUE 1 SEIZE uzel DEPART 1 ADVANCE (Uniform(25,4,12)) RELEASE uzel TERMINATE 2 ************************************************************* START 100000 ************************************************************* Раздел 6. Имитационное моделирование 293 П 1 эксп ) ( − τ A Н ( О ) 10 = r =10 Эрланг2 ) ( − τ B Рис.6.8. Многоканальная СМО с накопителем ограниченной ёмкости П 4 ... Первое изменение – в операторе GENERATE, в первом операнде которого указан закон распределения интервалов между генерируемыми транзактами в виде библиотечной процедуры Exponential(5,0,10), обеспе - чивающей формирование случайных величин с экспоненциальным зако - ном распределения Три параметра процедуры |