Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

TRANSFER ALL, CHAN1, CHAN4, 4



 

У полі <А> блоку TRANSFERзадається режим ALL, у полі <В> задається мітка першого аналізованого пристрою, а в полі <C> – мітка останнього пристрою. У полі <D> задається число, кратне кількості блоків між кожним з аналізованих пристроїв. У програмі кожен пристрій, починаючи з першого, відокремлений один від одного чотирма блоками: SEIZE, ADVANCE, RELEASE, TRANSFER, EXIT. Блоки TRANSFER, EXIT працюють в режимі безумовного переходу. У програмі вирішення прикладу 4.2 час обробки кожного з пристроїв підібрано так, щоб були задіяні всі чотири пристрої.

Якщо один з пристроїв звільняється швидше за інших, то цей пристрій виявиться найбільш завантаженим. Різне завантаження каналів без зміни часу обробки можна задати за допомогою блоків копіювання транзактів SPLIT. Такий варіант роботи системи (Q-схеми) представлений у програмі на рис. 4.3.

Рисунок 4.3 – Програма в системі моделювання GPSSW

 

Кожен з чотирьох пристроїв обслуговує заявки (транзакти). У блоці під номером 20 TRANSFER фігурує число 101.

Це пояснюється тим, що якийсь транзакт не зміг потрапити ні в один з блоків, тому що вони були зайняті. Тому він знову з цього ж блоку TRANSFERнамагався перейти в один з вільних блоків. Перерозподіл транзактів по пристроях у програмі здійснюється блоком SPLIT, який додатково завантажує пристрій. У кожен з пристроїв увійшло відповідно 13, 23, 30, 37 транзактів. В сумі вони дають число 103. За умовою, систему повинні покинути 100 транзактів. Залишилися три транзакти в трьох перших приладах (у полі CURRENT_COUNT).

 

Лабораторне завдання

За даними в таблиці 4.1 змоделювати необхідні моделі, використовуючи блок TRANSFER. Для кожної моделі використовувати відповідний режим: режим статичної передачі, режим логічної передачі (BOTH), режим ALL. Моделі необхідно виконати таким чином, щоб виконувалось задане співвідношення транзактів.

А – кількість транзактів, що обслуговуються пристроєм 1, В – кількість транзактів, що обслуговуються пристроєм 2, С – кількість транзактів, що обслуговуються пристроєм 3, D кількість транзактів, що обслуговуються пристроєм 4. Модель допускає похибку у ±5.

 

Таблиця 4.1 – Вихідні дані для виконання лабораторного завдання

№ варінту Режими блоку TRANSFER
Статичний режим Режим BOTH Режим ALL
  A B A B A B C D

 

Зміст письмового звіту

1. Змістовний опис режимів блокуTRANSFER.

2. Текст програми моделювання.

 

4.4 Контрольні питання

1. Як працює блок TRANSFERв режимі статичної передачі?

2. Як працює блок TRANSFERв режимі логічної передачі?

3. Чим відрізняється режим BOTH від режиму ALL?

4. Для чого використовуються різні режими блоку TRANSFER?

5. Для чого використовується оператор CLEAR?


Лабораторна робота № 5

Блоки ASSIGN, LOOP, PREEMPT, RETURN. Оператор EQU

 

Мета роботи –навчитися на практичній моделі користуватися блоками циклу та блоками преривання потоків.

 

Теоретичні відомості

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

Формат запису блоку ASSIGN:

 

<№> ASSIGN <A>, <B>, <C>

 

У полі <A> вказується номер або ім'я параметра, в який заноситься значення операнда <В>. Якщо в полі <A> після імені (номеру) параметра стоїть знак «+» або «-», то значення операнда <B> додається або вираховується значення параметра. У полі <C> може бути вказано ім'я або номер функції-модифікатора, що діє аналогічно функції-модифікаторів у полі <В> блоку GENERATE.

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

 

ASSIGN 5,0

 

записує в параметр з номером 5 значення 0, а блок

 

ASSIGN COUNT +, 1

 

додає 1 до поточного значення параметра з ім'ям COUNT.

 

Блок LOOP використовується для організації циклів.

 

<№> LOOP <A>, <B>

 

