标签:图片 cpu 说明 优点 原则 不能 位置 特点 释放
把内存分为若干个区给用户使用
定义:用户区不分区,完全被一个程序占用。例如:DOS
优点:简单,不需要复杂硬件支持,适于单用户单任务OS
缺点:
定义:
分类:
把内存固定地分为若干大小不等的分区供各个程序使用。每个分区大小和位置固定,系统运行期间不再重新划分。
分区表:记录分区位置、大小和使用标志
区号 | 大小 | 起址 | 标志 |
---|---|---|---|
1 | 16K | 20K | 未占用 |
2 | 32K | 36K | 未占用 |
3 | 64K | 68K | 未占用 |
4 | 128K | 132K | 未占用 |
3个程序被占用
区号 | 大小 | 起址 | 标志 |
---|---|---|---|
1 | 16K | 20K | 已分配 |
2 | 32K | 36K | 已分配 |
3 | 64K | 68K | 已分配 |
4 | 128K | 132K | 未占用 |
例:IBM的OS/360采用了固定分区的方法,适合具有固定任务数的多道程序系统
在程序装入前,内存已被分区,不再改变
每个分区大小可能不同,以适应不同大小的程序
系统维护分区表,说明分区大小、地址和使用标志
定义:在程序装入时创建分区,使分区大小刚好与程序大小相等。解决固定分区浪费内存和大程序不能运行的问题。
特点:分区动态建立
分区的个数和大小均可变动;
存在内存碎片
空闲区表:描述内存空闲区的位置和大小的数据结构
空闲区表
位置 | 大小 |
---|---|
30K | 20K |
66K | 24K |
120K | 8K |
从空闲区表中的第一个区开始,寻找≥SIZE的空闲区;
找到后从分区中分割出大小为SIZE的部分分配给用户使用;
分割后的剩余部分作为空闲区仍然登记在空闲区表中。
注意:分割空闲区时一般从底部分割
空闲区表按首地址递增排序
尽可能得先利用低地址空间,保证高地址空间有较大空闲区
当大程序需要较大分区时,满足的可能性较大;
位置 | 大小 |
---|---|
120K | 8K |
30K | 20K |
66K | 24K |
空闲区按大小递增排序
位置 | 大小 |
---|---|
66K | 24K |
30K | 20K |
120K | 8K |
空闲区按大小递减排序
回收程序结束后所释放的分区(释放区),将其适当处理后登记到空闲区表中,以便再分配
在较小的内存空间中运行较大的程序
常驻区:被某段单独且固定地占用,可划分多个;
覆盖区:能被多段重复共用的区域,可划分多个;
分割内存区时,若剩余部分小于门限值,则此空闲区不进行分割,而是全部分配给用户。
将所有空闲区集中一起构成一个大的空闲区
拼接的时机
缺点
把程序分拆多个部分装入不同分区,充分利用碎片
标签:图片 cpu 说明 优点 原则 不能 位置 特点 释放
原文地址:https://www.cnblogs.com/iamfatotaku/p/12748711.html