# [2022q1](http://wiki.csie.ncku.edu.tw/sysprog/schedule) 第 11 週測驗題 ###### tags: `linux2022` :::info 目的: 檢驗學員對 **[並行和多執行緒程式設計](https://hackmd.io/@sysprog/concurrency)** 的認知 ::: 作答表單: * ==[測驗 `1`](https://docs.google.com/forms/d/e/1FAIpQLScXHrH6hZ6XIJFbQ_knjA9BgkZx2-jbue4PU8bBfVsKN5jOaQ/viewform)== (Linux 核心設計) * ==[測驗 `2`](https://docs.google.com/forms/d/e/1FAIpQLSeqEXwJ4hBCD6fNm6wTLyCjrv5ShTH2_vvPoRRxjB8Gu-aTiw/viewform)== (Linux 核心實作) ### 測驗 `1` 我們嘗試改寫[第 9 週測驗題](https://hackmd.io/@sysprog/linux2022-quiz9)的第二題,使其更精簡,程式碼可見 [gist](https://gist.github.com/jserv/f0167ae3cc61a31c644ac7dbc4d22a22) (部分遮蔽),參考執行輸出: ``` 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](https://en.wikipedia.org/wiki/ABA_problem)。請補完程式碼,使其運作符合預期。作答規範: * `PPPP` 為表示式,請以最精簡的 C11 程式碼撰寫,不包含小括號 (即 `(` 和 `)`) * 依據指定程式碼風格撰寫 --- ### 測驗 `2` 在[第 6 週測驗題](https://hackmd.io/@sysprog/linux2022-quiz6)提及論文〈[Lock-Free Linked Lists and Skip Lists](http://www.cse.yorku.ca/~ruppert/papers/lfll.pdf)〉,以下程式碼嘗試實作 non-blocking singly-linked list,參見 [gist](https://gist.github.com/jserv/1532f87510ba75204edcfecd5efafa83),已知測試程式碼不會遇到任何 assert 錯誤。 請補完程式碼,使其運作符合預期。作答規範: * `XXXX` 為表示式,請以最精簡的 C11 程式碼撰寫,不包含小括號 (即 `(` 和 `)`) * 依據指定程式碼風格撰寫
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.