Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мим.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

205 Link waz1,fifo

В поле <A> задается имя списка пользователя (waz1), куда помещаются вошедшие в блок LINK транзакты. Поле <B> определяет дисциплину вошедших в список пользователя транзактов (в программе используется FIFO — вошедший транзакт помещается в конец списка пользователя). Поля <A> и <B> блока LINK являются обязательными. Блок LINK будет блокировать устройство 2, т.е. второе устройство будет не задействованным.

Задание к примеру 3. Написать программу с применением блока UNLINK так, чтобы 2-е устройство было задействовано. В созданной программе изменить поле <B> блока TEST: 30, 50, 90. Изменить также число завершений: 50, 75, 230. Применить следующий формат записи блока UNLINK:

unlink <A>,<B>,<C>

Поле <A> — имя списка. Поле <B> — метка блока, куда будут направляться транзакты из списка. Поле <C> — положительное число.

Лабораторная работа №9 Создание и управление групп транзактов gpss/pc: блоки join, remove, examine

Цель работы: Изучение возможностей управления группами транзактов с помощью блоков JOIN, REMOVE, EXAMINE.

Блок JOIN включает в группу сообщение (режим сообщения) или числовое значение (числовой режим). Присоединение к группе происходит по дисциплине FIFO.

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

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

Пример 1. Смоделировать процесс параллельного обслуживания заявок, которые поступают в систему со временем 42 мин. Первый прибор обслуживает 100 заявок со временем 72 мин., второй прибор обслуживает все остальные поступающие в систему заявки со временем 31 мин. Применить блок JOIN в числовом режиме и режиме сообщения. В числовую группу ввести: параметр транзакта под номером 23, в который записаны числа 34, 21, 2221, 39. В группу сообщений ввести количество транзактов, поступающих на первое устройство.

Программа решения примера 1 приводится как программа 1.

Программа 1

simulate

10 generate 4,2

15 savevalue mmm1,gn$gr1;

16 savevalue mmm2,gt$gr2

20 split 1,chan2

25 assign 23,34

30 join gr2

35 join gr1,p23

36 join gr1,21

37 join gr1,2221

38 join gr1,39

40 seize 1

50 advance 7,2

60 release 1

66 savevalue mmm3,gn$gr1

70 transfer ,exit

80 chan2 seize 2

90 advance 3,1

100 release 2

110 savevalue mmm4,gn$gr1

150 terminate

200 exit terminate 1

start 100

end

В программе 1 блок JOIN используется в режиме сообщения (под номером 30) и в числовом режиме (под номерами 35, 36, 37, 38).

Блоки SAVEVALUE сохраняют СЧА, заданные в полях <B>: gt$gr2 — текущее число членов в группе с именем gr2, gn$gr1 — текущее число членов в числовой группе с именем gr1.

Формат записи блока JOIN в режиме сообщения:

  1. join gr2

Блок JOIN под номером 30 имеет одно заполненное поле <A>, которое задает имя группы — gr2. Операнд поля <A> может быть е положительным целым, СЧА, СЧА с параметром.

Формат записи блока JOIN в числовом режиме:

35 join gr1,p23

36 join gr1,21

37 join gr1,2221

38 join gr1,39

Для каждой записи блока JOIN в поле <A> указывается имя группы. В поле <B> задается присоединяемое к группе числовое значение: число 34 через параметр 23, числа 21, 2221, 39.

Два блока TERMINATE используются для вывода заявок (транзактов) из системы: блок под номером 200 связан со счетчиком числа завершений через оператор START 100, блок под номером 150 выводит из системы транзакты, обслуженные во втором устройстве.

Каждый из блоков SAVEVALUE заносит в отводимую ячейку (mmm1, mmm2, mmm3, mmm4) соответственно: число членов в группе gr1, число транзактов в группе сообщения gr2, число членов в группе gr1, число членов в группе gr1.

Результаты моделирования представлены в файле стандартного отчета 1.

GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 12-07-2001 13:51:16 page 1

START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY

0 724 21 2 0 87152

LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY

10 1 GENERATE 182 0 0

15 2 SAVEVALUE 182 0 0

