瀏覽單個文章
NEAL
Golden Member
 
NEAL的大頭照
 

加入日期: Jun 2002
您的住址: Taiwan
文章: 2,668
引用:
作者冰的啦魔王大人
很可惜.... 不是這樣的, 這些東西不能混為一談喔.
軟體是軟體,硬體是硬體, 作業系統是作業系統, 計算機架構是計算機架構,處理器架構是處理器架構..各自有專門的教科書喔

我沒有考啥高考啦, 不過我當時考台大電機研究所的作業系統,是拿八十幾分的...

正確的故事來由應該是從 "作業系統"的發展開始.
古老的機器,處理器資源是非常昂貴的, 而IO 速度卻是非常緩慢, 處理器常常發呆等I/O,
於是有人想到分時多工, 把CPU等待的時間分給別人用, 於是寫了作業系統去管理, 開始把單工變成多工, 把處理器的資源榨光. 於是有了process(互不干擾的工作) 與 context-switching 及改善效能的概念...
為了這三個概念, 各自發展了軟體(比如threads)與硬體(管線,超純量,循環使用的register, HT,DMA等等)的各種技術 ..現在都很複雜了,詳見各維基百科.


這些觀念要理解應該是不複雜,看看Code都還OK。

我在前文是解釋Hardware Thread和Software Thread之間的運作方式,應該是沒有混為一談啦。

而且軟體就是跑在硬體上面,把Software/OS/Hardware都分開來當作是不一樣的東西,沒有去追根究底了解運作方式,程式怎麼讓硬體動起來的過程就理解不到了,比較可惜。

Thread的本質確實要從軟體出發,往下至硬體層理解,才會有深刻感受,因為在CPU的層級就會剩下一行一行Instructions的執行,其實已沒有所謂的Thread了,Thread是靠OS去實現的,有興趣可以寫段C++,使用STL Thread,然後用Compiler Explorer或gcc -S把它翻成組語,就會發現直接餵給CPU的指令已經沒有Thread的存在,都是剩下Pogram Counter的操作,讓OS去處理了。剛好奇聽魔王兄的建議去看Wiki,Wiki的說明也是從這角度出發,一路從軟體往下講至OS,再到硬體層。

https://en.wikipedia.org/wiki/Thread_(computing)
__________________
工作主力機:
AMD Ryzen9 5900X 2203 B2
MSI B550M Mortar WiFi
Kingston Fury Beast RGB D4-3600 32GBx4 (Hynix AJR)
Samsung 970 EVO Plus 1TB
EVGA 850GM SFX
Thermalright SilverArrow IB-E Extreme
Mech. Master C28
BenQ PD3200Q
ASUS ROG Gladius II Origin
GANSS HS75T x Glorious Panda

護眼LCD的選擇
LG 32LM6200 32吋液晶電視電源模組維修經驗分享
舊 2018-10-18, 04:31 PM #18
回應時引用此文章
NEAL離線中