23411

Моделювання систем та мереж зв’язку на GPSS

Лекция

Информатика, кибернетика и программирование

Кожний оператор GPSS PC ставиться до одному із чотирьох типів: операториблоки оператори визначення об'єктів що управляють оператори й операторикоманди.ОператориБлоки формують логіку моделі. В GPSS PC є близько 50 різних видів блоків кожний з яких виконує свою конкретну функцію. За кожним з таких блоків коштує відповідна підпрограма транслятора а операнды кожного блоку служать параметрами цієї підпрограми.

Украинкский

2013-08-05

185.5 KB

2 чел.

МІНІСТЕРСТВО   ІНФРАСТРУКТУРИ   УКРАЇНИ

Державний університет інформаційно-комунікаційних технологій

КАФЕДРА           інфокомунікацій____________

ЗАТВЕРДЖУЮ

Завідуючий кафедрою

_______________ Костік Б.Я.

       (підпис, прізвище)

“ ____ “  _________2011  року

Лекція №  8

з навчальної дисципліни __моделювання компютерних мереж 

напряму підготовки _______інформаційні технології________

освітньо-кваліфікаційного рівня ____cпеціаліст_____________

спеціальності _____ компютерні системи та мережі_________

Тема  Моделювання систем та мереж зв’язку на GPSS

                                                      (повна назва лекції)

Лекція розроблена стар. викладач каф. Інф. Срочинська Г.С.

(вчена ступінь та звання,  прізвище та ініціали автора)

Обговорено на засіданні кафедри (ПМК)

Протокол № __________

“ ____ “ _____________ 2011 року

Київ


Навчальні цілі: Вивчення основних понять моделювання комп’ютерних мереж,  ознайомлення з поняттями системи та моделі, співвідношенням між моделлю та системою, класифікацією  моделей,  видами  моделей, технологію моделювання;

Виховні цілі: Формування у студентів інженерно-технічного кругозору, методами  імітаційного моделювання для побудови  комп’ютерних систем та мереж, вміння ставити та вирішувати складні інженерні задачі, проводити аналіз, аргументовано робити висновки.       

Час  90 хв.

ПЛАН ПРОВЕДЕННЯ ЛЕКЦІЇ ТА РОЗРАХУНОК ЧАСУ

Вступ                                                                                                    10  хвилин

Навчальні питання

1. Моделювання систем та мереж зв’язку на GPSS                         70 хвилин

(найменування питання лекції)

Заключення                                                                                          10  хвилин

ЛІТЕРАТУРА:

(рекомендована для студентів)

1. В.Г. Кривуца, В.В. Барковський, Л.Н. Беркман. Математичне моделювання телекомунікаційних систем: Навч. посібник. –К.: Звязок, 2007.

НАВЧАЛЬНО-МАТЕРІАЛЬНЕ ЗАБЕЗПЕЧЕННЯ

(наочні посібники, схеми, таблиці, ТЗН та інше)

Діапроектор, дидактичні слайди


НАВЧАЛЬНІ МАТЕРІАЛИ

Вступ

  1.  Моделювання систем та мереж зв’язку на GPSS

Процеси функціонування різних систем і мереж зв'язки можуть бути представлені тією або іншою сукупністю систем масового обслуговування (СМО) - стохастических, динамічних, дискретно-безперервних математичних моделей. Дослідження характеристик таких моделей може проводитися або аналітичними методами, або шляхом імітаційного моделювання [1-6].
Імітаційна модель відображає стохастический процес зміни дискретних станів СМО в безперервному часі у формі моделюючого алгоритму. При його реалізації на ЕОМ виробляється нагромадження статистичних даних по тимі атрибутам моделі, характеристики яких є предметом досліджень. По закінченні моделювання накопичена статистика обробляється, і результати моделювання виходять у вигляді вибіркових розподілів досліджуваних величин або їхніх вибіркових моментів. Таким чином, при імітаційному моделюванні систем масового обслуговування мова завжди йде про статистичне імітаційне моделювання [5;6].
Складні функції моделюючого алгоритму можуть бути реалізовані засобами універсальних мов програмування (Паскаль, Си), що надає необмежені можливості в розробці, налагодженні й використанні моделі. Однак подібна гнучкість здобувається ціною більших зусиль, затрачуваних на розробку й програмування досить складних моделюючих алгоритмів, що оперують зі списковыми структурами даних. Альтернативою цьому є використання спеціалізованих мов імітаційного моделювання [5-7].
Спеціалізовані мови мають засобу опису структури й процесу функціонування моделируемой системи, що значно полегшує й спрощує програмування імітаційних моделей, оскільки основні функциии моделюючого алгоритму при цьому реалізуються автоматично. Програми імітаційних моделей на спеціалізованих мовах моделювання близькі до описів моделируемых систем природною мовою, що дозволяє конструювати складні імітаційні моделі користувачам, що не є професійними програмістами.
Одним з найбільш ефективних і розповсюджених мов моделювання складних дискретних систем є в цей час мова GPSS [1;4;7]. Він може бути з найбільшим успіхом використаний для моделювання систем, формализуемых у вигляді систем масового обслуговування. Як об'єкти мови використовуються аналоги таких стандартних компонентів СМО, як заявки, що обслуговують прилади, черги й т.п. Достатній набір подібних компонентів дозволяє конструювати складні імітаційні моделі, зберігаючи звичну термінологію СМО.
На персональних комп'ютерах (ПК) типу IBM/PC мова GPSS реалізована в рамках пакета прикладних програм GPSS/PC [8]. Основний модуль пакета являє собою інтегроване середовище, що включає крім транслятора із вхідної мови засобу уведення й редагування тексту моделі, її налагодження й спостереження за процесом моделювання, графічні засоби відображення атрибутів моделі, а також засобу нагромадження результатів моделювання в базі даних і їхньої статистичної обробки. Крім основного модуля до складу пакета входить модуль створення стандартного звіту GPSS/PC, а також ряд додаткових модулів і файлів.

