PCDVD數位科技討論區

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)

anderson1127 2018-12-14 10:26 PM

我想我應該已經猜中 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。 現在的時間是02:17 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2024。