Министерство образования и науки
Республики Казахстан
Карагандинский государственный технический университет
КУРСОВАЯ РАБОТА
по дисциплине "Спецкурс информатики”
Тема: "Моделирование на языке GPSS"
2009
Содержание
4. Блоки языка GPSS использованных в программе
5. Назначение блоков программы
7. Элементы стандартного отчета
7.1 Общая информация о результатах работы модели
7.3 Информация об объектах типа “устройство”
7.4 Информация о группах транзактов
Список использованных источников
Процессы функционирования различных систем и сетей связи могут быть представлены той или иной совокупностью систем массового обслуживания (СМО) - стохастических, динамических, дискретно-непрерывных математических моделей. Исследование характеристик таких моделей может проводиться либо аналитическими методами, либо путем имитационного моделирования.
Имитационная модель отображает стохастический процесс смены дискретных состояний СМО в непрерывном времени в форме моделирующего алгоритма. При его реализации на ЭВМ производится накопление статистических данных по тем атрибутам модели, характеристики которых являются предметом исследований. По окончании моделирования накопленная статистика обрабатывается, и результаты моделирования получаются в виде выборочных распределений исследуемых величин или их выборочных моментов. Таким образом, при имитационном моделировании систем массового обслуживания речь всегда идет о статистическом имитационном моделировании.
Сложные функции моделирующего алгоритма могут быть реализованы средствами универсальных языков программирования (Паскаль, Си), что предоставляет неограниченные возможности в разработке, отладке и использовании модели. Однако подобная гибкость приобретается ценой больших усилий, затрачиваемых на разработку и программирование весьма сложных моделирующих алгоритмов, оперирующих со списковыми структурами данных. Альтернативой этому является использование специализированных языков имитационного моделирования.
Специализированные языки имеют средства описания структуры и процесса функционирования моделируемой системы, что значительно облегчает и упрощает программирование имитационных моделей, поскольку основные функции моделирующего алгоритм, а при этом реализуются автоматически. Программы имитационных моделей на специализированных языках моделирования близки к описаниям моделируемых систем на естественном языке, что позволяет конструировать сложные имитационные модели пользователям, не являющимся профессиональными программистами.
Одним из наиболее эффективных и распространенных языков моделирования сложных дискретных систем является в настоящее время язык GPSS (General Purpose Simulation System). Он может быть с наибольшим успехом использован для моделирования систем, формализуемых в виде систем массового обслуживания. В качестве объектов языка используются аналоги таких стандартных компонентов СМО, как заявки, обслуживающие приборы, очереди и т.п. Достаточный набор подобных компонентов позволяет конструировать сложные имитационные модели, сохраняя привычную терминологию СМО.
Язык моделирования дискретных систем GPSS разработан фирмой IBM в начале 70-х годов XX века и является одним из самых распространенных в мире специализированных языков программирования. Система моделирования GPSS/PC (различных версий) является торговой маркой фирмы MINUTEMAN Software. Однако стоит отметить, что GPSS/PC предназначен для работы в операционной системе MS DOS. Поэтому имеются ограничения, которые в ряде случаев не позволяют осуществить разработку и эксплуатацию моделей сложных систем с требуемой степенью детализации. Отмеченных недостатков практически не имеет общецелевая система моделирования GPSS World, также разработанная компанией MINUTEMAN (США), но уже в 1993 году, которая позже так же претерпела некоторые изменения.
GPSS - интегрирующая языковая система, применяющаяся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS называются транзактами и представляют собой элементы потока. Транзакты "создаются" и "уничтожаются". Функцию каждого из них можно представить как движение через модель М с поочерёдным воздействием на её блоки. Функциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что делать дальше. Данные для ЭВМ подготавливаются в виде пакета управляющих и определяющих карт, которым составляется по схеме модели, набранной из стандартных символов. Созданная программа GPSS, работая в режиме интерпретации, генерирует и передаёт транзакты из блока в блок. Каждый переход транзакта приписывается к определенному моменту системного времени.
Для обеспечения надежности АСУ ТП в ней используется две ЭВМ. Первая ЭВМ выполняет обработку данных о технологическом процессе и выработку управляющих сигналов, а вторая находится в «горячем резерве». Данные в ЭВМ поступают через 10 ± 2 с, обрабатываются в течении 3 с. Характеристики обоих ЭВМ одинаковы. Подключение резервной ЭВМ занимает 5 с, после чего она заменяет основную до восстановления, а процесс возвращается к нормальному темпу. Отказы ЭВМ происходят через 300 ± 30 с. Восстановление занимает 100 с. Резервная ЭВМ абсолютно надежна. Смоделировать 1 час работы системы. Определить среднее время нахождения технологического процесса в заторможенном состоянии и среднее число пропущенных из – за отказов данных.
2 Блок-схема
3 Листинг программы:
**************************************
Programm TERM PAPER
**************************************
1 GENERATE 10,2
2 GATE FV MAIN,A2
3 A1 SEIZE MAIN
4 ADVANCE 3
5 RELEASE MAIN
6 TERMINATE
7 A2 ADVANCE 5
8 SEIZE REZ
9 ADVANCE 3
10 RELEASE REZ
11 TERMINATE
12 GENERATE 300,30
13 FUNAVAIL MAIN
14 ADVANCE 100
15 FAVAIL MAIN
16 TERMINATE
17 GENERATE 3600
18 TERMINATE 1
**************************************
4. Блоки языка GPSS использованных в программе
4.1 Блок GENERATE
Блок GENERATE (генерировать) служит для создания транзактов, входящих в модель. Он имеет следующий формат:
имя GENERATE A,B,C,D,E
В поле A задается среднее значение интервала времени между моментами поступления в модель двух последовательных транзактов. Если этот интервал постоянен, то поле B не используется. Если же интервал поступления является случайной величиной, то в поле B указывается модификатор среднего значения, который может быть задан в виде модификатора-интервала или модификатора-функции.
Модификатор-интервал используется, когда интервал поступления транзактов является случайной величиной с равномерным законом распределения вероятностей. В этом случае в поле B может быть задан любой СЧА, кроме ссылки на функцию, а диапазон изменения интервала поступления имеет границы A-B, A+B.
4.2 Блок GATE
Блок GATE (впустить) служит для задержки или изменения маршрута транзактов в зависимости от состояния аппаратных объектов. Блок имеет следующий формат:
имя GATE X A,B
Вспомогательный операнд X содержит код состояния проверяемого аппаратного объекта, а в поле A указывается имя или номер этого объекта. Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующем у блоку. Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, указанному в поле B, а если это поле пусто, то задерживается перед блоком GATE.
Операнд X может принимать следующие значения: U (устройство занято); NU (устройство свободно); I (устройство захвачено); NI (устройство не захвачено); SE (МКУ пусто); SNE (МКУ не пусто); SF (МКУ заполнено); SNF (МКУ не заполнено); LS ( ЛП включен), LR (ЛП выключен), FNV (ОКУ недоступно), FV (ОКУ доступно).
4.3 Блоки SEIZE и RELEASE
Для моделирования ограниченных ресурсов СМО в модели должны присутствовать аппаратные объекты: одноканальные или многоканальные устройства. Одноканальные устройства создаются в текущей модели при использовании блоков SEIZE (занять) и RELEASE (освободить), имеющих следующий формат:
имя SEIZE A
имя RELEASE A
В поле A указывается номер или имя устройства. Если транзакт входит в блок SEIZE, то устройство, указанное в поле A, становится занятым и остаётся в этом состоянии до тех пор, пока этот же транзакт не пройдёт соответствующий блок RELEASE, освобождая устройство. Если устройство, указанное в поле A блока SEIZE, уже занято каким-либо транзактом, то никакой другой транзакт не может войти в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные (заблокированные) перед блоком SEIZE, остаются в списке текущих событий и при освобождении устройства обрабатываются с учетом приоритетов и очередности поступления. Каждое устройство имеет следующие СЧА: F - состояние устройства (0 - свободно,1 - занято); FR - коэффициент использования в долях 1000; FC - число занятий устройства; FT - целая часть среднего времени занятия устройства.
4.4 Блок ADVANCE
Для задержки транзактов на определенный отрезок модельного времени, служит блок ADVANCE (задержать), имеющий следующий формат: