Моделювання на мові 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 (США), але вже в 1993 році, яка пізніше так само зазнала деяких змін.
GPSS - інтегруюча мовна система, що застосовується для опису просторового руху об'єктів. Такі динамічні об'єкти в мові GPSS називаються транзакта і являють собою елементи потоку. Транзакти "створюються" і "знищуються". Функцію кожного з них можна представити як рух через модель М з почерговим впливом на її блоки. Функціональний апарат мови утворюють блоки, що описують логіку моделі, повідомляючи транзакта, куди рухатися і що робити далі. Дані для ЕОМ готуються у вигляді пакету керуючих і визначають карт, якими складається за схемою моделі, набраної з стандартних символів. Створена програма GPSS, працюючи в режимі інтерпретації, генерує і передає транзакти з блоку до блоку. Кожен перехід транзакта приписується до якогось моменту системного часу.

1 Завдання
Для забезпечення надійності АСУ ТП в ній використовується дві ЕОМ. Перша ЕОМ виконує обробку даних про технологічний процес і вироблення керуючих сигналів, а друга знаходиться в «гарячому резерві». Дані в ЕОМ надходять через 10 ± 2 с, обробляються протягом 3 с. Характеристики обох ЕОМ однакові. Підключення резервної ЕОМ займає 5 с, після чого вона замінює основну до відновлення, а процес повертається до нормального темпу. Відмови ЕОМ відбуваються через 300 ± 30 с. Відновлення займає 100 с. Резервна ЕОМ абсолютно надійна. Змоделювати 1 годину роботи системи. Визначити середній час знаходження технологічного процесу в загальмованому стані і середнє число пропущених з - за відмов даних.

2 Блок-схема
SHAPE \ * MERGEFORMAT
Надходження даних через 10 ± 2с
Основна ЕОМ Про брабативает дані протягом 3с
Підключення резервної ЕОМ протягом 5с
Відновлення основний ЕОМ протягом 100с
Резервна ЕОМ Обробляє дані протягом 3с
Перевірка працездатності основний ЕОМ
Висновок транзакта з моделі


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 може бути заданий будь ВЧА, окрім посилання на функцію, а діапазон зміни інтервалу надходження має межі AB, A + B.
4.2 Блок GATE
Блок GATE (впустити) служить для затримки або зміни маршруту транзактов в залежності від стану апаратних об'єктів. Блок має наступний формат:
ім'я GATE XA, 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, # 38 123) 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 січня GENERATE 363 0 0
2 2 GATE 363 0 0
3 A1 3 SEIZE 249 0 0
4 квітня ADVANCE 249 0 0
5 травня RELEASE 249 0 0
6 червня TERMINATE 249 0 0
7 A2 7 ADVANCE 114 1 0
8 серпня SEIZE 113 0 0
9 вересня ADVANCE 113 0 0
10 жовтня RELEASE 113 0 0
Листопад 1911 TERMINATE 113 0 0
12 Грудня GENERATE 12 0 0
13 13 FUNAVAIL 12 0 0
14 14 ADVANCE 12 Січня 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.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
51.3кб. | скачати


Схожі роботи:
Моделювання процесу складання виробів на GPSS
Імітаційне моделювання роботи обчислювальної системи з трьох ЕОМ в середовищі GPSS
Деякі аспекти застосування УМК Моделювання цифрових систем на мові VHDL
Функціонально-семантичні особливості модальних дієслів в англійській мові в непрямій мові
Імітаційне моделювання системи фазового автопідстроювання частоти в пакеті моделювання динамічних
Програмування на мові Сі
Програмування на мові С
Словотвір в англійській мові
Ім`я іменник в англійській мові
© Усі права захищені
написати до нас