换了本书
在线版本是这个
http://pages.cs.wisc.edu/~remzi/OSTEP/pages.cs.wisc.edu国内中文版也有翻译
操作系统导论 (豆瓣)book.douban.com![727a5e04471e4477db931f0bec1d411f.png](https://i-blog.csdnimg.cn/blog_migrate/a9f31e7ce317df77ed4142a320e9e5c9.jpeg)
先从这里开始更新,之后补前面的吧
这里是17节
Free-Space Management
当使用Fragmentation来管理内存的时候,面临External Fragmentation的问题:也许有空闲空间,但是由于过于分散无法被使用。
![014a506f5a18d7d3bff2bcb473c30fe0.png](https://i-blog.csdnimg.cn/blog_migrate/9d331c1f916f92459e0b072a52527544.png)
我们给出如下假设:
使用简单的接口,例如malloc()和free()来管理内存空间。
只传递一个指针怎么知道整块内存的大小呢?
简单起见这里先不考虑Internal Fragmentation,即Allocator分配了过多的空间,这也是一种浪费。
我们还假设一旦内存被分配给Client,部内重定位。
我们还假设Allocator管理连续的空间,且大小不变。