- •Аннотация
- •Содержание:
- •Введение
- •1 Объекты системы моделирования сим-си
- •1.1 Общая классификация
- •1.2 Системные константы, типы и переменные
- •Системные типы
- •Скалярные типы данных
- •Множественные типы данных
- •Системные переменные
- •2 Принципы и методы построения моделей
- •2.1 Создание транзактов
- •2.2 Уничтожение транзактов
- •2.3 Продвижение транзактов
- •2.4 Задержка транзактов. Функцияdelayt
- •2.5 Блокировка транзактов
- •2.5.1 Функцияwait
- •2.5.2 Функцииacceptиsend
- •2.6 Изменение порядка осуществления событий. Функцияnехt
- •2.7 Использование приборов
- •2.7.1 Функции ввода транзактов в прибор
- •2.7.1.1 Захват прибора. Функцияinfac
- •2.7.1.2 Занятие прибора. Функцияseize
- •2.7.2 Функцияoutfac. Вывод транзакта из прибора
- •2.8 Регистрация очередей. Функцииinqueue,outqueue
- •2.9 Накопители (многоканальные устройства). Функцииenterиleave
- •2.10 Построение гистограмм. Функцииtabulate,newhist,prnhist
- •2.11. Создание, использование и обработка списков
- •2.11.1 Создание списков
- •2.11.2 Включение объектов в списки
- •2.11.3 Удаление объектов из списков
- •2.11.4 Просмотр элементов списка. Сканирование
- •2.11.5 Списки пользователя. Организация различных дисциплин обслуживания с помощью списков пользователя
- •2.12 Модельная среда
- •2.12.1 Создание модельной среды
- •2.12.2 Уничтожение очередей, приборов, накопителей и гистограмм
- •2.13 Ансамбли
- •2.13.1 Создание ансамблей. Функцияsplit
- •2.13.2 Сбор членов ансамбля. Функцияassemble
- •2.13.3 Изменение приоритета всех членов ансамбля. Функцияpriority
- •2.13.4 Изменение значения параметра всех членов ансамбля. Функцияparmans
- •2.14 Генераторы случайных чисел
- •2.15 Процесс моделирования. Функцияplan
- •2.16 Создание системной среды. Функцияinitlist
- •2.17 Структура модели
- •2.18 Сброс статистики и очистка системной и модельной среды. Функцииresetallиclear
- •3 Вывод результатов моделирования
- •4 Отладочные средства
- •4.1 Диагностика ошибок
- •4.2 Трассировка
- •Приложение 1. Коды и сообщения об ошибках
- •Приложение 2. Сообщения в режиме трассировки
- •Приложение 3. Системные константы и типы данных
- •Приложение 4. Системные переменные
- •Приложение 5 Заголовки системных функций
- •Приложение6. Примеры моделей Пример 1.
- •Пример 2.
- •Пример 3.
- •Диагностика ошибок
- •Системные списки Список current
- •Список прибора Fac f
- •Список future
1.2 Системные константы, типы и переменные
Множество объектов определено в системе СИМ-СИ путем введения абстрактных типов данных. Создание или определение требуемого количества объектов возложено на программиста, он также обязан предусмотреть действия над объектами при возникновении в системе определенных условий.
Системные константы используются для настройки системы моделирования на доступную при реализации на конкретной ЭВМ память. Число системных констант невелико, но они влияют на возможности системы.
Ниже определяются следующие константы:
evemax- ограничивает в системе максимальное количество событий; каждое событие, как уже указывалось, определяет последовательность действий (фактически алгоритм поведения транзакта при его перемещении в соответствующую событию точку модели). Чем больше число событий определено в модели, тем более детальным является описание реальной системы. В этом смыслеevemax ограничивает возможности СИМ-СИ по представлению реальных систем.
signmax- константа ограничивает количество сигналов в системе. Сигналы используются для взаимодействия между транзактами, находящимися в различных частях модели. Сигналы можно передавать и принимать (в случае необходимости ожидая их появления).
hint- константа, задающая максимальное число интервалов в гистограмме. Собственноhint задает число точек на числовой оси, задающих интервалы для табулирования значений.
Следующие константы имеют отношения к транзактам:
prtymax- максимальная абсолютная величина приоритета транзакта. Приоритеты транзакта используются во многих случаях. В частности, если в некоторый фиксированный момент времени на перемещение по модели претендуют одновременно несколько транзактов, то, как правило, двигаться будет тот, который имеет высший приоритет, остальные будут дожидаться его остановки.
Константы, устанавливающие число параметров транзакта:
mptbчисло булевских параметров:
mptrчисло действительных параметров:
mptiчисло целочисленных параметров:
mptfчисло указателей на приборы:
mptqчисло указателей на очереди:
mptsчисло указателей на накопители.
Подробное назначение констант дается в определении типов.
Системные типы
Введение абстрактных типов данных, представляемых ниже, положено в основу формализации процесса моделирования.
Предлагаемые типы служат для создания системной среды и используются пользователем для определения необходимых ему объектов.
Заметим, что в системе моделирования определены как типы данных:
1) структуры абстрактных объектов;
2) указатели на эти структуры:
Указатели используются для определения положения объекта, а сам объект содержит необходимые поля данных, значения которых используются при моделировании.
Скалярные типы данных
Для определения переменных, имеющих смысл времени, используется тип double.
При моделировании время изменяется от нуля до некоторой положительной величины. Единица измерения времени в системе не определяется: следовательно интерпретация времени в модели задается теми единицами времени, которые определил пользователь.
Тип prtyrange=-prtymax..prtymaxопределяет диапазон изменения приоритетов транзактов, в дальнейшем используется для определения новых типов данных.
Пространство изменения системных событий определено типом event=1..evemax.
Нумерация событий в модели не должна выходить за пределы, заданные типом event. Модели, процессы и подмодели занимают связную область пространства событий.
Тип enum parmtype{parmb,parmi,parmr,parmf,parmq,parms,last_parmtype} специфицирует типы параметров транзакта:
parmbзадает параметр булевского типа;
parmiзадает параметр целого типа;
parmrзадает параметр действительного типа;
parmfзадает параметр типа указатель на прибор;
parmqзадает параметр типа указатель на очередь;
parmsзадает параметр типа указатель на накопитель.
Тип parmtypeиспользуется вспомогательными функциями.
К числу скалярных типов также относятся указатели на некоторые типы системных переменных. Их описание будем приводить при определении соответствующего типа.
