Подання моделей у вигляді блок-діаграм

Структура програми на GPSS може бути описана у вигляді блок-діаграм. Блок-діаграма – це послідовність блоків, з'єднаних між собою лініями, згідно яких здійснюється рух транзактів. Графічне зображення і формати блоків наве­де­ні у додатку 1. Для побудови модель будується наступним чином. Із множи­ни блоків обирають необхідні. Їх з’єднують у вигляді діаграми з врахуванням взаємодії один з одним у процесі функціонування моделі. Використання блоків для побудови моделей залежить від логічних схем роботи реальних систем, що моделюються на ЕОМ. Типовий вигляд блок-діаграми до імітаційних моделей на GPSS представлений на рис. 4.2.

Конфігурація блок-діаграми моделі відображає напрямки руху транз­ак­­­тів у процесі їх переміщення від блоку до блоку. Зокрема, поява транзак­тів у моде­лі описується блоком GENERATE, а затримування у часі здійс­нює блок ADVANCE. За виведення транзактів відповідає блок TERMINA­TE. Будь-який блок системи має входи та виходи. За їх допомо­гою здійсню­ється зв’язок блоків у моделі. Блоки GENERATE і TERMINATE мають особливий статус – перший має лише вихід, а другий має лише вхід.

На початку моделювання в моделі немає жодного транзакта. У процесі моделювання транзакти входять у модель і залишають її у певні моменти часу, відповідно до тих логічних умов, які виникають у системі.

Загалом у моделі існує значне число транзактів. Однак у певний момент часу переміщається від блоку до блоку тільки один транзакт згідно блок-діаграми. Кожний блок можна розглядати як місце звертання до відповідної підпрограми, яка викликається на виконання у момент входження транзакта у блок. Таке просування транзакту у цьому і наступних блоках триває доти, поки не відбудеться одна з наступних подій [1, 6]:

· транзакт входить у блок, що призначений для затримування транзакта на визначений модельний час;

· транзакт входить у блок, який видаляє транзакт з моделі;

· транзакт намагається ввійти в наступний блок відповідно до запропо­но­­ваної блок-діаграмою логіки, однак блок відмовляється прийняти цей транзакт;

· транзакт залишається в тому блоці, у якому він у цей час перебуває, і буде повторювати свої спроби ввійти в наступний блок.

Рис. 4.2. Блок-діаграма моделі системи

Виникнення однієї з перерахованих умов залишає транзакт на місці й дозволяє переміщення в моделі іншого транзакта. Реалізація моделі полягає в послідовному звертанні до підпрограм, зумовленим надходженням в певні блоки транзактів. Проходячи через блоки, кожний транзакт вносить свій внесок у вміст лічильників блоків. Значення цих лічильників доступні розроблювачеві через системні числові атрибути (СЧА) блоків: W – поточний вміст блоку й N – загальна кількість входів у блок.

Транзакт, що просувається у даний момент часу в моделі, називається активним. Проміжок часу, протягом якого транзакт знаходиться у моделі, називається резидентним часом транзакта. Проміжок часу, протягом якого транзакт переходить від одного місця моделі до іншого, називається транзитним часом.

Кожне просування транзакта в моделі є подією,що має відбутися в певний момент модельного часу. Для того, щоб підтримувати правильну часову послідовність подій, планувальник має таймер модельного часу, що автоматично корегується відповідно до логіки моделювання системи. Модельний час характеризує тривалість функціонування системи під час проведення імітаційного моделювання на ЕОМ.

Таймер GPSS має наступні особливості:

· реєструються лише додатні дійсні значення часу;

· одиниця модельного часу визначається розробником моделі і має правильно відображати події реальної системи у моделі. Значення одиниці модельного часу визначаються у формі часових даних моделі;

· планувальник не аналізує стан моделі у кожний наступний момент мо­дель­ного часу (що відрізняється від поточного на одиницю модельного часу), а просуває таймер до моменту часу, коли повинна відбутися найближча наступна подія.

Значення таймера доступні розробнику через системні СЧА С1 (відносний модельний час) і АС1 (абсолютний модельний час). Оскільки одиниця часу не повідомляється моделі, тому всі дані моделі, пов’язані з часом, мають бути призначені користувачем через одиницю часу.

Розглянемо більш детально механізм зміни таймера модельного часу і логіку процесу моделювання на прикладі моделювання СМО з неоднорідним потоком вимог. Для формування такого потоку вимог y GPSSW-моделі міс­тить­ся декілька операторів GENERATE, які відповідають числу класів вимог.

В початковий момент часу значення таймеру модельного часу встанов­люється в “0”. Для всіх класів вимог, які поступають у систему, у кожному з блоків GENERATE визначається по одному найближчому моменту появлен­ня транзакту, що відповідає моменту надходження чергової вимоги даного класу. Очевидно, що число таких вимог дорівнюватиме кількості класів вимог. Серед усіх цих моментів часу визначається момент з найменшим значенням (який відповідає найближчій події). Саме йому встановлюється значення таймера модельного часу. Це зумовлює рух такого транзакту від блоку GENERATE до наступного блоку, момент надходження якого співпа­дає із значенням таймера. Просування транзакту у моделі здійснюватиметься до того часу, поки він не попаде у блок, який “відмовляється” прийняти його доти, поки у моделі не зміняться певні умови. У цьому випадку транзакт залишається у попередньому блоці. Якщо транзакт входить у блок, функцією якого є вилучення транзакту з моделі, тоді такий транзакт знищується.

Якщо у моделі є ще транзакт з таким же моментом часу появлення, тоді починається його просування, але значення таймера модельного часу не змінюється. Зміна таймера модельного часу проходить лише у тому випад­ку, коли у моделі немає ні одного транзакта з таким же моментом часу появлення.

Побудові блок-діаграми повинні передувати досить детальний аналіз і проектування предметної області інформаційної моделі із вказуванням всіх джерел інформації, різних документів, шляхів їхньої передачі, засобів і способів обробки. Ступінь деталізації інформаційної моделі залежить від цілей моделювання.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: