cpu的核心與線程

發(fā)布時間:2018/8/9 11:28:00

CPU的核心數(shù)分為物理核心和虛擬核心

物理核:

物理核心數(shù)量=cpu個數(shù)(服務(wù)器上的cpu的數(shù)量)*每個cpu的核心數(shù)

虛擬核:

通過超線程技術(shù),用一個物理內(nèi)核模擬兩個虛擬內(nèi)核,讓單個處理器都能使用線程級并行計算。

例如:4核8線程的CPU,在操作系統(tǒng)看來是8個核,但是實際上是4個物理核。

注:采用超線程技術(shù)能同時執(zhí)行兩個線程,但它并不像兩個真正的CPU那樣,每個CPU都具有獨立的資源。當兩個線程都同時需要某一個資源時,其中一個要暫時停止,并讓出資源,直到這些資源閑置后才能繼續(xù)。因此超線程的性能并不等于兩顆CPU的性能。

單核cpu和多核cpu:

單核CPU:并不是一個長久以來存在的概念,在近年來多核CPU逐步普及之后,單核心的CPU為了與多核CPU對應(yīng)而提出。

多核CPU:是指在一枚CPU中集成兩個或多個完整的物理內(nèi)核,此時CPU能支持系統(tǒng)總線上的多個線程,由總線控制器提供所有總線控制信號和命令信號。

進程和線程:

進程:是并發(fā)執(zhí)行的程序在執(zhí)行過程中分配和管理資源的基本單位,是一個動態(tài)概念。它是程序執(zhí)行時的一個實例。程序運行時系統(tǒng)就會創(chuàng)建一個進程,并為它分配資源,然后把該進程放入進程就緒隊列,進程調(diào)度器選中它的時候就會為它分配CPU時間,程序開始真正運行。

線程:是進程的一個執(zhí)行單元,它是進程的一個執(zhí)行流,是CPU調(diào)度和分派的基本單位,一個進程可以由很多個線程組成,線程間共享進程的所有資源,每個線程有自己的堆棧和局部變量。線程由CPU獨立調(diào)度執(zhí)行,在多CPU環(huán)境下就允許多個線程同時運行。同樣多線程也可以實現(xiàn)并發(fā)操作,每個請求分配一個線程來處理。(線程也被稱為輕量級進程)

注:一個程序至少一個進程,一個進程至少一個線程。

進程和線程的關(guān)系:

1)一個線程可以創(chuàng)建和撤銷另一個線程;同一個進程中的多個線程之間可以并發(fā)執(zhí)行。

2)相對進程而言,線程是一個更加接近于執(zhí)行體的概念,它可以與同進程中的其他線程共享數(shù)據(jù),但擁有自己的棧空間,擁有獨立的執(zhí)行序列。

進程和線程區(qū)別:

1)地址空間:同一進程的線程共享本進程的地址空間,而進程之間則是獨立的地址空間。

2)資源擁有:同一進程內(nèi)的線程共享本進程的資源如內(nèi)存、I/O、cpu等,但是進程之間的資源是獨立的。

注:一個進程崩潰后,在保護模式下不會對其他進程產(chǎn)生影響,但是一個線程崩潰整個進程都死掉。進程切換時,消耗的資源大,效率高。所以涉及到頻繁的切換時,使用線程要好于進程。同樣如果要求同時進行并且又要共享某些變量的并發(fā)操作,只能用線程不能用進程。

3)執(zhí)行過程:每個獨立的進程程有一個程序運行的入口、順序執(zhí)行序列和程序入口。但是線程不能獨立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制。(兩者均可并發(fā)執(zhí)行)

注:線程是處理器調(diào)度的基本單位,但是進程不是。

進程和線程的優(yōu)缺點:

線程執(zhí)行開銷小,但是不利于資源的管理和保護。

進程執(zhí)行開銷大,但是能夠很好的進行資源管理和保護。



Copyright© 2004-2020 河南海騰電子技術(shù)有限公司 版權(quán)所有   經(jīng)營性ICP/ISP證 備案號:B1-20180452   豫公網(wǎng)安備 41019702002018號    電子營業(yè)執(zhí)照