首先是參考書上第598-602頁**,但是照搬書上的**只有六十多分(預設的也有七十多)。
注意到書上p594頁說,下一次適配很可能比首次適配記憶體利用率高,尤其是當鍊錶前面布滿了許多小碎片的時候,但在有些情況下,下一次適配不及首次適配,書上的**採用的是首次適配,因此嘗試下一次適配。
兩者最大的差別就在於find_fit函式,首先給出書上的首次適配函式:
//首次適配,書本p619答案
static
void
*find_fit
(size_t size)
}return
null
;}
static
char
*pre_listp;
這樣就可以重寫find_fit函式了:
//下一次適配
static
void
*find_fit
(size_t asize)
bp = heap_listp;
//如果後面沒找到,可能在前面
while
(bp != pre_listp)
return
null
;}
這樣測試出來能有80多分,當然,最佳適配理論上比前兩者都好,但事實上只有七十多分,還不如下一次適配,不知道什麼原因,有沒有大佬告訴一下。
static
void
*find_fit
(size_t asize)}if
(flag)
return ans;
return
null
;}
shelllab的一些思路
首先是eval函式 void eval char cmdline if bg addjob jobs,pid,fg,cmdline else addjob jobs,pid,bg,cmdline sigprocmask sig unblock,mask,null 如果不阻塞sigchld訊號,可能會...
一些設計思路
智慧型裝置 1.s2c 介面,在 裡新增 system cmd 然後就可以進行伺服器遠端除錯啦。這樣做可以縮短終端裝置開發時間 智慧型裝置往往要求是終端提供穩定可靠的介面給伺服器統一呼叫,因為終端公升級太麻煩啦 2.同樣的需要,終端功能夠強壯,伺服器進行控制。尤其是前期,強制公升級很需要 3.昨天討...
C 的一些基本的思路
本博文為侯捷老師c 物件導向高階開發的課程筆記 一種基本的概念是我們學習c 不止要學習他們的語言,還要學習c 的標準庫 c和c 的不同 c語言在這設計程式的時候會準備一些資料和函式,根據資料的型別建立除一些變數,函式來處理這些變數,由於語言沒有提供足夠的關鍵字,所以這些資料一定是全域性的,這樣對程式...