• Long term scheduler • Short term scheduler • Medium term scheduler 1. Long-Term Scheduler • Selects programs from the job pool and loads them into main memory. • Controls the degree of multiprogramming, which is the number of processes in memory. • An I/O bound process spends more time for doing I/O operations whereas CPU bound process spends more time in doing computations with the CPU • So It is the responsibility of long term scheduler to balance the system by loading some I/O bound and some CPU bound processed into the main memoryExecutes less frequently, typically when a process leaves the system. • Changes the process state from new to ready when it selects a process. 2. Short-Term Scheduler • Also known as the CPU scheduler, it selects processes ready for execution from the ready queue. • Allocates the CPU to the selected process. • Executes more frequently than other schedulers. • Changes the process state from ready to running when it selects a process. 3. Medium-Term Scheduler • When a process is in running state, due to some interrupt it is blocked. System swaps out blocked process and store it into a blocked and swapped out process queue. • When space is available in the main memory, the operating system looks at the list of swapped out but ready processes. • The medium term scheduler selects one process from that list and loads it into the ready queue. • The job of medium term scheduler is to select a process from swapped out process queue and to load it into the main memory. • This scheduler works in close communication with long term scheduler for loading process into the main memory.