  
- 威望
- 0
- 貢獻
- 48
- 參與
- 78
- GJ
- 466
- 註冊時間
- 2007-6-1
|
多執行緒 (Multi-thread) 並不是對多核心處理器做的優化
這是個古老的科技, 並非專為多核心設計, 只是希望能更有效的壓榨 CPU
分頁也不是改成多執行緒, 而是改成多個程序 (process), 原本的分頁才是多執行緒
會想這樣設計我不認為是為了應付新機器, 比較有可能是分頁系統可能在某些情況會出現無法解決的錯誤
使得他們必須用 fork process 來隔離各個分頁, 這兩種方案各有優缺點
不過採用多程序也有可能是消極的, 逃避的解決方案, 這只有他們的開發人員知道
製造一個 thread 一定比一個 process 快, 這件事情微軟不可能不知道
然而, thread 帶來的是資源共享的問題, 也就是 race condition 以及 global 資源的使用問題
從資源獨占到資源分享, 架構一定要大改
但是軟體架構大翻修是需要時間的, 在時間壓力下可能就需要做些妥協, 這恐怕才是真正問題的所在
而不是為了新機器設計
多執行緒一詞也會出現在多核心 CPU 上
不過那意義和 process 的多執行緒是不同的
而這些硬體執行緒通常會被作業系統抽象化
一般的應用程式沒有機會去動它
除非是異質多核心 (heterogenous cores) 才有機會需要去探討要不要讓應用程式可以掌控
不然, 應用程式沒有必要去知道系統中有幾顆 CPU 或是幾個 thread
因此一般桌上型電腦上的應用程式通常不會有所謂 "專為多核心設計的應用程式"
只有 driver, 作業系統, 或是特殊的硬體控制程式才需要考慮多核心相容的問題 |
|