Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ЗНАЙОМСТВО З МОВОЮ ІМІТАЦІЙНОГО МОДЕЛЮВАННЯ GPSS/PC




Мета работи:познайомитися з мовою GPSS/PC , її можливостями, основними засобами, принципами моделювання. 

 

1  СИСТЕМА ІМІТАЦІЙНОГО МОДЕЛЮВАННЯ GPSS/PC

1.1  Об’єкти

Мова GPSS - це мова декларативного типу, побудована за принципами об’єктозорiєнтованої мови. Основними елементами цiєї мови є транзакти і блоки, якi вiдображають вiдповiдно динамiчнi i статичнi об’екти системи, що моделюється.

Моделюючi об’єкти в системi призначенi для рiэних цiлей. Вибiр об’єктiв у конкретнiй моделi залежить вiд характеристик модельованої системи. Кожний об’єкт має деяке число властивостей, названих в GPSS стандартними числовими атрибутами (СЧА).Частина СЧА доступна користувачевi тiльки для читання, а на значення iншої частини вiн може впливати через використання вiдвовiдних блокiв.

Блоки i транзакти. Кожна GPSS – модель обов’язково повинна мiстити такi обекти, як блоки i транзакти.

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

Блоки мови GPSS являють собою пiдпрограми, написанi мовою макроасемблера i мiстять набiр параметрiв (операндiв) для звернення до них. Як i всi мови моделювання GPSS має деякий внутрiшнiй механiзм передачi керування, який реалiзовується в модельному часi, що дозволяє вiдображати динамiчнi процеси в реальних системах. Передача керування вiд блока до блока в GPSS - програмах здiйснюється за допомогою руху транзактiв в модельному часі; звернення до підпрограм блоків відбувається через рух транзактів.

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

 

                                                               Таблиця 1.1

 

З програмної точки зору транзакт являє собою структуру даних, яка мiстить такi поля:

- iм’я або номер транзакту;

- час виникнення транзакту;

- поточний модельний час;

- номер блока, де знаходиться транзакт;

- номер блока, куди вiн перемiщується;

- момент часу початку перемiщення;

- прiоритет транзакту;

- параметри транзакту: Р1, Р2, ...

У мовi GPSS всi транзакти нумеруються в мiру їх появи у моделi. Параметри транзактiв вiдображають властивостi динамiчного обекта, що моделюється. Наприклад, якщо моделюється рух автомобiлiв на дiлянцi дороги, то параметрами транзакту (автомобiля) залежно в цiлей моделювання можуть бути швидкiсть, гальмовий шлях, габарити та iн.

Кожний транзант займає деякий об’єм пам’ятi ЕОМ. Пiсля того, як вiн закiнчить свiй рух по блоках моделi, його необхiдно знищувати для звiльнення пам’ятi, щоб уникнути її переповнення. Оскiльки транслятору не вiдомо, скiльки транзактів одночасно будуть знаходитися в моделi, то пам’ять пiд транзакти видiляеться динамiчно.

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

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

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

2. Транзакт входить в деякий блок, функцiєю якого є видалення транзакту.

З. Транзакт намагається увiйти у наступний блок вiдповiдно до логiки

моделi, але блок не приймає цей транзакт; у цьому випадку вiн залишається у

тому блоцi, в якому в даний час знаходиться, але пiзнiше почне повторювати

свою спробу ввiйти в наступний блок. Коли умови в моделi змiняться, одна з

таких спроб може бути успiшною. Пiсля цього транзакт продовжить своє

перемiщення по моделi.

Якщо виникла одна з вказаних умов, транзакт залишається на мiсцi, i в моделi починається перемiщення iншого транзакту.

Об’єкти типу ‘ресурси”. Аналогами обслуговуючих пристроїв реальних систем у GPSS є об’єкти типу “ресурси”. До об’єктiв цього типу вiдносять пристрої, багатоканальні пристрої і логічні ключі.

Як i в кожнiй об’єктозорiєнтованiй мовi в GPSS кожен об’ект має властивості та методи, якi змiнюють цi властивостi. У GPSS властивостi об’єктiв називають СЧА.

