Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Механизм генерації транзактов в модели

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Динамічні об'єкти, відповідні заявками в системах масового обслуговування, називаються в GPSS/PC транзактами. Вони «створюються «і «знищуються «оскільки це потрібно за логікою моделі у процесі моделювання. Із кожним транзактом пов’язана довільне число параметрів, які містять у собі необхідну інформацію звідси транзакте. Крім того, транзакты може мати різні пріоритети. У початковий момент часу… Читати ще >

Механизм генерації транзактов в модели (реферат, курсова, диплом, контрольна)

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

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

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

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

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

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

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

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

Москва 2000.

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

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

Транзакты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

До сформування транзактов, які входять у модель, служить блок GENERATE (генерувати), має наступний формат: ім'я GENERATE A, B, C, D, E.

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

Наприклад, блок GENERATE 100,40 створює транзакты через випадкові інтервали часу, рівномірно розподілені на відрізку [60;140]. Модификатор-функция використовується, якщо закон розподілу інтервалу надходження різниться від рівномірного. І тут на полі B мусить бути записана посилання функцію, описує цього закону, і випадковий інтервал надходження визначається, як ціла частина книжки поля A (середнього значення) на розрахований значення функції. У центрі З задається момент надходження у модель першого транзакта. Якщо це полі порожньо або дорівнює 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 100 000.

TERMINATE 1.

START 1.

Наприклад, в моделі з цих двох сегментів, наведеної на рис. 2, перший (основний) сегмент виконує самі функції, що у попередньому прикладі. Зауважимо, проте, що полі A блоку TERMINATE у першому сегменті порожньо, тобто. знищувані транзакты здешевлюють хліборобські вмісту лічильника завершень. У другому сегменті блок GENERATE створить перший транзакт в останній момент модельного часу, рівний 100 000. Але це транзакт залишиться останнім у цьому сегменті, оскільки, зайшовши у блок 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, може бути пронумеровано в параметрі, ім'я чи номер якого зазначені у полі З. Якщо в транзакта-родителя значення цієї параметра біля входу до блок SPLIT було одно k, то, при виході з блоком він стане рівним k+1, а значення цього параметра у транзактов-потомков виявляться рівними k+2, k+3 і т.д.

Наприклад, блок SPLIT 5, MET1,NUM створює п’ять копій вихідного транзакта і направляє в блок безпосередньо з ім'ям MET1. Транзакт-родитель і нащадки нумеруються в параметрі безпосередньо з ім'ям NUM. Якщо, наприклад, перед входом у нього значення цієї параметра у транзакта-родителя було одно 0, то, при виході з блоком він стане рівним 1, а й у транзактов-потомков значення параметра NUM дорівнюватимуть 2, 3, 4, 5 і 6.

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

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

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

У режимі статистичної передачі операнд A визначає ймовірність, з якої транзакт направляють у блок, вказаний у полі З. З імовірністю 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 відмовляє транзакту у вході, то блок, вказаний у полі З. Якщо ця спроба невдала, то транзакт затримується у блоці TRANSFER до зміни умов у моделі, що робить можливим вхід одного з блоків B чи З, причому при одночасно посталої можливості перевагу віддається блоку B. Наприклад: TRANSFER BOTH, MET1, MET2.

Блок TEST (перевірити) служить затримки чи зміни маршрутів транзактов залежно від співвідношення двох СЧА. Вона має наступний формат: ім'я TEST X A, B, C. Допоміжний операнд X містить умова перевірки співвідношень між СЧА і може приймати такі значення: L; LE; E; NE; GE; G. Поле A містить перший, а полі B — з порівнюваних СЧА. Якщо проверяемое умова A X B виконується, то блок TEST пропускає транзакт в наступний блок. Якщо йому це умова не виконується, то транзакт переходить до блоку, зазначеному на полі З, і якщо воно порожньо, то затримується перед блоком TEST. Наприклад, блок TEST LE P$TIME, C1 не впускає транзакты, які мають значення параметра безпосередньо з ім'ям TIME більше поточного модельного часу. Блок TEST L Q$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 включен.

Показати весь текст
Заповнити форму поточною роботою