操作系统的内存管理

什么是局部性原理?

  1. 时间上的局部性:最近被访问的页在不久的将来还会被访问,例如:循环语句;
  2. 空间上的局部性:内存中被访问的页周围的页也很可能被访问,例如:使用数组。

内存管理的方式:

  • 页表:一个进程就对应一个页表(如下表),用于记录页号和页框号等对应的信息 以 显示一个页和一个页框的对应的关系。页表放在Cache(快速缓冲区Cache位于主存和CPU之间,作用是解决主存和CPU速率匹配问题)中就叫快表;放在内存中就叫慢表。
  • 地址映射:地址映射时优先访问快表。若在快表中找到所需数据的页号,则“命中”,也就是所需的页在内存里的;若没有在快表中找到,则访问慢表同时更新快表。 
  • 缺页中断:经常发生,缺页中断就是要访问的页不在内存,需要操作系统将其调入内存后再进行访问,并更新页表中该页对应的页框号以及修改中断位为0。
  • 页式存储管理的基本思想:在进程执行前,仅装入当前执行所需的页;在执行时,调入要访问但又不在内存的页(即缺页中断);当内存空间已满,而又需要装入新的页时,则根据合理的页面调度策略适当调出某个页,以便腾出空间而装入新的页。

常见的页面调度策略(淘汰策略)

  1. FIFO先进先出算法:淘汰最先进来的;
  2. LRU最久未使用算法:淘汰距离上次使用时间最长的;
  3. LFU(Least frequently use)最不经常使用算法:淘汰使用次数最少的(用计数器对每页进行计数);
  4. OPT最优置换算法:淘汰将来不再需要或在最遥远的将来才会使用的页。

页面颠簸(又叫页面抖动)

  • 颠簸本质上是指频繁的页调度行为。页面在内存和辅存间频繁交换的现象。会导致整个系统的效率急剧下降,这种现象称为颠簸(抖动)。
  • 内存颠簸的解决策略包括:
    • 如果是因为页面替换策略失误,可以修改替换算法来解决这个问题;
    • 如果是因为进程太多,无法同时将所有频繁访问的页面调入内存,则要降低进程的数量;
    • 否则,增加物理内存容量。

7、分页和分段有什么区别?

两者的区别:

  1. 目的不同:分页是信息的物理单位,由于系统管理的需要而不是用户的需要;分段(如下图)是信息的逻辑单位,目的是为了能更好地满足用户的需要;
  2. 大小不同:页的大小固定且由系统决定,而段的长度可变,由其所完成的功能来决定长度;
  3. 地址空间不同: 段向用户提供二维地址空间(段号+偏移);页向用户提供一维地址空间;
  4. 信息共享:段便于存储保护和信息的共享,页的存储保护和信息的共享受到限制;
  5. 内存碎片:页式存储管理的优点是没有外碎片(因为页的大小固定),但会产生内碎片(一个页可能填充不满);而段式管理的优点是没有内碎片(因为段可以改变段大小来消除内碎片),但段会产生外碎片(比如4k的段换5k的段,会产生1k的外碎片)。

8、Windows内存管理的方式(页式、段式、段页式)

页式能有效地提高内存的利用率,而段式系统能反映程序的逻辑结构,便于段的共享与保护。将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式。 
段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,每个进程设置一个段表;再将每段分成若干个大小相等的页,每个段有自己的页表。段页式调度综合了段式和页式的优点,大型通用计算机系统多数采用段页式调度。 
PS:Linux只用了页式虚拟存储管理的方式。

9、段页式管理每取一数据,要访问()次内存。

3次 
在段页式存储管理方式中,取一次数据:首先要从内存中查找段表;再查找该段对应的页表;最后通过得到的物理地址访问内存获得数据。

参考

【1】操作系统面试问题集锦 
http://blog.csdn.net/justloveyou_/article/details/78304294 
【2】操作系统基础知识梳理 
https://www.nowcoder.com/discuss/62723

 

原文地址:https://blog.csdn.net/BillCYJ/article/details/79039828

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值