Вихідна програма мовою GPSS/PC, як і програма на будь-якій мові програмування, являє собою послідовність операторів. Оператори GPSS/PC записуються й уводяться в ПК у наступному форматі:
номер_рядка ім'я операція операнды ; коментарі
Всі оператори вихідної програми повинні починатися з номе ра_рядка - цілого позитивного числа від 1 до 9999999. Після уведення операторів вони розташовуються у вихідній програмі відповідно до нумерації рядків. Звичайно нумерація виробляється з деяким кроком, відмінним від 1, щоб мати можливість додавання операторів у потрібне місце вихідної програми. Деякі оператори зручно вводити, не включаючи їх у вихідну програму. Такі оператори вводяться без номера рядка.
У справжнім виданні при описі формату операторів і в прикладах моделей номера рядків будуть опускатися для кращої читаності тексту.
Окремі оператори можуть мати ім'я для посилання на ці оператори в інших операторах. Якщо такі посилання відсутні, то цей елемент оператора не є обов'язковим.
У поле операції записується ключове слово (назва оператора), що вказує конкретну функцію, виконувану даним оператором. Це поле оператора є обов'язковим. У деяких операторів поле операції містить у собі також допоміжний операнд.
У полях операндов записується інформація, що уточнює й конкретизує виконання функції, певної в поле операції. Ці поля залежно від типу операції містять до семи операндов, розташованих у певній послідовності й позначуваних звичайно першими буквами латинського алфавіту від A до G. Деякі оператори взагалі не мають операндов, а в деяких операнды можуть бути опущені, при цьому встановлюються їхні стандартні значення (за замовчуванням). При записі операндов використовується позиційний принцип: пропуск операнда відзначається комі.
Необов'язкові коментарі у випадку їхньої присутності відділяються від поля операндов крапкою з коми. Коментарі не можуть містити букв російського алфавіту.
Оператори GPSS/PC записуються, починаючи з першої позиції, у вільному форматі, тобто окремі поля розділяються довільною кількістю пробілів. При уведенні вихідної програми в інтегрованому середовищі GPSS/PC розміщення окремих полів операторів з певною кількістю інтервалів між ними виробляється автоматично.
Кожний оператор GPSS/PC ставиться до одному із чотирьох типів: оператори-блоки, оператори визначення об'єктів, що управляють оператори й оператори-команди.
Оператори-Блоки формують логіку моделі. В GPSS/PC є близько 50 різних видів блоків, кожний з яких виконує свою конкретну функцію. За кожним з таких блоків коштує відповідна підпрограма транслятора, а операнды кожного блоку служать параметрами цієї підпрограми.
Оператори визначення про ъ ектов служать для опису параметрів деяких об'єктів GPSS/PC (про самі об'єкти мова йтиме далі). Прикладами параметрів об'єктів можуть бути кількість каналів у многоканальной системі масового обслуговування, кількість рядків і стовпців матриці й т.п. Керуючі оператори служать для керування процесом моделювання (прогоном моделі). Оператори-Команди дозволяють управляти роботою інтегрованого середовища GPSS/PC. Керуючі оператори й оператори-команди звичайно не включаються у вихідну програму, а вводяться безпосередньо із клавіатури ПК у процесі інтерактивної взаємодії з інтегрованим середовищем.
Після трансляції вихідної програми в пам'яті ПК створюється так звана поточна модель, що є сукупністю різного типу
об'єктів, кожний з яких являє собою деякий набір чисел у пам'яті ПК, що описує властивості й поточний стан об'єкта. Об'єкти GPSS/PC можна розділити на сім класів: динамічні, операційні, апаратні, статистичні, обчислювальні, запам'ятовувальні й що групують.
Динамічні об'єкти, що відповідають заявкам у системах масового обслуговування, називаються в GPSS/PC транзактами. Вони "створюються" і "знищуються" так, як це необхідно по логіці моделі в процесі моделювання. З кожним транзактом може бути зв'язане довільне число параметрів, що несуть у собі необхідну інформацію про цьому транзакте. Крім того, транзакты можуть мати різні пріоритети.
Операційні об'єкти GPSS/PC, називані блоками, відповідають операторам-блокам вихідної програми. Вони, як уже говорилося, формують логікові моделі, даючи транзактам вказівки: куди йти й що робити далі. Модель системи на GPSS/PC можна представити сукупністю блоків, об'єднаних відповідно до логіки роботи реальної системи в так звану блок-схему. Блок-схема моделі може бути зображена графічно, наочно показуючи взаємодію блоків у процесі моделювання.
Апаратні об'єкти GPSS/PC - це абстрактні елементи, на які може бути розчленоване (декомпозировано) устаткування реальної системи. До них ставляться одноканальні й многоканальные пристрої й логічні перемикачі. Многоканальное пристрій іноді називають пам'яттю.
Одноканальні й многоканальные пристрою відповідають обслуговуючим приладам у СМО. Одноканальний пристрій, що для стислості далі будемо називати просто пристроєм, може обслуговувати одночасно тільки один транзакт. Многоканальное пристрій (МКУ) може обслуговувати одночасно трохи транзактов. Логічні перемикачі (ЛП) використовуються для моделювання двійкових станів логічного або фізичного характеру. ЛП може перебувати у двох станах: включене й виключено. Його стан може змінюватися в процесі моделювання, а також опрашиваться для прийняття певних рішень.
Статистичні об'єкти GPSS/PC служать для збору й обробки статистичних даних про функціонування моделі. До них ставляться черги й таблиці.
Кожна черга забезпечує збір і обробку даних про транзактах, затриманих у якій-небудь крапці моделі, наприклад перед одноканальним пристроєм. Таблиці використовуються для одержання вибіркових розподілів деяких випадкових величин, наприклад часу перебування транзакта в моделі.
До обчислювальних об'єктів GPSS/PC ставляться змінні (арифметичні й булевские) і функції. Вони використовуються для обчислення деяких величин, заданих арифметичними або логічними вираженнями або табличними залежностями.
Запам'ятовувальні об'єкти GPSS/PC забезпечують зберігання в пам'яті ПК окремих величин, використовуваних у моделі, а також масивів таких величин. До них ставляться так звані зберігати^ся величины, що, і мат рицы величин, що зберігаються.
До об'єктів класу, що групує, ставляться списки користувача й групи. Списки користувача використовуються для організації черг із дисциплінами, відмінними від дисципліни "раніше прийшов - раніше обслужений". Групи в даному виданні розглядатися не будуть.
Кожному об'єкту того або іншого класу відповідають числові атрибути, що описують його стан у цей момент модельного часу. Крім того, є ряд так званих системних атрибутів, що ставляться не до окремих об'єктів, а до моделі в цілому. Значення атрибутів всіх об'єктів моделі по закінченні моделювання виводяться в стандартний звіт GPSS/PC. Більша частина атрибутів доступна програмістові й становить так звані стандартні числові атрибути (СЧА), які можуть використовуватися в якості операндов операторів вихідної програми. Всі СЧА в GPSS/PC є цілими числами.
Кожний об'єкт GPSS/PC має ім'я й номер. Імена об'єктам даються в різних операторах вихідної програми, а відповідні їм номера транслятор привласнює автоматично. Ім'я об'єкта являє собою послідовність, що починається з букви, букв латинського алфавіту, цифр і символу "підкреслення". При необхідності ім'я будь-якого об'єкта, крім ім'я блоку, можна поставити у відповідність будь-який номер за допомогою оператора опису EQU, що має наступний формат:
ім'я EQU номер Блокам привласнюються їхні порядкові номери у вихідній програмі (не плутати з номерами рядків!). Для посилання на який-небудь стандартний числовий атрибут деякого об'єкта відповідний операнд оператора вихідної програми записується одним з наступних способів:
1
СЧА $ ім'я ;
1.5
Счаj, де СЧА - системне позначення (назва) конкретного стандартного числового атрибута даного об'єкта; ім'я - ім'я об'єкта; j - номер об'єкта; $ - символ-роздільник.
Прогін поточної моделі, тобто властиво моделювання, виконується за допомогою спеціальної керуючої програми, що називають симулятором (від англійського SIMULATE - моделювати, імітувати). Робота GPSS-Моделі під керуванням симулятора полягає в переміщенні транзактов від одних блоків до іншим, аналогічно тому, як у моделируемой СМО переміщаються заявки, що відповідають транзактам.
У початковий момент часу в GPSS-Моделі немає жодного транзакта. У процесі моделювання симулятор генерує транзакты в певні моменти часу відповідно до тих логічних потреб, які виникають у моделируемой системі. Подібним же чином транзакты залишають модель у певні моменти часу залежно від специфіки моделируемой системи. У загальному випадку в моделі одночасно існує велике число транзактов, однак у кожний момент часу симулятор здійснює просування тільки якого-небудь одного транзакта.
Якщо транзакт почав свій рух, він переміщається від блоку до блоку по шляху, запропонованому блок-схемою. У той момент, коли транзакт входить у деякий блок, на виконання викликається підпрограма симулятора, що відповідає типу цього блоку, а після її виконання, при якому реалізується функція даного блоку, транзакт "намагається" увійти в наступний блок. Таке просування транзакта триває доти, поки не відбудеться одне з наступних можливих подій:
1) транзакт входить у блок, функцією якого є видалення транзакта з моделі;
2) транзакт входить у блок, функцією якого є затримка транзакта на деяке певне в моделі час;
3) транзакт "намагається" увійти в наступний блок, однак блок "відмовляється" прийняти його. У цьому випадку транзакт залишається в тім блоці, де перебував, і пізніше буде повторювати свою спробу ввійти в наступний блок. Коли умови в моделі зміняться, така спроба може виявитися успішної, і транзакт зможе продовжити своє переміщення по блок-схемі. Якщо виникло одне з описаних вище умов, обробка даного транзакта припиняється, і починається переміщення іншого транзакта. Таким чином, виконання моделювання симулятором триває постійно.
Проходячи через блоки моделі, кожний транзакт вносить вклад у вміст лічильників блоків. Значення цих лічильників доступні програмістові через СЧА блоків: W - поточний уміст блоку й N - загальна кількість входів у блок.
Кожне просування транзакта в моделі є подією, що повинне відбутися в певний момент модельного часу. Для того, щоб підтримувати правильну тимчасову послідовність подій, симулятор має таймер модельного часу, що автоматично коректується відповідно до логіки, запропонованою моделлю.
Таймер GPSS/PC має наступні особливості:
1) реєструються тільки цілі значення (всі тимчасові інтервали в моделі зображуються цілими числами);
2) одиниця модельного часу визначається розроблювачем моделі, що задає всі тимчасові інтервали в тих самих, обраних їм одиницях;
3) симулятор не аналізує стан моделі в кожний наступний момент модельного часу ( щовідстоїть від поточні на одиницю модельного часу), а просуває таймер до моменту часу, коли відбувається найближча наступна подія.
Значення таймера доступні програмістові через системні СЧА C1 ( відносний час ) і AC1 ( абсолютний час ).
Центральним завданням, виконуваної симулятором, є визначення того, який транзакт треба вибрати наступної для просування в моделі, коли його попередник припинив своє просування. Із цією метою симулятор розглядає кожний транзакт як елемент деякого списку. У відносно простих моделях використовуються лише два основних списки: список поточних подій і список майбутніх подій.
Список поточних подій містить у собі ті транзакты, плановане час просування яких дорівнює або менше поточного модельного часу (до останнього ставляться транзакты, рух яких було заблоковано раніше). Він організується в порядку убування пріоритетів транзактов, а в межах кожного рівня пріоритету - у порядку надходження транзактов.
Список майбутніх подій містить у собі транзакты, плановане час просування яких більше поточного часу, тобто події, пов'язані із просуванням цих транзактов, повинні відбутися в майбутньому. Цей список організується в порядку зростання планованого часу просування транзактов.
Симулятор GPSS/PC поміщає транзакты залежно від умов у моделі в той або інший список і переносить транзакты зі списку в список, переглядає списки, вибираючи наступний транзакт для обробки, коректує таймер модельного часу після обробки всіх транзактов у списку поточних подій.

