Файл: Методические указания к выполнению лабораторной работы 1по курсу Моделирование систем Екатеринбург содержание содержание 2.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 410

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.






Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего образования

«Уральский федеральный университет имени первого Президента России Б. Н. Ельцина»




Институт радиоэлектроники и информационных технологий – РтФ

Департамент информационных технологий и автоматики

Школа бакалавриата

МОДЕЛИРОВАНИЕ СИСТЕМ В СРЕДЕ GPSS WORLD

Методические указания к выполнению лабораторной работы № 1по курсу «Моделирование систем»

Екатеринбург

содержание


содержание 2

Лабораторная работа № 1. моделирование систем в среде GPSS World 3

Цель работы 3

Порядок выполнения работы 3

Задания для лабораторной работы 3

1. Создание и уничтожение транзактов. Блоки GENERATE и TERMINATE. 6

2. Моделирование одноканальных устройств. Блоки SEIZE, RELEASE и ADVANCE 8

3. Моделирование многоканальных устройств. Блоки STORAGE, ENTER и LEAVE 9

4. Работа с блоками передачи управления. Блоки TRANSFER и TEST 11

5. Моделирование систем с использованием блоков SPLIT, ASSEMBLE и MATCH 15

6. Моделирование систем с использованием блоков PREEMPT, RETURN 17

Результаты работы 19

Список литературы 19

Вопросы для самопроверки 19

Приложение 1 20

Файл статистики GPSS World 20

приложение 2 22

Стандартные числовые атрибуты GPSS World 22

приложение 3 25

Блоки GPSS World 25


Лабораторная работа № 1. моделирование систем в среде GPSS World

Цель работы


  1. Изучить назначение и особенности использования основных блоков языка GPSS.

  2. Получить практические навыки моделирования простых систем массового обслуживания в среде GPSS World.

Порядок выполнения работы


  1. Установите на компьютер систему GPSS World (студенческая версия – файл Student.exe).

  2. Запустите систему, в появившемся окне Notices (заметки) нажмите кнопку Don’t Download.

  3. Выполните задания для лабораторной работы.

Все задания построены следующим образом: сначала приводится задача – пример, затем пояснения и описания блоков, используемых в примере, далее – задания для самостоятельной работы.
И примеры, и задания для самостоятельной работы необходимо выполнить.

  1. В отчете по лабораторной работе предоставить для каждого задания:

  • условие задачи;

  • GPSS-модель (код программы) – в виде текста;

  • файл статистики GPSS – в виде скриншота;

  • пояснения результатов моделирования.

Отчет оформляется в MS Word. По мере выполнения заданий помещайте в файл отчета текст программы и скриншоты статистики. В отчете должны быть задания-примеры и задания, выполненные самостоятельно. Поясняйте результаты моделирования: время моделирования; количество поступивших и обслужившихся транзактов, статистика ОКУ, МКУ и очередей и т.п. для каждого задания.

Задания для лабораторной работы


Задача. К компьютеру на обработку поступают задания. Из предварительного обследования получена информация, что интервал времени между двумя последовательными поступлениями заданий к компьютеру подчиняется равномерному закону распределения в интервале (1-11 мин). Перед компьютером допустима очередь заданий, длина которой не ограничена. Время выполнения задания также равномерно распределено в интервале (1-19 мин). Смоделировать обработку 100 заданий.
GPSS-программа, моделирующая работу вычислительной системы, выглядит следующим образом:
GENERATE 360,300 ; задание поступает

SEIZE COMP ; задание занимает компьютер

ADVANCE 600,540 ; задание обрабатывается на компьютере

RELEASE COMP ; задание освобождает компьютер

TERMINATE 1 ; задание удаляется (покидает систему)

START 100 ; обработать 100 заданий
Единица модельного времени – 1 секунда.
Так как время среднее время обработки задания больше, чем среднее время поступления задания, в вычислительной системе будет накапливаться очередь с течением времени. Для сбора статистики об очереди используются операторы QUEUE, DEPART. В этом случае программа будет выглядеть следующим образом:
GENERATE 360,300 ; задание поступает

