Транзактный способ организации квазипараллелизма имитационных моделей.

В ряде случаев ФД i j для различных компонент К i имеют одинаковый смысл. Каждое такое ФД может представить собой некоторый набор простейших операций, которые также можно аппроксимировать с помощью активностей. При этом способе квазипараллелизма имеется возможность учета взаимосвязи между активностями. Взаимосвязь такого вида активности можно показать с помощью СМО и для имитации таких систем используют транзактный способ организации квазипараллелизма. Однотипные активности пользователем объединяются в виде приборов П i СМО. Инициаторами появления событий С i в таких приборах являются транзакты, которые в результате своего обслуживания и создают весь алгоритм работы такой модели. Связь между приборами осуществляется с помощью очередей, дисциплин подачи заявок, способов обработки и удаления транзактов. Пусть в нашем примере ФД12, ФД22, ФД32 будут совпадать. В любой момент времени может выполниться только одно из них. Взаимосвязь между ФД i j в имитационной модели можно представить в виде схемы. Часть такой модели создается, как правило, в два этапа: вначале отражаются источники заявок и их поглотители, а затем указывается пространственное из передвижение. Для описания имитационной модели используют стандартные блоки обслуживания транзактов. С их помощью представляются действия как по образованию, так и исключению транзактов из модели, а также управление занятием блоков и задержек при движении транзактов. В общем случае существует несколько десятков графических блоков, позволяющих в наглядной форме представить алгоритм функционирования такой модели. Второй этап связан с кодированием каждого блока соответствующим оператором - описание модели соответствующим языком. Принцип работы транзактного способа моделирования можно пояснить с помощью следующей структуры:

clip_image002

Взаимодействие УПМ с массивом БД.

clip_image004

СИТ - список инициализированных транзактов

В данной структурной схеме, соответствующей транзактному способу квазипараллелизма, принимается во внимание, что ФД12, ФД22, ФД23 совпадают. Левая часть этой структуры - имитационная модель. Правая часть - это УПМ (управляющая программа моделирования). Имитационная модель, как видно, состоит из трех основных частей:

& источники,

& основная часть, связанная с обработкой транзактов,

& уничтожители.

Каждая активность представляется в виде соединения очередного и следующего блока. Совокупность активностей формирует событие С. В данной структуре компоненты И12 , Бл12 моделируют совокупность ФД11, ФД21, ФД31, которые не могут протекать параллельно. В УПМ назначаются транзактам моменты инициализации, а также закрепляются за транзактами соответствующие блоки обслуживания. Алгоритм работы УПМ следующий: подпрограмма начала моделирования формирует первоначальный порядок сканирования источников, просматривая условия создания новых транзактов в каждом из источников, после чего передает управление на подпрограмму создания транзактов, с помощью которой формируются новые транзакты, а также их размещение в соответствующих очередях к блокам. После создания всех транзактов (МЗ - массив заявок) проверяется условие просмотра признака: условие “Источники все?”. УПМ после этого просмотра обращается к подпрограмме сканирования поглотителей транзактов. Подпрограмма сканирования поглотителей просматривает очереди и транзакты, завершившие свое пребывание в модели. После чего алгоритм управления передается на подпрограмму уничтожения транзактов. С помощью этой подпрограммы формируется статистика пребывания транзактов в модели. В том случае, когда все поглотители просмотрены (terminate) управление передается на формирование списка инициализированных транзактов. Под инициализацией транзактов понимают завершение пребывания транзактов в каком-либо блоке или поступления транзактов в соответствующую очередь блоков. Подпрограмма формирования списка инициализированных транзактов просматривает списки транзактов (МЗ) или очереди на входах к блокам, из которых выбираются транзакты, у которых время инициализации совпадает с модельным временем. Это действие и формирует список активизируемых транзактов или список текущих событий (СTC). Таким образом, подпрограмма формирования СИТ по существу формирует СТС. По окончании просмотра всех блоков (СИТ), если этот список пуст (результат условия - да), то передается управление на подпрограмму сдвига модельного времени t0. Если же в этом списке имеется хотя бы один транзакт, то управление передается на подпрограмму завершения обслуживания. Эта подпрограмма выбирает адрес блока, на котором произошло завершение обслуживания, т.е. определяется имя очереди О i j и номер блока Блок i j , завершившего обслуживание. Из этой очереди О i j выбирается новый транзакт и закрепляется за ним соответствующий блок, при этом происходит формирование моментов будущих инициализаций транзактов с помощью следующей процедуры: t 0 ‘ = t 0 + t i j , где t i j - длительность выполнения соответствующего функционального действия ФД i j , t 0 ‘ = {t i j }, t 0 = min { t 0 ‘}. Управление передается на подпрограмму начала обслуживания транзактов, т.е. это СТС. Эта подпрограмма определяет адрес блока, имя очереди, на которую должен поступить только что обслуженный транзакт, а также организует перемещение данного транзакта по схеме имитационной модели. Если блок, на который поступает транзакт свободен, то этот блок закрепляется за данным транзактом на время, указанное при описании этого блока. При этом выполняются аналогичные действия по формированию моментов будущих инициализаций: i j = t 0 + t i j . Как только список активизируемых транзактов оказывается пустым (СИТ) - выполнение перехода по ветке да, переходим к подпрограмме сдвига модельного времени. С помощью этой подпрограммы выполняется функция t 0 = min {t i j }. Затем проверяется условие окончания имитации и, если это условие не выполняется, то передается управление опять подпрограмме сканирования источников, а при выполнении этого условия, управление передается подпрограмме окончания моделирования, поскольку при выполнении условия создания транзактов может дополняться список инициализированных транзактов в новые моменты сканирования, тогда алгоритм имитации УПМ может повторяться. Таким образом, УПМ циклически может сканировать различные списки транзактов с целью организации обслуживания соответствующими блоками, а также сдвига модельного времени до окончания имитации. Как видно из представленного алгоритма, функционирование УПМ в этом способе имеет достаточно простой маршрут, однако, возникают дополнительные расходы машинного времени, за счет увеличения самой модели, поскольку возрастает количество списков транзактов, блоков, которые необходимо многократно просматривать при организации квазипараллелизма транзактным способом.

Предлагаю ознакомиться с аналогичными статьями: