# Java Program for First Come First Serve (FCFS) Scheduling Algorithm

In this article we are going to learn about first come first serve (fcfs) scheduling in Java with program example. FCFS strategy will be helpful in many situations especially in tie breaking situations. Here we will see FCFS strategy with scheduling problem.

### First Come First Serve (FCFS) Scheduling

First come First serve means whatever the job came first we should process that job first regardless other properties. This situation we can map with our real time scenario. When we are in queue for movie tickets, whoever the person first entered into queue will get the ticket first. Second person will be severed second only. Same strategy will be applied on scheduling also.

In our context we are talking about job scheduling problem. As we know one processor may loaded with many jobs. Scheduler will do the scheduling job. If scheduler takes FCFS strategy then whichever the process arrived first that job will be scheduled on processor to be processed. Once we allocate processor to the job we can’t stop that processing until job is completed. This is called non-preemptive scheduling. If we are able to stop then it is called preemptive scheduling. Best scheduling algorithms will minimize the average waiting time, turnaround time.

#### Example:

Arrival time: The time when process came for scheduling.

Burst time: Time needed to execute the job.

If we apply FCFS scheduling on these jobs then P0 came first. So first we will schedule P0. After completion of P0 we will see for next job. P0 will take 9ms till then P1,P2 both jobs had come but we will schedule P1 because it arrived earlier than P2. After completion of P1 we will schedule P2.

Gantt Chart:

Waiting Times:

 Process Waiting time = first scheduled time – arrival time (ms) P0 0-0 = 0 P1 9-1= 8 P2 13-2 =11

Average waiting time is (0+8+11)/3 = 6.33ms

Turnaround Times:

 Process Turnaround Time = execution time + waiting time P0 0+9=9 P1 8+4=12 P2 11+9=20

Average turnaround time = (9+12+20)/3 = 13.66ms

## Java Program for First Come First Serve (FCFS) Scheduling Algorithm

Output

1. Simple to implement
2. Simple to understand
3. First come first serve will be used in tie breaking situations
4. Fairness in treating