内存管理

内存管理

内存管理的要求

在研究各种内存管理的机制和技术时,一定要牢记内存管理所必须满足的要求:

  1. 重定位

指的是处理机硬件和操作系统软件必须能将程序代码中地址映射为程序在内存中实际的物理地址。

  1. 保护

每个进程必须内保护以免受到其他进程的干扰,未经允许进程不能对其他进程的存储区进行读写操作

  1. 共享

协同工作的多个进程需要共享同一数据结构。

  1. 逻辑组织

计算机系统中的内存组织形式是包含字或字节序列的线性或一维地址空间。

  1. 物理组织

计算机的存储器至少分2个层次:主存和辅助存储器。

程序的加载

任何操作系统的核心人物是将程序调入到主存中执行。 在多数现代多道程序系统中,完成这个人物涉及到一个名为虚拟存储器的复杂调度方案,而虚拟存储器又是建立在两个基本技术基础之上的:分段和分页。还要一种更为基本的技术:分区。

header 1 header 2 优点 缺点
固定分区 在系统生成时,内存分为若干个分区。等于或小于分区大小的进程可以调入内存 易于实现,开销少 存在内存碎片
动态分区 动态建立分区,所以分区大小与进程大小相同 无内存碎片,内存利用率较高 由于要进行压缩,处理机利用率不高
简单分页 主存分为大小相同的帧,每个进程分为同样大小的页,通过将进程中所有页调入内存空闲页,将进程调入内存,这些内存中的页可不连接 无外部碎片 少量的内部碎片
简单分段 每个进程分为若干个段,通过将进程所有的段调入内存,将进程调入内存,这些内存中的段可不连续 无内部碎片 需要压缩
虚拟内存分页 除了不需将近所有页都调入内存外,其余与分页相同,不在内存中的页当需要时自动调入 无外部碎片,可容纳更多进程,虚拟内存空间大 复杂的内存,管理导致开销大
虚拟内存分段 除了不需将进程所有段调入内存外其余与分段相同,不在内存中的段当需要时自动调入 无内部碎片,可容纳更多进程,虚拟内存空间大,支持保护和功效共享 复杂的内存,管理导致开销大

分页

分页就是将内存分成多个同样大小的存储区,每个进程页分成同样大小的页,较小的进程需要较少的页,较大的进程需要较多的页,进程在调入内存时,所有的进程页放入内存中空闲页,并建立页表。这种方法解决了分区方案中所固有的许多问题。

局部性和虚拟内存

颠簸:处理器把大部分时间花在调入调出近的片段上而不是执行用户的指令上

本质上,OS都是根据最近的历史来预测在较近的将来最不可能用到的那些片段。

局部性原理指的是:一个进程的程序和数据访问都有聚集成群的倾向。因此,关于在一个短的时间内,只需要进程的几个片段的假设是合理的,同样,页可以智能的预测在较短的将来会用到哪些片段。从而可以避免颠簸。

而局部性原理意味着虚拟内存是可行的。可行且有效的虚拟内存需要两个部件。一个是支持分页或/和分段的硬件。另一个是OS必须包括相应的软件,这些软件能管理主存和辅助存储器之间页和/ 和段的移动。

操作系统软件

操作系统的内存管理部分的设计取决于对下面几个方面的选择:

  1. 是否运用虚拟存储技术。
  2. 运用分页,分段还是组合使用
  3. 内存管理的不同方面使用什么样的算法。

小结

为了有效使用处理机和I/O设备,在主存中保留尽可能多的进程显然是有益的。另外,让程序员不受大小的约束也是可取的,其基本技术是分页和分段。

达到上面两点的方法是使用虚拟内存。在虚拟内存,所有引用的地址都是逻辑地址,在执行时转换为物理地址。使用虚拟内存可以让进程存放于主存的任何位置并可以不时改变。虚拟内存还可以让程序分为一些片段,在执行时,这些片段不需要连续的存放于主存中,甚至不需要进程的所有片段都在主存中。

可以提供虚拟内存的基本方法是:分段和分页。运用分页,每一个进程被分成相对较小的,大小固定的页,分段则可以使用大小可变的片段。当然也可以在一个内存管理的设计中组合使用分段和分页技术。

虚拟内存管理需要硬件和软件的支持,处理机可以提供硬件支持,这种支持包括虚拟地址到物理地址的动态转换,当所引用的页或段不在主存中时产生一个中断。这个中断可以激活OS中的内存管理软件。

和OS对内存管理相关的几个设计问题是:

  1. 装入策略。进程的页可以根据请求调入或使用预分页,后者可以同时调入一些页,成批的执行输入动作。
  2. 分配策略。在纯分段的系统中,将要调入主存的段必须能适合主存的空闲空间。
  3. 替换策略。当内存被占满时,必须决定哪一个页或哪些页被替换掉。
  4. 常驻集管理。当一个进程替换时,OS必须决定分配多大的主存给他。它可以在进程创建时静态分配,也可动态分配。
  5. 清除策略。修改过的进程可以在替换时写出,或使用预清除策略。后者成批或成蔟的执行输出动作。
  6. 加载控制。这是在任一给定时间,决定主存中驻留多少进程。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • 前段时间看了进程管理,觉得对编程简直大有裨益,至少对于多线程编程方面,对系统的进程管理有了非常深刻的理解,看来还是...
    KevinCool阅读 1,131评论 0 1
  • >计算机系统中有几类存储设备:cache、内存、外存。cache的存取速度最高,可以和CPU匹配,因此其代价最高,...
    一生信仰阅读 1,127评论 0 0
  • 继续来学习内存管理之虚拟内存管理 传统存储管理方式同时将多个进程保存在内存中以便允许多道程序设计。 一次性作业必须...
    KevinCool阅读 1,585评论 0 1
  • 内存是计算机很重要的一个资源,因为程序只有被加载到内存中才可以运行;此外,CPU所需要的指令与数据也都是来自内存的...
    哆啦Aa有梦阅读 2,434评论 0 1
  • 计算机系统 - 目录前面两篇中介绍了进程并行和死锁(死锁一章的内容写完时也觉得比较水,个人也不太满意),通常进程本...
    SniperPan阅读 1,410评论 2 11