# 簡介 * 國立成功大學 機械所 113 級 (2023 ~ 2024) * 學生 : 蔡忠翰 * GitHub: [`jeremy90307`](https://github.com/jeremy90307) * HackMD: [`jeremy90307`](https://hackmd.io/@jeremytsai) # 2024 Linux 核心實作 春季班 自我評量 ## 第一項、成果發表與貢獻 貢獻本課程的教材和使用的專案: - 並行程式設計: Thread Pool 實作和改進 - 時間 : 2024 年 6 月 13 日星期四 21:50 - 修改錯字 - 並行程式設計: 建立相容於 POSIX Thread 的實作 - 時間 : 2024 年 6 月 13 日星期四 22:00 - 貢獻 : 修改錯字 - 時間 : 2024 年 6 月 17 日星期一 22:30 - 貢獻 : 發現教材在說明上有遺漏,幫忙補充 - 並行程式設計: 實作輕量級的 Mutex Lock - 時間 : 2024 年 6 月 5 日星期三 10:46 - 貢獻 : 共筆上的程式碼有誤幫忙修改 評分: 7 分 在閱讀教材的過程中盡可能的路見不平拔刀相助,雖然無法在實作上貢獻更多範例,但至少先從錯字或程式碼錯誤開始貢獻。 ## 第二項、作業/隨堂測驗 作業共筆: * lab0-c : [github](https://github.com/jeremy90307/lab0-c) / [HackMD](https://hackmd.io/@jeremytsai/linux2024-homework1) * 2024q1 Homework2 (quiz1+2) : [github](https://github.com/jeremy90307/quiz1-2) / [HackMD](https://hackmd.io/@jeremytsai/quiz1-2) * 2024q1 Homework4 (quiz3+4) : [github](https://github.com/jeremy90307/Bitwise-Lab) / [HackMD](https://hackmd.io/@jeremytsai/Homework4_quiz3_4) * 2024q1 Homework5 (assessment) : [HackMD](https://hackmd.io/@jeremytsai/homework5) * 2024q1 Homework6 (integration) : [HackMD](https://hackmd.io/@jeremytsai/Homeworl6) 評分: 7 分 這些作業中最大的問題是我沒能夠誠實面對自己,不敢提出自己的問題是我最大的問題,後續期末專題已改進此問題。 ## 第三項、期末專題 * Linux 核心專題:排程器原理 : [Github](https://github.com/jeremy90307/concurrent-programs) / [HackMD](https://hackmd.io/@sysprog/HyDijL0HR) 評分: 9 分 期末專題在設計相關 preemptive coroutine 實驗時應用案例只完成一個,但在紀錄問題這方面我有確實做到,不應該自以為學會,這也是上次跟老師一對一面談後得出來的反思,並針對這點去改進我的問題。 ## 第四項、與授課教師的互動 面談時間: - 2024年5月8日星期三 13:30 討論紀錄:[HackMD](https://hackmd.io/@jeremytsai/homework5) 評分: 7 分 在面談過程中發現自己的問題: - 不敢誠實面對自己,學習過程需要勇敢提出問題 - 面對問題要實際去執行程式 以上問題我已盡力在期末專題中改進。 ## 第五項、所見所聞 * [〈因為自動飲料機而延畢的那一年〉](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1/) 讀後感想: > 然後我發現一個原本以為只有在資工系發生的現象,那就是「資工系的學生不會寫程式,機械系的學生不會做機械」。 大學安排了很多紮實的課程給學生,資料結構、演算法、計算機網路都是必修,但大多數的資工系在大三、大四時,依然連個網站、app都做不出來,或者說做出來但跟玩具一樣,沒辦法實際上線使用。這裡暫且不談那些大學教育的使命與意義、資工系不是教你寫App的這種論述,也有少數很厲害的學生在大學期間就貢獻open source程式碼,我只是想表達一個普遍的學用落差現象,我們教給學生很多理論、甚至課堂上也開了一些實驗課、作業,但學生的實做能力依舊貧乏。 我身為機械系的學生認為這句話蠻中肯,但沒想過資工系的學生竟然會覺得自己不會寫程式。仔細想想大學的教育確實把我培養成了只會考試的學生,在對大學滿懷期待的大一大二裡,每天被五大力學、工程數學、微積分等追敢,漸漸的消磨了我對機械的熱忱,一心只為拿學分及拿高分而努力。因此故事中付出行動的精神確實值得學習。 > 「這個當作我贊助你吧!」朋友F拍拍胸脯,很有義氣的說:「做出來記得請我喝一杯。」 簡單的幫忙,卻讓人印象深刻,離開時不忘留下一句簡單帥氣的回答,我也想讓自己也能成為這麼瀟灑的男人! > 「你最大的問題在太害怕失敗了,既然都已經決定要延畢做飲料機了,那就要好好做,才不會辜負當初自己的期望。你可以計算要花多少錢,然後評估自己可以接受多少損失,畢業後慢慢還都好,要錢我也可以借你。但青春很貴,你也知道實習會發生什麼事,公司不會指派重要的工作給你,他們只會指派低風險的工作,你學習到的東西並不會比你現在多。你該學習的不是看到事情要完蛋了就去避免失敗,而是應該學習如何處理與承受失敗,你才能變得比以前更強大。」 這是我認為整個故事最重要的一段話,太害怕失敗是大家都會遇到的,既然付出了就要竭盡全力將其實現,面對失敗只會讓我們更加強大。 在 Linux 核心實作中我確實有很多不足,但只要將老師問題聽取並改進就已經是一大進步,比如 git commit 亂寫、避免查閱 csdn 這種質量參疵不齊的文章改而直接查閱 Linux 內的說明等。 * 回顧自身在課堂的投入狀況: 評分: 8 分 在課程的前半段主要在閱讀每週的上課教材和考題及完成 lab0-c 。後半段的課程中,我在有限的時間裡主要專攻並行和多執行緒程式設計,並為此建立專門筆記 [HackMD](https://hackmd.io/@jeremytsai/concurrent-programs) ,並且實際去執行教材提及的範例。 ## 第六項、每月發給實驗室指導教授的學習回顧 * 二月份發信日期:2024 年 3 月 7 日 13:16 * 五月份發信日期:2024 年 6 月 11 日 14:39 評分: 7 分 之前有特地寄信通知黃老師說明我們實驗室的狀況,其中張廉楷博士後研究員是負責管理我 mentor ,因此我會將回顧信件寄送給張博後並非指導教授,而博後會在跟指導教授說明我們的學習狀況,雖然我只有發送二月及五月的信件,但我都有確實跟 mentor 提到我目前的學習狀況。 ## 自我評量總得分 心得: 我沒有修過資料結構、作業系統,一開始也搞不懂那一堆 sort ,甚至連行程和執行緒都分不清楚,且在閱讀教材時也遇到很多挫折,但每次在快要放棄時看到老師對學生滿懷期待的心情,我就覺得自己應該也可以做出什麼貢獻,老師也常說缺什麼就補什麼,因此我就這樣一路補到了學期末,雖然我對 Linux 核心的了解還只是冰山一角,但未來我會以貢獻 Linux 核心為目標努力,謝謝黃老師一個學期的努力。 * GEOMEAN : $\sqrt[6]{7*7*9*7*8*7} = 7.46$ * 方案 B:$1+\lfloor 7.46 \rfloor=8$