QUEUE OCH ; задание встает в очередь

SEIZE COMP ; задание занимает компьютер

DEPART OCH ; задание покидает очередь

ADVANCE 600,540 ; задание обрабатывается на компьютере

RELEASE COMP ; задание освобождает компьютер

TERMINATE 1 ; задание удаляется (покидает систему)

START 100 ; обработать 100 заданий
Наберите эту программу в среде GPSS World. Для этого:

  1. Выберите File | New и в открывшемся диалоговом окне «Новый документ» – Создать Model.

  2. В результате будет открыто окно Untitled Model1, в котором необходимо набрать текст программы.

  3. Файл с программой можно сохранить в файле с расширением .gps (пункты меню File | Save; File | Save As).

  4. Для запуска программы на выполнение необходимо выбрать пункт меню Command | Create Simulation.

  5. В результате выполнения программы GPSS выдаст стандартный отчет – файл статистики (см. рис. 1).





Рис. 1. Стандартный отчет GPSS
Из представленного на рис. 1 стандартного отчета GPSS имеем следующие результаты прогона модели:

  • общее время моделирования (START TIME – END TIME) при обработке100 заявок составило 60243.977 секунд, т.к. единицы модельного времени в нашем примере – секунды;

  • сгенерировано всего 166 заявок (блок GENERATE, столбец ENTRY COUNT);

  • обработались и покинули систему 100 заявок (блок TERMINATE, столбец ENTRY COUNT);

  • 65 ожидают обслуживания (блок QUEUE, столбец CURRENT COUNT) – таким образом, при заданных интервалах времени поступления и обработки заявок образуется очередь;

  • 1 заявка находится в устройстве (блок SEIZE, столбец CURRENT COUNT)

  • загрузка обслуживающего устройства (ОУ) (строка FACILITY, показатель UTIL.) – 99%;

  • средняя длина очереди (строка QUEUE, показатель AVE. CONT.) – 31 заявка.


Выводы: модель показывает, что компьютер не справляется с потоком заданий. Возможное решение проблемы для данной системы – увеличить количество компьютеров.
Примечание: подробное описание файла статистики GPSS приведено в приложении 1.
Правила записи операторов языка GPSS
Операторы языка GPSS делятся на три типа:

  1. блоки;

  2. операторы описания данных;

  3. команды GPSS.


Формат блока GPSS:
[номер строки] [метка] <операция> <операнды> <;комментарии>
Номер строки. Начинается c первой позиции строки. Указывать не обязательно, система автоматически нумерует блоки программы.

Метка (имя блока). Последовательность символов, начинающаяся c буквы. В некоторых операторах это поле является обязательным.

Операция. Глаголы, которые описывают основные функциональные назначения блоков.

Операнды. Операнды блоков задают информацию, специфичную для действия данного блока. Операнды в общем случае обозначаются символами: А, В, C, D, E, F, G. Операнды следуют один за другим и отделяются запятыми или одним пробелом. Если операнд опущен, то вместо него ставится запятая. Между операндами не должно быть запятой и пробела вместе.

Комментарии. Необязательное поле. Комментарии отделяются от поля операндов символом «;». Допускается запись комментария c начала строки. В этом случае в первой позиции строки ставится символ «;» или «*».

Примечание. В качестве операндов могут использоваться стандартные числовые атрибуты (СЧА). Стандартные числовые атрибуты – этот системные переменные с предопределенными именами, которые хранят текущую информацию о состояниях объектов модели. Например, СЧА может хранить информацию о том,
занято обслуживающее устройство или свободно, максимальную или текущую длину очереди, текущее модельное время и т.п. Полный список СЧА с пояснениями можно получить в справочной информации GPSS World (см. приложение 2).

В нашем примере модель состоит из 7 блоков и команды START. Версия GPSS World содержит 53 различных блока (см. приложение 3). В данной лабораторной работе рассматриваются 15 блоков. Операторы описания данных будут использоваться в следующей лабораторной работе.

