Интервал моделирования отрезок времени работы компьютера

Цели
лабораторной работы:

  1. Изучить
    основные возможности среды
    GPSS/World
    для моделирования систем.

  2. Получить
    практические навыки моделирования
    простейших систем средствами
    инструментальной среды
    GPSS.

Задача.
К
компьютеру на обработку поступают
задания. Из предварительного обследования
получена информация, что интервал
времени между двумя последовательными
поступлениями заданий к компьютеру
подчиняется равномерному закону
распределения в интервале (1-11 мин.).
Перед компьютером допустима очередь
заданий, длина которой не ограничена.
Время выполнения задания также равномерно
распределено в интервале (1-19 мин.).
Смоделировать обработку 100 заданий.

В
среде GPSS
программа, моделирующая работу
вычислительной системы, выглядит
следующим образом:

GENERATE
360,300

SEIZE
В

ADVANCE
600,540 RELEASE В
TERMINATE 1 START 100

Единица
модельного времени задана 1 секунда.

Так
как время среднее время обработки
задания больше, чем среднее время
поступления задания, в вычислительной
системе будет накапливаться очередь с
течением времени. Для сбора статистики
об очереди используются операторы
QUEUE,
DEPART.
В этом случае программа выглядит
следующим образом:

GENERATE
360,300 QUEUE BR SEIZE В
DEPART BR ADVANCE 600,540 RELEASE В
TERMINATE 1 START 100

Наберите
эту программу в среде GPSS/World.

Студенческая
версия GPSS/World
не требует установки. Для запуска
программы достаточно запустить на
выполнение файл GPSSW.exe.
После этого откроется среда моделирования
GPSS/World.
Далее необходимо выбрать пункт меню
File/Open
и в открывшемся диалоговом окне «Новый
документ» — Создать Model.
В результате будет открыто окно Untitled
Model
1, в котором необходимо набрать текст
программы.

Файл
с программой можно сохранить в файле с
расширением .gps
(пункты меню File/Save;
File/Save
As).

Для
запуска программы на выполнение
необходимо выбрать пункт меню
Command/Create
Simulation.

В
результате выполнения программы
моделирования работы вычислительной
системы
GPSS
выдаст отчет:

Основные
обозначения:

START
TIME
— время начала моделирования

END
TIME
— время окончания моделирования

BLOCKS
— количество блоков, используемых в
программе FACILITIES
— количество устройств

STORAGES
— количество многоканальных устройств,
для которых определяется емкость
накопителя

Далее
приводится информация о блоках:

LOC
— номер блока, назначенный системой

BLOCK
TYPE
— название блока

ENTRY
COUNT
— количество транзактов, прошедших через
блок за время моделирования CURRENT
COUNT
— количество транзактов, задержанных в
блоке на момент конца моделирования

RETRY
— количество транзактов, ожидающих
специальных условий для прохождения
через данный блок

Отчет
о работе устройства
FACILITY
— название устройства

ENTRIES
— количество транзактов, прошедших через
устройство

UTIL.
— вероятность загрузки устройства (часть
периода моделирования, когда устройство
было свободно)

AVE.
TIME
— среднее время обработки одного транзакта
устройством

AVAIL.
— состояние готовности устройства на
момент конца моделирования (1 -готово к
обслуживанию
очередной заявки; 0 — не готово)

OWNER
— номер последнего транзакта занимающего
устройство (если не занималось, то
значение 0)

PEND
— количество транзактов, ожидающих
устройство, и находящихся в режиме
прерывания

INTER
— количество транзактов, прерывающих
устройство в данный момент

RETRY
— количество транзактов, ожидающих
специальных условий, зависящих от
состояния
объекта типа «устройство»

DELAY
— определяет количество транзактов,
ожидающих занятия или освобождения
устройства

Статистика
об очередях:

QUEUE
— имя очереди

МАХ
— максимальная длина очереди

CONT.
— текущая длина очереди

ENTRY
— общее количество входов

ENTRY(O)-
количество «нулевых» входов AVE.CONT.
— средняя длина очереди

AVE.TIME
— среднее время пребывания транзактов
в очереди

AVE.(-O)
— среднее время пребывания в очереди
без учета «нулевых» входов

RETRY
— количество транзактов, ожидающих
специальных условий

Информация
о списке текущих событий

СЕС
(Current
Events Chain)

XN
— номер
транзакта

