# 2024q1 Homework5 (assessment) contributed by < `wu81177` > :::spoiler ## 〈[因為自動飲料機而延畢的那一年](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1/)〉閱讀心得 我觀察自己的個性,常常會在投入某項事物前過分的想像事情的困難程度,對自己的能力沒有信心,然後不敢去做,對於必須要做的事則是因此不斷的拖延,又或者是在投入一小段時間後達不到期望的進度而喪失動力,看到文章作者願意在不熟悉的領域中投入 14 個月的時間開發,甚至不惜延畢,這樣強大的行動力和毅力給了我很大震撼。 大學做專題時學長曾在解釋完複雜的架構後和我說「不要怕,你就先試試看,要先相信自己能夠做得到」,文章中老師也提到「你最大的問題在太害怕失敗了,既然都已經決定要延畢做飲料機了,那就要好好做,才不會辜負當初自己的期望。你該學習的不是看到事情要完蛋了就去避免失敗,而是應該學習如何處理與承受失敗,你才能變得比以前更強大。」 上述兩段話大致上可以對應到我的兩個問題,前者是投入前的恐懼,後者是投入後遭遇一點挫折就失去動力,像是在修這門課的時候,常常看到同學厲害的作業成果,認為自己肯定無法做這麼好而缺乏寫作業的動力,但其實我本來就不用做的這麼好,應該要專注在自身實力的進步,理性想想因為這樣妄自菲薄而駐足不前是很不值得的。 期許將來自己能夠勇敢的去試錯,與其花時間思考自己到底能不能辦得到不如把那些時間投入實作中,並且在過程中遇到問題時能夠穩住心態去解決而不是逃避。 ::: ## 期末專題 --- 7.0 => IEEE 754 (single precision) LKMPG tasklet vs. workqueue **concurrent** singly-linked list Implement add_tail and remove ```c typedef struct __list { int value; struct __list *next; } list_t; void add_tail(list_t *old_tail, int v){ list_t *tail = malloc(sizeof(list_t)); old_tail->next = tail; tail->value = v; } void remove(list_t *node, list_t *head){ list_t *curr = head; if(node == head){ node -> next } while(curr->next != node){ curr = curr->next; } list_t *prev = curr; prev->next = node->next; } ``` > indirect pointer > TODO: 撰寫程式附上測試,考慮並行 誠實面對自己 TODO: 研究並行的鏈結串列: https://hackmd.io/@sysprog/concurrency-lockfree 紀錄問題 TODO: 修改為符合 Linux 風格的 circular doubly-linked list + lock-free 附上測試和效能分析