Пристрiй (одноканальний пристрiй) являе собою ресурс, який в будь- який момент часу може бути зайнятий тiльки одним транзактом. Iнтерпретатор автоматично обчислює такi СЧА, як загальний час зайнятостi пристрою, число транзактiв, що займали пристрiй тощо. Це дозволяє йому визначити коефiцiєнт використання кожного пристрою i середнiй час зайнятостi пристрою одним транзактом.

Багатоканальнi пристрої (БКП) (декiлька паралельних однакових пристроїв) являють собою об’єкти типу “ресурси” для паралельної обробки. Вони можуть бути використанi декiлькома транзактами одночасно. Користувач визначає мiсткість (кiлькiсть каналiв або однакових пристроїв) кожного БКП, що використовується у моделi, а iнтерпретатор веде облiк числа каналiв, зайнятих в кожний момент часу. Iнтерпретатор також автоматично вiдраховуе такi СЧА: число транзактiв, що увiйшли у БКП, середнє число каналiв, зайнятих одним транзактом, середнiй час перебування транзакту в пристрої тощо.

Певні подiї в системi можуть заблокувати або змiнити рух транзактiв. Наприклад, касир кiнотеатру, йдучи на обiд, ставить табличку “ Звертатися до наступного вiкна” i всi подальшi клiєнти протягом обiду звертаються в iншу касу. Для моделювання подібних ситуацiй введенi логiчнi ключi. Транзакт може встановлювати цi ключi у положення “Ввiмкнено” або “Вимкнено”. Згодом стан ключа може бути перевiрений iншими транзактами для визначення шляху проходження або часу чекання моменту зміни стану ключа. Стан ключа може бути змiнений будь-яким iншим транзактом.

Змiнні. Арифметичні змінні дозволяють обчислювати арифметичнi вираз що складаються з операцiй над СЧА об’єктiв. У виразах змiнних можуть бути використанi функцiї (бiблiотечнi або користувача). Булевi змінні дозволяють користувачевi перевiряти одночасно декiлька умов, виходячи зi стану або значення обектiв та їхнiх СЧА.

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

Комiрки і матрицi збереження величин. Комiрки і матрицi збереження величин використовуються для збереження деякої призначеної для користувача числової iнформацiї i транзакт може здiйснити запис в цi об’єкти. Згодом записану в цi об’єкти iнформацiю може зчитувати будь-який транзакт. Таким чином, цi об’єкти є глобальними і доступними з будь-якої частини моделi.

Черги. У будь-якiй системi рух потоку транзактiв може бути затриманий через недоступнiсть ресурсiв (наприклад, потрiбнi пристрої або БКП вже зайнятi). У цьому випадку затримані транзакти становляться в чергу - ще один тип об’ектiв GPSS. Облiк цих черг становить одну з основних функцiй iнтерпретатора. Користувач може спецiально визначити точки моделi, в яких треба збирати статистику про черги, тобто встановити реєстратори черги. Тодi iнтерпретатор буде автоматично збирати статистику про черги (довжину черги, середний час перебування в черзi і т.iн.). Вся ця iнформацiя є СЧА i доступна користувачевi в процесі моделювання. Число затриманих транзактiв і тривалiсть цих затримок визначається тiльки в цих заданих точках.

Таблицi. Обект “таблиця” призначений для збору статистики про випадковi величини, заданi користувачем. Таблиця складається iз частотних класiв, в якi заноситься число попадань конкретної величини (деякого СЧА).

Для кожної       таблицi      обчислюється       математичне сподівання i середньоквадратичне вiдхилення.

1.2  Таймер модельного часу

Рiзнi подiї реальних систем вiдбуваються протягом  деякого перiоду часу. Наприклад, покупцi приходять до магазину, i коли настас їхня черга, вони обслуговуються. Коли покупки зробленi, покупцi покидають магазин. Якщо всi цi подiї представити в моделi, то їх виникнення повинно вiдбуватися на фонi модельного часу. Iнтерпретатор автоматично обслуговує таймер модельпого часу.

