主記憶體:配置、連結與分段
最差適配(worst-fit)
想像你總是從架上最大的那捲布裁剪,理論是剩下的那塊仍會大到日後對別人有用。最差適配就是這個唱反調的想法:在所有夠大的空洞中,挑最大的那個——與最佳適配恰恰相反。
具體來說,當一個大小為 S 的行程到來時,最差適配掃描空閒清單以找出最大的空洞,從中配置 S 個位元組,把餘下的部分留作空洞。其理由是:從最大的空洞配置,會留下盡可能大的剩餘,比較可能仍對未來的行程有用——而不是像最佳適配那樣產生微小且無法使用的小片。所以它刻意把配置分散到那些大空洞上。
為什麼重要:最差適配大多只具理論與教學意義。在模擬中,它在速度(它必須掃描整張清單,像最佳適配一樣)與記憶體使用上都是三者中最差的,因為它很快就消耗掉大行程所需的大空洞,到處留下中等大小的空洞。把它與最先適配、最佳適配並列研究,讓真正的教訓清楚浮現:沒有任何連續配置策略能戰勝外部碎裂——它們只是用不同方式重新分配被浪費的空間。
空洞:50 KB、200 KB、120 KB。一個 100 KB 的請求挑出 200 KB 的空洞(最大的),留下一個 100 KB 的空洞。不久一個 150 KB 的行程到來——但大空洞已不在,所以即使總空閒記憶體充足,它也無法被放置。
先吃掉最大的空洞,就沒有任何夠大的空間留給大行程。
最差適配在真實系統中很少使用;研究它主要是為了說明那些顯而易見的策略都無法解決碎裂,這才是更深層的重點。它的名字和最佳適配一樣,描述的是它的規則,不見得是它的排名。
又称
另见