hankTaro

@hankTaro

Joined on Feb 15, 2023

  • 貢獻者: 芋頭-Taro video(英) video(漢) 👨‍💻:interviewer 🦝:interviewee 筆記 面試官要點 面試官不要使用上對下的用詞,因為不確定對方上來的職位與自己的關係,有些企業會讓工程師面試他的主管
     Like  Bookmark
  • contributed by < hankTaro > 2020 年開發紀錄 / GitHub 2021 年開發紀錄 / GitHub 2022 年開發紀錄 / GitHub vcam 測試記錄 $ make make -C /lib/modules/5.19.0-40-generic/build M=/home/hank/linux2023/vcam modules make[1]: 進入目錄「/usr/src/linux-headers-5.19.0-40-generic」
     Like  Bookmark
  • contributed by < hankTaro > 測驗一 說明與改寫 考慮 next_pow2 可針對給定無號 64 位元數值 x,找出最接近且大於等於 2 的冪的值 原始程式碼為: uint64_t next_pow2(uint64_t x) {
     Like  Bookmark
  • contributed by < hankTaro > 想問老師的問題 :::warning 在 第 6 週測驗題 中的將除法轉換為乘法運算的方法,如何在除數為非 $2^n$ 的狀況下求出商以? 我能理解先求出 $M = 2^N/d$ 的概念,但在再用其與被除數相成後再向右位移 N 位,但在求出 M 的過程不就使用到除法了嗎,在有些硬體不支援除法運算符時,這項方法還有辦法實施嗎? 以及當除數沒有重複使用的狀況下,此方法是不是就顯得多此一舉? :::
     Like  Bookmark
  • contributed by < hankTaro > 測驗 1 說明與改寫 此程式碼運用了大量巨集,因此在對巨集不夠熟悉的其況下會有判讀困難,所以這裡先對於巨集內的程式碼說明,至於將 color 利用對齊在 quiz 3 已有解釋,這邊便不多做解釋 #define rb_gen(x_attr, x_prefix, x_rbt_type, x_type, x_field, x_cmp) \ typedef struct { \ x_type *node; \ int cmp; \
     Like  Bookmark
  • contributed by < hankTaro > 測驗一 :::success 延伸問題: 指出 treesort.c 程式碼的缺失並改進 利用 Linux 核心的 list.h 標頭檔改寫並整合進第一次作業的實驗程式碼中,探討 Tree sort 的效率 研讀 Linux 核心的 Red–black tree 程式碼,比較給定的 treesort.c 實作手法,指出後者的改進空間並予以實作 :::
     Like  Bookmark
  • contributed by < hankTaro > 測驗一 實作快速排序法,數值由小到大排列,並確保可達到 stable sorting 的目標。 static void list_sort(struct list_head *head) { if (list_empty(head) || list_is_singular(head)) return;
     Like  Bookmark
  • contributed by < hankTaro > 自我檢查清單 [ ] 研讀上述 ==Linux 效能分析的提示== 描述,在自己的實體電腦運作 GNU/Linux,做好必要的設定和準備工作 $\to$ 從中也該理解為何不希望在虛擬機器中進行實驗; [ ] 研讀上述費氏數列相關材料 (包含論文),摘錄關鍵手法,並思考 clz / ctz 一類的指令對 Fibonacci 數運算的幫助。請列出關鍵程式碼並解說 [ ] 複習 C 語言 數值系統 和 bitwise operation,思考 Fibonacci 數快速計算演算法的實作中如何減少乘法運算的成本; [ ] 學習指出針對大數運算的加速運算和縮減記憶體操作成本的舉措,紀錄你的認知和疑惑 [ ] 注意到 fibdrv.c 存在著 DEFINE_MUTEX, mutex_trylock, mutex_init, mutex_unlock, mutex_destroy 等字樣,什麼場景中會需要呢?撰寫多執行緒的 userspace 程式來測試,觀察 Linux 核心模組若沒用到 mutex,到底會發生什麼問題。嘗試撰寫使用 POSIX Thread 的程式碼來確認。 $\to$ 搭配閱讀〈並行和多執行緒程式設計〉 欲完成功能
     Like  Bookmark
  • contributed by < hankTaro > 開發環境 $ gcc --version gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 39 bits physical, 48 bits virtual
     Like  Bookmark