--- tags: linux2022 --- # 2022q1 Homework5 (quiz5) contributed by < `hsuedw` > * [作業需求](https://xxxx) * [測驗題目](https://hackmd.io/@sysprog/linux2022-quiz5) * [作業繳交區](https://) * Due Date: --- # 測驗 1 回文質數 ## 題目 [題目描述](https://hackmd.io/@sysprog/linux2022-quiz5#%E6%B8%AC%E9%A9%97-1) ## 作答 * `EXP1`: `__builtin_ctzll(quad)` * `EXP2`: `~(1ULL << i)` ## 延伸問題 1. 解釋上述程式碼運作原理,指出可改進之處並實作 (是否有必要先將數值轉成字串?用十進位的角度處理運算是否產生額外的計算負擔?) * 解釋上述程式碼運作原理 * 指出可改進之處並實作 ## 延伸問題 2. Linux 核心原始程式碼 [lib/math/prime_numbers.c](https://github.com/torvalds/linux/blob/master/lib/math/prime_numbers.c) 有類似的程式碼,請解釋其作用、裡頭 [RCU](https://hackmd.io/@sysprog/linux-rcu) 的使用情境,及針對執行時間的改進 --- # 測驗 2 hazard pointer ## 題目 [題目描述](https://hackmd.io/@sysprog/linux2022-quiz5#%E6%B8%AC%E9%A9%97-2) ## 作答 * `EXP3`: `list_remove(&dom->retired, ptr)` * `EXP4`: `list_remove(&dom->retired, ptr)` --- # 答案卷: [2022 年 Linux 核心實作第 5 週隨堂測驗 (A)](https://docs.google.com/forms/d/e/1FAIpQLSf2uxh_DtSYRfIvgEzuQtsBeM4FDT_cZVf-yV5Y4PGngdr3Ag/viewscore?viewscore=AE0zAgDBOOmpfAdQ5uh9KArm7pZY5FnVSc0SeOj15H0Ti4E1sA_LoucYBVyYDcE6tQ) [2022 年 Linux 核心實作第 5 週隨堂測驗 (B)](https://docs.google.com/forms/d/e/1FAIpQLSciIx7K4kDr2a77UipQAqEuLT9sREgi7LWfu3ZRwOJ6p9ib5w/viewscore?viewscore=AE0zAgArpAGhhAvjSGbMGdcwEKtxdmYg9UBBbHBxANTRCPsfeCVUneoBkWtll8booA)