ОСНОВНІ БЛОКИ GPSS/PC І ПОВ'ЯЗАНІ З НИМИ ОБ'ЄКТИ
 2.1. Блоки, пов'язані із транзактами
 Із транзактами зв'язані блоки створення, знищення, затримки транзактов, зміни їхніх атрибутів і створення копій транзактов.
Для створення транзактов, що входять у модель, служить блок
GENERATE (генерувати), що має наступний формат:
ім'я
GENERATE A,B,C,D,E
У поле
A задається середнє значення інтервалу часу між моментами надходження в модель двох послідовних транзактов. Якщо цей інтервал постійний, то поле B не використовується. Якщо ж інтервал надходження є випадковою величиною, то в поле B вказується модифікатор середнього значення, що може бути заданий у вигляді модифікатора-інтервалу або модифікатор-функції.
Модифікатор-Інтервал використовується, коли інтервал надходження транзактов є випадковою величиною з рівномірним законом розподілу ймовірностей. У цьому випадку в поле B може бути заданий будь-який СЧА, крім посилання на функцію, а діапазон зміни інтервалу надходження має границі A-B, A+B.
Наприклад, блок
GENERATE 100,40 створює транзакты через випадкові інтервали часу, рівномірно розподілені на відрізку [60;140].
Модифікатор-Функція використовується, якщо закон розподілу інтервалу надходження відмінний від рівномірного. У цьому випадку в поле B повинна бути записана посилання на функцію (її СЧА), що описує цей закон, і випадковий інтервал надходження визначається, як ціла частина добутку поля A (середнього значення) на обчислене значення функції.
У поле C задається момент надходження в модель першого транзакта. Якщо це поле порожньо або дорівнює 0, то момент появи першого транзакта визначається операндами A і B. Поле D задає загальне число транзактов, що повинне бути створене блоком GENERATE. Якщо це поле порожньо, то блок генерує необмежене число транзактов до завершення моделювання.
У поле E задається пріоритет, що привласнюється генерируемым транзактам. Число рівнів пріоритетів необмежено, причому найнижчий пріоритет - нульової. Якщо поле E порожньо, то генерируемые транзакты имeют нульовий пріоритет.
Транзакты мають ряд стандартних числових атрибутів. Наприклад, СЧА з назвою PR дозволяє посилатися на пріоритет транзакта. СЧА з назвою M1 містить так званий скільки-небудь час транзакта, тобто час, що пройшов з моменту входу транзакта в модель через блок GENERATE. СЧА з назвою XN1 містить внутрішній номер транзакта, що є унікальним і дозволяє завжди відрізнити один транзакт від іншого. На відміну від СЧА інших об'єктів, СЧА транзактов не містять посилання на ім'я або номер транзакта. Посилання на СЧА транзакта завжди ставиться до активного транзакту, тобто транзакту, оброблюваному в цей момент симулятором.
Важливими стандартними числовими атрибутами транзактов є значення їхніх параметрів. Будь-який транзакт може мати необмежене число параметрів, що містять ті або інші числові значення. Посилання на цей СЧА транзактов завжди ставиться до активного транзакту й має вигляд P j або Р$ ім'я, де j і ім'я - номер і ім'я параметра відповідно. Таке посилання можливе тільки в тому випадку, якщо параметр із зазначеним номером або ім'ям існує, тобто в нього занесене яке-небудь значення.
Для присвоювання параметрам початкових значень або зміни цих значень служить блок ASSIGN (привласнювати), що має следущий формат:
ім'я ASSIGN A,B,C
У поле A вказується номер або ім'я параметра, у який заноситься значення операнда B. Якщо в поле A після ім'я (номера) параметра коштує знак + або -, то значення операнда B додається або віднімається з поточного вмісту параметра. У поле З може бути зазначені ім'я або номер функції-модифікатора, що діє аналогічно функції-модифікатору в поле B блоку GENERATE.
Наприклад, блок
ASSIGN 5,0 записує в параметр із номером 5 значення 0, а блок ASSIGN COUNT+,1 додає 1 до поточного значення параметра з ім'ям COUNT.
Для запису поточного модельного часу в заданий параметр транзакта служить блок MARK (відзначити), що має наступний формат:
ім'я MARK A
У поле A вказується номер або ім'я параметра транзакта, у який заноситься поточний модельний час при вході цього транзакта в блок MARK. Уміст цього параметра може бути пізніше використане для визначення транзитного часу перебування транзакта в якійсь частині моделі за допомогою СЧА з назвою MP.
Наприклад, якщо на вході ділянки моделі помістити блок
MARK MARKER, те на виході цієї ділянки СЧА MP$MARKER буде містити різниця між поточним модельним часом і часом, занесеним у параметр MARKER блоком MARK.
Якщо поле A блоку MARK порожньо, то поточний час заноситься на місце оцінки часу входу транзакта в модель, використовуваної при визначенні скільки-небудь часу транзакта за допомогою СЧА M1.
Для зміни пріоритету транзакта служить блок PRIORITY (пріоритет), що має наступний формат:
ім'я PRIORITY A,B
У поле A записується новий пріоритет транзакта. У поле B може втримуватися ключове слово BU, при наявності якого транзакт, що ввійшов у блок, міститься в списку поточних подій після всіх інших транзактов нової пріоритетної групи, і список поточних подій проглядається з початку. Використання такої можливості буде розглянуто нижче.
Для видалення транзактов з моделі служить блок TERMINATE (завершити), що має наступний формат:
ім'я TERMINATE A
Значення поля A указує, на скільки одиниць зменшується вміст так званого лічильника завершень при вході транзакта в даний блок TERMINATE. Якщо поле A не визначене, то воно вважається рівним 0, і транзакты, що проходять через такий блок, не зменшують умісту лічильника завершень.
Початкове значення лічильника завершень установлюється керуючим оператором START (почати), призначеним для запуску прогону моделі. Поле A цього оператора містить початкове значення лічильника завершень (див. разд. 3). Прогін моделі закінчується, коли вміст лічильника завершень звертається в 0. Таким чином, у моделі повинен бути хоча б один блок TERMINATE з непустим полем A, інакше процес моделювання ніколи не завершиться.
Поточне значення лічильника завершень доступно програмістові через системний СЧА TG1.
Ділянка блок-схеми моделі, пов'язаний з парою блоків GENERATE-ТERMINATE, називається сегментом. Прості моделі можуть складатися з одного сегмента, у складних моделях може бути кілька сегментів.
Наприклад, найпростіший сегмент моделі, що складає всього із двох блоків GENERATE і TERMINATE і наведений на мал. 1, у сукупності з управлящим оператором START моделює процес створення випадкового потоку транзактов, поступащих у модель із середнім інтервалом в 100 одиниць модельного часу, і знищення цих транзактов. Початкове значення лічильника завершень дорівнює 1000. Кожний транзакт, що проходить через блок TERMINATE, віднімає з лічильника одиницю, і в такий спосіб моделювання завершиться, коли тисячний по рахунку транзакт увійде в блок TERMINATE. При цьому точне значення таймера в момент завершення прогону непередбачено. Отже, у наведеному прикладі тривалість прогону встановлюється не за модельним часом, а по кількості транзактов, що пройшли через модель.
 1
