版本 7bb3bb7d82263e3abd427a1b68060ab98264d51a
yourui1017 (李祐睿)
2024 Linux 核心設計 春季班 自我評量
- 簡介 : 國立成功大學 電機所
- GitHub: yourui1017
- HackMD: yourui1017
成果發表與貢獻
閱讀文件時做的錯字修訂:lab0
作業與隨堂測驗
- Homework1 (lab0) : 開發紀錄 / Github
- Homework2 (quiz1+2) : 開發紀錄 / Github
- Homework5 (assessment) : 開發紀錄
- Homework(quiz10) : 開發紀錄
期末專題
期末專題 : 開發紀錄,因為自身實力不足,只有重新將測驗 10 重新實作。
與授課教師的互動
一對一討論:5月16日 (星期四) 上午 11:00 - 11:30
- 並行程式設計: 排程器原理:討論 coroutine 中,stackful 和 stackless 的差別。
- Homework5 (assessment) : 開發紀錄:僅使用 bitwise operation ,不使用乘/除法完成浮點數乘上 10 。
修課心得
在作業 5 曾經閱讀〈因為自動飲料機而延畢的那一年〉,裡面的狀況就很像是自己的狀況,「資工系的學生不會寫程式,機械系的學生不會做機械」,雖然在目前上完這堂課後,我不認為我有成功突破「資工系的學生不會寫程式,機械系的學生不會做機械」,但我還是有不同的收穫,我學習到資料的閱讀與整理的能力,並練習不要逃避問題,學著成為一個理工人,進行獨立思考,解決問題。
回顧本次修課的歷程,首先老師指派作業 lab0 ,在本次作業中深深體認到自己不會寫程式的事實,對於 C 語言的指標與記憶體操作非常生疏,起初常會遇到 segmentation fault 的錯誤,但在隨後閱讀指定教材並實際操作後才了解 C 語言中的皮毛,並完成該次的評分事項。再者是作業2,在作業2中學習到 quick sort 與 tim sort 排序演算法的排序原理,並且嘗試針對不完善的排序進行改善,最後使用 perf 分析改善前與改善後的演算法效能落差。下一個是 Homework5 ,在 Homework5 中與授課老師進行一對一討論,在討論期間了解到自己並沒有做到誠實面對自己,對於授課老師的提問是一問三不知,因此重新閱讀教材 你所不知道的 C 語言:數值系統篇,並嘗試使用 bit-wise 操作實作浮點數乘上 10。最後是期末專題,首先先閱讀教材並行程式設計補足自己對於並行程式設計知識,並且嘗試重作測驗10,了解 lock-free 系統的實作,並且使用 hazard pointer 解決 lock-free 的記憶體釋放問題。
與指導教授的學習回顧
- 二月回顧:3月4日 週一 下午10:15
- 針對佇列進行特定操作
- 撰寫文件,記錄學習過程
- 三月回顧:4月8日 週一 下午8:40
- 學習 Linux 核心原始程式碼中的 lib/list_sort.c
- 分析理解 timsort 演算法的實作方式
- 四月回顧:5月9日 週四 下午9:07
- 研讀教材〈並行程式設計〉
- 學習 bitwise 的 operation
- 五月回顧:6月3日 週一 下午10:20
- 期末專題討論
- 研讀教材〈並行程式設計〉
自我評量
\((2 \times 9 \times 7 \times 7 \times 9 \times 8) ^ {1/6} = 6.32\)
使用方案 B 計分:\(1 + floor(6.32) = 7\)