ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    моделювання систем і мереж зв'язку на GPSS / PC
         

     

    Інформатика, програмування
    ВСТУП

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

    - 3 -


    і т.п. Достатній набір подібних компонентів дозволяє конструюю-
    вати складні імітаційні моделі, зберігаючи звичну термінологію
    СМО.
    На персональних комп'ютерах (ПК) типу IBM/PC мова GPSS реалі-
    зовано в рамках пакета прикладних програм GPSS/PC [8]. Основний мо-
    дуль пакету являє собою інтегроване середовище, що включає
    крім транслятора з вхідної мови засоби введення і редактірова-
    ня тексту моделі, її налагодження і спостереження за процесом моделірова-
    ня, графічні засоби відображення атрибутів моделі, а також
    засоби накопичення результатів моделювання в базі даних та їх
    статистичної обробки. Крім основного модуля до складу пакету
    входить модуль створення стандартного звіту GPSS/PC, а також ряд до-
    полнітельних модулів і файлів.
    У даному виданні, що складається з двох частин, викладаються основи
    моделювання систем та мереж зв'язку з використанням пакета GPSS/PC.
    У першій частині розглядаються основні поняття і засоби GPSS/PC,
    прийоми конструювання GPSS-моделей і технологія роботи з пакетом.
    Виклад матеріалу супроводжується невеликими навчальними прикладами.
    Щодо детальний розгляд мови GPSS/PC викликано
    відсутністю в літературі навчального матеріалу з даної версії мови.
    У другій частині розглядаються приклади GPSS-моделей різних
    систем і мереж масового обслуговування, що використовуються для формалізує-
    ції процесів функціонування систем і мереж зв'язку. Наводиться
    також ряд прикладів моделювання систем та мереж зв'язку з використанням
    ням GPSS/PC. Детально коментуються тексти GPSS-моделей і резуль-
    тати моделювання.

    1. ЗАГАЛЬНІ ВІДОМОСТІ ПРО GPSS/PC

    Вихідна програма на мові GPSS/PC, як і програма на будь-якому
    мовою програмування, являє собою послідовність опе-
    ратора. Оператори GPSS/PC записуються і вводяться в ПК у наступному
    форматі:
    1номер 0_ 1строкі ім'я операція операнди; коментарі
    Всі оператори вихідної програми повинні починатися з 1номе-
    1ра 0_ 1строкі 0 - цілого позитивного числа від 1 до 9999999. Після вво-
    та операторів вони розташовуються у вихідній програмі відповідно
    з нумерацією рядків. Зазвичай нумерація проводиться з деяким ша-
    гом, відмінним від 1, щоб мати можливість додавання операторів в
    потрібне місце вихідної програми. Деякі оператори зручно вво-
    дить, не включаючи їх у вихідну програму. Такі оператори вводяться

    - 4 -


    без номера рядка.
    У цьому виданні при описі формату операторів і в примі-
    рах моделей номери рядків будуть опускатися для кращої читання
    тексту.
    Окремі оператори можуть мати 1імя 0для посилання на ці операторами
    ри в інших операторах. Якщо такі посилання відсутні, то цей еле-
    мент оператора не є обов'язковим.
    У полі 1операціі 0запісивается ключове слово (назва операторами
    ра), що вказує конкретну функцію, виконувану даним оператором.
    Це поле оператора є обов'язковим. У деяких операторів
    поле операції включає в себе також 1вспомогательний операнд 0.
    У полях 1операндов 0запісивается інформація, уточнююча і конк-
    ретізірующая виконання функції, визначеної в полі операції. Ці
    поля в залежності від типу операції містять до семи операндів,
    розташованих у певній послідовності і позначаються
    зазвичай першими літерами латинського алфавіту від A до G. Деякі
    оператори взагалі не мають операндів, а в деяких операнди можуть
    бути опущені, при цьому встановлюються їх стандартні значення (по
    замовчуванням). Під час запису операндів використовується позиційний принцип:
    пропуск операнда відзначається комою.
    Необов'язкові 1комментаріі 0В разі їх присутності відокремлюються
    від поля операндів крапкою з комою. Коментарі не можуть містити
    літер російського алфавіту.
    Оператори GPSS/PC записуються, починаючи з першої позиції, в
    вільному форматі, тобто окремі поля розділяються довільним ко-
    лічеством пробілів. Під час введення вихідної програми в інтегрованій
    середовищі GPSS/PC розміщення окремих полів операторів з певним
    кількістю інтервалів між ними проводиться автоматично.
    Кожен оператор GPSS/PC відноситься до одного з чотирьох типів:
    оператори-блоки, оператори визначення об'єктів, що керують опера-
    тори і оператори-команди.
    1Оператори-блоки 0форміруют логіку моделі. У GPSS/PC є
    близько 50 різних видів блоків, кожен з яких виконує свою
    конкретну функцію. За кожним з таких блоків стоїть відповідна
    підпрограма транслятора, а операнди кожного блоку служать парамет-
    рами цієї підпрограми.
    1Оператори визначення про 0'1ектов 0служат для опису параметрів
    деяких об'єктів GPSS/PC (про самих об'єктах йтиметься далі).
    Прикладами параметрів об'єктів можуть бути кількість каналів у мно-
    гоканальной системі масового обслуговування, кількість рядків і
    стовпців матриці і т.п.

    - 5 -


    1Управляющіе оператори 0служат для управління процесом моделі-
    вання (прогоном моделі). 1Оператори-команди 0позволяют керувати
    роботою інтегрованого середовища GPSS/PC. Керуючі оператори та опе-
    ратора-команди зазвичай не включаються в початкову програму, а вво-
    дятся безпосередньо з клавіатури ПК у процесі інтерактивного
    взаємодії з інтегрованою середовищем.
    Після трансляції вихідної програми в пам'яті ПК створюється так
    звана 1текущая модель, 0являющаяся сукупністю різного типу
    1об'ектов 0, кожен з яких представляє собою деякий набір
    чисел у пам'яті ПК, що описують властивості і поточний стан об'єктивним
    та. Об'єкти GPSS/PC можна розділити на сім класів: динамічні,
    операційні, апаратні, статистичні, обчислювальні, запам'ятовуючи-
    ющіе і групуються.
    Динамічні об'єкти, відповідні заявками в системах
    масового обслуговування, називаються в GPSS/PC 1транзактамі 0. Вони "ство-
    даються "і" знищуються "так, як це необхідно за логікою моделі в
    процесі моделювання. З кожним транзактом може бути пов'язано про-
    ізвольное число параметрів, що несуть в собі необхідну інформацію
    про це транзакте. Крім того, транзакти можуть мати різні при-
    орітети.
    Операційні об'єкти GPSS/PC, звані 1блокамі 0, відповідними-
    ють операторам-блокам вихідної програми. Вони, як уже говорилося,
    формують логіку моделі, даючи транзактам вказівки: куди йти і що
    робити далі. Модель системи на GPSS/PC можна уявити сукупність-
    ністю блоків, об'єднаних відповідно до логіки роботи реаль-
    ної системи в так звану 1блок-схему 0. Блок-схема моделі може
    бути зображена графічно, наочно показуючи взаємодію бло-
    ков в процесі моделювання.
    Апаратні об'єкти GPSS/PC - це абстрактні елементи, на ко-
    торие може бути розчленоване (декомпозіровано) обладнання реальної
    системи. До них відносяться 1одноканальние 0і 1многоканальние пристрої
    і 1логіческіе перемикачі. 0Многоканальное пристрій іноді називаються
    вають 1памятью 0.
    Одноканальні і багатоканальні пристрої відповідають обслу-
    жива приладів в СМО. Одноканальне пристрій 1, 0которое для
    стислості надалі будемо називати просто пристроєм, може обслужити-
    вати одночасно тільки один транзакт. Багатоканальне пристрій
    (СКУ) може обслуговувати одночасно кілька транзактов. Логи-
    орієн перемикачі (ЛП) використовуються для моделювання двійкових
    станів логічного чи фізичного характеру. ЛП може зна-
    диться в двох станах: включено і вимкнене. Його стан може

    - 6 -


    змінюватися в процесі моделювання, а також опитуватися для при-
    нятія певних рішень.
    Статистичні об'єкти GPSS/PC служать для збору і обробки
    статистичних даних про функціонування моделі. До них відносяться
    1очереді 0і 1табліци 0.
    Кожна чергу забезпечує збір і обробку даних про транзак-
    тах, затриманих в будь-якій точці моделі, наприклад перед одн-
    нальним пристроєм. Таблиці використовуються для отримання вибіркових
    розподілів деяких випадкових величин, наприклад часу преба-
    вання транзакта в моделі.
    До обчислювальним об'єктів GPSS/PC відносяться 1переменние 0 (Аріф-
    метичних і Булевського) і 1функціі 0. Вони використовуються для обчислення
    деяких величин, заданих арифметичними або логічними виражений-
    нями або табличними залежностями.
    Запам'ятовувальні об'єкти GPSS/PC забезпечують збереження в пам'яті ПК
    окремих величин, що використовуються в моделі, а також масивів таких
    величин. До них відносяться так звані 1сохраняемие величини 0і 1мат-
    1ріци зберігаються величин.
    До об'єкти групують класу відносяться 1спіскі користувача
    і 1группи. 0Спіскі користувача використовуються для організації черг
    з дисциплінами, відмінними від дисципліни "раніше прийшов - раніше
    обслужений ". Групи в даному виданні розглядатися не будуть.
    Кожному об'єкту того чи іншого класу відповідають 1чісловие
    1атрібути 0, що описують його стан в даний момент модельного вре-
    мени. Крім того, є ряд так званих 1сістемних атрибутів,
    відносяться не до окремих об'єктах, а до моделі в цілому. Значення
    атрибутів всіх об'єктів моделі після закінчення моделювання виводяться
    в стандартний звіт GPSS/PC. Більша частина атрибутів доступна прог-
    раммісту і складає так звані 1стандартние числові атрибути
    1 (ВЧА), 0которие можуть використовуватися в якості операндів операторів
    вихідної програми. Всі ВЧА в GPSS/PC є цілими числами.
    Кожен об'єкт GPSS/PC має 1імя 0і 1номер 0. Імена об'єктів даються
    в різних операторах вихідної програми, а відповідні їм но-
    міра транслятор присвоює автоматично. Назва об'єкта представляє
    собою що починається з букви послідовність літер латинського Алфа-
    віта, цифр та символу "підкреслення". При необхідності імені любо-
    го об'єкта, крім імені блоку, можна поставити у відповідність будь-який
    номер за допомогою оператора опису EQU, що має наступний формат:
    1імя 0 EQU 1номер
    Блокам присвоюються їх порядкові номери у вихідній програмі (не
    плутати з номерами рядків!).

    - 7 -


    Для 1ссилкі 0на якої-небудь стандартний числовий атрибут некот-
    якого об'єкта відповідний операнд оператора вихідної програми
    записується одним із таких способів:
    Ш1
    1СЧА 0 $ 1імя 0;
    Ш1.5
    1СЧАj 0,
    де 1СЧА 0 - системне позначення (назва) конкретного стандартного
    числового атрибута даного об'єкта; 1імя 0 - ім'я об'єкта; 1j 0 - номер
    об'єкта; $ - символ-розділювач.
    1Прогон 0текущей моделі, тобто власне моделювання, виконуємо-
    ється за допомогою спеціальної керуючої програми, яку називають
    симулятором (від англійського SIMULATE - моделювати, імітувати).
    Робота GPSS-моделі під керуванням симулятора полягає в перемі-
    щении транзактов від одних блоків до інших, аналогічно тому, як в
    моделюється СМО переміщуються заявки, що відповідають транзактам.
    У початковий момент часу в GPSS-моделі немає жодного тран-
    закта. У процесі моделювання симулятор генерує транзакти в
    певні моменти часу відповідно до тих логічними піт-
    ребностямі, які виникають в моделюється системі. Подібним же
    чином транзакти залишають модель в певні моменти часу в
    залежно від специфіки моделюється системи. У загальному випадку в мо-
    поділи одночасно існує велике число транзактов, проте в
    кожний момент часу симулятор здійснює просування тільки ка-
    кого-небудь одного транзакта.
    Якщо транзакт почав свій рух, він переміщується від блоку до
    блоку по шляху, написаним блок-схемою. У той момент, коли тран-
    закт входить в деякий блок, на виконання викликається підпрограма
    симулятора, що відповідає типу цього блоку, а після її виконан-
    ня, при якому реалізується функція даного блоку, транзакт "намагався-
    ється "увійти в наступний блок. Таке просування транзакта продовжуючи-
    ся до тих пір, поки не відбудеться одне з наступних можливих з-
    битій:
    1) транзакт входить в блок, функцією якого є видалення
    транзакта з моделі;
    2) транзакт входить в блок, функцією якого є затримка
    транзакта на якийсь певний час в моделі;
    3) транзакт "намагається" увійти в наступний блок, проте блок
    "відмовляється" прийняти його. У цьому випадку транзакт залишається в тому
    блоці, де був, і пізніше буде повторювати свою спробу увійти
    в наступний блок. Коли умови в моделі зміняться, така спроба
    може виявитися успішною, і транзакт зможе продовжити своє переміщення
    щення по блок-схемі.

    - 8 -


    Якщо виникло одне з описаних вище умов, обробка данно-
    го транзакта припиняється, і починається переміщення іншого тран-
    закта. Таким чином, виконання моделювання симулятором продол-
    жается постійно.
    Проходячи через блоки моделі, кожен транзакт вносить вклад в со-
    держімое 1счетчіков блоків 0. Значення цих лічильників доступні прог-
    раммісту через ВЧА блоків: W - поточний зміст блоку і N - загальне
    кількість входів до блоку.
    Кожне просування транзакта в моделі є подією, кото-
    рої має відбутися в певний момент модельного часу. Для
    того, щоб підтримувати правильну тимчасову послідовність
    подій, симулятор має 1таймер 0модельного часу, який автомати-
    тічеськи коректується відповідно до логіки, запропонованої мо-
    делью.
    Таймер GPSS/PC має такі особливості:
    1) реєструються тільки цілі значення (всі тимчасові інтер-
    вали в моделі изображаются цілими числами);
    2) одиниця модельного часу визначається розробником моді-
    Чи, який задає всі тимчасові інтервали в одних і тих же, виб-
    ранних їм одиницях;
    3) симулятор не аналізує стан моделі в кожен наступних
    щий момент модельного часу (віддалений від поточного на одиницю мо-
    ділового часу), а просуває таймер до моменту часу, коли
    відбувається найближчим така подія.
    Значення таймера доступні програмісту через системні СЧА C1
    (1относітельное час 0) і AC1 (1абсолютное час 0).
    Центральної завданням, що виконується симулятором, є визна-
    ня того, який транзакт треба вибрати такий для просування в
    моделі, коли його попередник припинив своє просування. З цією
    метою симулятор розглядає кожен транзакт як елемент деякий-
    го списку. У відносно простих моделях використовуються лише два
    основних списку: 1спісок поточних подій 0і 1спісок майбутніх подій 0.
    Список поточних подій включає в себе ті транзакти, плануючи-
    мій час просування яких дорівнює або менше поточного модельного
    часу (до останніх відносяться транзакти, рух яких було
    заблоковано раніше). Він організовується в порядку спадання пріоритетів
    тов транзактов, а в межах кожного рівня пріоритету - в порядку
    надходження транзактов.
    Список майбутніх подій включає в себе транзакти, плановане
    час просування яких більше поточного часу, тобто події,
    пов'язані з просуванням цих транзактов, повинні відбутися в май-

    - 9 -


    щем. Цей список організовується в порядку зростання планованого
    часу просування транзактов.
    Симулятор GPSS/PC поміщає транзакти залежно від умов
    в моделі в той чи інший список і переносить транзакти зі списку в
    список, переглядає списки, вибираючи наступний транзакт для обра-
    лення, коректує таймер модельного часу після обробки всіх
    транзактов у списку поточних подій.

    2. ОСНОВНІ БЛОКИ GPSS/PC І ПОВ'ЯЗАНІ З НИМИ ОБ'ЄКТИ

    2.1. Блоки, пов'язані з транзактамі

    З транзактамі пов'язані блоки створення, знищення, затримки
    транзактов, зміни їх атрибутів і створення копій транзактов.
    Для створення транзактов, що входять в модель, служить блок
    GENERATE (генерувати), що має наступний формат:
    1імя 0 GENERATE A, B, C, D, E
    У полі A задається середнє значення інтервалу часу між мо-
    ментами надходження в модель двох послідовних транзактов. Якщо
    цей інтервал постійний, то поле B не використовується. Якщо ж інтер-
    вал надходження є випадковою величиною, то в полі B вказуючи-
    ється модифікатор середнього значення, який може бути заданий у вигляді
    модифікатора-інтервалу або модифікатора-функції.
    Модифікатор-інтервал використовується, коли інтервал надходження
    транзактов є випадковою величиною з рівномірним законом роз-
    ределенія ймовірностей. У цьому випадку в поле B може бути заданий лю-
    бій СЧА, окрім посилання на функцію, а діапазон зміни інтервалу
    надходження має межі AB, A + B.
    Наприклад, блок
    GENERATE 100,40
    створює транзакти через випадкові проміжки часу, рівномірно
    розподілені на відрізку [60; 140].
    Модифікатор-функція використовується, якщо закон розподілу ін-
    інтервал надходження відмінний від рівномірного. У цьому випадку в поле B
    повинна бути записана посилання на функцію (її ВЧА), що описує цей
    закон, і випадковий інтервал надходження визначається, як ціла
    частину твору поля A (середнього значення) на обчислена значен-
    ня функції.
    У полі C задається час вступу до модель першого транзак-
    та. Якщо це поле порожнє або дорівнює 0, то момент появи перших
    транзакта визначається операндами A і B.

    - 10 -


    Поле D задає загальне число транзактов, яка має бути ство-
    дано блоком GENERATE. Якщо це поле порожнім, то блок генерує неоген-
    раніченное число транзактов до завершення моделювання.
    У полі E задається 1пріорітет 0, що присвоюється генеруються тран-
    зактам. Число рівнів пріоритетів необмежена, причому найнижчий
    пріоритет - нульовий. Якщо поле E пусто, то що генеруються транзакти
    імeют нульовий пріоритет.
    Транзакти мають ряд стандартних числових атрибутів. Наприклад,
    СЧА з назвою PR дозволяє посилатися на пріоритет транзакта. СЧА
    з назвою M1 містить так зване 1резідентное час 0транзакта,
    тобто час, що минув з моменту входу транзакта в модель через блок
    GENERATE. ВЧА з назвою XN1 містить внутрішній 1номер транзакта 0,
    який є унікальним і дозволяє завжди відрізнити один тран-
    закт від іншого. На відміну від ВЧА інших об'єктів, ВЧА транзактов
    не містять посилання на ім'я або номер транзакта. Посилання на ВЧА тран-
    закта завжди відноситься до активного транзакту, тобто транзакту, обра-
    бативаемому в даний момент симулятором.
    Важливими стандартними числовими атрибутами транзактов є
    значення їх параметрів. Будь-який транзакт може мати необмежену
    число параметрів, що містять ті чи інші числові значення. Посилання
    на цей СЧА транзактов завжди відноситься до активного транзакту і
    має вигляд P 1j 0ілі Р $ 1імя 0, де 1j 0і 1імя 0 - номер та ім'я параметра соот-
    льної. Така посилання можлива тільки в тому випадку, якщо пара-
    метр з вказаним номером або вже існує, тобто в нього занесе-
    але будь-яке значення.
    Для присвоювання параметрами початкових значень або зміни
    цих значень служить блок ASSIGN (привласнювати), що має наступні
    формат:
    1імя 0 ASSIGN A, B, C
    У полі A вказується номер або ім'я параметра, в який за-
    носиться значення операнда B. Якщо в полі A після імені (номери) па-
    раметра стоїть знак + або -, то значення операнда B додається або
    вираховується з поточного вмісту параметра. У полі З може бути
    вказано ім'я або номер функції-модифікатора, що діє аналогічно
    функції-модифікатори в полі B блоку GENERATE.
    Наприклад, блок
    ASSIGN 5,0
    записує в параметр з номером 5 значення 0, а блок
    ASSIGN COUNT +, 1
    додає 1 до поточного значення параметра з ім'ям COUNT.

    - 11 -
    .

    Для запису поточного модельного часу в заданий параметр
    транзакта служить блок MARK (зазначити), що має наступний формат:
    1імя 0 MARK A
    У полі A вказується номер або ім'я параметра транзакта, в ко-
    торий заноситься поточне модельне час при вході цього транзакта в
    блок MARK. Вміст цього параметра може бути пізніше вико-
    вано для визначення 1транзітного часу 0пребиванія транзакта в ка-
    кой-то частини моделі з допомогою ВЧА з назвою MP.
    Наприклад, якщо на вході ділянки моделі помістити блок
    MARK MARKER,
    то на виході цієї ділянки СЧА MP $ MARKER буде містити різниця
    між поточним модельним часом і часом, занесеного до параметр
    MARKER блоком MARK.
    Якщо поле A блоку MARK пусто, то поточний час заноситься на
    місце позначки часу входу транзакта в модель, яка використовується при
    визначенні резидентного часу транзакта за допомогою СЧА M1.
    Щоб змінити пріоритет транзакта служить блок PRIORITY (Пріо-
    рітет), що має наступний формат:
    1імя 0 PRIORITY A, B
    У полі A записується новий пріоритет транзакта. У полі B мо-
    жет міститися ключове слово BU, за наявності якого транзакт,
    що ввійшов до блоку, поміщається у списку поточних подій після всіх
    інших транзактов нової пріоритетною групи, і список поточних
    подій проглядається з початку. Використання такої можливості
    буде розглянуто нижче.
    Для видалення транзактов з моделі є блок TERMINATE (за-
    вершити), що має наступний формат:
    1імя 0 TERMINATE A
    Значення поля A вказує, на скільки одиниць зменшується з-
    держімое так званого лічильника завершений при вході транзакта в
    даний блок TERMINATE. Якщо поле A не визначено, то вона вважається
    рівним 0, і транзакти, що проходять через такий блок, не зменшують
    вмісту лічильника завершений.
    Початкове значення лічильника завершений встановлюється управ-
    ляющие оператором START (почати), призначеним для запуску про-
    гону моделі. Поле A цього оператора містить початкове значення
    лічильника завершений (див. розд. 3). Прогон моделі закінчується,
    коли вміст лічильника завершений звертається до 0. Таким чином,
    в моделі повинен бути хоча б один блок TERMINATE з непустих полем
    A, інакше процес моделювання ніколи не завершиться.

    - 12 -
    .

    Поточне значення лічильника завершений є програмісту че-
    рез системний СЧА 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 створить

    - 13 -


    перший транзакт в момент модельного часу, що дорівнює 100000. Але цей
    транзакт виявиться і останнім у даному сегменті, тому що, увійшовши в
    блок TERMINATE, він учинить 0 вміст лічильника завершений,
    встановлене оператором START рівним 1. Таким чином, у цій мо-
    поділи гарантується завершення прогону в певний момент модель-
    ного часу, а точна кількість транзактов, які пройшли через мо-
    дель, непередбачувано.
    У наведених прикладах транзакти, що входять в модель через блок
    GENERATE, в той же момент модельного часу знищувалися в блоці
    TERMINATE. У моделях систем масового обслуговування заявки обслужить-
    вають приладами (каналами) СМО протягом деякого проміжку
    часу, перш ніж покинути СМО. Для моделювання такого обслужить-
    вання, тобто для затримки транзактов на певний відрізок модель-
    ного часу, служить блок ADVANCE (затримати), що має наступний
    формат:
    1імя 0 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

    - 14 -
    .

    У розглянутих вище прикладах випадкові інтервали часу під-
    чинять рівномірному закону розподілу ймовірностей. Для напів-
    чення випадкових величин з іншими розподілами в 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 виконуються з
    використанням 1аріфметіческіх змінних 0. Вони можуть бути цілими і
    дійсними. 1Целие змінні 0определяются перед початком моді-
    воджується за допомогою оператора визначення VARIABLE (змінна),
    має наступний формат:
    1імя 0 VARIABLE 1вираженіе
    Тут 1імя 0 - ім'я змінної, що використовується для посилань на неї, а 1вира-
    1женіе 0 - арифметичний вираз, що визначає змінну. Аріфме-
    тичні вираз являє собою комбінацію операндів, в ка-
    честве яких можуть виступати константи, ВЧА і функції, знаків
    арифметичних операцій і круглих дужок. Слід зауважити, що
    знаком операції множення в GPSS/PC є символ # (номер). Ре-
    зультат кожної проміжної операції в цілих змінних перетворення
    ється до цілого типу шляхом відкидання дробової частини, і, таким обра-
    зом, результатом операції поділу є ціла частина приватного.
    1Действітельние змінні 0определяются перед початком моделі-
    вання за допомогою оператора визначення FVARIABLE, що має той же

    - 15 -


    формат, що і оператор 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 типу 1функція 0.
    Функції використовуються для обчислення величин, заданих табліч-
    нимі залежностями. Кожна функція визначається перед початком моді-
    воджується за допомогою оператора визначення FUNCTION (функція), маю-
    ного наступний формат:
    1імя 0 FUNCTION A, B
    Тут 1імя 0 - ім'я функції, що використовується для посилань на неї; A - стан-

    - 16 -


    дротяні числовий атрибут, що є аргументом функції; B - тип
    функції і число точок таблиці, яка визначає функцію.
    Існує п'ять типів функцій. Розглянемо спочатку 1непреривние
    1чісловие функції, 0тіп яких кодується літерою 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), на якому знаходиться теку-
    загальне значення ВЧА-аргументу (у нашому примі
         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status