Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лабораторных работ 2003.docx
Скачиваний:
77
Добавлен:
12.03.2015
Размер:
8.67 Mб
Скачать
    1. Операторы, имитирующие работу запоминающей категории

Операторы запоминающей категории представлены в таблице 1 .18.

Таблица 1.18. Операторы, имитирующие работу запоминающей категории

Блок

Описание

1

ASSIGN A,B,C

Присвоение или изменение параметра транзакта

2

INITIAL A,B

Инициализация матрицы, логического ключа, ячейки или элемента матрицы

3

SAVEVALUE A,B

Изменение значения ячейки

4

NAME EQU X

Вычисление выражения и присвоение результата именованной величине

Устанавливать или изменять значения параметров возможно с помощью блока ASSIGN.В полеА блокаASSIGN указывается номер или имя параметра, в полеВ - число или СЧА, модифицирующее значение параметра. В поле С может быть указана функция. После прохождения через блокASSIGN параметру транзакта будет присвоено значение величины из поляВ (режим замещения). В режиме увеличения или уменьшения значения параметра в полеА после номера (или имени) параметра указывается знак «плюс» или «минус», соответственно.

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

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

Изменение содержимого ячеек происходит при прохождении транзактов через блок SAVEVALUE, который изменяет содержимое ячейки. При этом блок используется в режиме замещения или в режиме накопления. В режиме замещения в ячейку заносится новое значение, указанное в поле В блока SAVEVALUE. В режиме накопления содержимое ячейки увеличивается (уменьшается) на значение, указанное в поле В блока SAVEVALUE. В поле А блока SAVEVALUE приводится имя или номер модифицируемой ячейки.

Примеры использования описанных выше блоков приведены в таблице 1 .19.

Таблица 1.19 Примеры использования операторов, имитирующих работу запоминающей категории

Пример использования оператора

Комментарии

ASSIGN PARMETR_1,4

Значение 4 присваивается параметру входящего транзакта PARMETR_1

INITIAL X$X_1,58

Команда присваивает ячейке X_1 значение 58

SAVEVALUE X_1+,5

При прохождении транзакта через блок SAVEVALUE ячейка X_1 будет увеличена на 5

SAVEVALUE X_1,X$X_2

При прохождении транзакта через блок SAVEVALUE в ячейку X_1 будет записано значениеX_2

  1. Примеры построения модели на языке gpssWorld

    1. Пример №1

Интервалы прихода клиентов в парикмахерскую с одним креслом распределены равномерно: 18±6 мин. Время стрижки также распределено равномерно: 16±4 мин. Клиенты приходят в парикмахерскую, стригутся в порядке «первым пришел – первым обслужен» и затем уходят. Необходимо смоделировать работу парикмахерской по обслуживанию 100 клиентов.

Данная задача представляет собой систему массового обслуживания «Генератор транзактов-очередь- устройство», где под транзактами понимаются клиенты парикмахерской, а под устройством – кресло, сидя где будет происходить стрижка.

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

Таблица 2.20 Условные обозначения

Условное обозначение

Описание

1

GT_N

Генерация транзактов

2

Q_N

Очередь

3

D_N

Устройство

4

M_N

Память

5

PR=N

Приоритет

6

P=N

Вероятность

Структурная схема примера представлена на рис. 2 .3

Рисунок 2.3 Структурная схема примера 1

Модель данной задачи представлена на рисунке 2 .4.

Рисунок 2.4 Программа примера 2.1

При наборе модели в расширенном редакторе GPSSWorldобратите внимание на автоматическое дополнение кода (см. Рисунок 2 .5).

Рисунок 2.5 Автоматическое дополнение кода

Для моделирования необходимо в меню «Моделирование» выбрать команду «Начать моделирование».

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

Рисунок 2.6 Команда START

В принципе можно прописать команду START100 в самой модели а не вызывать данную команду из меню.

После завершения моделирования выдается стандартный отчет.

В разделе «Общая информация» отчёта указывается начальное и конечное абсолютное модельное время, количество блоков, устройств и памятей модели (см. Рисунок 2 .7).

Рисунок 2.7 Общая информация

В разделе «Имена» отчёта в левом столбце данных строк отчёта указывается имя объекта, а в правом номер, присвоенный ему при трансляции (см. Рисунок 2 .8).

Рисунок 2.8 Имена

В разделе «Блоки» (см. Рисунок 2 .9) отчёта в шести столбцах указываются следующие данные:

  1. Метка;

  2. Номер блока, присвоенный ему при трансляции (командам номер не присваивается);

  3. Типа блока;

  4. Количество входов транзактов в блок;

  5. Количество транзактов, находившихся в блоке на момент окончания моделирования;

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

Рисунок 2.9 Блоки

Для устройств (см Рисунок 2 .10) в десяти столбцах отчёта указываются следующие данные:

  1. Идентификатор устройства (имя или номер);

  2. Количество транзактов, входивших в устройство;

  3. Коэффициент использования устройства в долях;

  4. Среднее время занятия устройства одним транзактом;

  5. Состояние устройства в момент завершения моделирования по доступности (1 - доступно, 0 – не доступно);

  6. Номер транзакта, занимающего устройство;

  7. Количество транзактов, ожидающих возможности занять устройство с прерыванием других транзактов;

  8. Количество транзактов, выполнение которых прервано на данном устройстве;

  9. Количество транзактов, ожидающих выполнения специфического условия, которое зависит от данного устройства;

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

Рисунок 2.10 Устройства

Для очередей (см. Рисунок 2 .11) в девяти столбцах приводятся следующие данные:

  1. Идентификатор очереди;

  2. Максимальное содержимое очереди за время моделирования;

  3. Текущее содержимое очереди в момент завершения моделирования;

  4. Общее количество транзактов, входивших в очередь;

  5. Общее количество транзактов, входивших в *очередь, с нулевым временем ожидания;

  6. Взвешенное по времени моделирования среднее количество транзактов в очереди;

  7. Среднее время ожидания в очереди одного транзакта;

  8. Среднее время ожидания в очереди одного транзакта без учёта транзактов с нулевым временем задержки;

  9. Количество транзактов, ожидающих выполнения специфического условия, зависящего от состояния очереди.

Рисунок 2.11 Очереди

Для списка будущих событий (см. Рисунок 2 .12) в восьми столбцах отчёта указываются следующие данные:

  1. Номер каждого транзакта, находящегося в списке будущих событий;

  2. Приоритет транзакта;

  3. Время, когда планируется вывод транзакта из блока;

  4. Номер семейства данного транзакта;

  5. Номер блока, в котором находился транзакт на момент завершения моделирования;

  6. Номер следующего блока, в который должен поступить данный транзакт;

  7. Идентификатор параметров;

  8. Содержимое параметра.

Рисунок 2.12 Будущие события

По содержимому отчёта сделаем заключение, что среднее время стрижки – 15.988 сравнительно ненамного отличается от заданного среднего значения – 16.0; коэффициент использования кресла – 0.867 также не на много отличается от отношения среднего времени обслуживания к среднему времени между поступлением клиентов – 0.888. Таким образом можно сделать заключение о том, что результаты моделирования не противоречат здравому смыслу.