1 ====================================
2 内存划分:
3
4 静态划分:
5 1。一旦划分完毕,分区的大小和数目将不再改变。
6 2。固定分区:当进程申请空间时,系统为之分配大小适合的分区。
7 3。分页:特殊的静态分区,页框(帧),可以为进程分配多个帧。
8
9 分页:数据结构,
10 位示图:表征页框占用情况。
11 空闲页框表:也是表征页框的使用情况。
12 空闲页框链表:
13 动态划分:
14 首次适应算法(FFA):
15 从表头开始查找,第一个适合的空闲空间。然后将该区划
16 分为两个分区:进程需要的内存大小+子分区(将被链接到空闲分区链表中)
17 优点:高地址空间保留有较大的空闲空间分区。
18 缺点:将较大的内存空间,划分为较小的内存空间。
19 可以采用“紧凑技术”解决“外零头”的问题。可能会降低系统效率。
20
21 下次适应算法(NFA):
22 记住上次分配分区的位置,下一次实施分配时,从上一次的分配位置之后开始查找
23 ,选择一个大小足够的空闲分区。
24 缺点:缺乏大分区。
25
26 最佳适应算法(BFA):
27 总是选择满足要求且长度最小的空闲分区。
28 缺点:可能会形成大量较小的外零头。
29
30 最差适应算法(WFA):
31 选择最大的适合进程需求的分区。
32 有点:避免形成大量外零头。
33
34
35 伙伴系统(Buddy System):
36 int i = 0;
37 int flag = 0;
38 while(true) {
39 i += 1;
40 if(2^(i-1) < k < 2^i)
41 break;
42 }
43 while(OS has no 2^i P){
44 i += 1;
45 ++flag;
46 }
47 for(; flag >0; --flag){
48 P /= 2;
49 }
50 k = P;
操作系统学习笔记(15) 存储管理-内存的划分
最新推荐文章于 2019-06-13 07:59:45 发布