轉自:https://blog.csdn.net/honour2sword/article/details/45248121
多核化趨勢正在改變IT計算的面貌。跟傳統的單核CPU相比,多核CPU帶來了更強的並行處理能力、更高的計算密度和更低的時鐘頻率,並大大減少了散熱和功耗。目前,在幾大主要芯片廠商的產品線中,雙核、四核甚至八核CPU已經佔據了主要地位。在將應用從單核環境向多核系統遷移的過程中,通過選擇合適的操作系統,應用開發人員可以大大地減少麻煩。
系統設計和軟件開發面臨的多核挑戰
有效地利用多核技術,不僅會大大地改善下一代網絡環境的性能和可擴展性,還會對系統設計和軟件開發產生深遠的影響。目前,系統設計工程師和軟件工程師們非常熟悉針對單核CPU的編程環境,卻對多核計算一無所知,或者缺乏足夠的經驗技能。
圖1 典型的多核CPU結構
例如,多核芯片如何管理共享資源就是一大挑戰。在大多數情況下,多核CPU的內核擁有獨立的L1緩存,共享L2緩存、內存子系統、中斷子系統和外設(如圖1)。因此,系統設計師需要讓每個內核獨立訪問某種資源,並確保資源不會被其他內核上的應用程序爭搶。
多核的出現還讓系統設計變得更加複雜。如運行在不同內核上的應用爲了互相訪問、相互協作,需要進行一些獨特的設計,如高效的IPC(進程間通信,interprocess communication)機制、共享內存的數據結構和同步原語(synchronization primitives)。
程序代碼遷移(code migration)也是個問題。大多數系統廠商都在針對單核CPU架構的代碼庫上進行了大量投資。因而,這些公司需要有一個清晰的遷移策略,來使其代碼可以最大化地利用多核硬件資源。
針對多核設計的操作系統可能會大大減少解決上述挑戰所需的工作量,也可能增加另一些問題的複雜性。這全都取決於操作系統是如何支持多核芯片的多處理模式。多處理模式主要有以下三種:
•非對稱多處理(Asymmetric multiprocessing,AMP) |
每個CPU內核運行一個獨立的操作系統或同一操作系統的獨立實例(instantiation)。 |
•對稱多處理(Symmetric multiprocessing,SMP) |
一個操作系統的實例可以同時管理所有CPU內核,且應用並不綁定某一個內核。 |
•混合多處理(Bound multiprocessing,BMP) |
一個操作系統的實例可以同時管理所有CPU內核,但每個應用被鎖定於某個指定的核心。 |
上述三種模式都有其各自的優點和缺點。每一個模式適合於解決某方面的特定問題,而且對操作系統的要求也各不相同。