ChengChaoChun (鄭朝駿)
簡介
國立成功大學 資訊工程所
GitHub:
ChengChaoChun
HackMD:
ChengChaoChun
2024 Linux 核心實作 春季班 自我評量
成果發表和貢獻
在本學期老師提供了許多的教材和相關的專案,這一個評分項本應該有很多發揮的空間,但截至 6 月 30 日前我只有提交 2 個 commit,我意識到自己的貢獻有限,還有很大的提升空間,因此這一項我給我自己打7分。
評分: 7分
作業/隨堂測驗
作業 :
2024q1 Homework6 (integration)
目前我的作業沒有達到老師的標準,但我在作業上也收穫很多,具體收穫如下:
資料結構 : double linked list , ring buffer , 紅黑樹 , kfifo 等等
演算法 : 混合排序
作業系統 : 同步機制,並行設計問題,中斷系統(top half , bottom half) 等等
隨堂測驗 :
在隨堂測驗方面,我參與了每一次的測驗,每一次測驗的內容都不太一樣,要在短時間內理解 200 - 300 行程式對我來說還是很困難的,特別是 bitwise 的考題,但這些測驗讓我認識了 Linux 核心設計的各種議題,具體收穫如下:
bitwise 操作,這學期好幾周的考題都是有關 bitwise 操作,到了最後一次測驗也是關於 bitwise 操作的,還是只考了 50 分。很多對於講究效能的程式設計都需要 bitwise 操作,因此這一部分很重要,後續還要 review 考題。
並行程序設計,包含 Atomics , RCU(有一次上課在討論 RCU ,但忘了是不是考題內容), Producer-consumer problem 。
評分: 7分
期末專題
期末專題
: 重作第六次作業的 ksort,探討並行化的資料排序實作手法。我利用了我在課堂所學來實作期末專題,包含 CMWQ ,演算法, Linux 驅動。目前標註為 TODO 的部分有做出來,但未能進一步的將實作出來的結果分析,數學證明等等,來驗證實作的有效性,且表達的詞彙也有錯誤,還有很大的改進空間。綜合考慮題目的難度和我的完成度,我給自己打7分。
評分: 7分
與授課教師的互動
一對一討論時間 : 5/14 19:30 - 20:00 我和老師進行了一對一討論,主題是並行程序設計。老師問了關於多執行序並行增加和刪除鏈結串列節點的問題,我當時未能立即回答出來,很大的一部分原因是因為對並行不夠理解,另一方面是表達能力欠缺。老師在課堂上也多次提到面試的技巧,這次一對一討論的經驗讓我意識到面試技巧的重要性。考慮到這次討論的表現,我給自己打7分。
評分 7分
所見所聞所感
閱讀〈因為自動飲料機而延畢的那一年〉
: 作者在開發自動飲料機的專案中,經歷了許多出乎意料的困難,尤其是在落杯器機構的設計上。面對技術挑戰,他投入大量時間進行研究和實驗,並延畢來完成這項創新產品。作者最終改變策略,結合購買的機器與自設計,成功創造出自動飲料機。他的堅持與熱情令人敬佩,也是我很需要學習的部分。
回顧自身在本課程的投入狀況: 這學習我每周實際投入的約為 15 到 20 小時,從學習成果來看確實還不夠。
我記得老師剛開學時有分享一篇文章提到所有問題在 Linux 核心都找的到答案,為了“翻身”,接下來我會持續投入,繼續從教材中學習,從 Linux 核心中學習,從 Linux 核心中找答案。
評分: 7分
發給實驗室指導教授的學習回顧
2024年3月6日 上午3:06
雖然我們實驗室的研究主題與此課程無直接關聯,但所學對研究有幫助。在學習 Linux 核心 linked list 的過程中,我深受其設計思路吸引,尤其是 list_head 結構體和相關巨集的巧妙實現。課程的強度讓我意識到自己能力的不足,但我將持續努力,最終目標是為 Linux 內核做出貢獻,並將所學應用於研究中。
2024年6月16日 上午8:24
最近投入大量時間學習並行程序設計。儘管我們實驗室的研究主題與 Linux 核心無直接關聯,但並行程序設計對提升系統效率和性能有重要幫助,尤其在多核心處理器上。我學到了關鍵技術和同步機制,理解了競爭條件、死鎖及其他挑戰。接下來,我會繼續學習並應用於實驗室研究專案中。
這項評分本該是送分項目,但 3 月與 4 月未發學習回顧給實驗室指導教授,因此我給自己打 7 分。
自我評量
- GEOMEAN:\(\sqrt[6]{7*7*7*7*7*7}=7\)
- 方案 B:\(1+\lfloor 7 \rfloor=8\)