PRI
— приоритет транзакта (по умолчанию — 0)

Ml
— время пребывания транзакта в системе
с момента начал моделирования

ASSEM
— номер семейства транзактов

CURRENT
— номер блока в котором находится транзакт

NEXT
— номер блока в который перейдет транзакт
далее

PARAMETER
— номер или имя параметра транзакта

VALUE
— значение параметра

Информация
о списке будущих событий

FEC
(Future Events Chain)

XN
— номер транзакта

PRI
— приоритет транзакта

BDT
— таблица модельных событий — абсолютное
модельное время выхода транзакта из
списка будущих событий (и перехода
транзакта в список текущих событий)

ASSEM
— номер семейства транзактов

CURRENT
— номер блока в котором находится транзакт
(0 — если транзакт не вошел в модель)

NEXT
— номер блока в который перейдет транзакт
далее PARAMETER
— номер или имя параметра транзакта

VALUE
— значение, параметра

Приведем
основные операторы, которые используются
в программе.

1.
Для создания транзактов (заявок), входящих
в модель, служит блок
GENERATE
(генерировать),
имеющий следующий формат:

GENERATE
A,B,C,D,E

В
поле
А
задается среднее значение интервала
времени между моментами поступления в
модель двух последовательных транзактов.
Если этот интервал постоянен, то поле
В
не
используетоя. Если же интервал поступления
является случайной величиной, то в поле
В
указывается
модификатор среднего значения, который
может быть задан в виде модификатора-интервала
или модификатора-функции.

Модификатор-интервал
используется, когда интервал поступления
транзактов является случайной величиной
с равномерным законом распределения
вероятностей. В
этом
случае в поле
В
может
быть задан любой СЧА, кроме ссылки на
функцию, а диапазон изменения интервала
поступления имеет границы А-В,
А+В.

Например,
блок

GENERATE
100,40

создает
транзакты через случайные интервалы
времени, равномерно распределенные на
отрезке [60; 140].

Модификатор-функция
используется, если закон распределения
интервала поступления отличен от
равномерного. В
этом
случае в поле
В
должна
быть записана ссылка на функцию (ее
СЧА), описывающую этот закон, и случайный
интервал поступления определяется, как
целая часть произведения поля
А
(среднего значения) на вычисленное
значение функции.

В
поле С
задается
момент поступления в модель первого
транзакта. Если это поле пусто или равно
0, то момент появления первого транзакта
определяется операндами А и В.

Поле
D
задает
общее число транзактов, которое должно
быть создано блоком GENERATE.
Если
это поле пусто, то блок генерирует
неограниченное число транзактов до
завершения моделирования.

В
поле Е
задается
приоритет, присваиваемый генерируемым
транзактам. Число уровней приоритетов
неограниченно, причем самый низкий
приоритет — нулевой. Если поле Е пусто,
то генерируемые транзакты имеют нулевой
приоритет.

Транзакты
имеют ряд стандартных числовых атрибутов.
Например, СЧА с названием PR
позволяет ссылаться на приоритет
транзакта. СЧА с названием Ml
содержит так называемое резидентное
время транзакта, т.е. время, прошедшее
с момента входа транзакта в модель через
блок GENERATE.
СЧА
с названием XN1
содержит внутренний номер транзакта,
который является уникальным и позволяет
всегда отличить один транзакт от другого.
В
отличие
от СЧА других объектов, СЧА транзактов
не содержат ссылки на имя или номер
транзакта. Ссылка на СЧА транзакта
всегда относится к активному транзакту,
т.е. транзакту, обрабатываемому в данный
момент симулятором.

Задания
для самостоятельной работы:

GENERATE
360,300

SEIZE
В

ADVANCE
600,540 RELEASE В
TERMINATE
1 START 100

Внесите
изменения в программу, моделирующую
работу вычислительного центра. Запустите
и отладьте новые варианты программы.

  1. К
    компьютеру на обработку поступают 14
    заданий, интервал поступления заданий
    распределен по равномерному закону в
    диапазоне 3-11 мин.

  2. К
    компьютеру на обработку в нулевой
    момент времени поступают 5 заданий с
    уровнем приоритета равным 25.

  3. Задания
    поступают на обработку к компьютеру
    каждые 4-14 мин. Первое задание поступает
    на 20 минуте. Измените единицу модельного
    времени на 0,1 минуту.

Как
изменились характеристики работы
моделируемой системы в результате
внесенных изменений?

2.
Для удаления транзактов из модели
служит
блок
TERMINATE
(завершить),
имеющий следующий формат: TERMINATE
А

Значение
поля
А
указывает,
на сколько единиц уменьшается содержимое
так называемого счетчика завершений
при входе транзакта в данный блок
TERMINATE.
Если поле
А
не
определено, то оно считается равным 0,
и транзакты, проходящие через такой
блок, не уменьшают содержимого счетчика
завершений.

Начальное
значение счетчика завершений
устанавливается
управляющим оператором
START
(начать),
предназначенным для запуска прогона
модели. Поле
А
этого
оператора содержит начальное значение
счетчика завершений. Прогон модели
заканчивается, когда содержимое счетчика
завершений обращается в 0. Таким образом,
в модели должен быть хотя бы один блок
TERMINATE
с непустым полем
А,
иначе
процесс моделирования никогда не
завершится.

Текущее
значение счетчика завершений
доступно
программисту через системный
СЧА
TG1.

Участок
блок-схемы модели, связанный с парой
блоков GENERATETERMINATE,
называется
сегментом.
Простые
модели могут состоять из одного сегмента,
в сложных моделях может быть несколько
сегментов.

Например,
простейший сегмент модели, состоящий
всего из двух блоков GENERATE
и
TERMINATE
и
в совокупности с управляющим оператором
START
моделирует
процесс создания случайного потока
транзактов
,
поступающих в модель со средним интервалом
в 100 единиц модельного времени, и
уничтожения этих транзактов. Начальное
значение счетчика завершений равно
1000. Каждый транзакт, проходящий через
блок
TERMINATE,
вычитает
из счетчика единицу, и таким образом
моделирование завершится, когда тысячный
по счету транзакт войдет в блок
TERMINATE.
При
этом точное значение таймера в момент
завершения прогона непредсказуемо.
Следовательно, в приведенном примере
продолжительность прогона устанавливается
не по модельному времени, а по количеству
транзактов, прошедших через модель.

GENERATE
100,40
TERMINATE
1
START
1000

Если
необходимо управлять продолжительностью
прогона по модельному времени, то в
модели используется специальный сегмент,
называемый сегментом таймера.

GENERATE
100,40 TERMINATE GENERATE 100000 TERMINATE 1 START 1

Например,
в модели из двух сегментов, первый
(основной) сегмент выполняет те же
функции, что и в предыдущем примере.
Заметим, однако, что поле
А блока
TERMINATE
в
первом сегменте пусто, т.е. уничтожаемые
транзакты не уменьшают содержимого
счетчика завершений. Во втором сегменте
блок
GENERATE
создаст
первый транзакт в момент модельного
времени, равный 100000. Но этот транзакт
окажется и последним в данном сегменте,
так как, войдя в блок
TERMINATE,
он
обратит в 0 содержимое счетчика завершений,
установленное оператором
START
равным
1. Таким образом, в

этой
модели гарантируется завершение прогона
в определенный момент модельного
времени, а точное количество транзактов,
прошедших через модель, непредсказуемо.

В
приведенных примерах транзакты, входящие
в модель через блок GENERATE,
в тот же момент модельного времени
уничтожались в блоке TERMINATE.

Замечание:
Не
путайте ограничитель транзактов в блоке
GENERATE
и счетчик завершения. Ограничитель
задает число транзактов, которые войдут
в модель, а счетчик -число транзактов,
которые выйдут из модели. По окончании
моделирования транзакты могут оставаться
в модели.

Задания
для самостоятельной работы:

Внесите
изменения в программу, моделирующую
работу вычислительного центра. Запустите
и отладьте новые варианты программы.

  1. Моделирование
    заканчивается после того, как через
    модель пройдут
    300
    транзактов
    (заданий), транзакты должны поступать
    в модель каждые
    1-11
    минут.

  2. Задайте
    время моделирования работы системы
    8
    часов,
    единица модельного времени
    1
    секунда.

Как
изменились характеристики работы
моделируемой системы в результате
внесенных изменений?

  1. Моделирование
    одноканальных устройств

