第四章 存储器管理

4.1 存储器的层次结构

存储层次示意图:

可执行存储器:

寄存器和主存成为可执行存储器。执行速度极快,可以在少数时钟周期执行load或者store对存储器进行访问。但是辅存涉及到中断、设备驱动器以及物理设备的影响,所以速度要慢很多,至少比可执行存储器慢3个数量级。

主存储器:

保存程序运行的程序和数据。但是主存储器的速度比处理机的速度慢很多,所以引入了寄存器

寄存器:

与处理机有相同的速度,可以协调处理机的工作。主要用于存储处理机运行时的数据,如用于存放操作数、或用于地址转换器加快地址转换速度等

4.2 程序的装入和链接

程序要在系统中运行,需要:编译-》链接-》装入

装入:绝对装入、可重定位装入、动态运行时的装入

链接:静态链接、装入时动态链接、运行时动态链接

4.3 连续分配的管理方式

单一连续分配

固定分区分配:如果执行相同对象的程序还是可取的


动态分区分配

分区分配操作:

分配内存、回收内存

4.4动态分区分配算法

4.4.1基于顺序的分配算法


--首次适应算法,将地址空闲分区链以地址递增的顺序排列,每次分配的时候都是从低地址查找。这种方式效率低,并且会导致低地址行程许多难以利用的空间碎片

--循环首次适应算法,不再是每次都从低地址查找,二十从上次查找的地方开始查找,如果找到链的结尾还是没有找到则从空闲链表的首地址开始查找。该算法会是地址空间利用更贱均匀,效率更高,但是大空间可能不足

--最佳适应算法,空闲链表将所有空闲地址空间按照大小的顺序从小到大排列,每次分配的时候都是按照满足条件的最小分区进行分配。对单次分配来看是最佳的,但是宏观来看可能回产生很多无法利用的碎片空间

--最坏适应算法,与最佳适应算法刚好相反。空闲链表将所有空闲地址空间按照大小的顺序从小到大排列,每次分配的时候都是按照最大分区进行分配

4.4.2基于索引的动态分配算法


--快速适应算法:将空闲分区按照大小进行分类

--伙伴算法:无论是已分配还是未分配,内存的大小是2的k的方,将空闲分区按照大小进行分类。分配内存时,需要先计算K值,然后查找空闲分区链表中大小为2的k次,2的(K+1)次,直至找到为止。同样,内存回收,也会按照此规则合并

4.4.3动态可重定位分区分配

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 存储器的层次结构‘ 多层结构的存储器系统 存储器的多层结构。 存储层次至少应具有三级:最高层为 CPU 寄存器,中...
    傻傻傻瓜_d432阅读 947评论 0 0
  • 前提:认识各种存储部件 寄存器、内存、磁盘、高速缓存、磁盘缓存 主存:保存进程运行时的程序和数据 寄存器:速度最快...
    一萌新一阅读 1,142评论 0 0
  • 第四章 存储器管理 一、单项选择题 1、存储管理的目的是( C )。 A.方便用户 B.提高内存利用率 C.方便用...
    黄一倚阅读 7,685评论 1 0
  • 4.1程序的装入和链接 1、创建进程的第一件事:将程序和数据装入内存。 2、程序的装入和链接 1)编译 2)链接 ...
    6d9fe196fd45阅读 252评论 0 0
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 9,282评论 0 4

友情链接更多精彩内容