GENERATE 100,40
TERMINATE 1
START 1000
1.5
 Рис. 1
 Якщо необхідно управляти тривалістю прогону за модельним часом, то в моделі використовується спеціальний сегмент, називаний сегментом таймера.
 1
GENERATE 100,40
TERMINATE
GENERATE 100000
TERMINATE 1
START 1
1.5
 Рис. 2
 Наприклад, у моделі із двох сегментів, наведеної на мал. 2, перший (основний) сегмент виконує ті ж функції, що й у попередньому прикладі. Помітимо, однак, що поле A блоку TERMINATE у першому сегменті порожньо, тобто знищувані транзакты не зменшують умісту лічильника завершень. У другому сегменті блок GENERATE створить перший транзакт у момент модельного часу, рівний 100000. Але цей транзакт виявиться й останнім у даному сегменті, тому що, увійшовши в блок TERMINATE, він перетворить в 0 уміст лічильника завершень, установлене оператором START рівним 1. Таким чином, у цій моделі гарантується завершення прогону в певний момент модельного часу, а точна кількість транзактов, що пройшли через модель, непередбачено.
У наведених прикладах транзакты, що входять у модель через блок GENERATE, у той же момент модельного часу знищувалися в блоці TERMINATE. У моделях систем масового обслуговування заявки обслуговуються приладами (каналами) СМО протягом деякого проміжку часу перш, ніж покинути СМО. Для моделювання такого обслуговування, тобто для затримки транзактов на певний відрізок модельного часу, служить блок ADVANCE (затримати), що має наступний формат:
ім'я ADVANCE A,B
Операнды в полях A і B мають той же зміст, що й у відповідних полях блоку GENERATE. Слід зазначити, що транзакты, що входять у блок ADVANCE, переводяться зі списку поточних подій у список майбутніх подій, а після закінчення обчисленого часу затримки вертаються назад, у список поточних подій, і їхнє просування по блок-схемі триває. Якщо обчислений час затримки дорівнює 0, то транзакт у той же момент модельного часу переходить у наступний блок, залишаючись у списку поточних подій.
Наприклад, у сегменті, наведеному на мал. 3, транзакты, що надходять у модель із блоку GENERATE через випадкові інтервали часу, що мають рівномірний розподіл на відрізку [60;140], попадають у блок ADVANCE. Тут визначається випадковий час затримки транзакта, що має рівномірний розподіл на відрізку [30;130], і транзакт переводиться в список майбутніх подій. Після закінчення часу затримки транзакт вертається в список поточних подій і входить у блок TERMINATE, де знищується. Помітимо, що в списку майбутніх подій, а значить і в блоці ADVANCE може одночасно перебувати довільна кількість транзактов.
 1
GENERATE 100,40
ADVANCE 80,50
TERMINATE 1
1.5
 Рис. 3

У розглянуті вище прикладах випадкові інтервали часу підкорялися рівномірному закону розподілу ймовірностей. Для одержання випадкових величин з іншими розподілами в GPSS/PC використовуються обчислювальні об'єкти: змінні й функції.
Як відомо, довільна випадкова величина зв'язана з випадковою величиною R, що має рівномірний розподіл на відрізку [0;1], через свою зворотну функцію розподілу. Для деяких випадкових величин рівняння зв'язку має явне рішення, і значення випадкової величини із заданим розподілом імовірностей може бути обчислене через R по формулі. Так, наприклад, значення випадкової величини E з показовим (експонентним) розподілом з параметром d обчислюється по формулі:
E=-(1/d)*ln(R) Нагадаємо, що параметр d має сенс величини, зворотної математичному очікуванню E, а, отже, 1/d - математичне очікування (середнє значення) випадкової величини E.
Для одержання випадкової величини R з рівномірним розподілом на відрізку [0;1] в GPSS/PC є убудовані генератори випадкових чисел. Для одержання випадкового числа шляхом звертання до такого генератора досить записати системний СЧА RN з номером генератора, наприклад RN1. Правда, убудовані генератори випадкових чисел GPSS/PC дають числа не на відрізку [0;1], а цілі випадкові числа, рівномірно розподілені від 0 до 999, але їх неважко привести до зазначеного відрізка розподілом на 1000.
Простіше всього описані обчислення в GPSS/PC виконуються з використанням арифметичних змінних. Вони можуть бути цілими й дійсними. Цілі змінні визначаються перед початком моделювання за допомогою оператора визначення VARIABLE (змінна), що має наступний формат:
ім'я VARIABLE вираження Тут ім'я - ім'я змінної, використовуване для посилань на неї, а выра жение - арифметичне вираження, що визначає змінну. Арифметичне вираження являє собою комбінацію операндов, у якості яких можуть виступати константи, СЧА й функції, знаків арифметичних операцій і круглих дужок. Варто помітити, що знаком операції множення в GPSS/PC є символ # (номер). Результат кожної проміжної операції в цілі змінні перетвориться до цілого типу шляхом відкидання дробової частини, і, таким чином, результатом операції розподілу є ціла частина частки.
Дійсні змінні визначаються перед початком моделювання за допомогою оператора визначення FVARIABLE, що має той же формат, що й оператор VARIABLE. Відмінність дійсних змінних від цілих полягає в тім, що в дійсних змінних всі проміжні операції виконуються зі збереженням дробової частини чисел, і лише остаточний результат приводиться до цілого типу відкиданням дробової частини.
Арифметичні змінні обох типів мають єдиний СЧА з назвою V, значенням якого є результат обчислення арифметичного вираження, що визначає змінну. Обчислення вираження виробляється при вході транзакта в блок, що містить посилання на СЧА V з ім'ям змінної.
Дійсні змінні можуть бути використані для одержання випадкових інтервалів часу з показовим законом розподілу. Нехай у моделі із приклада на мал. 3 розподілу часу надходження транзактов і часу затримки повинні мати показовий закон. Це може бути зроблене так, як показано на мал. 4.
 1
