- •Воронежский государственный технический университет
- •Утверждено Редакционно-издательским советом университета в качестве учебного пособия
- •Введение
- •2. Классификация видов моделирования систем
- •3. Основные математические методы моделирования информационных процессов и систем
- •3.1. Виды математических моделей
- •3.2. Структурные математические модели
- •3.3. Функциональные математические модели
- •3.3.1. Непрерывно-детерминированные модели
- •3.3.2. Непрерывно-стохастические модели
- •3.3.2.1. Анализ работы разомкнутых смо
- •3.3.2.2. Замкнутые смо
- •3.4. Моделирование дискретных систем
- •3.4.1. Конечные автоматы
- •3.4.2. Дискретно-детерминированные модели
- •3.4.3. Вероятностные автоматы
- •3.5. Сетевые модели. Сети Петри (n-схемы)
- •4. Имитационное моделирование информационных процессов
- •4.1. Организация статистического моделирования
- •4.2Моделирование случайной величины с заданным законом распределения
- •4.3 Моделирование равномерно распределенных на отрезке [a,b] случайных чисел
- •4.4. Моделирование показательно распределенных св
- •4.5. Моделирование нормально распределенных случайных чисел
- •4.6. Проверка качества случайных чисел по критерию
- •4.7. Точность статистических оценок
- •4.8. Аппроксимация результатов моделирования
- •5. Формализация и алгоритмизация процессов функционирования систем
- •5.1. Методика разработки и машинной реализации моделей систем
- •5.2. Построение концептуальных моделей систем и их формализация
- •5.3. Алгоритмизация моделей систем и их машинная реализация
- •6. Планирование имитационных моделй с экспериментами
- •6.1. Полный факторный эксперимент
- •6.2. Дробные реплики
- •6.3. Общая схема планирования эксперимента
- •6.3.1. "Крутое восхождение"
- •6.3.2. Этапы планирования эксперимента
- •6.4. Стратегическое планирование
- •6.5. Тактическое планирование
- •7. Оценка точности и достоверности результатов моделирования
- •7.1. Общие положения
- •7.2. Регрессионный анализ
- •7.3. Корреляционный анализ
- •7.4. Экспертные оценки
- •8. Инструментальные средства моделирования систем
- •8.1. Архитектура языков имитационного моделирования
- •8.2. Задание времени в машинной модели
- •8.3. Сравнительный анализ языков моделирования
- •8.4. Примеры прикладных пакетов моделирования и языков моделирования
- •9. Правила построения моделирующих алгоритмов и способы реализации моделей
- •10. Сетевые модели вычислительных систем
- •10.1. Определение: Сеть Петри
- •Объекты, образующие сеть Петри
- •2Расширенная входная Расширенная выходная
- •10.2. Маркировка сети Петри.
- •10.3. Пространство состояний сети Петри
- •10.4. Моделирование параллельных процессов.
- •10.5. Моделирование процессора с конвейерной обработкой
- •10.6. Кратные функциональные блоки компьютера
- •10.7. Сети Петри и программирование
- •10.8. Взаимно исключающие параллельные процессы
- •10.9. Анализ сетей Петри
- •10.10. Дерево достижимости сети Петри
- •В позицию может входить и выходить только одна дуга
- •11. Система имитационного моделирования gpss/pc
- •11.1. Назначение и основные возможности системы
- •11. 2. Состав системы моделирования gpss/pc
- •11.3. Структура операторов языка gpss/pc
- •11.4. Команды среды gpss/pc
- •11.5. Основные операторы языка gpss/pc
- •11.5.1. Начало gpss-модели
- •11.5.2. Комментарии в gpss/pc
- •11.5.3. Имитация потоков событий. Транзакты
- •11.5.4. Имитация типовых узлов смо
- •11.6. Информация о ходе моделирования
- •11.6.1. Окно данных
- •11.6.2. Окно блоков
- •11.6.3. Окно устройств
- •11.6.4. Окно многоканальных устройств
- •11.7. Информация о результатах моделирования
- •11.7.1. Файл результатов моделирования
- •11.7.2. Содержание результатов моделирования
- •11.9. Управление движением транзактов
- •11.10. Дополнительные средства сбора информации о модели
- •11.11. Стандартные числовые атрибуты
- •11.12. Выбор направления движения транзактов с использованием сча
- •11.13. Датчики случайных чисел в gpss/pc
- •11.14. Функции в gpss/pc
- •11.14.1. Дискретные функции
- •11.14.2. Непрерывные функции
- •11.15. Переменные в gpss/pc
- •11.16. Организация циклов
- •11.17. Логические переключатели
- •11.18. Управление движением транзактов в зависимости от состояния элементов модели
- •11.19. Моделирование согласованных процессов на gpss-pc
- •11.19.1. Создание ансамблей транзактов
- •11.19.2. Накопление нескольких транзактов для последующей обработки
- •11.19.3. Объединение нескольких транзактов в один
- •11.19.4. Синхронизация движения транзактов в модели
- •11.20. Время пребывания транзакта в модели
- •11.21. Сбор данных о распределении значений характеристик модели. Таблицы
- •11.22. Изменение имени файла результатов моделирования
- •11.23. Приведение модели к исходному состоянию
- •11.24. Многократное выполнение моделирования
- •11.25. Моделирование нескольких вариантов системы в одной gpss-модели
- •11.26. Время моделирования
- •3 94026 Воронеж, Московский просп., 14
11.20. Время пребывания транзакта в модели
С каждым транзактом в GPSS-модели связан стандартный числовой атрибут (СЧА) M1, значение которого представляет собой время с момента создания данного транзакта в операторе GENERATE, т.е. время пребы-вания транзакта в модели. Этот атрибут, как и любой другой СЧА, может использоваться в качестве операнда в операторах GPSS/PC. Таким обра-зом, время пребывания транзакта в модели можно сравнивать с некоторой заданной величиной (в операторе TEST), записывать в сохраняемую вели-чину (оператором SAVEVALUE), использовать для вычисления значений переменных (в операторе FVARIABLE) и т.д. Важное (но не единственное) применение СЧА M1 - получение информации о времени обслуживания зая-вок при моделировании систем, которые можно рассматривать как СМО (в моделях таких систем транзакты имитируют обслуживаемые заявки).
Примечание. Если транзакт создается не оператором GENERATE, а оператором SPLIT (т.е. представляет собой копию другого транзакта), то в момент его создания СЧА M1 равен не нулю, а значению атрибута M1 исходного транзакта. Чтобы значение M1 (т.е. время пребывания в модели) для такого транзакта отсчитывалось с момента его создания, требуется использовать оператор MARK (см. ниже).
Приведем пример использования СЧА M1 для получения информации о времени обслуживания заявок в СМО.
Пример. На ВЦ, имеющий две ЭВМ, поступают задачи для решения. Поток задач - пуассоновский (т.е. интервалы времени между задачами представляют собой случайные величины, распределенные по экспоненциальному закону). В среднем задачи поступают на решение через каждые два часа. Решение задачи занимает обычно от двух до четырех часов. По требованиям заказчиков общее время выполнения заказа (от поступления задачи на ВЦ до выдачи результатов) не должно превышать 8 часов.
Требуется разработать GPSS-модель для анализа работы ВЦ за 1000 часов. Определить процент задач, решение которых не выполняется в заданные сроки (8 часов).
10 SIMULATE
20 XPDIS FUNCTION RN1,C24
... таблица соответствия для экспоненциального распределения ...
30 COMP STORAGE 2
40 PROC FVARIABLE (X$PREV/X$RESH)#100
50 GENERATE 120,FN$XPDIS
60 QUEUE 1
70 ENTER COMP
80 DEPART 1
90 ADVANCE 180,60
100 LEAVE COMP
110 SAVEVALUE RESH+,1
120 TEST GE M1,480,KON
130 SAVEVALUE PREV+,1
140 KON TERMINATE
150 GENERATE 60000
160 SAVEVALUE PROC_PREV,V$PROC
170 TERMINATE 1
Модель работает следующим образом. Операторы 50-110 имитируют поступление задач на ВЦ, их решение и подсчет общего количества ре-шенных задач (сохраняемая величина RESH). В операторе 120 проверяется условие: M1480 (время пребывания в модели транзакта, имитирующего задачу, превышает 8 часов). Если условие выполняется, то в операторе 130 увеличивается на 1 сохраняемая величина PREV (количество задач, не решенных в срок).
Через 60000 минут (1000 часов) после начала моделирования в опе-раторе 150 генерируется один транзакт. Прежде чем выйти из модели и завершить моделирование (оператор 170), он проходит через оператор 160, в котором в сохраняемую величину PROC_PREV заносится значение переменной PROC. Эта переменная рассчитывается как отношение двух сохраняемых величин: PREV (количество задач, не решенных в срок) и RESH (общее количество решенных задач), умноженное на 100. Таким образом находится процент задач, не решенных в срок. Напомним, что обозначение X$имя в GPSS/PC представляет собой ссылку на значение сохраняемой величины.
Иногда требуется во время моделирования устанавливать значение М1 равным нулю, чтобы отсчитывать время пребывания транзакта в модели с некоторого заданного момента. Для этого используется следующий оператор:
MARK
При прохождении транзакта через этот оператор значение СЧА М1 у этого транзакта устанавливается равным нулю.
Использование оператора MARK требуется в следующих случаях:
- если требуется исследовать время, проведенное транзактом в модели не с начала моделирования, а с какого-либо другого момента;
- если требуется исследовать время пребывания в модели транзакта, созданного оператором SPLIT (см. примечание выше); в этом случае оператор MARK обычно непосредственно следует за оператором SPLIT;
- при моделировании замкнутых СМО.
Рассмотрим последний случай более подробно. Замкнутой называется СМО, в которой имеется фиксированное количество заявок. Каждая из этих заявок поступает на обслуживание, обслуживается и через некоторое время снова требует обслуживания. Примеры замкнутых СМО: ЭВМ, решающая задачи, которые поступают с группы терминалов (причем задача с каждого терминала поступает в ЭВМ через некоторое время после решения предыдущей задачи); наладчик, обслуживающий группу станков, которые периодически требуют наладки. В GPSS-моделях замкнутых СМО каждая заявка обычно имитируется транзактом, который остается в модели в тече-ние всего времени моделирования (его не требуется удалять оператором TERMINATE). Поэтому представляет интерес время пребывания транзакта в модели не с момента его создания, а с момента начала очередного обслуживания.