操作系统原理面试题 操作系统 面试问题( 六 )


注意 , 请求分页系统、请求分段系统和请求段页式系统都是针对虚拟内存的 , 通过请求实现内存与外存的信息置换 。

操作系统原理面试题 操作系统 面试问题

文章插图


由图可以看出 , 虚拟内存实际上可以比物理内存大 。 当访问虚拟内存时 , 会访问MMU(内存管理单元)去匹配对应的物理地址(比如图5的0 , 1 , 2) 。 如果虚拟内存的页并不存在于物理内存中(如图5的3,4) , 会产生缺页中断 , 从磁盘中取得缺的页放入内存 , 如果内存已满 , 还会根据某种算法将磁盘中的页换出 。
3). 页面置换算法
FIFO先进先出算法:在操作系统中经常被用到 , 比如作业调度(主要实现简单 , 很容易想到);
LRU(Least recently use)最近最少使用算法:根据使用时间到现在的长短来判断;
LFU(Least frequently use)最少使用次数算法:根据使用次数来判断;
OPT(Optimal replacement)最优置换算法:理论的最优 , 理论;就是要保证置换出去的是不再被使用的页 , 或者是在实际内存中最晚使用的算法 。
4). 虚拟内存的应用与优点
虚拟内存很适合在多道程序设计系统中使用 , 许多程序的片段同时保存在内存中 。 当一个程序等待它的一部分读入内存时 , 可以把CPU交给另一个进程使用 。 虚拟内存的使用可以带来以下好处:
在内存中可以保留多个进程 , 系统并发度提高
解除了用户与内存之间的紧密约束 , 进程可以比内存的全部空间还大
颠簸
颠簸本质上是指频繁的页调度行为 , 具体来讲 , 进程发生缺页中断 , 这时 , 必须置换某一页 。 然而 , 其他所有的页都在使用 , 它置换一个页 , 但又立刻再次需要这个页 。 因此 , 会不断产生缺页中断 , 导致整个系统的效率急剧下降 , 这种现象称为颠簸(抖动) 。
内存颠簸的解决策略包括:
如果是因为页面替换策略失误 , 可以修改替换算法来解决这个问题;
如果是因为运行的程序太多 , 造成程序无法同时将所有频繁访问的页面调入内存 , 则要降低多道程序的数量;
否则 , 还剩下两个办法:终止该进程或增加物理内存容量 。
局部性原理
(1). 时间上的局部性:最近被访问的页在不久的将来还会被访问;
(2). 空间上的局部性:内存中被访问的页周围的页也很可能被访问 。
中断和轮询
中断的定义
指在计算机执行期间 , 系统内发生任何非寻常的或非预期的急需处理事件 , 使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序 , 待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程 。
轮询的定义
定时对各种设备轮流询问一遍有无处理要求
临界区和冲突解决
临界资源的定义:一次仅允许一个进程使用的资源 。
临界区的定义:每个进程中访问临界资源的那段程序 。
解决冲突:如果有若干进程要求进入空闲的临界区 , 一次仅允许一个进程进入任何时候 , 处于临界区内的进程不可多于一个进入临界区的进程要在有限时间内退出 , 以便其它进程能及时进入自己的临界区如果进程不能进入自己的临界区 , 则应让出CPU , 避免进程出现“忙等”现象 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。