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

版本 7bb3bb7d82263e3abd427a1b68060ab98264d51a

User/yourui1017

Changes from 7bb3bb7d82263e3abd427a1b68060ab98264d51a to current

---
title: yourui1017 (李祐睿)
categories: User
...

## 2024 Linux 核心設計 春季班 自我評量

* 簡介 : 國立成功大學 電機所
* GitHub: [yourui1017](https://github.com/yourui1017)
* HackMD: [yourui1017](https://hackmd.io/@Yourui)

### 成果發表與貢獻

閱讀文件時做的錯字修訂:[lab0](https://hackmd.io/@MiohitoKiri5474/B13cPqfu6)

### 作業與隨堂測驗
* Homework1 (lab0) : [開發紀錄](https://hackmd.io/@Yourui/linux2024-homework1) / [Github](https://github.com/yourui1017/lab0-c)
* Homework2 (quiz1+2) : [開發紀錄](https://hackmd.io/@Yourui/linux2024-homework2) / [Github](https://github.com/yourui1017/linux_hw2_lab)
* Homework5 (assessment) : [開發紀錄](https://hackmd.io/@Yourui/linux2024-homework5)
* Homework(quiz10) : [開發紀錄](https://hackmd.io/@Yourui/linux2024-quiz10)

### 期末專題

期末專題 : [開發紀錄](https://hackmd.io/HgNYYqReROiF31RCK5zumQ?view),因為自身實力不足,只有重新將測驗 10 重新實作。

### 與授課教師的互動

一對一討論:5月16日 (星期四) 上午 11:00 - 11:30

* [並行程式設計: 排程器原理](https://hackmd.io/@sysprog/concurrency-sched):討論 coroutine 中,stackful 和 stackless 的差別。
* Homework5 (assessment) : [開發紀錄](https://hackmd.io/@Yourui/linux2024-homework5):僅使用 bitwise operation ,不使用乘/除法完成浮點數乘上 10 。

### 修課心得

在作業 5 曾經閱讀〈因為自動飲料機而延畢的那一年〉,裡面的狀況就很像是自己的狀況,「資工系的學生不會寫程式,機械系的學生不會做機械」,雖然在目前上完這堂課後,我不認為我有成功突破「資工系的學生不會寫程式,機械系的學生不會做機械」,但我還是有不同的收穫,我學習到資料的閱讀與整理的能力,並練習不要逃避問題,學著成為一個理工人,進行獨立思考,解決問題。

回顧本次修課的歷程,首先老師指派作業 lab0 ,在本次作業中深深體認到自己不會寫程式的事實,對於 C 語言的指標與記憶體操作非常生疏,起初常會遇到 segmentation fault 的錯誤,但在隨後閱讀指定教材並實際操作後才了解 C 語言中的皮毛,並完成該次的評分事項。再者是作業2,在作業2中學習到 quick sort 與 tim sort 排序演算法的排序原理,並且嘗試針對不完善的排序進行改善,最後使用 perf 分析改善前與改善後的演算法效能落差。下一個是 Homework5 ,在 Homework5 中與授課老師進行一對一討論,在討論期間了解到自己並沒有做到誠實面對自己,對於授課老師的提問是一問三不知,因此重新閱讀教材 [你所不知道的 C 語言:數值系統篇](https://hackmd.io/@sysprog/c-numerics),並嘗試使用 bit-wise 操作實作浮點數乘上 10。最後是期末專題,首先先閱讀教材[並行程式設計](https://hackmd.io/@sysprog/concurrency/%2F%40sysprog%2Fconcurrency-concepts)補足自己對於並行程式設計知識,並且嘗試重作測驗10,了解 lock-free 系統的實作,並且使用 hazard pointer 解決 lock-free 的記憶體釋放問題。

### 與指導教授的學習回顧

* 二月回顧:3月4日 週一 下午10:15
1. 針對佇列進行特定操作
2. 撰寫文件,記錄學習過程

* 三月回顧:4月8日 週一 下午8:40
1. 學習 Linux 核心原始程式碼中的 lib/list_sort.c
2. 分析理解 timsort 演算法的實作方式

* 四月回顧:5月9日 週四 下午9:07
1. 研讀教材〈並行程式設計〉
2. 學習 bitwise 的 operation

* 五月回顧:6月3日 週一 下午10:20
1. 期末專題討論
2. 研讀教材〈並行程式設計〉

### 自我評量
$(2 \times 9 \times 7 \times 7 \times 9 \times 8) ^ {1/6} = 6.32$ 

使用方案 B 計分:$1 + floor(6.32) = 7$