在某个操作系统中,通过大量的实验,人们观察到在两次缺页中断之间执行的指令数与分配给程序的页框数成正比,即可用内存加倍,缺页中断的平均间隔也加倍。整体缺页次数减少约一半。假设一条普通指令需要100ns,但若发生了缺页中断就需要1ms。一个程序运行了60s,期

admin2012-06-26  47

问题 在某个操作系统中,通过大量的实验,人们观察到在两次缺页中断之间执行的指令数与分配给程序的页框数成正比,即可用内存加倍,缺页中断的平均间隔也加倍。整体缺页次数减少约一半。假设一条普通指令需要100ns,但若发生了缺页中断就需要1ms。一个程序运行了60s,期间发生了1 500次缺页中断,如果该程序的可用内存增加到原来的2倍,那么,请计算,此时这个程序运行需要多少时间?

选项

答案内存增加以后,原来运行60s的程序变为: (1500/2)×1ms+585000000×100ns=59.25s

解析 本题的形式较少见,计算的不是缺页中断的次数,而是根据缺页中断的次数计算  程序运行时间。
    首先应算出该程序一共运行了多少条指令,一条普通指令需要100ns,但发生缺页中断就要花费1ms,也即处理页故障时间是1000000ns,由此可算出该程序一共有指令数为:
           (60s一1500×1ms)÷100ns=585000000(条)
    扩容后,处理缺页中断的总时间为:(1 500/2)×1ms=750ms(内存是原来的两倍,缺页中断数降低为原来的1/2)。那么,该程序的运行时间是:750ms+585000000条×100ns/条=59.25s。
转载请注明原文地址:https://jikaoti.com/ti/bhajFFFM
0

最新回复(0)