Стартовый информационный ресурс дает возможность отправить заявку на выполнение какой-либо функции, т.е. поместить транзакт в очередь на обслуживание. На рис. 6 показана схема получения такого ресурса. Для выполнения основной функции нужны только два узла: первый (очередь queue) и седьмой - последний (обслуживающий процесс serv). Узлы 2 - 6 предназначены для имитации получения информации из N источников. Эти источники – каналы в узле обслуживания 5 (serv). В данном случае предполагается, что ко всем каналам или источникам информации доступ осуществляется через общую очередь 4 (queue). Если необходимо смоделировать отдельные механизмы доступа к каждому уникальному источнику информации, то данную схему нужно усложнить: это будет N очередей к N одноканальным узлам обслуживания.

Рис. 6. Схема получения информационного ресурса
для выполнения основной функции
Оперативный информационный ресурс может быть получен двумя способами:
• предварительно, вместе со стартовыми;
• во время выполнения транзактом основной функции.
На самом деле неважно, как получен ресурс; важно иметь доступ к этому ресурсу по возможности постоянно, так как прекращение доступа повлечет за собой приостановку выполнения основной функции. Моделирование механизма таких приостановок показано на рис. 7.

Рис. 7. Схема выполнения функции основным транзактом
при наличии доступа к информации
4. ДЕНЕЖНЫЕ РЕСУРСЫ
Денежный ресурс представляет собой «емкость», в которой содержится определенное количество ресурса, измеряемого числом с плавающей точкой. Обычно эту емкость отождествляют со счетом бухгалтерского или банковского учета. Этот счет описывается с помощью узла типа send (пересылка). В узле send образуется очередь транзактов, в которых содержится запрос на перевод денежных средств с данного счета send на какой-либо другой. Эта очередь может быть организована по приоритетному принципу: чем меньше денег требует транзакт перевести с данного счета, тем он приоритетнее. Можно устанавливать приоритеты и по-другому, например по такой приоритетной таблице: сначала налоги, затем - зарплата, а после этого - все остальные платежи.
Непосредственно проводками средств с одного счета на другой занимается узел типа direct (рис. 8). Этот узел имитирует работу бухгалтера. Достаточно иметь один узел direct на всю модель. Обслуживание в узле direct заключается в следующем: если запрос транзакта может быть удовлетворен, то транзакт проходит через узел direct, перечисляя требуемую сумму с данного счета-узла send на другой за нулевое модельное время, уменьшая остаток на счете. Начальные значения средств на некоторых счетах задаются при инициализации модели с помощью функции assign. Вид денежной единицы не имеет значения. Например, целая часть суммы - это рубли, а два знака после десятичной точки - это копейки. В модели автоматически определяются задержка в очереди send, остаток (положительное сальдо) и дефицит (отрицательное сальдо).

Рис. 8. Схема распределения денежных ресурсов
(бухгалтерские проводки)
5. МОДЕЛИРОВАНИЕ ПРОСТРАНСТВЕННОЙ ДИНАМИКИ
Поведение исследуемой системы в пространстве моделируется с помощью узлов типа creat, delet, proc и dynam. Логика узла creat такова: он получает координаты порождающего транзакта, в результате происходит имитация перемещения в пространстве. Узел delet получает координаты каждого уничтожаемого транзакта, т.е. он перемещается по координатной сетке в процессе нахождения в нем поглощающего транзакта. Для моделирования пространственных перемещений, связанных с поставкой товаров во многие пункты местности, используется узел ргос.
Пример (рис. 9). Часть модели, состоящая из узлов queue и ргос, предназначена для моделирования движения транспортного средства. Имеется специальный массив, предварительно загруженный координатами М пунктов региона из файла или базы данных средствами моделирующей системы. На вход этой части модели в разные моменты времени поступают М транзактов, причем каждый из них «читает» в свои внутренние параметры координаты очередной точки. Узел ргос, моделирующий транспортное средство, в качестве одного из параметров получает скорость перемещения, которая может быть изменяемой. При поступлении каждого следующего транзакта из очереди в узел ргос с помощью функции geoway автоматически определяется расстояние по поверхности Земли от предыдущего пункта до следующего. Время обслуживания транзакта - это расстояние, деленное на скорость. По истечении времени обслуживания узел получает новые координаты того пункта, в который он попал. Порядок посещения пунктов узлом ргос - хронологический (в порядке поступления транзактов в очередь) или в соответствии с приоритетами транзактов.

Рис. 9. Имитация перемещения в пространстве по координатам вызывающих транзактов: queue - очередь транзактов из точек пространства; ргос – имитация перемещения (транспортировки)
Узел dynam предназначен для моделирования управляемой очереди обслуживания транзактов с динамическими пространственно-зависимыми приоритетами.
Задача оптимального расписания для обслуживания транзактов с пространственно-зависимыми приоритетами может возникнуть, например, при моделировании следующих сложных процессов и объектов:
• участка гибкого автоматизированного производства с роботизированными тележками, путешествующими по цеху;
• местности, подверженной какому-то бедствию, в процессе ее обследования специальной командой на вертолете и др.
6. УПРАВЛЕНИЕ МОДЕЛЬНЫМ ВРЕМЕНЕМ
События модели происходят в некотором модельном времени. Модельное время - это виртуальное время, в котором автоматически упорядочиваются все события, причем не обязательно пропорционально реальному времени, в котором развивается моделируемый процесс. Например:
• реальное время развития процесса - 3 года;
• модель процесса, охватывающая эти 3 года, выполняется на компьютере за 1 с;
• все события при выполнении модели выстроены в нужном порядке, и все статистические данные в результате ее выполнения замерены.
Масштаб времени - это число, которое задает длительность моделирования одной единицы модельного времени, пересчитанной в секунды, в секундах астрономического реального времени при выполнении модели. Относительный масштаб времени - это дробь, показывающая, сколько единиц модельного времени помещается в одной единице процессорного времени при выполнении модели в компьютере.
Можно выделить четыре разновидности масштаба времени:
1.Реальный масштаб времени - вводится значение выбранной единицы измерения модельного времени, выраженное в секундах. Например, если в качестве единицы модельного времени выбран 1 ч, а в качестве масштаба задать число 3600, то модель будет выполняться со скоростью реального процесса, а интервалы времени между событиями в модели будут равны интервалам времени между реальными событиями в моделируемом объекте (с точностью до поправок на погрешности при задании исходных данных). Относительный масштаб в этом случае равен 1:1.
2.Максимально ускоренный масштаб времени - задается число 0. В этом случае время моделирования определяется чисто процессорным временем выполнения модели. Например, если в модели произошли три события, причем длительность модельного времени между первым и вторым событиями составляет 1 мин, а между вторым и третьим интервал модельного времени равен 24 ч, то в компьютере соответствующие интервалы астрономического времени - это длительность выполнения управляющих программ имитатора, т.е. оба интервала приблизительно равны. Они зависят от используемого процессора ЭВМ и могут измеряться малыми долями секунды. Это обстоятельство позволяет достигнуть максимального быстродействия модели и автоматически исключать из процесса моделирования непроизводительные отрезки модельного времени (например, в ночное время фирма не работает). Относительный масштаб в этом случае практически трудно определить.
3.Пропорционально ускоренный масштаб времени – вводится значение выбранной единицы измерения модельного времени, выраженное в секундах. Причем это значение меньше выбранной единицы. Например, если в качестве единицы модельного времени выбран 1 ч, а в качестве масштаба задать число 0,1, то модель будет выполняться быстрее реального процесса. Причем 1 ч реального процесса будет моделироваться в ЭВМ в течение 0,1 с (с учетом погрешностей), т.е. примерно в 36 000 раз быстрее. Относительный масштаб равен 1:36 000.
4.Замедленный масштаб времени - вводится значение выбранной единицы измерения модельного времени, выраженное в секундах. Причем это значение меньше выбранной единицы. Например, если в качестве единицы модельного времени выбран 1 ч, а в качестве масштаба задать число 7 200, то модель будет выполняться медленнее реального процесса. Причем 1 ч реального процесса будет моделироваться в ЭВМ в течение 2 ч, т.е. примерно в 2 раза медленнее. Относительный масштаб равен 2:1. Замедленный масштаб не представляет интереса для проведения исследований с моделями. Однако замедленная работа необходима при исследовании самого имитатора и характеристик его координатора (например, при калибровке общего модельного таймера).
Механизм планирования событий и модельный таймер. В процессе моделирования образуются управляющие структуры данных. На фазе инициализации для каждого узла в памяти ЭВМ выделяется блок управления узлом kcb. Эти блоки уничтожаются при завершении моделирования. Если в процессе прогона модели появляется новый транзакт, то на все время его существования образуется блок управления транзактом tcb. При входе транзакта в узел возникает блок управления событием ecb, который уничтожается после выхода транзакта из этого узла. Если транзакт захватывает какое-то количество единиц ресурса определенного типа, то к нему присоединяется блок управления ресурсом rcb с идентификатором этого ресурса; в этом блоке отмечается используемое количество единиц. Если ресурс полностью освобожден, то rcb уничтожается.