cpu的核心與線(xiàn)程

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

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

物理核:

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

虛擬核:

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

例如:4核8線(xiàn)程的CPU,在操作系統(tǒng)看來(lái)是8個(gè)核,但是實(shí)際上是4個(gè)物理核。

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

單核cpu和多核cpu:

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

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

進(jìn)程和線(xiàn)程:

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

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

注:一個(gè)程序至少一個(gè)進(jìn)程,一個(gè)進(jìn)程至少一個(gè)線(xiàn)程。

進(jìn)程和線(xiàn)程的關(guān)系:

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

2)相對(duì)進(jìn)程而言,線(xiàn)程是一個(gè)更加接近于執(zhí)行體的概念,它可以與同進(jìn)程中的其他線(xiàn)程共享數(shù)據(jù),但擁有自己的?臻g,擁有獨(dú)立的執(zhí)行序列。

進(jìn)程和線(xiàn)程區(qū)別:

1)地址空間:同一進(jìn)程的線(xiàn)程共享本進(jìn)程的地址空間,而進(jìn)程之間則是獨(dú)立的地址空間。

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

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

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

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

進(jìn)程和線(xiàn)程的優(yōu)缺點(diǎn):

線(xiàn)程執(zhí)行開(kāi)銷(xiāo)小,但是不利于資源的管理和保護(hù)。

進(jìn)程執(zhí)行開(kāi)銷(xiāo)大,但是能夠很好的進(jìn)行資源管理和保護(hù)。



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