# 2024q1 Homework5 (assessment) contributed by < [marvin0102](https://github.com/marvin0102) > ## 教材疑問 ### [Linux 核心的紅黑樹](https://hackmd.io/@sysprog/linux-rbtree#%E7%B0%A1%E8%BF%B0%E7%B4%85%E9%BB%91%E6%A8%B9) 對於紅黑樹的刪除原理仍有些模糊,需在研讀 `include/linux/rbtree_augmented.h` 程式碼嘗試理解實作原理。 > include/linux/rbtree.h > include/linux/rbtree_augmented.h // 有 callback cfs 只挑選最左邊的節點 (rbtree with cache) ### [UNIX 作業系統 fork/exec 系統呼叫的前世今生](https://hackmd.io/@sysprog/unix-fork-exec#Unix-fork-%E7%9A%84%E8%AA%95%E7%94%9F) fork 帶來的死結問題中仍有些疑問, fork 之所以會造成死結是因為在親代行程在呼叫 fork 之後,子行程複製了親代行程的狀帶但卻不共用同一記憶體,因此造成永遠拿不到 lock ? > HotOS 2019 的研究 [A fork() in the road](https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf) ### [並行程式設計: atomic 操作](https://hackmd.io/@sysprog/concurrency-atomics#Store-Buffer) 對於硬體 atomic 特性與 c11 中 atomic 關係仍有些<s>模糊</s> , 既然 Intel 微處理器架構能夠保證滿足 alignment 規則的變數存取的 atomic 特性,那麼只要滿足變數 align 在同一 cacheline 上,及滿足 atomic 特性,那位何需要 c11 中對於 atomic 的支援? > concurrency primer -> LL/SC ## 〈[因為自動飲料機而延畢的那一年](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1/)〉 閱讀心得 在閱讀完 〈因為自動飲料機而延畢的那一年〉第一個想法是為他的決心以及毅力感到佩服,既然下定決心要做就要作到好,我想這是每個人都會有的想法,但真正能堅持下來的又有幾個呢?過程中的種種挫折、原地踏步的焦慮感彷彿都在告訴你不如即時停損吧。 但有時候我們都忽略了,當我們在努力的過程中,在一次次發現與解決問題時,慢慢的提昇自己的能力,吸取經驗,在下一次發生問題前就能提早迴避,在發生問題時能快速的提出解決辦法。 > 人不付出犧牲,就得不到任何回報。如果要得到什麼,就必須付出同等的代價,這就是鍊金術的基本原則,等價交換。當時我們深信著,這就是這世界的真理。------《鋼之鍊金術師》 作者解決困難的經驗給予了我須多啟發,在解決冰塊自動掉落的問題時,因為冰塊太大且掉落時冰塊的狀態無法預期因而時常發生並快卡在掉落口的事情發生,經過了一系列的探索與嘗試解方後發現,原來已經有國外在製造冰塊自動掉落的機器了。這讓我聯想到,現實生活中我們遇到的許多問題,其實世界上的某處,其實早就有人遇到了相似的問題,並且提出了解決方法,因此,有時在思考解決問題的方法時,也可以換個方向思考,遇到的問題能不能經過轉化,改變條件,在能沿用前人經驗與成果的同時,也能達到相同的目的。 ## 希望投入的期末專題 ### 全向量的圖形 (vector graphics) 處理系統專題 希望能夠進行全向量的圖形 (vector graphics) 處理系統專題,希望可以理解相關 rect clipping 相關演算法以及精進 fixed point 的操作並且改進,最終利用 Linux framebuffer 展現整個視窗系統。 eigenvalue 的作用 matrix transpose, det Action items: - 理解 libcg 的矩陣運算 - 將 double (64-bit, at least) 換成 fixed point (32-bit),節省 memory bandwidth,注意誤差 - https://hackmd.io/@maromaSamsa/HkjefPbFs # twin: https://github.com/Joouis/EVGUI_Viewer - Linux framebuffer (顯示), input subsystem: https://www.kernel.org/doc/html/latest/input/index.html SVG (scalable vector graphics) RISC-V RV3I 沒有 FPU ---- ### Linux 排程器研究 探討 Linux 排程器內部設計,改進《Demystifying the Linux CPU Scheduler》,並尋求貢獻程式碼到 Linux 核心的機會 ### 在 RISC-V 處理器運作 Linux 核心 (FPGA/虛擬機器) 希望可以實作 FPGA 或嵌入式相關的專題。