In this assignment a scheduler algorithm needs to be designed and implemented. The scheduler designed will be used for scheduling different tasks/process to be executed in a system. There are different kinds of processes in a system. When the process enters the system it will be directly stored in the job queue. The processes which are stored in main memory are those which are ready /waiting to be executed. Those which are ready to be executed immediately are stored in ready queue. These ready tasks/process are stored in a linked list based priority queue. The ready queue header pointer contains the first and the last Process control block (PCB) in that list. The PCB is a structure which maintains information about each and every process like, the process type, process ID and state of the process. Each PCB has a pointer that points to the next process in the ready queue.
When the process is allocated the CPU, it executes and exits. Since the system is having many processes the disk may be busy with i/o request. Therefore the process has to wait for the disk. The list of process waiting for a particular i/o device is put into a different queue called device queue. using c languge