直接问操作系统要就好啦
MAP_ANONYMOUS
申请,想多少就有多少反而,操作系统
Specification 很简单 (同 Lab1)
$$ M = \big\{ [\ell_0, r_0), [\ell_1, r_1), \ldots, [\ell_n, r_n) \big\}$$
多线程安全
Premature optimization is the root of all evil.
——D. E. Knuth
重要的事情说三遍:
然后,去哪里找 workload?
在实际系统中,我们通常不考虑 adversarial 的 worst case。
malloc
, Fast and Slow设置两套系统:
人类也是这样的系统
malloc
: Fast Path 设计不要在乎一点小的浪费
分配: Segregated List (Slab)
回收
Buddy system (1963)
你只需要一个数据结构解决问题
以上就是所有现代 malloc/free 实现的基础