Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000276.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
1.37 Mб
Скачать
    1. Инициализация модели (рис. П 1.4)

Нажмите кнопку ModBeg (Model Begin) под палитрой объектов.

В строке «Название» введите имя модели, которое будет указано в таблице результатов моделирования. Расширение .pgf следует убрать, так как это имя не является именем какого-либо файла, как ошибочно решили разработчики Gem.

В стороке «Узлы» автоматически показывается номер последнего узла модели.

В строке «Время» следует указать длительность периода моделирования. В модели время «течет» в условных единицах, поэтому указывается только количество необходимых отрезков времени, которое должна «прожить» ваша модель. В качестве единичного отрезка разумно принять минимальный отрезок времени, который будет использоваться при задании параметров модели.

В строке «ПСЧ» указывается начальное значение для генератора псевдослучайных чисел, необходимых для имитации случайных процесов. Автоматически для этого используется показание компьютерного таймера.

Рис. П.1.4. Инициализация узлов модели

В строке «Пространство» пользователю предлагается выбрать тип пространства, если модель будет работать с координатной плоскостью. В данной задаче это не требуется.

Строки «Задержка» и «Поток» предназначены для задания номеров контролируемых узлов: очереди (узел «Queue») и терминатора (узел «Term») соответственно. Для указанных узлов в процессе моделирования будут строиться графики времени задержки (очередь) и динамики выходного потока (терминатор). График времени задержки показывает среднее значение времени ожидания транзакта в очереди в каждый единичный отрезок модельного времени. График динамики потока показывает число транзактов, попавших в терминатор в единицу модельного времени (то есть интенсивность выходного потока заявок в моделируемой системе).

В строке «Точность» можно выбрать необходимое число знаков после десятичной точки в таблице результатов моделирования.

В окне «Начальный С++ текст» при необходимости переопределяются имена параметров транзактов и задаются числовые константы. В данной задаче определены имена T_wait (параметр транзакта, в который будет записываться его время ожидания в очереди) и T_start (параметр, в который будет занесено время входа в очередь), а также описана константа T_max, задающая максимально допустимое время ожидания.

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

Кнопка «ModEnd» служит для задания параметров файла результатов моделирования (имя файла, число строк на странице и флаг разбивки на страницы). Можно оставить вариант, предлагаемый по умолчанию.

Кнопка «Переменные» служит для определения рабочих переменных (в данной задаче не нужно).

    1. Описание узлов модели

Для описания узлов, как было сказано выше, необходимо дважды щелкнуть с помощью мыши по изображению узла графа. Номера узла и соответствующей рабочей плоскости проставляются автоматически. Имя узла вводится пользователем в соответствии с логической ролью узла в модели. Класс узла позволяет изменить тип узла на другой, имеющий ту же форму графического значка.

Кнопка «Определить параметры» предназначена для задания настроечных параметров узла.

Окна «Общий С++ текст» позволяют описать необходимые дополнительные действия, которые должны выполняться всякий раз, когда в узел входит очередной транзакт. Эти действия (записанные по синтаксическим правилам языка программирования С++) могут быть выполнены либо перед входом транзакта в узел (закладка «Перед входом в узел»), либо сразу после входа перед началом обслуживания в узле (закладка «После входа в узел»).

Разница между этими позициями состоит в следующем. Действия, указанные перед прохождением узла, могут, вообще говоря, быть выполнены моделью более одного раза – при неудачных попытках входа в узел (например, в занятый сервер или в закрытый ключ). Модель реально несколько раз пытается «протолкнуть» очередной транзакт на шаг вперед, и каждый раз выполняются действия «Перед прохождением узла». Таким образом, в этом месте не должно быть указано никаких операций, повторное выполнение которых приведет к ошибке (например, операции типа «х=х+1»). Однако, определение значений переменных параметров настройки узла (если таковые имеются) должно быть сделано именно перед прохождением узла.

Окна «Входы» и «Выходы» показывают маршрут следования транзактов. Если из узла имеется более одного выхода, то необходимо задать правила выбора пути транзакта. Для этого нужно последовательно пометить мышкой каждый из вариантов перехода транзакта и в строке «Условие перехода» записать логическое условие, при выполнении которого выбирается сответствующий выход. Важно помнить, что проверка условий осуществляется в порядке следования вариатов в окне, то есть в том порядке, в каком были протянуты стрелки на графе. Условия записываются по правилам построения логических выражений языка С++.

Если выполнение какого-либо из условий перехода влечет за собой необходимость некоторых дополнительных операций, они должны быть записаны в окне «С++ текст». Проверка условий перехода и выполнение соответствующих операций осуществляется перед прохождением узла транзактом.