If you work with a system that only has batch processes, or only does real time applications, then your scheduling algorithm selection is much easier. You pick an appropriate choice and go with it…
However, the modern desktop OS will often include a combination of batch, interactive, and real-time applications. Therefore picking “a” solution isn’t quite as easy as you would hope.
A simple approach is to divide processes into two groups. Real-time processes run at the highest priority level but due to their short running times can use FIFO. Interactive and batch processes can be scheduled together using MLF.
Most modern general-purpose OSs (Ex: Windows, Linux) use more sophisticated scheduling strategies to provide more flexibility. Real time processes use either FIFO or RR in an ML scheme. Interactive and batch processes use a variation of MLF. Every process is assigned a base priority at creation but an increment is added based on the past action the process has taken.
With the addition of multi-core and multi-processors, the ability to service multiple queues and processes simultaneously improves.
Combined Approaches was originally found on Access 2 Learn