З початком моделювання в iнтерпретаторi планується поява першого транзакту. Пiсля цього таймер модельного часу встановлюється в значения часу, яке вiдповiдає моменту появи першого транзакту в моделi. Цей транзакт (і iншi, якщо вони надходять в цей же момент часу) входить у модель. Далi вiн перемiщається через усi можливi блоки моделi, що йому зустрiчаються. Подiї, якi виникають внаслiдок перемищення транзакту через блоки, плануються на подальшi моменти часу. Природно, що в цей перший вiдмiчений момент часу нiчого бiльше в системі не вiдбувається. Iнтерпретатор GPSS перемiщує далi значення таймера до того значения часу, в яке вiдбувається наступна подiя, ним запланована. Якщо в цей другий, вiдмiчений таймером, момент часу не залишається транзакту, який треба перемiщувати, таймер знову рухається вперед i т.д. Саме так і вiдбувається змiна модельного часу.

1.3  Типи операторiв

Оператори GPSS подiляють на такi три типи:

      - блоки;

      - оператори опису даних i контролю керування;

      - команди GPSS.

Загальнi вiдомостi про формат блокiв GPSS. У GPSS для посилань на числа, блоки i об’єкти застосовуються iмена. Iм’я являє собою алфавiтно- цифрову послiдовнiсть завдовжки до 20 символiв, що починається з букви. Допускається застосування символiв тiльки латинського алфавiту.

Формат GPSS - блоків такий:

[Номер рядка] [<Мітка>] <Операцiя > <Операнди> <; Коментарі >

Номер рядна. Необов’язкове поле. Починається з першої позицiї рядка. Являє собою десяткове число.

Мітка. Змістом поля є ім’я.

Операція. Операціями блокiв є дiєслова, що описують основнi функцiоналънi призначення блокiв. Кожний з блокiв характеризується своїм власним приписаним йому дiєсловом.

Операнди. Блоки можуть мати операнди. Операнди блокiв задають iнформацію, специфiчну для дiї даного блока. Число операндiв кожного блока залежить вiд типу блока. У блоках не може використовуватися 6ідьше семи операндів. Операнди в загальному випадку позначаються символами: А, В, С, D, Е, F, G. Однi операнди деяких блокiв повиннi бути специфiкованi завжди, а інші можуть задаватися або не задаватися. Операнди слiдують один за одним i вiддiляються комами. Мiж ними не повинно бути пропускiв. Пропуск в полі операндiв означає, що операнди закiнчилися i iнтерпретатор припиняє читання рядка. Пропуск в записi необов’язкових операндiв вiдмiчається символом “,”.

Коментарi. Необов’язкове поле. У GPSS допускаються коментарi з

використанням великих i малих букв латинського алфавiту; відділяються вiд

поля операндiв символом ;. Допускається запис коментарю з початку рядка. У цьому випадку в першiй позицiї рядка ставиться символ ; або * .

Рядок опису блока може містити до 79 символiв. Квадратнi дужки [ ] вказують на необов’язковiсть поля.

Cлід відмітити, що іменами i мiтками не можуть бути початковi символи назв блокiв, операторiв, команд i СЧА.

 

1.4  Внесення транзактiв до моделi.

Блок GЕNЕRАТЕ - це блок, через який транзакги вкодять до моделi. Не iснує обмежень на число рiзних блокiв GЕNЕRАТЕ в одій моделi.

Iнтервал часу між послiдовними появами транзактiв з блока GЕNЕRАТЕ називають iнтервалом надходження. Коли транзакт входить у модель через блок GЕNЕRАТЕ, iнтерпретатор планує час надходження наступного транзакту через розиграш випадкового числа вiдповiдно до розподiлу інтервалiв надходження і з подальшим додаванням розiграного значення до поточного значення таймера. При досягненнi цього значення часу наступний транзакт вводиться до моделі через блок GЕNЕRАТЕ i тд.

Розробник повинен задати функцію випадкового розподiлу iнтервалiв надходження транзактiв у блоцi GЕNЕRАТЕ.

