What is "scheduler"
Process scheduling or task scheduler (in English Scheduling) is an organizational activity done by the scheduler (Scheduler) CPU or a distributed system, making it possible to execute the most viable and competing processes, prioritizing certain types of processes, such as I/O Bound and CPU Bound.
The 2-level process scheduler chooses the process that has more priority and less time and puts it in the main memory, leaving the others allocated to disk; with this execution the processor avoids being idle.
Short-term scheduler: Select from the ready-to-go processes that are on memory, to be executed by the processor. The short term makes scheduling decisions much more often that medium and long-term.
Medium-term scheduler: Selects between the processes that are in virtual memory, reduces the multiprogramming degree. It temporarily removes the process from main memory and puts it in the secondary memory (swap) by making the operations of swapping in and swapping out.
Long-term scheduler: Select from the new processes, which are limited by input/output and those that are limited by CPU, giving priority those limited by I/O, since they use less processor time. This scheduler is responsible for the degree of multiprocessing, or be the amount of processes the system will work on.