Example #1
0
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)
Example #2
0
    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])
Example #3
0
    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()
Example #4
0
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)