版本 8afd65468413e23c15309f6297f16e510edd80b9
Changes from 8afd65468413e23c15309f6297f16e510edd80b9 to ec9c880ccd9a37584f4a34973a774849e2e2724e
---
title: MathewSu-001 (蘇晃)
categories: User
...
# 簡介
* 國立成功大學 資訊工程研究所
* GitHub: [`MathewSu-001`](https://github.com/MathewSu-001)
* HackMD: [`sushake`](https://hackmd.io/?nav=overview)
# 2024 Linux 核心實作 春季班 自我評量
## 第一項、成果發表和貢獻
評分:
我選擇給自己 1 分
沒有做出任何貢獻,所以給自己最低分。
## 第二項、作業/隨堂測驗
評分:
我選擇給自己 7 分
* [`Homework 1(\lab0)`](https://hackmd.io/@sushake/linux2024-homework1)
達成的作業要求: 著手修改 queue.[ch] 和連帶的檔案,並滿足 make test 自動評分系統的所有項目,和在 qtest 提供新的命令 shuffle,並以統計的原理來分析我最後的成果,探究洗牌的「亂度」。在這次的作業中,學習到如何 git 的各種操作 ,並且對於 Doubly linked list的操作有更進一步瞭解,以及如何將之前在機率與統計中學到的知識套用進自己的程式碼裡。
* [`Homework 2`](https://hackmd.io/@sushake/linux2024-homework2)
達成的作業要求: 重新回答第 1 周測驗題和第 2 周測驗題,並且學習到如何利用 perf 來進行 Linux 的效能分析。
* [`Homework 3`](https://hackmd.io/@sushake/linux2024-homework1)
達成的作業要求: 分析 Linux 核心的 `lib/list_sort.c` 實作並評估其效益,和將 ttt 整合進 lab0 中: 修改 qtest 程式,使其新增 ttt 命令及確保使用定點數來取代原本 jserv/ttt 的浮點數運算、允許使用者切換「人 vs.電腦」或「電腦 vs. 電腦」的對弈。在這次作業中學到 MCTS 演算法。
* [`Homework 4`](https://hackmd.io/@sushake/linux2024-homework4)
達成的作業要求: 僅完成重新回答第 3 周測驗題。
* [`Homework 5`](https://hackmd.io/@kkkkk1109/linux2024-homework5)
達成的作業要求: 閱讀 [`因為自動飲料機而延畢的那一年`](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1/),與選定想做的期末專題。
* [`Homework 6`](https://hackmd.io/@kkkkk1109/linux2024-homework6)
達成的作業要求: 閱讀〈Linux 核心模組運作原理〉與 [`《The Linux Kernel Module Programming Guide》`](https://sysprog21.github.io/lkmpg/) 紀錄和學習 kernal module 的使用和範例到第 13 章。此外,選定作業主題二: 整合井字遊戲對弈,不過如無頭蒼蠅般僅僅瞭解 simrupt.c 的運作流程,並且整合 ttt 進核心模組當中,核心模組當中,沒有做出其他的改良。
## 第三項、期末專題
評分:
我選擇給自己 6 分
* [`Linux 核心專題: 並行程式設計`](https://hackmd.io/@sysprog/SJglnrmvR)
感謝老師仍然願意給我期末專題做,我現在的進度做到理解並實作搶佔式多工。透過利用正確的方式閱讀第一手教材,並且觀看老師的影片,理解到何謂並行設計與 `setjmp`, `longjmp` 對於排程的重要性。我會做期末專題到 7/7 中午截止日前。
## 第四項、與授課教師的互動
評分:
我選擇給自己 9 分
與老師在 7/1 下午 14:00 進行一對一面談,感謝老師罵醒了總是自作聰明的我。在面談時,我無法正確地講出 CMWQ 的運作流程,甚至連 processor core 的音都可以聽錯,因此指派我研讀並行程式設計教材,且務必動手確認。此外,老師也有在當下要我 debug 出為何我在做定點數開根號運算時,只要輸入超過 2 的 16 次冪,最後的輸出結果就會出錯,最後我失敗了。因此老師指派給我的第二個 TODO 為: 針對定點數開平方根程式碼 (fixed_sqrt),提出其有效輸入的最大值並檢驗。
## 第五項、 所見所聞所感
評分:
我選擇給自己 9 分
閱讀〈因為自動飲料機而延畢的那一年〉後,很喜歡文章作者的一段話:只有把東西生出來做實驗,你才會知道該如何改進。不過在這邊我想要再補充的是,前提為需將所有細節都考慮進去,閱讀完相關領域的教材後,才可以設計實驗、驗證假設並做出改進。我在這門課花費的心思占了七成的時間,除了要完成指導教授規定的計劃外,都把時間投注在作業上,只有在一開始時將老師指定的影片看完,到了後面我不斷地去觀看別人的開發紀錄,然後對自己的程式碼做出改進,謝謝老師在最後將我點醒,及時回歸正途,做正確的事。
## 第六項、每月發給實驗室指導教授的學習回顧
評分:
我選擇給自己 5 分
## 自我總評量得分
自我總評量我給自己 分。
這學期我並沒有寄任何一封信給指導教授,因為老師並不準他的學生修多餘課程,認為會拖累計畫的進度。不果我真的很慶幸自己有修這門課,這對我在寫程式的態度尚有很大的轉變,我不再只是去 "完成" 他而已,而是去思考更高的層面,像是效能、時間成本等工程師應該要會的事。
$()^{1/6} = $
根據幾何平均計算第一至第六項的細項得分,得到 GEOMEAN 為 。
選擇方案 B 的計算方式 $1 + floor() = $,因此自我評量中得到了 分。
## 自我總評量得分
自我總評量我給自己 6 分。
選擇方案 B 的計算方式 $1+floor(GeoMean) =1+ (1 $\times$ 7 $\times$ 6 $\times$ 9 $\times$ 9 $\times$ 5)$^{1/6}$ = 1 + floor(5.07) = 6$