問題描述
Ubuntu是否使用多核CPU(據說Windows 7會這樣做)?
換句話說,它是否進行了多任務優化,以便用戶可以從4+核心處理器中受益?
最佳解決思路
是的,Ubuntu針對多核CPU進行了優化,並且已經存在多年。
“2.0版(Linux內核版)於1996年6月9日發布。該係列共有41個版本.2.0的主要特性是SMP支持(即單個係統中的對稱多處理),支持更多類型的處理器“。
次佳解決思路
Ubuntu是一個操作係統,一個Linux發行版。操作係統由幾個軟件組件組成,如內核,libraries,服務/守護進程,應用程序等。
Ubuntu使用Linux kernel,它使用symmetric multiprocessing(SMP)和多個內核。它可以很好地從low-end single-cpu single-core係統擴展到具有數千個multi-core CPU的high-end超級計算機集群。
Ubuntu附帶了數百個庫,其中一些是multi-threaded和thread-safe,其中一些不是。在某些情況下,將它們作為multi-threaded是有意義的,在其他情況下它不適用,通常可能或沒有多大意義。
Ubuntu附帶了數百個應用程序,其中一些被編碼為使用multi-core CPU,有些則沒有。在某些情況下,對應用程序進行編碼是有意義的,在其他情況下,它是不可能的。並非所有可以或應該使用多個核心的應用程序都這樣做。
例如,遊戲使用multi-core用於圖形,音頻,網絡,物理等等是有意義的。但是對於multi-core意識到的計算器,截圖工具,suduko或菜單編輯器沒有意義。
第三種解決思路
Ubuntu的kernel現在支持多個CPU,如果它的multi-core或多個CPU在一個係統中不會真正重要,它們將得到完美處理。
但是,您必須注意的一件事是,僅僅因為係統支持多個CPU /核心而係統中存在這些CPU並不意味著您的應用程序將自動運行得更快。你現在被告知對麵很多天,它是一個營銷的東西。
對於同時利用多個CPU /核心的應用程序,需要構建它以共享這些CPU /核心上的進程負載。
即:假設你在Windows中運行像wordpad
一樣簡單的東西,你用它打開一個巨大的文本文件,加載時間將是相同的,你有1個CPU或1億個CPU(對於具有相同總線速度和相似的CPU)建築學.c)。
Linux Kernel和Ubuntu發行版也是如此,如果一個應用程序是為單個線程構建的,那麽就沒有更多的CPU可以做了。
操作係統現在用來優化多個CPU /核心上的應用程序負載的一件事就是能夠在核心上運行一個不像其他核心那樣負載的核心,從而平衡負載並確保你的多核心利用率是最佳的。在實踐中,使用該技術隻會帶來很小的速度提升。
如果你真的想看到你的內核閃耀,你需要使用支持symmetric multiprocessing的程序來進行大量的CPU利用率,比如視頻編輯等。