рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

Моделирование на языке GPSS

23

Министерство образования и науки

Республики Казахстан

Карагандинский государственный технический университет

КУРСОВАЯ РАБОТА

по дисциплине "Спецкурс информатики”

Тема: "Моделирование на языке GPSS"

2009

Содержание

  • Введение
    • 1. Задание
    • 2. Блок-схема:
    • 3. Листинг программы:
    • 4. Блоки языка GPSS использованных в программе
    • 4.1 Блок GENERATE
    • 4.2 Блок GATE
    • 4.3 Блоки SEIZE и RELEASE
    • 4.4 Блок ADVANCE
    • 4.5 Блок TERMINATE
    • 4.6 Блок FUNAVAIL
    • 4.7 Блок FAVAIL
    • 5. Назначение блоков программы
    • 6. Стандартный отчет GPSS/PC
    • 7. Элементы стандартного отчета
    • 7.1 Общая информация о результатах работы модели
    • 7.2 Информация о блоках
    • 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, работая в режиме интерпретации, генерирует и передаёт транзакты из блока в блок. Каждый переход транзакта приписывается к определенному моменту системного времени.

1 Задание

Для обеспечения надежности АСУ ТП в ней используется две ЭВМ. Первая ЭВМ выполняет обработку данных о технологическом процессе и выработку управляющих сигналов, а вторая находится в «горячем резерве». Данные в ЭВМ поступают через 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 (задержать), имеющий следующий формат:

имя ADVANCE A,B

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

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

4.5 Блок TERMINATE

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

имя TERMINATE A

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

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

4.6 Блок FUNAVAIL

Блоком FUNAVAIL (символом F обозначает ОКУ, UNAVAIL - недоступный) моделируется недоступность ОКУ. При использовании этого блока статистика ОКУ не искажается. Форма блока:

FUNAVAIL A, B, C, D, E, F, G, H

Блок делает недоступным ОКУ с именем или номером, указываемым операндом A.

Все транзакты, обрабатываемые блоком FUNAVAIL, разделяются на три класса, которые и определяют назначение операндов:

ь транзакт, занимающий ОКУ (по SEIZE или PREEMPT) в момент перевода его в недоступное состояние (операнды B, C, D);

ь ранее прерванные транзакты, находящиеся в списке прерываний (операнды E, F);

ь транзакты, находящиеся в списке отложенных прерываний и в списке задержки ОКУ (операнды G, Н). Операндом В задаются режимы обработки транзакта, занимающего ОКУ в момент перевода его в недоступное состояние:

ь СО - режим продолжения: продолжить обработку занимающего ОКУ транзакта во время недоступности;

ь RE - режим удаления: удалить и направить занимающий ОКУ транзакт к блоку, метка которого должна быть указана операндом С;

ь по умолчанию - прервать обработку и поместить в список прерываний ОКУ, после восстановления доступности этот транзакт может занять ОКУ и «дообслужиться».

Операнд С - метка блока, в который будет направлен в режиме удаления транзакт, занимавший ОКУ в момент перевода его в недоступное состояние.

Операнд D - номер или имя параметра транзакта, занимавшего ОКУ в момент перевода его в недоступное состояние; если он будет удален (режим RE), т. е. исключен из СБС, в этот параметр будет записано время, оставшееся удаленному транзакту до конца обслуживания.

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

ь СО - режим продолжения: продолжить работу ОКУ во время недоступности - обслуживать транзакты из списка прерываний;

ь RE - режим удаления: удалить и направить транзакты из списка прерываний к новому блоку, метка которого должна быть указана операндом F;

ь по умолчанию - оставить ранее прерванные транзакты в списке прерываний ОКУ и запретить им занимать его во время недоступности.

Операнд F указывает метку блока, к которому будут направлены транзакты из списка прерываний ОКУ, вследствие чего они не могут находиться в СБС, поэтому для них нет возможности занесения в их параметры времени, оставшегося до конца обслуживания.

Операнд F может использоваться и тогда, когда отсутствует операнд Е (по умолчанию). В этом случае для перемещенных к новому блоку транзактов прерывание обслуживания сохраняется.

Операндом G задаются режимы обработки транзактов, находящихся к моменту перевода ОКУ в недоступное состояние в списке отложенных прерываний, т. е. ожидающих выполнения с прерыванием, и в списке задержки:

ь СО - режим продолжения: продолжить работу ОКУ во время недоступности - обслуживать транзакты из списка отложенных прерываний и списка задержки;

ь RE - режим удаления: удалить и направить транзакты из списка отложенных прерываний и списка задержки к новому блоку, метка которого долж-на быть указана операндом Н

ь по умолчанию - оставить транзакты в списке отложенных прерываний и списке задержки ОКУ и запретить им занимать его во время недоступности. Операндом Н указывается метка нового блока, к которому в режиме удаления (RE) направляются транзакты из списка отложенных прерываний и списка задержки. Когда операнд G не используется, нельзя использовать и операнд Н.

4.7 Блок FAVAIL

Блок FAVAIL изменяет состояние ОКУ на доступное, т. е. восстанавливает обычный режим вхождения транзактов в ОКУ. Блок имеет следующий формат:

FAVAIL А

Операнд A - имя или номер ОКУ.

Все транзакты, ожидающие доступного состояния ОКУ, указанного операндом А, активизируются и могут попытаться занять его.

5. Назначение блоков программы

Строка

Комментарий

1

Генератор данных, которые поступают каждые 10 2 с

2

Проверка доступности основной ЭВМ, если доступна, то переход в следующий блок, если не доступна, то переход в блок с меткой А2

3

Занятие основной ЭВМ

4

Имитация обработки данных в основной ЭВМ за 3 с

5

Освобождение основной ЭВМ

6

Вывод транзакта из модели

7

Имитация включения резервной ЭВМ за 5 с

8

Занятие резервной ЭВМ

9

Имитация обработки данных в резервной ЭВМ за 3 с

10

Освобождение резервной ЭВМ

11

Вывод транзакта из модели

12

Генератор сбоя основной ЭВМ

13

Выход из строя основной ЭВМ

14

Имитация восстановления основной ЭВМ за 100 с

15

Возвращение основной ЭВМ в строй

16

Удаление транзакта имитирующего сбой основной ЭВМ

17 - 18

Генерация времени моделирования

6. Стандартный отчет GPSS/PC

