- •Лабораторна робота 1 Способи завдання випадкового навантаження при моделюванні обчислювальних структур
- •Лабораторна робота 2 Моделювання конвеєрних обчислювальних структур
- •Лабораторна робота 3 Моделювання паралельних обчислювальних структур з пріоритетною дисципліною обслуговування заявок
- •Лабораторна робота 4 Вивчення способів аналізу мп-моделей
- •Варіанти завдань
- •Лабораторна робота 5 Використання ієрархічних мереж Петрі при аналізі моделей багаторівневих обчислювальних структур
- •Порядок роботи з пакетом gpss
Лабораторна робота 2 Моделювання конвеєрних обчислювальних структур
Мета роботи. Придбання навичок побудови і дослідження імітаційних моделей конвеєрних обчислювальних структур на мові GPSS.
Постановка завдання. Є обчислювальна система з конвеєрною структурою, що складається з трьох процесорів CPU1, CPU2, CPUЗ (рис. 2.1).
Рисунок 2.1 – Приклад конвеєроної структури
На вхід системи надходить потік повідомлень, які послідовно обробляються в кожному з процесорів. На вході кожного процесора є буфер (BUF1, BUF2, BUFЗ), необхідний для прийому повідомлень та запобігання їх втрати при пікових навантаженнях. Повідомлення в буфері утворюють чергу й обробляються відповідним процесором в порядку їх надходження. Оброблені повідомлення утворюють вихідний потік повідомлень.
При дослідженні конвеєрних обчислювальних структур виникають задачі визначення загального часу обробки повідомлень і виконання деяких етапів обробки, інтенсивності вихідного, потоку повідомлень та потоків у деяких визначених точках системи (B, C, D, E, F, G), коефіцієнтів завантаження процесорів і необхідних обсягів буферів.
Короткі теоретичні відомості
Кожен процесор системи можна моделювати приладом, якому відповідає пара блоків: SEIZE A - зайняти прилад з ім'ям A і RELEASE А-звільнити прилад з ім'ям A. Ім'я приладу може бути числовим або символічним. Власне процес обслуговування транзактов приладом моделюється блоком ADVANCE, операнди якого визначають час обробки. Таким чином, кожен з процесорів може бути описаним трьома блоками:
SEIZE PROC ; Зайняти прилад
ADVANCE А,В ; Затримати транзакт
RELEASE PROC ; Звільнити прилад
Відзначимо, що в приладі одночасно може обслуговуватися тільки один транзакт. В кінці моделювання автоматично (без участі програміста) роздруковується стандартна статистика за приладами, що включає коефіцієнт завантаження приладу, середній час обслуговування одного транзакта та інші характеристики.
Якщо транзакт намагається зайняти прилад (тобто увійти до блоку SEIZE), але прилад зайнятий обслуговуванням іншого транзакта, то транзакт що знову прибув встає в чергу до приладу. У черзі може одночасно знаходитися безліч транзактов. Коли прилад звільняється, то за замовчуванням його займає транзакт, що "стоїть" у черзі першим. У загальному випадку факт наявності або відсутності черги визначається співвідношенням інтенсивностей вхідного потоку транзактов і потоку обслужених транзактов, а також розподілом цих потоків.
Для присвоєння черзі імені (наприклад, для того, щоб використовувати в моделі будь-які ВЧА черги), а також для організації роздруківки стандартної статистики по чергах (середня і максимальна довжина черги, середній час перебування транзактов в черзі й т.д.) використовують блоки QUEUE A - стати в чергу, DEPART A - залишити чергу, де A - числове або символічне ім'я черги. При використанні даної пари блоків розглянутий вище опис процесора доповнюється таким чином:
QUEUE QQQ1 ; Встати в чергу
SEIZE РROС ; Зайняти прилад
DEPART QQQ1 ; Покинути чергу
ADVANCE A,B ; Затримати транзакт
RELEASE PROC ; Звільнити прилад
Відзначимо, що черга в даному випадку виконує функції вхідного буфера і може його моделювати. При цьому про необхідний обсяг буфера можна судити по максимальній довжині черги, яка спостерігалася за час моделювання.
Буфер може бути також промодельований багатоканальним пристроєм (БКП), якому відповідають блоки ENTER A - увійти в БКП з ім'ям A і LEAVE A - покинути БКП з ім'ям A.
БКП представляє собою кілька паралельно працюючих приладів (каналів), число яких (ємність БКП) визначається картою STORAGE.
BUF STORAGE 10
У такому вигляді карта задає ємність БКП з ім'ям BUF, рівну 10. Для завдання нескінченної ємності БКП карта STORAGE використовується без операндів, наприклад:
BUF STORAGE
Процесор з вхідним буфером у вигляді БКП може бути описаний наступною послідовністю блоків:
ENTER BUF; Увійти в БКП
SEIZE PROC; Зайняти прилад
LEAVE BUF; Покинути БКП
ADVANCE A, B; Затримати транзакт
RELEASE PROC; Звільнити прилад
Транзакт може увійти в БКП, якщо хоча б один канал вільний. В кінці моделювання роздруковується стандартна статистика по БКП, що включає середнє і максимальне число каналів що займалися, коефіцієнт завантаження БКП і т.д.
При дослідженні моделі конвеєрної обчислювальної системи часто виникає необхідність збирати наступну статистику.
1. Статистика про розподіл інтервалів між моментами входу транзактов в модель і моментами прибуття транзактов в деяку точку N моделі (резидентне час транзактов). Блок TABULATE повинен бути поміщений в точку N моделі, а аргументом таблиці повинен бути ВЧА M1.
2. Статистика про розподіл інтервалів між моментами проходження транзакта точок S і T моделі (транзитний час транзактов). У точку S моделі поміщається блок MARKj, а в точку T - блок TABULATE, причому аргументом таблиці повинен бути ВЧА MPi, i = j.
3. Статистика про розподіл інтервалів між прибуттям транзактів в деяку точку P моделі. У вказану точку поміщається блок TABULATE, причому в полі аргументу карти TABLE (операнд А) записується абревіатура IA (IA режим використання таблиці).
4. Статистика про розподіл часу перебування транзактов в черзі. Блок TABULATE розташувати прямо після блоку DEPART, що відноситься до даної черги. У полі операції карта визначення таблиці записується ключове слово QTABLE замість TABLE (QTABLE - режим використання таблиці). Аргументом таблиці має бути ім'я черги.
Порядок виконання роботи
1. Ознайомитися з описом роботи. Вибрати варіант завдання відповідно до табл. 2.1. У таблиці вказані точки моделі, в яких необхідно контролювати перераховані характеристики. Тип характеристики, спосіб завдання буфера, затримки на процесорах і періодичність надходження заявок вказані нижче.
Позначення контрольованих характеристик:
X1 - резидентний час транзактів;
X2 - інтервали між прибуттям транзактів;
X3 - час перебування транзактів в черзі;
X4 - транзитний час транзактів.
Позначення способів моделювання буфера
Y1-багатоканальним пристроєм;
Y2 - чергою.
Таблиця 2.1
Варіант |
Вихідна хар-ка |
Інтервали між повідомленнями |
Затримки |
||
CPU1 |
CPU2 |
CPU3 |
|||
1 |
E-F; XЗ, Y1 |
Exp; M=150 |
FN5 |
Uniform; 60..81 |
FN4 |
2 |
C-D; XЗ, Y2 |
Norm; М=120, D=15 |
Uniform; 23.. 37 |
FN4 |
FN5 |
3 |
A-C; XЗ, Y1 |
Uniform; 105..135 |
FN4 |
Exp; M=62 |
Uniform; 64..75 |
4 |
C-E; X4, Y2 |
Uniform; 105.. 136 |
Uniform; 44. .66 |
FN5 |
FN4 |
5 |
C-G; X4, Y1 |
FN6 |
FN5. |
Norm; М=25, D=3 |
Uniform; 15..27 |
6 |
D-F; X4, Y2 |
FN7 |
Uniform; 15..24 |
FN4 |
Uniform; 17. .27 |
7 |
G; X1, Y1 |
Exp; М=110 |
Uniform; 2..32 |
FN4 |
Uniform; 43.. 58 |
8 |
E; X1, Y2 |
Norm; М=150, D=20 |
FN5 |
Uniform; 17..23 |
Uniform; 31..40 |
9 |
C; X1, Y1 |
Uniform; 100..200 |
Exp; М=54 |
FN5 |
FN4 |
10 |
G; X2, Y2 |
Uniform; 100..121 |
FN4 |
Exp; M=48 |
FN5 |
11 |
E; X2, Y1 |
FN6 |
Norm; М=20; D=3 |
Uniform; 13..32 |
Uniform; 13..33 |
12 |
C; X2, Y2 |
FN7 |
Uniform; 26..38 |
FN4 |
Norm; M=35, D=4 |
2. Скласти програму моделі на мові GPSS.
3. Виконати прогін моделі на ЕОМ.
4. Отримати та проаналізувати лістинг. При необхідності скоригувати операнди карт TABLE і QTABLE і виконати повторний прогін.
5. Визначити коефіцієнти завантаження процесорів і необхідний обсяг буферів. Зробити висновок щодо режиму роботи системи, що моделюється.
6. Оформити отримані результати до звіту.
Контрольні питання
1. У чому полягає схожість і відмінність між приладом і БКП?
2. За яких умов на вході приладу або БКП утвориться черга? Чим визначається факт наявності черзі?
3. Яке призначення блоків QUEUE і DEPART?
4. Що включає в себе стандартна статистика за приладами, БКП і черг? Як організувати її роздруківку?
5. Як зібрати, статистику про резидентном і транзитному часи транзактов?
6. У чому особливість IA і QTABLE - режимів використання таблиць?
