<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 多核、虛擬化、多操作系統(tǒng)的軟件趨勢(shì)

          多核、虛擬化、多操作系統(tǒng)的軟件趨勢(shì)

          作者:迎九 《電子產(chǎn)品世界》編輯 時(shí)間:2010-02-08 來源:電子產(chǎn)品世界 收藏

            將原本分散的多處理器系統(tǒng)整合為單一系統(tǒng)并不能通過簡單地將多個(gè)系統(tǒng)簡單地壓縮在一個(gè)系統(tǒng)中來實(shí)現(xiàn)。系統(tǒng)架構(gòu)的變化使多個(gè)系統(tǒng)之間的并行運(yùn)行和通信協(xié)調(diào)方式發(fā)生了不小的變化。

          本文引用地址:http://www.ex-cimer.com/article/105985.htm

            在采用技術(shù)的時(shí)候,操作系統(tǒng)管理內(nèi)核的基本方式有兩種:第一種是對(duì)稱多處理(SMP),這是由一個(gè)操作系統(tǒng)來控制多個(gè)內(nèi)核。只要有一個(gè)內(nèi)核空閑可用,操作系統(tǒng)就在線程等待隊(duì)列中分配下一個(gè)線程給這個(gè)空閑內(nèi)核來運(yùn)行。第二種是非對(duì)稱多處理(AMP),每個(gè)內(nèi)核上都運(yùn)行各自的操作系統(tǒng)。

            因此,多核系統(tǒng)并不是直接把多個(gè)芯片的多處理器濃縮到單一芯片之中這么簡單。實(shí)際上,多核系統(tǒng)和多處理器系統(tǒng)之間存在著許多重要的區(qū)別,導(dǎo)致不能把多處理器系統(tǒng)上的軟件直接移植到多核系統(tǒng)上來。

            多處理器系統(tǒng)和多核系統(tǒng)的主要區(qū)別之一就是,在多處理器系統(tǒng)中,CPU之間的界線是比較清晰的。在典型的多處理器情況下,多個(gè)CPU通過總線連接起來,即便是共享外部存儲(chǔ)器,這些CPU基本上都是獨(dú)立運(yùn)行的。在多核系統(tǒng)中,情況就有所不同。不論采用何種架構(gòu),在多核系統(tǒng)中,被共享的東西非常多,例如中斷控制器、外設(shè)以及Cache(高速緩存)等。

            下的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)來管理。但是,當(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)系;第二,更簡便的方法是采用Supervisor或者Hypervisor,這是一些少量的代碼,負(fù)責(zé)管理協(xié)調(diào)多個(gè)操作系統(tǒng)。顯然,第二種方式是更徹底、靈活、具有擴(kuò)展性的多核軟件架構(gòu)。

            Hypervisor 之所以能夠有效地管理運(yùn)行在其上的多個(gè)操作系統(tǒng),得益于分區(qū)和的方法??偟膩碚f,系統(tǒng)中有三類資源可以被:執(zhí)行單元(CPU)、內(nèi)存和設(shè)備。執(zhí)行單元是基于時(shí)間片來進(jìn)行。內(nèi)存虛擬化是把物理內(nèi)存劃分成許多區(qū)域。設(shè)備虛擬化則是通過給設(shè)備定義接口和API調(diào)用來提高使用靈活性和利用率。

            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)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();