linux操作系统博大精深,对操作系统的掌握的掌握程度对编写代码非常有帮助。下面看一下IO消耗和处理器消耗的不同。
I/O消耗型进程:程序运行时的大部分时间都在提交或者等待I/O请求,因此这样的进程要经常处于运行状态,但通常都是短短的一会儿,所以处理器倾向于优先调度I/O消耗型的进程。该类进程优先级高,时间片长。而优先调度该类进程是为了让该类进程是为了尽可能地消耗其所需要的处理器资源,从而让该进程阻塞住,这样只要用户一完成I/O操作,该进程就会被唤醒,从而立刻处理I/O操作,那么在用户看来,该进程响应非常快,体现出了很好的用户友好性
处理器消耗型进程:该类进程在把时间都发在了执行代码上,即在该进程执行期间,马不停蹄的使用处理器资源。所以除非被抢占,否则它们通常都一直不停地运行,因此从系统响应速度考虑,调度器不应该经常让它们运行。该类进程优先级低,时间边短。
1)如果处理器消耗型进程的优先级高,时间片长,那么它就是实打实地消耗完它的时间片后,系统才会为其他低优先级的进程服务
2)而如果I/O消耗型进程的优先级高,时间片长,则因为频繁的IO操作并等待完成,需要处理器处理的时间其实很少,这样系统会自动将其等待的时间片分配给其他需要服务的进程
显然2更合理,不只让I/O消耗型进程的响应速度更快,而且让其它进程不用等太久就会被再次调度到