Усi можливi види випадкових розподiлiв iнтервалiв надходження в GPSS подiляють на рiвномiрний розподiл та iншi види розподiлiв.

Формат блока:

GЕNЕRАТЕ [A],[B],[C],[D],[E]

Значения операндiв:

 

Приклад 1.1

1. Задання рiвномiрного закону розподілу:

GЕNЕRАТЕ 6,4

Операнди: А =6, В = 4. Iнтервал часу надходження є випадковим числом iз середнім значенням 6 i полем допуску 8, тобто вiн може набувати тiльки одне з дев’яти рiзних значень: 2,3,4,5,6,7,8,9,10.

 

2. Задання детермiнованого значення iнтервалiв надходження:

GЕNЕRАТЕ 10

Операнди: А = 10, В =0 (за замовчуванням). Транзакти входять в модель кожнi 10 одиниць модельного часу.

3. Генерування єдиного транзакту:

GЕNЕRАТЕ ,,,1

Операнди: А= В= С = 0 (за замовчуванням), D = 1. У нульовий момент часу в модель входить один транзакт.

1.5  Видалення транзактiв з моделi.

Транзакти видаляються з моделi попадаючи у блок ТERMINATE. У цей момент звільняється пам’ять, видiлена пiд транзакт. Цi блоки завжди дозволяють вийти всiм транзактам, якi намагаються це зробити. У моделi може бути будь-яке число блокiв ТЕRMINATE.

Формат блока:

                                  ТЕRMINATE [A]

Операнд  А  є величиною зменшення спецiального лiчильника, який називається лiчильником завершення. Цей операнд задає величину, яка вiднiмається вiд лiчильника кожний раз, коли транзакт входить в блок ТЕRMINATE . За замовчуванням А = 0. Вхiд транзакту в блок ТЕRMINATE з нульовим вначенням операнда А не викликає зменшення лiчильника завершення.

Лiчильник завершення — це елемент пам’яті ЕОМ, який зберiгає цiле позитивне число. Початкове значення цьому лiчильнику привласнюється на початку моделювання. Воно дорiвнює значенню операнда А команди START (РОЗПОЧАТИ ). У процесi моделювання транзакти попадають в блоки ТЕRMINATE i таким чином вiдбувається зменшення лiчильника. Моделювання завершується, коли лiчильник скидається в нуль (або набуває негативного значення).

Інтерпретатор починає моделювання за командою START. ЇЇ формат:

                                          START А

В операндi А задається початкове значення лічильника завершення.

Керування тривалiстю процесу моделювання. У мовi GPSS можна керувати тривалістю процесу моделювання двома способами:

- завершувати моделювання пiсля того, як модель покине задане число транзактів певного типу;

- завершувати моделювання, якщо минув заданий інтервал часу.

Перший спосіб.

1. У командi START операндуА привласнюється значення заданого числа транзактiв.

2. У всіх блоках ТЕRMINATE, через якi транзакти заданого типу покидають модель, операнду А встановлюється значення “1” або iнше, вiдмiнне від нуля (вiдповідно до змiстовного значення транзакту).

3. У всiх інших блоках ТЕRMINATE в моделi використовується значення операнда А за замовчуванням (А = 0). Значення лiчильника завершення не буде залежати вiд цих блокiв.

Перший спосiб дозволяє закінчити моделювання, коли через модель пройде задана кiлькість транзактiв. Наприклад, треба закінчити моделювання, коли через модель пройде 1000 транзактів:

             

          GЕNЕRАТЕ      6,4

                     …

                     …

                     ТЕRMINATE 1

                     START             1000

 

Другий спосiб. Нехай розробник вибрав за одиницю модельного часу 1хв. і хоче змоделювати поведiнку системи протягом 8 год. ( тобто 480хв.). Це можна зробити таким чином.

1. Ввести в модель сегмент таймера з двох блоків

                     GЕNЕRАТЕ      480

                     ТЕRMINATE  1

 

2. У всіх iнших блоках ТЕRMINATE  в моделi використовується значення операндаА за замовчуванням (А = 0). Це означає, що припинення моделювання, що визначається лiчильником завершення, не повинне залежати вiд iнших блокiв ТЕRMINATE.

 

