第八章: 内存管理

进程使用内从内存的界定

  • 一个进程使用的地址范围 基地址寄存器 和 界限地址寄存器 决定
  • 基地址是开始位置 界限地址寄存器是偏移量

内存空间划定意义

  • 避免系统区域被用户程序修改
  • 确保用户进程不被其他进程访问

地址绑定

  • 地址绑定
    是进程内内存到物理实际内存的映射
  • 物理地址可以直接寻址
  • 地址绑定是逻辑地址到物理地址的映射
    源程序中的地址 -> 可重定位地址-> 绝对地址
  • 3种情况
    编译时就知道进程在内存中的地址
    加载时进行 编译器生成可重定位代码后
    运行时进行 进程可以从一个内存段移到另一个内存段,犹如动态链接库

LINUX内存文件

  • 6列 地址范围 权限 偏移量 设备 节点 路径

动态加载

  • 优点
    不使用的程序不会加载到内存
    适合操作大量不常发生的事件
    不需要操作系统特别支持,由程序员设计
  • 本质是,进程运行时载入了一段别的代码,用于使用

交换 本质是主存进程的交换

  • 交换到快速磁盘
  • 换出再换入时调入哪个内存的算法
    编译时决定 加载时决定 运行时决定

内存分配 实际上是进程放在内存的哪里比较好

连续分配

  • 多分区方法 多个固定大小分区 分区大小相同 分区大小不同
  • 可变分区方法 内存记录已用未用内存,就是实验4内容

不连续分配

  • 分页 进程块为页 内存块为帧
  • 一个进程分的内存块可以不是连续的
  • 一个进程持有一个页表

页表

  1. 页表的地址变换
    页号:页表基地址 与 页偏移:与页表基地址形成帧号
  2. 页表的实现 可用专用寄存器 或 载入内存 来实现
  3. 页表载入内存的问题
    为了访问数据需要两次访问内存
    第一次为了获取页表信息
    第二次为了使用页表信息访问数据
  4. 地址转换旁观缓冲
    使用高速缓冲区存放页表
    访问数据只需要访问一次
  5. 在分页环境下实现内存保护 使用保护位
    页表的长度是固定的,如果有程序不需要用到所有的页表的话,必定有尾部几块的页表是无效的,所以要避免进程访问不属于它自己的数据
  6. 分页优点
    使用共享页表实现代码共享
  7. 页表结构
    层次页表
    避免进程同一时间持有的页表过于庞大,层次页表的本质是 按需读区某一小段的页表,使其他页表强制失效
    多级页表示意图

哈希结构
逻辑地址的定义为:虚拟页码 + 偏移量
哈希页表每一条目是链表,链着 虚拟页码,此页对应的帧号,下一个元素指针
通过进程页号转移到哈希表中 -> 找到对应的帧号 -> 用帧号与页偏移形成物理地址
反向页表
不是重点,不做赘述

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容

  • 前段时间看了进程管理,觉得对编程简直大有裨益,至少对于多线程编程方面,对系统的进程管理有了非常深刻的理解,看来还是...
    KevinCool阅读 1,151评论 0 1
  • 存储器的层次结构‘ 多层结构的存储器系统 存储器的多层结构。 存储层次至少应具有三级:最高层为 CPU 寄存器,中...
    傻傻傻瓜_d432阅读 858评论 0 0
  • 物理内存管理为程序运行提供服务。程序驻留在外存,并使用逻辑地址。 逻辑内存管理的核心工作:逻辑地址空间到物理空间的...
    minlover阅读 3,166评论 1 4
  • 内存管理的基本思想 每个进程都拥有自己的地址空间( Address space),包括这个进程可以使用的全部地址和...
    夏威夷的芒果阅读 1,878评论 0 1
  • 非连续分配允许一个程序分散地装入到不相邻的内存分区中,根据分区的大小是否固定分为分页存储管理方式和分段存储管理方式...
    saviochen阅读 1,971评论 0 4