contributed by < Hsuhaoxiang >
2020q1 表示 2020 年的第 1 季,即春季班課程的意思
lsmod
的輸出結果有一欄名為 Used by
,這是 "each module's use count and a list of referring modules",但如何實作出來呢?模組間的相依性和實際使用次數 (reference counting) 在 Linux 核心如何追蹤呢?fibdrv.c
存在著 DEFINE_MUTEX
, mutex_trylock
, mutex_init
, mutex_unlock
, mutex_destroy
等字樣,什麼場景中會需要呢?撰寫多執行緒的 userspace 程式來測試,觀察 Linux 核心模組若沒用到 mutex,到底會發生什麼問題
方法是將前面的 Q-metrix
進行對角化,得到 eigenvalue
,
, 最後寫成上式,將上面右式的矩陣乘開便得到
因此可得:
我們便可以由 和 算出 和 ,需 次計算,但 已經是 11 位數了,兩個大數相乘計算時間又會變得更長!
while
同時算出他有幾位,這裡之後還要改成 clz / ctz
指令就不用先跑一次
在40項之後可以看出兩種演算法所花的時間差距會越來越大
因為超過 long long 所能表示的資料範圍就會溢位,原本的程式 必須更改儲存數值的方式
目前正在參考 bignum 的做法