Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МКС. Лаб. роботи.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.2 Mб
Скачать

ЗМІСТ

Лабораторная работа № 1.

Знайомство з мовою імітаційного моделюванняGPSS/PC …………………......................

Лабораторная работа № 2.

Моделювання дискретних і безперервних випадкових величин…………….....................

Лабораторная работа № 3.

Моделювання одноканальної СМО з одним потоком заявок………………......................

Лабораторная работа № 4.

Моделювання одноканальної СМО з декількома потокоми заявок …..….......................

Лабораторная работа № 5.

Моделювання одноканальної СМО з двома потокоми заявок, які мають

пріоритети ....................................................................................................…..….................

Лабораторная работа № 6.

Моделювання одноканальної СМО із зворотнім зв’язком .................................................

Лабораторная работа № 7.

Моделювання багатоканальної СМО ....................................................................................

Лабораторная работа № 8.

Моделювання СМО з перерозподілом потока заявок ...........................................................

Лабораторная работа № 9.

Моделювання СМО з вімовами в обслуговуванні .................................................................

ЛАБОРАТОРНА РОБОТА № 1

ЗНАЙОМСТВО З МОВОЮ ІМІТАЦІЙНОГО МОДЕЛЮВАННЯ GPSS/PC

Мета работи: познайомитися з мовою GPSS/PC , її можливостями, основними засобами, принципами моделювання.

1 СИСТЕМА ІМІТАЦІЙНОГО МОДЕЛЮВАННЯ GPSS/PC

1.1 Об’єкти

Мова GPSS - це мова декларативного типу, побудована за принципами об’єктозорiєнтованої мови. Основними елементами цiєї мови є транзакти і блоки, якi вiдображають вiдповiдно динамiчнi i статичнi об’екти системи, що моделюється.

Моделюючi об’єкти в системi призначенi для рiэних цiлей. Вибiр об’єктiв у конкретнiй моделi залежить вiд характеристик модельованої системи. Кожний об’єкт має деяке число властивостей, названих в GPSS стандартними числовими атрибутами (СЧА). Частина СЧА доступна користувачевi тiльки для читання, а на значення iншої частини вiн може впливати через використання вiдвовiдних блокiв.

Блоки i транзакти. Кожна GPSS – модель обов’язково повинна мiстити такi обекти, як блоки i транзакти.

У GPSS концепцiя передачi керування вiд блока до блока має специфiчнi особливостi. Послiдовнiсть блокiв GPSS – моделі вiдображає напрями, в яких перемiщаються елементи. Кожний такий елемент називаеться транзактом. Транзакти є динамiчними елементами GPSS – моделі.

Блоки мови GPSS являють собою пiдпрограми, написанi мовою макроасемблера i мiстять набiр параметрiв (операндiв) для звернення до них. Як i всi мови моделювання GPSS має деякий внутрiшнiй механiзм передачi керування, який реалiзовується в модельному часi, що дозволяє вiдображати динамiчнi процеси в реальних системах. Передача керування вiд блока до блока в GPSS - програмах здiйснюється за допомогою руху транзактiв в модельному часі; звернення до підпрограм блоків відбувається через рух транзактів.

Змістовне значення транзактiв визначає розробник моделi. Саме вiн встановлює аналогiю мiж транзактами і реальними елементами системи, що моделюється. Така аналогiя нiколи не вказується iнтерпретатору GPSS, вона залишається в уявi розробника моделей. У табл. 1.1 наведенi деякi приклади аналогiй мiж транзактами i елементами реальних систем.

Таблиця 1.1

З програмної точки зору транзакт являє собою структуру даних, яка мiстить такi поля:

- iм’я або номер транзакту;

- час виникнення транзакту;

- поточний модельний час;

- номер блока, де знаходиться транзакт;

- номер блока, куди вiн перемiщується;

- момент часу початку перемiщення;

- прiоритет транзакту;

- параметри транзакту: Р1, Р2, ...

У мовi GPSS всi транзакти нумеруються в мiру їх появи у моделi. Параметри транзактiв вiдображають властивостi динамiчного обекта, що моделюється. Наприклад, якщо моделюється рух автомобiлiв на дiлянцi дороги, то параметрами транзакту (автомобiля) залежно в цiлей моделювання можуть бути швидкiсть, гальмовий шлях, габарити та iн.

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

