-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSystem.gps
129 lines (116 loc) · 4.08 KB
/
System.gps
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
INCLUDE "D:\Virtuals_SHARE\Result\gpss\SMTP_session_len_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\SMTP_size_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\SMTP_time_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\IMAP_session_len_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\IMAP_size_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\IMAP_time_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\POP_session_len_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\POP_size_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\gpss\POP_time_gpss"
INCLUDE "D:\Virtuals_SHARE\Result\session_variables"
;-------------------------------------------------Инициализация
INITIAL X$ADV_SMTP_DISTR,10
INITIAL X$ADV_IMAP_DISTR,10
INITIAL X$ADV_POP_DISTR,10
INITIAL X$MAX_LEN_SMTP_Q1,174144148
INITIAL X$MAX_LEN_SMTP_Q2,174144148
INITIAL X$MAX_LEN_IMAP_Q1,2892589
INITIAL X$MAX_LEN_POP_Q1,62515429
INITIAL X$ADV_SMTP_H1,0.8
INITIAL X$ADV_SMTP_H2,0.8
INITIAL X$ADV_IMAP_H1,0.001
INITIAL X$ADV_POP_H1,0.03
;-------------------------------------------------Матрицы (если несколько очередей)
SMTP_ID_QUEUE MATRIX ,1,2
MSAVEVALUE SMTP_ID_QUEUE,1,1,0
MSAVEVALUE SMTP_ID_QUEUE,1,2,0
;-------------------------------------------------
SMTP GENERATE FN$F_time_SMTP,,,X$MAX_PACKETS_SMTP
SMTP_P ASSIGN P_SIZE,FN$F_size_SMTP
SMTP_ID ASSIGN ID_S,FN$F_len_SMTP
TEST NE MX$SMTP_S_LEN(1,P$ID_S),0,SMTP_ID
SMTP_Q1 EQU 1
SMTP_Q2 EQU 2
ASSIGN MIN_Q_SMTP,1
TRANSFER ,ST_SMTP
IMAP GENERATE FN$F_time_IMAP,,,X$MAX_PACKETS_IMAP
IMAP_P ASSIGN P_SIZE,FN$F_size_IMAP
IMAP_ID ASSIGN ID_S,FN$F_len_IMAP
TEST NE MX$IMAP_S_LEN(1,P$ID_S),0,IMAP_ID
TRANSFER ,ST_IMAP
POP GENERATE FN$F_time_POP,,,X$MAX_PACKETS_POP
POP_P ASSIGN P_SIZE,FN$F_size_POP
POP_ID ASSIGN ID_S,FN$F_len_POP
TEST NE MX$POP_S_LEN(1,P$ID_S),0,POP_ID
TRANSFER ,ST_POP
ST_SMTP MSAVEVALUE SMTP_S_LEN,1,P$ID_S,(MX$SMTP_S_LEN(1,P$ID_S)-1)
SEIZE SMTP_DISTR
ADVANCE X$ADV_SMTP_DISTR,0
RELEASE SMTP_DISTR
TEST NE MX$SMTP_ID_QUEUE(1,1),P$ID_S,M_SMTP_Q1
TEST NE MX$SMTP_ID_QUEUE(1,2),P$ID_S,M_SMTP_Q2
TEST NE Q$SMTP_Q1,0,M_SMTP_Q1
TEST NE Q$SMTP_Q2,0,M_SMTP_Q2
SELECT MIN MIN_Q_SMTP,1,2,,Q,OVERF
TEST NE P$MIN_Q_SMTP,1,M_SMTP_Q1
TEST NE P$MIN_Q_SMTP,2,M_SMTP_Q2
OVERF TEST GE (Q$SMTP_Q1+P$P_SIZE),X$MAX_LEN_SMTP_Q1,M_SMTP_Q1
TEST GE (Q$SMTP_Q2+P$P_SIZE),X$MAX_LEN_SMTP_Q2,M_SMTP_Q2
TRANSFER ,RET_SMTP
M_SMTP_Q1 TEST LE (Q$SMTP_Q1+P$P_SIZE),X$MAX_LEN_SMTP_Q1,OVERF
QUEUE SMTP_Q1,P$P_SIZE
MSAVEVALUE SMTP_ID_QUEUE,1,1,P$ID_S
SEIZE SMTP_H1
DEPART SMTP_Q1,P$P_SIZE
ASSIGN ADV_SMTP_H1_LOCAL,0
ASSIGN SMTP_FREE,1
SMTP_1_0 GATE NU SMTP_H2,SMTP_1_1
ASSIGN SMTP_FREE+,1
SMTP_1_1 ASSIGN ADV_SMTP_H1_LOCAL,(P$P_SIZE/(X$ADV_SMTP_H1#P$SMTP_FREE))
ADVANCE P$ADV_SMTP_H1_LOCAL,0
RELEASE SMTP_H1
TERMINATE 0
M_SMTP_Q2 TEST LE (Q$SMTP_Q2+P$P_SIZE),X$MAX_LEN_SMTP_Q2,OVERF
QUEUE SMTP_Q2,P$P_SIZE
MSAVEVALUE SMTP_ID_QUEUE,1,2,P$ID_S
SEIZE SMTP_H2
DEPART SMTP_Q2,P$P_SIZE
ASSIGN ADV_SMTP_H2_LOCAL,0
ASSIGN SMTP_FREE,1
SMTP_2_0 GATE NU SMTP_H1,SMTP_2_1
ASSIGN SMTP_FREE+,1
SMTP_2_1 ASSIGN ADV_SMTP_H2_LOCAL,(P$P_SIZE/(X$ADV_SMTP_H2#P$SMTP_FREE))
ADVANCE P$ADV_SMTP_H2_LOCAL,0
RELEASE SMTP_H2
TERMINATE 0
ST_IMAP MSAVEVALUE IMAP_S_LEN,1,P$ID_S,(MX$IMAP_S_LEN(1,P$ID_S)-1)
SEIZE IMAP_DISTR
ADVANCE X$ADV_IMAP_DISTR,0
RELEASE IMAP_DISTR
TEST LE (Q$IMAP_Q1+P$P_SIZE),X$MAX_LEN_IMAP_Q1,RET_IMAP
QUEUE IMAP_Q1,P$P_SIZE
SEIZE IMAP_H1
DEPART IMAP_Q1,P$P_SIZE
ADV_IMAP_H1_LOCAL VARIABLE P$P_SIZE/(X$ADV_IMAP_H1)
ADVANCE V$ADV_IMAP_H1_LOCAL,0
RELEASE IMAP_H1
TERMINATE 0
ST_POP MSAVEVALUE POP_S_LEN,1,P$ID_S,(MX$POP_S_LEN(1,P$ID_S)-1)
SEIZE POP_DISTR
ADVANCE X$ADV_POP_DISTR,0
RELEASE POP_DISTR
TEST LE (Q$POP_Q1+P$P_SIZE),X$MAX_LEN_POP_Q1,RET_POP
QUEUE POP_Q1,P$P_SIZE
SEIZE POP_H1
DEPART POP_Q1,P$P_SIZE
ADV_POP_H1_LOCAL VARIABLE P$P_SIZE/(X$ADV_POP_H1)
ADVANCE V$ADV_POP_H1_LOCAL,0
RELEASE POP_H1
TERMINATE 0
;------------------------------------------------------------------------
RET_SMTP TERMINATE 0
RET_IMAP TERMINATE 0
RET_POP TERMINATE 0
GENERATE 2160000000
TERMINATE 1
START 1