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

     

     

     

     

     

         
     
    Моделювання на GPSS
         

     

    Інформатика, програмування

    дивитися на реферати схожі на "Моделювання на GPSS"

    ОСНОВИ МОДЕЛЮВАННЯ НА GPSS/PC

    ЗМІСТ

    ВСТУП ........ ............................................ 1

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

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

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

    2.2. Блоки, пов'язані з апаратними об'єктами .......... 13

    2.3. Блоки для збору статистичних даних ............. 15

    2.4. Блоки, що змінюють маршрути транзактов ............. 18

    2.5. Блоки, які працюють з пам'яттю ....................... 21

    2.6. Блоки для роботи зі списками користувача ......... 23

    3. УПРАВЛЯЮШІЕ ОПЕРАТОРИ GPSS/PC ............................ 25

    4. ДЕЯКІ ПРИЙОМИ КОНСТРУЮВАННЯ GPSS-МОДЕЛЕЙ ............ 42

    4.1. Непряма адресація ............................... 42

    4.2. Обробка одночасних подій ................... 44

    5. КОМАНДИ GPSS/PC І ТЕХНОЛОГІЯ РОБОТИ З ПАКЕТОМ ............ 47

    5.1. Завантаження інтегрованого середовища .................... 47

    5.2. Введення нової моделі ................................. 47

    5.3. Редагування тексту моделі ...................... 48

    5.4. Запис і зчитування моделі з диска ................ 49

    5.5. Прогон моделі і спостереження за моделюванням ...... 49

    5.6. Отримання та інтерпретація стандартного звіту ..... 53

    СПИСОК ЛІТЕРАТУРИ ........................................ ... 58

    ВСТУП

    Процеси функціонування різних систем і мереж зв'язку можуть бути представлені тією чи іншою сукупністю систем масового обслуговування (СМО) - стохастичних, динамічних, дискретно-неперервним-рывных математичних моделей. Дослідження характеристик таких мо-делей може проводитися або аналітичними методами, або шляхом імітаційного моделювання [1-6].

    Імітаційна модель відображає стохастичний процес зміни дискретних станів СМО в безперервному часу у формі моделірующе-го алгоритму. При його реалізації на ЕОМ проводиться накопичення статистичних даних з тих атрибутів моделі, характеристики кото-яких є предметом досліджень. Після закінчення моделювання на-копленная статистика обробляється, і результати моделювання по-лучан у вигляді вибіркових розподілів досліджуваних величин або їх вибіркових моментів. Таким чином, при імітаційний моделюванні систем масового обслуговування мова завжди йде про статистичного імітаційного моделювання [5; 6].

    Складні функції моделює алгоритму можуть бути реалізовані засобами універсальних мов програмування (Паскаль, Сі), що надає необмежені можливості у розробці, налагодженні і використанні моделі. Однак така гнучкість купується ціною великих зусиль, що витрачаються на розробку та програмування дуже складних моделюючих алгоритмів, що оперують з списковим структурами даних. Альтернативою цьому є використання спе-ціалізірованних мов імітаційного моделювання [5-7].

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

    Одним з найбільш ефективних і поширених мов моді-воджується складних дискретних систем є в даний час мова

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

    СМО.

    На персональних комп'ютерах (ПК) типу 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 записуються і вводяться в ПК у такому форматі: номер _строкі ім'я операція операнди; коментарі

    Всі оператори вихідної програми повинні починатися з номі-ра 0_строкі - цілого позитивного числа від 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. Більша частина атрибутів дос-тупна програмісту і складає так звані стандартні число-ші атрибути (ВЧА), 0которие можуть використовуватися як опе-рандів операторів вихідної програми. Всі ВЧА в GPSS/PC є це-лимі числами.

    Кожен об'єкт GPSS/PC має ім'я та номер. Імена об'єктів даються в різних операторах вихідної програми, а відповідні їм номери транслятор присвоює автоматично. Назва об'єкта пред-вляєтся собою що починається з букви послідовність літер латинського алфавіту, цифр та символу "підкреслення". При необхідності імені будь-якого об'єкта, крім імені блоку, можна поставити у відповідність будь-який номер за допомогою оператора опису EQU, що має такий вигляд: ім'я EQU номер

    Блокам присвоюються їх порядкові номери у вихідній програмі

    (непутать з номерами рядків !).

    Для посилання 0на якої-небудь стандартний числовий атрибут некот-якого об'єкта відповідний операнд оператора вихідної програми записується одним із таких способів:

    ВЧА $ ім'я ;

    ВЧА j, де ВЧА - системне позначення (назва) конкретного стандар-тного числового атрибута даного об'єкта, а ім'я - ім'я об'єкта; j - номер об'єкта; $ - символ-розділювач.

    Прогон поточної моделі, тобто власне моделювання, виконуємо-ється за допомогою спеціальної керуючої програми, яку називають симулятором (від англійського SIMULATE - моделювати, імітувати).

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

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

    Якщо транзакт почав свій рух, він переміщується від блоку до блоку по шляху, написаним блок-схемою. У той момент, коли тран-закт входить в деякий блок, на виконання викликається підпрограма симулятора, що відповідає типу цього блоку, а після її виконан-ня, при якому реалізується функція даного блоку, транзакт "намагався-ється" увійти в наступний блок. Таке просування транзакта продовжуючи-ється до тих пір, поки не відбудеться одне з наступних можливих з-битій:

    1) транзакт входить в блок, функцією якого є видалення транзакта з моделі;

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

    3) транзакт "намагається" увійти в наступний блок, проте блок

    "відмовляється" вжити його. У цьому випадку транзакт залишається в тому блоці, де був, і пізніше буде повторювати свою спробу увійти в наступний блок. Коли умови в моделі зміняться, така спроба може виявитися успішною, і транзакт зможе продовжити своє перемі-щення по блок-схемі.

    Якщо виникло одне з описаних вище умов, обробка даного

    транзакта припиняється, і починається переміщення іншого транзакта.

    Таким чином, виконання моделювання симулятором триває

    постійно.

    Проходячи через блоки моделі, кожен транзакт вносить вклад в со - держімое лічильників блоків. Значення цих лічильників доступні програмісту через ВЧА блоків: W - поточний зміст блоку і N - загальна кількість входів до блоку.

    Кожне просування транзакта в моделі є подією, кото-рої має відбутися в певний момент модельного часу. Для того, щоб підтримувати правильну тимчасову послідовність подіютий, симулятор має таймер модельного часу, який ав-томатіческі коректується у відповідності з логікою, запропонованою моделлю.

    Таймер GPSS/PC має такі особливості:

    1) реєструються тільки цілі значення ( всі тимчасові інтер-вали в моделі зображуються цілими числами);

    2) одиниця модельного часу визначається розробником моді-ли, що задає всі тимчасові інтервали в одних і тих же, обраних ним одиницях; < p> 3) симулятор не аналізує стан моделі в кожен дотримуюся-щий момент модельного часу (віддалений від поточного на одиницю модельного часу), а просуває таймер до моме-нту часу, коли відбувається найближчим така подія.

    Значення таймера доступні програмісту через системні ВЧА C1

    (відносний час) і AC1 (абсолютна час).

    Центральної завданням, що виконується симулятором, є визна-ня того, який транзакт треба вибрати такий для просування в моделі, коли його попередник припинив своє просування. З цією метою симулятор розглядає кожен транзакт як елемент деякий-го списку. У відносно простих моделях використовуються лише два основних списку: список поточних подій і список майбутніх подій.

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

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

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

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

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

    З транзактамі пов'язані блоки створення, знищення, затримки транзактов, зміни їх атрибутів і створення копій транзактов.

    Для створення транзактов, що входять в модель, служить блок

    GENERATE (генерувати), що має такий вигляд:

    ім'я GENERATE A, B, C, D, E

    У полі A задається середнє значення інтервалу часу між мо - ментами надходження в модель двох послідовних транзактов. Якщо цей інтервал постійний, то поле B не використовується. Якщо ж інтер-вал надходження є випадковою величиною, то в полі B вказуючи-ється модифікатор середнього значення, який може бути заданий у вигляді модифікатора-інтервалу або модифікатора-функції.

    Модифікатор-інтервал використовується, коли інтервал надходження транзактов є випадковою величиною з рівномірним законом роз-ределенія ймовірностей. У цьому випадку в поле B може бути заданий лю-бой ВЧА, окрім посилання на функцію, а діапазон зміни інтервалу надходження має межі AB, A + B.

    Наприклад, блок

    GENERATE 100,40 створює транзакти через випадкові проміжки часу, рівномірно розподілені на відрізку [60; 140].

    Модифікатор-функція використовується, якщо закон розподілу ін-інтервал надходження відмінний від рівномірного. У цьому випадку в поле B повинна бути записана посилання на функцію (її ВЧА), що описує цей закон, і випадковий інтервал надходження визначається, як ціла частина твору поля A (середнього значення) на обчислена значен-ня функції.

    У полі C задається час вступу до модель першого транзак-та. Якщо це поле порожнє або дорівнює 0, то момент появи перших транзакта визначається операндами A і B.

    Поле D задає загальне число транзактов, яка має бути ство-дано блоком GENERATE. Якщо це поле порожнім, то блок генерує неоген-раніченное число транзактов до завершення моделювання.

    У полі E задається пріоритет, який присвоюється генеруються транзак-там. Число рівнів пріоритетів необмежена, причому найнижчий пріоритет - нульовий. Якщо поле E пусто, то що генеруються транзакти мають нульовий пріоритет.

    Транзакти мають ряд стандартних числових атрибутів. Наприклад,

    ВЧА з назвою PR дозволяє посилатися на пріоритет транзакта. ВЧА з назвою M1 містить так зване резидентні час транзакта,

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

    GENERATE. ВЧА з назвою XN1 містить внутрішній номер транзакта,який є унікальним і дозволяє завжди відрізнити один транзакт від іншого. На відміну від ВЧА інших об'єктів, ВЧА

    транзактов не містять посилання на ім'я або номер транзакта. Посилання на ВЧА транзакта завжди відноситься до активного транзакту, тобто тра-нзакту, що обробляються в даний момент симулятором.

    Важливими стандартними числовими атрибутами транзактов є значення їх параметрів. Будь-який транзакт може мати необмежену кількість параметрів, що містять ті чи інші числові значення. Посилання на цей ВЧА транзактов завжди відноситься до активного транзакту і має вигляд Pj або Р $ ім'я, де 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. Вміст цього параметра може бути пізніше вико-вано для визначення транзитного часу 0пребиванія транзакта в якоїсь частини моделі з допомогою ВЧА з назвою 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. При цьому точне значення таймера в момент завершення прогону непередбачувано. Отже, у приве-денном прикладі тривалість прогону встановлюється не за мо-ремого часу, а за кількістю транзактов, які пройшли через мо-дель.

    GENERATE 100,40

    TERMINATE 1

    START 1000

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

    GENERATE 100,40

    TERMINATE

    GENERATE 100000

    TERMINATE 1

    START 1

    Наприклад, у моделі з двох сегментів, наведеною на рис. 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 може одночасно знаходитися довільна кількість транзактов.

    GENERATE 100,40

    ADVANCE 80,50 < p> TERMINATE 1

    У розглянутих вище прикладах випадкові інтервали часу під-чинять рівномірному закону розподілу ймовірностей. Для напів-чення випадкових величин з іншими розподілами в 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 є символ # (номер).

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

    Дійсні змінні 0определяются перед початком моделі-вання за допомогою оператора визначення FVARIABLE, що має той же формат, що і оператор VARIABLE. Відмінність дійсних змінних від цілих полягає в тому, що в дійсних змінних всі проміжні операції виконуються зі збереженням дробової частини чисел, і лише остаточний результат приводиться до цілого типу відб-расиваніем дробової частини.

    Арифметичні змінні обох типів мають єдиний ВЧА з назвою V, значенням якого є результат обчислення Аріф-метичних вираження, що визначає змінну. Обчислення висловлю-вання проводиться при вході транзакта до блоку, що містить посилання на

    ВЧА V з ім'ям змінної.

    Дійсні змінні можуть бути використані для отри-мання випадкових інтервалів часу з показовим законом Розподі - лення. Нехай в моделі з прикладу на рис. 3 розподілу часу надходження транзактов і часу затримки повинні мати показник-ний закон. Це може бути зроблено так, як показано на рис. 4.

    TARR FVARIABLE -100 # LOG ((1 + RN1)/1000)

    TSRV FVARIABLE -80 # LOG ((1 + RN1)/1000)

    GENERATE V $ TARR

    ADVANCE V $ TSRV

    TERMINATE 1

    Рис. 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 точки для забезпе-чення достатньої точності апроксимації, має такий вигляд:

    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

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

    Спочатку визначається інтервал (Xi; Xi 1), на якому знаходиться теку-ний значення ВЧА-аргументу (у нашому прикладі - згенероване зна-чення RN1). Потім на цьому інтервалі виконується лінійна Інтерполу-ція з використанням відповідних значень Yi і Yi 1. Результат інтерполяції усікається (відкиданням дробової частини) і використовується в якості значення функції. Якщо функція служить операндом B блоків

    GENERATE або ADVANCE, то усікання результату проводиться тільки після його множення на значення операнда A.

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

    (кілька машинних операцій на виконання лінійної інтерполяції).

    Щоб до похибки апроксимації не додавати занадто велику пог-решность усікання, середнє значення при використанні показових розподілів має бути достатньо великим (не менше 50). Ця ре-комендація відноситься і до використання змінних.

    Ф

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

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