请教多道编程效率问题

wyylbl 2011-03-02 04:15:00
若一个进程用20%的时间使用CPU进行计算,另外80%的时间用来进行I/O,则如果使用单道编程,CPU利用率只有20%,若同时运行两个这样的进程,则CPU利用率将提高到36%(1-0.8*0.8=36%),为什么要这么计算,怎么不是40%呢?
...全文
260 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinchaohe 2013-03-08
  • 打赏
  • 举报
回复
我的理解是这样的。 20%t的cpu时间,在程序1的80%t的时间中,进程2的CPU运行20%t的时间,所以总共运行时间为100%t+20%t,cpu使用时间为20%t+20%t,所以使用比为40/120=33.3%。我不明白为什么会有楼上上的那个结论
wyylbl 2011-03-23
  • 打赏
  • 举报
回复
谢谢 yyg990441 的详细解答,也谢谢大家的参与,给分结贴了!
yyg990441 2011-03-15
  • 打赏
  • 举报
回复
一个进程用20%的时间使用CPU进行计算,另外80%的时间用来进行I/O

设程序总共运行时间为t,第一个进程CPU使用时间为20%t,剩下的80%t时间第一个进程在IO,此时第2个进程利用这80%t的时间执行,其中80%*(20%t)时间CPU被第2个进程使用,所以总共CPU没有被使用的时间为
80%*(80%t),所以结论显然。
wyylbl 2011-03-15
  • 打赏
  • 举报
回复
这是邹恒明版的《操作系统之哲学原理》书中第44页的一小段内容
npuhuxl 2011-03-02
  • 打赏
  • 举报
回复
时间 0 20 40 100 180
CPU 程序1 程序2
IO 程序1 程序1 程序2 结束

CPU利用率40/180 = 22%

你的是什么机器,能达到36%??
管哥的天下 2011-03-02
  • 打赏
  • 举报
回复
若一个进程用20%的时间使用CPU进行计算,另外80%的时间用来进行I/O

???????????????
淏淏 2011-03-02
  • 打赏
  • 举报
回复
这与你运行的文件或系统有关,它是什么种类或者速度就提高多少,或者是一种慢文件。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