3. У команді START операнд Амає дорівнювати одиниці.

Таким чином, у процесi моделювання завершення руху транзактiв в iнших блоках ТЕRMINATE  не впливають на лiчильник завершення. У момент часу 480 транзакт вийде з блока GЕNЕRАТЕ i вiдразу ж перейде до блока ТЕRMINATE. Лiчильник завершення зменшиться на одиницю i iнтерпретатор завершить моделювання.

1.6 Елементи, що вiдображають одноканальнi обслуговуючi пристрої

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

Одноканальні обслуговуючі пристрої характеризуються двома основними властивостями.

1. Кожний пристрiй в будь-який момент часу може обслуговувати тiльки один травзакт. Якщо в процесi обслуговування з’являється новий транзакт, то вiн повинен:

- або дочекатися свого часу, вставши в чергу;

- або перемiститися в iнше мiсце;

- або, якщо вiн є важливiшим, пристрiй перериває поточне обслуговування i починає обслуговувати його.

2. Коли у пристрiй поступає транзакт, вiн повинен пробути там час, необхiдний для обслуговування.

Всім пристроям присвоюються iмена. Вони можуть бути або числовими (числа мають бути цілими позитивними) або символiчними.

Для того, щоб використати одноканальний обслуговуючий пристрій, транзакту необхiдно виконати такi кроки.

1. Чекати своєї черги, якщо це необхiдно. Очiкування вимагає деякого iнтервалу часу.

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

3. Пристрiй перебуває в станi зайнятостi доти, доки не закiнчиться обслуговування. Для обслуговування потрiбний деякий інтервал часу.

4. Коли обслуговування закiнчується, звiльнити пристрiй. Подiя “звiльнення пристрою” вiдбувається в деякiй точцi часу.

Ця послiдовнiсть крокiв виконується GPSS при моделюванні використання пристрою. Другий і четвертий кроки реалiзовуються блоками

SEIZE (ЗАЙНЯТИ) і RELEASE (ЗВIЛЬНИТИ).

У той час, як транзакти перебувають в моделi тимчасово, використовуванi в моделі пристрої знаходяться там протягом всього перiоду моделювання.

Статистична iнформацiя про роботу пристрою при моделюваннi збирається автоматично. Статистику про роботу пристрою можна спостерiгати у вiкнi пристроїв при роботi з програмою, перейшовши в це вiкно за допомогою натискання клавiшiв [ALT+F].

1.7 Реалiзацiя затримки у  часi.

Блок ADVANCE (ЗАТРИМАТИ) здiйснює реалiзацiю затримки переміщення транзакту протягом деякого iнтервалу часу. Зазвичай цей iнтервал задається випадковою змінною.

У GPSS можливi такi варiанти розподiлу часу обслуговування:

- рiвномiрний розподiл iнтервалу обслуговування;

- iншi види розподiлу iнтервалiв обслуговування.

Як i при використаннi блока  GЕNЕRАТЕ особливо розглядається рiвномiрний розподiл випадкових величин. Застосування складніших видiв розподiлiв вимагає використання функцiй.

Формат блока:

                       

                                   ADVANCE    А,[B]

 

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

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

Приклад 1.2

Використання блока ADVANCE:

                        

                                     ADVANCE 30,5

Час затримки транзакту в цьому блоцi - це випадкова величина, рiвномірно розподілена на iнтервалi [25, 35], i яка приймає одне з 11 цілих значень.

Приклад 1.3

Класичний випадок використання послiдовностi SEIZE – ADVANCE -

RELEASE:

 

                                      SEIZE                PROCESOR

                                      ADVANCE   16,4

                                      RELEASE     PROCESOR

Транзакт, рухаючись по цьому ланцюжку блоків, займе пристрiй із символiчним iменем  PROCESOR, затримається там на 16 4 од. часу i потiм покине його. Пiсля того, як транзакт увiйде в блок RELEASE i відповідна цьому блоку пiдпрограма закiнчиться, iнтерпретатор спробує перемiстити транзакт в наступний блок моделi i наступний транзакт вже може використати пристрiй PROCESOR.

 1.8  Збiр статистики при чеканні

Блоки QUEUE (СТАТИ В ЧЕРГУ), і DEPART (ПОКИНУТИ ЧЕРГУ) забезпечують в GPSS можливiсть автоматичного збору

статистичних даних, що описують змушене очiкування, яке може вiдбуватися час вiд часу в рiзних точках моделi.

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

1) число надходження транзактiв до черги;

2) кiлькiсть транзактiв, якi фактично приєдналися до черги i якi вiдразу зайняли пристрiй;

3) максимальне значення довжини черги;

4) середнє число транзактiв, що чекали;

5) середнiй час чекання тих транзактiв, яким довелося чекати.

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

 

                                        QUEUE  А,[B]

                                         DEPART A,[B]

 

При входi транзакту в блок QUEUE виконуються такi чотири дії:

1) “лiчильник входiв” для даної черги збiльшується на В;

2) “лiчильник поточного вмiсту” для даної черги збiльшується на В;

3) транзакт примикає до черги iз запам’ятовуванням її іменi i значення поточного модельного часу.

Транзакт перестає бути елементом черги тiльки пiсля того, як вiн переходить в блок DEPART вiдповiдної черги. Коли це відбувається, iнтерпретатор виконує такi операцiї:

1) “лiчильник поточного вмiсту” відповідної черги зменшується на В;

2) використовуючи “прив’язку” до значення часу, визначає: чи є час, проведений транзактом в черзі, нульовим; якщо так, то такий транзакт за визначенням є транзактом з “нульовим перебуванням” в черзi i вiдповiдно змiнюється “лiчильник нульових входжень”;

3) лiквiдується “прив’язка” транзакту до черги.

Якщо в моделі використовуються обекти типу “черга”, то у файлi стандартної статистики буде представлена iнформацiя про цi об’єкти. На кiнець моделювання iнтерпретатор автоматично видає такi статистичн данi: значення лiчильника входiв, максимальне значення вмiсту черги, середнє значення вмiсту черги, значення лiчильника поточного вмiсту, значення середнього часу знаходження в черзi.

Приклад 1.4

Нехай треба зiбрати статистику про чекання в черзі на обслуговування пристроєм РRIВ. Тодi в сегмент моделі будуть введені блоки QUEUE і DEPART:

                                   

                                    QUEUE          QPRIB

                                    SEIZE                 PRIB

                                    DEPART        QPRIB

                                    ADVANCE     16,4

                                    RELEASE      PRIB

У цьому прикладi всi транзакти, що попадають в пристрiй, повиннi пройти через пару QUEUE - DEPART навiть тодi, коли пристрiй вiльний i його можна відразу ж зайняти.

     2 Порядок виконання роботи

1. Опрацювати теоретичний матеріал.

2. Написати сегмент програми, який моделює надходження 14 транзактiв за рівномiрним законом розподiлу (23  9 хв).

3. Написати сегмент програми, який моделює надходження 100 транзактiв за рівномiрним законом розподiлу (10  0.5 хв).

4. Написати сегмент програми, в якому моделювання припиняється пiсля того, як через модель пройдуть 300 транзактiв. Транзакти повиннi надходити у модель кожнi 25  4 од. модельного часу.

5. Задати час моделювання роботи системи - 8 год. Одиниця модельного часу - 1 с.

6. Навести фрагмент програми, що iлюструє обробку деталi на верстатi. Назна пристрою – VERSTAT, час обробки — 10 од. модельного часу.

7. Навести фрагмент програми, який iлюструє процес шлiфування виробу. Шліфування займає 4 1 хв, в кожен момент часу може оброблятися тiльки один вирiб. Одиниця модельного часу— 1 с.

8. 3більшити на три одиниці довжину черги з номером 3.

9. Зменшити довжину черги з номером 1 на одну одиницю.

 

 

ЛАБОРАТОРНА РОБОТА №2

 










Последнее изменение этой страницы: 2018-05-29; просмотров: 246.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...