Файл: Моделирование систем в среде gpss world.docx

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

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

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

Добавлен: 10.11.2023

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

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

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




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

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

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




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

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

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

Лабораторная работа №1

«Моделирование систем в среде GPSS World»
Выполнил:

Меланин Никита Игоревич

РИ-300003

АТ-08

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


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

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

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

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

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

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

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

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

START 100 ; обработать 100 заданий


Из представленного на рис. 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 заявка.


Q-схема:



Вывод:

Эта модель предполагает, что компьютеры не могут справиться с потоком задач. Возможным решением этой системы является увеличение количества компьютеров.
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. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведенном примере продолжительность прогона устанавливается не по модельному времени, а по количеству транзактов, прошедших через модель.

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

GENERATE 100,40

…..

TERMINATE
GENERATE 100000

TERMINATE 1

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

Замечание! Не путайте ограничитель транзактов в блоке GENERATE и счетчик завершения. Ограничитель задает число транзактов, которые войдут в модель, а счетчик – число транзактов, которые выйдут из модели. По окончании моделирования транзакты могут оставаться в модели.
Задания для самостоятельной работы:

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

1. К компьютеру на обработку поступают 14 заданий (транзактов), интервал поступления заданий распределен по равномерному закону в диапазоне 3-11 мин. Задайте единицу модельного времени – 1 мин.

2. К компьютеру на обработку в нулевой момент времени поступают 5 заданий с уровнем приоритета равным 25. Подумайте, как проверить?

3. Задания поступают на обработку к компьютеру каждые 4-14 мин. Первое задание поступает на 20 минуте. Задайте единицу модельного времени – 1 сек.

4. Моделирование заканчивается после того, как компьютер обработает 300 заданий, задания должны поступать в модель каждые 1-11 минут. Единицы модельного времени – минуты.

5. Задайте время моделирования работы системы 8 часов, единица модельного времени – 1 секунда.

Как изменились характеристики работы моделируемой системы в результате внесенных изменений? Сравните результаты моделирования с исходными значениями примера.

GENERATE - вводит транзакты в модель.
Формат: GENE[RATE] A,B,C,D,E,F,G

А - среднее значение интервала времени;
В - разброс или модификатор среднего значения(по умолчанию ноль);
С - время появления первого транзакта;
D - общее число генерируемых транзактов;
Е - уровень приоритета каждого транзакта;(от 0 до 127,значение по умолчанию 0);
F - число параметров (по умолчанию 12);
G - тип параметра ( F - полнословный, Н - полусловный - по умолчанию ).