版本 37eea574cb99ed44efcf2087fe9a7b793e4de7f9
yutingshih (施宇庭)
簡介
- 國立成功大學 智慧運算碩士學位學程
- GitHub:
yutingshih
- HackMD:
yutingshih
2024 Linux 核心實作 春季班 自我評量
成果發表和貢獻
評分標準:每個 non-trivial 貢獻得 1 分,貢獻獲得採納再額外多得 1 分,教材勘誤每次得 0.5 分,各項貢獻得分加總後四捨五入。
- 並行程式設計:概念
- 勘誤:在 搶佔式與非強取式核心 中,內文都是採用「非搶佔式核心」,但標題卻是「非強取式核心」,兩者不一致
- 並行程式設計:執行順序
- 勘誤:在 Happens-before 中,文字說明為「Java 程式」但展示的程式碼為 C 語言
- 勘誤:在 Happens-before 中,total order 的定義有誤,和參考資料的定義不一致,少了 relexivity
- 修改 memory consistency model 中關於 sequential consistency 的解釋
- 新增 執行順序的數學描述
- 新增 x86-TSO、ARM 的 hardware memory consistency model 和 litmus tests
- Concurrency Primer
- 新增 memory consistency model 章節 (PR#16)
閱讀教材過程中有發現錯誤,並記錄在期末專題的筆記中以 warning 區塊標示,共計三處各得 0.5 分。新增和修改內容的部分還在審查當中,尚未獲得採納,因此四項各拿 1 分。
本項得分:round(0.5 + 0.5 + 0.5 + 1 + 1 + 1 + 1) = 6 分
作業/隨堂測驗
期末專題
評分標準:下列各項加總後四捨五入,若超過則取 10 分
- 詳實記錄開發過程、成果與產出:0 ~ 6 分
- 觀摩其他同學的期末專題並提問:每個 0.8 分,最多 4 分
- 獲得期末成果發表機會:4 分
《Concurrency Primer》校訂和範例撰寫:HackMD / GitHub / Slides / Video
由於過去未曾學習過 concurrency 相關議題,因此在這兩個月中,我從閱讀《並行與多執行緒程式設計》系列講座開始,逐步建立基礎知識,將我的認知與偶然在教材中發現的若干錯誤記錄於專題開發紀錄當中。
在第二個月,我開始閱讀專題指定材料,即 Russ Cox 所寫的 〈Hardware Memory Models〉和 〈Programming Language Memory Models〉,消化後貢獻 sequential consistency 和 x86/ARM memory consistency models 至《並行與多執行緒程式設計》系列講座,以及貢獻 memory consistency models 至《Concurrency Primer》當中。
最後我自主閱讀了論文《Litmus Tests for Comparing Memory Consistency Models: How Long Do They Need to Be?》學習如何用數學語言描述程式的執行順序及 memory consistency model,並將 執行順序的數學描述 貢獻至《並行與多執行緒程式設計》系列講座,能夠在這麼短的時間內理解艱深的內容,理出自己的思考脈絡並做出貢獻,超出我最初的預期,因此在開發過程與成果產出這個項目我給自己滿分 6 分。
但很遺憾這次沒有獲得期末成果發表的機會,且觀摩其他同學並提問尚未開始進行,因此這部分沒有拿到分數。
本項得分:6 分
與授課教師的互動
所見所聞所感
研究生學習回顧
評分標準:每封符合課程規定的學習回顧信件得 2.5 分,加總後四捨五入。
- 四月學習回顧 (2024/05/05):簡述在 lab0-c 學到 Linux 風格的 list API、學習閱讀 C 語言規格書等第一手資料、活用 Git 進行程式碼開發並於實驗室推廣
- 五月學習回顧 (2024/06/30):分享在並行程式設計的學習心得、期末專題嘗試貢獻《並行與多執行緒程式設計》和《Concurrency Primer》,以及未來可能對實驗室的幫助
這個項目要求整學期總共要寄出四封學習回顧信件,我只有兩次學習回顧信件符合標準 (準時寄出且有副本給授課教師),因此只拿一半的分數。
本項得分:round(2.5 + 2.5) = 5 分