Устройства
используются при моделировании систем
для имитации работы оборудования
единичной емкости, например, процессор,
канал передачи данных, человек, компьютер.
Устройство в любой момент времени может
обрабатывать только одно сообщение
(транзакт). Если в процесс обслуживания
появляется новый транзакт, то он должен:

  • либо
    подождать своей очереди;

  • либо
    направиться в другое место;

  • либо
    прервать обслуживание текущего
    сообщения.

Для
использования одноканального устройства
транзакту необходимо выполнить следующие
шаги.

  1. ждать
    очереди, если необходимо;

  2. когда
    подходит очередь занять устройство;

  3. устройство
    находится в состоянии занятости, пока
    не закончится обслуживание, для
    обслуживания необходим некоторый
    интервал времени;

4. когда
обслуживание закончится, освободить
устройство.
Второй и четвертый шаги
реализуются блоками SEIZE
и RELEASE.

Блок
SEIZE
имеет следующий формат:

SEIZE
А

Свободный
блок SEIZE
позволяет вошедшему в него сообщению
занять указанное устройство. Блок SEIZE
задерживает сообщение, если устройство
занято или находится в состоянии
недоступности.

В
поле А задается номер (имя) занимаемого
устройства. Сообщение, занявшее
устройство, затем пытается перейти к
следующему по номеру блоку. Устройство
остается занятым до тех пор, пока
занимающее его сообщение не войдет в
соответствующий блок RELEASE.
Прежде чем освободить устройство,
сообщение может пройти через неограниченное
число блоков. Блок RELEASE
имеет следующий формат:

RELEASE
А

Блок
RELEASE
предназначен для освобождения устройства
тем сообщением, которым В поле А задается
номер (имя) освобождаемого устройства.

Транзакты
обслуживаются устройствами в течение
некоторого промежутка времени. Для
моделирования такого обслуживания,
т.е. для задержки транзактов на определенный
отрезок модельного времени (реализация
шага 3), служит блок
ADVANCE
(задержать),
имеющий следующий формат:

ADVANCE
А

Операнды
в полях
А
и В
имеют
тот же смысл, что и в соответствующих
полях блока GENERATE.
Следует отметить, что транзакты,
входящие в блок
ADVANCE,
переводятся
из списка текущих событий в список
будущих событий, а по истечении
вычисленного времени задержки возвращаются
назад, в список текущих событий, и их
продвижение по блок-схеме продолжается.

Если вычисленное время задержки равно
0, то транзакт в тот же момент модельного
времени переходит в следующий блок,
оставаясь в списке текущих событий.

Например,
транзакты, поступающие в модель из блока
GENERATE
через
случайные интервалы времени, имеющие
равномерное распределение на отрезке
[60; 140], попадают в блок
SEIZE
и
занимают устройство с номером 1. Далее
в блоке ADVANCE
определяется
случайное время задержки транзакта,
имеющее равномерное распределение на
отрезке [30; 130], и транзакт переводится
в список будущих событий. По истечении
времени задержки транзакт возвращается
в список текущих событий и входит в блок
RELEASE
и
освобождает устройство 1. Заметим, что
в списке будущих событий, а значит и в
блоке
ADVANCE
может
одновременно находиться произвольное
количество транзактов.

GENERATE
100,40

SEIZE
1

ADVANCE
80,50

RELEASE
1

В
рассмотренных выше примерах случайные
интервалы времени подчинялись равномерному
закону распределения вероятностей. Для
получения случайных величин с другими
распределениями в GPSS
используются вычислительные объекты:
переменные и функции.

Задания
для самостоятельной работы:

  • Приведите
    фрагмент программы, который моделирует
    обработку детали на станке. Название
    устройства —

    MACHINE,

    время обработки — 10 ед. модельного
    времени.

  • Напишите
    сегмент программы, который описывает
    процесс шлифования изделия. Шлифование
    занимает 3-5 минут, в каждый момент
    времени может обрабатываться только
    одно изделие. Единица модельного времени
    — 1 секунда.

УДК 004.054

МЕТОДЫ ИЗМЕРЕНИЯ ВРЕМЕНИ РАБОТЫ ПРОГРАММЫ

Лохматов Степан Юрьевич1, Светлов Сергей Викторович2, Калач Геннадий Петрович3
1Московский технологический университет, студент 4 курса
2Московский технологический университет, студент 4 курса
3Московский технологический университет, кандидат военных наук, доцент военной кафедры

Аннотация
Данная статья посвящена обзору и описанию некоторых методов измерения времени работы программ. Произведено тестирование таймеров.

