CPU Scheduling

This project implements and analyzes optimal CPU scheduling algorithms by combining priority algorithms, MultI-level Feedback queue scheduling algorithms and round-robin algorithms.

Design

1. Input Data
Input data has read the file in the form of Input_file. The first factor value is type, which creates the process when ' 0 ' and inserts it into the ready queue. ' 1 ' indicates that one process's time quota (Time Quantum) is complete and must be scheduled. ' - 1 ' indicates input completed. After entry is completed, the general processes in the queue are scheduled according to priority. The second factor value is the name assigned to each process with the process_id, and the third factor is the priority. The last factor value is the Computing_time, The amount of time that each process needs to serve to finish a task.

2. Data structure of process
From the left, it is composed of Left_link, Process_id, Priority, Computing_time, Computer_time_counter, StartTime, and Right_link.

The priority queue has been declared as a global variable in the form hp[ ]. CurrentTime is also declared in the form of an initial value of ' 0 ' to allow global variables to check the current time.

Results

Screenshots

Take a look at the app by its screenshots

My efforts were rewarded

What I learned through this project

By combining a single CPU schedule to implement a new CPU scheduling and forecasting how it will be scheduled using a simulator, we have better understanding of CPU scheduling.

DongHwan kim