詳解CPU 的線程與操作系統(tǒng)的線程關(guān)系

詳解CPU 的線程與操作系統(tǒng)的線程關(guān)系

北大青鳥長沙麓谷校區(qū)      2022-04-25 12:21:01     9

詳解CPU 的線程與操作系統(tǒng)的線程關(guān)系,CPU中的線程和操作系統(tǒng)(OS)中的線程顯然是兩個(gè)不同的概念,但是在實(shí)際調(diào)度的時(shí)候又有些關(guān)聯(lián)。本文我們就來弄清楚,CPU中的線程

課程價(jià)格 請咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

CPU中的線程和操作系統(tǒng)(OS)中的線程顯然是兩個(gè)不同的概念,但是在實(shí)際調(diào)度的時(shí)候又有些關(guān)聯(lián)。本文我們就來弄清楚,CPU中的線程和操作系統(tǒng)中的線程到底有什么區(qū)別。

一、CPU中的Thread

CPU中的線程,我們叫它們Thread,和OS中的線程的名字一樣。它來自同步多線程(SMT,Simultaneous Multi-threading)的概念。我們現(xiàn)在在Intel的CPU上看到它,實(shí)際上這并不是Intel的發(fā)明創(chuàng)造。它最早起源于學(xué)術(shù)圈,在硬件上IBM實(shí)現(xiàn)也比Intel早。最早Intel使用了這種技術(shù)時(shí)候就叫做SMT,但后面改叫做HT (Hyper Threading),可能是這樣更清楚(畢竟最多兩個(gè)thread,比IBM怪物要少),更朗朗上口吧。

我們現(xiàn)在看到CPU,很多都支持HT,經(jīng)常看到的2C4T的意思就是2核4線程(T,Thread)。1個(gè)內(nèi)核中的thread是對稱的和對等的,在軟件上沒有任何區(qū)別,BIOS也只有通過一些特殊手段才能區(qū)分。實(shí)際上,2C4T中的4個(gè)thread調(diào)度起來沒有本質(zhì)區(qū)別,它們都有自己單獨(dú)的身份證號碼:APIC ID。調(diào)度起來只要知道別人的APIC ID,就用自己的Local APIC寄存器發(fā)出兩個(gè)IPI(Inter-Processor Interrupts)就好了,那個(gè)被指明的倒霉蛋就莫名其妙的開始被調(diào)度去指定的地址執(zhí)行指令了(盡管是實(shí)模式)。當(dāng)然也可以廣播IPI讓所有別的thread都去執(zhí)行指定任務(wù)。

實(shí)際上CPU中Thead有多少,操作系統(tǒng)并不自己探測,是BIOS通過ACPI報(bào)告給OS的,那么BIOS是怎么知道有多少個(gè)Thread呢?就是通過廣播IPI讓各個(gè)thread自己來簽到的,是不是很簡單?

二、操作系統(tǒng)中的Thread

OS中的Thread有自己的棧空間,和同一進(jìn)程中的其他線程共享地址空間等等,這些基本知識因?yàn)閺V為人所知,這里就不羅嗦了。

此Thread非彼Thread

操作系統(tǒng)中的進(jìn)程可以很多,進(jìn)程中的線程就更多了,常常有幾十個(gè)上百個(gè)。而CPU的Thread就那么固定幾個(gè),是稀缺資源。兩者都叫Thread是因?yàn)樗麄兌际钦{(diào)度的基本單位,軟件操作系統(tǒng)調(diào)度的基本單位是OS的Thread,硬件的調(diào)度基本單位是CPU中的Thread。操作系統(tǒng)負(fù)責(zé)把它產(chǎn)生的軟Thread調(diào)度到CPU中的硬Thread中去。

以上就是CPU中的線程和操作系統(tǒng)(OS)中的線程的簡單的區(qū)別,我們在調(diào)用這兩個(gè)線程的時(shí)候,他們之間也會產(chǎn)生某種聯(lián)系。在本站的多線程教程中還有很多類似的蔣蔣,能過有效幫助我們掌握相關(guān)的信息和資訊。

培訓(xùn)啦提醒您:交易時(shí)請核實(shí)對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。