Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные КМ.doc
Скачиваний:
61
Добавлен:
29.03.2016
Размер:
3.23 Mб
Скачать

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

HАИМЕНОВАНИЕ: Работа с транзактами (блоки GENERATE, TERMINATE, PRIORITY, ASSIGN, SPLIT, ASSEMBLE, MARK).

1.ЦЕЛЬ РАБОТЫ: Изучить транзакты GPSSW.

2.Литература:

2.1 Д. Н. ШЕВЧЕНКО, И. Н. КРАВЧЕНЯ «ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ НА GPSS» Учебно-методическое пособие.

2.2 http://www.belsut.gomel.by/Ellibrary/12/

imitacionnoe_modelirovanie_gpss_kravchenya_shevchenko.pdf

2.3 http://www.bibliofond.ru/view.aspx?id=490533

2.4 Кельтон, В. Имитационное моделирование / В. Кельтон, A. Jloy. - 3-е изд. - СПб.: Питер, 2004. - 848 с.

2.5 Максимей, И. В. Имитационное моделирование на ЭВМ / И. В. Мак­симей. - М. : Радио и связь, 1988. - 232 с.

2.6 Шрайбер, Т. Дж. Моделирование на GPSS / Т. Дж. Шрайбер. - М. : Машиностроение, 1980. - 593 с.

3.Подготовка к работе:

3.1. Изучить предложенную литературу.

3.2. Подготовить бланк отчёта.

4. ОСНОВНОЕ ОБОРУДОВАНИЕ: 4.1. Персональный IBM PC.

4.2. Программа GPSS World

5. Содержание отчета:

5.1. Наименование и цель работы.

5.2. Описать транзакты GPSSW.

5.3. Выводы о проделанной работе.

5.4. Ответы на контрольные вопросы.

6. КОНТРОЛЬНЫЕ ВОПРОСЫ:

6.1Для чего предназначен блок GENERATE

6.2 Описать полностью формат блока GENERATE?

6.3 Описать полностью формат блока ADVANCE?

6.4 Описать полностью формат блока TERMINATE?

6.5 Блок PRIORITY, описать?

6.6Блок ASSIGN, описать?

6.7Описать формата блока SPLIT?

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

1.Загрузить компьютер с операционной системой Windows 2000-XP.

2.Запустить установленную программу GPSS World из директории C:\Program Files\Minuteman Software\GPSS World Student Version.

3.Ознакомится с транзактами программы GPSS World (описанное в приложение).

Приложение.

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

GENERATE А,[В] ,[С] ,[D] ,[Е] ,[F] ,[G] ,[Н] ,[1]

А - среднее значение интервала времени между моделируемыми тран­зактами (по умолчанию - 0);

В - величина разброса возможных значений времени;

С - модельное время генерации первого транзакта;

D - максимальное количество моделируемых транзактов;

Е - приоритет транзактов (по умолчанию - О, т.е. самый низкий приори­тет);

F,..., I - количество и формат параметров транзактов (по умолчанию - 12 параметров формата «полуслово»).

Например:

GENERATE 10,2,5,,2 ; моделирование транзактов через ин­

тервалы времени, равномерно распреде­ленные на отрезке [8,12] (или 10±2) ;

первый транзакт моделируется в мо­мент моделвного времени, равный 5 единиц

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

GENERATE 75,FN$EXPON,,20,,ЗРВ ; моделирование транзактов через ин­тервалы времени, имеющие экспоненци- алвное распределение со средним зна­чением 7 5 единиц (моделирование дру­гих распределений рассмотрено в под- разд. 2.5); первый транзакт моделиру­ется в нулевой момент моделвного вре­мени; генерируется толвко 20 транзак­тов с нулевым приоритетом; каждый транзакт имеет по 3 параметра форма­том «полуслово», т.е. способных при- ниматв значения от -255 до 255

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

Для задержки транзактов в течение заданного интервала модельного времени используется блок ADVANCE. Формат блока:

ADVANCE А,[В]

Операнды А и В аналогичны соответствующим операндам блока GENERATE (см. выше).

Например:

ADVANCE 3 0,5 ; моделирование задержки транзактов в течение време­ни, которое имеет равномерное распределение на от­резке [25, 35] (или 30+5)

ADVANCE 7 5 ; задержка транзактов в течение 7 5 единиц моделвного

времени

Для удаления транзактов из модели используется блок TERMINATE, ко­торый имеет следующий вид: TERMINATE [А]

операнд А указывает число (по умолчанию - 0), на которое уменьшается содержимое счетчика завершений (системного числового атрибута TG1), значение которого задается командой START (см. п. 2.4.2).

Например:

TERMINATE ; уничтожение транзакта, поступившего в блок; значение

счетчика завершений не изменяется TERMINATE 1 ; уничтожение транзакта, поступившего в блок; значение счетчика уменвшается на 1 (при достижении нулевого или отрицателвного значения счетчика завершений процесс моделирования прекращается)

Для изменения приоритета транзакта используется блок PRIORITY, ко­торый имеет формат: PRIORITY А

Операнд А указывает новое значение приоритета транзакта, вошедшего в блок (от 0 до 127 включительно).

Например:

PRIORITY 3 ; присвоитв транзакту приоритет 3

Для изменения значений параметров транзакта используется блок ASSIGN, который имеет следующий вид: ASSIGN A,B,[C],[D]

А - номер изменяемого параметра с указанием режима изменения: нако­пление (+), вычитание (-), замещение (без дополнительных символов); В - число, изменяющее значение параметра;

С - имя функции, применяемой для модификации значения параметра; D - формат изменяемого параметра: PF, РН, РВ или PL (по умолчанию - РН).

Например:

ASSIGN 3+,5,,РВ ; увеличитв значение параметра 3 форматом

«байт» на 5 единиц ASSIGN 3-,7,,PF ; уменвшитв значение параметра 3 форматом

«слово» на 5 единиц ASSIGN 2-6,5.75,,PL ; задатв параметрам 2-6 (форматом «плавающая

точка») значение 5,75

Для создания копий транзакта используется блок SPLIT формата SPLIT А,[В],[С]

А - число создаваемых копий;

В - метка блока, к которому отправляются копии исходного транзакта (сам исходный транзакт безусловно переходит в следующий после SPLIT блок);

С - номер параметра, используемого для присвоения копиям последова­тельных номеров.

Например:

SPLIT 1 ; создать одну копию исходного транзакта и напра­

вить (вместе с исходным транзактом) в следующий блок

SPLIT 2,LABEL1 ; создать две копии исходного транзакта и напра­вить их в блок с меткой LABEL1

Для объединения определенного числа транзактов одного семейства ис­пользуется блок ASSEMBLE А, который имеет следующий формат:

ASSEMBLE А

А - число п объединяемых транзактов.

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

Ранее указывалось, что время пребывания транзакта в модели определя­ется его СЧА Ml. Для определения времени перемещения транзакта между двумя произвольными точками модели используется блок MARK, который имеет вид:

MARK А

А - номер параметра транзакта, в который записывается текущее значе­ние абсолютного модельного времени АС1 (см. системные числовые атри­буты в подразд. 2.3).

Например:

MARK 2 ; сохранение текущего модельного времени во 2-м параметре транзакта

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