Ключевые слова: clock_get_time, rdtsc, методы измерения, программа


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Лохматов С.Ю., Светлов С.В., Калач Г.П. Методы измерения времени работы программы // Современные научные исследования и инновации. 2017. № 5 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2017/05/83188 (дата обращения: 25.02.2023).

Методология и способы измерений

Одним из главных способов проверки характеристик программного и аппаратного обеспечения касательно быстродействия является измерение времени прикладной программы или ее составных частей.

Подобная проверка целесообразна для нахождения мест в программе или ее алгоритме, которым необходима оптимизация, а также помогает судить о реальных производительных качествах компьютера. На время работы программы влияют различные факторы: характеристики программы, ОС компьютера, работающие процессы и пр.

Для выявления интересующих характеристик существуют некоторые приемы, которые позволяют снизить воздействие нежелательных факторов. Время выполнения тестируемой программы определяется по показаниям таймера (в начале выполнения и после завершения программы). Стоит отметить, что замер времени всегда происходит с некоторой погрешностью.

Теперь подробно рассмотрим способы снижения влияния подобных нежелательных факторов.

  1. Многократное измерение. Время выполнения программы измеряется несколько раз. Обычно, из-за влияния сторонних факторов, измерения отличаются, а время работы самой программы не изменяется. Наиболее точным из всех полученных измерений будет являться минимальное значение.

  2. Исключение из измерения стадий инициализации и завершения. Если необходимо измерить время выполнения некоторой части кода, то будет рационально вынести весь код, предшествующий вызову этой части, за первый замер времени, а следующий замер провести сразу после завершения работы программы.

  3. Снижение влияния кода функции измерения времени. Код снятия показаний таймера выполняется не мгновенно, т.е. в измеряемый интервал времени частично попадает и время его исполнения, такое влияние следует уменьшить. Для этого достаточно снимать временные показания в начале и в конце работы измеряемого фрагмента, а не постоянно. А также следить за тем, чтобы время работы функции, измеряющей время, было меньше измеряемого интервала.

  4. Снижение влияния посторонних процессов. Часто процессор загружен другими процессами. В таких случаях рационально использовать таймер времени выполнения процесса.

В данной работе выбран метод многократного измерения. ВС имеет несколько различных таймеров, которые отражают течение времени с разных аспектов. Следует различать следующие таймеры:

1) Таймер системного времени – аппаратный счетчик, отражающий течение времени с позиции ВС. Совпадает с реальным временем. Системное время одинаково для всех работающих на компьютере программ. Значение временного интервала, который измерен таким таймером, включает в себя кроме времени выполнения процесса замера еще и другие процессы. Функции для получения системного времени:

  • ОС Windows: time(); GetTickCount(); GetSystemTime(); clock() (системное время, которое прошло с запуска процесса).

  • ОС Linux: clock_gettime(); time(); times(); gettimeofday().

2) Счетчик тактов процессора – аппаратный счетчик, величина которого возрастает на каждом такте процессора. Позволяет с наибольшей точностью замерять малые промежутки времени. Данный счетчик стоит использовать для измерения интервалов времени, которые меньше кванта времени, выделенного процессу ОС. Специальные команды процессора для получения значения счетчика тактов:

  • Alpha: rpcc;

  • PowerPC: mftbu, mftb;

  • x86/x86-64: rdtsc;

  • Itanium: ar.itc.

Библиотечная функция clock_gettime

Для получения значения системного таймера в ОС Linux/UNIX используется библиотечная функция clock_gettime. Данная функция с параметром CLOCK_MONOTONIC_RAW записывает значение системного таймера в структуру struct timespec, которая состоит из двух полей – tv_sec и tv_nsec, задающих значение секунд и наносекунд, прошедших с некоторого момента времени. В примере записывается значение таймера перед выполнением фрагмента кода и после него. Разница показаний в секундах выводится на экран. Кроме того, функция дает возможность получать значения и с других таймеров.

Листинг 1: clock_gettime

Точность: Обычно в ОС Windows составляет 55 мс (55 10−3 с), в ОС GNU Linux/UNIX – 1 нс (1 10−9 с).

Достоинство: является переносимой, т.е. функция доступна пользователю независимо от аппаратного обеспечения.

Недостатки: сравнительно низкая точность, и измеренный интервал включает время выполнения и других процессов, работавших в измеряемый период.

