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)次,直至找到为止。同样,内存回收,也会按照此规则合并