请问多道编程效率有关问题
请教多道编程效率问题
若一个进程用20%的时间使用CPU进行计算,另外80%的时间用来进行I/O,则如果使用单道编程,CPU利用率只有20%,若同时运行两个这样的进程,则CPU利用率将提高到36%(1-0.8*0.8=36%),为什么要这么计算,怎么不是40%呢?
------解决方案--------------------
一个进程用20%的时间使用CPU进行计算,另外80%的时间用来进行I/O
设程序总共运行时间为t,第一个进程CPU使用时间为20%t,剩下的80%t时间第一个进程在IO,此时第2个进程利用这80%t的时间执行,其中80%*(20%t)时间CPU被第2个进程使用,所以总共CPU没有被使用的时间为
80%*(80%t),所以结论显然。
若一个进程用20%的时间使用CPU进行计算,另外80%的时间用来进行I/O,则如果使用单道编程,CPU利用率只有20%,若同时运行两个这样的进程,则CPU利用率将提高到36%(1-0.8*0.8=36%),为什么要这么计算,怎么不是40%呢?
------解决方案--------------------
一个进程用20%的时间使用CPU进行计算,另外80%的时间用来进行I/O
设程序总共运行时间为t,第一个进程CPU使用时间为20%t,剩下的80%t时间第一个进程在IO,此时第2个进程利用这80%t的时间执行,其中80%*(20%t)时间CPU被第2个进程使用,所以总共CPU没有被使用的时间为
80%*(80%t),所以结论显然。