Машинная команда rdtsc

Машинная команда rdtsc (Read Time Stamp Counter) берет показания счетчика тактов в виде 64-разрядного беззнакового целого числа, которое равно количеству тактов, прошедших с момента запуска процессора. Делением количества тактов на тактовую частоту процессора получается время в секундах. В этом примере используется ассемблерная вставка команды процессора rdtsc, результат выполнения который записывается в объединение (union) ticks.

Разница данных счётчика тактов преобразовывается в секунды в зависимости от тактовой частоты.

Листинг 2: rdtsc

Точность: один такт.

Достоинство: максимально точность измерения времени.

Недостатки: привязка к архитектуре x86. Затруднительно преобразование в секунды в процессорах с динамическим изменением частоты.

Тестирование

Тестирование данных таймеров было произведено на алгоритме, представляющим из себя сложение двух чисел, повторяющееся 1000000 раз. Для уменьшения влияния посторонних факторов на результаты, измерения будет проведены 100 раз.

Эксперименты проводились на персональной ЭВМ с процессором Intel Core i3-2625M CPU с тактовой частотой 1.3 ГГц. Полученные результаты изображены на графике.

Библиографический список

  1. Supercomputer Software Department, Institute of Computational Mathematics and Mathematics Geophysics “Определение времени работы прикладных программ” http://ssd.sscc.ru/sites/default/les/content/attach/310/computerlab1.pdf


Количество просмотров публикации: Please wait

Все статьи автора «Лохматов Степан Юрьевич»

1.7.1
Управление модельным временем

При разработке практически любой
имитационной модели и пла­нировании проведения модельных экспериментов
необходимо соотносить между собой три представления времени:

• реальное время, в котором происходит функционирование имитируемой
системы;

• модельное (или, как его еще называют, системное) время, в масштабе которо­го
организуется работа модели;

• машинное время, отражающее затраты времени ЭВМ на проведение ими­тации.

С помощью механизма модельного
времени решаются следующие задачи:

1) отображается переход моделируемой системы из
одного состояния в другое;

2) производится синхронизация работы компонент
модели;

3) изменяется масштаб времени «жизни» (функционирования) исследуемой
системы;

4) производится управление ходом модельного
эксперимента;

5) моделируется квазипараллельная
реализация событий в модели.

Необходимость решения
последней задачи связана с тем, что в распоряжении исследователя находится, как
правило, однопроцессорная вычислительная систе­ма, а модель может содержать
значительно большее число одновременно работаю­щих подсистем. Поэтому
действительно параллельная (одновременная) реализа­ция всех компонент модели
невозможна. Даже если используется так называемая распределенная модель,
реализуемая на нескольких узлах вычислительной сети, совсем необязательно число
узлов будет совпадать с числом одновременно рабо­тающих компонент модели.

Существуют два метода реализации
механизма модельного времени — с постоянным шагом и по особым состояниям.

Выбор метода реализации
механизма модельного времени зависит от назначе­ния модели, ее сложности,
характера исследуемых процессов, требуемой точности результатов и т. д.

При использовании метода постоянного
шага
отсчет системного времени ве­дется через фиксированные, выбранные
исследователем интервалы времени. Со­бытия в модели считаются наступившими в
момент окончания этого интервала. Погрешность в измерении временных
характеристик системы в этом случае зави­сит от величины шага моделирования . Метод постоянного
шага предпочтительнее, если:

• события появляются регулярно, их распределение
во времени достаточно рав­номерно;

• число событий велико и моменты их появления
близки;

• невозможно заранее определить моменты появления
событий.

Данный метод управления
модельным временем достаточно просто реализовать в том случае, когда условия
появления событий всех типов в модели можно пред­ставить как функцию времени.

В общем виде алгоритм
моделирования с постоянным шагом представлен на рис. 1.8 ( — текущее значение
модельного времени,  —
интервал моделиро­вания).

Выбор величины шага моделирования является нелегким и очень важным делом.
Универсальной методики решения этой проблемы не су­ществует, но во многих
случаях можно использовать один из следующих под­ходов:

• принимать величину шага равной средней
интенсивности возникновения со­бытий различных типов;

• выбирать величину Dt равной среднему интервалу между наиболее частыми
(или наиболее важными) событиями.

