![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 系統組件
(https://www.pcdvd.com.tw/forumdisplay.php?f=19)
- - 請問線程是什麼?
(https://www.pcdvd.com.tw/showthread.php?t=1152451)
|
---|
我想我應該已經猜中 95%以上了....
因為我之前自己提出的疑問都有了解答!! 不過...... 樓上有某位網兄說中答案了.... 我不明說,相信他自己應該知道我指的是那位.... :ase 的確 Intel的thread , 與Programming/OS的thread 兩個是完全不相同的東西!! 也就是說,樓上網兄試圖舉例來說明thread , 全部都落入Programming/OS的thread裡 既然說的是OS的thread , 當然CPU根本不會認得OS的thread , 對CPU來說,它也不認得OS 它就是很單純的執行machine code , 都是組合語言 , 都是最原始的資料(binary) !! 既然如此, 它更不可能去認得OS的thread !! 要真的認得thread , 也只有Process or OS本身才認得!! 另外一個key point , 對於1C2T的CPU , 為何OS要去模擬出第二棵CPU ?? 我的理由很簡單(我想好久才想通) , 對Intel的1C2T的thread ,與SuperScalar 有關沒錯!! 理由就是CPU對於第二條的pipeline 無法自行切換使用 , 切換使用第二條的pipeline要交給 OS來做 , 這就是為何OS要去模擬出第二顆CPU的真正理由!! 因為OS分派Job時,有權決定 此Job交給那一顆CPU來做 , 因此為了使用相同CPU裡的第二條pipeline資源,故模擬出 第二棵的Logical CPU來做代表 !! 所以,結論就是舉例子的thread 都不是 Intel 所指的thread , 兩個東西完全不相同!! |
所有的時間均為GMT +8。 現在的時間是04:09 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。