目录
内存的基础知识
什么是内存


逻辑地址(相对地址)和物理地址(绝对地址)
程序的执行过程(编译,链接,装入)

装入的三种方式
绝对装入
一般用于单道程序
静态重定位
早期多道批处理
动态重定位
现代操作系统
链接的三种方式
静态链接

装入时动态链接

运行时动态链接
总结

内存管理的概念
需要提供的功能
-内存空间的分配与回收
-对内存空间进行扩充(实现虚拟性)
-地址转换功能(三种装入方式)
-内存保护

内存保护
方法一

方法二

总结
内存空间的扩充
-覆盖技术
-交换技术
-虚拟存储技术
覆盖技术
让不可能同时执行的程序块共享一个覆盖区(已退出舞台)

交换技术
暂时换出外存等待的进程状态为挂起状态(就绪挂起,阻塞挂起)

问题
1.应该在外存(磁盘)什么位置保存被换出的进程
2.什么时候应该交换
3.应该换出哪些进程
总结

内存空间的分配
-连续分配管理方式(连续分配指为用户进程分配的必须是一个连续的内存空间)
-单一连续分配
-固定分区分配
-动态分区分配
-非连续分配管理方式
单一连续分配

固定分区分配
固定分区分配需要实现分区说明表,来实现各个分区的分配和回收
动态分区分配
问题:
-1.用什么样的数据结构
-2.多个空闲分区都可以满足要求,应选择哪一个空闲分区
-3.如何进行分区的分配与回收操作

采用的数据结构:空闲分区表或者空闲分区链(1)
选择需按照一定的动态分区算法(2)

分配与回收按照一定的动态分区算法(3)
分配的情况:
1.
2.
回收的情况
回收时若相邻有空闲分区,则进行合并
1.
2.
3.
内部碎片和外部碎片
通过对进程的挪位,使进程1能够满足(紧凑,采用动态重定位的方式)

总结

动态分区分配算法(重点)
-首次适应算法(First Fit)
-最佳适应算法(Best Fit)
-最坏适应算法(Worst Fit)
-邻近适应算法(Next Fit)
首次适应算法

最佳适应算法
缺点:每次都选取最小的分区进行分配,会留下越来越多的,很小的,难以利用的内存块。因此这种算法所产生的外部碎片会很多

最坏适应算法
缺点:每次都选取最大的分区进行分配,虽然可以让分配后留下的空闲区更大,更可用;但是这种算法会导致较大的连续空闲区被迅速用完。如果有“大进程”进入,就没有内存空间可供分配了

邻近适应算法
总结

本文详细解析内存基础知识,涵盖内存地址、程序执行过程、装入方式、链接方式、内存管理功能、保护方法、扩充技术、空间分配算法,重点讲解动态分区分配及其算法如首次适应、最佳适应等。

1461

被折叠的 条评论
为什么被折叠?



