Учебная работа. Курсовая работа: Моделирование на языке GPSS
Республики Казахстан
Карагандинский муниципальный технический институт
КУРСОВАЯ РАБОТА
по дисциплине «Спецкурс информатики”
Тема: «Моделирование на языке 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 (США
GPSS — интегрирующая языковая система, применяющаяся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS именуются транзактами
и представляют собой элементы потока. Транзакты «создаются» и «уничтожаются». Функцию всякого из их можно представить как движение через модель М с поочерёдным действием на её блоки. Многофункциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что созодать далее. Данные для ЭВМ подготавливаются в виде пакета управляющих и определяющих карт, которым составляется по схеме модели, набранной из обычных знаков. Сделанная программка GPSS, работая в режиме интерпретации, генерирует и передаёт транзакты из блока в блок. Любой переход транзакта приписывается к определенному моменту системного времени.
1 Задание
Для обеспечения надежности АСУ ТП в ней употребляется две ЭВМ . 1-ая ЭВМ делает обработку данных о технологическом процессе и выработку управляющих сигналов, а 2-ая находится в «жарком резерве». Данные в ЭВМ поступают через 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 быть может задан хоть какой СЧА, не считая ссылки на функцию, а спектр конфигурации интервала поступления имеет границы 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, и транзакты, проходящие через та кой блок, не уменьшают содержимого счетчика окончаний.
Изначальное содержимое счетчика окончаний обращается в 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 — конечное время. Абсолютное модельное время, когда счетчик окончания воспринимает
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.
]]>