0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多核同構(gòu)SMP--調(diào)度算法分析

jf_NsPBt3VS ? 來(lái)源:風(fēng)火輪技術(shù)團(tuán)隊(duì) ? 2023-07-10 11:10 ? 次閱讀

隨著智能產(chǎn)品的需求不斷提高,慢慢的單芯片單核處理器已經(jīng)不能滿足我們的需求,于是就在一個(gè)芯片上集成兩個(gè)或多個(gè)核心,進(jìn)而轉(zhuǎn)向了多核處理器的發(fā)展,多核處理器具有更高的計(jì)算密度和更強(qiáng)的并行處理能力,所以它也是大趨勢(shì)。多核處理器從硬件的角度來(lái)區(qū)分,又分為同構(gòu)和異構(gòu):

多核同構(gòu)處理器:一個(gè)處理器的多個(gè)核心的體系架構(gòu)是一樣的,如:T113

多核異構(gòu)處理器:一個(gè)處理器中包含不同體系架構(gòu)的核心,如:STM32MP157

多核處理器從軟件的角度來(lái)區(qū)分,又分為SMP和AMP:

SMP:又稱對(duì)稱多處理(Symmetric multiprocessing),只有一個(gè)操作系統(tǒng)(OS)實(shí)例上運(yùn)行多個(gè)核心,一個(gè)OS同等的管理各個(gè)內(nèi)核,為各個(gè)內(nèi)核分配工作負(fù)載,系統(tǒng)中所有的內(nèi)核平等地訪問(wèn)內(nèi)存資源和外設(shè)資源。

AMP:又稱非對(duì)稱多處理(Asymmetric Multi-Processing),每個(gè)核心運(yùn)行自己的OS或同一OS的獨(dú)立實(shí)例,或者說(shuō)不運(yùn)行OS,如運(yùn)行裸機(jī),每個(gè)內(nèi)核有自己獨(dú)立的內(nèi)存空間,也可以和其它內(nèi)核共享部分內(nèi)存空間,每個(gè)核心相對(duì)獨(dú)立地運(yùn)行不同的任務(wù),但是有一個(gè)核心為主要核心,它負(fù)責(zé)控制其它核心以及整個(gè)系統(tǒng)的運(yùn) 行,而其它核心負(fù)責(zé)“配合”主核心來(lái)完成特定的任務(wù)。

本篇文章圍繞SMP展開(kāi)講解。

什么是SMP

對(duì)稱多處理器結(jié)構(gòu) , 英文名稱為 "Symmetrical Multi-Processing" , 簡(jiǎn)稱SMP。SMP又稱為UMA, 全稱"Uniform Memory Access", 中文名稱"統(tǒng)一內(nèi)存訪問(wèn)架構(gòu)"。

在 " 對(duì)稱多處理器結(jié)構(gòu) " 的 系統(tǒng)中 , 所有的處理器單元的地位都是平等的 , 一般指的是服務(wù)器設(shè)備上 , 運(yùn)行的 多個(gè) CPU , 沒(méi)有 主次/從屬 關(guān)系,都是平等的。

這些處理器共享所有的設(shè)備資源, 所有的資源對(duì)處理器單元具有相同的可訪問(wèn)性, 如: 內(nèi)存, 總線等,多個(gè)CPU處理器共享相同的物理內(nèi)存, 每個(gè)CPU訪問(wèn)相同的物理地址, 所消耗的時(shí)間是相同的;

93292f72-1d44-11ee-962d-dac502259ad0.png

SMP的優(yōu)缺點(diǎn)

優(yōu)點(diǎn) :避免了結(jié)構(gòu)障礙, 其最大的特點(diǎn)是所有的資源共享。缺點(diǎn):SMP架構(gòu)的系統(tǒng), 擴(kuò)展能力有限, 有瓶頸限制。如: 內(nèi)存瓶頸限制, 每個(gè)CPU處理器必須通過(guò)相同的總線訪問(wèn)相同的內(nèi)存資源, 如果CPU數(shù)量不斷增加, 使用同一條總線, 就會(huì)導(dǎo)致內(nèi)存訪問(wèn)沖突; 這樣就降低了CPU的性能;

操作系統(tǒng)如何滿足SMP

公平共享: CPU的負(fù)載, 需要公平地共享, 不能出現(xiàn)某個(gè)CPU空閑, 造成資源浪費(fèi)。

