1,进程倾向于占用CPU
2,访问局部性(localiltyof reference)满足进程要求
3,进程倾向于占用I/O
4,使用基于最短剩余时间(shortestremaining time)的调度机制
5,减少页大小
最先排除1和3选项,访问快慢、访问接口,对“错误”能够有什么影响?肯定是需要某种策略。
仔细看题:“减少”,而不是“消除”,说明这个“错误”不管怎么样,肯定是存在的;关键在于你是否理解“换页错误”的定义了。
看看选项2和4都有点像;至于5嘛,不太像了——即使页面减少,错误率会降低吗?难说,你可不知道系统实际运行时,数据大小、分布是什么样的:页面大,更可能将大数据块放在一页上;页面小,则会分散数据——形象上是这么理解,但操作系统算法没这么麻烦,也没见过这方面的概率讨论,排除。
我猜想的答案是2,因为被“错误”2字误导了:既然要减少错误嘛,“局部化”是很常用的策略,错误发生在局部就不至于影响全局......(归根结底还是不明白“换页错误”的定义)其实如果仔细想想,“局部化”可以降低错误的影响,但是它并不能降低错误的发生概率!剩下的答案就显而易见了。
Google一下这道题,没找到标准答案;百度一下,在百度百科中,找到了“换页错误”的解释。(不错,百度这次搜索表现良好)
换页错误:
PageFault 是在进程尝试执行代码指导,或者引用进程所映射物理内存中并不存在的数据页时,操作系统记录的事件。换句话说,进程需要的内存页实际上可能还处于物理内存中,但是由于它无法再分配到进程中,所以当进程将此页读取回到它的内存页时,就发生了PageFault。
说白了就是想在内存里找东西,却发现不存在(不得不重新读取...),按道理这不应该算“错误”这么严重吧(简单点,“不命中”而已)。
采用最短剩余时间调度机制:
SRT算法(SPN算法的抢占式版本):总是选择剩余时间最短的进程运行
为什么会减少换页错误呢?因为时间短的结束运行快,不需要频繁切换进程(导致刷新内存),所以换页错误发生的概率就减少了......(yathing:弄明白以后,想象一下就行了,别被名词搞晕了!)