[發(fā)明專利]一種啟動多操作系統(tǒng)的方法和裝置無效
| 申請?zhí)枺?/td> | 200910082386.4 | 申請日: | 2009-04-15 |
| 公開(公告)號: | CN101533355A | 公開(公告)日: | 2009-09-16 |
| 發(fā)明(設(shè)計)人: | 朱而剛 | 申請(專利權(quán))人: | 杭州華三通信技術(shù)有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;G06F9/48 |
| 代理公司: | 北京德琦知識產(chǎn)權(quán)代理有限公司 | 代理人: | 謝安昆;宋志強 |
| 地址: | 310053浙江省杭州市高新技術(shù)產(chǎn)業(yè)*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 啟動 操作系統(tǒng) 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及多操作系統(tǒng)技術(shù)領(lǐng)域,尤指一種啟動多操作系統(tǒng)的方法和裝置。
背景技術(shù)
多核處理器由多個核組成,其中包括一個主核以及若干從核。主核就是多核處理器上電后啟動的第一個核;從核就是在主核啟動后,被主核使能的核。一般從核硬件重啟時,主核不會硬件重啟;但主核硬件重啟時,整個多核處理器都會重啟。因此運行于主核的操作系統(tǒng)稱為主操作系統(tǒng),運行于從核的操作系統(tǒng)稱為從操作系統(tǒng)。
圖1是現(xiàn)有技術(shù)中的多核處理器系統(tǒng)的典型硬件架構(gòu)示意圖。在圖1中,多核處理器有兩個核,分別為核0和核1,其中核0為主核,核1為從核;內(nèi)存、閃存(Flash)和硬盤等外部資源由兩個核共享;啟動閃存(Boot?Flash)的容量比較小,一般只存放操作系統(tǒng)的啟動加載程序(Boot?loader),并且多核處理器上電后的第一條指令必須映射到Boot?Flash上,即Boot?loader是多核處理器上電后執(zhí)行的第一個程序,類似于PC機的基本輸入輸出系統(tǒng)(BIOS)。
在圖1所示的多核處理器系統(tǒng)中運行多操作系統(tǒng),每個核運行一個獨立的操作系統(tǒng),即核0運行操作系統(tǒng)0,核1運行操作系統(tǒng)1,而且為了避免兩個操作系統(tǒng)在訪問外部資源時產(chǎn)生沖突,需要對外部資源認(rèn)為進行一些規(guī)劃,例如,一種規(guī)劃方式如下:
對于閃存Flash,存放操作系統(tǒng)0的啟動文件,限制只能操作系統(tǒng)0訪問;對應(yīng)硬盤,存在操作系統(tǒng)1的啟動文件,限制只能操作系統(tǒng)1訪問;啟動閃存Boot?Flash比較特殊,兩個核啟動時的第一條指令是相同的,都位于Boot?Flash中,兩個操作系統(tǒng)均需要訪問;對于內(nèi)存,在邏輯上劃分為三個部分:操作系統(tǒng)0只能訪問的部分、操作系統(tǒng)1只能訪問的部分以及操作系統(tǒng)0和1都能訪問的共享內(nèi)存部分。需要說明的是,這只是對外部資源的一種規(guī)劃方式而已,可以根據(jù)實際需要進行不同的規(guī)劃。
為了說明多核多操作系統(tǒng)的啟動流程,這里首先介紹單核單操作系統(tǒng)的啟動流程
圖2是現(xiàn)有技術(shù)中的單核單操作系統(tǒng)的啟動流程示意圖。如圖2所示,在單核處理器中運行的單操作系統(tǒng)的啟動流程包括以下四個步驟:
201,單核處理器上電后,跳轉(zhuǎn)到啟動閃存Boot?Flash中,開始執(zhí)行Bootloader第一條代碼指令;
202,依據(jù)Boot?loader的代碼指令將Boot?loader自身搬移到高端內(nèi)存,并跳轉(zhuǎn)到內(nèi)存中執(zhí)行Boot?loader;這里高端內(nèi)存是指內(nèi)存中的具有高位地址的存儲空間,相應(yīng)地低端內(nèi)存是指內(nèi)存中的具有低位地址的存儲空間。
203,依據(jù)Boot?loader的代碼指令將閃存Flash中的啟動文件搬移到低端內(nèi)存中;
204,依據(jù)Boot?loader的代碼指令跳轉(zhuǎn)到操作系統(tǒng)的入口地址,即操作系統(tǒng)的啟動文件的入口地址,執(zhí)行操作系統(tǒng)的啟動文件,從而使得操作系統(tǒng)啟動。
多核多操作系統(tǒng)的啟動也需要完成上述四個基本步驟,但需要注意核與核之間的配合,避免訪問外部資源的沖突。在目前的多核多操作系統(tǒng)中采用單Boot?loader方式,即一個Boot?loader啟動多個操作系統(tǒng),一般都是在主核上運行Boot?loader,Boot?loader向內(nèi)存中加載從核的操作系統(tǒng)啟動文件,然后通過核間消息或共享內(nèi)存通知從核啟動自己的操作系統(tǒng),最后主核啟動自己的操作系統(tǒng)。
圖3是圖1中的多操作系統(tǒng)啟動的流程示意圖。核0為主核,運行操作系統(tǒng)0,使用內(nèi)存0;核1為從核,運行操作系統(tǒng)1,使用內(nèi)存1,則如圖3所示:
核0執(zhí)行由實線箭頭表示的如下步驟:
301A,執(zhí)行啟動閃存中的Boot?loader的代碼,進行初始化,使能核1;
302A,依據(jù)Boot?loader的代碼指令將Boot?loader自身從啟動閃存中搬移到內(nèi)存0的高端地址,跳轉(zhuǎn)到內(nèi)存中執(zhí)行Boot?loader;
303A,依據(jù)內(nèi)存中的Boot?loader的代碼指令將操作系統(tǒng)1的啟動文件1加載到內(nèi)存1中,通過核間消息通知核1啟動;
304A,依據(jù)內(nèi)存中的Boot?loader的代碼指令將操作系統(tǒng)0的啟動文件0加載到內(nèi)存0中;
305A,依據(jù)Boot?loader的代碼指令跳轉(zhuǎn)到操作系統(tǒng)0的啟動文件0的入口地址,運行啟動文件0,從而使得操作系統(tǒng)0啟動。
核1執(zhí)行由虛線箭頭表示的如下步驟:
301B,核1被使能后,執(zhí)行Boot?loader的代碼,完成必要的初始化,進入睡眠狀態(tài);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州華三通信技術(shù)有限公司,未經(jīng)杭州華三通信技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910082386.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





