
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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-критерію Ст’юдента
Моделювання перемикачів
Для моделювання перемикачів, що мають тільки два стани, в GPSSW використовуються логічні ключі. Стан ключа змінює напрямок руху транзактів. Логічний ключ може перебувати в одному із двох станів: включений (ON або 1), або виключений (OFF або 0).
Логічний ключ моделюється блоком LOGIC. Він встановлює положення ключа, яке може бути перевірено будь-яким транзактом у будь-якому місці моделі. Формат блоку:
LOGIC X А
Операнд А – назва або номер логічного ключа. Може бути назвою, додатним цілим числом, виразом у дужках, СЧА або СЧА*параметр.
Логічний оператор X описує стан логічного ключа, що вказуються операндом А. Він може приймати наступні значення:
S – логічний ключ вмикається;
R – логічний ключ вимикається;
I – логічний ключ інвертується (стан змінюється на протилежний, наприклад з ON на OFF).
Для перевірки стану логічного ключа використовується блок GATE у форматі:
GATE X А,[В]
Операнд А – назва або номер ключа, що перевіряється. Може бути назвою, додатним цілим числом, виразом у дужках, СЧА або СЧА*параметр.
В операнді В задається мітка блоку, до якого буде спрямований транзакт у випадку невиконання умови, заданої оператором X.
Умовний оператор Х приймає значення:
LS = 1, якщо логічний ключ, заданий операндом А, включений; 0 – якщо виключений;
LR = 1, якщо логічний ключ, заданий операндом А, виключений; 0 – якщо включений.
Розглянемо приклад використання блоку GATE для перевірки стану логічного ключа [1]. Нехай БКП переводиться в недоступний стан. Транзакти, що перебували в БКП до моменту переведення його в недоступний стан, продовжують обслуговуватись. Проте транзакти, що знову надходять, не потрапляють в список затримування БКП. Відновлення доступності БКП починається після того, як БКП буде порожній (рис. 7.6).
Рис. 7.6. Імітаційна модель використання блоку GATE для перевірки стану логічного ключа
Блок GENERATE другого сегмента в t = 0 генерує один транзакт (XN1=1) і перестає бути активним. Цей транзакт входить у блок LOGIC, що включає ключ Flag, і далі затримується блоком ADVANCE.
Блок GENERATE першого елементу генерує з інтервалом 5 одиниць часу моделювання п'ять транзактів і також перестає бути активним.
Перший транзакт (XN1=2) в момент часу t = 5 проходить перший і другий блоки GATE, тому що ключ Flag включений і БКП вільний, і займає два вільних канали. Обслуговування цього транзакта закінчиться в t =5 + 12 = 17 одиниць часу.
Другий транзакт (XN1=3) в t = 10 також пройде обидва блоки GATE і займе наступні два канали БКП Nak. Вільним залишиться один канал. Обслуговування другого транзакта закінчиться в t =10 + 12 = 22 одиниць часу.
В t = 15 третій транзакт пройде перший блок GATE сегмента імітації надходження й обслуговування і ввійде в другий блок GATE. Оскільки БКП Nak має один канал вільним, умова, задана в блоці GATE, виконається й транзакт пройде до блоку ENTER. Але одного каналу недостатньо для обслуговування запиту, тому транзакт потрапить в список затримування БКП.
В t = 17 ключ Flag буде виключений і БКП буде недоступний для транзактів, що знову надходять. У цей же час закінчиться обслуговування першого транзакта і третій транзакт зі списку затримування займе БКП. У БКП Nak перебувають другий і третій транзакти (Nak не порожній). Тому транзакт, що викликав вимикання ключа, буде затриманий блоком GATE сегмента імітації недоступності, оскільки задана в ньому умова не виконується.
В t = 20 четвертий транзакт (XN1=5) ввійду у блок GATE першого сегмента. Оскільки ключ Flag виключений, то цей транзакт направляється до блоку TERMINATE з міткою Vuhid і знищується. Обслуговування другого транзакта завершиться в t = 22. У БКП залишиться один транзакт. Умова в блоці GATE сегмента імітації недоступності знову не виконається й транзакт, що викликав вимикання ключа, не ввійде в блок затримки ADVANCE.
В t = 25 п'ятий транзакт (XN1=6) першим блоком GATE сегмента 1 також направляється до блоку TERMINATE з міткою Vuhid і знищується.
Обслуговування третього транзакта завершується в t = 17 + 12 = 27. Транзакт, що викликав вимикання ключа, пройде через блок GATE до блоку затримки ADVANCE. В момент t =27 + 5 = 33 буде включений ключ Flag. Транзактам відкриється шлях на БКП Nak.
У даному прикладі і у прикладі з використанням блоків SUNAVAIL і SAVAIL будуть обслуговуватися три транзакта (перший, другий й третій). Час закінчення обслуговування з використанням логічного ключа складає 27 одиниць модельного часу, а з використанням блоків SUNAVAIL і SAVAIL – 39 одиниць часу.
Для перевірки стану логічного ключа також використовується блок TEST. Формат запису й умовні оператори такі ж, що й для перевірки станів ОКП й БКП. У булевій змінній використовується тільки СЧА LS.
Контрольні запитання та завдання
Охарактеризуйте режими функціонування БКП..
Охарактеризуйте блоки зайняття та звільнення БКП.
Які дії виконуються під час входження транзакту в блок ENTER?
Чи може бути БКБ вилучений з моделі за допомогою команди STORAGE?
Охарактеризуйте блоки SUNAVALL і SAVALL.
Вкажіть параметри у звіті після моделювання БКП. Яке їх призначення?
Вкажіть значення умовного оператора блоку GATE для перевірки стану БКП.
Охарактеризуйте режими роботи блоку GATE.
Як використовується блок TEST для перевірки стану БКП?
Наведіть формати блоку для моделювання логічного ключа.
Чи можна використовувати блок GATE для перевірки стану логічного ключа?
Напишіть сегмент програми для моделі перебування в магазині 23 покупців протягом 106 хвилин.
Напишіть програму для моделювання роботи чотирьох БКП за умови, що їх коефіцієнти використання є однакові.
Змоделювати процес обслуговування двоканальним пристроєм потоку вимог, який поступає з інтервалом 4±1 хвилин. Протягом перших 150 хвилин обслуговування здійснюється першим каналом, а потім другим. Тривалість обслуговування у першому каналі триває 8±1 хвилин, а в другому – 14±1 хвилини.
Змоделювати процес обслуговування двоканальним пристроєм потоку вимог, який надходить з інтервалом 6±1 хвилин. Протягом перших 200 хвилин обслуговування здійснює другий канал, а потім перший. Тривалість обслуговування першого каналу триває 10±1 хвилин, а другого – 9±1 хвилини.
“Навіть якщо ваше пояснення є настільки зрозумілим, що виключає будь-яке неправильне пояснення, то все одно знайдеться людина, яка зрозуміє вас неправильно”
(закон Мерфі)
Розділ 8
Мова Plus та Plus-процедури
основні елементи мови, побудова виразів, Plus-оператори
вбудована бібліотека процедур
бібліотечні генератори випадкових чисел
налагодження Plus-процедур
команда INTEGRATE і блок INTEGRATION. Використання Plus-процедур для моделювання неперервних систем
У розділі наведено коротку характеристику мови PLUS. Розглянуто-оператори, вирази та вбудовані PLUS-процедури, які можна використовувати у GPSS-моделях. Також показано, як можна створювати власні PLUS-процедури для моделювання різних систем, зокрема неперервних. Описані можливості виклику зовнішніх процедур з файлів EXE i DLІ за допомогою динамічного виклику.