Algorithm favours CPU bound or I/O bound processes Some scheduling algorithms favour CPU bound processes while others favour I/O bound processes.
Which algorithm favours which type of process?
My answers:


SJF favours I/O bound processes.Explanation: Short CPU burst processes(I/O bound processes) are given higher priority.
SRTF favours I/O bound processes.Explanation: Same as SJF
Round Robin?  Not able to decide categorically
LRTF favours CPU bound processes.Explanation: Large CPU burst processes(CPU bound) are given higher priority.
HRRN?  Not able to decide categorically
Multilevel feedback Queue favours I/O bound processes.Explanation: Short CPU burst processes(I/O bound processes) are given higher priority. While processes that have large CPU bursts(CPU bound) will slowly have decrement in priority. A process in lower priority queue can only execute when higher priority queues are empty. A process running in a lower priority queue is interrupted by a process arriving in a higher priority queue.
Multilevel Queue favours I/O bound processes.Explanation: Similar to multilevel feedback.
Priority Scheduling?  Not able to decide categorically
FCFS?  Not able to decide categorically

 Please verify above answers and explanations.
Correct me if I'm wrong somewhere and provide answers with explanation for the omitted ones.
First of all, let me clarify that the CPU Burst Time of a process has no relation with being a CPU or I/O bound process. A CPU bound process is one that spends most of its execution time at CPU and an I/O bound process is one that spends most of its execution time at an I/O device. Therefore, a process having small CPU burst time can also be a CPU bound process. Similarly, a process having very large CPU burst time can still be I/O bound.
For example, consider a process A having CPU burst time of 1ms and I/O burst time of 5 ms. It is clearly an I/O bound process. And a process B having CPU burst time of 10ms and I/O burst time of 5 ms is clearly a CPU bound process. But if we consider SJF or SRTF algorithms, they will definitely prefer the process A over B inspite of A being I/O bound and B being CPU bound because A has lower CPU burst time than that of B. Thus, it is incorrect to think that SJF favours I/O bound processes.
But, as I/O bound processes spend more time doing I/O than CPU, they will be sent to the waiting state more often.
(It has nothing to do with CPU scheduling as CPU scheduling is handled by Short Term Scheduler and waiting state is handle by Medium Term Scheduler). Once a process in waiting finishes its I/O, it now depends on the CPU Scheduler. Now, if any preemptive algorithm is being used, there are chances that this process will get execution (depending on the criteria). But if any non-preemptive algorithm is being used, this process won't get execution until currently executing process is finished. So, we can say that non-preemptive algorithms (kind of) favour CPU bound processes (as they spend more time at the CPU, so they have to face lower chances of waiting).