FCFS Scheduling Algorithm क्या है और FCFS Source Code in c

FCFS शेड्यूलिंग एल्गोरिथम क्या है? (FCFS Scheduling Algorithm Kya Hai?)

FCFS जिसे First Come First Serve के नाम से भी जाना जाता है, यह प्रोसेस scheduling Algorithm है (जो Disk Scheduling Algorithm का हिस्सा है ) जिसे कंप्युटर operating System मे इस्तेमाल की जाती है । यह उन Jobs या प्रक्रियाओं को पहले execute करने का प्रयास करता है जो पहले कतार में आती हैं (जैसे jio Sim के लिए लाइन मे लगना) ।

FCFS एल्गोरिथम के कार्य करने का तरीका:

  1. प्रोसेस आने पर:
    • नई प्रक्रिया को प्रोसेस कतार (Queue) के अंत में जोड़ा जाता है।
  2. सीपीयू उपलब्ध होने पर:
    • प्रोसेस कतार से सबसे पहली प्रक्रिया को चुना जाता है ।
    • चुनी गई प्रक्रिया को सीपीयू प्रदान किया जाता है और वह निष्पादन शुरू करती है।
    • प्रक्रिया अपने निष्पादन को पूरा करने के बाद, सीपीयू को छोड़ती है और प्रोसेस कतार से अगली प्रक्रिया को चुना जाता है।

FCFS Scheduling Algorithm का स्यूडोकोड (Pseudocode)

function FCFS_Schedule(queue Q):
  while Q is not empty:
    process P = dequeue(Q)
    execute(P)

स्यूडोकोड को समझे (Explanation)

  • function FCFS_Schedule(queue Q): यह लाइन एक function या प्रक्रिया बनती है जिसका नाम “FCFS_Schedule” है और “Q” एक input है । यह Queue Schedule होने की प्रतीक्षा कर रही प्रक्रियाओं की सूची को प्रतिनिधित्व करती है।
  • while Q is not empty:यह पंक्ति एक लूप शुरू करती है जो तब तक जारी रहती है जब तक कतार “Q” खाली नहीं होती (यानी, अभी भी प्रक्रियाएँ प्रतीक्षा में हैं)।
  • process P = dequeue(Q): यह पंक्ति कतार “Q” से पहली प्रक्रिया को हटाती है और इसे variable “P” में संग्रहीत करती है। “dequeue(Q)” फ़ंक्शन कतार की शुरुआत (First In First Out सिद्धांत) से एक element को हटाने के कार्य का प्रतिनिधित्व करता है।
  • execute(P): यह लाइन प्रक्रिया P को Execute करती है। इसका मतलब Process के लिए CPU Allocate करना और इसे पूरा होने तक चलने की अनुमति देना है।
  • फिर लूप दोहराता है, कतार से अगली प्रक्रिया लाता है और कतार खाली होने तक इसे Execute करता है।
FCFS Scheduling Algo by Qualitybaba

FCFS Scheduling Algorithm के उदाहरण:

मान लीजिए हमारे पास निम्नलिखित प्रक्रियाएं हैं, जिनके आगमन समय (Arrival Time – AT) और निष्पादन समय (Burst Time – BT) दिए गए हैं:

ProcessArrival Time – ATBurst Time – BT
P105
P232
P364
FCFS scheduling Algorithm (Time in ms)

FCFS Scheduling Algorithm के अनुसार, प्रक्रियाओं को Execute करने का क्रम होगा:

ProcessStart Time – STClose Time – CT
P105
P257
P3711
FCFS Scheduling Algorithm (Time in ms)

इस पूरे Process का ऑर्डर है : – P1 -> P2 -> P3

जैसा कि आप देख सकते हैं, P1 सबसे पहले आती है (AT=0ms), इसलिए इसे पहले सीपीयू दिया जाता है । P2 अगली आती है (AT=3ms), परंतु P1 पहले से ही सीपीयू का उपयोग कर रही है, इसलिए उसे इंतजार करना पड़ता है । P3 अंत में आती है (AT=6ms), और P1 और P2 के निष्पादन के बाद ही सीपीयू प्राप्त कर पाएगी ।

इस उदाहरण में, औसत प्रतीक्षा समय (Average Waiting Time) की गणना की जा सकती है, जो प्रत्येक प्रक्रिया द्वारा सीपीयू प्राप्त करने के लिए इंतजार किए गए समय का औसत होता है।

FCFS एल्गोरिथम के फायदे (Advantages of FCFS Algorithm):

  • सरल और लागू करने में आसान
  • गैर-पूर्वाग्रही (Non-Prejudiced) (प्रक्रियाओं के बीच भेदभाव नहीं करता)

FCFS एल्गोरिथम के नुकसान (Disadvantages of FCFS Algorithm):

  • प्रक्रियाओं को उनके Execute समय के आधार पर Customized नहीं करता है, जिससे Waiting time और Response Time लंबा हो सकता है (जैसे P3 का उदाहरण)
  • सिस्टम के Overall Performance को प्रभावित कर सकता है, खासकर जब छोटे प्रक्रियाओं को लंबे प्रक्रियाओं के पीछे इंतजार करना पड़ता है

C Program Source Code of FCFS Scheduling Algorithm

दोस्तों यह नीचे मैंने आपको FCFS एल्गोरिथम का Source Code जो C language मे लिखा गया है :-

// C program for FCFS Scheduling Algorithm

#include<stdio.h> 
// Function to find the waiting time for all 
// processes 
void findWaitingTime(int processes[], int n, 
int bt[], int wt[]) 
{ 
	// waiting time for first process is 0 
	wt[0] = 0; 

	// calculating waiting time 
	for (int i = 1; i < n ; i++ ) 
		wt[i] = bt[i-1] + wt[i-1] ; 
} 

// Function to calculate turn around time 
void findTurnAroundTime( int processes[], int n, int bt[], int wt[], int tat[]) 
{ 
	// calculating turnaround time by adding burst time and waiting Time 

	for (int i = 0; i < n ; i++) 
		tat[i] = bt[i] + wt[i]; 
} 

//Function to calculate average time 
void findavgTime( int processes[], int n, int bt[]) 
{ 
	int wt[n], tat[n], total_wt = 0, total_tat = 0; 

	//Function to find waiting time of all processes 
	findWaitingTime(processes, n, bt, wt); 

	//Function to find turn around time for all processes 
	findTurnAroundTime(processes, n, bt, wt, tat); 

	//Display processes along with all details 
	printf("Processes   Burst time    Waiting time     Turn around time\n"); 

	// Calculate total waiting time and total turn 
	// around time 
	for (int i=0; i<n; i++) 
	{ 
		total_wt = total_wt + wt[i]; 
		total_tat = total_tat + tat[i]; 
		printf(" %d ",(i+1));
		printf("	 %d ", bt[i] );
		printf("	 %d",wt[i] );
		printf("	 %d\n",tat[i] ); 
	} 
	float s=(float)total_wt / (float)n;
	float t=(float)total_tat / (float)n;
	printf("Average waiting time = %f",s);
	printf("\n");
	printf("Average turn around time = %f ",t); 
} 

// Driver code 
int main() 
{ 
	//process id's 
	int processes[] = { 1, 2, 3}; 
	int n = sizeof processes / sizeof processes[0]; 

	//Burst time of all processes 
	int burst_time[] = {10, 5, 8}; 

	findavgTime(processes, n, burst_time); 
	return 0; 
} 
// This code is copy from Geeks for geeks

Output:

Process     Burst time      Waiting Time      Turn Around Time
1            10              0                   10
2            5               10                  15
3            8               15                  23

Average waiting time = 8.33333
Average turn around time = 16

मुझे आशा है दोस्तों की आपको FCFS Scheduling Algorithm क्या है आपको समझ आया होगा ।

आपको ये लेख कैसा लगा या आपके पास हमारे लिए कोई सुझाव है तो हुमए बताएगा ।

आप अपने विचार भी नीचे कमेन्ट करके हमे बता सकते है । धन्यवाद ।

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

4 thoughts on “FCFS Scheduling Algorithm क्या है और FCFS Source Code in c”

Leave a Comment