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

11.19. Моделирование согласованных процессов на gpss-pc

Под согласованными процессами будем понимать любые процессы, связанные друг с другом по времени. Приведем несколько примеров согласованных процессов:

- операции сборки готовых изделий из некоторых деталей: к моменту сборки изделия должно быть подготовлено необходимое количество деталей заданных типов;

- решение на ЭВМ задач, исходными данными для которых являются результаты решения других задач: к моменту начала решения задачи должны быть решены все задачи, создающие для нее исходные данные.

Рассмотрим средства языка GPSS-PC, необходимые для имитации таких процессов.

11.19.1. Создание ансамблей транзактов

В GPSS-PC имеется возможность создания любого количества копий транзакта, имеющегося в модели. Транзакты, созданные путем копирования (размножения) некоторого транзакта, называются транзактами одного ансамбля (семейства). Для создания ансамблей транзактов используется следующий оператор:

SPLIT A,B

где A - количество создаваемых копий транзакта, вошедшего в данный оператор SPLIT;

B - метка оператора, на который передаются все созданные копии.

Исходный транзакт (т.е. транзакт, вошедший в оператор SPLIT) передается в следующий оператор. Если операнд B не указан, то все созданные копии также передаются в следующий оператор.

Примечание. Как видно, после каждого входа транзакта в оператор SPLIT из этого оператора выходит A+1 транзакт (исходный транзакт и A копий).

Приме. Оператор GENERATE 12,2 (создание транзактов через каждые 122 минуты) можно заменить следующей группой операторов:

GENERATE ,,,1

MET ADVANCE 12,2

SPLIT 1,MET

Здесь оператор GENERATE создает один транзакт. Он задерживается на 122 минуты и попадает в оператор SPLIT. Оттуда этот транзакт передается в следующий оператор модели, а его копия - на метку MET (задержка на 122 минуты). После этого копия первого транзакта снова попадает в оператор SPLIT, создается новая копия, и т.д.

Транзакты одного ансамбля, созданные оператором SPLIT, могут обрабатываться точно так же, как и созданные оператором GENERATE (входить в очереди, устройства и многоканальные устройства, учитываться в операторах SAVEVALUE и т.д.). Кроме того, с этими транзактами можно выполнять дополнительные операции: сбор нескольких транзактов в один (оператор ASSEMBLE), накопление нескольких транзактов для последующей обработки (оператор GATHER), согласование продвижения транзактов по операторам модели (оператор MATCH). Для транзактов, созданных оператором GENERATE, такие операции НЕВОЗМОЖНЫ.

Примечание. Если транзакт, вошедший в оператор SPLIT, имел некоторые значения параметров (заданные оператором ASSIGN), то все его копии будут иметь те же значения параметров. Их можно затем изменять оператором ASSIGN.

Примечание. Транзакт, созданный оператором SPLIT, может затемтакже использоваться для создания новых транзактов в операторе SPLIT. Все транзакты, имеющие один общий исходный транзакт, принадлежат одному ансамблю.

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