可設(shè)置線程(進(jìn)程)與CPU親和性: 可以為某些類型的線程(進(jìn)程)與指定的處理器設(shè)置親和性, 可以針對(duì)性地匹配線程(進(jìn)程)與處理器。

線程(進(jìn)程)遷移: 可以將線程(進(jìn)程)在不同的CPU處理器之間進(jìn)行遷移 。

總結(jié):操作系統(tǒng)的SMP對(duì)稱多處理器結(jié)構(gòu)調(diào)度,核心就是將線程(進(jìn)程)遷移到合適的處理器上, 并且可以保持各個(gè)處理器的負(fù)載均衡。

SMP調(diào)度方式

作者總結(jié)SMP的調(diào)度算法可以分為三種:

①線程(進(jìn)程)默認(rèn)核心0運(yùn)行,可以指定親和性:

當(dāng)用戶創(chuàng)建線程(進(jìn)程)時(shí),可以指定掛在到指定核心運(yùn)行。當(dāng)任務(wù)掛在到指定核心,那么該任務(wù)只能在該核心上運(yùn)行。

當(dāng)用戶創(chuàng)建線程(進(jìn)程)時(shí),沒(méi)有指定掛在到指定核心運(yùn)行,線程(進(jìn)程)默認(rèn)掛在到核心0。該任務(wù)核心0上運(yùn)行。

9347b582-1d44-11ee-962d-dac502259ad0.png

問(wèn)題:

優(yōu)點(diǎn):可以規(guī)定某個(gè)核心專注的做某一件事或某一類事。

缺點(diǎn):核心0的負(fù)載會(huì)很大,它需要調(diào)度其他核心不調(diào)度的任務(wù)。

適用場(chǎng)景:

項(xiàng)目需要指定核心專一處理某一件事情的時(shí)候,可以使用這種調(diào)度算法

②線程(進(jìn)程)默認(rèn)均分到不同核心,可以指定親和性。

當(dāng)用戶創(chuàng)建線程(進(jìn)程)時(shí),可以指定掛在到指定核心運(yùn)行。當(dāng)任務(wù)掛在到指定核心,那么該任務(wù)只能在該核心上運(yùn)行。

當(dāng)用戶創(chuàng)建線程(進(jìn)程)時(shí),沒(méi)有指定掛在到指定核心運(yùn)行,系統(tǒng)會(huì)判斷每個(gè)核心的任務(wù)數(shù),將該任務(wù)放在任務(wù)數(shù)最少的核心中。

9361111c-1d44-11ee-962d-dac502259ad0.png

問(wèn)題:

優(yōu)點(diǎn):將任務(wù)平分給每個(gè)核心,每個(gè)核心的負(fù)載會(huì)相對(duì)均衡。

缺點(diǎn):可能存在某個(gè)核心分配的任務(wù)都是比較輕的,某個(gè)核心分配的任務(wù)比較重。導(dǎo)致核心中的任務(wù)比較輕的,會(huì)更加容易進(jìn)入空閑狀態(tài),核心中的任務(wù)比較重的,可能會(huì)一直處于忙碌狀態(tài),這樣也會(huì)導(dǎo)致每個(gè)核心的負(fù)載不均衡。

適用場(chǎng)景:

項(xiàng)目中,所有的任務(wù)的復(fù)雜程度都差不多,可以均分到每個(gè)核心上,這樣可以提高系統(tǒng)性能。

③線程(進(jìn)程)根據(jù)核心負(fù)載獲取任務(wù)調(diào)度,可以指定親和性。

當(dāng)用戶創(chuàng)建線程(進(jìn)程)時(shí),可以指定掛在到指定核心運(yùn)行。當(dāng)任務(wù)掛在到指定核心,那么該任務(wù)只能在該核心上運(yùn)行。

當(dāng)用戶創(chuàng)建線程(進(jìn)程)時(shí),沒(méi)有指定掛在到指定核心運(yùn)行,將該任務(wù)掛載一個(gè)總?cè)蝿?wù)隊(duì)列中,當(dāng)某個(gè)核心調(diào)度空閑時(shí),就從總?cè)蝿?wù)隊(duì)列中獲取一個(gè)任務(wù)運(yùn)行。運(yùn)行完畢之后歸還給總?cè)蝿?wù)隊(duì)列。

937bc5e8-1d44-11ee-962d-dac502259ad0.png

問(wèn)題:

優(yōu)點(diǎn):根據(jù)每個(gè)核心的負(fù)載,均分整個(gè)系統(tǒng)的任務(wù)調(diào)度,提供了每個(gè)核心的利用率。