TARR FVARIABLE -100#LOG((1+RN1)/1000)
TSRV FVARIABLE -80#LOG((1+RN1)/1000)
GENERATE V$TARR
ADVANCE V$TSRV
TERMINATE 1
1.5
 Рис. 4

 Змінна з ім'ям TARR задає вираження для обчислення інтервалу надходження із середнім значенням 100, друга змінна з ім'ям TSRV - для обчислення часу затримки із середнім значенням 80. Блоки GENERATE і ADVANCE містять у поле A посилання на відповідні змінні, при цьому полі B не використовується, тому що в поле A утримується випадкова величина, що не бідує в модифікації.
Більшість випадкових величин не може бути отримане через випадкову величину R за допомогою арифметичного вираження. Крім того, такий спосіб є досить трудомістким, тому що вимагає звертання до математичних функцій, обчислення яких вимагає десятків машинних операцій. Іншим можливим способом є використання обчислювальних об'єктів GPSS/PC типу функція.
Функції використовуються для обчислення величин, заданих табличними залежностями. Кожна функція визначається перед початком моделювання за допомогою оператора визначення FUNCTION (функція), що має наступний формат:
ім'я FUNCTION A,B Тут ім'я - ім'я функції, використовуване для посилань на неї; A - стандартний числовий атрибут, що є аргументом функції; B - тип функції й число крапок таблиці, що визначає функцію.
Існує п'ять типів функцій. Розглянемо спочатку безперервні числові функції, тип яких кодується буквою C. Так, наприклад, у визначенні безперервної числової функції, таблиця якої містить 24 крапки, поле B повинне мати значення C24.
При використанні безперервної функції для генерування випадкових чисел її аргументом повинен бути один з генераторів випадкових чисел RNj. Так, оператор для визначення функції показового розподілу може мати такий вигляд:
EXP FUNCTION RN1,C24 Особливістю використання убудованих генераторів випадкових чисел RNj як аргументи функцій є те, що їхнього значення в цьому контексті інтерпретуються як дробові числа від 0 до 0,999999.
Таблиця з координатами крапок функції розташовується в рядках, що випливають безпосередньо за оператором FUNCTION. Ці рядки не повинні мати поля нумерації. Кожна крапка таблиці задається парою Xi (значення аргументу) і Yi (значення функції), відокремлюваних друг від друга коми. Пари координат відділяються друг від друга символом "/" і розташовуються на довільній кількості рядків. Послідовність значень аргументу Xi повинна бути строго зростаючої.
Як ми вже відзначали, при використанні функції в поле B блоків GENERATE і ADVANCE обчислення інтервалу надходження або часу затримки виробляється шляхом множення операнда A на обчислене значення функції. Звідси треба, що функція, використовувана для генерування випадкових чисел з показовим розподілом, повинна описувати залежність y=-ln(x), представлену в табличному виді. Оператор FUNCTION з такою таблицею, що містить 24 крапки для забезпечення достатньої точності апроксимації, має такий вигляд:
1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
1.5
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
Обчислення безперервної функції виробляється в такий спосіб. Спочатку визначається інтервал (Xi;Xi+1), на якому перебуває поточне значення Сча-Аргументу (у нашім прикладі - сгенерированное значення RN1). Потім на цьому інтервалі виконується лінійна інтерполяція з використанням відповідних значень Yi і Yi+1. Результат інтерполяції усікається (відкиданням дробової частини) і використовується як значення функції. Якщо функція служить операндом B блоків GENERATE або ADVANCE, то усікання результату виробляється тільки після його множення на значення операнда A.
Використання функцій для одержання випадкових чисел із заданим розподілом дає хоча й менш точний результат за рахунок погрішностей апроксимації, але зате з меншими обчислювальними витратами (кілька машинних операцій на виконання лінійної інтерполяції). Щоб до погрішності апроксимації не додавати занадто більшу погрішність усікання, середнє значення при використанні показових розподілів повинне бути досить більшим (не менш 50). Ця рекомендація ставиться й до використання змінних.
Функції всіх типів мають єдиний СЧА з назвою FN, значенням якого є обчислене значення функції. Обчислення функції виробляється при вході транзакта в блок, що містить посилання на СЧА FN з ім'ям функції.
Замінимо в прикладі на мал. 4 змінні TARR і TSRV на функцію EXP (мал. 5).
Оскільки в обох моделях використовується той самий генератор RN1, інтервали надходження й затримки, що обчислюються в блоках GENERATE і ADVANCE, повинні вийти досить близькими, а може бути й ідентичними. При великій кількості транзактов, що пропускаються через модель (десятки й сотні тисяч), різниця у швидкості обчислень повинна стати помітної.
 1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
ADVANCE 80,FN$EXP
TERMINATE 1
1.5
 Рис. 5
 Особливістю безперервних функцій є те, що вони приймають "безперервні" (але тільки целочисленные) значення в діапазоні від Y1 до Yn, де n - кількість крапок таблиці. На відміну від них диск ретные числові функції, тип яких кодується буквою D в операнде B оператора визначення функції, приймають тільки окремі (дискретні) значення, задані координатами Yi у рядках, що випливають за оператором визначення FUNCTION. При обчисленні дискретної функції поточне значення Сча-Аргументу, зазначеного в поле A оператора FUNCTION, рівняється за умовою <= послідовно з усіма значеннями впорядкованих по зростанню координат Xi до виконання цієї умови при деякому i. Значенням функції стає ціла частина відповідного значення Yi.
Якщо послідовність значень аргументу таблиці з координатами крапок функції представляє числа натурального ряду (1,2,3,...,n), те таку дискретну функцію з метою економії пам'яті й машинного часу зручно визначити як списковую числову функ цию (тип L).
Нехай у моделі на мал. 5 заявки, моделируемые транзактами, з рівною ймовірністю 1/3 повинні ставитися до одному із трьох класів (типів) 1,2 і 3, а середній час затримки обслуговування заявок кожного типу повинне становити відповідно 70, 80 і 90 одиниць модельного часу. Це може бути забезпечено способом, показаним на мал. 6.
У блоці ASSIGN у параметр TYPE кожного сгенерированного транзакта заноситься тип заявки, одержуваний за допомогою дискретної функції CLASS. Аргументом функції є генератор випадкових чисел RN1, а координати її таблиці являють собою зворотну функцію розподілу дискретної випадкової величини "клас заявки" з однаковими ймовірностями кожного із трьох значень випадкової величини.
Поле A блоку ADVANCE містить посилання на списковую функцію MEAN, аргументом якої служить параметр TYPE вхідних у блок транзактов. Залежно від значень цього параметра (типу заявки) середній час затримки приймає одне із трьох можливих значень функції MEAN: 70, 80 або 90 одиниць.
 1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
CLASS FUNCTION RN1,D3
.333,1/.667,2/1,3
MEAN FUNCTION P$TYPE,L3
1,70/2,80/3,90
GENERATE 100,FN$EXP
ASSIGN TYPE,FN$CLASS
ADVANCE FN$MEAN,FN$EXP
TERMINATE 1
1.5
 Рис. 6
 Слід зазначити, що в даному прикладі можна було б не використовувати параметр TYPE і обійтися одною дискретною функцією, що повертає з рівною ймовірністю одне із трьох можливих значень середнього часу затримки. Однак використання параметрів дає деякі додаткові можливості, які будуть розглянуті пізніше.
