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

     

     

     

     

     

         
     
    Механізм створення транзактов в моделі
         

     

    Кибернетика

    Московський Інженерно-Фізичний Інститут

    (технічний університет)

    Реферат по курсу Моделювання обчислювальних систем

    Тема: «Механізм генерації транзактов в моделі.

    Формування ланцюгів поточних і майбутніх подій.

    Основні атрибути транзактов.

    Управління рухом транзактов. »

    Студент групи К8-123 Кірєєв Анатолій

    Москва 2000

    ВСТУП

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

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

    Транзакти

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

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

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

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

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

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

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

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

    2. одиниця модельного часу визначається розробником моделі, що задає всі тимчасові інтервали в одних і тих же, обраних ним одиницях;

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

    Значення таймера доступні програмісту через системні ВЧА C1 < br>(відносний час) і AC1 (абсолютна час). Центральної завданням,виконуваної симулятором, є визначення того, який транзакт требаобрати наступним для просування в моделі, коли його попередникприпинив своє просування. З цією метою симулятор розглядає кожентранзакт як елемент деякого списку. У відносно простих моделяхвикористовуються лише два основних списку: список поточних подій і списокмайбутніх подій.

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

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

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

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

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

    Для створення транзактов, що входять в модель, служить блок 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 цьогооператора містить початкове значення лічильника завершений. Прогон моделізакінчується, коли вміст лічильника завершений звертається до 0. Такимчином, в моделі повинен бути хоча б один блок TERMINATE з непустих полем
    A, інакше процес моделювання ніколи не завершиться. Поточне значеннялічильника завершений є програмісту через системний ВЧА TG1.

    Ділянка блок-схеми моделі, пов'язаний з парою блоків GENERATE-ТERMINATE,називається сегментом. Прості моделі можуть складатися з одного сегмента, вскладних моделях може бути кілька сегментів.

    Наприклад, найпростіший сегмент моделі, що складається всього з двох блоків
    GENERATE і TERMINATE, у сукупності з керуючим оператором STARTмоделює процес створення випадкового потоку транзактов, що надходять умодель із середнім інтервалом в 100 одиниць модельного часу, і знищенняцих транзактов

    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, то транзакт в той же момент модельногочасу переходить у наступний блок, залишаючись у списку поточних подій. Унаведеному нижче сегменті транзакти, що надходять в модель з блоку GENERATEчерез випадкові проміжки часу, які мають рівномірний розподіл навідрізку [60; 140], потрапляють до блоку ADVANCE. Тут визначається випадковечас затримки транзакта, що має рівномірний розподіл на відрізку
    [30; 130], і транзакт переводиться в список майбутніх подій. Після закінченнячасу затримки транзакт повертається до списку поточних подій і входить доблок TERMINATE, де знищується. Зауважимо, що в списку майбутніх подій, азначить і в блоці ADVANCE може одночасно перебувати довільнекількість транзактов.

    GENERATE 100,40

    ADVANCE 80,50

    TERMINATE 1

    У розглянутих вище прикладах випадкові інтервали часу підпорядковувалисярівномірному закону розподілу ймовірностей. Для отримання випадковихвеличин з іншими розподілами в GPSS/PC використовуються обчислювальніоб'єкти: змінні і функції.

    Транзакти можуть входити в модель не лише через блок 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.

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

    Блок TRANSFER служить для передачі входять до нього транзактов в блоки,відмінні від наступного. Блок має дев'ять режимів роботи, з якихрозглянемо тут лише три найбільш часто використовуваних. У цих трьох режимахблок мають такий вигляд: ім'я TRANSFER A, B, C сенс операндів у полях A,
    B і C залежить від режиму роботи блоку.

    У режимі безумовної передачі поля A та C порожні, а в полі B вказуєтьсяім'я блоку, до якого безумовним чином направляється транзакт, що увійшов доблок TRANSFER. Наприклад: TRANSFER, FINAL

    У режимі статистичної передачі операнд A визначає ймовірність, зякої транзакт направляється до блоку, зазначений у полі C. З імовірністю 1 -
    A транзакт направляється до блоку, зазначений у полі B (в наступний, якщо поле
    B пусто). Імовірність в полі A може бути задана безпосередньо десятковогодробом, що починається з точки. Наприклад, блок TRANSFER .75, THIS, THAT з імовірністю 0,75 направляє транзакти в блок з ім'ям THAT, а зймовірністю 0,25 - в блок з ім'ям THIS. Якщо ж поле A починається не здесяткового дробу і не містить одного з ключових слів - ознак іншихрежимів роботи блоку, то його значення розглядається як кількістьтисячних часток у вірогідності передачі. Наприклад, попередній блок TRANSFERможна записати також у наступному вигляді: TRANSFER 750, THIS, THAT

    У режимі логічної передачі в полі A записується ключове слово BOTH.
    Транзакт, що надходить у блок TRANSFER, спочатку намагається увійти до блоку,зазначений у полі B (або в наступний блок, якщо поле B пусто), а якщо це невдається, тобто блок B транзакту відмовляє у вході, то в блок, зазначений уполе C. Якщо і ця спроба невдала, то транзакт затримується в блоці
    TRANSFER до зміни умов в моделі, який забезпечує їй вхід в один зблоків B або C, причому при одночасно виникла можливості перевагувіддається блоку B. Наприклад: TRANSFER BOTH, MET1, MET2

    Блок TEST (перевірити) служить для затримки або зміни маршрутівтранзактов залежно від співвідношення двох ВЧА. Він має наступнийформат: ім'я TEST X A, B, C. Допоміжний операнд X містить умовуперевірки співвідношення між ВЧА і може приймати такі значення: L; LE;
    E; NE; GE; G. Поле A містить перші, а поле B - другий з порівнюваних
    ВЧА. Якщо перевіряється умова AXB виконується, то блок TEST пропускаєтранзакт в наступний блок. Якщо ж ця умова не виконується, то транзактпереходить до блоку, вказаною в поле C, а якщо воно порожнє, то затримуєтьсяперед блоком TEST. Наприклад, блок TEST LE P $ TIME, C1 не впускає транзакти,у яких значення параметра з ім'ям TIME більше поточного модельногочасу. Блок TEST LQ $ LINE, 5, OUT направляє транзакти в блок з ім'ям OUT,якщо поточна довжина черги LINE більше або дорівнює 5.

    Для затримки або зміни маршруту транзактов залежно відстану апаратних об'єктів моделі є блок GATE, що має наступнийформат: ім'я GATE X A, B. Допоміжний операнд X містить код стануперевіряється апаратного об'єкта, а в полі A вказується ім'я або номерцього об'єкта. Якщо перевіряється об'єкт знаходиться в заданому стані, тоблок GATE пропускає транзакт до наступного блоку. Якщо ж заданий в блоціумова не виконується, то транзакт переходить до блоку, зазначеному в полі B,а якщо це поле порожнім, то затримується перед блоком GATE. Операнд X можеприймати такі значення: U; NU; I; NI; SE; SNE; SF; SNF; LS; LR.
    Наприклад, блок GATE SNE BUF3 відмовляє у вході транзактам, що надходять домоменти, коли в МКУ з ім'ям BUF3 всі канали обслуговування вільні. Блок
    GATE LR 4, BLOK2 направляє транзакти в блок з ім'ям BLOK2, якщо в моментїх надходження ЛП з номером 4 включений.

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

     

     

     

     

     

     

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