Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU_lb_KMPS.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.64 Mб
Скачать

Лабораторна робота 3 Моделювання паралельних обчислювальних структур з пріоритетною дисципліною обслуговування заявок

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

Постановка завдання. Є обчислювальна система з процесорами CPU1, CPU2, CPU3 які функціонують паралельно і незалежно один від одного (рис. 3.1).

Рисунок 3.1 – Структура обчислювальної системи паралельного типу

На вхід системи надходять два потоки повідомлень IN1 і IN2. Кожне повідомлення містить ознаку, що вказує, який із трьох процесорів - CPU1, CPU2 або CPU3 –повинен його обробляти.

Ознаки є випадковими величинами, що характеризуються імовірностями відповідно P1, P2, РЗ.

Розподільний пристрій BUS аналізує ознаки і розподіляє повідомлення по процесорах.

Повідомлення потоку IN2 мають більш високий пріоритет і можуть переривати обробку повідомлень потоку IN1 для власного обслуговування. До-обслуговування перерваного повідомлення може відбуватися або в тому ж процесорі, в якому почалася його обробка, після закінчення переривання, або в спеціальному процесорі CPU4 відразу ж при виникненні переривання. На вході кожного процесора є буфер ємністю S. Якщо повідомлення надходить при заповненому буфері, то воно втрачається.

Необхідно побудувати GPSS модель даної системи і визначити такі характеристики, як час перебування заявок в системі, інтенсивності вихідних потоків, середній час до обслуговування перерваних заявок, в також відсоток втрачених заявок через обмежений обсяг буферів.

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

Рівень пріоритету транзактов може бути заданий за допомогою операнда E блоку GENERATE або шляхом використання спеціального блоку PRIORITY A, привласнюючого пріоритету транзакта значення операнда A. Для реалізації переривання обслуговування транзактов в моделі необхідно замість блоків SEIZE і RELEASE використовувати відповідно блоки РРЕЕМРТ А,B,С,D,Е - захопити прилад і RETURN A - вивільнити прилад.

Тут:

A - ім'я захоплюваного приладу (приладу що вивільняється);

B - якщо цей операнд не використовується, то захоплення виникає в тому випадку, коли транзакт що обслуговується сам не є загарбником і, якщо в полі даного операнда записана абревіатура PR, то захоплення виникає в тому випадку, коли можливий загарбник має пріоритет вище, ніж пріоритет транзакта що обслуговується;

C - ім'я блоку, в який буде посланий перерваний транзакт;

D - номер параметра перерваного транзакта, в який поміщається значення часу, що залишилося транзакту до закінчення обслуговування на приладі;

E - якщо операнд не використовується, то транзакт зберігає право автоматичного поновлення на приладі; якщо в полі даного операнда записана абревіатура RE, то транзакт втрачає таке право.

Операнди B, С, D, Е - необов'язкові. Операнди D і E використовуються тільки за умови використання операнда С.

Кожен з паралельно працюючих процесорів (CPU1, CPU2, CPUЗ) може бути описаний окремою трійкою блоків: SEIZE-ADVANCE-RELEASE, або PREEMPT-ADVANCE-RETURN. Для скорочення тексту моделі можна скористатися способом непрямого створення номера приладу, наприклад:

SEIZE *1 ; Зайняти прилад

ADVANCE ; Затримати транзакт

RELEASE *1 ; Звільнити прилад

...

...

PREEMPT *1 ; Захопити прилад

ADVANCE ; Затримати транзакт

RETURN *1 ; Повернути прилад

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

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

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

1. Блок TRANSFER в режимі безумовної передачі:

TRANSFER ,B

де B - ім'я блоку, в який безумовним чином передається транзакт. Операнд A не використовується. На місці операнда B може стояти ВЧА-функції, наприклад:

TRANSFER ,FN1

При цьому функція може бути визначена так:

1 FUNCTION P1,D3

1,LBL1/2,LBL6/3,LBL10

У даному прикладі при P1=1 здійснюється перехід в блок з ім'ям LBL1, при Р1=2 - з ім'ям LBL6, при P1=3 - з ім'ям LBL10.

2. Блок TRANSFER в режимі BOTH:

TRANSFER A,В,С

де A - слово BOTH, B і C - імена блоків.

Якщо операнд B відсутній, то передбачається наступний пo порядку блок. Транзакт переходить у той блок, який здатний прийняти його першим. Спроба переходу починається з блоку B. Блок TRANSFER в даному режимі зазвичай безпосередньо передує блокам SEIZE, PREEMPT, ENTER, а також іншим блокам, які працюють у режимі відмови.

3. Блок TEST в режимі умовної передачі:

TEST X А,В,С

де A, B - імена відповідно 1-го і 2-го ВЧА;

X - оператор відносини:

Оператор

X

Умова,

що перевіряється

G

A>B

GE

A≥B

