B(X1)&B(X2)&^B(Y1)&^B(Y2),
которое в качестве одного из предикатов входит в обе функции R1 (I) и R2 (I).
Стандартная процедура преобразования FI(I) обеспечивает копирование атрибутов фишки из позиции X1 в позицию Y1, либо из позиции X2 в позицию Y2, либо, наконец, из позиции X1 в позицию Y1 и одновременно из позиции X2 в позицию Y2. Конкретное выполнение стандартной процедуры преобразования зависит от истинности конкретной пары предикатов в выражениях для R1 (I) и R2 (I).
МИКРОСИМ состоит из креативной и исполнительной подсистем, которые представлены на внешних носителях информации (дисках) совокупностью файлов. Обе подсистемы интегрированы в единую систему.
Структура каталогов МИКРОСИМ приведена на рисунке 2.2.
Креативная подсистема (от лат. creatio – созидание, порождение) представляет собой интегрированную среду со стандартным пользовательским интерфейсом, подобным пользовательскому интерфейсу системы программирования Турбо Паскаль. Креативная подсистема позволяет решать пользователю следующие основные задачи:
1.Ввод и редактирование описаний сегментов Е-сетевых моделей на языке ЯОМ, с запоминанием файлов с расширением.JOM в каталоге JOM.
2.Ввод и редактирование предложений задания параметров моделей на языке ЯЗП, с запоминанием файлов с расширением.JZP в каталоге EXE.
3.Общая синтаксическая и, отчасти, семантическая проверка сегментов создаваемой модели в терминах языка ЯОМ, с выдачей диагностических сообщений пользователю.
4.Компиляция описаний сегментов с языка ЯОМ, с получением пары файлов с расширениями.PAS и.NET для каждого компилированного сегмента и их запоминанием в каталоге PAS.
5.Автоматическое формирование короткой главной Паскаль-процедуры для исполнительной подсистемы. Эта процедура содержит имя головного (или единственного) сегмента создаваемой Е-сетевой модели (файл с расширением.HDR).
6.Создание загрузочного модуля исполнительной подсистемы для конкретной Е-сетевой модели путем Паскаль – компиляции.PAS‑файлов сегментов данной модели из каталога PAS (с запоминанием.TPU‑файлов в каталоге TPU) и компоновки полученных.TPU‑файлов сегментов вместе с системными.TPU‑файлами из каталога UNITS. Для решения этой задачи используется обычный Турбо Паскаль-компилятор, работающий (для экономии памяти) в режиме командной строки. Результирующий загрузочный модуль исполнительной подсистемы (т.е. Е-сетевая модель) запоминается в каталоге EXE.
7.Применение всех других опций, характерных для пользовательского интерфейса среды Турбо Паскаль (опции File, Edit, Search и др.).
Таким образом, важнейшими специфическими задачами креативной подсистемы в МИКРОСИМ являются компиляция сегментов с языка ЯОМ (специально разработанным компилятором, загрузочный модуль COMMAIN.EXE в каталоге BIN) и общая синтаксическая проверка сегментов (специально разработанной программой, загрузочный модуль JOMCHECK.EXE в каталоге BIN).
Работа креативной и исполнительной подсистем организуется управляющей программой (загрузочный модуль MICROSIM.EXE в каталоге BIN), работающей в циклическом режиме. Упрощенный алгоритм этой программы приведен на рис. 2.3. Как видно из этого алгоритма, работа креативной подсистемы всегда начинается с запуска интегрированной среды. В этой среде пользователь выбирает необходимую операцию или серию операций (выбор выражается соответствующим кодом завершения среды), а выбранная операция реализуется после выхода из интегрированной среды путем активизации одного или нескольких загрузочных модулей управляющей программой. Если выбранная операция не является операцией окончания работы МИКРОСИМ, то после выполнения операции снова активизируется интегрированная среда, и т.д.
Следует подчеркнуть, что на всех этапах работы системы МИКРОСИМ в оперативной памяти компьютера постоянно находится лишь небольшая по объему управляющая программа (загрузочный модуль MICROSIM.EXE в каталоге BIN). Все остальные компоненты системы (интегрированная среда, программа синтаксической проверки, компиляторы ЯОМ и Турбо Паскаль, исполнительная подсистема) загружаются в память по мере необходимости, сменяя друг друга. Это значит, что МИКРОСИМ работает в режиме логического оверлея ее основных программных компонентов.
Е-сетевая модель может состоять из одного сегмента или из нескольких сегментов, один из которых является головным. После сборки модели исполнительная подсистема обеспечивает возможность установки параметров и исследования характеристик модели, реализуемую компилятором языка задания параметров (ЯЗП), интерпретатором и подпрограммами сбора и обработки статистики. Все эти компоненты реализуются системными модулями МИКРОСИМ из каталога UNITS.
Компилятор ЯЗП выполняет обработку предложений ЯЗП и устанавливает значения параметров готовой Е-сетевой модели, указанные в этих предложениях. Параметрами модели являются начальная разметка соответствующей Е-сети, признаки сбора статистики для позиций и переходов, признаки трассировки срабатывающих переходов в сегментах и др.
Интерпретатор реализует алгоритм функционирования Е-сетевой машины, и, таким образом, обеспечивает моделирование параллельных процессов, протекающих в Е-сети, состоящей из сегментов, входящих в модель. Интерпретатор использует подпрограммы сбора статистики для накопления статистической информации об исследуемых характеристиках модели (например, о длинах очередей, числе срабатываний переходов и т.д.). Диагностические сообщения интерпретатора о ходе моделирования помещены в отдельный файл.
По окончании моделирования подпрограммы обработки статистики обеспечивают выдачу результатов моделирования в виде гистограмм и таблиц, содержащих значения исследуемых характеристик модели (например, средние длины очередей, коэффициенты занятости позиций и т.д.).
Для проведения экспериментов с моделью, требующих больших затрат машинного времени, предусматриваются возможности сохранения модели в файле и последующей загрузки модели из файла в оперативную память для продолжения моделирования.
Для контроля за правильностью сборки модели и корректностью работы интерпретатора исполнительная подсистема позволяет просматривать модель путем получения справочной информации о содержимом структур данных, составляющих сетевые компоненты сегментов.
Диалог пользователя с исполнительной подсистемой реализуется с помощью иерархической системы меню. О запуске подсистемы свидетельствует появление главного меню на экране дисплея. Этоменюсодержитследующиеразделы (режимы): Assemble, Parameters, Modeling, Results, Quit, Inspect, Save, Load и Shell.
В настоящей версии реализованы лишь первые пять из перечисленных режимов.
Каталог UNITS:
CONNECT.TPU – Модуль связи процедур пользовательского интерфейса.
HELP.TPU – Процедуры поддержки справочных сообщений и сообщений об ошибках.
INSTAL.TPU – Инициализирующие операции при запуске исполнительной подсистемы.
ISPCOMP.TPU – Главная процедура компилятора предложений ЯЗП.
ISPGLOB.TPU – Глобальные описания для исполнительной подсистемы.
ISPINT.TPU – Интерпретатор моделей (Е-сетевая машина).
ISPPAUTO.TPU – Интерфейс с синтаксическим автоматом.
ISPSCAN.TPU – Модуль сканера.
ISPSEMA1.TPU – Процедуры компиляции предложений ЯЗП.
ISPSEMA2.TPU – Процедуры компиляции предложений ЯЗП.
ISPSEMA3.TPU – Процедуры компиляции предложений ЯЗП.
ISPSERV1.TPU – Процедуры компиляции предложений ЯОМ.
ISPSTAT.TPU – Модуль сбора статистики.
ISPUPR.TPU – Процедуры интерфейса с пользователем.
LIBR_1.TPU – Библиотека высокого уровня для пользовательского интерфейса исполнительной подсистемы.
LIBR_2.TPU – Библиотека высокого уровня для пользовательского интерфейса исполнительной подсистемы.
NETLOAD.TPU – Сервисные процедуры отображения модели.
SERVICE.TPU – Общие сервисные процедуры.
TEXTWIND.TPU – Библиотека низкого уровня для пользовательского интерфейса исполнительной подсистемы.
TURBO3.TPU – Модули Турбо Паскаля.
UPRGLOB.TPU – Глобальные описания для пользовательского интерфейса исполнительной подсистемы.
Начальным этапом моделирования всегда является создание самой модели, задание ее параметров и т.д. Для этого наиболее удобно использовать подсистему СВПИМ, разработанную специально для более наглядного изображения модели и ввода ее параметров. Исходя из этого, было принято решение сделать подсистему СВПИМ ядром для объединения подсистемы визуального отображения и непосредственно моделирования. Решение об использовании СВПИМ для отображения процесса моделирования было принято ввиду нецелесообразности написания нового модуля для отображения модели, при условии наличия уже имеющегося и отлаженного механизма.
Заметим, что Е-сетевая модель (результирующий загрузочный модуль исполнительной подсистемы), как было отмечено выше, создается креативной подсистемой путем Паскаль–компиляции PAS‑файлов сегментов модели, хранящихся в каталоге PAS, с помощью Турбо Паскаль – компилятора, и запуск исполнительной подсистемы для каждой конкретной модели осуществляется из креативной, путем выбора соответствующей операции.
Наилучшим вариантом схемы взаимодействия между СВПИМ и МИКРОСИМ было бы использование стандартного механизма Windows, через обмен сообщениями между двумя процессами. Таким образом, можно было бы получить визуализацию процесса моделирования в реальном времени, непосредственно в ходе работы исполнительной подсистемы.
К сожалению, отсутствие исходных текстов самой важной части МИКРОСИМ, креативной подсистемы, сделало невозможным использование этих механизмов, поскольку для этого нужно было бы перевести и креативную и исполнительную подсистемы на язык Delphi, что невозможно без исходных текстов программ.