КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Основные процессы и действия узлов модели
Рассмотрим основные процессы и действия, которые могут выполняться в различных узлах модели. Подробные описания таких действий на уровне языка моделирования и соответствующие правила будут приведены в последующих разделах. Генератор транзактов (с бесконечной емкостью) имеет наименование ag. Узлы-генераторы создают новые транзакты и передают их в другие узлы модели. Параметры генератора в случае необходимости можно изменить посредством информащюнного воздействия из другого узла с помощью сигнала cheg (здесь и далее сигнал. – это специальная функция, выполненная транзактом, находящимся в одном узле, в отношении другого узла). Очередь (с относительными приоритетами или без приоритетов) имеет наименование queue. Если приоритеты не учитываются, то транзакты упорядочиваются в очереди в порядке поступления. Когда приоритеты учитываются, транзакт попадает не в «хвост» очереди, а в конец своей хфиоритетной группы. Приоритетные группы упорядочиваются от «головы» очереди к «хвосту» в порядке уменьшения приоритета. Если транзакт попадает в очередь и не имеет своей приоритетной группы, то группа с таким приоритетом сразу возникнет: в ней будет один вновь поступивший транзакт. Узел обслуживания с многими параллельными каналами имеет наименование serv. Обслуживание может быть в порядке поступления транзакта в освободившийся канал либо по правилу абсолютных приоритетов. Если такое правило задано и возникает ситуация, при которой в «голове» очереди на обслуживание находится транзакт с ненулевым приоритетом, все каналы заняты, причем в одном из каналов на обслуживании находится транзакт с более низким приоритетом, то выполняется следующее: • обслуживание неприоритетного транзакта прерывается; • неприоритетный транзакт удаляется из канала в стек временного хранения; • канал занимает более приоритетный транзакт. После освобождения канала прерванный транзакт возвращается в канал и дообслуживается столько времени, сколько оставалось на момент прерывания. Реально возможны прерывания в прерываниях, когда на вход узла поступают все более приоритетные транзакты, а обслуживание происходит медленно. Поэтому глубина стека временного хранения не ограничена. Терминатор, убирающий транзакты из модели, имеет наименование term. Транзакт, поступающий в терминатор, уничтожается. В терминаторе фиксируется время жизни транзакта. Управляемый генератор (размножитель) транзактов имеет наименование creat. Он позволяет создавать новые семейства транзактов. Дело в том, что транзакты, создаваемые обычными генераторами ag, принадлежат семейству с номером О (номер семейства – один из параметров транзакта). Если возникает необходимость создать новое семейство с ненулевым номером, то соответствующее требование содержится в порождающем транзакте, поступающем на вход creat. Далее за нулевое модельное время происходит следующее: • порождающий транзакт выходит из узла creat; • из этого же узла выходит группа новых транзактов, принадлежащих семейству с заданным номером. Управляемый терминатор транзактов имеет наименование delet Иногда в модели возникает необходимость уничтожить (поглотить) заданное число транзактов, принадлежащих конкретному семейству. TpedoBanne на такое действие содержится в уничтожающем транзакте, поступающем на вход узла delet. Этот транзакт ждет поступления в узел транзактов указанного семейства и уничтожает их; время жизни при этом регистрируется. После поглощения заданного количества транзактов (или по специальному сигналу freed из другого узла) уничтожающий транзакт покидает узел. Клапан, перекрывающий путь транзактам, имеет наименование key. Если на клапан воздействовать сигналом hold из какого-либо узла, то клапан перекрывается и транзакты не могут через него проходить. Сигнал rels из другого узла открывает клапан. Транзакты проходят через этот узел без задержки - за нулевое модельное время. Часто этот узел используется для целей синхронизации или для моделирования работы с информационными ресурсами. Очередь с пространственно-зависимыми приоритетами имеет наименование dynam. Транзакты, попадающие в такую очередь, привязаны к точкам пространства. Очередь обслуживается специальным узлом ргос, работающим в режиме пространственных перемещений. Смысл обслуживания транзактов заключается в том, чтобы посетить все точки пространства, с которыми связаны (или из которых поступили) транзакты. При поступлении каждого нового транзакта, если он не единственный в очереди, происходит переупорядочение очереди таким образом, чтобы суммарный путь посещения точек был минимальным. Не следует считать, что при этом решается задача коммивояжера: для решения такой задачи в нулевой момент времени имеется вся информация о точках пространства. В данном же случае информация о новых точках поступает во время движения, когда некоторые точки уже посещены. Рассмотренное правило работы узла dynam в литературе называется «алгоритмом скорой помощи». Управляемый процесс (непрерывный или пространственный) имеет наименование ргос. Этот узел работает в трех взаимно исключающих режимах: 1) моделирование управляемого непрерьшного процесса (например, процесса в химическом реакторе); 2) моделирование доступа к оперативным информационным ресурсам; 3) моделирование пространственных перемещений (например, вертолета или корабля по поверхности Земли). В первом режиме после входа транзакта в узел запускается непрерывная модель, являющаяся функцией на языке Си++, имеющая параметр «время». Такой моделью могут быть математическая формула или разностное уравнение, или другое. Эта модель синхронизирована с другими узлами имитационной модели. Выполнением (активностью) непрерывной модели можно управлять из других узлов. По сигналу passiv транзакт вытесняется из узла ргос в стек, после чего очередные элементарные интервалы времени d перестают поступать в непрерывную модель, а расчет по формуле или интегрирование разностного уравнения прекращается. Сигнал activ возвращает транзакт в узел и восстанавливает расчет по непрерывной модели. После выхода транзакта из узла выполнение непрерывной модели прекращается. Чистое время пребывания транзакта без учета вытеснения его в стек - это и время обслуживания транзакта, и время выполнения непрерывной модели. Второй режим отличается от предыдущего только тем, что непрерывные процессы в узле не моделируются, так как они не нужны для моделирования доступа к информационным ресурсам. В третьем режиме обслуживание каждого нового транзакта заключается в имитации перемещения узла ргос в новую точку пространства, координаты которой - это параметры транзакта. Перемещение осуществляется с заданной скоростью. Счет бухгалтерского учета {операция типа «проводка») имеет наименование send. Транзакт, который входит в такой узел, является запросом на перечисление денег со счета на счет или на бухгалтерскую проводку. Правильность работы со счетами регулируется специальным узлом direct, который имитирует работу бухгалтерии. Транзакт, вошедший в узел send, далее может перейти только в узел direct. Если в узле send остаток денег достаточен, чтобы выполнить перечисление на другой счет (в другой узел send), то узел direct выполняет перечисление и выпускает обслуженный транзакт. В противном случае в узле send возникает дефицит средств и соответственно очередь необслуженных транзактов. Распорядитель финансов {«главный бухгалтер») имеет наименование direct. Он управляет работой узлов типа send. Причем для правильной работы модели достаточно одного узла direct; он обслужит все счета без нарушения логики модели. Однако не будет ошибкой, если каждый счет send будет обслуживаться отдельным бухгалтером direct. Поэтому, чтобы разделить статистику по разным участкам моделируемой бухгалтерии, можно использовать несколько узлов direct. Если при обслуживании какого-либо счета возникает дефицит ресурсов, то в этом случае возможны различные дисциплины обслуживания: в хронологическом порядке поступления транзактов, по жестко задаваемым приоритетам, по динамическим приоритетам (чем меньшую сумму нужно перечислить, тем приоритетнее транзакт). Склад перемещаемых ресурсов имеет наименование attach. Это хранилище какого-то количества однотипного ресурса (например, гаражное хозяйство, имеющее 25 грузовиков). Единицы ресурсов в нужном количестве выделяются транзактам, поступающим в узел attach, если остаток (количество единиц, имеющихся в наличии) позволяет вьшолнить такое обслуживание. В противном случае возникает очередь необслуженных транзактов и соответственно дефицит ресурса. Транзакты, получившие ресурсы, вместе с ними мигрируют по графу во время выполнения модели и возвращают по мере необходимости разными способами: либо все единицы вместе, либо небольшими партиями, либо поштучно. На один и тот же склад можно обращаться несколько раз, не возвращая ранее полученные с этого склада ресурсы. Корректность работы склада обеспечивает менеджер - специальный узел manage. Менеджер (или распорядитель) ресурсов имеет наименование manage. Он управляет работой узлов типа attach. Для правильной работы модели достаточно иметь один узел-менеджер; он обслужит все склады без нарушения логики модели. Однако не будет ошибкой, если склад будет обслуживаться отдельным менеджером. Поэтому, чтобы разделить статистику по разным складам перемещаемых ресурсов, можно использовать несколько узлов-менеджеров. Если при обслуживании какого-либо склада возникает дефицит ресурсов, то в этом случае возможны те же дисциплины обслуживания, которые использовались в узле direct. Структурный узел финансово-хозяйственных платежей имеет наименование pay. Он предназначен для упрощения той части имитационной модели, которая связана с работой бухгалтерии. Если позволить обращения к счетам бухгалтерского учета из всех частей модели, где возникают требования на проводки или перечисления, то граф станет запутанным. Описание условий прохождения транзактов по путям будет очень длинным и сложным. Условия – это логические выражения с многочисленными if, else, switch, case и while. Очень сложные условия увеличивают модель и порождают семантические ошибки, которые могут быть обнаружены только после длительного тестирования модели. Поэтому вся работа бухгалтерии собирается на одном структурном слое модели (слой 3, см. рис. 2.1). Обращения на этот слой в нужные входы-узлы происходят с других слоев из узла pay автоматически, без графического объединения этих слоев с помощью дуг. Структурный узел выделения ресурсов имеет наименование rent. Он применяется для упрощения графа и всей модели при работе со многими складами с различных уровней структурной схемы точно так же, как узел pay. Произвольный структурный узел имеет наименование down. Он бывает необходим для упрощения очень сложного слоя модели, заключающегося в «развязьшании» сложной запутанной схемы, находящейся на одном слое, по двум разньш уровням (или слоям). Его польза точно такая же, как полезность узлов pay и rent. Виртуальный структурный узел имеет наименование parent. Узел parent - мощное средство структурного анализа при создании модели. Узел виртуален. В тексте модели он отсутствует. Этот узел позволяет объединить некоторое множество любых узлов модели и поместить их на более низкий слой, оставив на исходном слое только графический значок parent. Работа с такими узлами возможна только в режиме CASE-технологии создания имитационных моделей при использовании графического конструктора. Такая технология будет рассмотрена в последующих разделах.
Дата добавления: 2014-01-11; Просмотров: 1053; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |