
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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.3. Блоки апаратної категорії зайняття та звільнення одноканальних пристроїв
Під час обслуговування транзакти переміщаються в моделі від блоку до блоку. Якщо у будь-який момент транзакт займає ОКП, то для цього він входить (або намагається ввійти) у відповідний блок, який описує ОКП. Цей блок характеризується властивостями:
якщо ОКП вже використовується, транзакт не може ввійти в блок і повинен чекати в черзі;
якщо ОКП вільний, транзакт може ввійти в блок, а стан ОКП змінюється на “зайнято”.
Ці властивості має блок SEIZE (Зайняти). Вхід транзакта в блок SEIZE моделює займання ОКП.
Після обслуговування вхід того ж транзакта в інший блок моделює звільнення ОКП. Це здійснюється за допомогою блоку RELEASE (Звільнити). Блок RELEASE змінює стан раніше зайнятого ОКП з “зайнято” на “незайнято”. Формати блоків:
SEIZE A
RELEASE A
Операнд А – це назва зайнятого або звільненого ОКП. Може бути назвою, додатним цілим числом, виразом у дужках, СЧА, СЧА*параметр. Наявність блоку SEIZE забезпечує виникнення транзактів і ОКП, коли цього вимагає логіка моделі. Транзакти перебувають у моделі тимчасово, а ОКП в моделі існують постійно протягом усього процесу моделювання.
У результаті надходження транзактів у блок SEIZE пристрій, який вказується у цьому блоці, буде зайнятим. Він залишається зайнятим, поки даний транзакт не пройде відповідний блок RELEASE. Якщо будь-який транзакт займає пристрій, який описується операндом А блоку SEIZE, то будь-який інший транзакт не зможе ввійти у даний блок (взагалі не зможе зайтяти цей пристрій з використанням іншого блоку SEIZE). Транзакт одночасно може зайняти будь-яке число пристроїв.
Блок RELEASE звільняє пристрій, який був раніше зайнятий транзактом, що знаходився у SEIZE. Під час використання блоку RELEASE не виникає затримування, оскільки пристрій звільнюється у момент входження транзакту в блок RELEASE лише цим транзактом, який зайняв пристрій. Якщо перед SEIZE затримується декілька транзактів, то їх обслуговування здійснюється за правилом „перший прийшов – перший обслужився”.
Розглянемо приклад використання блоків:
SEIZE Kan
RELEASE Kan
Якщо ОКП з назвою Kan не зайнятий, активний транзакт займає його. Якщо ОКП зайнятий, транзакт потрапляє в список затримування даного ОКП після транзактів з таким же пріоритетом і не входить у блок SEIZE. Транзакту також відмовляється у вході в блок SEIZE, якщо ОКП з назвою Kan перебуває в недоступному стані. Тільки після завершення часу обслуговування транзакт потрапляє в блок RELEASE для звільнення ОКП.
Для затримування транзакту протягом деякого інтервалу часу моделювання використовується блок ADVANCE (Затримувати). Блок визначає число одиниць часу моделювання, на яке транзакт буде затриманий. Найчастіше цей інтервал задається випадковою змінною. Формат запису блоку ADVANCE наступний:
ADVANCE А,[В]
Тут А – середній час затримування або його ймовірнісний розподіл, а В – спосіб модифікації операнда А. Кожний з операндів А і В може бути назвою, числом, виразом у дужках, СЧА або СЧА*параметр.
Модифікатори можуть бути двох типів: модифікатор-інтервал і модифікатор-функція. Блок ADVANCE обчислює час затримування (приріст часу моделювання) такими ж способами, як блок GENERATE.
Модифікатор-інтервал використовується, коли час затримування вибирається як випадкове число, рівномірно розподілене в інтервалі (А–В, А+В). Для розіграшу може бути обраний будь-який генератор рівномірно розподілених випадкових чисел. Номер генератора на сторінці Random Numbers (Випадкові числа) у журналі настроювань моделі потрібно вказати в полі введення ADVANCE. За замовчуванням використовується генератор випадкових чисел номер 1. Наприклад:
ADVANCE 68.5,22.5
У даному прикладі вхідний транзакт затримується на час, рівномірно розподілений в інтервалі від 46 до 91.
Для задавання часу затримування за іншим законом, відмінним від рівномірного, в операнді В записується модифікатор-функція. Для звертання до функції визначається деяке число – значення функції. Це значення множиться на значення операнда А. Результат використовується як час затримування. Наприклад:
ADVANCE Frejm,FN$Krok
У прикладі обчислюється значення функції з назвою Krok і множиться на значення змінної користувача Frejm якій попередньо повинне бути присвоєне числове значення командою EQU.
Якщо задано тільки операнд А, він обчислюється й використовується як час затримування. Наприклад:
ADVANCE (Normal(35,X$Znach,X$VidZn))
Час затримування заданий процедурою мови PLUS і розподілений за нормальним законом. Середнє значення і середньоквадратичне відхилення, попередньо записані командою INITIAL у комірках збереження, з назвами Znach і VidZn відповідно. Для генератора нормального розподілу джерелом випадкових чисел, рівномірно розподілених в інтервалі [0,1], є генератор номер 35 (RN35).
ADVANCE (Exponential(33,20,50))
У цьому прикладі час затримування є випадковою величиною, розподіленою за експоненціальним законом (із вбудованої бібліотеки процедур мови PLUS) із середнім значенням 50; номер вбудованого генератора рівномірно розподілених випадкових чисел дорівнює 33, а зміщення – 20, тобто випадкова величина приймає значення, починаючи з 20.
Як зазначалося раніше, у блоці GENERATE можна використовувати функції й арифметичні змінні, попередньо визначені командами FUNCTION, VARIABLE або FVARIABLE. Але в цих командах не повинно бути посилань на параметри транзактів, тому що транзактів ще немає. В операндах блоку ADVANCE посилання на параметри транзактів можливі. Але тоді цим параметрам повинні бути попередньо присвоєні відповідні значення. Наприклад:
ADVANCE P2
ADVANCE (Exponental(15,0,MX$Droh(P5,P$Tpoh)))
У першому прикладі транзакт затримується на час, що дорівнює значенню параметра 2 транзакта. У другому прикладі час затримування визначається за експоненціальним законом. Середнє значення вибирається з елемента матриці, номери рядка й стовпця якого перебувають в параметрі 5 і параметрі з назвою Tpoh відповідно. Для генератора експоненційного розподілу джерелом рівномірно розподілених випадкових чисел в інтервалі (0,1) є генератор номер 15 (RN15). Схема діаграми використання блоків SEIZE, ADVANCE і RELEASE наведено на рис. 5.1.
Рис. 5.1. Використання блоків SEIZE, ADVANCE і RELEASE в моделі
Транзакт, увійшовши в блок SEIZE, займе ОКП з назвою KANAL. Завдяки блоку ADVANCE він на 20±3 одиниць часу затримається в ОКП, а потім залишить його. Після того, як транзакт увійде в блок RELEASE, здійснюється спроба входження транзакту у наступний блок моделі. Наступний транзакт спробує використати ОКП, що називається KANAL.
Блок ADVANCE можна розташовувати в будь-яких місцях моделі, а не тільки між блоками SEIZE і RELEASE.