分享到plurk 分享到twitter 分享到facebook

版本 1497a033ae3b4c28f98edbdd97ed883f4e7aac47

LULser0204 (陳昭詣)

簡介

  • 國立成功大學 資訊工程研究所AI所 112 級

  • GitHub: LULser0204

  • HackMD: LULser

2024 Linux 核心設計 春季班 自我評量

第一項、成果發表和貢獻

評分: 1 分。無庸置疑,我這學期沒有對那些專案做出任何貢獻,無論是錯字修正還是改善。我再閱讀那些教材時不夠仔細,對內容只是粗略瀏覽,未能深入理解,即使其中有錯誤也就無法察覺。

第二項、作業/隨堂測驗:

第一次作業 Lab0 因為內容只是完成指定的佇列操作,且讓我們熟悉一些工具,因此完成度較高。然而,隨著後續作業內容逐漸加深,我逐漸跟不上課堂進度,許多延伸問題也無法實作出來。有些解釋甚至和其他同學的相比差很多,很明顯我對自己寫的內容不完全理解。

這個項目我給自己 6 分。

第三項、期末專題

  • 並行程式設計:POSIX Thread 相容實作: HackMD

我過去從未實作過任何有關 Concurrency 的內容,但在這兩個月期間,我在不借助 ChatGPT 的情況下,仍能完成指定的任務。透過這次的期末專題讓我更了解 Concurrency 相關議題,例如第二個任務: “引入mutexshootout” 理解 futex api 的定義以及 C++ 的規格書並且使用,剛開始一直觸發 deadlock 回去翻看 main.cpp 哪裡沒有寫好,用 gdb 去觀察哪個環節寫錯,不斷的去調整。在這過程中,我練習通過查閱和理解第一手資料來解決問題,這培養了我解讀規格書的能力。總體來說,這次專題比起作業我投入的時間更多,也學習到該如何有效的面對實作作業過程中碰上的問題。

這個項目我給自己 10 分。

第四項、與授課教師的互動

  • 5/6 下午7:30 一對一討論,討論期末專題的主題
  • 6/7 下午9:30 一對一討論,討論期末專題具體的任務
  • 5/2 課堂問答

老師在 5/2 號的實體問答針對了我對於 “Volatile” 不懂的地方進行了詳細的回答,並且針對規格書上的敘述進行更進一步的解釋 (“R-Value”、“object”)。而第一次一對一討論,老師和我稍微說明 Concurrency 基礎知識,並且分享了有哪些職位會需要用到 “Concurrency” 的知識 ; 第二次則是點出我對於學習上只是粗略瀏覽沒有深入理解,再問我為什麼 lock-free 實作 linked list 為什麼要 “mark”,但我當下想不出來,下一個問題詢問什麼是“futex”,我的回答不夠完整,只能回應出一些關鍵字(wait queue、大多數操作都在 userspace),在面試的場合絕對會直接被拒絕。在討論結束後,我回去仔細地閱讀那些教材,並且去執行那些程式碼並將原本的鏈結佇列從單向改成雙向,期末專題使用 “futex” 來觀察其和 “PThread” 效能上的差距。

深深的意識到我這種學習不求甚解的態度只適用於考試,在其他場合會被看破手腳。而回答的時候之所以會緊張,就是因為不夠了解某個概念,題目與原理都懂了,就可以自信的回答出來,不會被無知的情緒綁架。

這個項目我給自己 9 分。

第五項、所見所聞所感

第六項、研究生發信時間

  • 二月份學習回顧 (2024/3/5) lab0、linked list、git 操作
  • 三月份學習回顧 (2024/4/2) homework (2+3)、ECC、compiler
  • 四月份學習回顧 (2024/5/3) homework (4+5)、concurrency、epoll
  • 五月份學習回顧 (2024/6/3) homework 5 & final project + Linux memory management

我皆有確實得向指導教授寄信回報當月的學習回顧,在回顧信中,我也會詳細的說明我在課堂上的學習狀況還有掌握的知識讓指導教授知道我的學習狀況。舉例來說,我就和指導教授說我有使用 github 來進行版本控制,有時候模型亂改表現變差,這時候好的 commit message 就很重要。使用 ‘git log’ 查詢歷史紀錄,然後使用 ‘git reset’ 回到某次commit,或者是 ‘git merge’ 來合併特定的功能。

這個項目我給自己 10 分

自我評量 (1 ~ 10)

方案 B: 1 + floor(1、6、10、9、9、10) = 7