我正在阅读操作系统概念要点第 8 版。当作者检查连续内存分配和最差拟合时,作者声明“分配最大的孔。同样,我们必须搜索整个列表,除非它按大小排序。这种策略会产生最大的剩余孔,这可能比最合适的方法留下的更小的剩余孔。”
所以我的问题是,什么时候留下最大的剩余洞是更好的方法?
我正在阅读操作系统概念要点第 8 版。当作者检查连续内存分配和最差拟合时,作者声明“分配最大的孔。同样,我们必须搜索整个列表,除非它按大小排序。这种策略会产生最大的剩余孔,这可能比最合适的方法留下的更小的剩余孔。”
所以我的问题是,什么时候留下最大的剩余洞是更好的方法?
如果提交的所有流程的大小都差不多,那么留下最大的剩余漏洞可能是一种更好的方法。
在这种情况下,如果你有一个大的空闲块(比如 50MB)并且大多数提交的进程往往小于那个(比如 10MB),实际上最好把它们放在这个大块中,这样你就可以使用剩余空间更好,而不是将它们放在一个稍微大一点的块(可能是 11-15MB)中,这样会留下一些小的不可用空间。
我不知道它是否真的在任何地方使用过。
阅读(和玩)这个:http ://research.cs.vt.edu/AVresearch/MMtutorial/WorstFit.php