Write an e-mail simulator that processes mail at an average


Assignment

Task for this assignment is to investigate some of the properties of queues.

Queues are commonly used in network systems. For example, e-mail is placed in queues while it is waiting to be sent and after it arrives at the recipient's mailbox. A problem occurs, however, if the outgoing mail processor cannot send one or more of the messages in the queue. For example, a message might not be sent because the recipient's system is not available.

Write an e-mail simulator that processes mail at an average of 40 messages per minute. As messages are received, they are placed in a queue. For the simulation, assume that the messages arrive at an average rate of 30 messages per minute. Remember, the messages must arrive randomly, so you will need to use a random number generator to determine when messages are received.

Each minute, you can dequeue up to 40 messages and send them. Assume that 25% of the messages in the queue cannot be sent in any processing cycle. Again, you will need to use a random number to determine whether a given message can be sent. If it cannot be sent, put it back at the end of the queue or enqueue it.

Run the simulator for 10 to 15 minutes, tracking the number of times each message had to be requeued. At the end of the simulation, print the statistics that show:

1. The total messages processed
2. The average time arrival rate, that is, the average number of messages arriving per minute
3. The average number of messages sent per minute
4. The average number of messages in the queue in a minute
5. The number of messages sent on the 1st attempt, the number sent on the 2nd attempt, and so forth
6. The average number of times messages had to be requested (do not include the messages sent the first time in this average)

PS: My lecturer have given us some hint stated below, strongly advised to follow the hint he have given

Everything to be completed using Java
Name of the program: QueueSim.java

Hint

• In some cases where the email account is full, it will rejoin the queue to attempt to send the email again
• Each loop = 1 minute (use loop to stimulate the time)

while (stimulationCount < 15 [use as a parameter that user can specify] )

NumOfEmailArrive = generate a random number between 0 to 60

Add the newEmail to the queue

• 1 minute - can have 1, 2 or even 30 messages coming in
• The above statement generates the number of email arrive in a minute

NumOfEmailDequeue = generate a random number between 0 to 40

NumofemailtobeDueqeue = min (queueSize, NumOfEmailDequeue)

Loop for NumOfEmailtobeDequeue
Generate a random number between 0 to 100
If number is < 25
(0 / 60) / 2 =30

• To do no.5 and no.6, use ArrayOfCount to compute.

Solution Preview :

Prepared by a verified Expert
Computer Engineering: Write an e-mail simulator that processes mail at an average
Reference No:- TGS02775821

Now Priced at $40 (50% Discount)

Recommended (99%)

Rated (4.3/5)