Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GPSS Практикум -1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
430 Кб
Скачать
☆

2 Методика выполнения заданий

  1. Изучить содержание задания и установить его цель.

  2. Составить структурную схему системы (Q – схему) из элементов: источник, накопитель, канал.

  3. По методике, излагаемой в практикуме сразу после задания, разработать программу имитации функционирования системы.

Для этого:

а) составить объект «Модель» в виде последовательности операторов модели. При этом необходимо стремится к тому, чтобы поведение модели как можно точнее отражало поведение системы;

б) создать объект «Процесс моделирования» и по результатам трансляции в окне «Журнал» оценить качество трансляции. При наличии ошибок в наборе операторов и их полей необходимо их устранить в объекте «Модель». После чего снова создать объект «Процесс моделирования».

в) запустить «Процесс моделирования» командой «Старт» и провести анализ появившегося отчета, из которого определить результаты имитации (число поступивших заявок N, число обслуженных No и потерянных N1 заявок) и показатели качества системы (вероятность отказа заявке в обслуживании, вероятность обслуживания поступившей заявки, коэффициент использования и др.

3 Применение для имитации смо объектов аппаратной и динамической категорий языка gpss World

3.1 Имитация функционирования одноканальной смо. Блоки generate, terminate, advance, seize, release

Процесс моделирования в системе GPSS заключается в продвижении сообщений от блока к блоку с указанием команд и действий с помощью операторов. Продвижение сообщений по мо­дели начинается с блока GENERATE и заканчивается в блоке TERMINATE. Задержка сообщений во времени по заданному за­кону происходит в блоке ADVANCE. Ввод в систему сообщений может быть также задан по какому-либо статистическому закону. Перечисленные три блока относятся к блокам динамической кате­гории. Сами сообщения или транзакты являются динамическими объектами системы GPSS. Следует помнить, что транзакты не могут входить в блок GENERATE и выходить из блока TERMINATE, в противном случае происходит ошибка выполне­ния программы и ее останов. Моделирующая программа начина­ется с блока GENERATE и заканчивается блоком TERMINATE.

К аппаратной категории относятся блоки первой группы уст­ройств SEIZE, RELEASE. Введение в моделирующую программу устройств (с помощью соответствующих блоков) позволяет авто­матически регистрировать статистическую информацию. Рассмотрим более подробно наиболее характерные примеры программ с указанными блоками и операторами.

Пример 3.1. Заявки поступают в систему массового обслуживания (Q-схему) через фиксированное время (7 единиц времени). Обработка (обслуживание) каждой заявки занимает также некоторое фиксирован­ное время (5 единиц времени). После обработки заявки покидают Q-схе­му. Провести обработку 100 заявок. Единицу времени пользователь на­значает по своему усмотрению или по условию задачи.

Система GPSS будет проводить моделирование относительно тех значений единиц времени, которые задает пользователь. За единицу вре­мени принята 1 мин, а программе решения примера 3.1 присвоено имя SAMPLE1.GPS. В этой программе транзакты (заявки, сообщения) генери­руются блоком GENERATE каждые 7 мин, проходят через устройство под номером 1, задерживаются на 5 мин и покидают (освобождают) устройст­во 1. Захват и освобождение устройства осуществляют блоки SEIZE и RELEASE. Задержка транзактов во времени происходит в блоке ADVANCE. Вывод транзактов производит блок TERMINATE. Оператор START начинает процесс моделирования для указанного максимального числа счетчика завершений. Оператор END (управляющий оператор) осуществляет задание выполнения

; GPSS World Sample File – SAMPLE01.GPS

**********************************************************************

* *

* CANAL OBSL Simulation *

* *

**********************************************************************

GENERATE 7 ; Генерация транзактов каждые 7 мин.

SEIZE Canal ; Занятие прибора.

ADVANCE 5 ; Задержка транзактов.

RELEASE Canal ; Освобождение прибора.

TERMINATE 1 ; Уничтожение транзактов.

Рис. 3.1. Программа SAMPLE1.GPS в рабочем окне GPSS World

прогона модели и завершает работу системы GPSS/World.

Программа (имя файла SAMPLE01.GPS) в рабочем окне GPSS World для рассматриваемого примера имеет вид, показанный на рис. 3.1.

Приведем некоторые общие правила оформления программ.

1. После написания программы необходимо перед запуском на выполнение сохранить ее как файл с расширением GPS и именем, состоящим из букв и цифр длиной до 20 символов. Допускается применять символы только латинского алфавита. Во-вторых, обя­зательным является нумерация блоков в порядке возрастания, операторы можно не нумеровать.

2. Как правило, после номера устанавливается не менее двух пробелов и записывается имя блока. В рабочем окне можно ис­пользовать не более 255 позиций, начиная с левого края.

3. Комментарии пишутся после знака точки с запятой (;) в лю­бом месте программы.

Для запуска модели необходимо:

командой CREATE SIMULATION меню COMMAND создать процесс моделирования, появляется окно - журнал Sample1.1.sim – JOURNAL;

вызвать окно команды START, в поле команды записать число прогонов (START100) и клавишей ОК запустить модель.

После выполнения заданного числа прогонов появляется стандартный отчет Sample1.1.1 – REPORT с результатами моделирования, который ав­томатически формируется системой GPSS/World.

В приведенном на рис. 3.2 файле стандартного отчета сначала идет информационная строка системы, строка с указанием версии, даты, времени; затем строка стандартного сообщения о начале моделирования START TIME, его окончании END TIME, количестве используемых в программе блоков BLOCKS, количестве установленных устройств FACILITIES, ко­личестве многоканальных устройств,

GPSS World Simulation Report - Sample1.1.1

Sunday, November 29, 2009 10:27:47

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 705.000 5 1 0

NAME VALUE

CANAL 10000.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 100 0 0

2 SEIZE 100 0 0

3 ADVANCE 100 0 0

4 RELEASE 100 0 0

5 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

CANAL 100 0.709 5.000 1 0 0 0 0 0

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

101 0 707.000 101 0 1

Рис. 3.2. Стандартный отчет Sample1.1.1 – REPORT

для которых определяется заданная емкость накопителя STORAGES.

Далее приводятся:

номера бло­ков, которые определяются системой (под обозначением LOC);

названия блоков BLOCK_TIPE;

количество транзактов, проходя­щих через соответствующий блок программы ENTRY_COUNT;

те­кущее количество транзактов, задержанных в блоке на момент окончания моделирования CURRENT__COUNT;

количество тран­зактов, ожидающих специальных условий для прохождения через данный блок RETRY.

Как видно, для данной программы количест­во транзактов, проходящих через блоки равно 100. Все 100 тран­зактов, которые были сгенерированы блоком GENERATE, про­шли через все блоки программы.

Работа устройства FACILITY под номером 1 оце­нивается следующими стандартными атрибутами:

количество транзактов, прошедших через устройство, указывается в поле ENTRIES (в нашем случае это число 101);

коэффициент использо­вания в относительных единицах указывается в поле UTIL (в на­шем случае число 0.709, которое показывает ту часть периода мо­делирования, в течение которого устройство было занято);

среднее время обработки или задержки одного транзакта в устройстве указывается в поле AVE._TIME (в нашем случае равно 5, которое так же можно определять, как среднее время занятости устройства);

поле AVAILABLE определяет состояние готовности устройства в конце периода моделирования (оно равно 1, если устройство гото­во, и 0,— если не готово);

поле OWNER (прямой перевод — владе­лец) определяет номер последнего транзакта, занимавшего уст­ройство (если устройство не занималось, то устанавливается 0);

поле PEND (от англ. «pendent» — ожидающий решения) определя­ет количество транзактов, ожидающих освобождения устройства, находящегося в режиме прерывания;

поле INTER определяет количество транзак­тов, прерывающих работу устройства в данный момент;

поле RETRY оп­ределяет количество транзактов, ожидающих специальных усло­вий, зависящих от состояния объекта типа «устройство»;

поле DELAY (задержка) определяет количество транзактов, ожидаю­щих занятия или освобождения устройства.

В рассматриваемом примере последние пять полей равны нулю, так как система рабо­тает без каких-либо специальных условий и прерываний.

Содержание информации, которая выводится для транзактов из СБС следующее:

поле XN – номер транзакта;

поле PRI – приоритет транзакта;

поле BDT – таблица модельных событий – абсолютное модельное время выхода транзакта из СБС (и перехода транзакта в CTC);

поле ASSEM – номер семейства транзактов;

поле CURRENT – номер блока, где находится транзакт (0 – если транзакт еще не вошел ни в один блок модели);

поле NEXT – номер блока, в который должен войти транзакт;

поле PARAMETER – номер или имя параметра транзакта;

поле VALUE – значение параметра.

Пример 3.2. Очень часто процесс поступления транзактов в систему и процесс обработки подчиняется равномерному закону распределения в заданном интервале. Например, программу SAMPLE1.GPS можно привес­ти к виду, когда поступление транзактов и их обработка будут осуществ­ляться по равномерному закону в заданных интервалах, например, от 5 до 9 мин и от 3 до 7 мин соответственно. Другими словами, поступление зая­вок будет подчиняться равномерному закону с интервалом 7 + 2 мин, а обработка — равномерному закону со временем обработки 5 + 2 мин.

Программа для решения примера 3.2 SAMPLE2 имеет имя.GPS. Формат программы представлен на рис. 3.3. При равномерном законе поступления транзактов и том же законе об­служивания операнд поля <В> в блоках GENERATE и ADVANCE квалифицируется как модификатор-интервал. Если поступление или обслуживание транзактов подчиняется какому-либо функ­циональному закону, отличному от равномерного, то тогда операнд поля <В> квалифицируется как модификатор-функция.

; GPSS World Sample02 File - SAMPLE02.GPS

**********************************************************************

* *

* CANAL OBSL Simulation *

* *

**********************************************************************

GENERATE 7,2 ;Генерация транзактов из интервала (5,9).

SEIZE Canal ;Занятие прибора.

ADVANCE 5,2 ;Задержка транзактов.

RELEASE Canal ;Освобождение прибора.

TERMINATE 1 ;Уничтожение транзактов.

Рис 3.3 Программа SAMPLE02.GPS

Функциональный закон обслуживания или генерации транзактов будет рассмотрен позднее.

Написание названий блоков и операторов в программах допус­кается как прописными, так и строчными буквами.

Приведем форматы описания блоков и операторов, используе­мых в программах SAMPLE1.GPS и SAMPLE02.GPS. Формат описа­ния блока GENERATE имеет вид:

GENERATE <A>,<B>

В приведенном описании использованы символы «<» и «>», которые образуют так называемые поля А и В. Значения полей на­зывают также операндами. Для SAMPLE02.GPS соответственно поле <А> равно 7, а поле <В> равно 2. Операнды полей <А> и <В> явля­ются постоянными числами. Это означает, что транзакты генери­руются случайным образом в интервале времени от (7—2 = 5) до (7 + 2 = 9) в соотетствии с равномерным законом. Если поле <В> отсутствует (как для SAMPLE1.GPS), то генерация транзактов про­исходит через интервалы времени, указанные в поле <А> (т е. че­рез 7 условных единиц времени). Соответствующее назначение полей применяется и для блока ADVANCE (задержка транзактов). Формат описания блока ADVANCE имеет вид:

ADVANCE <A>,<B>

Блок ADVANCE моделирует задержку вошедшего в него тран­закта в течение определенного интервала. Для программы SAMPLE02.GPS эта задержка определяется как 5 ± 2 условные еди­ницы, распределенные по равномерному закону. Поле <А> соот­ветствует числу 5, а поле <В> — числу 2. Время задержки является случайным числом, распределенным равномерно в интервале вре­мени от (<А>—<В>) до (<А> + <В>). Разница между числом поля <А> и числом поля <В> не должна быть отрицательна.

Задержка продвижения транзактов на время, указанное в по­лях блока ADVANCE, происходит, как правило, в устройствах, которые используют при моделировании работы различного вида оборудования единичной емкости.

Формат описания блока SEIZE имеет вид:

SEIZE <A>

Блок SEIZE имеет только одно поле <А>, которое задает номер или имя устройства, присвоенное разработчиком программы. В нашем случае устройство имеет номер 1. Номер или имя устройст­ва могут быть произвольными. При входе транзакта в блок SEIZE всегда проверяется (интерпретатором системы GPSS) занято устройство или нет. Если устройство свободно, то оно занимается. Устройство остается занятым до тех пор, пока занимающий его транзакт не войдет в соответствующий блок RELEASE. Формат описания блока RELEASE имеет вид:

RELEASE <A>

Операнд поля <А> блока RELEASE должен быть таким же, как и для соответствующего блока SEIZE. В нашем случае число 1 в поле <А> задает номер устройства, которое моделируется блоками SEIZE и RELEASE и по которым формируется выходная статисти­ка. Блок RELEASE предназначен для освобождения устройства тем транзактом, которым оно было занято.

Вывод транзактов из системы осуществляется блоком TERMINATE. Формат описания блока TERMINATE имеет вид:

TERMINATE <A>

В поле <А> блока TERMINATE задается число единиц (тран­зактов), на которое этот блок изменяет содержимое счетчика за­вершений, определяющего момент окончания моделирования. В данном случае это число равно 1. Число в поле <А> блока TERMINATE можно рассматривать как коэффициент, на который следует умножить число выводимых транзактов, чтобы получить задаваемое значение счетчика завершений. Если результат произ­ведения точно не равен числу счетчика завершений, то число вы­водимых транзактов через блок TERMINATE устанавливается с избытком. Значение счетчика завершений или количество тран­зактов, которое необходимо пропустить через модель, задается оператором START. Формат описания оператора START имеет вид:

START <A>

Поле <А> оператора START задает значение счетчика заверше­ний. В нашем случае это число равно 100. Оператор START ис­пользуется также для инициирования начала моделирования.

GPSS World Simulation Report - Sample1.2.1

Sunday, November 29, 2009 11:10:23

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 714.047 5 1 0

NAME VALUE

CANAL 10000.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 100 0 0

2 SEIZE 100 0 0

3 ADVANCE 100 0 0

4 RELEASE 100 0 0

5 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

CANAL 100 0.699 4.994 1 0 0 0 0 0

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

101 0 718.106 101 0 1

Рис. З.4. Стандартный отчет SAMPLE02.RPT

Файл стандартного отчета для примера 3.2 (программа SAMPLE 02.GPS на рис. 3.3) под именем SAMPLE02.RPT приведен на рис. 3.4. Отличия от предыдущего отчета состоят в изменении вре­мени моделирования 718, коэффициенте использования 0.699 и среднем времени обработки одного транзакта 4.994.

Пример 3.3. В систему массового обслуживания (Q-схему) поступают заявки, распределенные по равномерному закону в интервале 5 ± 2 мин. (от 3 до 7 мин). Обработка поступивших заявок осуществляется также по равномерному закону распределения в интервале 8 ± 2 мин (от 6 до 10 мин). Необходимо смоделировать работу системы обслуживания в те­чение 120 мин.

Программа решения примера 3.3 приведена на рис. 3.5 под именем SAMPLE03.GPS. В этом примере временной интервал поступле­ния заявок меньше интервала обслуживания (по среднему значению). Здесь можно говорить о решении с помощью условного вложенного цикла, который образует двойная конструкция блоков GENERATE — TERMINATE.

Временной период работы системы задается блоками GENERATE 120, TERMINATE 1 и оператором START. Ге­нерация одного транзакта происходит через 120 мин, которые указаны в поле <А> первого блока GENERATE. Этот транзакт выводится из системы блоком TERMINATE.

; GPSS World Sample03 File - SAMPLE03.GPS

**********************************************************************

* *

* CANAL OBSL Simulation *

* *

**********************************************************************

GENERATE 120 ;Генерация транзакта через 120 мин.

TERMINATE 1 ;Уничтожение транзакта внешнего цикла.

GENERATE 5,2 ;Генерация транзактов из интервала (5,9).

SEIZE Canal ;Занятие прибора.

ADVANCE 7,2 ;Задержка транзактов.

RELEASE Canal ;Освобождениеприбора.

TERMINATE 0 ;Уничтожение транзактов.

Рис. 3.5. Программа SAMPLE03.GPS

Число счетчика завершений J установлено в поле <А> оператора START. В то же время второй блок GENERATE (под номером 3) генерирует транзакты каждые 5 + 2 мин. Уничтожение тран­зактов осуществляется блоком TERMINATE без изменения счетчика за­вершений, т. е. блок TERMINATE применяется с пустыми полями.

GPSS World Simulation Report - Sample03.11.1

Sunday, November 29, 2009 17:55:44

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 120.000 7 1 0

NAME VALUE

CANAL 10000.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 1 0 0

2 TERMINATE 1 0 0

3 GENERATE 25 9 0

4 SEIZE 16 0 0

5 ADVANCE 16 1 0

6 RELEASE 15 0 0

7 TERMINATE 15 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

CANAL 16 0.947 7.102 1 17 0 0 0 9

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

27 0 122.892 27 0 3

17 0 128.153 17 5 6

28 0 240.000 28 0 1

Рис. 3.6. Стандартный отчет SAMPLE03.RPT

В файле стандартного отчета SAMPLE03.RPT (рис. 3.6) приведены ре­зультаты работы системы для заданного времени (120 мин). Как следует из отчета, за 120 мин было сгенерировано 25 транзактов в условном вло­женном цикле, который отражает основную работу моделируемой систе­мы. Обработано и выведено из системы 15 транзактов. Работа условного внешнего цикла связана с числом счетчика завершений через блок TERMINATE с непустым полем <А> (в нем задано число 1, которое равно числу счетчика завершений).

На момент окончания моделирования в устройство поступил семнадцатый по счету транзакт внутреннего цик­ла. Это число показано в поле OWNER статистики устройства. Среднее время занятости устройства составляет 7.102 мин. Коэффициент исполь­зования устройства равен 0.947. Число транзактов, ожидающих специ­альных условий для устройства, равно 9. Поле DELAY статистики устрой­ства заполнено (число 9) потому, что работа внутреннего цикла была пре­рвана внешним циклом путем назначенного времени работы (число 120). Время работы системы отражено в поле показателя END_TIME. Блок TERMINATE условного внутреннего цикла вывел из системы 15 транзак­тов, которые не связаны с числом счетчика завершений.

Пример 3.4. В систему массового обслуживания (Q-схему) поступает и обрабатывается фиксированное число заявок. Примем, что заявки посту­пают в систему по равномерному закону из интервала времени, равного от 3 до 7 мин. Обработка заявок осуществляется также по равномерному закону в интервале времени от 5 до 9 мин. Необходимо смоделировать ра­боту системы при поступлении и обработке 100 заявок.

Подобное условие задачи часто требуется для уточнения характера работы системы, когда в ней обслуживание заявок осуществляется мед­леннее, чем поступление этих заявок в систему.

GENERATE 5,2,,100 ;Генерация 100 транзактов.

SEIZE Canal ;Занятие прибора.

ADVANCE 7,2 ;Задержка транзактов.

RELEASE Canal ;Освобождениеприбора.

TERMINATE 1 ;Уничтожение транзактов.

Рис. 3.7. Программа SAMPLE04.GPS

Программа решения примера 3.4 приведена на рис. 3.7 под именем SAMPLE04.GPS.

Решение поставленной задачи с фиксированным числом входящих и обрабатываемых заявок осуществляется с помощью дополнительного поля блока GENERATE. В данном случае он имеет следующий формат за­писи:

GENERATE <A>,<B>,<O,<D>

В блоке GENERATE используются поля <A>,<B>,<C,<D>, среди которых поля <C>,<D> — новые. Поле <С> назначает временную за­держку начала моделирования. Если оно пусто, то это означает, что за­держка нулевая (как в нашей программе). В поле <D> указывается число генерируемых транзактов. В данном случае это число равно 100 и совпа­дает с числом счетчика завершений, указанным в операторе START.

Время работы системы зависит только от времени генерации заявок (транзактов) и времени их обработки. Моделирование системы будет происходить до тех пор, пока не сгенерируются и не выведутся 100 тран­зактов.

Результаты моделирования системы по заданному количеству по­ступающих и обрабатываемых заявок приведены в файле стандартного отчета с именем SAMPLE04.RPT (рис. 3.8). Несмотря на то что время гене­рации транзактов в примере меньше времени обработки, поле CURRENT_COUNT файла стандартного отчета нулевое, так как число сгенерированных транзактов равно числу счетчика завершений.

GPSS World Simulation Report - Sample04.12.1

Sunday, November 29, 2009 18:24:43

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 715.916 5 1 0

NAME VALUE

CANAL 10000.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 100 0 0

2 SEIZE 100 0 0

3 ADVANCE 100 0 0

4 RELEASE 100 0 0

5 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

CANAL 100 0.991 7.095 1 0 0 0 0 0

Рис. 3.8 Стандартный отчет SAMPLE04.RPT

Число 100 установлено в поле <D> блока GENERATE и в поле <А> оператора START.Сколько сообщений вошло в систему, столько обработалось и вышло из системы.

Если сравнивать результаты моделирования в отчетах SAMPLE02.RPT и SAMPLE04.RFT, то можно заметить, что количество проходящих транзак­тов (заявок) без задержки через блоки системы одно и то же. Но этот результат в первом случае обусловлен более медленной генерацией тран­зактов по сравнению со временем обработки, а во втором случае объясня­ется жестко детерминированным заданием генерирования транзактов и их вывода из системы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]