Таким чином, на самому початку моделювання в GPSS – моделі немає жодного транзакту. У процесi моделювання транзакти входять у певний момент часу в модель вiдповiдно до тих логiчних потреб, якi виникають у системi, що моделюється. Подiбним чином транзакти покидають модель залежно вiд специфiки моделювання. У загальному випадку в моделi iснує деяка кiлькiсть транзактiв, проте в кожний момент часу рухається тiльки один з них.

Якщо транзакт розпочав свiй рух, вiн перемiщується вiд блока до блока по шляху, вказаному блок-схемою (логiкою роботи молелi). У той момент, коли транзакт входить у блок, до виконання викликається вiдповідна підпрограма. Далi транзакт (у загальному випадку) намагається ввiйти в наступний блок. Його перемiщення продовжується доти, доки не станеться одна з таких можливих подiй.

1. Транзакт входить у блок, функцiєю якого є затримка транзакту на деякий певний модельний час.

2. Транзакт входить в деякий блок, функцiєю якого є видалення транзакту.

З. Транзакт намагається увiйти у наступний блок вiдповiдно до логiки

моделi, але блок не приймає цей транзакт; у цьому випадку вiн залишається у

тому блоцi, в якому в даний час знаходиться, але пiзнiше почне повторювати

свою спробу ввiйти в наступний блок. Коли умови в моделi змiняться, одна з

таких спроб може бути успiшною. Пiсля цього транзакт продовжить своє

перемiщення по моделi.

Якщо виникла одна з вказаних умов, транзакт залишається на мiсцi, i в моделi починається перемiщення iншого транзакту.

Об’єкти типу ‘ресурси”. Аналогами обслуговуючих пристроїв реальних систем у GPSS є об’єкти типу “ресурси”. До об’єктiв цього типу вiдносять пристрої, багатоканальні пристрої і логічні ключі.

Як i в кожнiй об’єктозорiєнтованiй мовi в GPSS кожен об’ект має властивості та методи, якi змiнюють цi властивостi. У GPSS властивостi об’єктiв називають СЧА.

Пристрiй (одноканальний пристрiй) являе собою ресурс, який в будь- який момент часу може бути зайнятий тiльки одним транзактом. Iнтерпретатор автоматично обчислює такi СЧА, як загальний час зайнятостi пристрою, число транзактiв, що займали пристрiй тощо. Це дозволяє йому визначити коефiцiєнт використання кожного пристрою i середнiй час зайнятостi пристрою одним транзактом.

Багатоканальнi пристрої (БКП) (декiлька паралельних однакових пристроїв) являють собою об’єкти типу “ресурси” для паралельної обробки. Вони можуть бути використанi декiлькома транзактами одночасно. Користувач визначає мiсткість (кiлькiсть каналiв або однакових пристроїв) кожного БКП, що використовується у моделi, а iнтерпретатор веде облiк числа каналiв, зайнятих в кожний момент часу. Iнтерпретатор також автоматично вiдраховуе такi СЧА: число транзактiв, що увiйшли у БКП, середнє число каналiв, зайнятих одним транзактом, середнiй час перебування транзакту в пристрої тощо.

Певні подiї в системi можуть заблокувати або змiнити рух транзактiв. Наприклад, касир кiнотеатру, йдучи на обiд, ставить табличку “ Звертатися до наступного вiкна” i всi подальшi клiєнти протягом обiду звертаються в iншу касу. Для моделювання подібних ситуацiй введенi логiчнi ключi. Транзакт може встановлювати цi ключi у положення “Ввiмкнено” або “Вимкнено”. Згодом стан ключа може бути перевiрений iншими транзактами для визначення шляху проходження або часу чекання моменту зміни стану ключа. Стан ключа може бути змiнений будь-яким iншим транзактом.

Змiнні. Арифметичні змінні дозволяють обчислювати арифметичнi вираз що складаються з операцiй над СЧА об’єктiв. У виразах змiнних можуть бути використанi функцiї (бiблiотечнi або користувача). Булевi змінні дозволяють користувачевi перевiряти одночасно декiлька умов, виходячи зi стану або значення обектiв та їхнiх СЧА.

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

Комiрки і матрицi збереження величин. Комiрки і матрицi збереження величин використовуються для збереження деякої призначеної для користувача числової iнформацiї i транзакт може здiйснити запис в цi об’єкти. Згодом записану в цi об’єкти iнформацiю може зчитувати будь-який транзакт. Таким чином, цi об’єкти є глобальними і доступними з будь-якої частини моделi.