При моделировании по
особым состояниям
системное время каждый раз из­меняется на величину,
строго соответствующую интервалу времени до момента наступления очередного
события. В этом случае события обрабатываются в поряд­ке их наступления, а
одновременно наступившими считаются только те, которые являются одновременными
в действительности.

Метод моделирования по особым
состояниям сложнее в реализации, так как для него требуется разработка
специальной процедуры планирования событий (так называемого календаря событий).

Моделирование по особым состояниям целесообразно
использовать, если:

• события распределяются во времени неравномерно
или интервалы между ними велики;

• предъявляются повышенные требования к точности
определения взаим-ного положения событий во времени;

• необходимо реализовать квазипараллельную
обработку одновременных событии.

Дополнительное достоинство
метода заключается в том, что он позволяет эко­номить машинное время, особенно
при моделировании систем периодического дей­ствия, в которых события длительное
время могут не наступать.

Обобщенная схема алгоритма
моделирования по особым состояниям представ­лена на рис. 1.9 (— прогнозируемый момент
наступления -го
события.

Моделирование любой системы начинается с моделирования ее структуры.

Структура системы — это описание ее элементов и связей между ними.

Описание связей между элементами системы может быть представлено в разных формах, в зависимости от типа решаемой задачи.

В простых случаях для описания связей между элементами системы достаточно использовать графическую схему (пример 6.11).

В логических задачах, которые мы рассматривали в 9-м классе, структура системы объектов описывалась в виде таблиц «объект-объект» или «объект-свойство» (пример 6.12).

Если состояние каждого элемента системы можно задать значениями некоторых переменных или функций, то связи между элементами имеют вид математических выражений или уравнений (пример 6.13).

Математические выражения и уравнения, отражающие связи между элементами системы, составляют документальную математическую модель системы.

Математическая модель называется динамической, если она учитывает изменение времени (пример 6.14).

Динамические математические модели систем, как правило, включают сложные урав­нения. Найти точное решение таких уравнений в виде формул практически невозможно.

Ученые предложили в таких случаях находить не формулы, а таблицы приближенных значений искомых функций (численные решения) (пример 6.15).

Для построения численного решения сначала выбирается численный метод, а затем программное средство для его реализации. Следует помнить, что в разных программных средствах один и тот же численный метод может иметь совершенно различные реализации (пример 6.16).

Далее строится документальная расчетная модель, в которой формулы численного метода записываются в форме, подходящей программному средству.

Документальная расчетная модель системы реализуется на компьютере как компьютерная расчетная модель.

Таким образом, при построении динамических моделей систем обычно создаются:

  • документальная математическая модель;
  • документальная расчетная модель;
  • компьютерная расчетная модель.

Пример 6.11.  Если элементы системы являются ее составными частями, то структура системы описывается простой графической схемой, как в случае структуры дизайна рекламы.

Пример 6.12. Вспомним задачу о трех музыкантах и шести музыкальных инструментах, которыми они владеют. Для решения использовалась таблица «объект-объект» вида:

Пример 6.13. В задаче выбора положения железнодорожной станции положение каждого населенного пункта и станции задавалось парой координат на координатной плоскости. Связь между элементами была представлена как сумма расстояний от станции до населенных пунктов.

Пример 6.14. При решении задачи полета тела, брошенного под углом к горизонту, была построена математическая модель, в которой координаты тела x(t) и y(t) зависели от времени t. Таким образом, в задаче была построена динамическая модель.

Пример 6.15. Для нахождения численных решений сложных уравнений разработаны методы, которые называют численными.

Численные методы позволяют получать приближенные численные значения искомых функций, которые незначительно отличаются от точных значений.

Пример 6.16. Рассмотрим задачу построения графика заданной функции.

В электронных таблицах сначала нужно строить расчетную таблицу с формулами в ее первой и второй строках. Переменными в формулах являются имена ячеек. Затем надо заполнить таблицу вниз формулами и построить диаграмму.

В программе на языке програм­мирования подход совершенно другой. Сначала следует организовать цикл по числу значений переменной, а затем в этом цикле вычислять координаты точек графика и выводить их в графическое окно, соединяя между собой отрезками прямых линий.

Понравилась статья? Поделить с друзьями:
  • Информационное письмо с угловым расположением реквизитов
  • Информационные системы управления бизнесом тест синергия
  • Каждый вид документа имеет определенный набор реквизитов
  • Информационные технологии визуализации бизнес информации
  • Как администрация может повлиять на управляющую компанию