關於CPU的核心和執行緒與程序的不同

2021-10-09 21:31:40 字數 1120 閱讀 5971

最近的cpu,乙個cpu插座有多個核心(實際進行處理的零部件)。

例如,在名為intel xeon e5-2643v4的cpu中,核心數為6。

cpu核心是指實際進行命令的部件,在smt登場前。

「cpu核心數=可以同時執行的指令數」。

正在執行的程式稱為「程序」,程序具有乙個或多個「執行緒」。

由於這個執行緒給cpu核心指令,所以cpu核心的數量=可以同時執行的執行緒的數量。

程序是指正在執行的程式。

在乙個程序中,分配乙個記憶體空間(記憶體區域)。

如果程序請求作業系統(如果有空閒),記憶體空間會增加。

執行緒是在程序中順序執行指令的部分,是使用cpu核心的單位。

如前所述,在smt(同時多執行緒)出現之前,乙個執行緒中的乙個核心是基本的。

但是最近的cpu,smt(intel稱為超執行緒)功能的模型越來越多,有了這個功能,你可以為乙個核心分配多個執行緒(很多是兩個執行緒),你可以這樣做。

物理上你可以把乙個核心,從作業系統上偽裝成兩個核心,從而提高核心的利用率。

因此,如果cpu支援2個執行緒的smt,則「執行緒數量」是「核心數量」的一倍。

是否在乙個程序中使用多個執行緒取決於應用程式的建立方式。

例如軟體是單執行緒,假如我想提前軟體的動作,即使裝載了很多cpu的核心,也是沒有意義的。

另一方面,在多執行緒的情況下,由於可以在乙個程序中並行執行多個處理,所以效能趨於良好。

現在x86系是主流。

以前因為有32位os,32位os用x86,64位os用x64或者x86_64區別,現在32位os幾乎沒有了,不用特意寫_64,也多指「x86=64位os用」。

從很久以前開始,無論是32位作業系統還是64位作業系統,都配備了x86_64的cpu。

也就是說,體系結構是分開的,但是在乙個cpu上可以使用這兩種體系結構。

作為x86系列的實現,如果是intel則有「intel64」amd的話則有「amd64」命令集。

windows和redhat enterprise linux現在只支援x86系統。

(因為伺服器的作業系統只有64bit版本,所以只使用x86_64架構)

CPU程序與執行緒的關係和區別

程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的乙個獨立單位。執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位。程序和執行緒的關係 1 乙個執行緒只能屬於乙個程序,而乙個程序可以有多個執行緒,但至少有乙個執行緒。2...

CPU的核心數與執行緒數

一 關係 1 執行緒數可以模擬出不同的cpu核心數。cpu的核數是指硬體上有多個核,執行緒數可以模擬多個核的功能。執行緒越多,就越有利於同時執行多個程式,因為執行緒數等於cpu在某一時刻可以同時並行處理的任務數。2 對於乙個cpu,執行緒數總是大於或等於核心數的。乙個核心至少對應乙個執行緒,但通過超...

1 程序與執行緒 超程序 CPU的架構

程序的定義 正在進行的乙個過程或者乙個任務,比如開啟乙個qq是乙個程序,負責執行的任務的是cpu 執行緒的定義 通俗的理解 乙個執行緒 一條流水線的過程,流水線的工作需要電源就相當於cpu 乙個程序 乙個車間的工作過程 一條流水線必須屬於乙個車間,乙個車間至少有一條流水線 車間負責把資源整合到一起,...