--- title: ChengChaoChun (鄭朝駿) categories: User ... # 簡介 * 國立成功大學 資訊工程所 * GitHub: [`ChengChaoChun`](https://github.com/ChengChaoChun) * HackMD: [`ChengChaoChun`](https://hackmd.io/@J7GZnFx3Qe-HPvOgHWEQsg) ## 2024 Linux 核心實作 春季班 自我評量 ### 成果發表和貢獻 * ksort: [`commit`](https://github.com/sysprog21/ksort/commit/a7f5ab652a4f072ae272bfdcaaecbd4faf6456c9) * simrupt: [`commit`](https://github.com/sysprog21/simrupt/commit/9043d41b81c12c24263df14a50ca0a131c9f9b35) 在本學期老師提供了許多的教材和相關的專案,這一個評分項本應該有很多發揮的空間,但截至 6 月 30 日前我只有提交 2 個 commit,我意識到自己的貢獻有限,還有很大的提升空間,因此這一項我給我自己打7分。 評分: 7分 ### 作業/隨堂測驗 作業 : [`2024q1 Homework1 (lab0)`](https://hackmd.io/vgp02AauR2eojpu1Cfe0_g) [`2024q1 Homework2 (quiz1+2)`](https://hackmd.io/OCEwBZvpSqm8zVb351EwCw) [`2024q1 Homework3 (review)`](https://hackmd.io/vgp02AauR2eojpu1Cfe0_g) [`2024q1 Homework4 (quiz3+4)`](https://hackmd.io/qavQR5TATaGJO28nelw09A) [`2024q1 Homework5 (assessment)`](https://hackmd.io/ocs-q3HnTt2B4z4U1LSOQw) [`2024q1 Homework6 (integration)`](https://hackmd.io/M6ASHNaQR4i1gng7VYm8cw) 目前我的作業沒有達到老師的標準,但我在作業上也收穫很多,具體收穫如下: * 資料結構 : 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分 ### 期末專題 [`期末專題`](https://hackmd.io/@sysprog/B1e8S6tU0) : 重作第六次作業的 ksort,探討並行化的資料排序實作手法。我利用了我在課堂所學來實作期末專題,包含 CMWQ ,演算法, Linux 驅動。目前標註為 TODO 的部分有做出來,但未能進一步的將實作出來的結果分析,數學證明等等,來驗證實作的有效性,且表達的詞彙也有錯誤,還有很大的改進空間。綜合考慮題目的難度和我的完成度,我給自己打7分。 評分: 7分 ### 與授課教師的互動 一對一討論時間 : 5/14 19:30 - 20:00 我和老師進行了一對一討論,主題是並行程序設計。老師問了關於多執行序並行增加和刪除鏈結串列節點的問題,我當時未能立即回答出來,很大的一部分原因是因為對並行不夠理解,另一方面是表達能力欠缺。老師在課堂上也多次提到面試的技巧,這次一對一討論的經驗讓我意識到面試技巧的重要性。考慮到這次討論的表現,我給自己打7分。 評分 7分 ### 所見所聞所感 [`閱讀〈因為自動飲料機而延畢的那一年〉`](https://hackmd.io/@J7GZnFx3Qe-HPvOgHWEQsg/linux2024-homework5): 作者在開發自動飲料機的專案中,經歷了許多出乎意料的困難,尤其是在落杯器機構的設計上。面對技術挑戰,他投入大量時間進行研究和實驗,並延畢來完成這項創新產品。作者最終改變策略,結合購買的機器與自設計,成功創造出自動飲料機。他的堅持與熱情令人敬佩,也是我很需要學習的部分。 回顧自身在本課程的投入狀況: 這學習我每周實際投入的約為 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$