- •"Компьютерное моделирование процессов и систем"
- •"Компьютерное моделирование процессов и систем"
- •Содержание
- •Введение
- •1Характеристики сложных систем и задачи их исследования
- •1.1Основные понятия и определения. Понятие системы.
- •1.2Структура системы.
- •1.3Элементы и подсистемы.
- •1.4Функция системы и ее структура.
- •1.5Способы управления.
- •1.6Характеристики сложных систем
- •1.7Основные задачи исследования сложных систем
- •1.8Этапы анализа
- •1.9Виды моделирования систем
- •1.10Возможности и эффективность моделирования систем на эвм.
- •1.11Виды обеспечения имитационного моделирования.
- •1.12Подбор функции методом наименьших квадратов.
- •1.13Методы формирования случайных величин
- •1.14Мультипликативный способ получения равномерно распределенных случайных величин из интервала (0,1).
- •1.15Особенности вычислительных систем как объектов моделирования. Режимы работы вычислительных систем. Режимы использования.
- •1.16Структурная организация вычислительных систем.
- •1.17Рабочая нагрузка вс. Потоки заявок.
- •1.18Параметры потока заявок.
- •1.19Управление вычислительной нагрузкой и ресурсами вс.
- •1.20Функциональные характеристики вс.
- •1.21Разработка модели вс. Выбор уровня детализации.
- •1.22Подбор параметров модели. Количественные параметры.
- •2Моделирование дискретных систем на gрss
- •2.1Введение в gрss.
- •2.2Системы обслуживания с одним прибором и очередью.
- •2.3Элементы процедуры решения (моделирования).
- •2.4 Модельный таймер, завершение моделирования.
- •2.5 Одновременные события
- •2.6Выводы.
- •2.7Основные концепции моделирования на gрss.
- •2.8Списки gрss ( цепи ).
- •2.9Стандартные числовые и логические атрибуты gрss.
- •2.10Стандартные числовые атрибуты устройств.
- •2.11Стандартные числовые атрибуты накопителей.
- •2.12 Логические ключи
- •2.13Статистические объекты.
- •2.18Общий подход к моделированию.
- •2.19Основные карты и блоки gрss.
- •2.20Правила описания модели на gрss в лабораторной работе.
- •2.21Перенаправление потока заявок.
- •2.22Функции.
- •2.23Арифметические переменные variable fvariable
- •2.24Табулирование переменных.
- •2.25Многоканальные устройства (накопители )
- •2.26Работа с прерываниями.
- •2.27Управление логическими переключателями.
- •2.28Блок проверки gate
- •2.29Блок test
- •2.30Работа с ячейками.
- •2.31Работа с сча заявок
- •2.32Блок sрlit
- •2.33Блок assemble
- •2.34Блок gather
- •2.35Блок match
- •2.36Блок looр
- •2.37Блок присваивания приоритетов рriority
- •2.38Списки пользователя
- •2.39Блок mark
- •2.40Блок count
- •2.41Блок select
- •2.42Карта установки начальных значений генераторов случайных чисел rmult
- •2.43Матрицы
- •3Аналитические расчеты систем массового обслуживания
- •3.1Аналитическое моделирование вычислительных систем
- •3.2Модель размножения - гибели.
- •3.3Характеристики одноканальных систем массового обслуживания.
- •3.4Характеристики сложных смо.
- •3.5Многоканальные системы
- •3.6Системы с произвольным распределением длительности обслуживания.
- •3.7Система с отказами.
- •3.8Методы приближенной оценки характеристик систем массового обслуживания.
- •3.9Стохастические сетевые модели для вс.
- •3.10Стохастические сетевые модели.
- •3.11Экспоненциальные стохастические сети
- •3.12Характеристики разомкнутых систем
- •3.13Характеристики замкнутых систем.
- •4Литература
2.4 Модельный таймер, завершение моделирования.
Обычно в начале значение таймера равно нулю и разработчик модели сам должен решить, какому времени этот нуль соответствует. Затем нужно выбрать единицу модельного времени - сутки, час, минута и т.п. таким образом, чтобы события модели протекали достаточно медленно относительно этой единицы. Предположим, что моделируется система, и в данный момент ее состояние изменилось. Следующий логический шаг - увеличение значения таймера. Существуют два подхода:
1) увеличить на единицу, проверить состояние системы и определить те из запланированных событий, которые должны произойти при новом значении таймера.
Если эти события есть, то выполняются логические операции, реализующие события, и снова изменяется значение таймера на единицу и т.д. Если событий на данный момент не запланировано, то значение таймера просто увеличивают на единицу.
2) используют концепцию переменного приращения значения таймера. Время наращивается до ближайшего основного события.
Очевидно, выгоднее второй подход, т.к. при этом не обрабатываются моменты времени, на которые не запланировано событий.
Реальный выигрыш во многом зависит от модели и качества реализации системы.
Ближайшее событие определяется обычно на основе списков будущих событий. События в нем стоят в порядке наступления. Когда обрабатываются события, то список будущих событий может быть скорректирован.
В принципе, рассмотренный подход обеспечивает бесконечное время моделирования.
В действительности, рано или поздно, моделирование нужно прекращать.
Завершение моделирование не всегда одномоментное, например, может быть желательно не принимать новых заявок в систему, а дообслужить оставшиеся заявки.
Один из способов завершения, это - введение в модель основного события, называемого завершением моделирования.
Тогда модель должна будет запланировать это событие.
Момент завершения моделирования обычно задают числом и тогда его запланировать нетрудно. В процессе моделирования проверяется, является ли событие завершить моделирование очередным.
Если да, то таймер устанавливается на это время и интерпретатор обрабатывает процедуру конца.
Применительно к примеру с одним прибором, список будущих событий должен состоять максимум из 3-х событий:
прибытие заявки,
завершение обслуживания,
завершение моделирования.
В списке всегда одно событие прихода заявки в соответствии с подходом к их планированию. Событие завершения моделирования тоже всегда в списке, т.к. попало туда при запуске модели. Завершение обслуживания присутствует не всегда, а только, если прибор занят.
2.5 Одновременные события
События одновременны, если они происходят при одном значении модельного времени.
Пусть одновременно завершается обслуживание и поступает заявка.
Тогда выбор ближайшего события неоднозначен, и в моделировании возникают тонкости. Зависимость от порядка обработки событий может повлиять на правильность моделей. В нашем примере можно убедиться, что порядок обработки событий безразличен.
1. Пусть приходит заявка и очередь не пуста. Тогда в любом случае заявка попадает в очередь.
2. Пусть очередь пуста в момент прихода заявки. Тогда:
а) пусть сначала обрабатывается завершение обслуживания. Т.к. очередь пуста, то прибор станет свободным. Когда будет обрабатываться приход заявки - прибор свободен, и заявка попадает на обслуживание;
б) пусть сначала обрабатывается приход заявки. Она попадает в очередь. Затем происходит завершение обслуживания. Далее заявка из очереди попадает на обслуживание. Т.к. все это происходит в один момент модельного времени, то результат тот же самый.
В принципе 1 вариант обработки лучше, т.к. заявка попадает на обслуживание, минуя очередь.
Если задачу видоизменить и отказывать в обслуживании тем заявкам, которые приходят, когда прибор занят, то порядок обработки будет важен.
Управлять этим можно с помощью приоритетов.