
- •1.2 Таймер модельного часу
- •1.3 Типи операторiв
- •1.4 Внесення транзактiв до моделi.
- •1.6 Елементи, що вiдображають одноканальнi обслуговуючi пристрої
- •1.8 Збiр статистики при чеканні
- •2 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Приклад моделювання одноканальної смо з чергою
- •3 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Порядок виконання роботи
- •1 Короткі теоретичні відомості
- •2 Порядок виконання роботи
1.6 Елементи, що вiдображають одноканальнi обслуговуючi пристрої
Розглянемо елементи, що використовуються для представлення власне обслуговування. Аналогами обслуговуючих елементiв можуть бути люди, механiзми, лiнiї зв’язку й iншi об’єкти реальних систем. У GPSS такі об’єкти моделюються за допомогою одноканальних та багатоканальних пристроiв обслуговування, а також логiчних ключiв.
Одноканальні обслуговуючі пристрої характеризуються двома основними властивостями.
1. Кожний пристрiй в будь-який момент часу може обслуговувати тiльки один травзакт. Якщо в процесi обслуговування з’являється новий транзакт, то вiн повинен:
- або дочекатися свого часу, вставши в чергу;
- або перемiститися в iнше мiсце;
- або, якщо вiн є важливiшим, пристрiй перериває поточне обслуговування i починає обслуговувати його.
2. Коли у пристрiй поступає транзакт, вiн повинен пробути там час, необхiдний для обслуговування.
Всім пристроям присвоюються iмена. Вони можуть бути або числовими (числа мають бути цілими позитивними) або символiчними.
Для того, щоб використати одноканальний обслуговуючий пристрій, транзакту необхiдно виконати такi кроки.
1. Чекати своєї черги, якщо це необхiдно. Очiкування вимагає деякого iнтервалу часу.
2. Коли пiдходить черга, зайняти пристрiй. Подiя “заняття пристрою” вiдбувається в деякій точцi модельного часу.
3. Пристрiй перебуває в станi зайнятостi доти, доки не закiнчиться обслуговування. Для обслуговування потрiбний деякий інтервал часу.
4. Коли обслуговування закiнчується, звiльнити пристрiй. Подiя “звiльнення пристрою” вiдбувається в деякiй точцi часу.
Ця послiдовнiсть крокiв виконується GPSS при моделюванні використання пристрою. Другий і четвертий кроки реалiзовуються блоками
SEIZE (ЗАЙНЯТИ) і RELEASE (ЗВIЛЬНИТИ).
У той час, як транзакти перебувають в моделi тимчасово, використовуванi в моделі пристрої знаходяться там протягом всього перiоду моделювання.
Статистична iнформацiя про роботу пристрою при моделюваннi збирається автоматично. Статистику про роботу пристрою можна спостерiгати у вiкнi пристроїв при роботi з програмою, перейшовши в це вiкно за допомогою натискання клавiшiв [ALT+F].
Реалiзацiя затримки у часi.
Блок ADVANCE (ЗАТРИМАТИ) здiйснює реалiзацiю затримки переміщення транзакту протягом деякого iнтервалу часу. Зазвичай цей iнтервал задається випадковою змінною.
У GPSS можливi такi варiанти розподiлу часу обслуговування:
- рiвномiрний розподiл iнтервалу обслуговування;
- iншi види розподiлу iнтервалiв обслуговування.
Як i при використаннi блока GЕNЕRАТЕ особливо розглядається рiвномiрний розподiл випадкових величин. Застосування складніших видiв розподiлiв вимагає використання функцiй.
Формат блока:
ADVANCE А,[B]
Блок нiколи не перешкоджає входу транзакту. Будь-яка кiлькість транзактiв може знаходитися в цьому блоцi одночасно. Коли транзакт попадає в такий блок, виконується вiдповiдна пiдпрограма i обчислюється час перебування транзакту в ньому. Новоприбулий транзакт ніяк не впливає на той транзакт, що вже знаходиться в блоці.
Якщо час перебування в блоцi дорiвнює нулю, замiсть затримки в блоцi ADVANCE iнтерпретатор вiдразу ж намагається перемiстити цей транзакт в наступний блок.
Приклад 1.2
Використання блока ADVANCE:
ADVANCE 30,5
Час затримки транзакту в цьому блоцi - це випадкова величина, рiвномірно розподілена на iнтервалi [25, 35], i яка приймає одне з 11 цілих значень.
Приклад 1.3
Класичний випадок використання послiдовностi SEIZE – ADVANCE -
RELEASE:
SEIZE PROCESOR
ADVANCE 16,4
RELEASE PROCESOR
Транзакт,
рухаючись по цьому ланцюжку блоків,
займе пристрiй
із символiчним
iменем
PROCESOR,
затримається там на 16
4
од. часу i
потiм
покине його. Пiсля
того, як транзакт увiйде
в блок RELEASE
i
відповідна цьому блоку пiдпрограма
закiнчиться,
iнтерпретатор
спробує перемiстити
транзакт в наступний блок моделi
i
наступний транзакт вже може використати
пристрiй
PROCESOR.