Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделювання Систем_метод до л_р 2008.doc
Скачиваний:
12
Добавлен:
20.08.2019
Размер:
784.38 Кб
Скачать

3 Моделювання систем масового обслуговування з синхронізацією руху транзактів

3.1 Мета роботи

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

3.2 Методичні вказівки по організації самостійної роботи студентів

При підготовці до лабораторної роботи необхідно вивчити побудову математичних і програмних стохастичних мережевих моделей ОС, а також пріоритетних дисциплін обслуговування [3 – 4].

3.2.1 Блоки gpss для копіювання транзактів

Блок SPLIT, як і блок GENERATE, призначений для створення транзактів.

SPLIT A,B,C

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

На відміну від блоку GENERATE, який створює нові незалежні транзакти, блок SPLIT лише генерує за­дане число копій транзакта, що потрапив до цього блоку. Одержані копії ідентичні первинному транзакту. Піс­ля виходу з блоку SPLIT первинний транзакт направляється до наступного блоку в моделі, а всі його копії пере­силаються за адресою, зазначеною в полі В. Таким чином, якщо в полі А задане число i, то з блоку вийдуть i+1 транзактів. Первинний транзакт і його копії є рівноправними й можуть проходити знову через будь-яку кількість блоків SPLIT.

Всі транзакти, отримані копіюванням з якогось транзакту, а також копії цих копій належать до одного ансамблю. До цього ансамблю транзактів можна застосовувати блоки GPSS для операцій з ансамблями, наприклад, MATCH, ASSEMBLE, або GATHER. Кількість транзактів в ансамблі не обмежується. Кожен транзакт, створений у блоці GENERATE, є окремим ансамблем транзактів. Таким чином, кількість ансамблів у системі є довільною, й ансамбль існує доти, поки йому належить хоч один транзакт. Номер ансамблю привласнюється транзактові після його виходу з блока GENERATE. Блок

ADOPT A

змінює приналежність транзакта з одного ансамблю до іншого. В полі А вказується номер нового ансамблю. Ансамбль транзактів може бути пронумерований. Для цього в полі В блоку SPLIT має бути записаний номер параметра транзакту, у якому буде проводитися нумерація. Якщо у первинному транзакті значення цього параметра дорівнювало k, то після перенумерації первинний транзакт одержить значення k+1, його перша копія – k+2 і т.д..

Так як транзакти можуть мати параметри різних типів, то необхідно використовувати індекс для вказання типу параметра, який береться при об'єднанні транзактів в серії. Допускаються індекси: PH – параметр формату “півслово”; PF – параметр формату “слово”; PB – параметр формату “байт”. Вихідний транзакт і його копії поєднуються в серії по заданому параметру. В наведеному нижче прикладі розглядається випадок, коли параметр 10 формату “байт” має значення N при вході транзакта в блок SPLIT. При виході з блоку SPLIT значення 10-го параметру первинного транзакту стане N+1, а значення 10-го параметру транзактів-копій відповідно будуть: N+2, ... .

SPLIT 3,30,20

У даному прикладі щоразу, коли транзакт надходить до блоку SPLIT, він генерує 3 нових транзакти, всі вони мають однаковий пріоритет, значення MarkTime і всі значення такі, як і в первинного транзакту, крім параметру 20.