# 2025q1 Homework5 (assessment) contributed by < `Max042004` > ## 前六週學習回顧 在與老師一對一討論後,我明白我不該急,應該把基礎概念學習清楚,把教材好好看完。 - [ ] [重新閱讀浮點數](https://hackmd.io/@Max042004/B1Ni0dNblg) - [ ] [閱讀每位程式開發者都該有的記憶體知識](https://hackmd.io/@Max042004/rJUvQj6Wle) - [ ] [一對一討論後續紀錄](/DFq4K1SCQmuHcZ21RAW57g) - [ ] 閱讀並行程式設計 - [ ] CSAPP 讀到第二章 ## 問題紀錄 ### Q1 之前在回答 [5/27 課堂問答](https://hackmd.io/L8NQsV0SRwmbKyXSayizWw?stext=14616%3A9%3A0%3A1749832619%3AQRZnIG&both=) 的問題時閱讀了 task_struct,發現 task_struct 內有一個 field 是 pid_t: ```c pid_t pid; pid_t tgid; ``` 我原本以為這個 pid 就是所謂的每一個 task 獨一無二的 pid,但後來發現 task_struct 內還有另一個結構體為 pid: ```c struct upid { int nr; struct pid_namespace *ns; }; struct pid { refcount_t count; unsigned int level; spinlock_t lock; struct dentry *stashed; u64 ino; struct rb_node pidfs_node; /* lists of tasks that use this pid */ struct hlist_head tasks[PIDTYPE_MAX]; struct hlist_head inodes; /* wait queue for pidfd notifications */ wait_queue_head_t wait_pidfd; struct rcu_head rcu; struct upid numbers[]; }; ``` ### Q2  記憶體映射的階層架構 ### Q3 在 [案例探討: Ring buffer](/JO-6VfkLRfWqAC9RaAYj8g),此 ring buffer 寫入的初始條件判斷的邏輯是否錯誤: ```c bool put(queue_t *q, uint8_t *data, size_t size) { if (q->tail - q->head > size) return false; for (size_t i = 0; i < size; i++) q->buffer[(q->tail + i) % q->size] = data[i]; q->tail = (q->tail + size) % q->size; return true; } ``` ```c if (q->tail - q->head > size) return false; ``` 此條件判斷的含義為:若已寫入的資料量大於將要寫入的資料量,就回傳否。 但應該要判斷的是:若剩餘空間小於將要寫入的資料量,才回傳否。 ## 因為自動飲料機而延畢的那一年 我很佩服作者,如果我是作者,我肯定在挫折的時候日日夜夜地拷問自己,我做這件事的意義是什麼,他對我未來幫助是什麼,若看起來投入與回報不成比例,這麼痛苦我為什麼要做。 後來來到成大資工時,因此我在面對學業總想著要快速提升,也因此大一期間,喜歡把時間花在學習程式設計,我自認為程式設計相對來說更重要,但對於基礎的數學與物理我便不願意花時間,考試成績總是在及格線徘徊,這學期連普通物理學和微積分二都索性退選。 在看到這句:「你不能現在就放棄,要是現在就放棄的話,你這輩子日後遇到這種等級的困難,就只會想逃避而已」。讓我反思,把程式視為更值得花時間,而捨棄物理和數學,是不是其實是一種逃避。我自從國中二年級碰到理化中的物理,就開始逃避學習物理,高一繼續逃避,高三也逃避,到了大一普物雖然通過,但概念也似懂非懂,以至於我現在要計算基本的普通物理題目都成了問題。 對我來說,學習物理和數學是比學習程式更加困難,而上了這堂課以後,我才知道數學的重要性完全不亞於程式,我猜這也是大學教育堅持要教授大量數學的原因,但之前我以我狹隘的認知,便斷定學習程式比數學和物理重要,因此拋棄數學與物理不讀,現在反思便覺得我真的在逃避困難。 然後在學習程式也一樣,雖然花時間較多,但始終沒有把一個概念好好掌握,只是這邊懂一點,那邊懂一點,但樣樣不精通。因此之前跟老師一對一討論時,讓我深刻意識到不能在用過去的方式學習,必須學會把一件事做好,以 T 字型的方法培養自己的能力。 時刻誠實面對自己。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up