檢驗學員對 Linux 核心 kthread 和 workqueue 處理機制的認知
4/30/2024Lock-Free 和 Lock-Less 的分野 許多文件、程式碼和技術討論會看到 lock-free 和 lockless 字眼,例如 DPDK Programmer’s Guide 就在一份文件中存在上述二個術語。二者的差異是什麼呢? lock-free: 強調以系統的觀點來看,只要執行足夠長的時間,至少會有一個執行緒會有進展 (progress) lockless: 避免使用 lock 達到安全無誤地操作共用資料 二者有重疊,但重點的議題不同:lockless 著重在實作層面,即不使用 lock 的前提,該如何確保共用資料的正確呢?但不使用 lock 的程式未必會達到 lock-free。更具體來說,下方 Compare-and-swap 搭配迴圈進行等待的程式碼,屬於是 lockless,但不是 lock-free: // Atomically perform UpperBound =max(UpperBound,y) void RecordMax(int y) {
4/29/2024自 Linux 核心原始程式碼編譯出 User-mode Linux 並運用工具來建構實驗所需的檔案系統
4/27/2024Copyright (慣C) 2015, 2017 宅色夫
4/27/2024or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up