文章转载自 我自己的小破站。欢迎大佬们围观~
1.页错误的有效访问时间计算公式
设 f 为页错误的概率(0≤f≤1,页错误的情况较多,这里主要指缺页,因此f为缺页率),希望f接近于0,即页错误很少,那么有效访问时间为:
E
A
T
=
(
1
−
f
)
×
m
a
+
f
×
页
错
误
处
理
时
间
EAT=( 1 - f ) × ma + f × 页错误处理时间
EAT=(1−f)×ma+f×页错误处理时间
2.请求分页管理方式中的有效访问时间计算
(1)不考虑命中率和缺页率的有效访问时间计算
访问内存的操作共有3种情况:
-
访问的页在主存中,且访问页的页表项在快表中(若访问页的页表项在快表中,则一定不会缺页):
即:EAT = 查找快表时间+形成物理地址并访问内存数据时间
E A T = e + t EAT=e+t EAT=e+t -
访问的页在主存中(不缺页),且访问页的页表项不在快表中:
即:EAT=查找快表时间+查找页表时间+修改快表时间+形成物理地址并访问内存数据时间
E A T = e + t + e + t = 2 ( e + t ) EAT=e+t+e+t=2(e+t) EAT=e+t+e+t=2(e+t) -
访问的页不在主存中(缺页),设处理缺页中断的时间为t1(产生缺页中断并将该页调入内存、更新快表和页表的时间):
即:EAT=查找快表时间+查找页表时间+处理缺页中断的时间t1+查找快表时间+形成物理地址并访问内存数据时间
E A T = e + t + t 1 + e + t = t 1 + 2 ( e + t ) EAT=e+t+t1+e+t=t1+2(e+t) EAT=e+t+t1+e+t=t1+2(e+t)
(2)考虑命中率和缺页率的有效访问时间计算
EAT= 查找快表时间 + α × 形成物理地址并访问内存数据时间 + (1-α) × [查找页表时间+f×(处理缺页中断的时间(t1) + 查找快表时间 + 形成物理地址并访问内存数据时间) + (1-f) × (修改快表时间+形成物理地址并访问内存数据时间)]
E
A
T
=
e
+
α
t
+
(
1
−
α
)
[
t
+
f
(
t
1
+
e
+
t
)
+
(
1
−
f
)
(
e
+
t
)
]
EAT=e+αt+(1-α)[t+f(t1+e+t)+(1-f)(e+t)]
EAT=e+αt+(1−α)[t+f(t1+e+t)+(1−f)(e+t)]
其中,α为命中率, f为缺页率
(3)不考虑查找快表的时间
即 e = 0
E
A
T
=
α
t
+
(
1
−
α
)
[
t
+
f
(
t
1
+
t
)
+
(
1
−
f
)
t
]
EAT=αt+(1-α)[t+f(t1+t)+(1-f)t]
EAT=αt+(1−α)[t+f(t1+t)+(1−f)t]
(4)处理缺页中断的时间t1的计算
如果题目中没有给出被置换的页面修改和不修改两种不同情况,则将缺页中断处理时间看成t1。如果题目中给出被置换的页面修改和不修改两种不同情况,前者的概率为β,处理时间为ta,后者的处理时间为tb,则:
t
1
=
β
×
t
a
+
(
1
−
β
)
×
t
b
t1=β×ta+(1-β)×tb
t1=β×ta+(1−β)×tb
(5)推论(待商榷)
如果题目中没有给出快表等,也就是说e=0,a=0,则有效访问时间为:
E
A
T
=
t
+
f
(
t
1
+
t
)
+
(
1
−
f
)
t
EAT=t+f(t1+t)+(1-f)t
EAT=t+f(t1+t)+(1−f)t