多核心排程的難度在哪?將來作業系統是否能夠實現頻率不夠,核心來湊?能否做到無腦堆核心就能達到高效能?

時間 2021-06-05 15:43:34

1樓:

很簡單。假設有一家飯店,原本只有一名廚師。來了100個客人點了1000盆菜,顯然很多人要等很久才能吃上菜。

聘請一位水平高超手腳麻利的廚師,要價很高,而且再麻利也不能5分鐘燒1000盆菜;但是,如果聘請1000名廚師,那麼就有可能可以在5分鐘內燒出1000盆菜。

然而,現在有乙個客人,一日三餐都在這個飯店裡吃,而且每餐只點乙個菜。顯然這1000位廚師對於這位客人來說,沒有啥意義。要加快這位客人的菜的上菜速度,得找手腳麻利的廚子。

又有乙個客人,要的菜十分複雜。普通得廚師都不會做。對於這種情況這1000名廚師也沒啥太大的用場,頂多給大神廚師打個下手,稍微起點兒作用。

世界上有些事情是可以靠鋪量解決的,有些則不能,必須提質才能提速。

2樓:愛你怕怕

不懂你意思。

多核心最麻煩地方當然是散熱啊。

已有解決辦法了。 雲計算,或者分布式計算。

如果你指代單機多核,那麼就是散熱的問題了。

3樓:LoveCandy

目前cpu發展的趨勢就是堆核心,因為硬體瓶頸啊,因為工藝、散熱等原因,主頻實在提不上去了,就只能靠堆核心。

多核排程難在併發,對鎖的粒度把控要求非常高。鎖粒度太粗,容易成為瓶頸,不能充分發揮每個核心的算力;粒度太細,又會增加程式的複雜度,且更容易出現死鎖問題。因為鎖有各種各樣的問題,所以也有人在研究無鎖(Lock free)程式設計,比如boost的strand,思想就是盡量把相關資料放在乙個執行緒裡操作,這樣就能大大減少鎖的數量。

具體我就沒研究過了。

要提公升效能,光靠無腦堆核心肯定是不行的,因為程式的瓶頸不一定在cpu上,io也是非常重要的瓶頸,甚至是比cpu更大的瓶頸。cache命中率,記憶體讀寫速度,磁碟讀寫速度,網路頻寬,都可能成為瓶頸。所以要對症下藥才行。

對於io密集型程式,比如資料庫啥的,你堆一萬個核心也沒用因為大家都在等io。無腦堆核心只對計算密集型程式有效。另外現在還有gpu加速,我理解的這個東西的本質就是把併發計算交給硬體來完成,以提高效率並降低軟體的複雜度。

總之,效能提公升不是簡單的事,先找到瓶頸,再想辦法優化才行

多核下作業系統的設計怎麼學習?

Lele wei cpu多核需要晶元支援硬體虛擬化,同時結合軟體虛擬化,以充分利用多核的效能。汽車平台還有多核硬體虛擬化和軟體虛擬化的操作,可以讓smp上同時跑乙個 多個guest os和乙個rtos,以滿足汽車對實時性和其他非實時性任務的需求,可以參考下green hills的解決方案,能滿足可靠...

如何評價華為的自動駕駛作業系統核心獲得ASIL D的認證?

biubiu 成為中國首個獲得ASIL D認證的作業系統核心,同時該核心已於2019年9月獲得Security領域高等級資訊保安認證 CCEAL5 標誌著華為自動駕駛作業系統核心已成為業界首個擁有SecuritySafety雙高認證的商用OS核心。 洱海之東 先來看看這個證書的含金量,ISO 262...

乙個作業系統可以有多個核心嗎 是怎樣實現的

jiangtao9999 RT Linux 就是多核心設計。我記得 RT Linux 靠 CPU 的多核心做隔離,Linux 核心靠乙個抽象層執行在實時核心之上。其實你完全可以先做乙個只支援虛擬機器的核心,直接核心級的虛擬機器,之後在虛擬機器上去跑子系統。當然,邏輯上,這些其實是單核心,其他的核心只...