Введение
Целью создания моделирующих систем является исследование моделей реальных объектов и процессов. Специалист, использующий такую систему, не ограничен ни временем эксперимента, ни проблемой расхода различных ресурсов, требующихся для проведения реального эксперимента. Кроме того, если в системе моделирования предусмотрена возможность добавления новых объектов или стадий в исследуемый процесс, то проведение эксперимента посредством моделирования выигрывает по сравнению с реальным экспериментом вдвойне.
Таким образом, системы моделирования предоставляют исследователю большую свободу действий при отсутствии каких-либо материальных затрат. Практика показывает, что использование моделирующих систем позволяет не только получить достаточно достоверные сведения о возможном поведении объектов моделирования в тех или иных ситуациях, но и к открытию новых свойств этих объектов.
Но, несмотря на все преимущества моделирующих систем, результаты моделирования не всегда в точности совпадают с результатами реальных экспериментов. Вероятность соответствия полученного при моделировании результата действительности зависит от нескольких факторов:
степени соответствия представления об исследуемых объектах реальным объектам;
уровня детализации свойств объектов при составлении их моделей;
уровня понимания значимости тех или иных свойств объекта в конкретной системе;
степени понимания взаимосвязей исходных объектов в системе.
Таким образом, чем сложнее сами объекты и их поведение в системе, тем больше их свойств требуется задать при составлении модели и тем меньше уверенность в достоверности результатов. И наоборот – чем проще реальные объекты и взаимосвязи между ними, тем проще их описать в системе моделирования и тем достовернее будут результаты, а, следовательно, тем более обоснованно применение моделирующих систем.
Микрокомпьютерная система имитационного моделирования МИКРОСИМ предназначена для моделирования систем обработки данных, а также исследования алгоритмов и систем параллельной и распределенной обработки данных.
Система МИКРОСИМ может применяться для имитационного моделирования с целью верификации и комплексной оценки эффективности систем параллельной и распределенной обработки данных, включая мультипрограммные и мультипроцессорные системы, локальные вычислительные сети, коммуникационные протоколы и т.п. Наиболее полно возможности МИКРОСИМ раскрываются при моделировании сложных алгоритмов и систем обработки данных с развитым параллелизмом протекающих в них процессов.
В качестве формального средства для описания исследуемых алгоритмов и систем в МИКРОСИМ применен аппарат модифицированных Е-сетей, являющихся развитием обыкновенных Е-сетей. Применение модифицированных Е-сетей (по сравнению с обыкновенными Е-сетями) упрощает разработку Е-сетевых схем и позволяет создавать более компактные модели.
Ввод описаний Е-сетевых моделей в МИКРОСИМ осуществляется на языке ЯОМ (Язык Описания Моделей). Этот язык представляет собой расширение языка Паскаль и, следовательно, обладает всеми его развитыми выразительными средствами.
В ЯОМ предусмотрены объекты, которые по своему статусу не являются легальными в языке Паскаль. К ним относятся так называемые сетевые переменные, а также ссылки на компоненты Е-сетей – переходы, позиции и атрибуты фишек в позициях. Кроме того, не подчиняются синтаксису языка Паскаль описания элементарных сетей и заголовки процедур управления, временной задержки и преобразования и некоторые другие конструкции в ЯОМ.
Кроме ЯОМ, в МИКРОСИМ предусмотрен отдельный язык задания параметров (ЯЗП). Этот язык используется на стадии исследования готовой (скомпонованной) модели для изменения маркировки позиций, установки желаемых значений сетевых переменных, спецификации таблиц распределения (гистограмм), указания позиций и переходов, по которым необходимо накапливать статистику при выполнении модели, задания условий прекращения (приостановки) моделирования и трассировки выполнения модели. Для изменения параметров модели не требуется повторная компиляция и компоновка частей (сегментов) модели.
Минимальным функционально законченным компонентом Е-сетевой модели является сегмент. Сегмент подлежит самостоятельной обработке (компиляции). Модель может состоять из набора связанных друг с другом сегментов, объединяемых на стадии сборки модели.
При описании модели исследуемой системы для проведения с ней дальнейших экспериментов с использованием МИКРОСИМ исследователь непременно проходит через два этапа:
визуальное описание модели с помощью Е-сетей;
описание разработанной Е-сетевой модели на ЯОМ.
Создание визуального описания исследуемой модели с использованием Е-сетей – обязательный и независимый от МИКРОСИМ этап.
Для приведения модели в форму «понятную» МИКРОСИМ, т.е. для ее описания на ЯОМ, исследователь естественно должен быть знаком с синтаксисом ЯОМ. Однако, описать модель на ЯОМ без ошибок тем сложнее, чем объемнее исследуемая модель. Задача описания модели на ЯОМ усложняется еще и тем, что в МИКРОСИМ отсутствует развитая диагностика ошибок.
Для того чтобы упростить процесс описания модели на ЯОМ существует система визуального программирования имитационных моделей СВПИМ, удобный инструмент, который предоставляет исследователю возможность обойти второй этап создания модели. Ему уже не придется кропотливо искать ошибки в текстовом описании модели, он может даже вообще не знать ЯОМ.
СВПИМ представляет собой инструмент для описания новых и модификации существующих сетевых моделей удобными диалоговыми средствами. С использованием средств визуального программирования, предоставляемых СВПИМ, формируется графическое описание модели. Сетевая модель может состоять из одного или нескольких сегментов, связанных между собой. Сегмент состоит из элементарных Е-сетей определенных типов, описанных далее. Одновременно с графическим описанием автоматически формируется описание этой модели на Языке Описания Модели (ЯОМ). Т.е., описав графически сетевую модель, как результат мы получаем текстовое описание модели на ЯОМ в виде файла с расширением.JOM. Этот файл может при желании редактироваться в любом текстовом редакторе. Описание модели в файле с расширением.JOM «понятно» среде МИКРОСИМ и может в ней далее решаться.
Необходимость контроля и наблюдения за поведением модели в процессе ее интерпретации была очевидна еще на стадии разработки МИКРОСИМ. Для реализации такой необходимости в МИКРОСИМ предусмотрена возможность трассировки модели – вывода на экран последовательности срабатываний переходов и информации о них. К сожалению, данная функция не позволяет полностью контролировать корректность работы интерпретатора.
С появлением такого мощного средства как СВПИМ, упрощающего самый трудоемкий этап моделирования – этап описания модели на ЯОМ, возникла идея использования создаваемого в ней графического изображения не только для получения описания модели на языке ЯОМ, решаемого в системе МИКРОСИМ, но и для отображения процесса интерпретации модели, что позволило бы отслеживать динамику модели в целом.
Подсистема визуального отображения интерпретации сетевых моделей представляет собой инструмент для отображения процесса моделирования в среде МИКРОСИМ, с использованием графического изображения модели, сформированного при помощи СВПИМ. Данная подсистема отображает на экране последовательность срабатываний переходов и перемещения фишек в исследуемой модели.
Для наглядности отображения в подсистеме предусмотрены задержки, кратные модельным временам задержек ассоциированных со срабатывающими переходами. Тем не менее, для того, чтобы отследить текущее модельное время на момент срабатывания перехода, оно учитывается и отображается в статусном окне приложения.
Специальная часть
Понятие Е-сетей
Общая характеристика модифицированных Е-сетей
Как уже отмечалось, в качестве формального аппарата для представления моделируемых систем в МИКРОСИМ используются модифицированные Е-сети. Структурно Е-сеть представляет собой граф, состоящий из двух типов вершин – позиций и переходов, соединенных друг с другом ориентированными дугами, причем каждая дуга может связывать лишь переход с позицией или позицию с переходом. Следовательно, структура Е-сети эквивалентна ориентированному двудольному графу, у которого одно множество вершин содержит только позиции, а другое множество вершин – только переходы. В модифицированных Е-сетях существуют два типа позиций – простые позиции и позиции-очереди.
Переход в модифицированной Е-сети изображается отрезком прямой. Этот отрезок, в зависимости от типа элементарной сети, отвечающей данному переходу, может дополняться коротким ответвлением, исходящим от конца отрезка под прямым углом в одну или другую сторону, или короткой «перекладиной». Дуга изображается с помощью отрезков прямых и знаков «>» и «
Понятие элементарной сети
Элементарная сеть – это минимальная по структуре Е-сеть, состоящая из единственного перехода и связанных с ним входных и выходных позиций. Формально элементарную сеть можно представить следующей семеркой:
E = ,
где P1, P2 – конечные множества входных и выходных позиций; C – необходимое (но, в общем случае, недостаточное) условие срабатывания перехода; R1, R2 – функции входного и выходного выбора, или функции управления на входе и выходе перехода; TAU – функция временной задержки; FI – функция преобразования.
Далее условие срабатывания C будет записываться в виде логического выражения, операндами которого являются предикаты вида B(X), где X – позиция. При этом B(X) = 1 (или TRUE), если позиция X содержит хотя бы одну фишку; B(X) = 0 (или FALSE), если позиция X пуста.
Предпосылкой срабатывания перехода, ассоциированного с данной элементарной сетью, является истинность условия C (этому соответствует в наших обозначениях ситуация C = 1).
Функция R1 вычисляет подмножество тех входных позиций перехода, из которых в конце фазы активности сработавшего перехода должно быть извлечено (удалено) по одной фишке.
Функция R2 вычисляет подмножество тех выходных позиций перехода, в которые должно быть добавлено по одной фишке после срабатывания перехода.
Функция TAU вычисляет длительность активной фазы сработавшего перехода. В конце этой фазы происходит извлечение фишек из входных позиций перехода, определяемых функцией R1, и добавление фишек в те выходные позиции перехода, которые вычисляются функцией R2.–PAGE_BREAK–
Наконец, процедура FI задает преобразования, которые должны быть выполнены в конце фазы активности сработавшего перехода.
Для построения Е-сетей любой сложности достаточен ограниченный набор типов (классов) элементарных сетей. Этот набор называется базовым набором, он приведен на Рис. 2.1. На этом рисунке для каждого типа перехода представлены его условное обозначение (T, Y, X, G, I) и геометрическая реализация. Для определенности входные и выходные позиции у всех типов элементарных сетей, обозначенные соответственно буквами X и Y с индексом считаются простыми. При необходимости любая простая позиция может быть заменена позицией-очередью.
Соединяя друг с другом элементарные сети из базисного набора, можно создавать, как уже отмечалось, модифицированные Е-сети произвольной сложности. Точками соединения или связывания двух элементарных сетей служат позиции. При связывании двух элементарных сетей по некоторой паре позиций выходная позиция одной элементарной сети объединяется с входной позицией другой (в частном случае, той же самой) элементарной сети, в результате чего получается единственная позиция. При этом объединяемые позиции обеих сетей должны быть одного типа, такого же типа будет и результирующая позиция.
Правила функционирования элементарных сетей
Ниже приводятся описания базовых типов элементарных сетей, представленных на Рис. 2.1. В этих описаниях для каждого типа элементарной сети указываются условия срабатывания перехода C, общие и стандартные функции входного и выходного выбора R1 и R2, а также стандартная процедура преобразования FI. Под стандартной функцией (процедурой) понимается функция (процедура), используемая по принципу умолчания. Такая функция (процедура) не нуждается в явном задании (спецификации) и реализуется всякий раз, когда не задана соответствующая нестандартная функция (процедура).
В приводимых ниже описаниях базовых типов элементарных сетей не отражаются правила перемещения фишек при срабатывании переходов, так как эти правила неявно задаются функциями входного и выходного выбора R1 и R2. При этом предполагается следующий общий принцип перемещения фишек: из каждой входной позиции сработавшего перехода, определяемой функцией R1, извлекается по одной фишке и затем добавляется по одной фишке в каждую выходную позицию этого же перехода, определяемую функцией R2.
Рис. 2.1 Базисный набор типов элементарных сетей
Следует также отметить, что требование незанятости одной или нескольких выходных позиций, отраженное в условиях срабатывания переходов во всех типах элементарных сетей, должно соблюдаться лишь для простых позиций. Если простая позиция, к которой в условии срабатывания C предъявляется требование незанятости, заменяется позицией очередью, то это требование для соответствующей позиции должно быть исключено из условия C.
В логических выражениях, представляющих условия срабатывания C, используются символы &,! и ^ для обозначения логических операторов конъюнкции, дизъюнкции и отрицания соответственно.
Функции входного и выходного выбора R1 и R2 будут записываться в форме условных выражений МакКарти. При этом для записи оператора импликации используется символ стрелки –>. Слева от этого символа записывается некоторый предикат, а справа, в угловых скобках – множество входных (для функции R1) или выходных (для функции R2) позиций. Предикат T представляет собой тождественно истинное высказывание.
Необходимое и достаточное условие срабатывания перехода представляется следующим выражением:
C(T)=(B(X1)&B(X2)&…&B(Xm))&(^B(Y1)&^B(Y2)&…&^B(Yn))
Таким образом, для срабатывания перехода в элементарной сети данного типа необходимо и достаточно наличие хотя бы одной фишки в каждой из входных позиций и не занятость всех выходных позиций. Напомним, что если некоторая выходная позиция Y является позицией-очередью, то соответствующий ей член ^B(Y) должен быть исключен из выражения для C(T).
Если множество входных или выходных позиций пусто, то в выражении для C(T) будут лишь члены, соответствующие позициям непустого из двух множеств.
Одновременно оба множества входных и выходных позиций пустыми быть не могут.
Функции входного и выходного выбора для элементарной сети типа T являются константами со следующими значениями:
R1 (T) = [T–>{X1, X2,…, Xm}] = {X1, X2,…, Xm},
R2 (T) = [T–>{Y1, Y2,…, Yn}] = {Y1, Y2,…, Yn},
где символ T в квадратных скобках представляет собой тождественно истинный предикат.
Стандартная процедура преобразования FI(T) обеспечивает копирование значений атрибутов фишки из слотов памяти входной позиции X1 и присваивание этих значений соответствующим атрибутам каждой добавленной фишки во всех выходных позициях перехода.
Если пусто множество входных позиций, то в слоты памяти каждой из добавленных фишек стандартно засылаются нулевые значения атрибутов.
Если же пусто множество выходных позиций, то процедура преобразования не определена.
Необходимое условие срабатывания перехода задается следующим логическим выражением:
C(Y)=(B(X1)! B(X2)!…! B(Xm))&(^B(Y1)&^B(Y2)&…&^B(Yn))
Стандартная функция входного выбора R1 представляется выражением
R1 (Y) = [B(X1)–>X1; B(X2)–>X2;…; B(Xm)–>Xm],
т.е. эта функция «вычисляет» первую из входных позиций (при просмотре их в порядке X1, X2,…, Xm), содержащую хотя бы одну фишку.
Общая (нестандартная) функция входного выбора задается выражением
R1 (Y) = [B(X1)&P1–>X1;…; B(Xm)&Pm–>Xm],
где P1,…, Pm – некоторые предикаты.
Функция выходного выбора в сети данного типа является всегда константой:
R2 (Y)=[T–>] = {Y1, Y2,…, Yn}.
Пусть X – некоторая входная позиция, вычисленная функцией R1 (Y). Тогда стандартная процедура преобразования FI(Y) совпадает со стандартной процедурой преобразования FI(T), если в последней заменить позицию X1 позицией X.
При пустом множестве входных позиций элементарная сеть типа Y не отличается от сети типа T, у которой пусто множество входных позиций.
Необходимое условие срабатывания перехода имеет вид:
C(X)=(B(X1)&B(X2)&…&B(Xm))&(^B(Y1)!^B(Y2)!…!^B(Yn))
Функция входного выбора в сети данного типа всегда является константой:
R1 (X) = [T–>{X1, X2,…, Xm}] = {X1, X2,…, Xm}.
Стандартная функция выходного выбора представляется следующим выражением:
R2 (X)=[^B(Y1)–>Y1;^B(Y2)–>Y2;…;^B(Yn)–>Yn],
а общая (нестандартная) функция выходного выбора – выражением:
R2 (X) = [^B(Y1)&P1–>Y1;…;^B(Yn)&Pn–>Yn],
где P1,…, Pn – некоторые предикаты.
Пусть Y – некоторая выходная позиция, вычисленная функцией R2 (Y). Тогда стандартная процедура преобразования FI(Y) реализует перепись атрибутов фишки, извлекаемой из входной позиции X1, и присваивание значений этих атрибутов фишке, добавленной выходную позицию Y.
Если множество выходных позиций пусто, то элементарная сеть данного типа не отличается от сети типа T при пустом множестве ее выходных позиций.
Сеть данного типа сочетает в себе свойства элементарных сетей типов Y и X. Необходимое условие срабатывания перехода задается выражением:
C(G)=(B(X1)! B(X2)!…! B(Xm))&(^B(Y1)!^B(Y2)!…!^B(Yn)).
Стандартные функции входного и выходного выбора R1 (G) и R2 (G) совпадают соответственно со стандартными функциями выбора R1 (Y) и R2 (X) в элементарных сетях типов Y и X. Аналогично, общие (нестандартные) функции входного и выходного выбора R1 (G) и R2 (G) совпадают с общими функциями выбора R1 (Y) и R2 (X) соответственно, при различающихся в общем случае последовательностями предикатов:
R1 (G) = [B(X1)&P11–>X1;…; B(Xm)&P1m–>Xm],
R2 (G) = [^B(Y1)&P21–>Y1;…;^B(Yn)&P2n–>Yn].
Пусть X и Y – некоторые входная и выходная позиции, вычисленные функциями R1 (G) и R2 (G) соответственно. Тогда стандартная процедура преобразования FI(G) реализует перепись атрибутов фишки, извлекаемой из позиции X, и присваивание значений этих атрибутов фишке, добавляемой в позицию Y.
Если множество входных (или выходных) позиций пусто, то элементарная сеть типа G не отличается от элементарной сети типа X (или Y) при пустом множестве входных (или выходных) позиций.
Необходимое и достаточное условие срабатывания перехода имеет вид:
C(I)=(B(X1)&^B(Y1)&^B(X2))! (B(X2)&^B(X1)&^B(Y2)).
Функции входного и выходного выбора сети данного типа могут быть записаны следующими выражениями: продолжение
–PAGE_BREAK–
R1 (I)=(B(X1)&^B(Y1)&^B(X2))! (B(X1)&^B(Y1)&B(X2)&B(Y2))–>X1;
(B(X2)&^B(X1)&^B(Y2))! (B(X1)&B(X2)&B(Y1)&^B(Y2))–>X2;
(B(X1)&B(X2)&^B(Y1)&^B(Y2))–>{X1, X2}],
R2 (I)=[(B(X1)&^B(Y1)&^B(X2))! (B(X1)&^B(Y1)&^B(X2)&^B(Y2))–>Y1;
(B(X2)&^B(X1)&^B(Y2))! (B(X1)&B(X2)&B(Y1)&^B(Y2))–>Y2;
(B(X1)&B(X2)&^B(Y1)&^B(Y2))–>{Y1, Y2}].
Ситуация прерывания в сети данного типа возникает при том же условии, как и в сети типа I для обыкновенных Е-сетей. Эту ситуацию можно выразить условием:
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 – созидание, порождение) представляет собой интегрированную среду со стандартным пользовательским интерфейсом, подобным пользовательскому интерфейсу системы программирования Турбо Паскаль. Креативная подсистема позволяет решать пользователю следующие основные задачи:
Ввод и редактирование описаний сегментов Е-сетевых моделей на языке ЯОМ, с запоминанием файлов с расширением.JOM в каталоге JOM.
Ввод и редактирование предложений задания параметров моделей на языке ЯЗП, с запоминанием файлов с расширением.JZP в каталоге EXE.
Общая синтаксическая и, отчасти, семантическая проверка сегментов создаваемой модели в терминах языка ЯОМ, с выдачей диагностических сообщений пользователю.
Компиляция описаний сегментов с языка ЯОМ, с получением пары файлов с расширениями.PAS и.NET для каждого компилированного сегмента и их запоминанием в каталоге PAS.
Автоматическое формирование короткой главной Паскаль-процедуры для исполнительной подсистемы. Эта процедура содержит имя головного (или единственного) сегмента создаваемой Е-сетевой модели (файл с расширением.HDR).
Создание загрузочного модуля исполнительной подсистемы для конкретной Е-сетевой модели путем Паскаль – компиляции.PAS файлов сегментов данной модели из каталога PAS (с запоминанием.TPU файлов в каталоге TPU) и компоновки полученных.TPU файлов сегментов вместе с системными.TPU файлами из каталога UNITS. Для решения этой задачи используется обычный Турбо Паскаль-компилятор, работающий (для экономии памяти) в режиме командной строки. Результирующий загрузочный модуль исполнительной подсистемы (т.е. Е-сетевая модель) запоминается в каталоге EXE.
Применение всех других опций, характерных для пользовательского интерфейса среды Турбо Паскаль (опции 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 – Библиотека низкого уровня для пользовательского интерфейса исполнительной подсистемы. продолжение
–PAGE_BREAK–
TURBO3.TPU – Модули Турбо Паскаля.
UPRGLOB.TPU – Глобальные описания для пользовательского интерфейса исполнительной подсистемы.
Взаимодействие МИКРОСИМ и СВПИМ
Определение способа взаимодействия
Начальным этапом моделирования всегда является создание самой модели, задание ее параметров и т.д. Для этого наиболее удобно использовать подсистему СВПИМ, разработанную специально для более наглядного изображения модели и ввода ее параметров. Исходя из этого, было принято решение сделать подсистему СВПИМ ядром для объединения подсистемы визуального отображения и непосредственно моделирования. Решение об использовании СВПИМ для отображения процесса моделирования было принято ввиду нецелесообразности написания нового модуля для отображения модели, при условии наличия уже имеющегося и отлаженного механизма.
Заметим, что Е-сетевая модель (результирующий загрузочный модуль исполнительной подсистемы), как было отмечено выше, создается креативной подсистемой путем Паскаль–компиляции PAS файлов сегментов модели, хранящихся в каталоге PAS, с помощью Турбо Паскаль – компилятора, и запуск исполнительной подсистемы для каждой конкретной модели осуществляется из креативной, путем выбора соответствующей операции.
Наилучшим вариантом схемы взаимодействия между СВПИМ и МИКРОСИМ было бы использование стандартного механизма Windows, через обмен сообщениями между двумя процессами. Таким образом, можно было бы получить визуализацию процесса моделирования в реальном времени, непосредственно в ходе работы исполнительной подсистемы.
К сожалению, отсутствие исходных текстов самой важной части МИКРОСИМ, креативной подсистемы, сделало невозможным использование этих механизмов, поскольку для этого нужно было бы перевести и креативную и исполнительную подсистемы на язык Delphi, что невозможно без исходных текстов программ.
В силу этих ограничений, вынужденным решением было отказаться от визуализации процесса моделирование в реальном времени. Это никак не отражается на точности и наглядности визуализации, однако, для обеспечения работы такого решения необходим внешний файл, который, при некорректном задании параметров модели, может быть очень большим по размеру и на его подготовку может уйти значительное время.
В процессе работы интерпретатора создается файл .log, в который, при каждом срабатывании перехода в процессе интерпретации модели, записывается информация о состоянии сработавшей элементарной Е-сети.
Информация представляется в следующей последовательности:
имя сегмента, в котором сработал переход;
имя перехода;
время;
единица времени;
задержка;
единица времени;
входная позиция;
количество фишек в ней;
выходная позиция;
количество фишек в ней;
Состояние позиций отображается на момент до начала срабатывания перехода.
Запись состояния модели в файл
Разработчику при исследовании модели далеко мне всегда может потребоваться графическое отображение процесса моделирования. Принимая во внимание этот факт и то, что файлы, содержащие информацию о работе модели, могут быть достаточно большими, что требует наличия дополнительного свободного дискового пространства, было принято решение о том, что при запуске модели на исполнение должна существовать возможность указания необходимости в последующей визуализации исследуемого процесса.
В МИКРОСИМ существует возможность трассировки, как раз и предназначенная для наблюдения процесса работы модели, которая позволяла получать информацию о сработавших переходах в процессе моделирования. Поскольку разрабатываемая подсистема позволит, в случае необходимости, более полно отразить процесс, было принято решение, о том, что признак трассировки модели и будет означать необходимость последующей визуализации процесса ее интерпретации. Признак трассировки задается предложением TRACE при задании параметров модели на языке ЯЗП.
Для реализации трассировки модели в исполнительной подсистеме МИКРОСИМ существует специальная процедура I00TRD из модуля ISPINT. Данный модуль и является интерпретатором модели, иными словами Е-сетевой машиной. Алгоритм ее функционирования представлен ниже.
Алгоритм функционирования интерпретатора сетевых моделей
Е-сетевая модель может быть приведена в движение с помощью особого интерпретатора, который реализует алгоритм функционирования Е-сетевой машины. Формально Е-сетевая машина, воспринимая на своем входе определенную маркированную Е-сеть, приводит в движение имеющиеся в этой сети фишки в соответствии с правилами выполнения элементарных сетей. Основные функции Е-сетевой машины при этом сводятся к следующим действиям:
Выявление условий срабатывания переходов в элементарных сетях, входящих в обрабатываемую Е-сетевую модель.
Назначение на выполнение тех элементарных сетей, в которых возникают условия срабатывания перехода.
Реализация временных задержек, ассоциированных с переходами при их срабатывании (реализация активных фаз сработавших переходов).
Перемещение фишек из входных в выходные позиции каждого сработавшего перехода в момент завершения активной фазы в зависимости от типа элементарной сети, отвечающей данному переходу.
Контроль правильности доступа к атрибутам фишек в позициях Е-сети при выполнении управляющих процедур (процедур входного и выходного выбора), процедур преобразования и вычисления функций временной задержки.
Сбор статистических данных о поведении обрабатываемой Е-сети.
Контроль особых условий, возникающих во время обработки Е-сетевой модели (исчезновение фишек, отсутствие активных переходов, истечение заданного интервала наблюдения (моделирования) за Е-сетью, возникновение условия из предложения STOP и т.п.).
Интерпретация модели может выполнятся лишь после сборки модели из предварительно скомпилированных сегментов, входящих в ее состав, и после установки параметров собранной модели (скомпонованной) модели на языке задания параметров (ЯЗП). Готовая к интерпретации Е-сетевая модель представляется в памяти компьютера справочником и набором сетевых и процедурных компонентов сегментов, входящих в модель.
Алгоритм работы Е-сетевой машины (алгоритм интерпретации) реализуется набором целого ряда процедур. В процессе интерпретации динамически формируются и используются следующие списки, указатели которых хранятся в справочнике модели или в справочниках сегментов:
T – список сегментов модели: в списке находятся справочники всех сегментов, составляющих модель. Справочники сегментов упорядочены в списке T по возрастанию времени наступления ближайших событий в сегментах, т.е. по возрастанию значений, хранящихся в поле LOWTIME справочника сегмента. Справочники сегментов с одинаковым значением поля LOWTIME располагаются в списке T согласно дисциплине обслуживания FIFO; поле LOWTIME в справочнике пассивного сегмента (т.е. сегмента, в котором нет активных переходов) содержит значение MAXREAL (максимально возможный момент времени, или «бесконечность»).
S – список активных переходов сегмента: в список включаются таблицы тех переходов сегмента, процесс срабатывания которых находится в активной фазе. Переходы упорядочены в списке S по возрастанию времени окончания активных фаз. Значение этого времени для активного перехода хранится в поле FINT таблицы перехода и выражено в единицах времени модели. Таблицы переходов с одинаковым значением поля FINT располагаются в списке S согласно дисциплине обслуживания FIFO.
I – список прерываний: в список включаются переходы сегмента, принадлежащие элементарным сетям типа I, во входных позициях которых одновременно находятся основная и прерывающая фишки.
R – список потенциально активных переходов: в список включаются таблицы тех переходов, у которых состояние входных и выходных позиций соответствует условию срабатывания, но функция (процедура) входного и / или выходного выбора (управления) задает пустое множество позиций (неопределенное (нулевое) значение траектории перемещения фишки). Таблицы переходов в списке R располагаются согласно дисциплине обслуживания LIFO.
Дополнительно используется дескриптор интерпретатора, содержащий информацию, передаваемую процедурным компонентам модели, и времена начала и окончания интерпретации, необходимые для вычисления затрат машинного времени на моделирование. Дескриптор интерпретатора размещается в отдельной процедуре (процедуре I00GDS), которая предназначена для определения адреса дескриптора интерпретатора.
Справочник модели содержит ее имя, адрес списка сегментов и ряд других сведений, являющихся общими для всей модели (размер модели, единица модельного времени, интервал моделирования, текущее модельное время и т.п.). В свою очередь, каждый сегмент, входящий в модель представлен (кроме сетевого и процедурного компонентов) своим справочником, в котором отражены сведения, относящиеся к данному сегменту. Некоторые поля в справочниках модели используются при осуществлении записи о состоянии сработавшего перехода в файл.
Алгоритм функционирования Е-сетевой машины реализуется следующими процедурами модуля ISPINT:
Процедура I000 – Управление интерпретацией модели.
Процедура I001 – Подготовка интерпретации модели.
Процедура I002 – Основной цикл интерпретации модели.
Процедура I00MC – Управление интерпретацией сегмента.
Процедура I00MS – Управление срабатыванием переходов в сегменте. продолжение
–PAGE_BREAK–
Процедура I00PT – Выполнение операций, ассоциированных со срабатыванием перехода.
Упрощенно, структура интерпретатора модели представлена на рис. 2.4.
Алгоритм функционирования процедуры I00MS, управляющей срабатыванием переходов, рассмотрим более подробно:
[Инициализация]
Инициализировать список I.
[Контроль возможности приостановки]
Если условие приостановки интерпретации истинно, то установить код возврата и завершить процедуру (выход).
[Контроль списка I]
Если список I пуст, то перейти на шаг 4; в противном случае исключить (выбрать) переход из списка I и перейти на шаг 8.
[Контроль списка S]
Если список S пуст, то завершить процедуру (выход).
[Подготовка к работе с переходом]
Настроиться на работу с первым переходом в списке S.
[Контроль момента активизации]
Если момент активизации FINT выбранного (из списка S) перехода больше текущего модельного времени, то установить LOWTIME
[Исключение выбранного перехода из списка S]
Выполнить процедуру I00DSL.
[Контроль признака трассировки перехода]
Если задан признак трассировки срабатывания выбранного перехода, то выполнить процедуру I00TRD (вывод информации о срабатывании перехода).
[Выполнение операций, ассоциированных со срабатыванием перехода]
Выполнить процедуру I00PT.
[Контроль успешности операций]
Если выявлена ошибка при срабатывании перехода, то завершить процедуру (конец).
[Контроль активизации переходов по входным позициям]
Проверить условие активизации переходов, связанных со входными позициями сработавшего перехода, из которых удалены фишки в результате срабатывания.
[Контроль активизации переходов по выходным позициям]
Проверить условие активизации переходов, связанных с выходными позициями сработавшего перехода, в которые поступили фишки в результате срабатывания.
[Повторный контроль сработавшего перехода]
Проверить условие повторной активизации сработавшего перехода (и если условие истинно, то должным образом отразить это в списках S, I, R).
[Контроль активизации переходов из списка R]
Проверить условие активизации переходов, находящихся в списке R.
[Модификация счетчика]
Нарастить счетчик числа сработавших переходов.
[Контроль числа срабатываний]
Если число сработавших переходов достигло установленного максимального значения, то сбросить счетчик числа сработавших переходов, установить код возврата и завершить процедуру (выход). В противном случае перейти на шаг 2.
Как видно из данного алгоритма процедура I00TRD вызывается процедурой I00MS, при установлении задания признака трассировки. Упрощенный алгоритм работы процедуры управления срабатыванием перехода представлен на рис. 2.5.
Трассировка модели
Перед рассмотрением работы процедуры трассировки необходимо указать структуру справочника модели и сегмента, таблиц переходов и позиций, некоторые поля которых используются при получении данных о сработавшем в сегменте переходе.
СПРАВОЧНИК МОДЕЛИ (58 БАЙТА)
INFMOD=RECORD
MODNAM: (* ИМЯ МОДЕЛИ *)
KOLSEG: WORD; (* ЧИСЛО СЕГМЕНТОВ *)
TMT: REAL; (* ТЕКУЩЕЕ МОДЕЛЬНОЕ ВРЕМЯ *)
FT: PINFSEG; (* АДР.1 ГО СЕГМ. В СПИСКЕ СОБЫТ.*)
PFSEG: PINFSEG; (* АДРЕС ГОЛОВНОГО СЕГМЕНТА *)
TIMFIN: REAL; (* ИНТЕРВАЛ МОДЕЛИРОВАНИЯ *)
TUN: CHAR; (* ЕДИНИЦА МОДЕЛЬНОГО ВРЕМЕНИ *)
READY: CHAR; (* ГОТОВНОСТЬ К МОДЕЛИРОВАНИЮ:
1 ЕСТЬ, 0 НЕТ*)
CONDMD: ARRAY [1..9] OF CHAR; (* КОД И УСЛОВИЯ *)
(* ПРЕКРАШЕНИЯ МОДЕЛИРОВАНИЯ *)
ECOUNT: LONGINT; (* СЧЕТЧИК СОБЫТИЙ *)
NKB: LONGINT; (* ЦЕЛОЕ ЧИСЛО КИЛОБАЙТОВ МОД. *)
NB: LONGINT; (* КОЛ.БАЙТОВ В ПОСЛ.КИЛОБАЙТЕ *)
STEP: REAL; (* ШАГ ОСТАНОВКИ *)
STEPC: REAL; (* ШАГ КАТАЛОГИЗАЦИИ *)
NXTSTOP: REAL; (* ВРЕМЯ СЛЕДУ`ШЕЙ ОСТАНОВКИ *)
NXTCAT: REAL; (* ВРЕМЯ СЛЕДУ`ШЕЙ КАТАЛОГИЗ. *)
INFMODSIZE: INTEGER; (* РАЗМЕР СПРАВОЧНИКА МОДЕЛИ *)
STSTAT: REAL; (* ВРЕМЯ НАЧАЛА СБОРА СТАТИСТИКИ*)
END;
СПРАВОЧНИКСЕГМЕНТА(102БАЙТА)
INFSEG=RECORD
SPS: WORD; (* РАЗМЕР СТАТИЧ. ЧАСТИ СЕГМЕНТА*)
SEGCNAME: ALFDIG; (* ИМЯ СЕГМЕНТА-КОПИИ *)
SEGONAME: ALFDIG; (* ИМЯ СЕГМЕНТА-ОРИГИНАЛА *)
ADROD: PINFSEG; (* АДРЕС СЕГМЕНТА-РОДИТЕЛЯ *)
ADBRAT: PINFSEG; (* АДРЕС СЛЕД.СЕГМЕНТА-БРАТА *)
ADSYN: PINFSEG; (* АДРЕС СТАРШЕГО СЕГМЕНТА-СЫНА *)
FTIME: PINFSEG; (* АДРЕС СЛЕДУЮШЕГОСЕГМЕНТА
В СПИСКЕ СОБЫТИЙ (ПРИ
СБОРКЕ-АДР.МЛАДШ.СЫНА)*)
LOWTIME: REAL; (* ВРЕМЯ БЛИЖ.СОБЫТИЯ В СЕГМЕНТЕ*)
ADRTABNAME: PTABNAME; (* АДРЕС ТАБЛИЦЫ
(*ДОБАВЛЯЕМЫХ СЕГМЕНТОВ *)
ADRTABLINKS: PTABLINKS; (* АДРЕС ТАБЛИЦЫ СВЯЗИ
(*В СИМВОЛЬНОЙ ФОРМЕ *)
ADRTABLINK: PTABLINK; (* АДРЕС СПИСКА ТАБЛИЦ СВЯЗИ *)
ADRP: POINTER; (* АДРЕС УКАЗАТЕЛЕЙ, ИСПОЛЬЗУЕМЫХ*)
(* В ПРОЦЕДУРЕ СЕГМЕНТА *)
PFPLACE: PPLACE; (* АДРЕС СПИСКА ПОЗИЦИЙ *)
PFTRAN: PTRANSITION; (* АДР.СПИСКА ПЕРЕХОДОВ *) продолжение
–PAGE_BREAK–
PTA: PTDIST; (* АДРЕС СП.ТАБЛИЦ РАСПРЕДЕЛЕНИЙ*)
PIL: PTRANSITION; (* АДР.СПИСКА ПРЕРЫВАНИЙ *)
PVAR: POINTER; (* АДР.ТАБ.ПЕРМЕННЫХ И МАССИВОВ *)
ADSEG: PINFSEG; (* АДРЕС ЗАГРУЗКИ СЕГМЕНТА *)
PLS: PTRANSITION; (* АДР.СПИСКА«S» *)
PLR: PTRANSITION; (* АДР.СПИСКА«R» *)
RESERV: INTEGER; (* РАБ.ЯЧЕЙКА– ИСП.ПРИСБОРКЕ*)
SEGX: INTEGER; (* РАЗМЕР СЕГМЕНТА ПО ОСИ «X» *)
SEGY: INTEGER; (* РАЗМЕР СЕГМЕНТА ПО ОСИ «Y» *)
TIMEUN: CHAR; (* ЕДИНИЦА ВРЕМЕНИ *)
NSATR: CHAR; (* ЧИСЛО АТРИБУТОВ *)
PTATR: PTATRIB; (*АДР.ТАБЛИЦЫ ОПИСАНИЯ АТРИБУТОВ*)
INFSEGSIZE: INTEGER; (* РАЗМЕР СПРАВОЧНИКА СЕГМЕНТА *)
PSTOP: PTABSTOP; (* АДР.ТАБЛИЦЫ УСЛОВИЙ ОСТАНОВА *)
ЕND;
ТАБЛИЦАПЕРЕХОДА(66 БАЙТ)
TRANSITION=RECORD
NUMTRAN: WORD; (* НОМЕРПЕРЕХОДА*)
PRIZN: WORD;
(* СЛОВО ПРИЗНАКОВ:
БИТЫ: 2..0 – ТИП ЭЛЕМЕНТАРНОЙ СЕТИ:
1 – T, 2 – Y, 3 – X, 4 – G, 5 – I
8..3 – РЕЗЕРВ
9 – НАЛИЧИЕ ПРОЦЕДУРЫ УПРАВЛЕНИЯ
10 – НАЛИЧИЕ ПРОЦЕДУРЫ ВРЕМЕНИ
11 – НАЛИЧИЕ ПРОЦЕДУРЫ ТРАНСФОРМАЦИИ
12 – ПРИЗНАК ТРАССИРОВКИ
13 – ПРИНАДЛЕЖНОСТЬ К СПИСКУ «S»
14 – ПРИНАДЛЕЖНОСТЬ К СПИСКУ «R»
15 – ПРИЗНАК СБОРА СТАТИСТИКИ *)
PIPL: PPLACE; (* АДР.СПИСКА ВХОДНЫХ ПОЗИЦИЙ *)
POPL: PPLACE; (* АДР.СПИСКА ВЫХОДНЫХ ПОЗИЦИЙ *)
NIPT: CHAR; (* ЧИСЛО ВХОДНЫХ ПОЗИЦИЙ *)
NOPT: CHAR; (* ЧИСЛО ВЫХОДНЫХ ПОЗИЦИЙ *)
PNTRANL: PTRANSITION; (* АДР.ТАБЛ.СЛЕДУ`ШЕГО ПЕРЕХОДА *)
PNSRT: PTRANSITION; (*АДР.СЛЕД.ПЕРЕХ.В СП. «S” ИЛИ «R»*)
TSTAT: PTDIST; (* АДР.ТАБЛИЦЫ РАСПРЕДЕЛЕНИЯ *)
ADRP: POINTER; (*АДР.ПРОЦЕДУРЫ «ТРАНСФОРМАЦИЯ» *)
ADRC: POINTER; (* АДР.ПРОЦЕДУРЫ «УПРАВЛЕНИЕ» *)
ADRT: POINTER; * АДР.ПРОЦЕДУРЫ «ВРЕМЯ» *)
TX: INTEGER; (* КООРДИНАТА «X» *)
TY: INTEGER; (* КООРДИНАТА «Y» *)
FINT: REAL; (* ВРЕМЯ ОКОНЧ.АНИЯ КТИВНОЙ ФАЗЫ *)
DELAY: REAL; (* ВРЕМЕННАЯ ЗАДЕРЖКА *)
INSEL: CHAR; (* ЗНАЧ.ПРОЦЕДУРЫ ВХ.УПРАВЛЕНИЯ *)
OUTSEL: CHAR; (* ЗНАЧ.ПРОЦЕДУРЫ ВЫХ.УПРАВЛЕНИЯ*)
NENTR: LONGINT; (* ЧИСЛО АКТИВИЗАЦИЙ ПЕРЕХОДА *)
SUMTACT: REAL; (* СУММА ИНТЕРВАЛОВ АКТИВИЗАЦИИ *)
END;
ТАБЛИЦА ПОЗИЦИИ (50 БАЙТ)
PLACE=RECORD
NUMPOS: WORD; (* НОМЕРПОЗИЦИИ*)
PRIZN: WORD;
(* СЛОВО ПРИЗНАКОВ:
БИТЫ: 0 – ТИП ПОЗИЦИИ: 0 – ПРОСТАЯ, 1 – ОЧЕРЕДЬ
3..1 – ТИПОЧЕРЕДИ: 0 – FIFO 3 – LOW(I)
1 – LIFO 4 – HIGH(I)
2 – RAND
5..4 – РЕЗЕРВ
6 – ТИПАТРИБУТАДЛЯОЧЕРЕДЕЙHIGH, LOW
7 – ПРИЗНАК ОСОБОЙ ОЧЕРЕДИ, Т.Е. ОЧЕРЕДИ,
ЯВЛЯЮЩЕЙСЯ ВХОДНОЙ И ВЫХОДНОЙ ДЛЯ ПЕРЕХОДА
8 – ВХОДНАЯ ПОЗИЦИЯ СВЯЗИ
9 – ВЫХОДНАЯ ПОЗИЦИЯ СВЯЗИ
14..10 – РЕЗЕРВ
15 – ПРИЗНАК СБОРА СТАТИСТИКИ *)
PBT: PTRANSITION; (* АДР.ТАБЛ.НАЧАЛЬНОГО ПЕРЕХОДА
(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)
PET: PTRANSITION; (* АДР.ТАБЛ.КОНЕЧНОГО ПЕРЕХОДА
(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)
NALOHI: INTEGER; (* СМЕШЕНИЕ АТРИБУТА ДЛЯ *)
(* ОЧЕРЕДЕЙ ТИПОВ HIGH И LOW *)
PNTP: PPLACE; (* АДРЕС ТАБЛ.СЛЕДУЮЩЕЙ ПОЗИЦИИ *)
PNIP: PPLACE; (*АДР.ТАБЛ.СЛЕД.ВХ.ПОЗ. ПЕРЕХОДА*)
PNOP: PPLACE; (*АДР.ТАБЛ.СЛЕД.ВЫХ.ПОЗ.ПЕРЕХОДА*)
PST: PTDIST; (* АДР.ТАБЛИЦЫ РАСПРЕДЕЛЕНИЯ *)
PX: INTEGER; (* КООРДИНАТА «X» *)
PY: INTEGER; (* КООРДИНАТА «Y» *)
PLREC: POINTER; (* АДР.СПИСКА ЗАПИС.ОБ АТРИБУТАХ*)
NOB: CHAR; (* ЧИСЛО ФИШЕК *)
QMAX: CHAR; (* МАКС.ДЛИНА ОЧЕРЕДИ *)
NENTR: LONGINT; (* ЧИСЛО ВХОДОВ ФИШЕК В ПОЗИЦИ` *)
SUMTZ: REAL; (* СУММА ИНТЕРВАЛОВ ЗАНЯТОСТИ *) продолжение
–PAGE_BREAK–
END;
Входными параметрами процедуры трассировки I00TRD являются указатели на справочники модели, сегмента и перехода. Все необходимые для записи в файл данные процедура получает из справочников. Имя сегмента в котором сработал переход получаем с помощью процедуры GETNAME, модельное время и время задержки с помощью процедуры I00TUN, обе процедуры из модуля ISPINT.
Таким образом мы получаем структуру данных, предоставляющую подсистеме визуального отображения процесса моделирования полную информацию о сработавшем переходе. Более того, информация о имени сегмента позволяет определить в каком именно сегменте модели произошло срабатывание перехода, что важно в случае многосегментной модели.
Следует отметить, что работа с создаваемым в процессе интерпретации файлом, осуществляется по всем правилам языка Турбо – Паскаль.
Открытие файла происходит при первом обращении к процедуре трассировки. Счетчик обращений SCH обнуляется при активизации пункта меню «Пуск Модели». Описан в разделе глобальных переменных в модуле ISPGLOB, там же осуществлено описание переменной типа файл:
FTRACE: TEXT;
SCH: INTEGER;
Закрытие файла происходит по окончании процесса моделирования, командой: CLOSE (FTRACE);
Структура СВПИМ
Разработка СВПИМ велась в операционной системе Windows’95.В качестве программного комплекса для реализации СВПИМ использовалась интегрированная среда разработки Delphi 2.0, которая является средой визуального программирования. Поскольку ядром для подсистемы визуального отображения была выбрана СВПИМ, очевидно, что для ее разработка тоже проводилась в среде Delphi 2.0.
Создание программ в Delphi базируется на объектно-ориентированной технологии. Структурной единицей визуального программирования является компонент. Компонент представляет собой объект, обладающий набором свойств, которые определяют его представление и поведение. Е-сетевая модель состоит из связанных друг с другом сегментов, которые можно определить как объекты, имеющие графическое представление и определяемые некоторым набором свойств. В свою очередь, сегменты состоят из элементарных Е-сетей определенных типов. Однако, учитывая идеологию СВПИМ будем считать, что сегменты состоят из переходов, позиций и линий связи между ними (дуг). Каждый из этих структурных элементов Е-сети также можно определить как объект, имеющий свое графическое представление и определяемый соответствующим набором свойств. При таком подходе сегмент представляется набором объектов с определенными свойствами. Таким образом, все структурные компоненты имитационной модели представлены в СВПИМ как Delphi компоненты.
Общая структура программы
Основой любого приложения Windows является набор оконных компонентов, представляющих некоторую информацию и интерфейс с пользователем.
В СВПИМ определено пять основных окон:
основное окно сегмента, представляющее графическое изображение сегмента;
окно, представляющее текстовое описание сегмента;
окно свойств элементов, в том числе сегмента;
окно конструктора процедур;
окно задания связей сегмента с другими сегментами.
Общая структура программы представлена на рисунке 2.4
Графическое представление сегмента в СВПИМ
В рамках данного дипломного проекта все работы, относящиеся к разработке подсистемы визуального отображения проводились с основным окном сегмента, представляющем его графическое изображение. В СВПИМ этих окон создается столько, столько создано или открыто сегментов. Сегмент в программе представлен классом TGraphSegm. Он представляет собой набор переходов и позиций, связанных между собой. Сегмент имеет набор свойств, описанных в таблице 2.1
Таблица 2.6
Название
Тип
Описание
Name
String
Название сегмента
TimeDelay
TtimeDelay
Модельное время (‘псек’, ‘нсек’, ‘мксек’, ‘мсек’, ‘сек’, ‘мин’, ‘час’, ‘день’)
ListNet
Tlist
Список переходов.
ListPos
Tlist
Список позиций.
ListLine
Tlist
Список дуг.
AttributeNames
TstringList
Имена атрибутов фишек
AttributeTypes
TstringList
Типы атрибутов фишек
NetVarNames
TstringList
Имена сетевых переменных
NetVarVals
TstringList
Значения сетевых переменных
NetVarTypes
TstringList
Типы сетевых переменных
При визуальном отображении разработанной подсистемой используются свойства ListPos и ListNet.
Компоненты Е-сети
Все компоненты Е-сети в СВПИМ порождены от базового класса TNObject и перегружают все его виртуальные функции. Кроме того, каждый из компонентов имеет собственные данные и методы, специфичные для него.
Переходы представлены в редакторе классом TNetObj. Кроме свойств, определенных в базовом классе, объект имеет набор собственных свойств, описывающих тип перехода, ширину графического изображения, высоту графического изображения, выражение в операторе TIME, выражение в операторе CONTROL, выражение в операторе TRANSFER и т.д.
Позиции представлены классом TposObj Кроме свойств определенных в базовом классе, объект имеет следующий набор собственных свойств: тип – позиция или очередь, ширина графического изображения, высота графического изображения, ориентация, координаты точек привязки линий, состояние точек привязки и т.д.
Дуги представлены классом TlineObj Кроме свойств, определенных в базовом классе, объект имеет следующий набор собственных свойств: тип дуги, направление дуги, указатель на переход, к которому присоединена дуга, указатель на позицию, к которой присоединена дуга и т.д.
Для осуществления возможности визуального отображения процесса моделирования к свойствам позиций и переходов были добавлены дополнительные свойства. описывающие наличие или отсутствие фишек в позиции и свойства помечающие переход как сработавший.
КлассTNetObj:
TNetObj = class (TNObject)
public
TypeNet:TAllTypeNet;
ResizeRgn:HRGN;
Width:integer;
Height:integer;
HeightVertLine:integer;
IsPassed:boolean; (*добавленное свойство*)
Свойство IsPassed описывает состояние перехода (срабатывающий или нет)
КлассTPosObj:
TPosObj = class (TNObject)
public
TypePos:TAllTypePos; продолжение
–PAGE_BREAK–
Width:integer;
Height:integer;
Orientation: Boolean;
Length: Longint;
Pos1, Pos2:TPoint;
InOutPoint: array [1..2] of TPoint;
SatatusInOutPoint:array [1..2] of TWayLine;
OrientationRgn:HRGN;
NumPoints:integer; (*добавленное свойство*)
Свойство NumPoints описывает количество фишек в позиции.
Структура подсистемы визуального отображения
Структура подсистемы имеет следующий вид:
/>/>/>
/>
/>
/>
/>
Обработка файла созданного МИКРОСИМ
Файл с данными о сработавших переходах создается в результате работы МИКРОСИМ. Структура файла описана в п… Имя файла задается в виде .log, располагается он в директории МИКРОСИМ. При некорректном задании параметров моделирования размер файла может достигать нескольких мегабайт. Очевидно, что активная работе с таким файлом будет затруднена из-за ограниченной пропускной способности дисковой системы.
Ввиду того, что операции с диском намного медленнее, нежели с памятью, перед началом работы информация из файла с данными загружается в память и в дальнейшем операции с диском отсутствуют. Это позволило существенно ускорить процесс отображения на машинах с медленными дисковыми системами.
Для обеспечения хранения файла со сработавшими переходами был введен тип записи, содержащей следующие параметры сработавшего перехода:
OneLine= Record
Segment: string (*имясегмента*);
Perehod: string (*имя перехода*);
Ttime: real (*текущее модельное время*);
Ddelay: real (*задержка*);
FromPos: String (*имя входной позиции*);
FromCount: integer (*кол-во фишек*);
ToPos: string (*имя выходной позиции*);
ToCount:integer (*кол-во фишек*);
end;
В процессе обработки файла организуется список из таких записей, в порядке следования сработавших переходов.
Начальная маркировка модели
Моделирование в МИКРОСИМ подразумевает необходимость задания начальной маркировки модели. Маркировка (размещение фишек) осуществляется исполнительной подсистемой на этапе задания параметров, на языке ЯЗП (предложение MARK). Для правильного отображения процесса моделирования, перед началом визуализации необходима расстановка фишек в исходные позиции. Поэтому первым этапом работы подсистемы визуального отображения является начальная маркировка.
Одним из вариантов начальной маркировки был лексический анализ файла с параметрами системы. Но он был отвергнут ввиду наличия такого механизма в МИКРОСИМ и нежелательности дублирования функционала в разных местах системы. Вместо него использован более простой и логичный вариант начальной маркировки непосредственно по данным о сработавших переходах.
Исходя из правила функционирования элементарных Е-сетей, первым в системе сработает тот переход у которого выполнены условия срабатывания – наличие фишки во входной позиции и ее отсутствие в выходной., а также истекло время задержки перехода. Следовательно для таких переходов время задержки будет равно текущему времени моделирования. Зная же переход, сработавший в начальный момент времени, можно определить, какая траектория перехода была активна в этот момент и, соответственно, определить, из какой позиции появилась фишка.
Исходя из этого, для осуществления начальной маркировки модели необходимо выделить из списка те переходы у которых значение поля Ddelay равно значению поля Ttime. И установить во входную позицию (поле FromPos) обнаруженных переходов фишку (или количество фишек, если позиция – очередь), таким образом, осуществив начальную маркировку модели.
Визуальное отображение
Таким образом перебираются все сработавшие переходы и поведение модели можно пронаблюдать на экране.
Следует заметить, что ситуация, при которой для выяснения динамики модели требуется просмотреть всю работу модели от начала и до конца, маловероятна. Как правило, достаточно просмотреть некоторое количество срабатываний, чтобы уяснить, каким именно образом работает модель. Для этого предусмотрена возможность останова отображения в любой момент времени.
Подсистемой предусмотрена возможность пошагового выполнения процесса визуального отображения. Запрос необходимости пошагового выполнения осуществляется перед началом визуализации. После отображения каждого срабатывания перехода, система ожидает нажатия клавиши Enter.
Очевидно, что при визуализации процесса интерпретации использование значений модельного времени задержки нецелесообразно. Т.к. в этом случае процесс происходил бы слишком быстро, особенно в случае тех переходов для которых задержка не задана, и соответственно равна 0. Для решения этой проблемы предусмотрен некий коэффициент, называемый коэффициентом визуальной задержки, который устанавливается пользователем. Выбор значения коэффициента также предоставляется исследователю. При отображении процесса моделирования на экране, модельная задержка сработавшего перехода перемножается на заданный коэффициент, благодаря чему мы получаем визуальные задержки переходов пропорциональные модельным. Для тех переходов в модели у которых задержка не реализованная используется аддитивная задержка.
Возможность введения пользователем коэффициента визуальной задержки позволяет исключить зависимость времени изображения от быстродействия компьютера, поскольку на медленных машинах существует возможность установить коэффициент задержки меньшим, нежели на машинах с более мощным процессором. Так же эту возможность можно использовать в тех случаях, когда не требуется визуально отслеживать срабатывание каждого перехода, а нужно лишь оценить работоспособность модели в целом. В этом случае следует установить меньший коэффициент задержки, чем в случаях, когда необходимо отследить траекторию движения каждой фишки.
Разработанная в рамках данного дипломного проекта подсистема позволяет наблюдать за процессом интерпретации модели. Визуально, процесс интерпретации заключается в перемещении фишек в системе.
Подсистема состоит из двух частей одна из которых интегрирована в исполнительную подсистему МИКРОСИМ, а вторая в редактор сетевых моделей СВПИМ. Упрощенно полученную структуру подсистемы можно представить следующим образом:
/>
/>
/>/>
/>
/>/>
/>
Взаимодействие между интерпретатором модели и СВПИМ осуществляется через текстовый файл, структура данных которого предоставляет второй части подсистемы полную информацию о последовательности срабатываний переходов и состоянии входных – выходных позиций. Процесс визуального отображения осуществляется после интерпретации модели, что никоим образом не сказывается на правильности отображения. Данный процесс состоит из трех этапов, реализованных в программе тремя циклами.
Первый этап – этап работы с файлом, в результате которого создается список имеющий структуру в точности повторяющую структуры данных файла.
Второй этап – этап начальной маркировки модели.
Третий этап – этап визуального отображения.
Технология интеграции Windows и DOS-приложений
До настоящего времени наиболее широко распространенной операционной системой являлась система MS-DOS. Развитие и совершенствование компьютерных технологий привело к появлению новых, более совершенных операционных систем, основное отличие и преимущество которых заключается в их многозадачности. Одной из таких ОС стала операционная среда Microsoft Windows 3.x, и впоследствии, Windows’95, Windows’98 и Windows’NT. Данные операционные системы получили широкое распространение в нашей стране и за рубежом, благодаря удобному графическому интерфейсу и мультизадачности.
Если мы вспомним историю развития средств разработки программ, то увидим следующее. Сначала была интеграция – в единой программной среде программисты получали редактор, компилятор и компоновщик. Примерами таких сред были компиляторы фирмы Borland – Turbo Pascal, Turbo C, Turbo C++ и многие продукты других фирм. Выпуск Windows вызвал появление широкого интереса к разработке программ для этой среды и, как следствие, – необходимость в средствах разработки Windows – программ. Так появились первые компиляторы для Windows, принципиально не отличавшиеся по идеологии от своих DOS собратьев. Практически сразу же за компиляторами появились различные генераторы приложений (кодогенераторы), которые выполняли две роли. Они выступали как средство для построения прототипов программ – позволяли без программирования построить интерфейс будущей программы, и как средство для автоматической генерации кода. Благодаря этому программист постепенно освобождался от непосредственного написания кода и получал некоторое средство для визуального, наглядного создания приложений. продолжение
–PAGE_BREAK–
Среда программирования Delphi является попыткой объединения всего лучшего, из того, что было создано на тему визуального программирования. Delphi – это не просто новая версия компилятора языка Turbo Pascal, а принципиально новый программный продукт, позволяющий создавать широкий спектр приложений для среды Windows.
Одним из таких приложений стала разработанная в МГИЭТ система визуального программирования имитационных моделей – СВПИМ, предназначенная для создания моделей, решаемых системой имитационного моделирования МИКРОСИМ, реализованной на языке Турбо Паскаль 7.0 и являющейся DOS приложением. Виду возникновения необходимости совместного использования СВПИМ и МИКРОСИМ возникла потребность их интеграции в рамках единой программной оболочки, для дальнейшего использования в среде Windows. Этой проблеме просвещенна данная глава дипломного проекта.
Интеграция Dos – и Windows-приложений
Объединение МИКРОСИМ и СВПИМ
Операционная система Window’s позволяет запускать на выполнение любое Dos – приложение. В Delphi также предусмотрена возможность запуска любого *.EXE – файла. Поэтому простейшим объединением двух Windows- и Dos приложений является запуск на выполнение одной из программ на определенном этапе работы другой. В рамках данного дипломного проекта был реализован именно такой способ интеграции, являющимся не самым красивым и, может быть не самым правильным, но в данном случае единственно возможным, по независящим от автора причинам. Тем не менее были проведены исследования, связанные с возможностью перевода Dos – приложений, написанных на языке Pascal, на язык Delphi.
Создание программ на Delphi
Для начала вкратце рассмотрим, что представляет из себя программа на Delphi. Основное назначение Delphi – служить средством для быстрого создания широкого класса Windows – приложений. [5] Среда Delphi включает в себя полный набор визуальных средств для быстрой разработки приложений, поддерживающих создание пользовательских интерфейсов. В Delphi используется язык Object Pascal, полностью поддерживающий предыдущие версии языка Pascal. Таким образом, работа в Delphi заключается в работе с объектами.
Объект или, в терминологии Delphi – компонет, обладает набором свойств, определяющим его представление и поведение. Свойства влияют на то, как объект выглядит и на его невидимые черты (поведение), они непосредственно связанны с объектом – являются его атрибутами, описывающими его детальное строение.
Вокруг любого приложения происходят различные события, например, события-сигналы от мыши, клавиатуры, системные события. Обработчики событий являются инструментом, который позволяет связать код программы с подобными событиями, приводя в действие соответствующие фрагменты логики – процедуры.
Процесс создания приложений в среде Delphi сводится к следующим этапам:
Построение интерфейсной части приложения.
Написание кода для обработчиков событий.
Написание дополнительного кода.
Создание интерфейсной части приложения начинается с установки свойств главной формы. Например, изменение ее размера, расположения на экране и множество других свойств. Путем выбора соответствующих компонентов в созданной форме размещаются необходимые для разрабатываемого приложения интерфейсные элементы, с установлением свойства каждого из них.
После этого можно приступать к написанию кода для обработчиков событий. Задача программиста – создать код, который будет выполнятся при возникновении того или иного события (например, активизация пункта меню). После того, как обработчики событий для интерфейсных элементов созданы, необходимо приступить к написанию дополнительного кода.
Под дополнительным кодом понимается процедуры или функции, которые непосредственно определяют уникальную функциональность того или иного приложения. Обычно такие процедуры и функции вызываются из методов обработчиков событий. Часто эти процедуры или функции не связанны напрямую с интерфейсными элементами и могут быть вынесены в отдельный модуль.
Таким образом, можно говорить о том, что Delphi – программа состоит из описания класса, соответствующего главной форме приложения и всем используемым в нем формам, а также из кода, выполняющегося при обработке того или иного события, и дополнительного кода, определяющего функциональность конкретной программы.
Создаваемое приложение состоит из набора файлов – проекта. Ими могут быть файлы, создаваемые в среде Delphi, – файлы с исходным текстом модулей (расширение.PAS), формы являющиеся графическим представлением приложения (расширение.DFM), и сами файлы проектов (расширение.DPR).
Следует отметить, что каждому файлу формы обязательно соответствует файл с исходным текстом модуля, но файл с исходным текстом модуля не обязательно должен иметь соответствующую форму.
Перевод приложения на язык Delphi
Delphi предоставляет программисту сильную и сложную объектную модель. Благодаря этому возможно создание классов, в том числе классов компонентов, упрощающих процесс разработки. Помимо объектной модели, визуальная среда Delphi предоставляет так же и модель управления событиями. Событийная модель позволяет объединять программу и различные процессы с компонентами и формами в соответствии с порядком возбуждения конкретных событий.
Процесс разработки с использованием этих двух моделей очень скор и дает возможность писать обозримые программы. Это практически устраняет необходимость процедурного проектирования. Тем не менее Delphi, являясь расширением языка Pascal, поддерживает все возможности, им предоставляемые, следовательно и процедурную модель тоже. В МИКРОСИМ реализована как раз такая процедурная модель.
Наиболее правильным вариантом был бы перевод МИКРОСИМ на объектно–ориентированный язык, но на подобные преобразования, в виду очень большого объема программы, ушло бы значительное время. Поэтому остановимся на рассмотрении несколько иного способа интеграции.
Этапы перевода любого приложения, написанного на языке Pascal на Delphi аналогичны этапам разработки предложений на этом языке:
Создание нового интерфейса.
Написание кода для обработчиков событий.
Создание нового интерфейса
Все элементы интерфейса в Delphi являются визуальными компонентами. Создание нового интерфейса начинается с создания формы (класс TForm), являющейся контейнером, содержащим другие компоненты, определяющие функциональность приложения. Формы могут быть стандартными окнами, диалоговыми панелями, панелями сообщений и контейнерами.
В таблице 3.1 приведено описание основных стандартных визуальных компонентов, которые могут быть использованы при создании интерфейса программы.
Таблица 3.1
Стандартные визуальные компоненты
Класс, которым представлен компонент
Главное меню
TmainMenu
Локальное меню
TpopupMenu
Статический текст
Tlabel
Строка редактирования
Tedit
Редактор
Tmemo
Стандартная кнопка
Tbutton
Кнопка с независимой фиксацией
TchekBox
Кнопка с зависимой фиксацией
TradioButton
Список
TlistBox
Комбинированный список
TcomboBox
Таким образом, создание нового интерфейса сводится к созданию формы приложения, созданию главного меню и размещению, соответствующих функциональности будущей программы, наборов элементов интерфейса.
Меню любого Dos – приложения, может быть легко и быстро построено в среде Delphi, и может быть аналогичным меню, либо иметь любой иной вид.
Следующим, самым трудоемким этапом, является написание кода для обработчиков событий. Вернее было бы говорить не о написании кода, потому как код (процедуры), реализующий действия соответствующие выбранным пунктам меню уже написан, а о правильной расстановке процедур, в соответствии с выбранным пунктом нового меню. Для этого нужно определить где и какие процедуры или функции вызываются при активизации исследуемого пункта. И вызывать их в обработчиках событий.
Например, при нажатии кнопки, представленной классом TButton, может вызываться стандартная Pascal процедура:
procedure TForm1. Button1Click (Sender: TObject);
begin
Proc1 (i);
end; продолжение
–PAGE_BREAK–
Главное, чтобы вызываемая в ответ на нажатие кнопки процедура или функция была доступна внутри главного программного модуля приложения Существует несколько способов сделать процедуру или функцию доступной. Самый простой способ – это определить заголовок процедуры и тело программы в начале раздела реализации блока. Так как они размещены вначале, компилятору становится известно о их существовании до того, как они будут вызваны из какой-либо части программы. Второй способ – объявление заголовка процедуры с ключевым словом forward, а ее имя и принимаемые параметры в любой части программы. Третий способ – помещение объявления процедуры в разделе интерфейса. Такое описание действует как прототип и делает процедуру доступной из модуля в котором она описана и из любого другого модуля, использующего данный.
В случае исполнительной подсистемы МИКРОСИМ целесообразнее всего подключить все используемые в ходе ее работы модули к главному программному модулю приложения, в предложении Uses. В этом случае все процедуры и функции исполнительной подсистемы будут доступны.
Прохождение задания в интегрированной в СВПИМ системе МИКРОСИМ
В рамках данного дипломного проекта, система имитационного моделирования МИКРОСИМ была интегрирована в Систему Визуального Программирования Имитационных Моделей в рамках единой программой оболочки. Поэтому этапы прохождения задания в МИКРОСИМ претерпели существенное изменение.
Работа с моделирующей системой начинается с запуска редактора сетевых моделей. В котором разработчиком создается графическое изображение сегмента, задаются атрибуты фишек, процедуры временных задержек, трансформации и управления для переходов. После чего осуществляется экспорт графического изображения в текстовое описание, с запоминанием в файле с расширением. JOM. Например, SEG.JOM. В случае многосегментной модели, необходимо создать предварительно графическое представление и осуществить обработку каждого из сегментов, с последующим их объединением в готовую модель средствами, предоставляемыми СВПИМ.
Далее осуществляется запуск МИКРОСИМ, процесс моделирования в котором состоит из двух основных стадий: построения модели и решения (выполнения) созданной модели. Эти стадии, как было рассмотрено в специальной части проекта, реализуются двумя самостоятельными подсистемами – креативной и исполнительной, работающими в диалоговом режиме.
/>
Рис 3.2
Запуск МИКРОСИМ осуществляется непосредственно из редактора (пункт меню «файл / запустить Microsim», (рис 3.2) что увеличивает удобство его использования, и исключает необходимость выхода из редактора с целью осуществления процесса моделирования в среде МИКРОСИМ. Однако совместное использование СВПИМ и МИКРОСИМ не является обязательным. Работа с МИКРОСИМ начинается как обычно, с работы в креативной подсистеме.
В креативную подсистему входят несколько разных обрабатывающих программ, запускаемых в определенном порядке. Исполнительная подсистема состоит из единственного загрузочного модуля.
Рассмотрим более подробно этапы построения модели и соответствующие им программные модули креативной подсистемы. Основная задача этой подсистемы – подготовка к сборке всех сегментов, из которых должна состоять создаваемая модель.
Работа с креативной подсистемой начинается с работы в ее текстовом редакторе, который предоставляет исследователю возможность просмотра и редактирования текстового описания модели на ЯОМ, а также редактирование файлов на ЯЗП (пункт меню «Model / Parameters…», рис. 3.3).
/>
Рис. 3.3
Описание каждого сегмента на ЯОМ, созданное при помощи СВПИМ подвергается следующим последовательным преобразованиям:
компиляция сегмента с языка ЯОМ на язык турбо Паскаль (получаются два компонента сегмента – сетевой и процедурный, первый из них запоминается в файле с расширением NET, а второй – в файле с расширением PAS);
компиляция процедурного компонента сегмента с языка Туpбо Паскаль с использованием компилятора командной строки (получается модуль в формате TPU, который запоминается в файле с расширением TPU).
Первый этап осуществляется специальным препроцессором (компилятором) системы моделирования. В результате этого преобразования в двух разных файлах получаются два компонента – сетевой и процедурный. Сетевой компонент отражает Е-сетевую структуру сегмента, а процедурный компонент объединяет в себе все процедуры данного сегмента, выраженные на языке Паскаль.
Как уже отмечалось, стандартное расширение двух названных файлов – NET и PAS. Например, после второго преобразования сегмента из файла SEG.JOM будут получены два файла SEG.NET и SEG.PAS.
Второй этап – это компиляция полученного процедурного компонента с языка Туpбо Паскаль. Это делается с помощью стандартного компилятора, работающего в режиме командной строки. Результатом этого этапа преобразования является файл с расширением TPU, содержащий модуль в формате TPU.
Таким образом, конечным результатом обработки одного сегмента компилирующей подсистемой являются два файла с расширениями NET и TPU (например, SEG.NET и SEG.TPU). Соответствующая пара файлов должна быть получена для каждого из сегментов, входящих в модель.
Следует отметить, что при разработке модели использование СВПИМ не является обязательным. Исследователь может не использовать возможности СВПИМ, либо использовать их частично. В этом случае к стадии построения модели следует добавить еще один этап, этап редактирования и модификации описания сегмента, который осуществляется во встроенном в МИКРОСИМ специальном текстовом редакторе, либо в любом другом доступном редакторе текстовых файлов.
Назначение исполнительной подсистемы – проведение экспериментов при выполнении модели. Функции исполнительной подсистемы реализует отдельный загрузочный модуль. Его работа происходит в диалоговом режиме взаимодействия с пользователем.
Исполнительная подсистема завершает создание готовой к выполнению Е-сетевой модели и обеспечивает проведение имитационных экспериментов с этой моделью. Следует отметить, что появление подсистемы визуального отображения процесса интерпретации моделей, налагает ряд требований направленных на обеспечение возможности и правильности последующей визуализации процесса работы Е-сетевой модели.
Первое из требований заключается в указании предложения TRACE ALL при задании параметров модели. Сам по себе язык задания параметров предназначен для контроля состояния сформированных Е-сетевых моделей на стадии их выполнения (интерпретации). ЯЗП дает возможность задавать начальную маркировку позиций в сегментах модели, устанавливать или изменять значения сетевых переменных и сетевых массивов, назначать и отменять сбор статистики по избранным позициям и переходам модели, задавать и сбрасывать признак трассировки срабатывания переходов при выполнении модели, специфицировать условия остановки выполнения модели (не считая истечения заданного модельного времени и возникновения особых ситуаций). Все изменения, вносимые в Е-сетевую модель с помощью предложений ЯЗП, не требуют повторной компиляции и сборки модели, что упрощает проведение экспериментов над однажды скомпилированной и скомпонованной моделью. Как было отмечено выше, ввод предложений ЯЗП осуществляется либо непосредственно в исполнительной подсистеме, либо, с помощью текстового редактора в файл с расширением.JZP, который обрабатывается компилятором ЯЗП непосредственно перед запуском модели на исполнение.
Вторым требованием является наличие свободного дискового пространства, которое необходимо для создания файла, содержащего информацию о процессе интерпретации, используемого в дальнейшем в СВПИМ, при визуализации работы модели.
В качестве третьего требования, хотелось бы указать необходимость грамотного указания единиц времени моделирования. Проведенные исследования и эксперименты показали, что даже для небольших моделей несовпадение в указании модельного времени при описании модели на ЯОМ и единицы времени, указанном при запуске модели может привести к увеличению необходимого для создания требуемого файла объема дискового пространства. Например, для модели многотерминальной вычислительной системы состоящей из процессора и трех терминалов, задания с которых поступают через интервалы времени, равные соответственно 10, 20 и 30 секунд, указание при запуске модельного времени в микросекундах приводит к тому что при времени моделирования равном одной секунде, файл имеет объем порядка 18 ти Мбайт. При правильном указании единиц времени моделирования файл с результатами работы той же модели за время равное 1000 секунд, имеет объем порядка 17 Кбайт.
Интерпретатор реализует алгоритм функционирования Е-сетевой машины, и таким образом обеспечивает моделирование параллельных процессов, протекающих в Е-сети, состоящей из сегментов, входящих в модель. Интерпретатор использует подпрограммы сбора статистики для накопления статистической информации об исследуемых характеристиках модели (например, о длинах очередей, числе срабатываний переходов и т.д.). Диагностические сообщения интерпретатора о ходе моделирования помещены в отдельный файл.
По окончании моделирования подпрограммы обработки статистики обеспечивают выдачу результатов моделирования в виде гистограмм и таблиц, содержащих значения исследуемых характеристик модели (например, средние длины очередей, коэффициенты занятости позиций и т.д.).
По желанию исследователя результаты моделирования могут быть сохранены в файле, для дальнейшего их изучения и обработки.
Для проведения экспериментов с моделью, требующих больших затрат машинного времени, предусматриваются возможности сохранения модели в файле и последующей загрузки модели из файла в оперативную память для продолжения моделирования.
Для контроля за правильностью сборки модели и корректностью работы интерпретатора исполнительная подсистема позволяет просматривать модель путем получения справочной информации о содержимом структур данных, составляющих сетевые компоненты сегментов.
Следует отметить, что имя создаваемого для подсистемы визуализации файла совпадает с именем модели.
По окончании работы в среде МИКРОСИМ осуществляется возврат в среду редактора СВПИМ, в котором можно либо продолжить разработки новых моделей либо обратиться к просмотру визуально отображения процесса интерпретации ранее обработанных моделей. Для осуществление последнего в СВПИМ предусмотрена специальная кнопка (рис. 3.4), расположенная в центре панели управления, активизирующая подсистему графического отображения. Необходимо, чтобы графическое изображение сегмента или сегментов исследуемой модели было открыто. Рекомендуется также закрыт все остальные окна для того, чтобы они не закрывали собой части изображения.
/>
Рис 3.4
Начало визуального отображения происходит с запроса имени файла (рис. 3.5). Файл должен находится в каталоге MICROSIM / BIN, в противном случае система диагностирует ошибку, либо в каталоге MNEDITOR, при условии, что MICROSIM отсутствует на дисках.
/>
Рис 3.5 продолжение
–PAGE_BREAK–
Если файл обнаружен, появляется запрос на необходимость пошагового отображения процесса моделирования. Если ответ на запрос утвердительный – демонстрация срабатывания каждого следующего перехода осуществляется после нажатия клавиши Enter и т.д. В противном случае возникает запрос на установление величины коэффициента визуальной задержки. Установление ее величины предоставляется на выбор пользователя. Если исследователя не устраивает установленная им задержка, он может остановить процесс и запустить его вновь с указанием другой, необходимой ему задержки.
После установления режимов работы подсистемы на экране начинается процесс визуального отображения интерпретации (рис3.6). Прежде всего, осуществляется начальная маркировка модели. Процесс интерпретации реализуется по всем правилам функционирования элементарных Е-сетей. Сработавший переход отмечается красным цветом и происходит перемещение фишек. В случае очередей, количество фишек в них отмечается соответствующей цифрой. При каждом срабатывании перехода в системе в строке статуса редактора предусмотрено отображение текущего модельного времени, на момент окончания активной фазы сработавшего перехода.
/>
Рис 3.6
Этап визуализации может быть остановлен нажатием той же кнопки. При этом появится запрос на удаление обрабатываемого файла. Если пользователь считает, что не возникнет необходимость возвращаться к наблюдению за работой данной схемы, на запрос следует ответить утвердительно.
Просмотр результатов моделирования
/>
Рис 3.7
Как было отмечено выше, результаты моделирования в виде таблиц, содержащих информацию о результатах интерпретации модели, могут быть просмотрены в самой подсистеме, либо сохранены в файл, с расширением по умолчанию *.dat. Поскольку работа в редакторе подразумевает осуществление всех этапов исследования модели в его рамках, была учтена и необходимость просмотра файла. Для этого нужно выбрать пункт меню «Файл / Результат» (рис 3.7). И открыть требуемый для просмотра файл.
/>
Рис. 3.8
Оценка конкурентоспособности изделий
В последнее время широкое распространение получили разнообразные мультипрограммные и мультипроцессорные системы, локальные вычислительные сети, системы параллельной и распределенной обработки данных, а также системы массового обслуживания (СМО). При проектировании подобных систем перед разработчиками возникает проблема необходимости исследования их параметров еще на этапе проектирования. Подобное исследование позволило бы на месте отслеживать и устранять недостатки проектируемой системы, оценивать и повышать ее эффективность.
Для решения подобного рода задач существуют имитационные моделирующие системы (ИМС), позволяющие полностью описать реальный объект или процесс в виде модели, и проводить эксперименты с ней, а не с самим объектом, что немаловажно, особенно в том случае, когда реальный эксперимент требует существенных затрат или, по какой либо причине, невозможен.
Немаловажным достоинством использования ИМС, является тот факт, что эксперимент с моделью упрощает определение так называемых «узких мест» (наиболее загруженных устройств) системы, там, где в виду ее сложности выявить их интуитивно не представляется возможным.
Для уже существующих и функционирующих систем ИМС позволяет выявить перспективы их развития без останова всей системы либо потери работоспособности, определить, как возможные изменения в системе отразятся на ее работе.
Ввиду приведенных выше достоинств, необходимости и полезности использования ИМС при разработке вычислительных сетей и систем обработки данных, а также при исследовании их работы, можно говорить о заинтересованности проектировщиков в данном программном продукте.
Одним из представителей семейства ИМС является система Е – сетевого моделирования MICROSIM, разработанная в 1995 году ведущими специалистами Московского института электронной техники. Она предназначена для разработки имитационных моделей и исследования характеристик этих моделей посредством проведения экспериментов с ними в режиме диалога.
В данном разделе дипломного проекта автор предпримет попытку рассмотреть MICROSIM в качестве программного продукта, и провести оценку конкурентоспособности данной системы как возможного продукта, предлагаемого на свободном рынке.
Успех реализации любого товара и достижение желаемого результата в виде прибыли либо другого продукта (услуги) взамен зависит от совокупности потребительских свойств товара, предлагаемого покупателю, качества исполнения, уровня сервисного обслуживания, оформления и т.д.
Анализ конкурентоспособности изделий
Анализ и оценка спроса на конкретный товар являются важной стратегической задачей и жестко связаны с жизненным циклом товара.
Жизненный цикл товара – важнейшая концепция, которая рассматривает динамику конкурентоспособного пребывания товара на рынке. Этапы жизненного цикла охватывают периоды времени от ввода товара на рынок, до его ухода. Каждый из них обладает особенностями и имеет собственные названия, принятые в маркетинге: зарождение, рост, зрелость, насыщение, спад.
Этап зарождения характеризуется медленным увеличением объема продаж. Для принципиально новых товаров этот этап может быть достаточно продолжительным.
Этап роста связан с интенсивным нарастанием продаж, отражающим увеличение популярности товара по мере осведомленности покупателей.
Этап зрелости характерен значительным снижением темпа роста продаж, постоянной их стабилизации на одном уровне.
Этап насыщения характерен прекращением роста оборота, устойчивый сбыт.
Спад – этап постоянного снижения спроса и объема продаж, потеря интереса к товару.
Уровень сбыта на различных этапах жизненного цикла товара зависит от конкурентоспособности товара в этот период.
Конкурентоспособность товара – совокупность свойств товара, делающих его более предпочтительным по сравнению с товарами конкурентов на данном рынке.
Оценка конкурентоспособности товара производится только с учетом его реализации. Набор параметров, определяющих конкурентоспособность изделия относительно стабилен, в тоже время значимость их меняется в зависимости от сложившихся на рынке условий.
В основу оценки конкурентоспособности должен быть заложен сопоставительный анализ объектов одного функционального назначения, производимых различными предприятиями.
Исследования поведения покупателей показывают, что они отдают предпочтение такому товару, у которого отношение полезного эффекта P к затратам на его приобретение и использование C (т.е. удельный полезный эффект) максимален по сравнению с другими аналогичными товарами. В самом общем виде условие конкурентоспособности товара (предпочтение одного из товаров) имеет вид:
/>, (1)
Определить, соответствует ли определенный товар этому условию, можно лишь в процессе его сравнения с другими представленными на рынке товарами.
Таким образом, оценка конкурентоспособности товара, планируемого к продаже, включает следующие этапы:
анализ рынка и выбор наиболее конкурентоспособного товара-образца в качестве базы для сравнения и определения уровня конкурентоспособности нашего товара;
определение набор сравниваемых параметров обоих товаров;
расчет интегрального показателя конкурентоспособности нашего товара.
Выбор образца является одним из наиболее ответственных моментов анализа конкурентоспособности. Ошибка на этом этапе может привести к искажению результатов всей работы. Образец должен принадлежать к той же группе товаров, что и анализируемое изделие, быть наиболее представленным для данного рынка, завоевавшим максимальное число покупательских предложений.
При определении набора подлежащих оценке и сравнению параметров конкурентоспособности товара исходят из того, что часть параметров характеризует потребительные свойства товара (его потребительную стоимость), а другая часть – его экономические свойства (стоимость). Потребительные свойства каждого товара, из которых складывается его полезный эффект, описываются набором «жестких» и «мягких» потребительских параметров.
«Жесткие» параметры описывают важнейшие функции товара и связанные с ними основные характеристики, заданные конструктивными принципами изделия. Наиболее представительной группой «жестких» параметров являются технические, которые, в свою очередь, подразделяются на параметры назначения (классификационные, технической эффективности, конструктивные), экономичности, а также параметры соответствия международным и национальным стандартам, нормативам, законодательным актам и т.д. – все это регламентируемые параметры.
«Мягкие» параметры характеризуют эстетические свойства товара (дизайн, цвет, упаковка и т.п.).
Определение набора потребительных параметров товара – ключевой момент анализа его конкурентоспособности. Далее устанавливают иерархию этих параметров, выдвигая на первый план те, которые имеют наибольшую значимость («вес») для потребителя.
Обладающие наибольшим весом параметры (приоритетные с точки зрения конкурентоспособности) в первую очередь становятся объектами тщательного исследования. Такой подход не исключает анализа второстепенных параметров, тем более что в ряде случаев именно они могут оказаться очень важными для рыночного успеха товара. Не следует пренебрегать даже самой малой возможностью повышения конкурентоспособности товара, однако следует помнить, что наибольший эффект дает улучшение приоритетных параметров. Суть такого улучшения – максимальное удовлетворение потребностей покупателя.
По аналогичной схеме определяется набор экономических (стоимостных) параметров товара, характеризующих его основные экономические свойства, иными словами, затраты покупателя на приобретение и использование изделия на протяжении всего периода его эксплуатации (потребления). продолжение
–PAGE_BREAK–
Величины экономических параметров определяется ценой изделия Ц1, расходами на его транспортировку Ц2, установку Ц3, обучение персонала Ц4, эксплуатацию Ц5, ремонт Ц6, техническое обслуживание Ц7, налоги Ц8, страховые взносы Ц9 и т.д. В совокупности эти расходы составляют цену потребления Ц – объем средств, нужных потребителю в течение всего срока службы товара:
Ц = Ц1 + Ц2 + Ц3 +Ц4 + Ц5 + Ц6 + Ц7 + Ц8 + Ц9 + ¼ Ц = />
Расчет интегрального показателя относительной конкурентоспособности основан на сравнении его параметров с параметрами существующего (или разрабатываемого) товара, наиболее полно отражающими потребности потребителя.
Информацию о характере требований покупателей дают рыночные исследования. Такая информация может быть прямой, как результат целенаправленного сбора соответствующих сведений, и косвенной, позволяющей получить необходимые сведения по размерам сбыта и доле рынка наиболее конкурентоспособных, т.е. соответствующих потребительским запросам, товаров. Косвенная информация очень важна, т. к. содержит элемент обобщения. Кроме того, она наиболее доступна и более приемлема для предприятия-экспортера, не имеющего на внешнем рынке специализированных информационных служб.
Чтобы оценить отношение параметров нашего изделия и параметров образца, необходимо эти данные количественно определить. Каждый «жесткий» параметр имеет определенную величину, выраженную в некоторых единицах. По этой величине покупатель видит, насколько свойство изделия, выраженное данным параметром, удовлетворяет его потребность. Степень удовлетворения выражают в форме процентного отношения фактической величины параметра к той величине, при которой потребность удовлетворяется на 100%. Расчет проводят по всем количественно оцененным параметрам, получая для каждого параметрический индекс.
Оценку степени удовлетворения потребности покупателя потребительными свойствами изделия производят с помощью сводного параметра индекса, который рассчитывается по формуле:
/>, (2)
где n – число анализируемых количественных параметров;
aj – вес j го параметрического индекса;
J’ТП – параметрический индекс j го параметра.
Параметрический индекс любого нормативного (регламентируемого) параметра JНi может иметь только два значения – 0 и 1, в зависимости от того, соответствует ли данный параметр всем требуемым нормам и стандартам. Нулевое значение индекса означает полную потерю конкурентоспособности изделия.
После расчета параметрических индексов и «весов» каждого экономического параметра определяют сводный индекс конкурентоспособности по экономическим параметрам (JЭП), который выглядит следующим образом:
/>, (3)
где m – число анализируемых экономических параметров;
bj – вес j го параметрического индекса;
J’ЭПj – параметрический индекс j го параметра.
Сводные индексы конкурентоспособности по потребительным экономическим параметрам (JТП, JН, JЭП) дают интегральный показатель относительной конкурентоспособности KИ изделия по отношению к образцу. Этот показатель отражает различия между потребительными эффектами сравниваемых товаров:
/>(4)
Если KИ > 1, анализируемое изделие превосходит по конкурентоспособности образец, если KИ
Порядок проведения оценки конкурентоспособности товара
Изучение рынка.
сбор данных о конкурентах
анализ проекта, оценка стоимости, определение емкости рынка и перспектив сбыта
Формулирование требований к изделию.
Определение цели анализа конкурентоспособности.
Анализ нормативных параметров.
расчет группового показателя конкурентоспособности по нормативным параметрам.
выбор базового образца.
определение группового показателя конкурентоспособности по техническим параметрам и группового показателя конкурентоспособности по экономическим параметрам, анализ цены потребления
расчет интегрального показателя уровня конкурентоспособности с базовым образцом.
Оценка конкурентоспособности моделирующей системы MICROSIM
С помощью данной схемы проведем оценку конкурентоспособности рассматриваемого программного продукта.
Изучение рынка
По причине относительной молодости отрасли, компании, специализирующиеся на разработке экспертных и моделирующих систем выходят на рынок с одним-двумя программными продуктами, поэтому целесообразно обратиться к рассмотрению межтоварной конкуренции.
Очевидно, что рынком реализации нашего товара является рынок программного обеспечения (ПО).
Моделирующие системы являются одной из разновидностей экспертных систем. В последнее время экспертные системы получают все более широкое распространение. Они используются при медицинской диагностике, прогнозировании, контроле и управлении производством и т.д. На данном этапе развития вычислительной техники применение экспертных, а, следовательно, и моделирующих систем становиться все более необходимым, благодаря чему наблюдается растущий интерес потенциальных покупателей к данному виду программного обеспечения, поэтому можно с уверенностью утверждать, что время жизненного цикла моделирующих систем, в частности MICROSIM, находится на этапе роста.
В настоящий момент времени возникновение повышенной необходимости в экспертных, а, следовательно, и в моделирующих системах
С учетом узкой специфики рассматриваемого программного средства можно выделить два сегмента потенциальных потребителей. Во-первых, это инженеры – исследователи, разработчики и проектировщики систем обработки данных, локальных вычислительных сетей, мультипроцессорных и мультипрограммных систем. Во-вторых, это могут быть учебные заведение, в образовательную программу которых включено изучение вычислительных систем и сетей, поскольку MICROSIM позволяет изучать их работу достаточно наглядно.
Требования к программному обеспечению
Путем опроса пользователей моделирующих систем (в данном случае студентов, изучающих работу этих систем в рамках академической программы), были сформулированы следующие требования, которым должна удовлетворять моделирующая система:
Распространенность аппаратно-программной платформы.
Простота обучения работе с системой.
Простота описания изучаемой модели.
Удобный интерфейс.
Продолжительность процесса моделирования.
Масштабируемость системы.
Возможность изменения параметров моделирования в процессе работы.
Цена.
Аппаратно-программная платформа подразумевает под собой сочетание, как аппаратной части (самого компьютера) так и операционной системы, под управлением которой должна работать моделирующая система. Распространенность платформы обеспечивает больший охват рынка, ввиду отсутствия необходимости приобретения нового оборудования для обеспечения работы систем.
Простота обучения не требует от потенциальных потребителей значительных затрат на переквалификацию штата сотрудников.
Под простотой описания изучаемой модели в данном случае подразумевается понятность и наглядность, позволяющая быстро находить ошибки при задании параметров и описании модели и тем сокращающая общее время на разработку проекта.
Удобство интерфейса – это наличие в системе отлаженного механизма взаимодействия пользователя с программой в режиме вопрос – ответ. Следствием удобного интерфейса является меньшее утомление пользователей системы и, соответственно, наибольшую эффективность их труда.
Продолжительность процесса моделирования – это время, затрачиваемое системой на обработку параметров модели и непосредственно моделирование, до получения необходимого результата. Меньшая продолжительность моделирования сокращает общее время на разработку проекта и, соответственно, сокращает затраты, а также позволяет за одно и то же время перебрать большее количество параметров модели, нежели более медленная система.
Под масштабируемостью понимается применимость системы как к маленьким моделям, состоящим из одного сегмента и нескольких элементов, решающим частные задачи, так и к глобальным, состоящим из множества сегментов. Также желательно наличие возможности вести разработку целого объекта по частям, с последующим объединением результатов. продолжение
–PAGE_BREAK–
Возможность изменения параметров моделирования в процессе работы позволяет полнее исследовать модель за более короткий промежуток времени.
Цена системы определяет возможность ее приобретения небольшими отделами, или же только крупными предприятиями.
Определение цели анализа конкурентоспособности
МИКРОСИМ является системой разработанной в МГИЭТ и предназначенной для использования в рамках академической программы кафедры ИПОВС. Тем не менее, МИКРОСИМ является законченным программным продуктом, который может оказаться крайне полезным в некоторых областях производства, касающихся разработок систем, исследование которых было бы целесообразней производить на этапе проектирования, в силу чего данное ПС быть представлено на рынке как самостоятельный продукт. Поэтому целью данного анализа является выяснение способности МИКРОСИМ составить конкуренцию аналогичным программным продуктам. Также исследование конкурентоспособности может помочь выявить те характеристики системы, которые снижают ее конкурентоспособность и нуждаются в доработке и улучшении.
Анализ нормативных параметров
Прежде чем переходить к анализу нормативных параметров, остановимся на выборе базового образца. Для того чтобы в полной мере оценить характеристики системы, необходим некоторый опыт работы с ней. В следствии этого для сравнения была выбрана система моделирования GPSS фирмы Minuteman Software, как наиболее доступная для исследования.
Анализируемые параметры следует разделить на параметры, определяемые количественно и параметры определяемые качественно. Т.е. на «жесткие» и «мягкие» параметры.
К жестким параметрам можно отнести:
Распространенность аппаратно-программной платформы.
Продолжительность процесса моделирования.
Масштабируемость системы.
Возможность изменения параметров моделирования в процессе работы.
Мягкими параметрами являются:
Простота обучения работе с системой.
Простота описания изучаемой модели.
Удобный интерфейс.
Ввиду того, что мягкие параметры труднее поддаются количественной характеристике, т. к. отражают субъективное восприятие человеком свойств объекта, их оценка будет производится по 10 ти бальной системе.
Следует отметить, что в виду того, что обе системы написаны для одной и той же аппаратно-программной платформы, сравнивать их по этому параметру не имеет смысла.
Иерархия степени важности параметров, по которым производилась оценка, была установлена в результате опроса пользователей подобных систем. Аналогично были произведены качественные оценки «мягких» параметров.
Сравнительные характеристики системы МИКРОСИМ и GPSS
Сравниваемые характеристики
Значимость характеристики
Система
Частный параметрический индекс
МИКРО – СИМ
GPSS
МИКРО – СИМ
GPSS
Простота обучения работе с системой.
5
6
6
0,6
0,6
Простота описания изучаемой модели.
6
7
4
0,7
0,4
Удобный интерфейс
4
6
3
0,6
0,3
Продолжительность процесса моделирования. (мин.)
1
0,47
0,44
0,93
1
Масштабируемость системы.
2
1
0,1
Возможность изменения параметров моделирования в процессе работы.
3
1
0,1
Расчет сводного параметрических индексов сравниваемых моделей произведем по формуле (2)
Для идеальной, с точки зрения пользователя системы, (на 100% удовлетворяющей его потребностям) сводный параметрический индекс, оцениваемый по данным параметрам равен:
JИДЕАЛЬНОЙ = 6 + 5 + 4 + 3 + 2 + 1 = 21;
Параметрические индексы для МИКРОСИМА и для GPSS равны соответственно:
JМИКРОСИМ =6*0,7 + 5*0,6 + 4*0,6 + 3*0,1 + 2*0,1 +1*0,93 =
= 4,2 + 3 + 2,4 + 0,3 + 0,2 + 0,93 = 11,03;
JGPSS = 6*0,4 + 5*0,6 + 4*0,3 + 3*0 + 2*0 + 1 = 2,4 + 3 + 1,2 + 1 = 7,2;
Исходя из того, что параметрический индекс идеальной модели равен 21 определим степень удовлетворения потребности покупателя МИКРОСИМ и GPSS, выраженную в процентах:
Для МИКРОСИМ она равна: (11,03 * 100%) / 21 = 52%;
Для GPSS: (7,2 * 100%) / 21 = 34%;
Вычисленные индексы, выраженные в процентах, очень наглядно демонстрируют неоспоримые преимущества системы имитационного моделирования МИКРОСИМ над системой – конкурентом GPSS. Тем не менее, полученные данные говорят о том, что МИКРОСИМ способен удовлетворить потребности пользователей лишь наполовину.
Сравнительные характеристики исследуемых моделей по экономическим параметрам.
Ввиду особенностей эксплуатации ПО, под его экономическими параметрами подразумевается исключительно цена изделия. По причине специфичности изучаемого программного продукта и связанными с этим сложностями выяснения реальной стоимости подобных изделий, ограничимся эмпирической оценкой данного параметра.
На основе рассчитанных параметрических индексов, определим насколько цена МИКРОСИМ может превышать реальную цену GPSS. Для этого дополнительно вычислим приведенный индекс и различия в приведенных индексах.
Приведенный индекс вычисляется по формуле:
/>
И равен соответственно: JМ= (34/52)*100 = 65;
Различие в приведенных параметрических индексах вычисляется по формуле:
/>
И равно соответственно: продолжение
–PAGE_BREAK–
DJМ= (100 – 65) / 65*100 = 54;
Цена ПС в условиях независимости покупательского предпочтения вычисляется по формуле:
/>
Итак:
ЦМ = [цена системы-конкурента]*(100 + 54) / 100 =
[цена системы-конкурента] * 1,54;
Из вышеприведенных расчетов вытекает, что разработанная в МГИЭТ система МИКРОСИМ вполне способна конкурировать с существующими системами подобного рода. Потенциальная стоимость системы имитационного моделирования МИКРОСИМ на рынке может в 1,54 раза превышать реальную стоимость GPSS.
Тем не менее, МИКРОСИМ нуждается в доработке. Если за основу взять некую систему, удовлетворяющую потребностям потребителя на 100%, то, исходя из тех же расчетов, получим что потенциальная стоимость МИКРОСИМ не должна превышать 0,521 от стоимости «идеальной» системы. Что очевидно и при рассмотрении полученного в результате расчетов сводного параметрического индекса.
Из всех сравниваемых в процессе исследования характеристик, в настоящее время наиболее целесообразно и доступно обратиться к усовершенствовании двух из них:
разработке более удобного интерфейса
создания более простого способа описания модели
Подобные доработки позволили бы увеличить конкурентоспособность МИКРОСИМ на 14%.
Следует отметить, что работы, связанные со второй частью рекомендаций по повышению конкурентоспособности уже были проведены. Разработанный редактор моделей СВПИМ является очень мощным дополнением к МИКРОСИМ. Благодаря данному программному средству процесс описания описание модели значительно упрощается.
Санитарно-гигиенические условия труда на рабочем месте пользователя ЭВМ
Производственно-экологическая безопасность (ПБ) – это система законодательных актов и норм, направленных на обеспечение безопасности труда и соответствующих этому социально-экономических, организационных, технических и санитарно-гигиенических мероприятий.
ЭВМ в настоящее время являются орудием труда широкого круга пользователей. Нормальная работа пользователей ЭВМ во многом зависит от того, в какой мере условия его работы соответствуют оптимальным. Под условиями работы подразумевают освещение, температуру, влажность и вентиляцию воздуха, шум и вибрацию и т.д.
Обеспечение оптимальных условий труда на рабочем месте пользователя ЭВМ направлено на снижение уровня утомляемости пользователя.
Целью данного раздела является анализ условий труда пользователей ЭВМ и описание основных методов нейтрализации опасных и вредных факторов.
Неблагоприятные факторы
Работа за дисплеем ЭВМ объективно связана с воздействием следующих неблагоприятных для здоровья человека факторов:
пробой высоковольтного напряжения на незащищенные токоведущие участки;
поражение электрическим током питающей сети;
повышенный уровень шумов и вибраций;
проникающее излучение электронно-лучевой трубки;
нерациональное освещение;
неблагоприятный микроклимат (избыток тепла);
психофизиологические факторы.
Первые два фактора не являются источниками постоянно действующей опасности. Защита от них гарантируется тщательным соблюдением правил техники безопасности при эксплуатации ЭВМ.
Остальные факторы относятся к источникам постоянной опасности. Их действие сказывается при каждодневной работе.
Электроопасность и пожароопасность
Источниками электроопасности в помещении для работы с ЭВМ являются блоки ЭВМ, корпус устройства и приборы в случае возникновения неисправности (например, при нарушении защитного заземления, изоляции проводов, применении неправильных приемов включения в сеть и выключения из сети вилок электропитания).
Источниками пожароопасности являются устройства ЭВМ, измерительные устройства при возникновении перегрузок цепей питания и неисправностей в виде короткого замыкания.
Защитой от прикосновения к токоведущим частям электроустановок служат изоляция проводников, использование защитных кожухов, а также инструмента с изолирующими ручками при ремонте оборудования ЭВМ.
Защитой от напряжения, появляющегося на корпусах электроустановок в результате нарушения изоляции, являются защитное заземление, зануление и защитное отключение.
Важным организационным мероприятием является проведение инструктажа по электро- и пожароопасности всех лиц, допущенных к работе на ЭВМ. При проведении противопожарных инструктажей необходимо добиваться, чтобы персонал практически умел пользоваться первичными средствами тушения пожара и средствами связи.
Для тушения пожара применяются ручные огнетушители и переносные установки. На предприятиях электронной промышленности широко применяются пенные огнетушители ОП 3, ОП 5, а также ОХП 10. Электросети и электроустановки находятся под напряжением, тушить водой их нельзя, так как через струю воды может произойти поражение электрическим током. Именно поэтому для тушения пожара, возникшего из-за неисправности электроприборов, применяются пенные огнетушители.
Возможность быстрой ликвидации пожара во многом зависит от своевременного оповещения о пожаре. Весьма распространенным средством связи является телефонная сеть.
Шумы и вибрации
Источниками шума и вибрации, в основном, являются подвижные части печатающих устройств и дисководов. Шум неблагоприятно действует на организм человека, вызывая различные физиологические отклонения в организме, психологические заболевания и снижает работоспособность. Утомление пользователей и операторов ЭВМ из-за шума увеличивает число ошибок при работе, способствует возникновению травм.
Шум – это совокупность звуков различной частоты и интенсивности. Характеристикой шума с точки зрения физиологического восприятия является понятие «громкость шума». Количественную оценку уровня громкости шума различных источников проводят путем сравнения с шумом на частоте 1000 Гц, для которого уровень силы принят равным уровню громкости. При этом для измерения уровня громкости шума введена единица в 1 фон. За один фон принят уровень громкости шума с частотой 1000 Гц при уровне силы шума 1 дб.
ГОСТ 12.1.003–83 «Шум, общие требования безопасности» устанавливает, что уровень звука на рабочем месте (в том числе при работе на ЭВМ) не должен превышать 50 дБ.
Основными мероприятиями по борьбе с шумом и вибрацией являются:
– Облицовка залов ЭВМ шумопоглащающей плиткой;
– использование различных шумоуловителей;
– размещение устройств на резиновых прокладках и амортизаторах.
Микроклимат
Большое значение для обслуживающего персонала и правильной эксплуатации вычислительной техники имеют соблюдение температурного режима и уровня влажности воздуха.
Согласно ГОСТ 12.1.005–88 оптимальными условиями являются:
температура 20–22 С и влажность 55–60%.
Мероприятиями по поддержания этих условий в залах с ЭВМ, где происходит значительное тепловыделение работающими устройствами, являются необходимость применять кондиционирование воздуха. В периоды выходных и праздничных дней, когда отсутствуют естественные тепловыделения, должно быть предусмотрено, особенно в зимнее время, искусственное поддержание температуры воздуха в вычислительном центре.
В соответствии с требованиями СН 245–71 определенные ограничения предъявляются и к размеру помещений. Так, объем производственных помещений на одного работающего должен составлять не менее 15 куб. м, а площадь – не менее 4.5 кв. м.
Освещенность
Одним из основных видов работ, выполняемых на вычислительном центре, является работа за дисплеем ЭВМ. Этот вид работ характеризуется тем, что требует от программиста или оператора постоянного внимания.
Недостаток или избыток освещения на рабочем месте может привести к быстрому утомлению, появлению головной боли, падению производительности труда, росту числа ошибок, а при систематическом нарушении режима освещенности – к нарушению зрения.
Правильно спроектированное и выполненное производственное освещение повышает производительность труда, оказывает благоприятное психологическое воздействие, повышает безопасность труда и не вредит здоровью программиста.
В дисплейном зале освещение должно быть совместное – естественное (боковое, через окна в наружных стенах) и искусственное – и соответствовать требованиям СНиП 4–79. По конструктивному исполнению искусственное освещение может быть двух видов – общее и комбинированное, когда к общему освещению добавляется местное. В большинстве случаев достаточно иметь общее искусственное освещение (лампы местного освещения могут быть использованы, например, при контроле работ графопостроителя или печатающего устройства). продолжение
–PAGE_BREAK–
Общее освещение подразделяется на общее равномерное (без учета расположения оборудования вычислительной техники) и общее локализованное освещение. Для дисплейного класса выбирают общее равномерное освещение. Величина минимальной освещенности устанавливается согласно условиям зрительной работы, которые определяются наименьшими размерами объекта различения, контрастом объекта с фоном и характеристиками фона.
Вид работ в дисплейном классе относится к высокой точности (размер объекта от 0.5 до 1.0 мм, контраст объекта с фоном – малый, фон – темный). Наименьшая необходимая освещенность при этом равна 300 лк.
При работе с ЭВМ помнить о следующем:
прежде чем начинать работу на ЭВМ необходимо пройти всестороннее обследование у окулиста;
терминал не должен быть обращен экраном к окну, так как интенсивная освещенность поля зрения может затопить глаза потоками света и размыть изображение оригинала на сетчатке;
уровень освещенности рабочего места должен составлять 2/3 от нормальной освещенности служебных помещений и составлять не менее 250 лк;
необходима оптимальная направленность светового потока. Свет должен падать под углом 60 градусов к ее нормали;
состав света должен быть оптимальным, т.е. естественное освещение плюс искусственный источник со спектральной характеристикой, близкой к солнечной;
осветительная установка не должна быть источником дополнительной опасности;
избавляться от бликов можно при помощи штор, занавесок или жалюзей, ограничивающих световой поток;
стена или какая-нибудь другая поверхность сзади программиста должна быть освещена также как и экран;
если нельзя избавиться от бликов, то необходимо пользоваться специальными фильтрами для экрана.
Расчет искусственного освещения
Для расчета искусственного освещения воспользуемся методом использования светового потока. Основное уравнение этого метода:
/>
где:
Eн – нормированная минимальная освещенность (лк);
S – площадь освещаемого помещения (кв м);
Z – коэффициент минимальной освещенности, равный отношению Eср/Eмин (значение его находится в пределах 1.1–1.5);
K – коэффициент запаса;
N – число светильников помещения;
n – коэффициент использования светового потока лампы;
F – световой поток группы ламп (лм).
Для определения n необходимо подсчитать индекс помещений по формуле:
/>
где:
A, B – два характерных размера помещения;
H – высота светильников над рабочим местом.
В дисплейном зале, где проводилась работа над темой данного дипломного проекта, эти величины имеют следующие значения:
A = 8 м,
B = 4 м,
H = 3 м.
/>
Из таблиц для полученного I и светильников с люминесцентными лампами находим:
K = 1.4
n = 0.36 (p(n) = 50%, p(с) = 30%).
где:
H – высота подвеса светильников (H = 3 м).
Для освещения лаборатории используются люминесцентные лампы ЛБ40 со световым потоком F равным 3120 лм.
Зная световой поток одного светильника, по приведенной выше формуле находим необходимое количество светильников:
/>шт.
После округления получим, что число светильников N = 6 шт. При этом Eн = 300 лк и S = A * B = 24 кв м. Учтем при этом, что в светильнике находятся две лампы.
Для расчета примем, что освещение дисплейного класса равномерное. Тогда расстояние между светильниками (L) должно соответствовать оптимальным значениям: L = 4 м.
Если же теперь, зная число светильников рассчитать световой поток, то получается F = 2750 лм
На практике допускается отклонение светового потока лампы от расчетного значения на 10–20%. В данном случае отклонение светового потока лампы от расчетного составляет
/>
что лежит в пределах допустимого.
Подсчитаем фактическое значение минимальной освещенности рабочей поверхности с учетом выбранной лампы:
/>лк
Воздействие статического электричества и излучения
Для предотвращения образования и защиты от статического электричества в помещениях ВЦ необходимо использовать нейтрализаторы и увлажнители, а полы должны иметь антистатическое покрытие. Защита от статического электричества должна проводиться в соответствии с санитарно-гигиеническими нормами допускаемой напряженности электрического поля. Допускаемые уровни напряженности электростатических полей не должны превышать 20кВ в течении 1 часа (ГОСТ 12.1045–84).
Спектр излучения компьютерного монитора включает в себя рентгеновскую, ультрафиолетовую и инфракрасную область, а также широкий диапазон электромагнитных волн других частот.
От рентгеновских лучей опасности практически нет, так как они практически полностью поглощаются веществом экрана. Наибольшую опасность представляют биологические эффекты низкочастотных электромагнитных полей, которые до настоящего времени считались абсолютно безвредными. Однако недавно в ряде экспериментов было обнаружено, что электромагнитные поля с частотой 60 Гц могут инициировать биологические сдвиги (вплоть до нарушения синтеза ДНК) в клетках животных. В отличие от рентгеновских лучей электромагнитные волны обладают необычным свойством – опасность их воздействия не обязательно уменьшается с уменьшением интенсивности облучения; определенные электромагнитные волны действуют на клетку лишь при малых интенсивностях излучения или в конкретных частотах – окнах прозрачности.
Поскольку источник высокочастотного напряжения компьютера строчный трансформатор – помещается в задней или боковой части терминала, уровень излучения со стороны задней панели дисплея выше, причем стенки корпуса не экранируют излучения.
Мерами безопасности являются требования к пользователям, находиться не ближе чем 1.2 м от задних или боковых поверхностей соседних терминалов. Ряд специалистов рекомендует сидеть на расстоянии 70 см от экрана дисплея – однако в этом случае необходима консультация с окулистом. Рекомендуется устанавливать на экран монитора защитные фильтры, которые частично экранируют магнитные поля, а также устраняют статические поля.
Организационные мероприятия по созданию условий безопасного труда
Каждого вновь принятого на работу программиста или оператора инструктируют. Степень усвоения инструкции проверяется комиссией. Инструктаж на рабочем месте проверяется один раз в квартал. Оператор ЭВМ должен иметь группу 1 квалификации по электробезопасности.
Обслуживающий ЭВМ персонал должен обладать достаточными знаниями электроники и правил эксплуатации ЭВМ.
Обязательно ведение книги приема и сдачи смен, в которой отмечаются неисправности и способы их устранения. Перед началом смены рекомендуется проводить ежедневное технологическое тестирование основных блоков ЭВМ с использованием аппаратных и программных средств диагностики.
К работе на ЭВМ допускаются лица, прошедшие медицинский осмотр при приеме на работу. Последующие осмотры проводятся один раз в два года. Обязательно проведение ежедневной уборки помещений, поддержание необходимых климатических условий.
Психофизиологические факторы
В современных условиях труд программиста изменился в таком направлении, что доля физических усилий сокращается, в то время как нагрузка на психику возрастает.
К психофизиологическим факторам относятся физические и нервно-психические нагрузки. Физические нагрузки, в основном, связаны с малой подвижностью на рабочем месте, что взывает гиподинамию – недостаточную мышечную активность. Для снятия напряжений такого рода необходимо после 1.5–2 часов работы делать перерыв, заниматься производственной гимнастикой.
Наряду с этим, профессия программиста требует высокого нервно-психического и нервно-эмоционального напряжения. Возникает проблема создания такой техники и производственной среды для человека, которая соответствовала бы его анатомофизиологическим и психологическим особенностям. При работе на ЭВМ рекомендуется находиться за экраном дисплея не более 3 х часов в сутки. Разумное чередование работы и отдыха позволяет человеку вести активную творческую жизнь.
В этой главе дипломного проекта рассмотрены требования охраны труда и разработаны рекомендации по оптимизации санитарно-гигиенической обстановки при выполнении работ на ЭВМ.
Установлено, что уровень шума на рабочем месте не должен превышать 50 дб, объем производственного помещения на одного работающего должен составлять не более 15 куб. м, площадь – не менее 4.5 кв. м, наименьшая допустимая освещенность – 300 лк.
Показана важность и необходимость организационных и санитарно-профилактических мероприятий по созданию условий безопасного труда.
В данной главе был проведен расчет искусственного освещения и подсчитано фактическое значение минимальной освещенности дисплейного класса – 300 лк.
Вопросы экологической безопасности не рассматривались, т.к. работа с ЭВМ не связана с использованием природных ресурсов и не представляет опасности для окружающей среды.
Используемая литература
1. МИКРОСИМ, «Система Е-сетевого имитационного моделирования. Концепция и возможности». Москва: МИЭТ, 1994 г.
2. МИКРОСИМ, «Система Е-сетевого имитационного моделирования. Описание языка». Москва: МИЭТ, 1995 г.
3. МИКРОСИМ, «Система Е-сетевого имитационного моделирования. Руководство пользователя». Москва: МИЭТ, 1994 г.
4. Джон Матчо, Дэвид Р. Фолкнер, «DELPHI». Binom, 1995 г.
5. А. Федоров, «Создание Windows – приложений в среде Delphi». Москва, компьютер пресс, 1995 г.
6. Моисеева Н.К., Костина Г.Д. «Маркетинговые исследования при создании и использовании программных продуктов. Методические указания для выполнения курсовых и дипломных работ по специальности «Менеджмент»». Москва, 1996 г.
7. Ф. Котлер, «Основы маркетинга», Москва, Ростинтер, 1996 г.
8 Константинова Л.А. Ларионов Н.М., Писеев В.М., «Методические указания по выполнению раздела «Охрана труда» в дипломном проекте для студентов». М: МИЭТ 1988 г.
9. Константинова Л.А. Ларионов Н.М., Писеев В.М., «Методы и средства обеспечения безопасности технологических процессов на предприятиях электронной промышленности». Москва: МИЭТ 1990 г.
10. Долин П.А., «Справочник по технике безопасности». Энергоатомиздат 1984 г.