CPU 個數、CPU 核心數、CPU 執行緒數

CPU 個數、核心數、執行緒數 定義 CPU 個數即 CPU 晶片個數。 **CPU 核心數(core)**是指物理上,也就是硬體上存在著幾個核心。比如,雙核就是包括 2 個相對獨立的 CPU 核心單元組,四核就包含 4 個相對獨立的 CPU 核心單元組。 **執行緒數(thread)**是一種邏輯的概念,簡單地說,就是模擬出的 CPU 核心數。比如,可以通過一個 CPU 核心數模擬出 2 執行緒的 CPU,也就是說,這個單核心的 CPU 被模擬成了一個類似雙核心 CPU 的功能。我們從工作管理員的效能標籤頁中看到的是兩個 CPU。比如 Intel 賽揚 G460 是單核心、雙執行緒的 CPU,Intel 酷睿 i3 3220 是雙核心、四執行緒,Intel 酷睿 i7 4770K 是四核心、八執行緒,Intel 酷睿 i5 4570 是四核心四執行緒等等。對於一個 CPU,執行緒數總是大於或等於核心數的。一個核心最少對應一個執行緒,但通過超執行緒(Hyper Thread)技術,一個核心可以對應兩個執行緒,也就是說它可以同時執行兩個執行緒。 CPU 的執行緒數概念僅僅只針對 Intel 的 CPU 才有用,因為它是通過 Intel 超執行緒技術來實現的,最早應用在 Pentium4 上。如果沒有超執行緒技術,一個 CPU 核心對應一個執行緒。所以,對於 AMD 的 CPU 來說,只有核心數的概念,沒有執行緒數的概念。 為何要增加執行緒數? CPU 之所以要增加執行緒數,是源於多工處理(multi-tasking)的需要。執行緒數越多,越有利於同時執行多個程式,因為執行緒數等同於在某個瞬間 CPU 能並行處理(concurrent)的任務數。因此,執行緒數是一種邏輯的概念,簡單地說,就是模擬出的 CPU 核心數。一個核心最少對應一個執行緒,但英特爾有個超執行緒技術可以把一個物理執行緒模擬出兩個執行緒來用,充分發揮 CPU 效能,即一個核心可以有兩個到多個執行緒。 intel x86:一核心有 2 個邏輯執行緒。 IBM power8:一核心有 8 個邏輯執行緒。 多核 CPU 多核心 CPU 主要分原生多核和封裝多核。 原生多核指的是真正意義上的多核,最早由 AMD 提出,每個核心之間都是完全獨立的,都擁有自己的前端匯流排,不會造成衝突,即使在高負載狀況下,每個核心都能保證自己的效能不受太大的影響,通俗的說,原生多核的抗壓能力強,但是需要先進的工藝,每擴充套件一個核心都需要很多的研發時間。 封裝多核是隻把多個核心直接封裝在一起,比如 Intel 早期的 PD 雙核系列,就是把兩個單核直接封裝在一起,但兩核心只能共同擁有一條前端匯流排,在兩個核心滿載時,兩個核心會爭搶前端匯流排,導致效能大幅度下降,所以早期的PD被扣上了高頻低能的帽子,要提高封裝多核的效能,在多工的高壓下儘量減少效能損失,只能不斷的擴大前端匯流排的總體大小,來彌補多核心爭搶資源帶來的效能損失,但這樣做只能在一定程度上彌補效能的不足,和原生的比起來還是差了很多,而且後者成本比較高,優點在於多核心的發展要比原生快的多。 核心 核心(Die)又稱為核心,是 CPU 最重要的組成部分。CPU 中心那塊隆起的晶片就是核心,是由單晶矽以一定的生產工藝製造出來的,CPU 所有的計算、接受/儲存命令、處理資料都由核心執行。各種 CPU 核心都具有固定的邏輯結構,一級快取、二級快取、執行單元、指令級單元和匯流排介面等邏輯單元都會有科學的佈局。 多核心處理器(Multi-core processor) 又稱多核心微處理器,是在單個 CPU 中,加入兩個或以上的獨立實體中央處理單元,或稱核心(core)。這些核心可以分別獨立地執行程式指令,利用平行計算的能力加快程式的執行速度。只有兩個核心的處理器,稱為雙核心處理器(dual-core processor)。多核心通常是對於中央處理器 CPU 而論的,但是某些時候也指 DSP 和 SoC。 把將兩個或更多獨立處理器封裝在一個單一積體電路(IC)中的方案稱為多核心處理器;而封裝在不同 IC 中的獨立處理器形成的計算機系統被稱為多處理器。 多核心處理器 !...

<span title='2022-07-02 21:43:15 +0800 +0800'>July 2, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[OS] Lec 1 - Introduction

一、OS 簡介 作業系統(Operating system, OS) 是管理電腦硬體與軟體資源的電腦程式,同時也是電腦系統的核心與基石。OS主要有以下兩個功能: 資源分配者 監控使用者程式的執行,以防止不正常的運作造成對系統的危害。 一個標準 PC 的作業系統應該提供以下功能: 行程管理 (processing management) 記憶體管理 (memory management) 檔案系統 (file system) 網路通訊 (networking) 安全機制 (security) 使用者介面 (user integerface) 驅動程式 (device drivers) OS 系統依大小來區分: 大型電腦:IBM OS/360 個人電腦:Windows、Linux、BSD、Mac OS X 嵌入式:VxWorks、eCos、Sysbian OS、Palm OS 依品牌來區分: 類 Unix 家族:包含 System V、BSD 與 Linux。 微軟 Windows:Windows NT 核心,包含 Windows 2000、Windows XP。 蘋果 mac OS:執行於蘋果 Macintosh 系列電腦上的作業系統 Chrome OS:基於 Google 的瀏覽器 Google Chrome 的 Linux 核心。 二、常見的系統類型 Multiprogramming System 系統中存在多組行程同時 (concurrent) 執行,避免 CPU 閒置,提升 CPU 利用度。(注意不是平行執行(parallel)) Multiprogramming Degree:系統內所存在的等待執行 process 數目,Multiprogramming degree 愈高,則 CPU 使用度可能愈高。(非必定的原因是可能產生 Thrashing 現象) 當 CPU 效能降低時,系統會引入更多的 process 讓 CPU 盡可能工作。但當存有太多 process 時,大部分的工作會花費在 page fault 造成的 Page Replacement,致使 CPU 效率下降,最後造成 CPU 效能愈來愈低。 [方法1] 降低 Multiprogramming Degree [方法2] 利用 Page Fault Frequency (Ratio) 控制來防止 Thrashing。 [方法3] 利用 Working Set Model 預估各 Process 在不同執行時期所需的頁框數,並依此提供足夠的頁框數。 分時系統 Time Sharing System Multiprogramming System 的一種,OS 透過資源分享,使得每個使用者都認為有一套專屬的系統存在,反應時間(Response Time)通常是一秒內。 常見配置: 行程排程採用 RR 排程(Round-robin scheduling) 記憶體空間所有使用者分享 使用虛擬記憶體技術 I/O Device 透過 Spooling(Simultaneous Peripheral Operation On-Line) 技術(把磁碟當成一個巨大緩衝區使用)共享。 分散式系統 Distributed System 須符合兩個條件,硬體上每台電腦都是自主的,軟體上用戶將整個系統看作是一台電腦。一般分為兩類:...

<span title='2022-02-24 02:43:30 +0800 +0800'>February 24, 2022</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu