首页 > 其他 > 详细

操作系统--内存管理

时间:2017-03-31 18:43:26      阅读:199      评论:0      收藏:0      [点我收藏+]

内存管理:

  1. 单一分区分配:

    用于单用户、单任务的操作系统,主存被分为两部分:驻留操作系统(内存低端)、用户进程(内存高端)

  2. 多分区分配:

    满足多道程序的最简单的存储管理方案,将内存划分成若干个连续区域,称为分区;每个分区只能存储一个程序,并且程序也只能在它所驻留的分区中运行

    分区方法分为固定分区和动态分区,分区分配算法:First-Fit、Best-Fit、Worst-Fit、Next-Fit

    这种分配策略会同时存在外部碎片和内部碎片,可通过紧缩减少碎片

  3. 页式内存管理:

    允许进程的物理地址空间可以是不连续的

    逻辑地址空间中划分为页(数据块),物理地址空间划分为页帧,从逻辑地址映射到物理地址空间使用页表

    因此,每一次的数据/指令访问需要两次内存访问,可使用快表(TLB),使访问降到一次

    页表:分级页表、哈希页表、反向页表

    这种分配策略会同时存在外部碎片和内部碎片

  4. 段式内存管理:

    允许进程的物理地址空间可以是不连续的

    适应用户的角度,使用段表映射地址

    由于段的长度可变(区别于页),所以就面临动态分配问题,同样使用First-Fit、Best-Fit、Worst-Fit、Next-Fit算法

    这种分配策略只会存在外部碎片

  5. 段页式内存管理:

    先段式后页式,Linux就是这样,一个程序先被划分为若干程序段,对每一分段又分成若干个固定大小的页

虚拟存储管理:

  通过换入换出页(段),使得进程的逻辑空间比实际占有的内存空间大得多,从而使得内存中可以驻留更多的进程(用户)

  但总的虚拟地址空间不大于物理内存和外存交换区容量之和

  1. 如何知道一个进程的某个页面在不在内存?

    页表项有一个有效-无效位,1表示在内存,0表示不在内存

  2. 发现某个页面不存在之后,有什么响应?

    产生缺页中断,要求熟悉缺页中断之后的响应流程(页面置换过程)

  3. 如果发生缺页,但此时内存中无空闲块,此时将哪个页面换出?(页面置换算法)

    这个页面置换算法要求缺页中断的次数尽可能的小

    1. FIFO算法(先来先出):容易导致Belady现象,即内存中分配的页帧越多,缺页中断的次数反而增加

    2.Optimal算法:选择未来不再使用的,在离当前最远位置上出现的页面被置换

操作系统--内存管理

原文:http://www.cnblogs.com/qjjazry/p/6652822.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!