Try   HackMD

2022q1 第 11 週測驗題

tags: linux2022

目的: 檢驗學員對 並行和多執行緒程式設計 的認知

作答表單:

測驗 1

我們嘗試改寫第 9 週測驗題的第二題,使其更精簡,程式碼可見 gist (部分遮蔽),參考執行輸出:

TEST: test_null()
TEST: test_not_aligned()
TEST: test_init_ok()
TEST: test_enqueue()
TEST: test_dequeue()
TEST: test_empty()
TEST: test_full()

程式回傳值是 0。注意實作應該要能處理 ABA Problem。請補完程式碼,使其運作符合預期。作答規範:

  • PPPP 為表示式,請以最精簡的 C11 程式碼撰寫,不包含小括號 (即 ())
  • 依據指定程式碼風格撰寫

測驗 2

第 6 週測驗題提及論文〈Lock-Free Linked Lists and Skip Lists〉,以下程式碼嘗試實作 non-blocking singly-linked list,參見 gist,已知測試程式碼不會遇到任何 assert 錯誤。

請補完程式碼,使其運作符合預期。作答規範:

  • XXXX 為表示式,請以最精簡的 C11 程式碼撰寫,不包含小括號 (即 ())
  • 依據指定程式碼風格撰寫