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

50 Link waz1,fifo,chan1

В поле <A> блока LINK задается имя списка пользователя, куда заносятся транзакты (в программе задано имя waz1). Поле <B> задает алгоритм упорядочивания списка пользователя (в программе применена дисциплина FIFO). В поле <B> могут быть использованы операнды: FIFO, LIFO — последним пришел первым вышел, номер параметра, приоритет, время нахождения транзакта в модели М1 или С1. В поле <C> задается альтернативный выход (в программе по метке chan1 транзакты отправляются в первое устройство под номером 60).

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

100 Unlink g waz1,chan1,1,13,16,que2

В данном случае задействованы все поля блока UNLINK: <A>, <B>, <C>, <D>, <E>, <F> и вспомогательное поле <X>.

В поле <X> установлен указатель отношения G — больше. Отношение истинно, если значение параметра, заданного в поле <D>, больше значения, заданного в поле <E>.

Поле <A> задает имя списка пользователя (в программе waz1), из которого удаляются транзакты.

В поле <B> указывается имя блока, к которому переходят удаленные транзакты (в программе блок с меткой chan1).

Поле <C> задает число удаляемых из списка транзактов (в программе 1). Операнд поля <C> может быть именем, положительным целым (как в программе число 1), СЧА.

В поле <D> задан номер параметра (в программе номер 13, который переопределен блоком ASSIGN на число 7). Поле <D> может быть именем, целым (как в программе номер параметра), СЧА.

Поле <E> определяет числовой атрибут (в программе задано число 6), который сравнивается со значением параметра транзактов списка пользователя поля <D>.

Поле <F> задает имя следующего для входящего в блок UNLINK транзакта (в программе блок с меткой que2). При этом перевод транзактов в следующий блок происходит в случаях: когда соответствующий список пользователя пуст, когда выполняется заданное отношение в поле <X>.

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

GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 11-23-2001 18:15:13 page 1

START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY

0 3897 17 2 0 96912

LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY

10 1 GENERATE 194 0 0

20 2 ASSIGN 194 0 0

30 3 TEST 194 0 0

40 4 QUEUE 191 0 0

50 5 LINK 191 1 0

60 CHAN1 SEIZE 190 0 0

70 7 DEPART 190 0 0

80 8 ADVANCE 190 0 0

90 9 RELEASE 190 0 0

100 10 UNLINK 190 0 0

150 11 TERMINATE 100 0 0

200 QUE2 QUEUE 93 0 0

210 13 SEIZE 93 0 0

220 14 DEPART 93 0 0

230 15 ADVANCE 93 0 0

240 16 RELEASE 93 0 0

250 17 TERMINATE 93 0 0

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

1 190 0.882 18.10 1 0 0 0 0 0

2 93 0.463 19.42 1 0 0 0 0 0

QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY

1 1 1 191 96 0.17 3.57 7.17 0

2 1 0 93 59 0.05 2.27 6.21 0

USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME

WAZ1 0 0 0.17 100 1 6.81

XACT_GROUP GROUP_SIZE RETRY

POSITION 0 0

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

В отчете появилась статистика по списку пользователя. В поле USER_CHAIN задается имя списка пользователя (в отчете waz1). Поле CHAIN_SIZE определяет количество транзактов в списке пользователя в конце периода моделирования (в отчете 0). Поле RETRY определяет количество транзактов, ожидающих наступления специальных условий, связанных со списком пользователя. Поле AVE.CONT определяет среднее содержимое списка пользователя в течение периода моделирования (в отчете 0.17 транзактов). Поле ENTRIES определяет общее количество транзактов, помещаемых в список пользователя в течение периода моделирования (в отчете 100 транзактов). Поле МАХ определяет максимальное количество транзактов в списке пользователя за период моделирования (в отчете 1 транзакт; каждое помещение транзакта в список блоком LINK выводится затем из списка блоком UNLINK). Поле AVE.TIME определяет среднее время пребывания транзакта в списке пользователя (в отчете 6.81 мин. — единиц времени, которые были определены пользователем при моделировании).

Первое устройство обслужило 190 требований, но из них 90 отправлены во второе устройство. Второе устройство обслужило 93 требования: 3 требования через блок TEST, 90 требований через блок UNLINK.

Задание к примеру 2. В программе 2 изменить поле <A> блока GENERATE: от 2 до 28 с шагом 2. Проанализировать файлы стандартного отчета результатов моделирования.

Рассмотрим пример применения одного блока LINK.

Пример 3. Пусть в условии примера 2 транзакты направляются блоком TEST в очередь второго устройства, из которой они помещаются в список пользователя.

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

Программа 3

simulate

10 generate 20,2

20 assign 13,7

30 test G c1,70,que2

40 queue 1; 1-я очередь

60 chan1 seize 1; 1-е устройство с меткой chan1

70 depart 1

80 advance 19,7

90 release 1

150 terminate 1

200 que2 queue 2; 2-я очередь с меткой que2

205 link waz1,fifo

210 seize 2; 2-е устройство

220 depart 2

230 advance 19,7

240 release 2

250 terminate

start 100

end

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