缺點(diǎn):調(diào)度算法比較復(fù)雜

適用場(chǎng)景:

項(xiàng)目中不需要關(guān)心任務(wù)的具體運(yùn)行到那個(gè)核心。

總結(jié)

上述的調(diào)度算法,只有第三種滿足:①公平共享;②可設(shè)置線程(進(jìn)程)與CPU親和性;③線程(進(jìn)程)遷移。

調(diào)度算法,第一種和第二種,只滿足三個(gè)條件的某一部分。

不用的調(diào)度適用于不同的場(chǎng)景,需要根據(jù)實(shí)際的需求選擇相應(yīng)的調(diào)度算法。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19032

    瀏覽量

    228448
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    49938

    瀏覽量

    419609
  • SMP
    SMP
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    19598
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6603

    瀏覽量

    123021
  • 調(diào)度算法
    +關(guān)注

    關(guān)注

    1

    文章

    68

    瀏覽量

    11960

原文標(biāo)題:總結(jié)

文章出處:【微信號(hào):風(fēng)火輪技術(shù)團(tuán)隊(duì),微信公眾號(hào):風(fēng)火輪技術(shù)團(tuán)隊(duì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    異構(gòu)多核處理器系統(tǒng)的特點(diǎn)及基于加權(quán)優(yōu)先級(jí)的任務(wù)調(diào)度算法分析

    異構(gòu)多核處理器以其芯片面積利用率高、處理器功耗低、應(yīng)用程序的并行化程度高等諸多優(yōu)勢(shì)成為處理器體系結(jié)構(gòu)發(fā)展的一個(gè)重要方向,同時(shí)它的出現(xiàn)給計(jì)算機(jī)學(xué)科發(fā)展帶來(lái)了新的挑戰(zhàn)。研究發(fā)現(xiàn)多核處理器任務(wù)調(diào)度的優(yōu)劣對(duì)處理器的執(zhí)行時(shí)間、任務(wù)
    的頭像 發(fā)表于 12-04 10:03 ?5623次閱讀
    異構(gòu)<b class='flag-5'>多核</b>處理器系統(tǒng)的特點(diǎn)及基于加權(quán)優(yōu)先級(jí)的任務(wù)<b class='flag-5'>調(diào)度</b><b class='flag-5'>算法</b><b class='flag-5'>分析</b>

    一種改進(jìn)的SEDF調(diào)度算法

    【摘要】:Xen由于其很低的性能損失,而逐漸成為最受歡迎的虛擬化管理工具之一.但是,它的SEDF調(diào)度算法存在在SMP下不能支持全局負(fù)載平衡的問(wèn)題.本文針對(duì)此問(wèn)題提出一種名為IEDF的改進(jìn)算法
    發(fā)表于 04-24 10:03

    多核處理器設(shè)計(jì)九大要素

    訪問(wèn)的仲裁機(jī)制將是CMP處理器研究的重要內(nèi)容?! ? 操作系統(tǒng)設(shè)計(jì): 任務(wù)調(diào)度、中斷處理、同步互斥  對(duì)于多核CPU,優(yōu)化操作系統(tǒng)任務(wù)調(diào)度算法是保證效率的關(guān)鍵。一般任務(wù)
    發(fā)表于 04-13 09:48

    AliOS Things SMP系統(tǒng)及其在esp32上實(shí)現(xiàn)示例

    摘要: AliOS Things實(shí)現(xiàn)了基本的SMP調(diào)度框架,支持多CPU體系的系統(tǒng)運(yùn)行和調(diào)度機(jī)制。任務(wù)可以動(dòng)態(tài)在多核間進(jìn)行切換或者綁定運(yùn)行;高優(yōu)先級(jí)任務(wù)可以最大化利用空閑資源核運(yùn)行?;?/div>
    發(fā)表于 05-15 12:45

    多核處理器分類之SMP與NUMA簡(jiǎn)析

    多核處理器,在每個(gè)多核處理器芯片內(nèi)部的L2和L3可以采用共享緩存或SMP方式,而在多個(gè)芯片間采用DSM結(jié)構(gòu)互連。原作者:老秦談芯
    發(fā)表于 06-07 16:46

    中國(guó)首顆ARM+RISC-V異構(gòu)多核MCU伴隨IAR在上海國(guó)際嵌入式展亮相

    的CPU內(nèi)核運(yùn)行同一套程序(一般通過(guò)CoreID來(lái)實(shí)現(xiàn)不同的CPU內(nèi)核執(zhí)行不同的操作),AMP指的是不同的CPU內(nèi)核運(yùn)行不同的程序。只有同構(gòu)多核才能實(shí)現(xiàn)SMP,同構(gòu)
    發(fā)表于 06-15 18:32

    最遲預(yù)分配容錯(cuò)實(shí)時(shí)調(diào)度算法設(shè)計(jì)與分析

    提出一種多類型任務(wù)集的容錯(cuò)實(shí)時(shí)調(diào)度算法,詳細(xì)分析算法調(diào)度機(jī)制,證明了該算法的正確性,并給出了
    發(fā)表于 11-20 12:01 ?17次下載

    基于DiffServ模型的調(diào)度算法

    區(qū)分服務(wù)(DiffServ)模型中不同隊(duì)列調(diào)度算法對(duì)網(wǎng)絡(luò)性能有不同的影響。該文介紹了DiffServ實(shí)現(xiàn)模型,分析比較了目前4種典型隊(duì)列調(diào)度算法
    發(fā)表于 04-13 09:29 ?14次下載

    搶占閾值調(diào)度算法分析與研究

    本文詳細(xì)論述了應(yīng)用于靜態(tài)優(yōu)先級(jí)實(shí)時(shí)系統(tǒng)的搶占閾值調(diào)度算法。描述了算法實(shí)現(xiàn)和任務(wù)集合可調(diào)度性判定公式的推導(dǎo),分析
    發(fā)表于 08-04 08:32 ?6次下載

    網(wǎng)格任務(wù)調(diào)度算法研究

    網(wǎng)格任務(wù)調(diào)度算法是影響網(wǎng)格成功與否的關(guān)鍵技術(shù)之一。本文總結(jié)了網(wǎng)格計(jì)算系統(tǒng)的體系結(jié)構(gòu)和特征,分析了網(wǎng)格任務(wù)調(diào)度算法的基本原理和性能指標(biāo),并對(duì)各
    發(fā)表于 08-14 10:27 ?10次下載

    一種多核混合分區(qū)調(diào)度算法設(shè)計(jì)與實(shí)現(xiàn)

    一種多核混合分區(qū)調(diào)度算法設(shè)計(jì)與實(shí)現(xiàn)_郝繼鋒
    發(fā)表于 01-07 19:00 ?1次下載

    一種基于分組的多核嵌入式實(shí)時(shí)調(diào)度算法

    一種基于分組的多核嵌入式實(shí)時(shí)調(diào)度算法_康鵬
    發(fā)表于 01-07 21:39 ?0次下載

    多核嵌入式系統(tǒng)內(nèi)聯(lián)網(wǎng)絡(luò)優(yōu)化調(diào)度

    處理核之間的通信問(wèn)題是多核系統(tǒng)中不可避免的問(wèn)題,根據(jù)具體應(yīng)用,進(jìn)行核間內(nèi)聯(lián)網(wǎng)絡(luò)的定制和設(shè)計(jì)是一個(gè)可行的研究方向。針對(duì)該問(wèn)題提出了任務(wù)節(jié)點(diǎn)的通信調(diào)度算法,通過(guò)采用點(diǎn)對(duì)點(diǎn)連接作為內(nèi)聯(lián)網(wǎng)絡(luò)的方式,在不增加
    發(fā)表于 12-01 11:34 ?1次下載
    <b class='flag-5'>多核</b>嵌入式系統(tǒng)內(nèi)聯(lián)網(wǎng)絡(luò)優(yōu)化<b class='flag-5'>調(diào)度</b>

    嵌入式多核處理器任務(wù)調(diào)度研究

    針對(duì)多核處理器在調(diào)度多個(gè)任務(wù)時(shí)效率不高的問(wèn)題,提出了一種基于粒子群優(yōu)化算法的嵌入式多核多線程系統(tǒng)任務(wù)調(diào)度
    發(fā)表于 01-17 17:49 ?1次下載
    嵌入式<b class='flag-5'>多核</b>處理器任務(wù)<b class='flag-5'>調(diào)度</b>研究

    異構(gòu)多核處理器任務(wù)調(diào)度算法

    在異構(gòu)多核處理器條件下,Min-Min算法調(diào)度性能較好但在系統(tǒng)實(shí)時(shí)響應(yīng)方面存在不足。最小空閑時(shí)間優(yōu)先調(diào)度算法( LSF)、最早截止時(shí)間優(yōu)先
    發(fā)表于 02-07 11:07 ?2次下載