Временные интервалы, заданные по каждому типу транзактов. Диаграммы плотности распределения временных интервалов появления транзактов, страница 2

№ типа

Минимальное время появления

Максимальное время появления

Минимальное время обслуживания

Максимальное время обслуживания

1

10

12,5

25,1

28,3

2

13,7

28,5

12,3

15,7

3

30,3

45

10

11

4

42,2

58,6

12,6

15,4

5

47,6

55,4

15,3

17,2

6

52,3

57,7

17,3

22,7

1.3.  Задание на исследование

Построить диаграмму плотности распределения временных интервалов появления транзактов и сформировать выходной текстовый файл (с помощью PLUS процедуры), содержащий:

·  как общее количество поступивших в систему транзактов, так и по каждому типу;

·  общее время работы модели;

·  среднюю длину очереди.


2.  Формализованное описание системы

В системе присутствуют 3 главных потока транзактов (имеется вспомогательный поток, применяемый для выполнения процедуры чтения исходных данных). Генерация транзактов происходит по экспоненциальному закону распределения. В каждом потоке двигаются транзакты определенного типа. В блоке Vstal потоки объединяются, образуя очередь. Транзакты шестого типа уничтожаются, если длина очереди больше 11. Транзакты второго типа задерживаются, если длинна очереди больше 5, на    25.8 ± 20%, затем вновь проверяя длину очереди. Транзакты 4 типа не обращают внимание на длину очереди. Транзакты после очереди занимают некое устройство,  время обработки в котором определяется из задания в соответствии с вариантом. Программа заканчивает свою работу, предварительно записав результаты своей работы в файл, когда через модель пройдет не менее 10-ти транзактов 6-го типа, 5-ти транзактов 5-го типа, и 8-ти - 4-го типа.


3.  Блок-схема алгоритма модели






4.  Программа модели

INCLUDE   "InputProc.txt"

INCLUDE   "Commands.txt"

GENERATE       1,,0,1

ASSIGN         1,(ReadFile("InF.txt",4))

TERMINATE     

START          1          

fuck      generate       (EXPONENTIAL(2,v$vr11,v$vr21)),,1

assign         Tip,(MX$vremia(1,1))

tabulate       Raspred1

savevalue      1,c1

transfer       ,vstal

fuck1     generate       (EXPONENTIAL(3,v$vr12,v$vr22)),,2

assign         Tip,(MX$vremia(2,1))

tabulate       Raspred2

savevalue      2,c1

test le        Q$obsluz,11,vse

transfer       ,vstal

fuck2     generate       (EXPONENTIAL(4,v$vr13,v$vr23)),,3

assign         Tip,(MX$vremia(3,1))

tabulate       Raspred3

savevalue      3,c1

Tip_5     test le        Q$obsluz,5,go

transfer       ,vstal

go        advance        25.8,(25.8#0.2)

transfer       ,Tip_5

vstal     queue          obsluz

enter          object

depart         obsluz

test E         p$Tip,1,dalee

advance        v$vr_adv31,v$vr_adv41

leave          object

savevalue      tip4+,1

ux1       test LE        x$tip4,7,ux

transfer       ,vse

dalee     test E         p$Tip,2,dalee1

advance        v$vr_adv32,v$vr_adv42

leave          object

savevalue      tip6+,1

ux        test LE        x$tip6,9,konec

transfer       ,vse

dalee1    test E         p$Tip,3,vse

advance        v$vr_adv33,v$vr_adv43

leave          object

savevalue      tip5+,1

test LE        x$tip5,4,ux1

vse       terminate     

generate       20000000

konec     open           ("Wrt.txt"),1

write          ("+----------------------------------+"),1

write          ("|Obsee cgislo tranzaktov           |"),1

write          ("|----------------------------------|"),1

write          (PolyCatenate("|",N$fuck+N$fuck1+N$fuck2,"                                |")),1

write          ("+----------------------------------+"),1

write          ("|Tip tranzakta | Kolichestvo vxodov|"),1