本章讲述的是如何对内存进行分配与回收
连续分配:分配一片的内存地址
非连续分配:分配可以是不在同一片内存
单一连续分配
内存:系统区和用户区
只能有一道用户程序,用户程序独占整个用户区
优点:实现简单,没有外部碎片
缺点:只适合单用户,但任务
特点:可以不设置内存保护,有内部碎片
内部碎片:给程序分配的地址,用不完
利用率低
固定分区分配
- 将整个用户空间划分为若干个固定大小的分区,每个分区只装入一道作业
- 固定分区分配
- 分区大小相等
- 分区大小不等,但固定,可以灵活划分
- 建立分区说明表
- 说明各个分区的状态
- 缺点
- 会产生内部碎片(给你你用不完)
- 当用户程序过大,需要采用覆盖技术才能解决
动态分区分配
不会预先划分内存分区,根据进程的大小动态地建立分区
几个问题
-
系统需要怎样的数据结构来记录内存使用情况?
-
如果有多个空间分区,如何进程分配呢?
-
如何进程分区的分配与回收
-
使用空闲分区表和空闲分区链来记录空闲分区的情况
-
使用四种动态分区分配算法
-
当回收的时候,有空闲的分区要进行合并操作
动态分区没有内部碎片,有外部碎片
内部碎片:给进程分配的没用完,浪费
外部碎片:太多离散的小碎片,用不上