
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню gpss World
- •Меню File
- •Меню Edit
- •Панель інструментів gpss World
- •Вікно моделі у системі gpss World
- •Інтерактивний перегляд значень виразів
- •Налаштування параметрів моделювання
- •4.1. Основне меню gpss World
- •4.2. Подання моделей у вигляді блок-діаграм
- •4.3. Основні складові системи gpssw
- •4.4. Об'єкти обчислювальної категорії
- •4.4.1. Константи
- •4.4.2. Системні числові атрибути
- •4.4.3. Арифметичні і логічні оператори
- •4.4.4. Бібліотечні математичні функції
- •4.4.5. Змінні користувача
- •4.4.6. Вирази в операторах gpss
- •4.4.7. Зберігаючі комірки
- •4.4.8. Матриці зберігаючих комірок. Оголошення та ініціалізація матриць
- •4.4.9. Арифметичні змінні й арифметичні вирази
- •4.4.10. Булеві змінні
- •4.4.11. Типи функцій
- •5.1. Введення транзактів у модель і вилучення їх із неї
- •5.2. Блоки для зміни значень параметрів транзактів
- •5.3. Блоки апаратної категорії зайняття та звільнення одноканальних пристроїв
- •5.4. Блоки перевірки стану та передавання керування в одноканальних пристроях
- •5.5. Блоки статистичної категорії
- •5.6. Блоки для зміни послідовності руху транзактів у моделі
- •5.7. Блоки апаратної категорії для переривань одноканальних пристроїв
- •5.8. Блоки апаратної категорії для переведення одноканальних пристроїв у стан недоступності
- •5.9. Створення і застосування списків користувача
- •Основні етапи моделювання у системі gpssw
- •Команди gpss World
- •Інтерактивні можливості gpss World
- •Відлагодження моделей у gpss World
- •Блоки зайняття та звільнення багатоканальних пристроїв
- •Блоки апаратної категорії для переведення багатоканальних пристроїв у стан недоступності та відновлення доступності
- •Блоки перевірки стану багатоканальних пристрів
- •Моделювання перемикачів
- •Основні елементи мови
- •Побудова виразів
- •Plus-оператори та їх призначення
- •Вбудована бібліотека процедур
- •Генератори випадкових чисел
- •Реалізація методу Ньютона для розв’язування нелінійних рівнянь за допомогою мови Plus
- •Налагодження Plus-процедур
- •Команда integrate і блок integration для моделювання неперервних систем
- •Використання plus-процедур для моделювання неперервних систем
- •Використання функцій в імітаційних моделях
- •Генерування випадкових чисел для дискретних рівномірних розподілів
- •Генерування випадкових чисел для дискретних нерівномірних розподілів
- •Генерування випадкових чисел для неперервного рівномірного розподілу
- •Генерування випадкових чисел для неперервних нерівномірних розподілів
- •Функції типу e, l і м
- •9.1. Основні відомості з теорії планування експериментів
- •9.1.1. Повний факторний експеримент
- •Оцінювання точності результатів моделювання
- •Дисперсійний аналіз
- •Однофакторний дисперсійний аналіз
- •9.2.2. Двофакторний дисперсійний аналіз
- •9.3. Технологія дисперсійного аналізу у gpss World
- •9.4. Технологія регресійного аналізу у gpss World
- •9.5. Організація експериментів користувача у gpss World
- •Initial Rezult_tf,unspecified ;Ініціалізація матриці результатів
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання одноканальних розімкнутих смо
- •Індивідуальні завдання для моделювання одноканальних замкнутих смо
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання багатоканальних розімкнутих смо
- •Індивідуальні завдання для моделювання багатоканальних замкнутих смо
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання роботи транспортного конвеєра
- •Індивідуальні завдання для моделювання роботи ділянки цеху
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання роботи еом для оброблення завдань з різними пріоритетами
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання роботи вузла комутації повідомлень
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання поширення вірусу на системному диску
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для проведення дисперсійного аналізу для дослідження вагомості впливу змінних користувача на об’єкт моделі
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для розроблення експерименту користувача
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання проведення регресійного аналізу для оптимізації і кількісного прогнозу поведінки системи
- •Контрольні запитання
- •Елементи стандартного звіту
- •Загальна інформація про результати роботи моделі
- •Інформація про імена
- •Інформація про блоки
- •Інформація про об’єкти типу «пристрій»
- •Інформація про об’єкти типу «черга»
- •Інформація про об’єкти типу «багатоканальний пристрій»
- •Інформація про таблиці
- •Інформація про списки користувача
- •Табличні значення критеріїв
- •Значення t-критерію Ст’юдента
5.4. Блоки перевірки стану та передавання керування в одноканальних пристроях
У GPSS World здійснюється послідовне проходження транзактів у блоках. Але у процесі моделювання реальних систем потік транзактів може затримуватися, або змінювати свій напрям руху до блоку з вказаним номером залежно від різних умов. До групи зміни маршрутів транзактів в GPSS World входять блоки GATE (Впустити) і TEST.
Блок GATE використовується для керування рухом транзактів залежно від стану пристроїв. Формат запису:
GATE X А,[В]
Блок GATE працює у двох режимах:
режим відмови на вході;
режим дозволу на вході й альтернативному виході.
Під час роботи в режимі відмови блок GATE не пропускає транзакти, якщо відповідний об'єкт не перебуває в необхідному стані. Якщо ж поставлена в блоці GATE умова виконується, тоді активний транзакт входить у нього й потім переходить до наступного блоку. Операнд А визначає назву або номер ОКП, для якого перевіряється умова.
Операнд В містить номер наступного блоку для вхідного транзакта, коли умовний оператор має значення “неправда”. Операнди А і В можуть бути назвою, додатним цілим числом, виразом у дужках, СЧА, СЧА*параметр. Якщо операнд В не використовується, то перевірка здійснюється в режимі відмови. Якщо результат цієї перевірки не буде “істина”, то транзакт потрапить в список повторних спроб об'єкта, що перевіряється. Коли стан кожного з об'єктів змінюється, заблокований транзакт знову активізується, повторюється перевірка заданої блоком GATE умови. Якщо ця умова виконується, транзакт входить у блок GATE і далі переходить до наступного за чергою блоку.
Для ОКП умовний оператор Х приймає такі значення для перевірки стану:
NU – ОКП, заданий операндом А, вільний;
U – ОКП, заданий операндом А, зайнятий.
Застосування інших логічних операторів блоку GATE для перевірки об'єктів апаратної категорії у станах переривання і недоступності розглядається у розділах 5.7 і 5.8.
Також існують логічні оператори, пов’язані з транзактами:
М – блок GATE перевіряє виконання умови синхронізації у вказаному блоці моделі;
NM – блок GATE перевіряє невиконання умови синхронізації у вказаному блоці.
Логічними операторами, що пов’язані з логічними ключами, є:
LS – логічний ключ, заданий операндом А, у стані “включений”;
LR – логічний ключ, заданий операндом А, у стані “виключений”.
Логічні ключі у GPSS використовуються для опису елементів системи, які можуть знаходитися у вище наведених двох станах – LR i LS (L – “LOGIC”, R – “RESET”, S – “SET”). Статистичні дані про роботу ключів не збираються. Для встановлення станів логічних ключів використовується блок LOGIC (Змінити), який має такий формат:
LOGIC X A
Операнд А є номером логічного ключа і може бути назвою, додатнім цілим числом, СЧА або СЧА*параметр. Стан логічного об’єкта, вказаного операндом А, змінюється залежного від значення оператора Х, а саме: S – логічний ключ встановлюється у положення „включено”, R – відповідно встановлюється у положення „виключено”, І – логічний ключ інвертується, тобто його положення змінюється на протилежне.
Розглянемо приклади використання блоку GATE:
GATE U Kdf
GATE NU (FN$Krah+8)
GATE NU Luez,Trif
У першому прикладі блок GATE не пропустить транзакт за умови незайнятості ОКП з назвою Kdf. У другому випадку – коли зайнятий ОКП, номер якого визначається як результат обчислення й наступного округлення виразу в дужках FN$Krah+8. У третьому прикладі у випадку зайнятості ОКП з назвою Luez транзакт буде спрямований до блоку з назвою Trif.
Для перевірки стану ОКП можна використовувати також булеві змінні і блок TEST (Перевірити).
Блок TEST визначає номер наступного блоку для транзакта, що надійшов, залежно від того, чи виконується необхідна умова, записана у вигляді алгебраїчних відношень двох аргументів. Блок TEST також функціонує у двох режимах, властивих блоку GATE.
Формат запису блоку є таким:
TEST X А,В,[С]
Операнди А і В є порівнюваними величинами. Вони можуть бути назвою, числом, рядком, виразом у дужках, СЧА, СЧА*параметр. Умовний оператор X може бути виражений одним із наступних шести умовних операторів: L – менше; LE – менше або дорівнює; Е – дорівнює; NE – не дорівнює; G – більше; GE – більше або дорівнює.
Якщо операнд С зазначений, транзакт завжди може ввійти в блок TEST і залежно від співвідношення операндів А і В буде переданий або в наступний блок, або в блок, зазначений операндом С. Якщо операнд С не зазначений, транзакт при невиконанні умови не зможе ввійти в блок TEST (режим відмови). Він потрапляє в список повторних спроб всіх об'єктів, що беруть участь у перевірці умови. Такий режим є затрудненим, оскільки передбачає багатократну перевірку умов блокування.
Можуть використовуватися наступні СЧА ОКП:
F – дорівнює 1, якщо ОКП зайнятий, у протилежному випадку – 0;
FC – кількість транзактів, що займали ОКП за допомогою блоків SEIZE і PREEMPT;
FR – коефіцієнт використання ОКП;
FT – середній час обслуговування ОКП одного транзакта.
Розглянемо приклади:
TEST LE Q1,5,Otk1
означає, що якщо умова “довжина черги 1 менше або дорівнює 5” виконується, тоді активний транзакт передається наступному блоку, у протилежному випадку він скеровується до блоку з міткою Otk1.
TEST G Q1,5
означає, що якщо умова “довжина черги 1 більше 5” виконується, тоді активний транзакт передається наступному блоку, у протилежному випадку він блокується до того часу, поки дана умова не буде виконана.
Наведемо приклад використання блоку TEST для перевірки стану ОКП, у якому транзакти очікують обслуговування, якщо довжина черги є не більшою 4. У протилежному випадку обслуговування не здійснюється (транзакт направляеться в блок TERMINFTE помічений міткою LBL). Відповідний фрагмент програми може бути таким:
TEST LE Q$STR,4,LBL
QUEUE STR
SEIZE POINT
DEPART STR
ADVANCE 50,16
RELEASE POINT
. . .
LBL TERMINFTE 1
. . .