Try   HackMD

2024q1 Homework5 (assessment)

contributed by < wu81177 >

因為自動飲料機而延畢的那一年〉閱讀心得

我觀察自己的個性,常常會在投入某項事物前過分的想像事情的困難程度,對自己的能力沒有信心,然後不敢去做,對於必須要做的事則是因此不斷的拖延,又或者是在投入一小段時間後達不到期望的進度而喪失動力,看到文章作者願意在不熟悉的領域中投入 14 個月的時間開發,甚至不惜延畢,這樣強大的行動力和毅力給了我很大震撼。

大學做專題時學長曾在解釋完複雜的架構後和我說「不要怕,你就先試試看,要先相信自己能夠做得到」,文章中老師也提到「你最大的問題在太害怕失敗了,既然都已經決定要延畢做飲料機了,那就要好好做,才不會辜負當初自己的期望。你該學習的不是看到事情要完蛋了就去避免失敗,而是應該學習如何處理與承受失敗,你才能變得比以前更強大。」

上述兩段話大致上可以對應到我的兩個問題,前者是投入前的恐懼,後者是投入後遭遇一點挫折就失去動力,像是在修這門課的時候,常常看到同學厲害的作業成果,認為自己肯定無法做這麼好而缺乏寫作業的動力,但其實我本來就不用做的這麼好,應該要專注在自身實力的進步,理性想想因為這樣妄自菲薄而駐足不前是很不值得的。

期許將來自己能夠勇敢的去試錯,與其花時間思考自己到底能不能辦得到不如把那些時間投入實作中,並且在過程中遇到問題時能夠穩住心態去解決而不是逃避。

期末專題


7.0 => IEEE 754 (single precision)
LKMPG
tasklet vs. workqueue

concurrent singly-linked list

Implement add_tail and remove

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 附上測試和效能分析