版本 c9a589a52639c706689fd96bfd7d0f1a2e3fa71a
SimonLee0316 (李適宏)
簡介
國立中山大學 資訊工程研究所
GitHub:
SimonLee0316
HackMD:
SimonLee0316
2024 Linux 核心實作 自我評量
第一項、成果發表和貢獻
我給自己 3 分。
第二項、作業/隨堂測驗
我給自己 10 分。
Homework1 (lab0) HackMD/GitHub
這份作業中主要實作了針對指定串列的操作,也引入的不同的洗牌演算法,並比較了自己實作的排序和 linux 核心程式碼之間的效能落差。
Homework2 (quiz1+2) HackMD
使用非遞迴的方式實做 quick sort 和實作 Timsort。 藉由給定的 prorder 和 inorder traversal 序列,進行二元樹的重建和 LRU 概念的呈現。
Homework3 (tic-tac-toe) HackMD/GitHub
藉由改寫井字遊戲來熟悉數值系統、bitwise 操作、排程器原理和 Linux 核心的 List API。
Homework4 (quiz3+4) HackMD
使用 bit-waise技巧 包含 : 取 \(log_2\)、對 mod 10 和 div 10 減少運算成本、popcount、針對符合 \(2^k+1\) 的除數取模同餘。
XTree 的平衡機制與 AVL tree 相似,利用高度來評估是否需要做 rotate。 提供了五個 XTree 的操作。
Homework5 (assessment) HackMD
紀錄閱讀〈因為自動飲料機而延畢的那一年〉的啟發。
Homework6 (integration) HackMD/GitHub
在自己的實體電腦運作 GNU/Linux、閱讀〈Linux 核心模組運作原理並解釋 insmod 、閱讀《The Linux Kernel Module Programming Guide》(LKMPG) 並解釋 simrupt 程式碼裡頭的 mutex lock 的使用方式,並探討能否改寫為 lock-free、閱讀論文 Pattern Defeating Quicksort (pdqsort)、善用 CMWQ 達成排序的並行處理。
第三項、期末專題
我給自己 10 分。
題目:Quiz8 並擴充為 web server HackMD/GitHub
完成測驗八並說明程式碼運作原理並將其擴充為 web server。
第四項、與授課教師的互動
我給自己 10 分。
與授課教師「一對一討論」的時間為 2024/5/16 14:30。
詳細討論可見HackMD
在討論中老師問我如何使用 bit-wise 方法做到浮點數乘 10,而我連乘 10 都不會,更不用說誠實面對自己,在討論結束之後我將自己在計算機組織所學到的浮點數乘法使用 bit-wise 實作出來,並搭配相關測試,在這個討論中我深刻理解在遇到問題時,不會的原因是因為我第一次看過這個問題,所以我才覺得我不會,但是如果我能夠具備足夠的基礎能力,無論遇到什麼沒遇到過的問題也能透過積累的經驗去慢慢解決問題。
第五項、 所見所聞所感
我給自己 10 分。
- 〈因為自動飲料機而延畢的那一年〉 讀後感想:
閱讀完後深刻體會到再做專案的時候,先做好規劃是很重要的。
在作者沒有夠多的行業知識時,盲目的認為問題很簡單而自己去實做,走了很多冤枉路,且在專案過程中,考慮不夠週到或著資金的問題,都造成了無法持續推動專案前進,但我想這就是學生時代無可避免的,失敗總是貫徹人生始終,但這就是人生,作者再做這個專案時不為了什麼功成名就,就是為了一個自我實現的過程,儘管結果並不怎麼美好,但就因為這些失敗的過程,親自走過的路,都會成為以後的養份,讓自己能夠變得更好。
也替作者感到很高興有這麼幾個很好的夥伴,每個人都有自己擅長的領域,將大家擅長的領域結合在一起才能夠完成這項專案,我認為最應該感謝的是紘銘,他無條件的支持著作者的想法和這個專案,為這個專案挹注資金,甚至在作者延畢時,食衣住行都由紘銘贊助,更不用說買那些高昂的設備,且不求回報,我在紘銘身上看到當初 FACEBOOK 創辦人 Mark Zuckerberg 的共同創辦人 Eduardo Saverin 的影子,深感佩服。
- 回顧自身在本課程的投入狀況 我給自己 10 分。
深知自己實力不如人,我在這堂課每個禮拜至少投入25個小時,儘管成效不如預期,光是忙著理解教材就已筋疲力盡,但我認為課程是很充實的。
第六項、每月發給實驗室指導教授的學習回顧
我給自己 10 分。
- 二月發信日期:2024/5/13 21:15
- 三月發信日期:2024/5/13 21:15
- 四月發信日期:2024/5/13 21:15
- 五月發信日期:2024/6/24 21:15
自我總評量得分
自我總評量我給自己 9 分。
\((3*10*10*10*10*10)^{1/6} = 8.18\)
根據幾何平均計算第一至第六項的細項得分,得到 GEOMEAN 為 8.18。
選擇方案 B 的計算方式 \(1 + floor(8.18) = 9\),因此自我評量中得到了 9 分。