并发使得处理机的利用率得到提高,其主要原因是处理机与IO可以同时为多个进程服务,也即处理机与IO设备真正地并行。但是处理机的利用率提高并不是简单地将二个进程的处理机利用率相加,而是遵循一定的规律。现在有一个计算机系统采用多道程序技术实现了并发,调度算法采用时间片轮转,时间片很小可以不计,忽略系统的开销,请分析以下问题:
假设每个进程的处理机的利用率为u1=20%。
(1)进程并发时,处理机的利用率与并发进程数的关系是什么
(2)假设某一计算机系统拥有20MB内存,以等额分区的方式实现了多道程序设计并运行,每个分区为4MB,其中操作系统占一个分区,请问此时处理机的利用率最大为多少
(3)假设为这个系统增加了16MB内存,系统有足够的并发度,此时处理机的利用率最大为多少系统的吞吐量比(2)增加了多少
(4)在(3)的基础上继续增加16MB内存,此时处理机的利用率最大为多少系统的吞吐量比(3)增加了多少分析此时增加的内存是否合算说明为什么。
参考答案:[解答] 根据题意,计算得到:
(1)进程并发时,处理机的利用率可以按如下公式计算
un=1-(1-u1)n
其中n为并发进程数,un为n个进程并发时的处理机利用率,u1为单个进程运行时的处理机利用率
(2)在20MB内存下,以固定分区并发,操作系统占用1个分区,则可以得到最高有4个进程并发,那么此时处理机的利用率为
u4=1-(1-u1)4=1-(1-0.2)4=59%
(3)当增加了16MB的内存以后,进程的并发数最多可以到达8个,此时的处理机利用率为
u8=1-(1-u1)8=1-(1-0.2)8=83.2%
比4进程并发的时候处理机利用率提高了83.2%-59%=23.8%
吞吐量比起(2)则增加了
(P8-P4)/P4=(8/(8×(T×u1)/u8)-4/(4×(T×u1)/u4))/(4/(4×(T×u1)/u4))=(4.16/T-2.95/T)/2.95T=41%
(4)继续增加内存16MB,此时进程的并发数最多可以到达12个,此时的处理机利用率为
u12=1-(1-u1)12=1-(1-0.2)12=93.1%
比8进程并发的时候处理机利用率提高了93.1%-83.2%=9.9%
吞吐量比起(3)则增加了
(P12-P8)/P8=(12/(12×(T×u1)/u12)-8/(8×(T×u1)/u8))/(8/(8×(T×u1)/u8))-(4.66/T-4.16/T)/4.16T=12%
综上,当额外继续增加16MB内存时,处理机的利用率仅提高了9.9%,吞吐量比起(3)则增加了12%,比起前16MB内存,处理机的利用率提高了23.8%,吞吐量(3)比起(2)则增加了41%,显然,后16MB内存的效果不如前16MB内存,故不合算。
解析: 本题考查的是并发进程之间的计算。计算机引入多道程序设计技术主要是为提高处理机的利用率。在多道程序并发的情况下,处理机的利用率呈现出如下的规律:
un=1-(1-u1)n
其中,un为处理机在n进程并发时的利用率,u1为单个进程的处理机利用率,n为并发进程数。
根据题意,系统采用固定分区的分配算法,则20MB可以分为5个分区,每个分区4MB,其中操作系统占用1个分区,余4个分区,可以并发4个进程,因此此时的处理机利用率为
u4=1-(1-u1)4=1-(1-0.2)4=59%
若额外增加16MB内存,那么可以再做成4个固定分区,并发进程可以提高到8个,处理机利用率为
u8=1-(1-u1)8=1-(1-0.2)8=83.2%
处理机利用率提高了83.2%-59%=23.8%。
假设系统的吞吐量为P,进程单独运行的时间为T且相同,则4个进程运行完成所需的时间t4为
t4=4×(T×u1)/u4=1.36T
4个进程并发下,吞吐量P4为
P4=4/t4=2.95/T
同理,8个进程并发时,吞吐量为
P8=8/t8=8/(8×(T×u1)/u8)=4.16/T
因此8进程并发比4进程并发在吞吐量上提高了
(4.16/T-2.95/T)/2.95T=41%
继续增加16MB内存,使得系统达到12进程并发,则通过计算,可以得出
u12=1-(1-u1)12=1-(1-0.2)12=93.1%
P12=12/t12=12/(12×(T×u1)/u12)=4.66/T
因此12进程并发比8进程并发在处理机利用率上提高了
93.1%-83.2%=9.9%
吞吐量上提高了
(4.66/T-4.16/T)/4.16T=12%