操作系统——存储管理——存储管理功能、分区存储管理
第五章 存储管理
第一节 存储管理功能
1.存储管理的主要功能
(1)内存的分配与回收
(2)地址变换
(3)内存共享与保护
(4)虚拟存储器
2.什么是虚拟存储器
在具有层次结构存储器的计算机系统中,采用自动实现部分装入和部分对换功能,为用户提供一个比物理主存容量大得多的,可寻址的一种“主存储器”。
- 地址重定位
又称“地址变换”
实现地址重定位或地址映射的方法有两种:静态地址重定位和动态地址重定位。
动态地址重定位是在作业的执行过程中进行的。
静态地址重定位是在作业的装入过程中进行的。
4.内存信息保护方法
常用的内存信息保护方法有硬件法、软件法和软硬件结合法3种。
(1)上下界保护法是一种常用的硬件保护法。
(2)保护键法也是一种常用的存储保护法。保护键法为每一个被保护存储块分配一个单独的保护键。在程序状态字中则设置相应的保护键开关字,对不同的进程赋予不同的开关代码与被保护的存储块中的保护键匹配。
(3)界限寄存器与CPU的用户态或核心态工作方式相结合的保护方式也是一种常用的内存保护方式。
第二节 分区存储管理
按分区的时机,分区管理可以分为固定分区和动态分区(可变分区)。、
5.2.2分区的分配与回收——动态分区时的分配与回收
动态分区时的分配方法从可用表或自由链中寻找空闲区的常用方法有三种:
(1)最先适应法(first fit algorithm)
要求可用表或自由链按起始地址递增的次序排列。
(2)最佳适应法(best fit algorithm)
要求从小到大的次序组成空闲区可用表或自由链。
(3)最坏适应法(worst fit algorithm)
要求空闲区按其大小递减的顺序组成空闲区可用表或自由链。
5.2.2分区的分配与与回收——动态分区时的回收与拼接
在将一个新可用区插入可用表或队列时,该空闲区和上下相邻区的关系是下述4种关系之一:
(1)该空闲区的上下两相邻分区都是空闲区;
(2)该空闲区的上相邻区是空闲区;
(3)该空闲区的下相邻区是空闲区;
(4)两相邻区都不是空闲区。

对于上述四种情况的处理:
a.如果释放区与上下两空闲区相邻,则将三个空闲区合并为一个空闲区。新空闲区的起始地址为上空闲区的起始地址,大小为三个空闲区之和。空闲区合并后,取消可用表或自由链中下空闲区的表目项或链指针,修改上空闲区的对应项。(表项减1)
b.如果释放区只与上空闲区相邻,则将释放区与上空闲区合并为一个空闲区,其起始地址为上空闲区的起始地址,大小为上空闲区与释放区之和。合并后,修改上空闲区对应的可用表的表目项或自由链指针。(表项不变,起始地址不变)
c.如果释放区与下空闲区相邻,则将释放区与下空闲区合并,并将释放区的起始地址作为合并区的起始地址。合并区的长度为释放区与下空闲区之和。同理,合并后修改可用表或自由链中相应的表目项或链指针。(表项不变,起始地址和长度变化)
d.如果释放区不与任何空闲区相邻,则释放区作为一个新可用区插入可用表或自由链。
(表项加1)
例题:
- 用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为32KB,10KB,5KB,228KB,100KB现有五个作业J1,J2,J3,J4,J5.它们各需要1KB,10KB,108KB,28KB,115KB若采用最先适应分配算法、最佳适应算法、最坏适应算法,试问能把这五个作业按J1-J5的次序全部装入内存吗,你认为按怎样的次序装入这五个作业可使主存空间利用率最高。
答:
(1)
最先适应分配算法
|
初始空闲分区状态 |
J1进入后空闲分区的状态进入后空闲分区的状态 |
J2进入后空闲分区的状态进入后空闲分区的状态 |
J3进入后空闲分区的状态进入后空闲分区的状态 |
J4进入后空闲分区的状态进入后空闲分区的状态 |
没有满足J5运行条件的空闲分区J5运行条件的空闲分区 |
|
32KB |
31KB |
21KB |
21KB |
21KB |
|
|
10KB |
10KB |
10KB |
10KB |
10KB |
|
|
5KB |
5KB |
5KB |
5KB |
5KB |
|
|
228KB |
228KB |
228KB |
120KB |
92KB |
|
|
100KB |
100KB |
100KB |
100KB |
100KB |
|
(2)
最佳适应分配算法
|
初始空闲分区状态 |
J1进入后空闲分区的状态进入后空闲分区的状态 |
J2进入后空闲分区的状态进入后空闲分区的状态 |
J3进入后空闲分区的状态进入后空闲分区的状态 |
J4进入后空闲分区的状态进入后空闲分区的状态 |
J5运行条件的空闲分区J5运行条件的空闲分区 |
排序后 |
|
5KB |
4KB |
4KB |
4KB |
4KB |
4KB |
4KB |
|
10KB |
10KB |
0KB |
0KB |
0KB |
0KB |
4KB |
|
32KB |
32KB |
32KB |
32KB |
4KB |
4KB |
5KB |
|
100KB |
100KB |
100KB |
100KB |
100KB |
100KB |
100KB |
|
228KB |
228KB |
228KB |
120KB |
120KB |
5KB |
|
(3)
最坏适应分配算法
|
初始空闲分区状态 |
J1进入后空闲分区的状态进入后空闲分区的状态 |
J2进入后空闲分区的状态进入后空闲分区的状态 |
J3进入后空闲分区的状态进入后空闲分区的状态 |
J4进入后空闲分区的状态进入后空闲分区的状态 |
排序后 |
没有满足J5运行条件的空闲分区J5运行条件的空闲分区 |
|
228KB |
227KB |
217KB |
109KB |
81KB |
100KB |
|
|
100KB |
100KB |
100KB |
100KB |
100KB |
81KB |
|
|
32KB |
32KB |
32KB |
32KB |
32KB |
32KB |
|
|
10KB |
10KB |
10KB |
10KB |
10KB |
10KB |
|
|
5KB |
5KB |
5KB |
5KB |
5KB |
5KB |
|

浙公网安备 33010602011771号