Full Library / Resource / Timed-Queue /ServerN
Block Name: ServerN
Code File Location: VisualSim/actor/lib/Resource_FCFS_N_Server
o DMA with multiple channels.
o Multiple cores with a single scheduler allocating the processing tasks to the incoming resources.
o Network and Wireless channels.
o M/G/N queue structure.
This block contains a single queue that can send request to one of many server resources. The queue assigns the transaction to the first available server resource. The Queue is ordered based on the priority (queue_priority) of the data structure. Higher priority items will move to the front of the queue. Higher the number, higher the priority. The Server Resource is a timed resource that delays the incoming data structure before placing it on the output port.
When a Server Resource is free, the token or Data Structure at the head of the queue is sent to the server resourcee. The server resource holds the token for the Server_Execution_Time period and then places it on the output port. If the queue is full, then the incoming Data Structure or token is sent to the reject_output port.
Separate statistics are maintained for the input Queue and the set of Server resources. The list of server and queue statistics information is listed below. The Queue statistics is identified by a Queue Number = 0 and the Utilization = 0.0
Refer ServerN_All Demo Model.
Server Statistic Output |
Value |
Explanation |
Mathematical Equation |
Type |
Number_Entered |
100 |
Number of transactions entering the server. |
- |
int |
Number_Exited |
25 |
Number of transactions that left the server. |
- |
int |
Queue_Number |
1 |
Queue Number. Queue number start at 1. |
- |
int |
Total_Delay_Min |
1.3 |
In seconds. Least time through the queue+server among all transactions. |
If (Xn < Xn – 1) Xmin = Xn |
double |
Total_Delay_Mean |
1.3 |
In seconds. Mean/Average time through the queue+server among all transactions. |
Xµ = (1 / n) * (X1 + X2 + … + Xn) |
double |
Total_Delay_StDev |
1.3 |
In seconds. Standard Deviation from the Mean time through the queue+server among all transactions. |
Xσ = Math.sqrt ((1 / n) * ((X1 - Xµ)2 + (X2 - Xµ)2 + … + (Xn - Xµ)2)) |
double |
Total_Delay_Max |
1.3 |
In seconds. Maximum time through the queue+server among all transactions. |
If (Xn > Xn – 1) Xmax = Xn |
double |
Utilization_Pct_Mean |
40.0 |
Mean/Average utilization of the server portion only. Units are in percentage. |
Xµ = (1 / n) * (X1 + X2 + … + Xn) |
double |
Where n is the number of samples and X is occupancy or delay.
Queue Statistic Output |
Value |
Explanation |
Mathematical Equation |
Type |
Number_Entered |
100 |
Number of transactions entering the queue. |
- |
int |
Number_Exited |
25 |
Number of transactions that left the queue. |
- |
int |
Number_Rejected |
10 |
Number of transactions rejected and output to reject port. |
- |
int |
Queue_Number |
0 |
Queue Number. Default to 0. |
- |
int |
Occupancy_Min |
4.0 |
Minimum queue size during the simulation. |
If (Xn < Xn – 1) Xmin = Xn |
double |
Occupancy_Mean |
8.0 |
Mean/Average queue size during the simulation. |
Xµ = (1 / n) * (X1 + X2 + … + Xn) |
double |
Occupancy_StDev |
3.0 |
Standard Deviation from the Mean queue size during the simulation. |
Xσ = Math.sqrt ((1 / n) * ((X1 - Xµ)2 + (X2 - Xµ)2 + … + (Xn - Xµ)2)) |
double |
Occupancy_Max |
25.0 |
Maximum queue size consumed during the simulation. |
If (Xn > Xn – 1) Xmax = Xn |
double |
Parameter |
Explanation |
Type |
Example |
Queue_FCFS_Time |
This is a Parameter that specifies where to extract the Server execution time for each incoming token or Data Structure. This field can be a Data Structure Field Name, Memory Name, or a double. |
Double |
"DELTA" or 2.0 |
Queue_Priority |
This is the Parameter that specifies where to extract the incoming Data Structure or Token priority. This priority value is used to order this incoming token within the shared input queue. This field can take a Data Structure Field Name, Memory Name, or an integer. |
Integer |
"A_Priority" or 2 or None |
Number_of_Dimensions |
This is a Parameter that specifies the number of server to setup. |
Integer |
1 |
Max_FCFS_Length |
This is the length of the input queue. |
Integer |
30 |
Port |
Explanation |
input |
This is the Input port for data structures to enter the Server Queue. |
stats_input |
This port gets or clears statistics based on the value of the input. If the value is (-(Number_of_Dimensions + 1)), then the statistics for all Servers is cleared. If the value is ((Number_of_Dimensions + 1)), then the statistics for all the Server are output on the stats_output. The output is a array of data structures, where each data structure corresponds to the statistics of an individual server. In addition, this block supports resetting individual FCFS Server (-1 thru -Number_of_Dimensions) or getting individual FCFS Servers (1 thru Number_of_Dimensions). |
output |
The completed (Server execution) data structure is sent out on this port and will be the same type as the input. |
reject_output |
The incoming Data Structure is rejected if the Queue and all Servers are full. The incoming Data Structure is placed on this port. The type is based on the input token. |
stats_output |
The statistics triggered by the input port are output in this port. The type is data structure for the single server and is array of data structures for all server statistics. See the list of items above. |
Created with the Personal Edition of HelpNDoc: Free PDF documentation generator