2016-08-01 今天在做啥
Freja Beha Erichsen, by Christopher Peterson |
翻譯
今天持續在 hackmd.io 上翻譯 Object-oriented design patterns in the kernel, part 2 成中文版。
透過這篇文章,讓我一步一步去了解 kernel 中的物件導向狀況以及各種實作與歷史,不得不說作者功力非常了得。
翻譯的同時,有用到這些資源,像是:
POSIX Thread
透過 llnl.gov 給的 pthread tutorial 了解 pthread 的實作,從建立 pthread 到 mutex, condition variables 等,這個網站的好處是他有附上練習,透過練習可以更進一步的去觀察 pthread 的機制怎麼運作,pthread 的另外一個介紹可看這個 Multithreaded Programming (POSIX pthreads Tutorial),比較精簡。
在看 pthread scheduling 的時後,參考了 ACM 大神 morris1028 的 blog,大神在2016/1/16寫下這篇文章,就代表我只晚他7個月去學到這個東西而已,不嫌晚!
目前還沒有搞懂 joinable 的意義,以及 pthread join, exit 的操作機制 (已經知道 join 會得到回傳值,然後 exit 是指定回傳值),然後 condition variables 也沒有說很清楚,還要去 try 一下。
C-Thread-Pool
這個部份是從 embedded 2016q1h4 看來的,裏面寫著
快速複習 POSIX Thread Tutorial,並研究 C-Thread-Pool 的實做
- 記得一併學習 C-Thread-Pool 提供的 test suite
在我看剛好看完 llnl 的 pthread tutorial 後,就 clone 一份 C-Thread-Pool 下來看,一看之後驚為天人啊,記得上禮拜二的時候就有為了 concurrency-mergesort 的原因把這份 code 粗略的看了一次,當時看不懂,到了今天在去細看一次就像是打通了一樣,code幾乎都能看懂了(幾乎,因為還有很多看不懂)。
因此花了些時間看這份 code,這份 code 實作很優美,尤其是他的 test suite 做的很棒,還有整個 code 的 documentation 也有做出來,可以說這個 repo 可以當作是一個專案的範例!
還沒有完全看完,先看了 header, test case 一部份,還有 thread 部份的實作,bi-semaphore 還沒看。
後記
隨意瀏覽 2016q1h4 作業區的筆記時,看到這個筆記
可以看到 jserv 真的是一位激勵人心老師啊!
Leave a Reply