iT邦幫忙

DAY 30
0

Linux kernel模組的開發系列 第 30

對稱式多工處理 SMP

單一電腦多 CPU 核心是目前電腦的主流,而多個 CPU 的運作方式可分為不同 CPU 負擔不同工作的非對稱模式 (asymmetrical multi-processing),以及多個 CPU 分擔同一件工作的對稱模式 (symmetrical multi-processing,SMP)。如果要採用非對稱模式的話,電腦要執行的運算工作必須要先很精巧的分割,才能達到真正的效益,而這往往需要特殊的編譯器與作業系統搭配,所以不是很普遍。而另一種對稱模式則相對簡單,普遍的作業系統像是 Linux 都有支援 SMP 架構。

在 SMP 架構中,CPU 與 CPU 之間共用記憶體,所以如果缺法適當的鎖定機制,一個 CPU 所儲存的運算結果是有可能被另一個 CPU 所誤用的。這點在 user space 的程式上問題少了點,因為程式往往每次只在呼叫他的 CPU 上執行。但是對 kernel module 而言,卻可能同時被在不同 CPU 上執行的程式所呼叫而執行。而在 Linux kernel module 中,主要採用 spinock 機制來處理這樣的同步動作。


上一篇
中斷控制
系列文
Linux kernel模組的開發30

尚未有邦友留言

立即登入留言