Транзакты можуть входити в модель не тільки через блок GENERATE, але й шляхом створення копій уже існуючих транзактов у блоці SPLIT (розщепити), що має наступний формат:
ім'я SPLIT A,B,C
У поле A задається число створюваних копій вихідного транзакта (батька), що входить у блок SPLIT. Після виходу із блоку SPLIT транзакт-батько направляється в наступний блок, а всі транзакты-нащадки надходять у блок, зазначений у поле B. Якщо поле B порожньо, то всі копії надходять у наступний блок.
Транзакт-Батько і його нащадки, що виходять із блоку SPLIT, можуть бути пронумеровані в параметрі, ім'я або номер якого зазначені в поле C. Якщо в транзакта-батька значення цього параметра при вході в блок SPLIT було дорівнює k, то при виході із блоку воно стане рівним k+1, а значення цього параметра в транзактов-нащадків виявляться рівними k+2, k+3 і т.д.
Наприклад, блок
SPLIT 5,MET1,NUM створює п'ять копій вихідного транзакта й направляє їх у блок з ім'ям MET1. Транзакт-Батько й нащадки нумеруються в параметрі з ім'ям NUM. Якщо, наприклад, перед входом у блок значення цього параметра в транзакта-батька було дорівнює 0, то при виході із блоку воно стане рівним 1, а в транзактов-нащадків значення параметра NUM будуть рівні 2, 3, 4, 5 і 6.
 2.2. Блоки, пов'язані з апаратними об'єктами
 Всі приклади моделей, що розглядалися вище, поки ще не є моделями систем масового обслуговування, тому що в них не врахована основна особливість СМО: конкуренція заявок на використання деяких обмежених ресурсів системи. Всі транзакты, що входять у ці моделі через блок GENERATE, негайно одержують можливість "обслуговування" у блоці ADVANCE, що ніколи не "відмовляє" транзактам у вході, скільки б транзактов у ньому не перебувало.
Для моделювання обмежених ресурсів СМО в моделі повинні бути присутнім апаратні об'єкти: одноканальні або многоканальные пристрою. Одноканальні пристрої створюються в поточній моделі при використанні блоків SEIZE (зайняти) і RELEASE (звільнити), що мають наступний формат:
 1
ім'я SEIZE A
1.5
ім'я RELEASE A
У поле A вказується номер або ім'я пристрою. Якщо транзакт входить у блок SEIZE, то пристрій, зазначений у поле A, стає зайнятим і залишається в цьому стані доти, поки цей же транзакт не пройде відповідний блок RELEASE, звільняючи пристрій. Якщо пристрій, зазначений у поле A блоку SEIZE, уже зайнято яким-небудь транзактом, то ніякий інший транзакт не може ввійти в цей блок і залишається в попередньому блоці. Транзакты, затримані (заблоковані) перед блоком SEIZE, залишаються в списку поточних подій і при звільненні пристрою обробляються з урахуванням пріоритетів і черговості надходження.
Кожний пристрій має наступні СЧА: F - стан пристрою (0 - вільно,1 - зайнятий); FR - коефіцієнт використання в частках 1000; FC - число занять пристрою; FT - ціла частина середнього часу заняття пристрою.
Скористаємося блоками SEIZE і RELEASE для моделювання одноканальної СМО з очікуванням (мал. 7). Тепер блок ADVANCE перебуває між блоками SEIZE і RELEASE, що моделюють заняття й звільнення пристрою з ім'ям SYSTEM, і тому в ньому може перебувати тільки один транзакт. Транзакты, що виходять із блоку GENERATE у моменти зайнятості пристрою, не зможуть увійти в блок SEIZE і будуть залишатися в блоці GENERATE, образуя черга в списку поточних подій.
 1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
SEIZE SYSTEM
ADVANCE 80,FN$EXP
RELEASE SYSTEM
TERMINATE 1
1.5
 Рис. 7
 Для моделювання захвата (переривання) одноканального пристрою замість блоків SEIZE і RELEASE використовуються відповідно блоки PREEMPT (захопити) і RETURN (повернути). Блок PREEMPT має наступний формат:
ім'я PREEMPT A,B,C,D,E
У поле A вказується ім'я або номер пристрою, що підлягає захватові. У поле B кодується умова захвата. Якщо це поле порожньо, то захват виникає, якщо що обслуговується транзакт сам не є загарбником. Якщо ж у поле B записаний операнд PR, то захват виникає, якщо пріоритет транзакта-загарбника вище, ніж пріоритет що обслуговується транзакта.
Поля C, D і E визначають поводження транзактов, обслуговування яких було перервано. Поле C указує ім'я блоку, у який буде спрямований перерваний транзакт. У поле D може бути зазначені номер або ім'я параметра перерваного транзакта, у який записується час, що залишився цьому транзакту до завершення обслуговування на пристрої. При відсутності операнда в поле E перерваний транзакт зберігає право на автоматичне відновлення на пристрої по закінченні захвата. Якщо ж у поле E зазначений операнд RE, то транзакт втрачає таке право.
Блок RETURN має єдиний операнд A, що містить ім'я або номер пристрою, що підлягає звільненню від захвата.
Блоки PREEMPT і RETURN можуть бути використані для моделювання СМО з абсолютними пріоритетами. У найпростіших випадках, при одному рівні захвата, у блоці PREEMPT використовується єдиний операнд A. При цьому перерваний транзакт переводиться симулятором зі списку майбутніх подій у так званий список переривань пристрою, а по закінченні захвата пристрою вертається в список майбутніх подій з попередньо обчисленим часом заняття пристрою для продовження обслуговування.
Для створення в моделі многоканальных пристроїв (МКУ) вони повинні бути попередньо визначені за допомогою операторів визначення STORAGE (пам'ять), що мають наступний формат:
ім'я STORAGE A Тут ім'я - ім'я МКУ, використовуване для посилань на нього; A - ємність (кількість каналів обслуговування) МКУ, що задається константою.
Для заняття й звільнення каналів обслуговування МКУ використовується пара блоків ENTER (увійти) і LEAVE (покинути), що мають наступний формат:
1
ім'я ENTER A,B
1.5
ім'я LEAVE A,B
У поле A вказується номер або ім'я МКУ, у поле B - число каналів МКУ, займаних при вході в блок ENTER або звільняються при вході в блок LEAVE. Звичайне поле B порожньо, і в цьому випадку за замовчуванням займається або звільняється один канал.
При вході транзакта в блок ENTER поточний уміст МКУ збільшується на число одиниць, зазначене в поле B. Якщо вільна ємність МКУ менше значення поля B, то транзакт не може ввійти в блок ENTER і залишається в попередньому блоці, образуя черга в списку поточних подій.
При вході транзакта в блок LEAVE поточний уміст МКУ зменшується на число одиниць, зазначене в поле B. Не обов'язково звільняється таке ж число каналів МКУ, яке займалося при вході даного транзакта в блок ENTER, однак поточний уміст МКУ не повинне ставати негативним.
Многоканальные пристрою мають наступні СЧА: S - поточний уміст МКУ; R - вільна ємність МКУ; SR - коефіцієнт використання в частках 1000; SA - ціла частина середнього вмісту МКУ; SM максимальний уміст МКУ; SC - число занять МКУ; ST - ціла частина середнього часу заняття МКУ.
Скористаємося блоками ENTER-LEAVE і оператором STORAGE для моделювання двухканальной СМО з очікуванням (мал. 8). Якщо поточний уміст МКУ з ім'ям STO2 менше 2, тобто в блоці ADVANCE перебуває один або жодного транзакта, то черговий транзакт, що надходить у модель через блок GENERATE, може ввійти в блок ENTER і потім у блок ADVANCE. Якщо ж поточний уміст МКУ дорівнює 2, то черговий транзакт залишається в блоці GENERATE, образуя черга в списку поточних подій. Після закінчення затримки одного із двох що обслуговуються транзактов у блоці ADVANCE і після входу його в блок LEAVE перший із заблокованих транзактов зможе ввійти в блок ENTER.
 1
STO2 STORAGE 2
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
ENTER STO2
ADVANCE 160,FN$EXP
LEAVE STO2
TERMINATE 1
1.5
 Рис. 8
 До апаратних об'єктів ставляться також логічні перемикачі
(ЛП), які можуть перебувати у двох станах: "включене" і "виключено". На початку моделювання всі ЛП перебувають у стані "виключене". Окремі перемикачі можуть бути встановлені в початковий стан "включено" за допомогою оператора INITIAL (инициализировать), що має наступний формат:
1
INITIAL LS$ ім'я
1.5
INITIAL LS j
Тут ім'я й j - відповідно ім'я й номер ЛП, установлюваного в початковий стан "включене".
Для включення, вимикання й інвертування логічних перемикачів у процесі моделювання служить блок LOGIC (установити ЛП), що має наступний формат:
ім'я LOGIC X A
У поле A вказується ім'я або номер ЛП. Допоміжний операнд X указує вид операції, що виробляється з логічним перемикачем при вході транзакта в блок: S - включення, R - вимикання, I - інвертування. Наприклад:
1
LOGIC S 9
1.5
LOGIC R FLAG
Логічні перемикачі мають єдиний СЧА з назвою LS. Значення СЧА дорівнює 1, якщо ЛП включений, і 0, якщо він виключений.
 2.3. Блоки для збору статистичних даних
 Два останніх приклади в попередньому параграфі являють собою закінчені моделі одноканальної й многоканальной СМО з очікуванням. Однак такі моделі розробляються звичайно для дослідження різних характеристик, пов'язаних з очікуванням заявок у черзі: довжини черги, часу очікування й т.п., а в наведених прикладах черга транзактов утвориться в списку поточних подій і недоступна дослідникові. Для реєстрації статистичної інформації про процес очікування транзактов у моделі повинні бути присутнім статистичні об'єкти: черги або таблиці.
Об'єкти типу черга створюються в моделі шляхом використання блоків - реєстраторів черг: QUEUE (стати в чергу) і DEPART (піти із черги), що мають наступний формат:
1
ім'я QUEUE A,B
1.5
ім'я DEPART A,B
У поле A вказується номер або ім'я черги, а в поле B - число одиниць, на яке поточна довжина черги збільшується при вході транзакта в блок QUEUE або зменшується при вході транзакта в блок DEPART. Звичайне поле B порожньо, і в цьому випадку його значення за замовчуванням приймається рівним 1.
Для збору статистики про транзактах, заблокованих перед яким-небудь блоком моделі, блоки QUEUE і DEPART містяться перед і після цього блоку відповідно. При проходженні транзактов через блоки QUEUE і DEPART відповідним чином змінюються наступні СЧА черг: Q - поточна довжина черги; QM - максимальна довжина черги; QA - ціла частина середньої довжини черги; QC - загальне число транзактов, що ввійшли в чергу; QZ - число транзактов, що пройшли через чергу без очікування (число "нульових" входів); QT - ціла частина середнього часу очікування з обліком "нульових" входів; QX - ціла частина середнього часу очікування без обліку "нульових" входів.
Доповнимо наведену на мал. 7 модель одноканальної СМО блоками QUEUE і DEPART (мал. 9). Тепер транзакты, заблоковані перед блоком SEIZE через зайнятість пристрою SYSTEM, перебувають у блоці QUEUE, вносячи свій внесок у статистику про час очікування, що накопичується в статистичному об'єкті типу "черга" з ім'ям LINE. При звільненні пристрою перший із заблокованих транзактов увійде в блок SEIZE і одночасно в блок DEPART, припиняючи нагромадження статистики про очікування цього транзакта.
 1
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
QUEUE LINE
SEIZE SYSTEM
DEPART LINE
ADVANCE 80,FN$EXP
RELEASE SYSTEM
TERMINATE 1
1.5
 Рис. 9
 Дуже часто дослідника цікавить не тільки середнє значення часу очікування в черзі, але й дисперсія цього часу, а також статистичний розподіл вибірки часу очікування, що представляється звичайно графічно у вигляді гистограммы. Маючи такий розподіл, можна оцінити ймовірність того, що час очікування перевищить або не перевищить деяке задане значення. Для збору й обробки даних про вибірковий розподіл часу очікування в черзі служать статистичні об'єкти типу Q-Таблиця.
Для створення в моделі такої таблиці вона повинна бути попередньо визначена за допомогою оператора визначення QTABLE ( Q-Таблиця), що має наступний формат:
ім'я QTABLE A,B,C,D Тут ім'я - ім'я таблиці, використовуване для посилань на неї; A - номер або ім'я черги, розподіл часу очікування в якій необхідно одержати; B - верхня границя першого частотного інтервалу таблиці; C - ширина частотних інтервалів; D - кількість частотних інтервалів.
Діапазон усіляких значень часу очікування в черзі, зазначеної в поле A, розбивається на ряд частотних інтервалів, кількість яких зазначено в поле D. Перший із цих інтервалів має ширину від мінус нескінченності до величини, зазначеної в поле B, включно. Другий інтервал включає значення, більші, ніж величина першої границі в поле B, але менші або рівні B+C, і т.д. Всі проміжні інтервали мають однакову ширину, зазначену в поле C. Нарешті, останній інтервал включає всі значення, більші, ніж остання границя. Значення операндов B, C і D повинні задаватися цілими константами. Операнд B може бути непозитивним, хоча для Q-Таблиці це не має змісту, тому що час не може бути негативним. Операнды C і D повинні бути строго позитивними.
При проходженні транзакта через блоки QUEUE і DEPART його час очікування фіксується, і до лічильника частотного інтервалу таблиці, у який потрапило цей час, додається 1. Одночасно в таблиці накопичується інформація для обчислення середнього значення й среднеквадратического відхилення (кореня з дисперсії) часу очікування. По закінченні моделювання середнє значення й среднеквадратическое відхилення часу очікування, а також лічильники влучень у різні частотні інтервали виводяться в стандартний звіт GPSS/PC.
Таблиці, як і інші об'єкти GPSS/PC, мають СЧА: ТС - загальне число транзактов, що ввійшли в чергу, пов'язану з таблицею; TB ціла частина середнього часу очікування в черзі; TD - ціла частина среднеквадратического відхилення часу очікування в черзі.
Доповнимо модель із приклада на мал. 9 оператором QTABLE для одержання розподілу часу очікування в черзі з ім'ям LINE (мал. 10).
 1
WTIME QTABLE LINE,50,50,10
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
QUEUE LINE
SEIZE SYSTEM
DEPART LINE
ADVANCE 80,FN$EXP
RELEASE SYSTEM
TERMINATE 1
1.5
 Рис. 10
Оператор визначення таблиці з ім'ям WTIME розбиває вісь часу на 10 частотних інтервалів. Перший інтервал включає значення від 0 до 50, другий - від 50 до 100, третій - від 100 до 150 і т.д. Останній, десятий, інтервал включає значення, що перевищують 450. Якщо, наприклад, час очікування деякого транзакта в черзі склало 145 одиниць модельного часу, то до лічильника третього частотного інтервалу буде додана 1. Варто помітити, що інформація в таблицю з ім'ям WTIME заноситься автоматично, при вході транзактов у блоки QUEUE і DEPART, і ніяких спеціальних мір для цього приймати не потрібно.
Таблиці в GPSS/PC можуть використовуватися в більше загальному випадку не тільки для табулювання часу очікування в черзі, але й для одержання вибіркових розподілів довільних СЧА будь-яких об'єктів моделі. Для визначення таблиць служить оператор TABLE (таблиця), формат якого збігається з форматом оператора QTABLE. Відмінність складається лише в тім, що в поле A оператора TABLE записується стандартний числовий атрибут, вибірковий розподіл якого необхідно одержати, а операнды B, C і D визначають розбивка на частотні інтервали діапазону всіляких значень цього СЧА.
Занесення інформації в таблицю, обумовлену оператором TABLE, уже не може бути виконане симулятором автоматично, як у випадку Q-Таблиць. Для цього використовується спеціальний блок TABULATE (табулировать), що має наступний формат:
ім'я TABULATE A
У поле A вказується номер або ім'я таблиці, певної відповідним оператором TABLE.
При вході транзакта в блок TABULATE поточне значення табулируемого аргументу таблиці, зазначеного в поле A оператора TABLE, заноситься в неї відповідно до заданого в операторі TABLE розбивкою області значень аргументу на частотні інтервали. Одночасно коректуються поточні значення СЧА таблиці: лічильник входів у таблицю TC, середній час очікування TB і среднеквадратическое відхилення часу очікування TD.
Нехай, наприклад, у моделі многоканальной СМО, наведеної на мал. 8, треба одержати розподіл часу перебування заявок у системі, що включає час очікування в черги й час обслуговування. Це може бути забезпечено способом, показаним на мал. 11.
Оператор TABLE визначає таблицю з ім'ям TTIME, аргументом якої служить СЧА М1 - час перебування транзакта в моделі. У розглянутій моделі значення СЧА M1 одночасно буде часом перебування транзакта в СМО в тому випадку, якщо занесення інформації в таблицю робити перед виходом транзакта з моделі. Тому блок TABULATE, що заносить інформацію про час перебування кожного транзакта в моделі в таблицю TTIME, розташовується перед блоком TERMINATE. Діапазон можливих значень часу перебування транзакта в моделі розбитий в операторі TABLE на 12 частотних інтервалів, ширина яких (крім останнього) дорівнює 100 одиницям модельного часу.
 
1
TTIME TABLE M1,100,100,12
STO2 STORAGE 2
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
ENTER STO2
ADVANCE 160,FN$EXP
LEAVE STO2
TABULATE TTIME
TERMINATE 1
1.5
 
Рис. 11


Заключення


II. МЕТОДИЧНІ ВКАЗІВКИ

           Дисципліна “ Моделювання комп’ютерних мереж”- це теоретичні основи принципів вивчення основних понять імітаційного моделювання, ознайомлення з поняттями системи та моделі, співвідношенням між моделлю та системою, класифікацією  моделей,  видами  моделей, технологію моделювання; побудовою  імітаційної моделі персонального комп’ютера; технологічних етапів випробування та експлуатації імітаційних моделей.

Основні форми поточного контролю – спостереження за діями студентів, проведення модульного контролю.

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

III. ВИКОРИСТАНА ЛІТЕРАТУРА

1. В.Г. Кривуца, В.В. Барковський, Л.Н. Беркман. Математичне моделювання телекомунікаційних систем: Навч. посібник. –К.: Звязок, 2007.

Розробник лекції  старший викладач кафедри інфокомунікацій

___                          Срочинська Г.С.

(підпис, прізвище)

“ ____ “  _____________  2011  року


 

А также другие работы, которые могут Вас заинтересовать

42220. Комитетные методы обучения нейронных сетей 109.5 KB
  Применение комитетных методов теоретически не хуже применения одного классификатора. Это правило часто наблюдается и на практике однако бывают случаи когда комитетная классификация работает несколько хуже одного классификатора. обучение mго классификатора зависит от результата обучения предыдущих m1 классификаторов. При этом во время обучения mго классификатора больше внимания уделяется примерам на которых чаще ошибаются предыдущие классификаторы.
42221. Решение задачи линейного программирования 146 KB
  Кабель первого типа содержит 1 телефонных b1 телеграфных и c1 фототелеграфных каналов а кабель второго типа – 1 телефонных b2 телеграфных и c1 фототелеграфных каналов. Стоимость 1 км кабеля первого типа равна p1 тыс. второго типа – p2 тыс. Кабель первого типа содержит 41 телефонных 3b1 телеграфных и 2c1 фототелеграфных каналов а кабель второго типа – 11 телефонных 2b2 телеграфных и 5c1 фототелеграфных каналов.
42222. Аппараты защиты. Тепловое реле тока типа ТРТ-111 и автоматический выключатель типа АК-50К 53.5 KB
  Предмет исследования Объектом исследования является тепловое реле тока типа ТРТ111 и автоматический выключатель типа АК50К [1 2]. Тепловое реле тока предназначено для автоматического отключения защищаемого электротехнического объекта при наличии в цепи длительно действующих токов перегрузок. Тепловое реле тока входит составной частью в конструкцию магнитного пускателя функционально предназначенного для управления асинхронными электродвигателями. Структурная схема исполнения типовой конструкции теплового реле тока представлена на рис.
42223. ОПРЕДЕЛЕНИЕ ОСТАТОЧНЫХ НАПРЯЖЕНИЙ В СТЕКЛЕ 100 KB
  Эти лучи вследствие различия в показателях преломления распространяются в образце с разной скоростью что приводит к возникновению между ними разности хода. Используя компенсационную пластинку создающую между лучами дополнительную разность хода  4 на выходе из неё получают линейно поляризованный свет. Основной причиной разности хода являются термоупругие напряжения образующиеся на заключительных этапах производства стекла. Исследованиями установлено что если в образце имеет место напряженное состояние в пределах упругости...
42224. Особливості роботи в операційному середовищі Windows та необхідні відомості з теорії імовірності 43.5 KB
  Розв'язати наступну задачу використовуючи формулу Байєса – ймовірність гіпотези за умови що подія А сталася; – ймовірність події А за умови що гіпотеза сталася; – ймовірність гіпотези ; – гіпотези що утворюють повну групу подій; А – подія що відбувається разом з однією з подій гіпотез . Ймовірність того що студент першої другої і третьої групи потрапляє в збірну університету відповідно P R S. Яка ймовірність що студент з першої групи Яка ймовірність що студент з другої групи Яка ймовірність що студент з третьої групи...
42225. ДОСЛІДЖЕННЯ ЕЛЕМЕНТНОГО СКЛАДУ ОБ'ЄКТІВ ІЗ ВИКОРИСТАННЯМ МАС-СПЕКТРОМЕТРА З ЛАЗЕРНИМ ДЖЕРЕЛОМ ІОНІВ 3.23 MB
  Методика лазерної мас-спектрометрії заснована на аналізі плазми, що утворюється при локальному випаровуванні лазером мікропроби, яка відтворює атомний склад речовини і домішок об'єкта в даному місці. Методикою можна визначити елементний та газовий склад досліджуваного зразка на поверхні та розподіл елементів за глибиною.
42226. ОСНОВНІ ВИМОГИ З ТЕХНІКИ БЕЗПЕКИ 113.5 KB
  Багаторазове вмикання та вимикання приладів призводить до їх псування. Треба вимикати живлення приладів лише після закінчення всіх вимірів. Вивчити принцип роботи порядок вмикання настроювання та проведення вимірів для таких приладів: а генератори низьких Г333 або Г334 та високих...
42227. Операції булевої алгебри 239 KB
  Відповідно до варіанту з таблиці 1 та отриманим теоретичним знанням з операцій булевої алгебри виконати розрахунково-графічну роботу. Звіт про виконання лабораторної роботи написати від руки на аркушах зошита в клітинку.
42228. Моделирование системы массового обслуживания в среде Simulink 27.5 KB
  Источник генерирует последовательность однородных заявок отличающихся моментами времени появления. Интервалы времени между моментами появления заявок являются случайными величинами с известным законом распределения параметры которого остаются постоянными в течение моделируемого интервала времени . Если прибор свободен поступающая в систему заявка берется на обслуживание и генерируется случайный интервал времени соответствующий длительности ее обслуживания если же прибор занят заявка теряется.