目的: 檢驗學員對 《Demystifying the Linux CPU Scheduler》 和 並行和多執行緒程式設計 的認知
作答表單:
1
〈UNIX 作業系統 fork/exec 系統呼叫的前世今生〉提到 clone 系統呼叫,搭配閱讀〈Implementing a Thread Library on Linux〉,以下嘗試撰寫一套使用者層級的執行緒函式庫,程式碼可見: readers.c
預期執行輸出: (順序可能會變異)
請補完程式碼,使其符合預期。作答規範:
EXP1
和 EXP2
皆為表示式,應以符合一致程式碼風格的 C99 程式撰寫EXP1
和 EXP2
都不包含小括號 (即 (
和 )
) 或 ;
和 ,
這樣的分隔符號延伸問題:
2
在〈並行和多執行緒程式設計〉講座中,談及 lock-free 程式設計。我們延展第 5 週測驗題裡頭的 hazard pointer,考慮一個 lock-free hash table 實作,程式碼可見 gist,請補完程式碼,使其運作符合預期。參考執行輸出:
作答規範:
KKKK
, QQQQ
和 ZZZZ
皆為表示式,應以符合一致程式碼風格的 C99 程式撰寫KKKK
, QQQQ
和 ZZZZ
都不包含小括號 (即 (
和 )
) 或 ;
和 ,
這樣的分隔符號作答區
延伸問題: