阅读背景:

《自己动手写操作系统》第六章:进程调度

来源:互联网 
    我们来修改A、B、C三个进程的延迟:
 
        这样以后,打印出来A、B、C的个数是181:65:39.我们来分析一下这个比例:很显然,这里面的延迟指令实际上是靠CPU执行一系列指令来实现的,milli_delay(300)我们可以理解成300条nop指令。也就是说,循环体的长度与时间成正比。假设每隔30条指令,触发依次时钟中断,那么A、B、C程序执行一个循环被中断的次数是10、30、50,而每次中断,程序控制权就会转交到下一个进程。可以估算,循环内中断越多,被打印的次数越少,但为什么不是1:3:5的比例呢?我们可以这样理解,每次中断,打印的字符个数分别为:1/10;1/30/;1/50也就是15:5:3,这样看来倒是比较符合我们的比例。        这样以后,打印出来A、B、C的个数


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: