Материал: 4604

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Лабораторная работа №9

Модель управления маршрутом транзакта

Имеется автобусный парк, который обслуживает два маршрута. На каждом маршруте одновременно должно находиться определенное число автобусов. Вначале диспетчер отправляет на оба маршрута необходимое число автобусов. После рейса автобус возвращается в парк. Когда на каком-либо маршруте автобусов становится меньше, чем нужно, диспетчер отправляет туда автобусы, оставшиеся в парке. Чтобы возвращающиеся из рейса автобусы имели передышку, в парке есть некоторое резервное количество автобусов.

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

Параметры

Среднее значение

 

 

Общее число автобусов в парке

N

 

 

Необходимое число автобусов на маршруте 1

N1

 

 

Необходимое число автобусов на маршруте 2

N2

 

 

Среднее время рейса по маршруту 1

T1

 

 

Среднее время рейса по маршруту 2

T2

 

 

Время обслуживания автобуса диспетчером

T3

 

 

Количество диспетчеров в парке

Q

 

 

21

Текст модели

#include <pilgrim.h>

float T1; /* Время рейса по маршруту 1 */ float T2; /* Время рейса по маршруту 2 */

float T3; /* Время обслуживания автобуса диспетчером */ int N1; /* Требуемое число автобусов на маршруте 1 */

int N2; /* Требуемое число автобусов нв маршруте 2 */ int N; /* Общее число автобусов в парке */

int Q; /* Число диспетчеров */

int Forw; /*Стандартное начало модели и схема зарядки */

top(1):

queue("Парк", prty, 2);

 

 

place;

 

 

 

top(2):

if addr[3]->tn < N1

 

 

 

 

Forw=3;

/* на маршрут 1 */

else

if addr[4]->tn < N2

 

 

 

 

Forw=4;

/* на маршрут 2 */

 

 

 

else

/* оставить в парке */

 

 

 

{

t->pr=1; /* в начало очереди */

 

 

 

Forw=1; /* оставить в парке */

 

 

 

}

 

 

 

 

serv("Диспетчер", Q, none, norm, T3, T3/3,

 

 

 

zero,Forw);

 

 

 

place;

 

 

top(3):

t->pr=0; /* сброс приоритета */

 

 

serv ("Маршрут 1", N1, none, norm, T1, T1/3,

 

 

 

zero, 1);

 

 

place;

 

top(4):

t->pr=0;

 

 

 

 

serv("Маршрут 2", N2, none, norm, T2, T2/3,

 

 

 

zero, 1);

 

 

 

 

22

 

place;

/* Стандартный конец модели */

top(1): queue("Парк", prty, 2);

 

 

 

place;

 

 

top(2):

if addr[3]->tn < N1

 

 

Forw=3;

/* на маршрут 1 */

 

else if addr[4]->tn < N2

 

Forw=4;

/* на маршрут 2 */

 

else

 

/* оставить в парке */

 

{

t->pr=1; /* в начало очереди */

 

Forw=1; /* оставить в парке */

 

}

 

 

serv("Диспетчер", Q, none, norm, T3, T3/3, zero,Forw);

place;

23

Лабораторная работа №10

Моделирование замкнутых моделей корпоративных информационных систем

(КИС)

Замкнутая модель КИС – это модель системы, работающей в режиме «запрос-ответ». Транзакты, единожды сгенерированные,

циркулируют в пределах графа модели.

Транзакт – это запрос пользователя. Выйдя из генератора, транзакт проходит по графу модели, по мере работы КИС превращается в ответ и возвращается к пользователю. После этого вновь начинает играть роль запроса того же пользователя.

Модель может быть построена следующим образом:

1.Пользователи представляются одноили многоканальными узлами типа serv;

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

3.Приписываемая транзакту роль запроса или ответа обозначается в одном из его параметров;

4.Для зарядки транзактами серверов пользователей, принадлежащих

к одному классу, используется единственный генератор,

порождающий всего один транзакт. Далее транзакты размножаются

с помощью узлов типа creat.

5.Варианты зарядки моделей транзактами:

24

• 1. Зарядка одного многоканального сервера

2. Зарядка нескольких одноканальных серверов

3. Зарядка нескольких многоканальных серверов

25

Источник: https://studfile.net/preview/16414639/