Інтерфейс програми GPSS World включає текстовий редактор, багато віконний інтерфейс зображений на рис.1.2. А також вікно для налагодження та перегляду звітів зображене на рис 1.3.
1. Короткий опис понять транзакт, блок-діаграма, мова GPSS.
2. Поняття пов’язані з транзактом, стани транзакту.
3. Формат запису операторів та блоків.
1.4 Контрольні питання
1. Для чого створена мова GPSS?
2. Що таке транзакт?
3. Які основні стани має транзакт?
4. Пояснити поняття MARK TIME,ASSEMBLY SET,TRACE INDIKATOR.
5. Чим відрізняється поняття CURRENT BLOCK від NEXT BLOCK?
Лабораторна робота № 2
Основні блоки GENEATE,TERMINATE,ADVANCE, SEIZE,RELEASE, оператори START,END
Мета роботи –ознайомитися з основними блоками та параметрами звіту мови GPSS, розрахувати найпростішу модель.
Теоретичні відомості
Основними блоками в системі моделювання є блоки створення, затримки та знищення транзактів. Одним з блоків створення транзакту є блок GENERATE:
<№> GENERATE <A>,<B>
Значення полів А та В називають також операндами. Операнди полів <А> та <В> являються постійними числами. Якщо поле <В> відсутнє то генерація (створення) транзакту буде відбуватись кожні <А>умовних одиниць часу, в протилежному випадку генерація транзакту буде відбуватись кожні <А> ± <В>умовних одиниць часу відповідно до рівномірного закону розподілу.
<№> SEIZE <A>
Блок SEIZE має лише одне поле <A>, яке задає номер або ім'я пристрою, привласнене розробником програми. Номер або ім'я пристрою можуть бути довільними. При вході транзакта в блок SEIZE завжди перевіряється (інтерпретатором системи GPSS/РС) зайнятий пристрій чи ні. Якщо пристрій вільний, то він займається. Пристрій залишається зайнятим до тих пір, поки зайнятий ним транзакт не увійде до відповідного блоку RELEASE.
<№> ADVANCE <A>,<B>
Блок ADVANCE моделює затримку транзакту, що увійшов до нього, протягом певного інтервалу часу. Час затримки є випадковим числом, розподіленим рівномірно в інтервалі часу від (<А> ± <В>). Різниця між числом поля <А> і числом поля <В> не має бути негативна. Якщо поле <В> відсутнє то час затримки буде дорівнювати рівно числу у полі <А>.
Затримка транзактів на час, вказаний в полях блоку ADVANCE, відбувається, як правило, в пристроях, які використовують при моделюванні роботи різного вигляду устаткування одиничної ємкості.
<№> RELEASE <A>
Операнд поля <А> блоку RELEASE має бути таким же, як і для відповідного блоку SEIZE, <A> вказує номер пристрою який потрібно звільнити. Блок RELEASE призначений для звільнення пристрою тим транзактом, яким воно було зайняте.
<№> TERMINATE <A>
Блок TERMINATEвиводить транзакти з системи (знищує їх) цей блок протилежний блоку GENERATE. У полі <А> блоку TERMINATE задається число одиниць (транзактів), на яке цей блок змінює вміст лічильника завершень, що визначає момент закінчення моделювання.
Практично завжди обов’язковими являються операториSTART, END.
Формат опису оператора STARTмає вигляд:
<№> START <А>
Поле <А>оператораSTARTзадає значення лічильника завершень. Оператор STARTвикористовується такождля ініціювання початку моделювання.
Формат опису оператора ENDмає вигляд:
END
Оператор STARTпочинає процес моделювання для вказаного максимального числа лічильника завершень. Оператор END(управляючий оператор) здійснює завдання виконання прогону моделі і закінчує роботу системи моделювання GPSS/PC (попередня версія програми GPSS). Для того, щоб залишитись в системі GPSS/PC для роботи з різними вікнами потрібно закоментарити оператор ENDкрапкою з комою або зірочкою. Повернення в робоче вікно виконується шляхом набору команди ENDв поточному вікні системи GPSS/РС.
В системі моделювання GPSSW управляючий оператор ENDбув замінений командою EXIT, котра може завершити сеанс роботи з GPSS World. Тому оператор ENDв системіGPSSW не використовують.
Загальні правила оформлення програм:
1. Після написання програми, перед запуском на виконання необхідно зберігти її як файл з розширенням GPSта іменем, що складається із букв та цифр довжиною до 20 символів. Допускається застосовувати символи тільки латинського алфавіту.
2. Обов’язковою є нумерація блоків у порядку зростання, оператори можна не нумерувати.
3. Як правило, після номера установлюється не менш, ніж два пробіли та записується ім’я блока. У робочому вікні можна використовувати не більше 255 позицій, починаючи з лівого краю. Візуальний контроль для даної строки та позиції (стовпчика) встановлений в нижньому лівому кутку робочого вікна.
4. Коментарії пишуться після знака крапка з комою (;) у будь-якому місці програми або після символу зірочка (*), яка повинна бути в першій позиції робочого вікна.
5. Написання назв блоків і операторів в програмах допускається як прописними, так і строчними буквами.
В системі моделювання GPSSW передбачений стандартний звіт (рис 2.1), в якому виводяться результати моделювання.
Для того щоб отримати стандартний звіт для моделі з наявністю в ній управляючого оператора START,необхідно:
– натиснути на кнопку Command(Команда) основного меню; з’явиться випадаюче меню;
– натиснути на кнопку Create Simulation (створитимодель, що виконується); з’явиться вікно JOURNAL, а потім REPORTз результатами моделювання.
Рисунок 2.1 – Стандартний звіт результатів моделювання
Стандартний звіт містить наступні основні показники моделювання системи:
–рядок стандартного повідомлення про початок моделювання START_TIME;
– час моделювання системи – END_TIME (час завершення);
– кількість використаних в програмі блоків BLOCKS;
– кількість встановлених пристроїв FACILITIES;
– кількість багатоканальних пристроїв, для яких визначається задана ємність накопичувача STORAGES;
– номера блоків, які визначаються системою LOC;
– назви блоків BLOCK_TIPE;
– кількість транзактів, що проходять через відповідний блок програми ENTRY_COUNT;
– поточна кількість транзактів, затриманих в блоках на момент завершення моделюванняCURRENT_COUNT;
–кількість транзактів,що очікують спеціальні умови для проходження через даний блокRETRY;
Робота пристрою FACILITY оцінюється наступними стандартними атрибутами:
– кількість транзактів, що пройшли через пристрій, вказується в полі ENTRIES;
– коефіцієнт використання каналу обслуговування у відносних одиницях, вказується в полі UTIL (показує ту частину періода моделювання, протягом якої пристрій був зайнятий);
–середній часобробки або затримки одного транзакта в пристрої, показується в полі AVE._TIME (середній час зайнятості пристрою);
– поле AVAILвизначає станготовності пристрою в кінці періоду моделювання (воно дорівнює 1, якщо пристрій готовий, та 0 – якщо не готовий);
– поле OWNERвизначає номер останнього транзакту, що займав пристрій (якщо пристрій не займався, то встановлюється 0);
– поле PEND(від англ. «pendent» –що очікує на рішення) визначає кількість транзактів, що очікують на пристрій, який знаходиться в режимі переривання;
– поле INTERвизначає кількість транзактів, що перервають пристрій в даний момент;
–поле RETRYвизначає кількість транзактів, очікуючих спеціальних умов, що залежать від стану об’єкта типу «пристрій»;
–поле DELAY(затримка) визначає кількість транзактів, що очікують заняття або звільнення пристрою.
Приклад 2.1.Заявки поступають в систему масового обслуговування (Q-схему) через фіксований час (7 одиниць часу). Обробка (обслуговування) кожної заявки займає також деякий фіксований час (5 одиниць часу). Після обробки заявки залишають Q-схему. Провести обробку 100 заявок.
Рішення. Одиницю часу користувач назначає на свій погляд, або за умовою задачі. Система GPSSW буде проводити моделювання відносно тих значень одиниць часу, які задасть користувач. За одиницю часу прийнята 1 хвилина.
В програмі вирішення прикладу (рис. 2.2) транзакти (заявки, повідомлення) генеруються блоком GENERATEкожні 7 хвилин, проходять через пристрій під номером 1, затримуються на 5 хвилин і залишають (звільняють) пристрій 1. Захват і звільнення пристрою здійснюють блоки SEIZE та RELEASE. Затримка транзактів за часом здійснюється в блоці ADVANCE. Вивід транзактів здійснює блок ADVANCE. Оператор STARTпочинає процес моделювання для вказаного максимального числа лічильника завершень.
Рисунок 2.2 – Програма вирішення прикладу 2.1 в системі моделювання GPSSW
Результати моделювання розглянемо у файлі стандартного звіту (рис. 2.3).
Рисунок 2.3 – Стандартний звіт результатів моделювання для прикладу 2.1
Як видно, для даної програми кількість транзактів, що проходять через блоки, дорівнює 100. Всі 100 транзактів, які були згенеровані блоком GENERATE, пройшли через всі блоки програми. Робота пристрою FACILITYпід номером1оцінюється такими стандартними атрибутами: кількість транзактів, що пройшли через пристрій, вказується в полі ENTRIES (в нашомувипадку це число 100);коефіцієнт використання в відносних одиницях вказується в полі UTIL(в нашому випадку число 0.709, яке показує ту частину періоду моделювання, на протязі якої пристрій був зайнятий); середній час обробки або затримки одного транзакту в пристрої вказується в полі AVE._TIME (в нашому випадку дорівнює 5, яке також можна визначати, як середній час занятості пристрою); поле AVAILABLEвизначає стан готовності пристрою в кінці періоду моделювання (він дорівнює 1, якщо пристрій готовий та 0 – якщо не готовий); поле OWNER(прямий переклад – власник) визначає номер останнього транзакту, що займав пристрій (якщо пристрій не займався, то встановлюється 0); поле PEND(від англ. «pendent» – очікуючий на рішення) визначає кількість транзактів, очікуючих пристрій, що знаходиться в режимі переривання; поле INTERвизначає кількість транзактів, що переривають пристрій в даний момент; поле RETRYвизначає кількість транзактів, що очікують спеціальні умови, які залежать від стану об’єкта типу «пристрій»; поле DELAY (затримка)визначає кількість транзактів, що очікують заняття або звільнення пристрою. В даному прикладі (2.1) останні сім полів дорівнюють нулю, оскільки система працює без будь-яких спеціальних умов і переривань.
Приклад 2.2.Дуже часто процес надходження транзактів в систему і процес обробки підпорядковується рівномірному закону розподілу в заданому інтервалі. Наприклад, програму для прикладу 2.1 можна призвести до вигляду, коли надходження транзактів та їх обробка будуть виконуватись по рівномірному закону в заданих інтервалах, наприклад, від 5 до 9 хвилин та від 3 до 7 хвилин відповідно. Іншими словами, надходження заявок буде підпорядковуватись рівномірному закону з інтервалом 7 ± 2 хвилин, а обробка – рівномірному закону з часом обробки 5 ± 2 хвилин.
Програма для вирішення прикладу 2.2 зображена на рис. 2.4. При рівномірному законі надходження транзактів та тому ж законі обслуговування операнд поля <В> в блоках GENERATE та ADVANCEкваліфікується як модифікатор-інтервал. Якщо надходження або обслуговування транзактів підпорядковується будь-якому функціональному закону, відмінному від рівномірного, тоді операнд поля <В>кваліфікується як модифікатор-функція.
Рисунок 2.4 – Програма вирішення прикладу 2.2 в системі моделювання GPSSW
Файл стандартного звіту для прикладу 2.2 зображений на рис. 2.5. Відміни від попереднього звіту полягають в змінах часу моделювання 714.047, коефіцієнті використання 0.699 і середньому часі обробки одного транзакта 4.994.
Рисунок 2.5 – Стандартний звіт результатів моделювання для прикладу 2.2
Лабораторне завдання
Необхідно змоделювати систему в якій генерується потік вимог, кількість вимог дорівнює К. Вимоги поступають в систему кожні А ± В секунд. Вимоги поступають на пристрій, який затримує їх на C±D секунд. Після цього вимоги поступають на наступний пристрій, який затримує їх на N±M секунд. Далі вимоги знищуються.
Моделювання виконувати згідно варіантів, вказаних у таблиці 2.1.
Таблиця 2.1 –Вихідні дані для виконання лабораторного завдання