У полі блоку<А>задається параметр, який використовується в якості лічильника циклу. У полі <В> вказується по мітці блок, на який переходить транзакт. Якщо параметр, на який зроблено посилання в полі <А>, не дорівнює нулю проходження транзактом одного циклу зменшує значення поля <А> на одиницю. Коли значення параметра в полі <А> стає рівним нулю, транзакт переходить до наступного за номером блоку. Якщо транзакт входить до блоку LOOP зі значенням параметра рівним n, то цей транзакт увійде до блоку LOOP n раз і повернеться до початку цього циклу (n - 1) раз. Як правило, блок LOOP застосовується в парі з блоком ASSIGN.

Блоки PREEMPT і RETURN відносяться до апаратної категорії і до групи пристроїв. Ці блоки працюють в парі. Блок PREEMPT – це блок захоплення пристрою. Він переводить пристрій в перерваний стан, а блок RETURN – блок повернення захопленого пристрою.

Для блоку PREEMPT можуть бути задіяні п'ять полів.

 

<№> PREEMPT <A>, [<B>], [<C>], [<D>], [<Е>]

 

Поле операнда <А> є обов'язковим. У полі <А> блоку PREEMPT задається ім'я або номер пристрою, що підлягає захопленню. У полі <B> кодується умова захоплення. Якщо це поле порожнє, то захоплення виникає. Якщо транзакт, що обслуговується сам не є загарбником. Якщо ж у полі <B> записаний операнд PR, то захоплення виникає, якщо пріоритет транзакта-загарбника вище, ніж пріоритет транзакта, що обслуговується.

Поля <C>, <D> і <E> визначають поведінку транзактів, обслуговування яких було перервано. Поле <C> вказує ім'я блоку, в який буде направлений перерваний транзакт. У полі <D> може бути вказаний номер або ім'я параметра перерваного транзакта, в який записується час, що залишився цьому транзакту до завершення обслуговування на пристрої. При відсутності операнда в полі <E> перерваний транзакт зберігає право на автоматичне відновлення на пристрої після закінчення захоплення. Якщо ж у полі <E> вказано операнд RE, то транзакт втрачає таке право.

Зняття переривання здійснюється блоком RETURN.

Формат запису блоку RETURN:

 

<№> RETURN <А>

 

У полі <А> блоку RETURN задається ім'я пристрою, з якого знімається переривання. Переривання може бути зняте тільки тим транзактом, яким воно було створене. Наведений формат блоку повернення RETURNє єдиним.

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

Приклад 5.1. Кожна заявка проходить п'ять циклів обробки в обслуговуючому каналі протягом 3 ± 1 хв за рівномірним законом розподілу. Вхідний потік заявок підпорядковується рівномірному закону з часом 7 ± 2 хв. Змоделювати процесс для обробки Q-схемою 100 заявок.

Рішення. Програма вирішення прикладу 5.1 наведена на рис. 5.1.

 

Рисунок 5.1 – Программа вирішення прикладу 5.1 в системі моделювання GPSSW

 

У даному прикладі організація п'ятикратного циклу обробки здійснюється блоками ASSIGN і LOOP. Звернення до заданих числових значень (5 і 7) здійснюється через мітки MET1, МЕТ2 за допомогою оператора EQU. Формат запису блоку ASSIGN має вигляд:

 

ASSIGN 13, МЕТ1

 

У полі <А> заданий параметр транзакта під номером 13 (довільно). Цьому параметру зіставляється число 5, яке перевизначається через мітку MET1 поля <В>. Значення поля <В> присвоюється параметру, номер якого задається в полі <А>. Задане число 5 здійснюється оператором EQU. Формат запису оператора EQU:

 

MET1 EQU SQR (25)

МЕТ2 EQU (SQR (9) +2 ^ 2)

 

Мітка МЕТ1 – це ім'я в полі мітки оператора. У полі <А> обчислюється вираз Оператор EQU з міткою МЕТ2 обчислює вираз . Формат запису блоку LOOP:

 

LOOP 13, CYCL5

 

У полі <А> заданий номер параметра (такий же, як і в полі <А> парного блоку ASSIGN), що визначає число циклів. У полі <В> заданий по мітці блок, на який переходить транзакт. Коли значення параметра в полі <А> стає рівним нулю, транзакт переходить до наступного за номером блоку (в даному випадку до блоку RELEASEпід номером 60). Початок циклу починається з блоку ADVANCE з міткою CYCL5 під номером 40, закінчення циклу – з блоку LOOPпід номером 50.