Далее рассмотрим подробно работу блоков, использованных в нашем примере.


1. Создание и уничтожение транзактов. Блоки GENERATE и TERMINATE.




Блок GENERATE
Блок GENERATE используется для создания транзактов (заявок) и имеет следующий формат:

GENERATE A,B,C,D,E

В поле A задается среднее значение интервала времени между моментами поступления в модель двух последовательных транзактов. Если этот интервал постоянен, то поле B не используется. Если же интервал поступления является случайной величиной, то в поле B указывается модификатор среднего значения, который может быть задан в виде модификатора-интервала или модификатора-функции.

Модификатор-интервал используется, когда интервал поступления транзактов является случайной величиной с равномерным законом распределения вероятностей. В этом случае в поле B может быть задано либо число, либо любой СЧА, кроме ссылки на функцию, а диапазон изменения интервала поступления имеет границы A-B, A+B.

Например, блок

GENERATE 100,40

создает транзакты через случайные интервалы времени, равномерно распределенные на отрезке [60;140].

Модификатор-функция используется, если закон распределения интервала поступления отличен от равномерного. В этом случае в поле B должна быть записана ссылка на функцию (на СЧА функции), описывающую этот закон, и случайный интервал поступления определяется, как целая часть произведения поля A (среднего значения) на вычисленное значение функции.

В поле C задается момент поступления в модель первого транзакта. Если это поле пусто или равно 0, то момент появления первого транзакта определяется операндами A и B.

Поле D задает общее число транзактов, которое должно быть создано блоком GENERATE. Если это поле пусто, то блок генерирует неограниченное число транзактов до завершения моделирования.


В поле E задается приоритет, присваиваемый генерируемым транзактам. Число уровней приоритетов неограниченно, причем самый низкий приоритет – нулевой. Если поле E пусто, то генерируемые транзакты имеют нулевой приоритет.

Транзакты имеют ряд стандартных числовых атрибутов. Например, СЧА с названием PR позволяет ссылаться на приоритет транзакта. СЧА с названием M1 содержит так называемое резидентное время транзакта, т.е. время, прошедшее с момента входа транзакта в модель через блок GENERATE. СЧА с названием XN1 содержит внутренний номер транзакта, который является уникальным и позволяет всегда отличить один транзакт от другого. В отличие от СЧА других объектов, СЧА транзактов не содержат ссылки на имя или номер транзакта. Ссылка на СЧА транзакта всегда относится к активному транзакту, т.е. транзакту, обрабатываемому в данный момент симулятором.
Блок TERMINATE

Блок TERMINATE (завершить) служит для удаления транзактов из модели. Формат блока:

TERMINATE A

Значение поля A указывает, на сколько единиц уменьшается содержимое так называемого счетчика завершений при входе транзакта в данный блок TERMINATE. Если поле A не определено, то оно считается равным 0, и транзакты, проходящие через такой блок, не уменьшают содержимого счетчика завершений.

Начальное значение счетчика завершений устанавливается управляющим оператором START (начать), предназначенным для запуска прогона модели. Поле A этого оператора содержит начальное значение счетчика завершений. Прогон модели заканчивается, когда содержимое счетчика завершений обращается в 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с непустым полем A, иначе процесс моделирования никогда не завершится.

Текущее значение счетчика завершений доступно программисту через системный СЧА TG1.

Участок блок-схемы модели, связанный с парой блоков GENERATE-ТERMINATE, называется сегментом. Простые модели могут состоять из одного сегмента, в сложных моделях может быть несколько сегментов.

Например, в нашем примере используется один сегмент. Начальное значение счетчика завершений равно 100. Каждый транзакт, проходящий через блок TERMINATE, вычитает из счетчика единицу, и таким образом моделирование завершится, когда сотый по счету транзакт войдет в блок TERMINATE. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведенном примере продолжительность прогона устанавливается не по модельному времени, а по количеству транзактов, прошедших через модель.