-
多道编程的好处
人们发明进程是为了解决多道编程,而进行多道编程的目的则是提高计算机的效率,或者说系统的吞吐量。例如:如果有一个进程有20%的时间使用CPU进行计算,另外80%的时间用来进行I/O,则如果使用单道编程,CPU的利用率只有20%。但如果同时运行两个这样的进程,即进行所谓的2道编程,则CPU利用率将提高到36%(CPU只在两个进程同时进程I/O时才处于闲置状态,因此CPU的利用率为1-0.8*0.8 = 36%)
在0.8的空闲期间,又使用了0.2,剩下0.64的空余,所以使用率为1-0.64=0.36,1的单位其实指的是第一个进程从开始到I/O处理完所需要的时间,利用率是指在这个时间内,CPU有多少比例的时间处于计算状态
这里忽略了进程切换所需要的系统消耗。
同理,如果同时运行三个这样的进程,则CPU的利用率将进一步提高到48.8%,
- 4个进程的CPU利用率为59.04%,
- 5个进程的CPU利用率为67.232%,
- 6个进程的CPU空闲率为 26.2144%(0.8^6), 利用率为73.7856%
- 7个进程的CPU空闲率为 16.777216%(0.8^7), 利用率为83.222784%
这样,随着进程数量的增加,也就是随着多道编程的度的增加,CPU的利用率将逐步提升,但提升的幅度则逐步降低,直到某个临界点时为止。这个临界点就是多道编程的极限。超过这个极限,多道编程的好处将逐步消失,甚至呈下降趋势。对于这个系统来说,多道编程的度达到12以后,CPU利用率已经达到94%,之后CPU利用率的提升空间就很小了,而因为进程切换所带来的系统消耗则变得非常明显。
网友评论