近期,我亲爱的小伙伴们好像都在准备找工作,预祝他们找工作顺利!我这整天在实验室的伤不起。

  有一个小伙伴问了我一道操作系统的题目,大概如下:

  其实,乍看一眼,我也不会。。。可能是操作系统忘光了吧。复习了一下,知道这个题的题意其实是操作系统的多道编程:

  我做出的正确结果应该是23.47,也是答案B

  分析过程:

  分析步骤:

  0-10分钟的时候,只有一个进程1在运行。

  单进程CPU占有率是20%,所以这10分钟内,进程1消耗了2分钟的CPU。进程2是0,进程3也是0

  然后在10-15分钟内,有两个进程在运行(1和2),双进程的CPU利用率是36%,

  所以,这五分钟内,CPU一共利用了1.8分钟,平均分给每个进程,是0.9分钟。

  此时,进程1已经占用了CPU 2.9分钟,还需要0.6分钟,这时候有三个进程在运行,所有总的CPU时间需要1.8分钟。

  三进程的CPU利用率是48.8%,所以总共需要1.8/0.488=3.69分钟。这时,进程1已经3.5分钟的CPu利用时间利用完了。

  此时还剩下2和3号进程在运行。

  2号进程还需要0.5分钟,所以0.5×2/0.36=2.78,此时2号进程的2分钟CPU时间也利用完了。

  3号进程还需要0.4分钟的CPU利用时间。0.4/0.2 = 2

  所以求完了

  至于多道编程时CPU利用率的求法:

  是这样的:

  只有一个进程的时候,CPU利用率肯定是20%。

  两个进程的时候:CPu利用率是:20% + (1-20%)*20% = 36%

  三个进程是:36% + (1-36%)*20% = 48.8%

  其它的依次类推。