多核、虛擬化、多操作系統(tǒng)的軟件趨勢(shì)
將原本分散的多處理器系統(tǒng)整合為單一多核系統(tǒng)并不能通過簡(jiǎn)單地將多個(gè)系統(tǒng)簡(jiǎn)單地壓縮在一個(gè)多核系統(tǒng)中來(lái)實(shí)現(xiàn)。系統(tǒng)架構(gòu)的變化使多個(gè)系統(tǒng)之間的并行運(yùn)行和通信協(xié)調(diào)方式發(fā)生了不小的變化。
本文引用地址:http://m.butianyuan.cn/article/105985.htm在采用多核技術(shù)的時(shí)候,操作系統(tǒng)管理內(nèi)核的基本方式有兩種:第一種是對(duì)稱多處理(SMP),這是由一個(gè)操作系統(tǒng)來(lái)控制多個(gè)內(nèi)核。只要有一個(gè)內(nèi)核空閑可用,操作系統(tǒng)就在線程等待隊(duì)列中分配下一個(gè)線程給這個(gè)空閑內(nèi)核來(lái)運(yùn)行。第二種是非對(duì)稱多處理(AMP),每個(gè)內(nèi)核上都運(yùn)行各自的操作系統(tǒng)。
因此,多核系統(tǒng)并不是直接把多個(gè)芯片的多處理器濃縮到單一芯片之中這么簡(jiǎn)單。實(shí)際上,多核系統(tǒng)和多處理器系統(tǒng)之間存在著許多重要的區(qū)別,導(dǎo)致不能把多處理器系統(tǒng)上的軟件直接移植到多核系統(tǒng)上來(lái)。
多處理器系統(tǒng)和多核系統(tǒng)的主要區(qū)別之一就是,在多處理器系統(tǒng)中,CPU之間的界線是比較清晰的。在典型的多處理器情況下,多個(gè)CPU通過總線連接起來(lái),即便是共享外部存儲(chǔ)器,這些CPU基本上都是獨(dú)立運(yùn)行的。在多核系統(tǒng)中,情況就有所不同。不論采用何種架構(gòu),在多核系統(tǒng)中,被共享的東西非常多,例如中斷控制器、外設(shè)以及Cache(高速緩存)等。
多操作系統(tǒng)下的Supervisor或Hypervisor
當(dāng)你希望運(yùn)行SMP(同構(gòu)核)環(huán)境時(shí),多核系統(tǒng)的這種特征通常表現(xiàn)為一種優(yōu)勢(shì),因?yàn)樗械膬?nèi)核都由同一個(gè)操作系統(tǒng)來(lái)管理。但是,當(dāng)你要在多核系統(tǒng)中同時(shí)運(yùn)行兩種以上的操作系統(tǒng)時(shí),例如同時(shí)運(yùn)行一套R(shí)TOS(嵌入式實(shí)時(shí)操作系統(tǒng))和一套通用操作系統(tǒng),就會(huì)遇到較多的困難。在這種情況下,會(huì)有兩種選擇:第一,在兩個(gè)操作系統(tǒng)之間進(jìn)行頻繁的溝通,例如在它們之間建立主、從關(guān)系;第二,更簡(jiǎn)便的方法是采用Supervisor或者Hypervisor,這是一些少量的代碼,負(fù)責(zé)管理協(xié)調(diào)多個(gè)操作系統(tǒng)。顯然,第二種方式是更徹底、靈活、具有擴(kuò)展性的多核軟件架構(gòu)。
Hypervisor 之所以能夠有效地管理運(yùn)行在其上的多個(gè)操作系統(tǒng),得益于分區(qū)和虛擬化的方法??偟膩?lái)說(shuō),系統(tǒng)中有三類資源可以被虛擬化:執(zhí)行單元(CPU)、內(nèi)存和設(shè)備。執(zhí)行單元虛擬化是基于時(shí)間片來(lái)進(jìn)行。內(nèi)存虛擬化是把物理內(nèi)存劃分成許多區(qū)域。設(shè)備虛擬化則是通過給設(shè)備定義接口和API調(diào)用來(lái)提高使用靈活性和利用率。
Hypervisor并不是一個(gè)全新的概念,在服務(wù)器中早已得到廣泛而且成功的應(yīng)用。不過,嵌入式系統(tǒng)中經(jīng)常用到的Hypervisor主要是對(duì)內(nèi)存和設(shè)備進(jìn)行虛擬化,以便在操作系統(tǒng)之間的資源共享得到完全的保證,而不是對(duì)執(zhí)行單元進(jìn)行虛擬化。這種專用的Hypervisor比較小,而且直接運(yùn)行在硬件上,不像服務(wù)器中用到的Hypervisor主要運(yùn)行在完整的操作系統(tǒng)之上并且使用宿主操作系統(tǒng)的資源。
在嵌入式Hypervisor中,性能和獨(dú)立性是兩大最重要的需求,而后向兼容性(可以讓從屬操作系統(tǒng)不經(jīng)修改即可運(yùn)行在宿主操作系統(tǒng)之上)是服務(wù)器Hypervisor中非常重要的需求。為了滿足嵌入式系統(tǒng)的特殊需求,這類Hypervisor應(yīng)當(dāng)采用以下特殊設(shè)計(jì):
•設(shè)備盡可能直接映射給從屬操作系統(tǒng),以便獲得最高的性能,以及實(shí)現(xiàn)最佳的隔離性。
•應(yīng)當(dāng)具有更強(qiáng)的可伸縮性,可以自主選擇對(duì)哪些部分進(jìn)行虛擬化,也可以自主選擇虛擬化的目的是提高性能還是提高隔離性。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論