Главная
»
Информационные системы
»
Моделирование систем
»
Средства управления траекторией движения транзактов
Средства управления траекторией движения транзактов
Машинная реализация имитационной модели возможна с применением 2 различных программных средств построения модели: специализированных систем (языков) моделирования (GPSS, AnyLogic); универсальных языков программирования высокого уровня (Delphi, Java).
При моделировании процессы, события и активности целиком зависят от потоков и траекторий движения транзактов: транзакт, попадая в моделируемую систему, занимает определенные блоки, вызывая при этом события. Наступление событий должно планироваться соответствующими средствами моделирования. При выполнении определенных условий событие вычеркивается из системы моделирования, а на смену ему должны приходить следующие события. При событийном моделировании производственной системы выделяют узловые
моменты динамики в виде событий. В процессе моделирования осуществляется переход (скачок во времени) от предыдущего события к последующему. Каждое событие выполняется мгновенно во времени, модельное время затрачивается только на переход от события к событию. Реализация событий во времени напоминает цепную реакцию: при отработке любого события планируется одно или несколько последующих (будущих) событий.
Транзакты (заявки, запросы, сообщения) – это динамические объекты, порождаемые в процессе моделирования.
В более моделях возникает необходимость направления транзактов к другим блокам в зависимости от некоторых условий. Эту возможность обеспечивают блоки изменения маршрутов транзактов.
GPSS.
ТРАНЗАКТЫ порождаются в блоке GENERATE , перемещаются по функциональным блокам модели, имитирующим структуру и алгоритм работы моделируемой системы, и удаляются из модели в блоке TERMINATE.
Блок TRANSFER (передать) служит для передачи входящих в него транзактов в блоки, отличные от следующего. Блок имеет девять режимов работы, из которых рассмотрим здесь лишь три наиболее часто используемых. В этих трех режимах блок имеет следующий формат:
имя TRANSFER A,B,C
В режиме безусловной передачи поля A и C пусты, а в поле B указывается имя блока, к которому безусловным образом направляется транзакт, вошедший в блок TRANSFER. Например:
TRANSFER ,FINAL
В режиме статистической передачи операнд A определяет вероятность, с которой транзакт направляется в блок, указанный в поле C. С вероятностью 1-A транзакт направляется в блок, указанный в поле B
Вероятность в поле A может быть задана непосредственно десятичной дробью, начинающейся с точки. Например, блок TRANSFER .75,THIS,THAT
с вероятностью 0,75 направляет транзакты в блок с именем THAT, а с вероятностью 0,25 - в блок с именем THIS.предыдущий блок TRANSFER можно записать также в следующем виде: TRANSFER 750,THIS,THAT
В режиме логической передачи в поле A записывается ключевое слово BOTH (оба). Транзакт, поступающий в блок TRANSFER, сначала пытается войти в блок, указанный в поле B, а если это не удается, т.е. блок B отказывает транзакту во входе, то в блок, указанный в поле C.
Блок TEST (проверить) служит для задержки или изменения маршрутов транзактов в зависимости от соотношения двух СЧА. Он имеет следующий формат имя TEST X A,B,C
Вспомогательный операнд X содержит условие проверки соотношения между СЧА и может принимать следующие значения: L (меньше); LE (меньше или равно); E (равно); NE (не равно); GE (больше или равно); G (больше). Поле A содержит первый, а поле B - второй из сравниваемых СЧА. Если проверяемое условие A X B выполняется, то блок TEST пропускает транзакт в следующий блок. Если же это условие не выполняется, то транзакт переходит к блоку, указанному в поле C, а если оно пусто, то задерживается перед блоком TEST.
Например, блок TEST LE P$TIME,C1 не впускает транзакты, у которых значение параметра с именем TIME больше текущего модельного времени. Блок TEST L Q$LINE,5,OUT направляет транзакты в блок с именем OUT, если текущая длина очереди LINE больше либо равна 5.Для задержки или изменения маршрута транзактов в зависимости от состояния аппаратных объектов модели служит блок GATE (впустить), имеющий следующий формат имя GATE X A,B .Вспомогательный операнд X содержит код состояния проверяемого аппаратного объекта, а в поле A указывается имя или номер этого объекта. Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующему блоку. Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, указанному в поле B, а если это поле пусто, то задерживается перед
блоком GATE.
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.