--- title: Shiang1212 (薛翔宇) categories: User ... # 簡介 * 國立成功大學 資訊工程研究所 * GitHub:[Shiang1212](https://github.com/Shiang1212) * HackMD:[Shiang1212](https://hackmd.io/@Shiang1212) # 2024 Linux 核心實作 春季班 自我評量 ## 成果發表和貢獻 * 並行程式設計: Hazard pointer: 修復〈Lock-Free Data Structures with Hazard Pointers〉論文連結 ## 作業 * lab0-c: [Github](https://github.com/Shiang1212/lab0-c) / [HackMD](https://hackmd.io/@Shiang1212/BJa00MInp) * homework2: [HackMD](https://hackmd.io/@Shiang1212/rJiKiOvTp) * homework4: [HackMD](https://hackmd.io/@Shiang1212/ryp4HVK1C) * homework5: [HackMD](https://hackmd.io/@Shiang1212/rkGfKjwlA) ## 期末專題 * Linux 期末專題-並行佇列設計和實作: [HackMD](https://hackmd.io/@sysprog/S1bpKK3LC) * 專題內容是重作[第十週測驗](https://hackmd.io/@sysprog/linux2024-quiz10)測驗二,了解 hazard pointer 於 lock-free queue 的實作,並改用 RCU 同步機制重新實作,最後探討兩者的執行效益,嘗試提出改進方案,藉此體會 Linux 核心相關的設計考量。 以前對於並行程式設計,只知道 OS 教的 mutex lock、semaphore 等等,對其實作也是知其然而不知所以然。在這次的專題中,我第一次接觸到並行設計的程式碼,也透過這個機會讓我增廣見聞,我從中學到: * Hazard pointer 實作以及閱讀相關論文並提出改善方案 * 透過閱讀 URCU 相關文件並實作 * 使用 ThreadSanitizer 檢測並行程式是否存在 data race * 使用 Valgrind 的 massif 工具分析程式的記憶體使用情況 提問紀錄: ## 與授課教師的互動 * 2024/05/18 (六) 下午4:00-4:30: 一對一討論 * 討論期末專題:在與老師討論期末專題前,我正好讀到 [Linux 核心設計: 淺談同步機制](https://hackmd.io/@sysprog/linux-sync),此教材中提到 spinlock、semaphore、rwlock 等等同步機制,並搭配 Linux 核心的程式碼介紹。在閱讀此教材時,我一邊閱讀老師的教材,一邊翻看 Linux 的實作方式,理解這些同步機制的實作考量,這讓我有種好像真正觸摸到 Linux 核心的感覺,所以我在與老師一對一討論時,就提出我專題想做並行程式設計相關的研究。 * 2024/06/04 (二) 下午2:54: 私訊老師的粉專 * 請老師打開第十週測驗表單的權限。 * 2024/06/15 (一) 下午10:06: 私訊老師的粉專 * 請老師打開第 6、8、12、17 週測驗表單的權限,但未獲得老師回覆。 ## 所見所聞所感 ## 研究生學習回顧 * 二月學習回顧發信: 2024/03/07 * 分享時間管理、作業進度落後、表達時詞不達意等等自身的問題。 * 三月學習回顧發信: 2024/04/07 * 分享閱讀 bit-wise、指標操作、浮點數運算教材的心得,其中浮點數運算提到的 BFloat16 讓我聯想到實驗室學長的論文:使用 BFloat16 改善聯邦學習的傳輸效率。最後我提出對實驗室研究方向的一些想法。 * 四月學習回顧發信: 2024/05/13 * 分享閱讀同步機制教材的心得,以及閱讀 Linux 程式碼帶給我的悸動。 * 五月學習回顧發信: 2024/06/25 * 分享專題方向以及研究時遇到了什麼問題,並簡短講述這一學期以來的學習心得。 在課程結束前回頭看這幾個月發送的回顧信,發現大部分的回顧信都沒有什麼資訊工程相關的洞察,除了第三個月的回顧信有提到對於實驗室研究方向的一點想法,其他回顧信比較多是在描述我閱讀了什麼教材、學到了什麼知識,搞得有點像寫讀書心得或小作文,沒有辦法用我的所見所聞對實驗室有所貢獻。以後,我應該持續學習並保持敏銳,以應對這個瞬息萬變的資訊產業。 ## 自我評量 (1 ~ 10)