def test(process_input_list, cpu_count): scheduler_list = [] # fcfs = FCFS(process_input_list, cpu_count) scheduler_list.append(RR(process_input_list, cpu_count, 2)) # quantum = 2 scheduler_list.append(RR(process_input_list, cpu_count, 3)) # quantum = 3 # scheduler_list.append(HRRN(process_input_list, cpu_count)) # ... for test_idx, scheduler in enumerate(scheduler_list): print( "[ TEST {0} - {1}]=======================================".format( test_idx + 1, type(scheduler).__name__)) scheduler.run() print_process_time_table(scheduler.processes)
def calculate(self): if not (self.SJF_btn.isChecked() or self.FCFS_btn.isChecked() or self.RR_btn.isChecked() or self.SRTF_btn.isChecked()): self.show_popup("Enter algorithm to execute") return if len(self.processes) == 0: self.show_popup( "There must be at least one process to execute this algorithm") return self.sortDict() if self.SJF_btn.isChecked(): res = SJF(self.processes) elif self.FCFS_btn.isChecked(): res = FCFS(self.processes) elif self.RR_btn.isChecked(): if self.quantum_time.text() == "": self.show_popup("Enter value for Quantum time first") return else: res = RR(self.processes, int(self.quantum_time.text())) else: res = SRTF(self.processes) self.lcdNumber.display(res[0]) self.lcdNumber_2.display(res[1])
def ScheduleAlgo(self): InputFile = open(self.ProcessFile, "r") Lines = InputFile.readlines() ProcessNum = int(Lines[0]) AT = [] BT = [] ID = [] PT = [] for i in range(1,ProcessNum+1): temp = Lines[i].split(' ') ID.append(int(temp[0])) AT.append(float(temp[1])) BT.append(float(temp[2])) PT.append(int(temp[3])) select = self.var.get() if( select == 1): Scheduler = HPF(AT,BT,ID,ProcessNum,int(self.ContextTime.get()),PT) print("hpf") elif( select == 2): Scheduler = FCFS(AT,BT,ID,ProcessNum,int(self.ContextTime.get())) print("fcfs") elif( select == 3): print("rr") Scheduler = RR(AT,BT,ID,ProcessNum,int(self.ContextTime.get()),int(self.QuantamTime.get())) else: print("srtn") Scheduler = SRTN(AT,BT,ID,ProcessNum,int(self.ContextTime.get())) Scheduler.Schedule() AvgTT,AvgWTT = Scheduler.TurnaroundTime() Processes = Scheduler.Processes self.OutFile("ProcessInfo2",Processes,AvgTT,AvgWTT) Scheduler.DisplayProcesses()
print("write the scheduling algorithm name(RR,FCFS,HPF,SRTN): ") algo = input() if algo == "HPF": proc, contxtPeriods = HPF(processes) elif algo == "FCFS": proc, contxtPeriods = FCFS(processes) elif algo == "SRTN": print("Enter Context Switching Time: ") cntxt = input() proc, contxtPeriods = SRTN(processes, float(cntxt)) elif algo == "RR": print("Enter Context Switching Time: ") cntxt = input() print("Enter quantum: ") quantum = input() proc, contxtPeriods = RR(processes, int(quantum), float(cntxt)) # getting lists x, y = getLists(proc, contxtPeriods) plt.plot(x, y) plt.ylabel("pid") plt.xlabel("time steps") plt.title(algo) plt.grid() plt.show() # to be removed:: # for i in range (0,len(proc)): # print(proc[i].id, proc[i].startT, proc[i].finishT, proc[i].TAT)