- •Воронежский государственный технический университет
- •Утверждено Редакционно-издательским советом университета в качестве учебного пособия
- •Введение
- •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
10.4. Моделирование параллельных процессов.
В сети Петри два невзаимодействующих события могут происходить независимо друг от друга. Это позволяет моделировать два или несколько асинхронных независимых процессов. Два связанных между собой события должны происходить одновременно, что также легко моделируется в сети Петри. Считается, что событие происходит мгновенно, за нулевое время, поэтому вероятность одновременного возникновения двух событий принимается равной нулю. Такое событие называется примитивным. Примитивные события не могут быть одновременными.
Непримитивными событиями называются события, длительность которых конечна и больше нуля. Такие события могут пересекаться во времени и соответствуют реальным событиям в реальных системах. Ясно, что сеть Петри с примитивными событиями не совсем точно отражает реальные системы. Однако на практике при построении модели на основе сети Петри это обстоятельство легко обходится. Так непримитивное событие заменяется двумя примитивными: "начало непримитивного события", "конец непримитивного события" и условия: "непримитивное событие происходит".
В качестве примера покажем сеть Петри для моделирования работы простого компьютера, в котором время работы процессора учитывается как непримитивное событие.
Рис. 10.6. Сеть Петри для моделирования работы простого компьютера. Работа процессора моделируется как непримитивное событие
Применение прямоугольника для моделирования отдельных переходов приводит к значительному упрощению сети Петри, что важно при моделировании сложных систем. Таким образом может быть свернут целый функциональный блок, что эквивалентно применению подпрограмм в программировании.
Обратим внимание на важную особенность сетей Петри. Они в принципе моделируют независимые параллельные процессы как асинхронные. Синхронизация событий возникает автоматически в точках объединения параллельных процессов, в тот момент, когда во всех входных позициях общего перехода возникают фишки.
Рис. 10.7. Автоматическая синхронизация двух параллельных процессов при их объединении на переходе t5
Достаточно просто моделируется и ситуация "захвата ресурсов", когда один из параллельных процессов блокирует работу другого при возникновении некоторого условия.
Рис. 10.8 Блокировка одного параллельного процесса другим
На этом рисунке фишка, проходящая по верхнему параллельному процессу, первой достигает позиции p2 и через разрешенный переход t5 перемещается дальше. В результате срабатывания перехода t5 фишка из позиции p5 удаляется и поэтому нижний параллельный процесс остановится в позиции p4. Дальнейшее продвижение фишек через переходы t5 и t6 может произойти только после попадания фишки в "разрешающую" позицию p5 . Заметим, что при наличии фишек в позициях p2 и p4 приход фишки в "разрешающую" позицию p5 синхронизирует работу переходов t5 и t6.
10.5. Моделирование процессора с конвейерной обработкой
Большинство современных процессоров имеют конвейерную организацию вычислительного процесса. Конвейер состоит из ряда операций, которые могут выполняться одновременно. Каждая операция конвейера получает исходные данные от предыдущей операции и передает результат последующей.
Наибольший выигрыш времени вычислений в процессоре с конвейером достигается при выполнении однородных операций, например, при сложении ряда чисел. Каждая операция сложения чисел с плавающей запятой может быть представлена как следующая последовательность элементарных операций:
сравнить экспоненциальные части чисел и найти разность между ними,
если необходимо, переместить точку в мантиссе меньшего числа,
сложить мантиссы,
нормализовать сумму,
вычислить новое значение экспоненты,
проверить это значение на переполнение,
сформировать формат суммы.
Каждая операция может быть выполнена специальным аппаратным блоком. После выполнения первой операции результат передается во второй блок, при этом первый блок оказывается свободным. Поэтому в нем одновременно с работой второго блока по сложению первых двух чисел может быть выполнена первая операция по сложению третьего и четвертого числа. Если последовательность слагаемых достаточно велика, то в конвейере может одновременно складываться семь чисел, при этом результаты сложения выдаются в темпе один такт вместо семи тактов при обычной организации вычислений.
Рис. 10.9. Организация конвейерной обработки чисел в процессоре
Синхронизация работы блоков конвейера выполняется различным образом. При синхронной организации информация из блока в блок передается в темпе работы самого медленного блока. При более сложной асинхронной организации информация после обработки в блоке n поступает в его выходной регистр и ждет там до тех пор, пока не освободится входной регистр следующего блока n + 1. В асинхронном режиме скорость вычислений в среднем выше, хотя организация вычислений более сложна.
Таким образом при асинхронной конвейерной обработке для каждого вычислительного блока n возникают следующие состояния сети Петри:
входной регистр блока n заполнен,
входной регистр блока n свободен,
выходной регистр блока n заполнен,
выходной регистр блока n пуст,
вычислительный блок n занят,
вычислительный блок n свободен.
Построим модель асинхронной конвейерной обработки в форме сети Петри.
Рис. 10.10. Модель асинхронной конвейерной обработки информации в процессоре
Устройство управления процессом конвейерной обработки в процессоре (рис. 10.10) находится в исходном состоянии и готово к работе. При поступлении второй фишки в переход t1 он срабатывает и устанавливает фишку в позицию p5. После обработки информации в этом блоке фишка переходит в позицию p9, обозначая окончание работы блока n – 1 конвейера. В результате оказывается разрешенным переход t6 и после его срабатывания фишка оказывается в позиции p6 , обозначая передачу информации во входной регистр следующего блока n. После этого блок n начинает обработку информации, а блок n – 1 освобождается и оказывается готовым к работе.