Стандартний звіт моделювання Q-схеми по програмі вирішення прикладу 5.1 представлений на рис. 5.2.

 

Рисунок 5.2 – Стандартний звіт результатів моделювання для прикладу 5.1

 

Задання повторного п'ятикратного обслуговування здійснює блок LOOP, який відправляє транзакти на блок ADVANCE. Видно, що через блоки LOOP і ADVANCE проходить в 5 разів більше транзактів, ніж через інші блоки. Середній час обслуговування в пристрої також в 5 разів більше (в позиції AVE_Т1МЕ), ніж час обслуговування, яке задається в полі <А> блоку часової затримки ADVANCE.

 

Приклад 5.2. На обробку по рівномірному закону надходить два потоки заготовок деталей 1-й потік з часом 10 ± 1 хв, а 2-й з часом 25 ± 2 хв. При цьому 2-й потік перериває виготовлення деталей 1-го потоку. Час обробки деталей 1-го потоку 7 ± 3 хв, а 2-го 15 ± 1 хв. Змоделювати процес обробки 100 деталей, що утворюють два потоки.

Рішення. Розглянемо особливості використання при моделюванні такої системи S блоків PREEMPT і RETURN. Програма вирішення прикладу 5.2 наведена на рис. 5.3.

 

 

Рисунок 5.3 – Програма вирішення прикладу 5.2 в системі моделювання GPSSW

 

Два блоки GENERATE (під номерами 10 і 60) формують два незалежних потоки транзактів. Блок PREEMPT дозволяє одержувати в користування пристрій, вказаний у полі <А> цього блоку, тобто пристрій під ім'ям FACIL1. Це відповідає тому стану системи, коли відбувається переривання обробки деталей 1-го потоку в пристрої і починається обробка деталей 2-го потоку. Загальна тривалість обробки деталей 2-го потоку задається блоком ADVANCE під номером 80. Стандартна статистика системи GPSSW визначається тільки для одного пристрою FACIL1.

У програмі вирішення прикладу 5.2 формат запису блоку PREEMPT має вигляд:

 

PREEMPT FACIL1

 

У полі <А> блоку PREEMPT (під номером 70) задається ім'я пристрою (по мітці FACIL1), на якому відбувається переривання 1-го потоку транзактів від блоку GENERATE під номером 10. Загальна тривалість переривання задається блоком ADVANCE під номером 80. У той же час пристрій FACIL1 під час переривання 1-го потоку деталей починає обслуговувати деталі 2-го потоку, який формується блоком GENERATE під номером 60. Зняття переривання здійснюється блоком RETURN:

 

RETURN FACIL1

 

У полі <А> блоку RETURN задається ім'я пристрою (по мітці FACIL1), з якого знімається переривання.

Розглянемо файл стандартного звіту, наведений на рис. 5.4.

 

 

Рисунок 5.4 – Стандартний звіт результатів моделювання для прикладу 5.2

 

У програмі вирішення прикладу 5.2 є два блоки TERMINATE, які здійснюють вихід транзактів із системи: один блок для виведення деталей 1-го потоку, другий блок – для виведення деталей 2-го потоку. Статистика пристрою обслуговування FACIL1показує, що через нього проходили транзакти як 1-го, так і 2-го потоків Кількість транзактів, які не увійшли до пристрою обслуговування, дорівнює 105 (поля DELAY і CURRENT_COUNT). З 1-го потоку кількість обслужених транзактів (деталей) склало 67, а з 2-го потоку – 33. У сумі виходить 100 деталей, що й було потрібно за умовою прикладу.

 

Лабораторне завдання

1. Змоделювати систему, використовуючи блоки циклу, в якій транзакти будуть проходити А зовнішніх циклів, та В внутрішніх циклів. В кожному циклі обслуговуються по одному пристрою, час обробки одного транзакту першим пристроєм С, час обробки одного транзакту другим пристроєм D. Система повинна сгенерувати 50 транзактів.

2. Змоделювати систему в якій три пристрої не можуть працювати одночасно. Перший пристрій на обробку одного транзакту витрачає D сек часу, другий F сек часу, третій G сек часу. Робота третього пристрою прериває роботи першого та другого пристрою. Система повинна обробити 100 тразактів. Дані для виконання завдання вказані у таблиці 5.1

 

Таблиця 5.1 – Вихідні дані для виконання лабораторного завдання

№ варінту Числові значення
A B C D F G

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.