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

版本 4be7fb060e93d3f42674f147af6a9960df30e772

Chinchun Chen (陳金諄)

2024 Linux 核心實作 春季班 自我評量

成果發表與貢獻

閱讀文件時做的錯字修訂:

增加快速開平方根計算 magic number 計算方法解釋:

作業與隨堂測驗

  • lab0: GitHub / HackMD

    這份作業中主要實作了佇列的基本操作,同時對一些特定功能進行分析,如洗牌亂度及排序時執行時間複雜度,在之後的作業三也加入了井字遊戲不同演算法及功能的實作,並閱讀 coroutine。

  • quiz1 + 2: HackMD

    內容為分析測驗中 quick sort 、 timsort 、建立二元樹、 LRU Cache 實作及在一段特地記憶體中尋找第 N 個設定位元的函式。

  • quiz3 + 4: HackMD

    內容為分析測驗中有效率的開根號、避免使用除法的模除運算、 \(log_2\) 、 EWMA 及漢明距離計算。

  • Assessment: HackMD

    作業內容我選擇改進

    1. 第 2 周測驗 3 : fns 函式改進
    2. 第 3 周測驗 2 : 不依賴任何除法指令的 % 9 (modulo 9) 和 % 5 (modulo 5) 程式碼
    3. 第 4 周測驗 1 : 避免重複計算、一次輸入多個字串需要同時計算 Total Hamming Distance 的版本

    並紀錄閱讀〈因為自動飲料機而延畢的那一年〉的啟發,並研讀 CS:APP 3/e 第二章。

  • Integration: HackMD

    作業中除了閱讀給定教材並分析其功能外,在自己的實體電腦運作 GNU/Linux 並實際將模組掛載至核心執行,並嘗試將 simrupt/simrupt.c 內的 simrupt_work_func 改寫為 lock-free 。

  • 另外做的一些筆記:

期末專題

bitops: HackMD

  1. 嘗試重現前面執行人的改進並套用至 Linux v6.8+ 版本,並提出驗證方法證明其與現有版本相容。
  2. 嘗試改進第 7 周測驗找出一段記憶體位置中特定字元的演算法並貢獻
  3. 修訂快速開平方根運算

與授課教師的互動

一對一討論: 5 月 19 日 (星期日) 下午9:30 - 10:15

修課心得

與指導教授的學習回顧

  • 二月回顧:3月7日 週四 下午11:23
  • 學習有效率的應用時間
  • 三月回顧:4月8日 週一 下午7:38
  • 對於已經超過繳交期限的作業再去嘗試完成
  • 四月回顧:5月16日 週四 上午1:32
  • 嘗試發送 patch 貢獻至 linux 核心的過程

自我評量

\((5 \times 8 \times 8 \times 7 \times 8 \times 7) ^ {1/6} = 7.07\)

使用方案 B 計分:\(1 + floor(7.07) = 8\)