Aim: Write A Program To Implement First-Come First-Served (FCFS) Process
Aim: Write A Program To Implement First-Come First-Served (FCFS) Process
Source Code
class FCFS(object):
def __init__(self,d,avg_tat,avg_wt):
self.d=d
self.avg_tat=avg_tat
self.avg_wt=avg_wt
def preprocess(self):
sorted_tuples = sorted(self.d.items(), key=lambda item: item[1][-1])
self.d = {k: v for k, v in sorted_tuples}
def completion_time(self):
self.d[list(self.d.keys())[0]].append(self.d[list(self.d.keys())[0]]
[0]+0) #Initial waiting time is zero
for i in range(1,len(self.d)):
self.d[list(self.d.keys())[i]].append(self.d[list(self.d.keys())[i]]
[0]+self.d[list(self.d.keys())[i-1]][2])
def turn_around_time(self):
for i in range(0,len(self.d)):
self.d[list(self.d.keys())[i]].append(self.d[list(self.d.keys())[i]]
[2]-self.d[list(self.d.keys())[i]][1])
for i in self.d:
self.avg_tat +=self.d[i][3]
self.avg_tat/=len(self.d)
return self.avg_tat
def waiting_time(self):
for i in range(0,len(self.d)):
self.d[list(self.d.keys())[i]].append(self.d[list(self.d.keys())[i]]
[3]-self.d[list(self.d.keys())[i]][0])
print(self.d)
for i in self.d:
self.avg_wt +=self.d[i][-1]
self.avg_wt/=len(self.d)
return self.avg_wt
if __name__=="__main__":
p = list(map(str, input("Enter the processes: ").split()))
print(p)
np = len(p)
d = dict.fromkeys(p,0)
fc = FCFS(d,0,0)
fc.preprocess()
fc.completion_time()
print(f'Average turn around time is : {fc.turn_around_time()}')
print(f'Average waiting time is : {fc.waiting_time()}')
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Output