--- tags: linux2023 --- # [2023q1](http://wiki.csie.ncku.edu.tw/linux/schedule) 第 12 週測驗題 :::info 目的: 檢驗學員對並行程式設計和《Demystifying the Linux CPU Scheduler》的認知 ::: ==[作答表單](https://docs.google.com/forms/d/e/1FAIpQLSeaNhpZc-F68CDR9dDdTKB-9K9SBXYtZLCKfkyKVI6rVJCCmw/viewform)== ### 測驗 `1` 〈[Linux 核心的 hash table 實作](https://hackmd.io/@sysprog/linux-hashtable)〉提及的實作並未考慮到並行,在此我們著手實作支援多執行緒的版本,並考慮到以下: * [deep copy](https://en.wikipedia.org/wiki/Object_copying) * 運用 [callback](https://en.wikipedia.org/wiki/Callback_(computer_programming)) 處理數值傳遞和資源釋放 * 呼叫 [sched_yield](https://man7.org/linux/man-pages/man2/sched_yield.2.html) * 利用 [libut](https://github.com/xant/libut) 進行 unit test 程式碼可見: [gist](https://gist.github.com/jserv/924ff747e0c8b4aaeb12bc124aa0b483) (部分遮蔽) 延伸閱讀: * [Split-Ordered Lists: Lock-Free Extensible Hash Tables](https://ldhulipala.github.io/readings/split_ordered_lists.pdf) * [High Performance Dynamic Lock-Free Hash Tables and List-Based Sets](https://docs.rs/crate/crossbeam/0.2.4/source/hash-and-skip.pdf) * [Safe memory reclamation for dynamic lock-free objects using atomic reads and writes](https://dl.acm.org/doi/10.1145/571825.571829) (使用 hazard pointer) :::success 延伸問題: 1. 解釋上述程式碼運作原理,並利用 C11 Atomics 改寫程式 2. 探討效能表現,並提出改進方案 :::
×
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
.