16 3 SAVEVALUE 182 0 0

20 4 SPLIT 182 0 0

25 5 ASSIGN 182 0 0

30 6 JOIN 182 0 0

35 7 JOIN 182 0 0

36 8 JOIN 182 0 0

37 9 JOIN 182 0 0

38 10 JOIN 182 81 0

40 11 SEIZE 101 1 0

50 12 ADVANCE 100 0 0

60 13 RELEASE 100 0 0

65 14 SAVEVALUE 100 0 0

70 15 TRANSFER 100 0 0

80 CHAN2 SEIZE 182 0 0

90 17 ADVANCE 182 0 0

100 18 RELEASE 182 0 0

110 19 SAVEVALUE 182 0 0

150 20 TERMINATE 182 0 0

200 EXIT TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY

1 101 0.994 7.13 1 200 0 0 0 81

2 182 0.766 3.05 1 0 0 0 0 0

XACT_GROUP GROUP_SIZE RETRY

POSITION 0 0

GR2 82 0

NUMERIC_GROUP GROUP_SIZE RETRY

GR1 4 0

SAVEVALUE VALUE RETRY

MMM1 +4 0

MMM2 +82 0

MMM3 +4 0

MMM4 +4 0

Файл стандартного отчета 1

В файле отчета группа сообщений (под именем gr2) следует за стандартным полем POSITION. Поле XACT GROUP определяет имя или номер объекта типа "группа сообщений". В поле GROUP SIZE — размер группы — указывается число транзактов, которое осталось в группе в конце моделирования (это число равно 82). Поле RETRY определяет число транзактов, ожидающих наступления специальных условий, связанных с состоянием этой группы транзактов (в поле стоит 0, т.к. специальных условий не создавалось). Информация о числовой группе следующая. Поле NUMERIC GROUP определяет имя числовой группы (в файле отчета имя gr1). Поле GROUP SIZE определяет количество числовых значений, которые содержатся в числовой группе в конце моделирования. Это количество равно 4 (в группу занесены четыре числа). Поле RETRY определяет число транзактов, ожидающих наступления специальных условий, связанных с состоянием числовой группы (специальных условий не создавалось, поэтому в поле RETRY находится 0).

Задание примеру 1. Создать числовую группу со следующими СЧА: Р3—параметр транзакта под номером 3, С1 — текущее значение условного времени моделирования, FT1, FT2 — среднее время использования 1-го и 2-го устройств, соответственно. Вычислить переменную со значением и занести ее в числовую группу.

Пример 2. Числовой режим блока REMOVE. Смоделировать процесс обслуживания заявок, которые поступают в систему каждые 8 минут. Обслуживание происходит в первом устройстве со временем 72 мин. и обслуживаются 100 заявок. Сформировать числовую группу из чисел 21, 39, 44, Р23 — параметр со значением 15. Предусмотреть удаление из группы числа 21, параметра Р23 (число 15) и перевод заявок во второй прибор, который обслуживает заявки также со временем 72 мин.

Программа решения примера 2. приводится как программа 2.

Программа 2

simulate

10 generate 8

20 assign 23,15

30 join gr1,p23

40 join gr1,21

50 join gr1,39

60 join gr1,44

70 queue 1

80 chan1 seize 1

90 depart 1

100 advance 7,2

110 release 1

120 remove gr1,,p23,,,chan2

130 savevalue mmm1,gn$gr1

140 remove gr1,,21

150 savevalue mmm2,gn$gr1

160 transfer ,exit

170 chan2 queue 2

180 seize 2

190 depart 2

200 advance 7,2

210 release 2

220 terminate

250 exit terminate 1

start 100

end

В группу под именем gr1 заносятся числа 21, 39, 44, 15 (через параметр под номером p23) с помощью блоков join (под номерами 30, 40, 50, 60).

Удаление чисел 21, 15 (как числовое значение параметра p23) производится блоками remove (под номерами 120 и 140).

Блоки savevalue в различных частях программы сохраняют в ячейках стандартный числовой атрибут gn$gr1 — значение числовой группы под именем gr1.

Формат записи блоков REMOVE: