Policies
Policy is the behavior of the scheduler that determines what runs when
I/O Bound vs Processor Bound Processes
Processes can be classified as either I/O-bound or processor-bound
I/O-bound A process that spends much of its time submitting and waiting on I/O requests. Such a process is runnable for only short durations, because it eventually blocks waiting on more I/O. Most GUI applications are I/O-bound, even if they never read from or write to the disk, because they spend most of their time waiting on user interaction via the keyboard and mouse.
Processor-bound Processor-bound processes spend much of their time executing code.They tend to run until they are preempted because they do not block on I/O requests very often. Because they are not I/O-driven, scheduler does not run them often. A scheduler policy for processor-bound processes, tends to run such processes less frequently but for longer durations
These classifications are not mutually exclusive. Processes can exhibit both behaviors simultaneously:The X Window server, for example, is both processor and I/O intense
The scheduling policy in a system must attempt to satisfy two conflicting goals: fast process response time (low latency) and maximal system utilization (high throughput)
The scheduler policy in Unix systems tends to explicitly favor I/O-bound processes, thus providing good process response time.