10- Ethernet, Minuteman Software.
10- Ethernet . , , .
.
: . . Ethernet , ( ), . . , 2,5 . . 0,01 . 0,1 . , . GPSS. GPSS. . - 2 . , , . , , . Ethernet . Ethernet . , Ethernet 0 (PREEMPT) 1. , Ethernet 1 .
:
1. Node_Count - , 2.5 .
2. Min_Msg - ().
3. Max_Msg - ().
4. Fraction Short Msgs ( )
5. Intermessage_Time - .
:
Node_Count = 171 - Ethernet.
Intermessage_Time = 1.0 - , .
|
|
Min_Msg = 512 - .
Max_Msg = 12144 - .
Fraction_Short_Msgs = 600 - ( ).
Lot_Time = 0.0512 - 512 .
Jam_Time = 0.0032 - 32 .
Backoff_Limit = 10 - , 10 .
Interframe_Time = 0.0096 - 96 .
******************************************************************
Node_Count EQU 171
Intermessage_Time EQU 1.0
Min_Msg EQU 512
Max_Msg EQU 12144
Fraction_Short_Msgs EQU 600
Slot_Time EQU 0.0512
Jam_Time EQU 0.0032
Backoff_Limit EQU 10
Interframe_Time EQU 0.0096
******************************************************************
GPSS
******************************************************************
Backoff_Delay VARIABLE Slot_Time#V$Backrandom
Backrandom VARIABLE 1+(RN4@((2^V$Backmin)-1))
Backmin VARIABLE (10#(10'L'P$Retries))+(P$Retries#(10'GE'P$Retries))
Node_Select VARIABLE 1+(RN3@Node_Count)
Collide VARIABLE ABS ((X$Xmit_Node-P$Node_ID)/100000)'GE' (ACl-X$Xmit_Begin)
Msgtime VARIABLE (0.0001)#V$Msgrand
Msgrand VARIABLE Min_Msg+(RN1'G'Fraction_Short_Msgs)#(Max_Msg-Min_Ms)
******************************************************************
******************************************************************
Msg_Delays QTABLE Global_Delays,1,1,20
******************************************************************
******************************************************************
******************************************************************
GENERATE (Exponential(1,0,Intermessage_Time))
ASSIGN Node_ID,V$Node_Select
ASSIGN Message Time,V$Msgtime
ASSIGN Retries,0
******************************************************************
QUEUE Global_Delays
SEIZE P$Node_ID
Try_To_Send PRIORITY 1
SEIZE Jam
RELEASE Jam
TEST E F$Ethernet,l,Start_Xmit
******************************************************************
Ethernet . , .
, , ..
. .
, .
******************************************************************
TEST E V$Collide, 1,Start_Xmit
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Collision PREEMPT Ethernet,PR,Backoff,,RE
SEIZE Jam
ADVANCE Jam Time
RELEASE Jam
RELEASE Ethernet
PRIORITY 0
Backoff ASSIGN Retries+,1
TEST LE P$Retries,Backoff_Limit,Xmit_Error
ADVANCE V$Backoff_Delay
TRANSFER,Try_To_Send
******************************************************************
Ethernet .
******************************************************************
Start Xmit SEIZE Ethernet
SAVEVALUE Xmit_Node,P$Node_ID
|
|
SAVEVALUE Xmit_Begin,AC1
PRIORITY 0
ADVANCE P$Message_Time
ADVANCE Interframe_Time
RELEASE Ethernet
Free Node RELEASE P$Node_ID
DEPART Global_Delays
TERMINATE
******************************************************************
Xmit_Error SAVEVALUE Error_Count+, 1
TRANSFER,Free Node
******************************************************************
******************************************************************
GENERATE 1000
TERMINATE 1