GPSS/PC Report file REPKURS.GPS. (V 2, # 38123) 12-08-2006 00:11:22 page 1

START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY

0 3600 18 2 0 312960

LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY

1 1 GENERATE 363 0 0

2 2 GATE 363 0 0

3 A1 3 SEIZE 249 0 0

4 4 ADVANCE 249 0 0

5 5 RELEASE 249 0 0

6 6 TERMINATE 249 0 0

7 A2 7 ADVANCE 114 1 0

8 8 SEIZE 113 0 0

9 9 ADVANCE 113 0 0

10 10 RELEASE 113 0 0

11 11 TERMINATE 113 0 0

12 12 GENERATE 12 0 0

13 13 FUNAVAIL 12 0 0

14 14 ADVANCE 12 1 0

15 15 FAVAIL 11 0 0

16 16 TERMINATE 11 0 0

17 17 GENERATE 1 0 0

18 18 TERMINATE 1 0 0

FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY

MAIN 249 0.300 3.00 0 0 0 0 0 0

REZ 113 0.094 3.00 1 0 0 0 0 0

XACT_GROUP GROUP_SIZE RETRY

POSITION 0 0

7. Элементы стандартного отчета

Строка заголовка стандартного отчета содержит имя файла модели, который создал отчет. Также в нее включена дата и время прогона модели.

7.1 Общая информация о результатах работы модели

START_TIME - начальное время. Абсолютное модельное время в момент начала моделирования. Устанавливается равным абсолютному модельному времени с помощью оператора REST или CLEAR;

END_TIME - конечное время. Абсолютное модельное время, когда счетчик завершения принимает значение 0.

BLOCKS - количество блоков, использованных в текущей модели, к моменту завершения моделирования;

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

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

FREE_MEMORY - объем памяти, остававшейся свободной при прогоне модели.

7.2 Информация о блоках

LINE - номер строки исходной программы для каждого блока;

LOC - имя или номер данного блока в модели;

BLOCK_TYPE - тип блока GPSS;

ENTRY_COUNT - количество транзактов, вошедших в данный блок, с начала работы программы или после последнего выполнения оператора RESET или CLEAR;

CURRENT_COUNT - количество транзактов, находящихся в данном блоке к моменту завершения моделирования;

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

7.3 Информация об объектах типа “устройство”

FACILITY - имя или номер устройства;

ENTRIES - количество раз, когда устройство было занято или занято с прерыванием с начала моделирования или после последнего выполнения оператора RESET или CLEAR;

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

AVE._TIME - среднее время занятия устройства одним транзактом в течение времени моделирования с начала моделирования или после выполнения оператора RESET или CLEAR;

AVAILABLE - состояние устройства в конце моделирования (равно 1, если устройство доступно и 0 - если недоступно);

OWNER - номер транзакта, который занимает устройство (0 - устройство не занято);

PEND - количество транзатов, ожидающих выполнение с прерыванием других транзактов (т. е. вошедших в блоки PREEMPT в режиме прерывания);

INTER - количество транзактов, прерванных на данный момент (количество транзактов в списке прерываний);

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

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

7.4 Информация о группах транзактов

XACT_GROUP - имя или номер объекта группы транзактов;

GROUP_SIZE - число транзактов в группе в конце моделирования;

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

Выводы

В данной курсовой работе смоделирована работа АСУ ТП, в соответствии с условиями задания. Выводы по работе системы можно сделать исходя из данных, полученных в стандартном отчете GPSS.

Из отчета видно, что по завершении моделирования прошло 3600 секунд (END_TIME), так как и было задано условиями. Определить загрузку резервной ЭВМ мы можем из той части стандартного отчета, где помещена информация об объектах типа “устройство” - загрузка резервной ЭВМ равна 0.094. А коэффициент загрузки основной ЭВМ равен 0.300. Частоту отказов ЭВМ можно определить из отношения числа отказов ЭВМ, к общему числу поступивших данных. Эти данные мы так же берем из стандартного отчета, но уже из части, где помещена информация о блоках, так как число поступивших данных - это то количество транзактов, которые прошли через блок GENERATE, а число отказов - это количество транзактов, прошедших через блок FUNAVAIL. Таким образом частота отказов системы равна 12/363 = 0,033. Повторение моделирования дает несколько измененные значения из-за использования другой последовательности случайных чисел.

Функция распределения времени поступления данных в ЭВМ является равномерной, что видно из условия.

Список использованных источников

1. Советов Б.Я. Моделирование систем. Практикум. [Текст]: Учебное пособие для вузов/Б.Я. Советов, С.А. Яковлев - 3-е изд., стер. - М.: Высш. шк., 2005. - 295 с.

2. Боев В.Д. Моделирование систем. Инструментальные средства GPSS World. [Текст]: Учебное пособие/В.Д. Боев - СПб: БХВ-Петербург, 2004. - 368 с.

3. Шрайбер Т.Д. Моделирование на GPSS.- M.: Машинострое ние,1980.

4. САПР, Лабораторный практикум, кн.7, под ред. И.П. Норенкова - М.: Высшая школа,1986.

5. Б.Я. Советов, С.А. Яковлев Моделирование систем: курсовое проектирование. - М.: Высшая школа,1988.

6. Наставление по моделированию на GPSS/PC, перевод под ред. к.н.т. Якимова И.М. - Казань,1989.

рефераты
РЕФЕРАТЫ © 2010