加载程序运行
第一步:OS加载程序运行

malloc函数调用
第二步:程序发出malloc函数调用,且Lib库有空闲空间

内核分配内存空间
第二步:程序发出malloc函数调用,且Lib库无空闲空间

小结
- 连续内存分配
- 静态分配、动态分配(最先、最佳、最差)
- 分配算法实例:伙伴系统
- 非连续内存分配



http://en.wikipedia.org/wiki/Buddy_memory_allocation
---
##### 课后练习
//算法不对
用C或Rust语言实现如下的改进伙伴系统。([已有参考实现](https://github.com/scPointer/advanced_buddy_system))
修改伙伴系统分配操作:
- 由小到大在空闲块中找最小可用块
- 如空闲块大于申请块的二倍,对可用空闲块进行二等分,直到得到合适可用空闲块
- 如空闲块大于申请块的4/3,对可用空闲块进行四等分,直到得到合适可用空闲块
分析“改进伙伴系统”的存储利用率和分配释放开销。
- 64位计算机系统中,如果每页1024字节,那么一个页表的大小会是多少?