How scheduling algorithm determine the type of process (I/o, CPU bound)
In Linux 2.6 a process is considered to be interactive if its dynamic priority is greater than its static priority.
Linux updates the priority of every process dynamically according to its average waiting time. (Without going into the exact calculations and functions).
We'd expect cpu bound
process to have a low average waiting time. In contrast we'd expect an I/O bound
process to have a high waiting time.