L

A<B

LE

A≤B

Е

А=В

NE

AB

C - ім'я блоку, до якого переходить транзакт при невиконанні умови що перевіряється.

Для побудови моделі можна скористатися таким методом:

Транзакти надходять в модель через два блоки GENERATE, що визначають рівень їх пріоритету. Далі два потоки об'єднуються в один.

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

Буфер імітується БКП з непрямим завданням номера. Перед входом в БКП повинна проводитися перевірка його зайнятості. Час обслуговування транзактів приладами може задаватися трьома блоками ADVANCE, перехід до яких здійснюється за функцією. Для виділення транзактів, що направляються до блоку TABULATE, проводиться перевірка значення їх 1-го параметра.

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

1. Ознайомитися з описом роботи, вибрати варіант завдання відповідно до табл. 3.1, де Р1, Р2, Р3 – ймовірність обслуговування транзактов відповідним приладом; S – ємність буфера на входах процесорів;

Дообслуговування:

П – дообслуговування після переривання в тому ж приладі, в якому почалося обслуговування;

Д – дообслуговування в процесорі CPU4.

Таблиця 3.1

Варіант

P1

Р2

P3

S

До-обслуго-вув.

Вих.

хар-ки

Інтервали між повідомл. (IN1, IN2)

Затримки

CPU1

CPU2

CPU3

CPU4

1

0,5

0,3

0,2

5

П

К, В, Ж

Exp;

М=110

Uniform;

2..32

FN4

Uniform;

43.. 58

FN5

2

0,6

0,2

0,2

4

Д

К, А, Б

Norm;

М=150, D=20

FN5

Uniform;

17..23

Uniform;

31..40

FN4

3

0,4

0,2

0,4

3

П

К, Г, І

Uniform;

100..200

Exp;

М=54

FN5

FN4

Uniform;

38..48

4

0,3

0,2

0,5

2

Д

К, А, Г

Uniform;

100..121

FN4

Exp;

M=48

FN5

Uniform;

55..65

5

0,2

0,5

0,3

5

П

К, Д, 3

FN6

Norm;

М=20; D=3

Uniform;

13..32

Uniform;

13..33

FN5

6

0,7

0,2

0,1

4

Д

К, А, Д

FN7

Uniform;

26..38

FN4

Norm;

M=35, D=4

Uniform;

26..39

7

0,5

0,2

0,3

3

П

Л, Е, Ж

Exp;

M=150

FN5

Uniform;

60..81

FN4

Uniform;

52..64

8

0,6

0,1

0,3

2

Д

Л, А, Б

Norm;

М=120, D=15

Uniform;

23.. 37

FN4

FN5

Uniform;

28..41

9

0,4

0,4

0,2

5

П

Л, В, 3

Uniform;

105..135

FN4

Exp;

M=62

Uniform;

64..75

FN5

10

0,3

0,5

0,2

4

Д

Л, А, Е

Uniform;

105.. 136

Uniform;

44. .66

FN5

FN4

Exp;

M=45

11

0,2

0,3

0,5

3

П

Л, Г, І

FN6

FN5

Norm;

М=25, D=3

Uniform;

15..27

Uniform;

15..28

12

0,7

0,1

0,2

2

Д

Л, А, Б

FN7

Uniform;

15..24

FN4

Uniform;

17..27

Norm;

M=30, D=5

У стовпці "Вихідні характеристики" літерами А..Л позначені характеристики, які необхідно визначити:

А – час дообслуговування перерваних транзактів;

Б – час перебування в системі заявок, обслужених процесором CPU4;

В – час перебування в системі всіх заявок;

Г – час перебування в системі заявок, обслужених CPU1 і CPU2;

Д – час перебування в системі заявок, обслужених CPU1 і CPU3;

Е –час перебування в системі заявок, обслужених CPU2 і CPU3;

Ж – інтервали між повідомленнями на виході CPU1;

З – інтервали між повідомленнями на виході CPU2;

І – інтервали між повідомленнями на виході CPU3;

К –відсоток загублених заявок по кожному із процесорів;

Л – загальний відсоток втрачених заявок.

2. Скласти програму моделі на мові GPSS;

3. Виконати прогін моделі на ЕОМ;

4. Отримати та проаналізувати лістинг. Для характеристик А..І визначити середнє значення, середньо-квадратичне відхилення та їх розподіл. Характеристики К і Л контролювати за лічильниками числа входів транзактов в блоки;

5. Визначити коефіцієнти завантаження процесорів. Зробити висновок щодо режиму роботи системи, що моделюється;

6. Оформити отримані результати до звіту.

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

1. Чим відрізняється захоплення приладу від заняття приладу?

2. Як моделюються паралельно працюючі прилади?

3. За допомогою яких блоків можна організувати розгалуження в моделі?

4. Як моделюється буфер обмеженого обсягу?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]