Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5mzQtxCL1a.doc
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
3.06 Mб
Скачать

11.19.2. Накопление нескольких транзактов для последующей обработки

Для накопления заданного количества транзактов и их последующей передачи (всех одновременно) в следующий оператор модели используется оператор:

GATHER A

где A - количество накапливаемых транзактов.

Все транзакты, накапливаемые в операторе GATHER, должны принадлежать одному ансамблю (т.е. должны быть созданы оператором SPLIT из одного исходного транзакта).

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

.....

11.19.3. Объединение нескольких транзактов в один

Для объединения заданного количества транзактов в один транзакт используется следующий оператор:

ASSEMBLE A

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

Все транзакты, объединяемые в операторе ASSEMBLE, должны принадлежать одному ансамблю.

Примечание. Оператор ASSEMBLE работает следующим образом: накапливает A транзактов, пропускает первый из них в следующий оператор; остальные транзакты уничтожаются.

Важное (но не единственное) применение оператора ASSEMBLE - имитация процессов сборки изделий и составления комплектов изделий в моделях производственных систем.

11.19.4. Синхронизация движения транзактов в модели

Для синхронизации (согласования) движения двух транзактов в модели используется следующий оператор:

метка MATCH A

где A - метка другого оператора MATCH, называемого сопряженным с данным оператором.

Метка и операнд A обязательны.

В модели всегда должна быть пара операторов MATCH, причем метка одного из них должна совпадать с операндом A другого, и наоборот.

Примечание. В модели может быть несколько пар операторов MATCH.

Операторы MATCH работают следующим образом. Транзакт, вошедший в оператор MATCH, не пропускается дальше до тех пор, пока в другой (сопряженный) оператор MATCH не войдет транзакт, принадлежащий тому же ансамблю. Как только в обоих операторах MATCH оказывается по одному транзакту, оба транзакта (одновременно) пропускаются в операторы, следующие за операторами MATCH.

Пример. На ВЦ, имеющий три ЭВМ, поступают задания двух типов (A и B). Интервалы между моментами поступления задач и времена их решения представляют собой случайные величины, распределенные по экспоненциальному закону.

Задания типа A поступают в среднем через каждые 5 часов. Эти задания состоят из двух задач (A1 и A2). Решение задачи A1 занимает в среднем 2 часа. Задача A2 может решаться только после получения результатов решения задачи A1; кроме того, для обработки результатов задачи A1, необходимых для решения задачи A2, требуется 155 минут. Решение задачи A2 занимает в среднем 1 час 30 минут. Задания типа B представляют собой отдельные задачи; интервалы между этими заданиями составляют в среднем 3,5 часа, а время решения - 1 час.

Требуется разработать GPSS-модель для анализа работы ВЦ в течение 100 часов. Предусмотреть подсчет количества выполненных заданий каждого типа.

10 SIMULATE

20 XPDIS FUNCTION RN1,C24

... таблица соответствия для экспоненциального распределения ...

30 COMP STORAGE 3

40 GENERATE 300,FN$XPDIS

50 SPLIT 1,Z2

60 ASSIGN 1,1

70 ASSIGN 2,120

80 TRANSFER ,OBR

90 Z2 ASSIGN 1,2

100 ASSIGN 2,90

110 QUEUE OZH

120 NACHZ2 MATCH KONZ1

130 DEPART OZH

140 TRANSFER ,OBR

150 GENERATE 200,FN$XPDIS

160 ASSIGN 1,3

170 ASSIGN 2,60

180 OBR QUEUE 1

190 ENTER COMP

200 DEPART 1

210 ADVANCE P2,FN$XPDIS

220 LEAVE COMP

230 TEST NE P1,3,KON

240 TEST E P1,1,REZ

250 ADVANCE 15,5

260 KONZ1 MATCH NACHZ2

270 REZ ASSEMBLE 2

280 KON SAVEVALUE P1+,1

290 TERMINATE

300 ;

310 GENERATE 6000

320 TERMINATE 1

Модель работает следующим образом. Для имитации ВЦ используется многоканальное (трехканальное) устройство COMP. Операторы 40 и 150 имитируют поступление на ВЦ заданий типа A и B соответственно. Транзакты, имитирующие задания типа A, разделяются (оператор 50) на два транзакта, имитирующих задачи A1 и A2. В первый параметр каждого транзакта заносится число: 1 - задача A1, 2 - A2, 3 - задание (задача) B. Во второй параметр каждого транзакта заносится среднее время решения соответствующей задачи. Транзакты, имитирующие задачи A1 и B, сразу же поступают на обработку (в очередь к ЭВМ). Решение задач на ЭВМ имитируется операторами 180-220.

Транзакты, имитирующие задачи A2, поступают в очередь OZH; эта очередь введена в модель для получения информации об ожидании задачами A2 результатов решения задач A1. Транзакт, поступивший в очередь OZH, передается в оператор 120; в этом операторе он ждет, пока другой транзакт (имитирующий задачу A1) войдет в сопряженный оператор 260. Это происходит после того, как транзакт, имитирующий задачу A1, выходит из устройства COMP, а также задерживается на 155 минут; после этого имитируется поступление задачи A2 на обработку (соответствующий транзакт выходит из оператора 120, покидает очередь OZH и передается в оператор 180, т.е. в очередь к ЭВМ). В операторе 270 происходит объединение транзактов, имитирующих задачи A1 и A2. Таким образом имитируется окончание обработки задания A (решение обеих задач, входивших в него).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]