Черги. У будь-якiй системi рух потоку транзактiв може бути затриманий через недоступнiсть ресурсiв (наприклад, потрiбнi пристрої або БКП вже зайнятi). У цьому випадку затримані транзакти становляться в чергу - ще один тип об’ектiв GPSS. Облiк цих черг становить одну з основних функцiй iнтерпретатора. Користувач може спецiально визначити точки моделi, в яких треба збирати статистику про черги, тобто встановити реєстратори черги. Тодi iнтерпретатор буде автоматично збирати статистику про черги (довжину черги, середний час перебування в черзi і т.iн.). Вся ця iнформацiя є СЧА i доступна користувачевi в процесі моделювання. Число затриманих транзактiв і тривалiсть цих затримок визначається тiльки в цих заданих точках.

Таблицi. Обект “таблиця” призначений для збору статистики про випадковi величини, заданi користувачем. Таблиця складається iз частотних класiв, в якi заноситься число попадань конкретної величини (деякого СЧА).

Для кожної таблицi обчислюється математичне сподівання i середньоквадратичне вiдхилення.

1.2 Таймер модельного часу

Рiзнi подiї реальних систем вiдбуваються протягом деякого перiоду часу. Наприклад, покупцi приходять до магазину, i коли настас їхня черга, вони обслуговуються. Коли покупки зробленi, покупцi покидають магазин. Якщо всi цi подiї представити в моделi, то їх виникнення повинно вiдбуватися на фонi модельного часу. Iнтерпретатор автоматично обслуговує таймер модельпого часу.

З початком моделювання в iнтерпретаторi планується поява першого транзакту. Пiсля цього таймер модельного часу встановлюється в значения часу, яке вiдповiдає моменту появи першого транзакту в моделi. Цей транзакт (і iншi, якщо вони надходять в цей же момент часу) входить у модель. Далi вiн перемiщається через усi можливi блоки моделi, що йому зустрiчаються. Подiї, якi виникають внаслiдок перемищення транзакту через блоки, плануються на подальшi моменти часу. Природно, що в цей перший вiдмiчений момент часу нiчого бiльше в системі не вiдбувається. Iнтерпретатор GPSS перемiщує далi значення таймера до того значения часу, в яке вiдбувається наступна подiя, ним запланована. Якщо в цей другий, вiдмiчений таймером, момент часу не залишається транзакту, який треба перемiщувати, таймер знову рухається вперед i т.д. Саме так і вiдбувається змiна модельного часу.

1.3 Типи операторiв

Оператори GPSS подiляють на такi три типи:

- блоки;

- оператори опису даних i контролю керування;

- команди GPSS.

Загальнi вiдомостi про формат блокGPSS. У GPSS для посилань на числа, блоки i об’єкти застосовуються iмена. Iм’я являє собою алфавiтно- цифрову послiдовнiсть завдовжки до 20 символiв, що починається з букви. Допускається застосування символiв тiльки латинського алфавiту.

Формат GPSS - блоків такий:

[Номер рядка] [<Мітка>] <Операцiя > <Операнди> <; Коментарі >

Номер рядна. Необов’язкове поле. Починається з першої позицiї рядка. Являє собою десяткове число.

Мітка. Змістом поля є ім’я.

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

Операнди. Блоки можуть мати операнди. Операнди блокiв задають iнформацію, специфiчну для дiї даного блока. Число операндiв кожного блока залежить вiд типу блока. У блоках не може використовуватися 6ідьше семи операндів. Операнди в загальному випадку позначаються символами: А, В, С, D, Е, F, G. Однi операнди деяких блокiв повиннi бути специфiкованi завжди, а інші можуть задаватися або не задаватися. Операнди слiдують один за одним i вiддiляються комами. Мiж ними не повинно бути пропускiв. Пропуск в полі операндiв означає, що операнди закiнчилися i iнтерпретатор припиняє читання рядка. Пропуск в записi необов’язкових операндiв вiдмiчається символом “,”.

Коментарi. Необов’язкове поле. У GPSS допускаються коментарi з

використанням великих i малих букв латинського алфавiту; відділяються вiд

поля операндiв символом ;. Допускається запис коментарю з початку рядка. У цьому випадку в першiй позицiї рядка ставиться символ ; або * .

Рядок опису блока може містити до 79 символiв. Квадратнi дужки [ ] вказують на необов’язковiсть поля.

Cлід відмітити, що іменами i мiтками не можуть бути початковi символи назв блокiв, операторiв, команд i СЧА.