專(zhuān)利名稱(chēng)::一種實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及多操作系統(tǒng)
技術(shù)領(lǐng)域:
,尤指多核多操作系統(tǒng)
技術(shù)領(lǐng)域:
。
背景技術(shù):
:多核處理器由多個(gè)核組成,每個(gè)核又由若干硬件線(xiàn)程組成。各硬件線(xiàn)程既有各自獨(dú)立的硬件資源,如寄存器、一級(jí)緩存等,又有共享的硬件資源,如內(nèi)存、二級(jí)緩存、外設(shè)等。多核處理器的硬件線(xiàn)程在邏輯上相當(dāng)于一個(gè)獨(dú)立的CPU,硬件線(xiàn)程間的通信機(jī)制,如核間消息、核間中斷等,使得硬件線(xiàn)程之間的交互變得非常方便?;诙嗪颂幚砥鞯囊陨咸攸c(diǎn),只要對(duì)內(nèi)存和外設(shè)等資源進(jìn)行合理的規(guī)劃,在多核處理器上運(yùn)行多操作系統(tǒng)是可行的。操作系統(tǒng)一般會(huì)使用文件系統(tǒng),文件系統(tǒng)中的文件保存在閃存(Flash)、CF卡或硬盤(pán)等非易失性存儲(chǔ)介質(zhì)中。與內(nèi)存不同,非易失性存儲(chǔ)介質(zhì)在掉電后,存儲(chǔ)的內(nèi)容不會(huì)丟失,因此非常適合存儲(chǔ)操作系統(tǒng)相關(guān)的版本文件或日志等文件。但是,訪(fǎng)問(wèn)非易失性存儲(chǔ)介質(zhì)需要遵循嚴(yán)格的時(shí)序關(guān)系,例如,擦除Flash需要遵循如圖1所示的時(shí)序關(guān)系。圖1是現(xiàn)有技術(shù)中擦除Flash的流程圖。如圖l所示,擦除開(kāi)始后,向Flash芯片寫(xiě)擦除命令序列,輪詢(xún)數(shù)據(jù),判斷擦除是否完成,是則擦除結(jié)束,否則繼續(xù)輪詢(xún)數(shù)據(jù),判斷擦除是否完成??梢钥闯?,在Flash的驅(qū)動(dòng)程序中,必須保證對(duì)Flash芯片的互斥訪(fǎng)問(wèn)。在多核系統(tǒng)中運(yùn)行單操作系統(tǒng)時(shí),不同硬件線(xiàn)程或核可以通過(guò)信號(hào)量或自旋鎖的方式來(lái)保證對(duì)Flash芯片等存儲(chǔ)介質(zhì)芯片的互斥訪(fǎng)問(wèn)。而在多核系統(tǒng)中運(yùn)行多操作系統(tǒng)時(shí),由于不同的硬件線(xiàn)程或核運(yùn)行不同的操作系統(tǒng),無(wú)法通過(guò)信號(hào)量或自旋鎖來(lái)保證互斥。然而在實(shí)際的運(yùn)行多操作系統(tǒng)的多核處理器系統(tǒng)中,為了節(jié)約硬件成本或節(jié)省單板的布線(xiàn)空間,有時(shí)確實(shí)需要多操作系統(tǒng)共享Flash、CF卡或硬盤(pán)等存儲(chǔ)介質(zhì),例如共享的存儲(chǔ)介質(zhì)中存放多個(gè)操作系統(tǒng)的版本文件或文件系統(tǒng)等。目前,有一種利用網(wǎng)絡(luò)文件系統(tǒng)(NFS,NetworkFileSystem)實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方案。NFS是一項(xiàng)用于在不同機(jī)器、不同操作系統(tǒng)之間通過(guò)網(wǎng)絡(luò)互相共享各自的文件的技術(shù)。多操作系統(tǒng)之間利用各自的網(wǎng)口使用NFS,以A、B和C三個(gè)操作系統(tǒng)為例,搡作系統(tǒng)A作為對(duì)外提供NFS服務(wù)的服務(wù)器,負(fù)責(zé)對(duì)共享存儲(chǔ)介質(zhì)的操作,操作系統(tǒng)B和C作為NFS客戶(hù)端,通過(guò)網(wǎng)絡(luò)和NFS協(xié)議操作共享存儲(chǔ)介質(zhì)上的文件。但是,上述方案存在如下缺點(diǎn)(1)要求所有需要訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)的操作系統(tǒng)都必須支持NFS協(xié)議,然而有些操作系統(tǒng)本身是不支持NFS的,且NFS協(xié)議比較復(fù)雜,要支持NFS協(xié)議需要開(kāi)發(fā)工作量比較大;(2)NFS通過(guò)網(wǎng)絡(luò)共享各自的文件,這就要牽涉到權(quán)限管理和用戶(hù)管理,維護(hù)復(fù)雜度高。(3)無(wú)論是通過(guò)虛擬的網(wǎng)口還是物理的網(wǎng)口,都需要進(jìn)行兩次以上的內(nèi)存搬移,性能相對(duì)較低。因此,實(shí)現(xiàn)一種簡(jiǎn)單高效的多操作系統(tǒng)訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)的方案,就顯得非常必要了。
發(fā)明內(nèi)容本發(fā)明提供了一種實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方法,方法能夠簡(jiǎn)單高效地實(shí)現(xiàn)多搡作系統(tǒng)共享存儲(chǔ)介質(zhì)。本發(fā)明還提供了一種實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的裝置,該裝置能夠簡(jiǎn)單高效地實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的本發(fā)明公開(kāi)了一種實(shí)現(xiàn)多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方法,該方法應(yīng)用于運(yùn)行在多核處理器上的多個(gè)操作系統(tǒng)之間,該方法包括所述多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)直接操作共享存儲(chǔ)介質(zhì);所述多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),該第二操作系統(tǒng)通過(guò)核間通信機(jī)制,將操作請(qǐng)求通知第一操作系統(tǒng);第一操作系統(tǒng)根據(jù)所述操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知所述任一第二操作系統(tǒng)。本發(fā)明還公開(kāi)了一種實(shí)現(xiàn)多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的裝置,所述多個(gè)操作系統(tǒng)運(yùn)行在多核處理器上,該裝置包括屬于所述多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)的第一核間數(shù)據(jù)處理模塊和存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,屬于所述多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)的第二核間數(shù)據(jù)處理模塊,其中,存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,用于根據(jù)第一核間數(shù)據(jù)處理模塊的指令對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作;第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),通過(guò)核間通信機(jī)制,將所述任一第二操作系統(tǒng)的操作請(qǐng)求通知第一核間數(shù)據(jù)處理模塊;第一核間數(shù)據(jù)處理模塊,用于根據(jù)第二核間數(shù)據(jù)處理模塊發(fā)送的操作請(qǐng)求指令存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知第二核間數(shù)據(jù)處理模塊。由上述技術(shù)方案可見(jiàn),本發(fā)明這種多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)直接操作共享存儲(chǔ)介質(zhì),多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),該第二操作系統(tǒng)通過(guò)核間通信機(jī)制,將操作請(qǐng)求通知第一操作系統(tǒng),然后由第一操作系統(tǒng)根據(jù)所述操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知第二操作系統(tǒng)的技術(shù)方案相對(duì)于現(xiàn)有的利用NFS實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方案,簡(jiǎn)單而高效。圖1是現(xiàn)有技術(shù)中擦除Flash的流程圖2是本發(fā)明實(shí)施例一種實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方法的原理示意圖3是圖2中的操作系統(tǒng)B訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S的流程示意圖;圖4是本發(fā)明實(shí)施例中操作系統(tǒng)A和操作系統(tǒng)B的共享內(nèi)存的示意圖;圖5是本發(fā)明實(shí)施例一種實(shí)現(xiàn)多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的裝置的組成結(jié)構(gòu)框圖。具體實(shí)施例方式本發(fā)明的核心思想是對(duì)于運(yùn)行在多核處理器上的多個(gè)操作系統(tǒng),指定其中的一個(gè)操作系統(tǒng)直接操作共享存儲(chǔ)介質(zhì),而其它操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),通過(guò)核間通信機(jī)制,將操作請(qǐng)求通知指定的操作系統(tǒng),由該指定的操作系統(tǒng)根據(jù)所述操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將搡作結(jié)果通知給發(fā)送操作請(qǐng)求的操作系統(tǒng)。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下對(duì)本發(fā)明進(jìn)4iS舉細(xì)il明。圖2是本發(fā)明實(shí)施例一種實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方法的原理示意圖。如圖2所示,在一個(gè)多核處理器中假設(shè)有三個(gè)核核A、核B和核C,三個(gè)核上各自運(yùn)行一個(gè)操作系統(tǒng),分別為操作系統(tǒng)A、操作系統(tǒng)B和操作系統(tǒng)C。這三個(gè)操作系統(tǒng)需要訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S,S可以是Flash、CF卡或硬盤(pán)等。在圖2中,為了保證對(duì)共享存儲(chǔ)介質(zhì)S訪(fǎng)問(wèn)的互斥性,本發(fā)明中只允許操作系統(tǒng)A直接訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S,而操作泉統(tǒng)B或C要訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S,需要通過(guò)核間通信機(jī)制通知操作系統(tǒng)A,由操作系統(tǒng)A完成對(duì)共享存儲(chǔ)介質(zhì)的訪(fǎng)問(wèn),然后再通過(guò)核間通信機(jī)制通知操作系統(tǒng)B或C。這樣,就把對(duì)共享存儲(chǔ)介質(zhì)的訪(fǎng)問(wèn)問(wèn)題轉(zhuǎn)換為核間通信問(wèn)題。圖2所示的方法可以使得多核處理器上的多操作系統(tǒng)能夠共享一個(gè)存儲(chǔ)介質(zhì),且實(shí)現(xiàn)起來(lái)簡(jiǎn)單高效。下面以?xún)蓚€(gè)操作系統(tǒng)A和B為例來(lái)說(shuō)明訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)的交互過(guò)程,操作系統(tǒng)A為實(shí)際訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)的操作系統(tǒng),其自身訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)的操作與單操作系統(tǒng)訪(fǎng)問(wèn)自身的存儲(chǔ)介質(zhì)相同,是現(xiàn)有技術(shù),這里不再詳述。以下重點(diǎn)描述操作系統(tǒng)B訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)時(shí)的過(guò)程,而操作系統(tǒng)C訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)時(shí)的過(guò)程與操作系統(tǒng)B相同。圖3是圖2中的操作系統(tǒng)B訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S的流程示意圖。如圖3所示,為了完成訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S操作,操作系統(tǒng)B包含核間數(shù)據(jù)處理模塊B和狀態(tài)交互模塊B;而對(duì)于操作系統(tǒng)A而言,因?yàn)樾枰嬲L(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S,所以需要三個(gè)模塊存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊、核間數(shù)據(jù)處理模塊A和狀態(tài)交互模塊A。其中,存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊相當(dāng)于存儲(chǔ)介質(zhì)的驅(qū)動(dòng)程序,進(jìn)行真正訪(fǎng)問(wèn)存儲(chǔ)介質(zhì)的操作,包括讀寫(xiě)數(shù)據(jù)和獲取存儲(chǔ)介質(zhì)信息等。核間數(shù)據(jù)處理模塊負(fù)責(zé)處理核間交互的數(shù)據(jù),如共享內(nèi)存的讀寫(xiě)、核間消息的處理等。狀態(tài)交互模塊用于在操作系統(tǒng)啟動(dòng)和關(guān)機(jī)時(shí)向?qū)Ψ酵▓?bào)自己當(dāng)前的狀態(tài),只有操作系統(tǒng)A和B都完成初始化后,操作系統(tǒng)B才能進(jìn)行訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)S的操作。這里共享內(nèi)存是指操作系統(tǒng)A和操作系統(tǒng)B都可以訪(fǎng)問(wèn)的內(nèi)存,在兩個(gè)操作系統(tǒng)初始化時(shí)將物理內(nèi)存映射到虛擬內(nèi)存的重疊部分的內(nèi)存即為共享內(nèi)存。圖4是本發(fā)明實(shí)施例中搡作系統(tǒng)A和操作系統(tǒng)B的共享內(nèi)存的示意圖。共享內(nèi)存的映射過(guò)程是現(xiàn)有技術(shù),這里不再詳述。,在本實(shí)施例中,在操作系統(tǒng)A和操作系統(tǒng)B的共享內(nèi)存中存放兩部分內(nèi)容分別為讀寫(xiě)數(shù)據(jù)隊(duì)別和共享存儲(chǔ)介質(zhì)信息。在本實(shí)施例中,共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列都為頭尾相接的環(huán)形隊(duì)列,隊(duì)列中為已分配好的內(nèi)存塊,一個(gè)內(nèi)存快的大d、一般為共享存儲(chǔ)介質(zhì)的一個(gè)訪(fǎng)問(wèn)單元的大小,這樣可以避免內(nèi)存分配和釋放的開(kāi)銷(xiāo)。為了內(nèi)存管理的方便,A和B兩個(gè)操作系統(tǒng)約定,由操作系統(tǒng)B對(duì)讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列進(jìn)行管理,將其中的內(nèi)存塊標(biāo)記為空閑或已用。本實(shí)施例中,操作系統(tǒng)A操作共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列的條件如表1所示,操作系統(tǒng)B操作共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列的條件如表2所示:<table>tableseeoriginaldocumentpage14</column></row><table>表2在本實(shí)施例中,共享存儲(chǔ)介質(zhì)信息由操作系統(tǒng)A在啟動(dòng)初始化時(shí)寫(xiě)入共享內(nèi)存(由存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊獲取共享存儲(chǔ)介質(zhì)信息,并發(fā)送給核間數(shù)據(jù)處理模塊A,再由核間數(shù)據(jù)處理模塊A寫(xiě)入共享內(nèi)存),用于操作系統(tǒng)B的初始化。共享存儲(chǔ)介質(zhì)信息包括操作系統(tǒng)B使用的共享存儲(chǔ)介質(zhì)的起始地址,扇區(qū)號(hào)以及存儲(chǔ)空間的大小等信息。在本實(shí)施例中,由于讀寫(xiě)都采用請(qǐng)求-應(yīng)答機(jī)制,因此核間消息隊(duì)列中包括寫(xiě)請(qǐng)求隊(duì)列、讀請(qǐng)求隊(duì)列、寫(xiě)應(yīng)答隊(duì)列和讀應(yīng)答隊(duì)列,分別用于存放寫(xiě)請(qǐng)求核間消息、讀請(qǐng)求核間消息、寫(xiě)應(yīng)答核間消息和讀應(yīng)答核間消息。存放核間消息隊(duì)列的存儲(chǔ)空間由核間通信機(jī)制提供,是現(xiàn)有技術(shù),這里不再詳述。共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列的處理相當(dāng)于數(shù)據(jù)平面的操作,而對(duì)核間消息隊(duì)列的處理相當(dāng)于控制平面的操作,用于訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)時(shí)的邏輯控制。在圖3中,操作系統(tǒng)B對(duì)共享存儲(chǔ)介質(zhì)S訪(fǎng)問(wèn)可以分為如下幾個(gè)階段操作系統(tǒng)啟動(dòng)時(shí)的初始化、共享存儲(chǔ)介質(zhì)的讀操作、共享存儲(chǔ)介質(zhì)的寫(xiě)操作和操作系統(tǒng)關(guān)機(jī)時(shí)的處理,以下分別介紹一、操作系統(tǒng)啟動(dòng)時(shí)的初始化操作系統(tǒng)A啟動(dòng)時(shí)的初始化流程包括Z將物理的共享內(nèi)存映射到虛擬內(nèi)存;Z初始化共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列信息;Z清空核間消息隊(duì)列中的讀請(qǐng)求隊(duì)列和寫(xiě)請(qǐng)求隊(duì)列;Z初始化存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,以使共享存儲(chǔ)介質(zhì)S真正可以訪(fǎng)問(wèn);Z將共享存儲(chǔ)介質(zhì)S的信息寫(xiě)入共享內(nèi)存;Z狀態(tài)交互模塊A向操作系統(tǒng)B發(fā)送核間中斷,通知操作系統(tǒng)B共享存儲(chǔ)介質(zhì)S已可用。操作系統(tǒng)B啟動(dòng)時(shí)的初始化流程包括Z將物理的共享內(nèi)存映射到虛擬內(nèi)存;Z初始化共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列,將讀數(shù)據(jù)隊(duì)列和寫(xiě)數(shù)據(jù)隊(duì)列中的內(nèi)存塊都標(biāo)記為空閑;Z清空核間消息隊(duì)列中的讀應(yīng)答隊(duì)列和寫(xiě)應(yīng)答隊(duì)列;Z如果有核間中斷,在中斷處理函數(shù)中將共享存儲(chǔ)介質(zhì)S的可用標(biāo)志置位,以表示共享存儲(chǔ)介質(zhì)S可用;/從共享內(nèi)存中讀取共享存儲(chǔ)介質(zhì)S的信息,上報(bào)給上層軟件。其中,讀數(shù)據(jù)隊(duì)列、寫(xiě)數(shù)據(jù)隊(duì)列、讀請(qǐng)求隊(duì)列、寫(xiě)請(qǐng)求隊(duì)列、讀應(yīng)答隊(duì)列、寫(xiě)應(yīng)答隊(duì)列以及操作系統(tǒng)A和操作系統(tǒng)B的共享內(nèi)存都是預(yù)先配置好的,操作系統(tǒng)A和操作系統(tǒng)B不需要同時(shí)啟動(dòng)。二、共享存儲(chǔ)介質(zhì)的讀操作操作系統(tǒng)B對(duì)共享存儲(chǔ)介質(zhì)S的讀操作在圖3中用實(shí)線(xiàn)箭頭表示,具體為步驟①,根據(jù)記錄的共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列的信息,操作系統(tǒng)B的核間數(shù)據(jù)處理模塊B從讀數(shù)據(jù)隊(duì)列中找到一塊當(dāng)前可用的內(nèi)存塊M,將其標(biāo)記為已用,然后向操作系統(tǒng)A的核間數(shù)據(jù)處理模塊A發(fā)送讀請(qǐng)求核間消息;該讀請(qǐng)求核間消息中包含操作系統(tǒng)B所要讀取的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要讀取的數(shù)據(jù)長(zhǎng)度和內(nèi)存塊M在共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列中的位置;步驟②,核間數(shù)據(jù)處理模塊A從讀請(qǐng)求隊(duì)列中取出所述讀請(qǐng)求核間消息,從該核間消息中解析出操作系統(tǒng)B所要讀取的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要讀取的數(shù)據(jù)長(zhǎng)度和內(nèi)存塊M在讀數(shù)據(jù)隊(duì)列中的位置;步驟③、④和⑤,核間數(shù)據(jù)處理模塊A調(diào)用存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊的讀函數(shù),將操作系統(tǒng)B要讀取的共享存儲(chǔ)介質(zhì)S的內(nèi)容寫(xiě)入內(nèi)存塊M;步驟,核間數(shù)據(jù)處理模塊A向核間數(shù)據(jù)處理模塊B發(fā)送讀應(yīng)答核間消息,將該讀應(yīng)答核間消息寫(xiě)入讀應(yīng)答隊(duì)列中,其中,該讀應(yīng)答核間消息中包含內(nèi)存塊M的讀數(shù)據(jù)隊(duì)列中的位置信息;步驟⑦,核間數(shù)據(jù)處理模塊B從讀應(yīng)答隊(duì)列中取出讀應(yīng)答核間消息,解析出內(nèi)存塊M在讀數(shù)據(jù)隊(duì)列中的位置;步驟⑧,核間數(shù)據(jù)處理模塊B從共享內(nèi)存的讀數(shù)據(jù)隊(duì)列中的內(nèi)存塊M中讀出數(shù)據(jù),交給操作系統(tǒng)B的上層軟件處理,并將內(nèi)存塊M標(biāo)記為空閑。三、共享存儲(chǔ)介質(zhì)的寫(xiě)操作步驟①,操作系統(tǒng)B的核間數(shù)據(jù)處理模塊B從共享內(nèi)存的寫(xiě)數(shù)據(jù)隊(duì)列中找到當(dāng)前第一塊空閑的內(nèi)存塊N,將要寫(xiě)入共享存儲(chǔ)介質(zhì)S的數(shù)據(jù)寫(xiě)入內(nèi)存塊N,將內(nèi)存塊N標(biāo)記為已用;步驟②,核間數(shù)據(jù)處理模塊B向核間數(shù)據(jù)處理模塊A發(fā)送寫(xiě)請(qǐng)求核間消息,該寫(xiě)請(qǐng)求核間消息中包含操作系統(tǒng)B所要寫(xiě)入的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)S中的起始地址、所要寫(xiě)入的數(shù)據(jù)的長(zhǎng)度和內(nèi)存塊N在共享內(nèi)存中寫(xiě)數(shù)據(jù)隊(duì)列中的位置;步驟③,核間數(shù)據(jù)處理模塊A從寫(xiě)請(qǐng)求隊(duì)列中取出所述寫(xiě)請(qǐng)求核間;肖息,解析出操作系統(tǒng)B所要寫(xiě)入的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)S中的起始地址、所要寫(xiě)入的數(shù)據(jù)的長(zhǎng)度和內(nèi)存塊N在共享內(nèi)存中寫(xiě)數(shù)據(jù)隊(duì)列中的位置;步驟、⑤和⑥,核間數(shù)據(jù)處理模塊A從內(nèi)存塊N中取出所要寫(xiě)入的數(shù)據(jù),并調(diào)用存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊的寫(xiě)函數(shù),將從內(nèi)存塊N中取出的數(shù)據(jù)寫(xiě)入共享存儲(chǔ)介質(zhì)S中的相應(yīng)位置;步驟⑦,核間數(shù)據(jù)處理模塊A向核間數(shù)據(jù)處理模塊B發(fā)送寫(xiě)應(yīng)答核間消息,通知操作系統(tǒng)B寫(xiě)操作已完成;其中,該寫(xiě)應(yīng)答核間消息中包含內(nèi)存塊N在寫(xiě)數(shù)據(jù)隊(duì)列中的位置信息;步驟⑧,操作系統(tǒng)B的核間數(shù)據(jù)處理模塊B從寫(xiě)應(yīng)答隊(duì)列中讀出寫(xiě)應(yīng)答核間消息,根據(jù)其中的內(nèi)存塊N在寫(xiě)數(shù)據(jù)隊(duì)列中的位置,將內(nèi)存塊N標(biāo)記為空閑。三、操作系統(tǒng)關(guān)機(jī)時(shí)的處理操作系統(tǒng)A關(guān)機(jī)時(shí)的處理流程包括Z狀態(tài)交互模塊A向操作系統(tǒng)B發(fā)送核間中斷,通知操作系統(tǒng)B禁止再發(fā)讀請(qǐng)求核間消息和寫(xiě)請(qǐng)求核間消息;Z核間數(shù)據(jù)處理模塊A將讀請(qǐng)求隊(duì)列和寫(xiě)請(qǐng)求隊(duì)列中的讀寫(xiě)請(qǐng)求核間消息處理完;Z操作系統(tǒng)A關(guān)機(jī)操作系統(tǒng)B關(guān)機(jī)時(shí)的處理流程與現(xiàn)有4支術(shù)相同,無(wú)特殊處理。操作系統(tǒng)的重啟可以看作是操作系統(tǒng)關(guān)機(jī)時(shí)的處理加上操作系統(tǒng)啟動(dòng)時(shí)的初始化,所以不再贅述通過(guò)上述實(shí)施例可以看出,在本發(fā)明中,利用多核處理器的核間通信機(jī)制,解決了運(yùn)行于多核處理器上的多操作系統(tǒng)訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)的互斥問(wèn)題;利用多核處理器的共享內(nèi)存機(jī)制,解決了多操作系統(tǒng)訪(fǎng)問(wèn)共享存儲(chǔ)介質(zhì)的效率問(wèn)題;利用多核處理器的核間中斷,解決了搡作系統(tǒng)啟動(dòng)和關(guān)機(jī)時(shí)如何通知對(duì)方操作系統(tǒng)的問(wèn)題。本發(fā)明是的上述方案,使得多核多操作系統(tǒng)能夠共享使用存儲(chǔ)介質(zhì),降低了硬件成本;實(shí)現(xiàn)本發(fā)明的方案只需要修改操作系統(tǒng)的底層驅(qū)動(dòng)即可,不需要修改文件系統(tǒng)等上層軟件;采用核間消息和共享內(nèi)存的機(jī)制,使得不需要進(jìn)行內(nèi)存搬移,數(shù)據(jù)處理效率高;操作系統(tǒng)啟動(dòng)和關(guān)機(jī)時(shí)采用核間中斷通知對(duì)方操作系統(tǒng),提高了系統(tǒng)可靠性。圖5是本發(fā)明實(shí)施例一種實(shí)現(xiàn)多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的裝置的組成結(jié)構(gòu)框圖。多個(gè)操作系統(tǒng)運(yùn)行在多核處理器上,則實(shí)現(xiàn)該多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的裝置包括屬于所述多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)的第一核間數(shù)據(jù)處理模塊和存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,屬于所述多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)的第二核間數(shù)據(jù)處理模塊,其中,存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,用于根據(jù)第一核間數(shù)據(jù)處理模塊的指令對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作;第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),通過(guò)核間通信機(jī)制,將所述任一第二搡作系統(tǒng)的操作請(qǐng)求通知第一核間數(shù)據(jù)處理模塊;第一核間數(shù)據(jù)處理模塊,用于根據(jù)第二核間數(shù)據(jù)處理模塊發(fā)送的操作請(qǐng)求指令存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知第二核間數(shù)據(jù)處理模塊。在圖5中,第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行讀操作時(shí),在共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊,并向第一核間數(shù)據(jù)處理模塊發(fā)送讀請(qǐng)求核間消息;所述共享內(nèi)存是第一操作系統(tǒng)和所述任一第二操作系統(tǒng)的共享內(nèi)存;所述讀請(qǐng)求核間消息包括所要讀取的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要讀取的數(shù)據(jù)長(zhǎng)度和指定內(nèi)存塊在共享內(nèi)存中的位置;第一核間數(shù)據(jù)處理模塊,用于根據(jù)所述讀請(qǐng)求核間消息,指令存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行讀訪(fǎng)問(wèn)操作,并將存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊讀取并返回的數(shù)據(jù)寫(xiě)入所述指定內(nèi)存塊中,然后向第二核間數(shù)據(jù)處理模塊發(fā)送讀應(yīng)答核間消息;所述讀應(yīng)答核間消息中包括所述指定內(nèi)存塊在共享內(nèi)存中的位置;第二核間數(shù)據(jù)處理模塊,用于根據(jù)所述讀應(yīng)答核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù),并上交給所述任一第二操作系統(tǒng)的上層軟件。在圖5中,第二核間數(shù)據(jù)處理模塊,用于將所述讀請(qǐng)求核間消息發(fā)送至核間消息隊(duì)列中的讀請(qǐng)求隊(duì)列中;用于從核間消息隊(duì)列中的讀應(yīng)答隊(duì)列中讀耳又所述讀應(yīng)答核間消息;第一核間數(shù)據(jù)處理模塊,用于從核間消息隊(duì)列中的讀請(qǐng)求隊(duì)列中讀取所述讀請(qǐng)求核間消息;用于將所述讀應(yīng)答核間消息發(fā)送至核間消息隊(duì)列中的讀應(yīng)答隊(duì)列中。在圖5中,第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,將所述讀數(shù)據(jù)隊(duì)列中的內(nèi)存塊都標(biāo)記為空閑;用于在讀數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊時(shí),將該指定內(nèi)存塊標(biāo)記為已用;用于根據(jù)第一核間數(shù)據(jù)處理模塊發(fā)送的所述讀應(yīng)答核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù)后,將該指定內(nèi)存塊標(biāo)記為空閑。在圖5中,第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行寫(xiě)操作時(shí),在共享內(nèi)存中的寫(xiě)數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊,將要寫(xiě)入共享存儲(chǔ)介質(zhì)的數(shù)據(jù)寫(xiě)入指定內(nèi)存塊,然后向第一核間數(shù)據(jù)處理模塊發(fā)送寫(xiě)請(qǐng)求核間消息;所述共享內(nèi)存是第一操作系統(tǒng)和所述任一第二操作系統(tǒng)的共享內(nèi)存;所述寫(xiě)請(qǐng)求核間消息包括所要寫(xiě)入的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要寫(xiě)入的數(shù)據(jù)的長(zhǎng)度和指定內(nèi)存塊在共享內(nèi)存中的位置;第一核間數(shù)據(jù)處理模塊,用于根據(jù)第二核間數(shù)據(jù)處理模塊發(fā)送的寫(xiě)請(qǐng)求核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù)并發(fā)送給存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,指令存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊將數(shù)據(jù)寫(xiě)入共享存儲(chǔ)介質(zhì)中的相應(yīng)位置,然后向第二核間數(shù)據(jù)處理模塊發(fā)送寫(xiě)應(yīng)答核間消息,以通知第二核間數(shù)據(jù)處理模塊寫(xiě)操作已完成。在圖5中,所述第二核間數(shù)據(jù)處理模塊,用于將所述寫(xiě)請(qǐng)求核間消息發(fā)送至核間消息隊(duì)列中的寫(xiě)請(qǐng)求隊(duì)列中;用于從核間消息隊(duì)列中的寫(xiě)應(yīng)答隊(duì)列中讀取所述寫(xiě)應(yīng)答核間消息;所述第一核間數(shù)據(jù)處理模塊,用于從核間消息隊(duì)列中的寫(xiě)請(qǐng)求隊(duì)列中讀取所述寫(xiě)請(qǐng)求核間消息;用于將所述寫(xiě)應(yīng)答核間消息發(fā)送至核間消息隊(duì)列中的寫(xiě)應(yīng)答隊(duì)列中。在圖5中,所述第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,將所述寫(xiě)數(shù)據(jù)隊(duì)列中的內(nèi)存塊都標(biāo)記為空閑;用于在將要寫(xiě)入共享存儲(chǔ)介質(zhì)的數(shù)據(jù)寫(xiě)入指定內(nèi)存塊時(shí),將該指定內(nèi)存塊標(biāo)記為已用;用于在接收到第一核間數(shù)據(jù)處理模塊發(fā)送的寫(xiě)應(yīng)答核間消息時(shí),將所述指定內(nèi)存塊標(biāo)記為空閑。在圖5中,所述第一核間數(shù)據(jù)處理模塊,進(jìn)一步用于在第一操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,將所述共享存儲(chǔ)介質(zhì)的信息發(fā)送到第一操作系統(tǒng)和所述任一第二操作系統(tǒng)的共享內(nèi)存中;所述第二核間數(shù)據(jù)處理模塊,進(jìn)一步用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,從所述共享內(nèi)存中獲取所述共享存儲(chǔ)介質(zhì)的信息。如圖5所示,該裝置進(jìn)一步包括屬于第一操作系統(tǒng)的第一狀態(tài)交互模塊和屬于所述任一第二操作系統(tǒng)的第二狀態(tài)交互模塊,其中,第一狀態(tài)交互模塊,用于在第一操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,向第二狀態(tài)交互模塊發(fā)送核間中斷,以通知共享存儲(chǔ)介質(zhì)可用;第二狀態(tài)交互模塊,用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,收到通知共享存儲(chǔ)介質(zhì)可用的核間中斷時(shí),將共享存儲(chǔ)介質(zhì)的可用標(biāo)志置位。在圖5中,第一狀態(tài)交互模塊,用于在第一操作系統(tǒng)關(guān)機(jī)時(shí),向第二狀態(tài)交互模塊發(fā)送核間中斷,以禁止發(fā)送對(duì)共享存儲(chǔ)介質(zhì)的操作請(qǐng)求;第二狀態(tài)交互模塊,用于在收到禁止發(fā)送對(duì)共享存儲(chǔ)介質(zhì)的操作請(qǐng)求的核間中斷時(shí),向第二核間數(shù)據(jù)處理模塊發(fā)送禁止對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作的指定。綜上所述,本發(fā)明這種多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)直接操作共享存儲(chǔ)介質(zhì),多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),該第二操作系統(tǒng)通過(guò)核間通信機(jī)制,將操作請(qǐng)求通知第一操作系統(tǒng),然后由第一操作系統(tǒng)根據(jù)所述操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知第二操作系統(tǒng)的技術(shù)方案相對(duì)于現(xiàn)有的利用NFS實(shí)現(xiàn)多操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方案,筒單而高效。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1、一種實(shí)現(xiàn)多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方法,該方法應(yīng)用于運(yùn)行在多核處理器上的多個(gè)操作系統(tǒng)之間,其特征在于,該方法包括所述多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)直接操作共享存儲(chǔ)介質(zhì);所述多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),該任一第二操作系統(tǒng)通過(guò)核間通信機(jī)制,將操作請(qǐng)求通知第一操作系統(tǒng);第一操作系統(tǒng)根據(jù)所述操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知所述任一第二操作系統(tǒng)。2、如權(quán)利要求l所述的方法,其特征在于,所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行讀操作時(shí),所述任一第二操作系統(tǒng)通過(guò)核間通信機(jī)制,將讀操作請(qǐng)求通知第一操作系統(tǒng),以及所述第一操作系統(tǒng)根據(jù)所述讀操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的讀操作后,通過(guò)核間通信機(jī)制將讀操作結(jié)果通知所述任一第二操作系統(tǒng)包括所述任一第二操作系統(tǒng)在共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊,并向第一操作系統(tǒng)發(fā)送讀請(qǐng)求核間消息;所述共享內(nèi)存是第一操作系統(tǒng)和所述任一第二搡作系統(tǒng)的共享內(nèi)存;所述讀請(qǐng)求核間消息包括所要讀取的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要讀取的數(shù)據(jù)長(zhǎng)度和指定內(nèi)存塊在共享內(nèi)存中的位置;第一操作系統(tǒng)根據(jù)所述讀請(qǐng)求核間消息,從共享存儲(chǔ)介質(zhì)中讀取相應(yīng)的數(shù)據(jù),并寫(xiě)入所述指定內(nèi)存塊中;第一操作系統(tǒng)向所述任一第二操作系統(tǒng)發(fā)送讀應(yīng)答核間消息;所述讀應(yīng)答核間消息中包括所述指定內(nèi)存塊在共享內(nèi)存中的位置;所述任一第二操作系統(tǒng)根據(jù)讀應(yīng)答核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù)。3、如權(quán)利要求2所述的方法,其特征在于,所述任一第二操作系統(tǒng)向第一操作系統(tǒng)發(fā)送讀請(qǐng)求核間消息包括所述任一第二操作系統(tǒng)將讀請(qǐng)求核間消息發(fā)送至核間消息隊(duì)列中的讀請(qǐng)求隊(duì)列中;所述第一操作系統(tǒng)從所述讀請(qǐng)求隊(duì)列中讀取所述讀請(qǐng)求核間消息;所述第一操作系統(tǒng)向所述任一第二操作系統(tǒng)發(fā)送讀應(yīng)答核間消息包括所述第一操作系統(tǒng)將讀應(yīng)答核間消息發(fā)送至核間消息隊(duì)列中的讀應(yīng)答隊(duì)列中;所述任一第二操作系統(tǒng)從所述讀應(yīng)答隊(duì)列中讀取所述讀應(yīng)答核間消息;所述共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列是首尾相接的環(huán)形隊(duì)列。4、如權(quán)利要求2所述的方法,其特征在于,該方法進(jìn)一步包括所述任一第二操作系統(tǒng)在啟動(dòng)時(shí)的初始化過(guò)程中,將所述讀數(shù)據(jù)隊(duì)列中的內(nèi)存塊都標(biāo)記為空閑;所述任一第二操作系統(tǒng)在讀數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊時(shí),將該指定內(nèi)存塊標(biāo)記為已用;所述任一第二操作系統(tǒng)根據(jù)讀應(yīng)答核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù)后,將該指定內(nèi)存塊標(biāo)記為空閑。5、如權(quán)利要求l所述的方法,其特征在于,所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行寫(xiě)操作時(shí),所述任一第二操作系統(tǒng)通過(guò)核間通信機(jī)制,將寫(xiě)操作請(qǐng)求通知第一操作系統(tǒng),以及所述第一操作系統(tǒng)根據(jù)所述寫(xiě)操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的寫(xiě)操作后,通過(guò)核間通信機(jī)制將寫(xiě)操作結(jié)果通知所述任一第二操作系統(tǒng)包括所述任一第二操作系統(tǒng)在共享內(nèi)存中的寫(xiě)數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊,將要寫(xiě)入共享存儲(chǔ)介質(zhì)的數(shù)據(jù)寫(xiě)入指定內(nèi)存塊;所述共享內(nèi)存是第一操作系統(tǒng)和所述任一第二操作系統(tǒng)的共享內(nèi)存;所述任一第二操作系統(tǒng)向第一操作系統(tǒng)發(fā)送寫(xiě)請(qǐng)求核間消息;所述寫(xiě)請(qǐng)求核間消息包括所要寫(xiě)入的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要寫(xiě)入的數(shù)據(jù)的長(zhǎng)度和指定內(nèi)存塊在共享內(nèi)存中的位置;第一操作系統(tǒng)根據(jù)所述寫(xiě)請(qǐng)求核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù)并寫(xiě)入共享存儲(chǔ)介質(zhì)中的相應(yīng)位置;第一操作系統(tǒng)向所述任一第二操作系統(tǒng)發(fā)送寫(xiě)應(yīng)答核間消息,以通知第二操作系統(tǒng)寫(xiě)操作已完成。6、如權(quán)利要求5所述的方法,其特征在于,所述任一第二操作系統(tǒng)向第一操作系統(tǒng)發(fā)送寫(xiě)請(qǐng)求核間消息包括所述任一第二搡作系統(tǒng)將寫(xiě)請(qǐng)求核間消息發(fā)送至核間消息隊(duì)列中的寫(xiě)請(qǐng)求隊(duì)列中;所述第一操作系統(tǒng)從所述寫(xiě)請(qǐng)求隊(duì)列中讀取所述寫(xiě)請(qǐng)求核間消息;所述第一操作系統(tǒng)向所述任一第二操作系統(tǒng)發(fā)送寫(xiě)應(yīng)答核間消息包括所述第一操作系統(tǒng)將寫(xiě)應(yīng)答核間消息發(fā)送至核間消息隊(duì)列中的寫(xiě)應(yīng)答隊(duì)列中;所迷任一第二操作系統(tǒng)從所述寫(xiě)應(yīng)答隊(duì)列中讀取所述寫(xiě)應(yīng)答核間消息;所述共享內(nèi)存中的寫(xiě)數(shù)據(jù)隊(duì)列是首尾相接的環(huán)形隊(duì)列。7、如權(quán)利要求5所述的方法,其特征在于,該方法進(jìn)一步包括所述任一第二操作系統(tǒng)在啟動(dòng)時(shí)的初始化過(guò)程中,將所述寫(xiě)數(shù)據(jù)隊(duì)列中的內(nèi)存塊都標(biāo)記為空閑;所述任一第二操作系統(tǒng)將要寫(xiě)入共享存儲(chǔ)介質(zhì)的數(shù)據(jù)寫(xiě)入指定內(nèi)存塊時(shí),將該指定內(nèi)存塊標(biāo)記為已用;所述任一第二操作系統(tǒng)在接收到第一操作系統(tǒng)發(fā)送的寫(xiě)應(yīng)答核間消息時(shí),將所述指定內(nèi)存塊標(biāo)記為空閑。8、如權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,該方法進(jìn)一步包括所述第一操作系統(tǒng)在啟動(dòng)時(shí)的初始化過(guò)程中,將所述共享存儲(chǔ)介質(zhì)的信息發(fā)送到自身與所述任一第二操作系統(tǒng)的共享內(nèi)存中;所述任一第二操作系統(tǒng)在啟動(dòng)時(shí)的初始化過(guò)程中,從共享內(nèi)存中獲取所述共享存儲(chǔ)介質(zhì)的信息。9、如權(quán)利要求1至8中任一項(xiàng)所述的方法,其特征在于,該方法進(jìn)一步包括所迷第一操作系統(tǒng)在啟動(dòng)時(shí)的初始化過(guò)程中,向所述任一第二操作系統(tǒng)發(fā)送核間中斷,以通知所述任一第二搡作系統(tǒng)共享存儲(chǔ)介質(zhì)可用;所述任一第二操作系統(tǒng)收到所述核間中斷后,將共享存儲(chǔ)介質(zhì)的可用標(biāo)志置位;所述第一操作系統(tǒng)在關(guān)機(jī)時(shí),向所述任一第二操作系統(tǒng)發(fā)送核間中斷,以禁止所述任一第二操作系統(tǒng)發(fā)送對(duì)共享存儲(chǔ)介質(zhì)的操作請(qǐng)求。10、一種實(shí)現(xiàn)多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的裝置,所述多個(gè)操作系統(tǒng)運(yùn)行在多核處理器上,其特征在于,該裝置包括屬于所述多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)的第一核間數(shù)據(jù)處理模塊和存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,屬于所述多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)的第二核間數(shù)據(jù)處理模塊,其中,存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,用于根據(jù)第一核間數(shù)據(jù)處理模塊的指令對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作;第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),通過(guò)核間通信機(jī)制,將所述任一第二操作系統(tǒng)的操作請(qǐng)求通知第一核間數(shù)據(jù)處理模塊;第一核間數(shù)據(jù)處理模塊,用于根據(jù)第二核間數(shù)據(jù)處理模塊發(fā)送的操作請(qǐng)求指令存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊完成對(duì)共享存儲(chǔ)介質(zhì)的搡作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知第二核間數(shù)據(jù)處理模塊。11、如權(quán)利要求10所述的裝置,其特征在于,第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行讀操作時(shí),在共享內(nèi)存中的讀數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊,并向第一核間數(shù)據(jù)處理模塊發(fā)送讀請(qǐng)求核間消息;所述共享內(nèi)存是第一操作系統(tǒng)和所述任一第二操作系統(tǒng)的共享內(nèi)存;所述讀請(qǐng)求核間消息包括所要讀取的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要讀取的數(shù)據(jù)長(zhǎng)度和指定內(nèi)存塊在共享內(nèi)存中的位置;第一核間數(shù)據(jù)處理模塊,用于根據(jù)所述讀請(qǐng)求核間消息,指令存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行讀訪(fǎng)問(wèn)操作,并將存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊讀取并返回的數(shù)據(jù)寫(xiě)入所述指定內(nèi)存塊中,然后向第二核間數(shù)據(jù)處理模塊發(fā)送讀應(yīng)答核間消息;所述讀應(yīng)答核間消息中包括所述指定內(nèi)存塊在共享內(nèi)存中的位置;第二核間數(shù)據(jù)處理模塊,用于根據(jù)所述讀應(yīng)答核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù),并上交給所述任一第二操作系統(tǒng)的上層軟件。12、如權(quán)利要求11所述的裝置,其特征在于,所述第二核間數(shù)據(jù)處理模塊,用于將所述讀請(qǐng)求核間消息發(fā)送至核間消息隊(duì)列中的讀請(qǐng)求隊(duì)列中;用于從核間消息隊(duì)列中的讀應(yīng)答隊(duì)列中讀取所述讀應(yīng)答核間消息;所述第一核間數(shù)據(jù)處理模塊,用于從核間消息隊(duì)列中的讀請(qǐng)求隊(duì)列中讀取所述讀請(qǐng)求核間消息;用于將所述讀應(yīng)答核間消息發(fā)送至核間消息隊(duì)列中的讀應(yīng)答隊(duì)列中。13、如權(quán)利要求11所述的裝置,其特征在于,所述第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,將所述讀數(shù)據(jù)隊(duì)列中的內(nèi)存塊都標(biāo)記為空閑;用于在讀數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊時(shí),將該指定內(nèi)存塊標(biāo)記為已用;用于根據(jù)第一核間數(shù)據(jù)處理模塊發(fā)送的所述讀應(yīng)答核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù)后,將該指定內(nèi)存塊標(biāo)記為空閑。14、如權(quán)利要求IO所述的裝置,其特征在于,第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行寫(xiě)操作時(shí),在共享內(nèi)存中的寫(xiě)數(shù)據(jù)隊(duì)列中指定一塊可用的內(nèi)存塊,將要寫(xiě)入共享存儲(chǔ)介質(zhì)的數(shù)據(jù)寫(xiě)入指定內(nèi)存塊,然后向第一核間數(shù)據(jù)處理模塊發(fā)送寫(xiě)請(qǐng)求核間消息;所述共享內(nèi)存是第一操作系統(tǒng)和所述任一第二操作系統(tǒng)的共享內(nèi)存;所述寫(xiě)請(qǐng)求核間消息包括所要寫(xiě)入的數(shù)據(jù)在共享存儲(chǔ)介質(zhì)中的起始地址、所要寫(xiě)入的數(shù)據(jù)的長(zhǎng)度和指定內(nèi)存塊在共享內(nèi)存中的位置;第一核間數(shù)據(jù)處理模塊,用于根據(jù)第二核間數(shù)據(jù)處理模塊發(fā)送的寫(xiě)請(qǐng)求核間消息,從指定內(nèi)存塊中讀取數(shù)據(jù)并發(fā)送給存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊,指令存儲(chǔ)介質(zhì)訪(fǎng)問(wèn)模塊將數(shù)據(jù)寫(xiě)入共享存儲(chǔ)介質(zhì)中的相應(yīng)位置,然后向第二核間數(shù)據(jù)處理模塊發(fā)送寫(xiě)應(yīng)答核間消息,以通知第二核間數(shù)據(jù)處理模塊寫(xiě)操作已完成。15、如權(quán)利要求14所述的裝置,其特征在于,所述第二核間數(shù)據(jù)處理模塊,用于將所述寫(xiě)請(qǐng)求核間消息發(fā)送至核間消息隊(duì)列中的寫(xiě)請(qǐng)求隊(duì)列中;用于從核間消息隊(duì)列中的寫(xiě)應(yīng)答隊(duì)列中讀取所述寫(xiě)應(yīng)答核間消息;所述第一核間數(shù)據(jù)處理模塊,用于從核間消息隊(duì)列中的寫(xiě)請(qǐng)求隊(duì)列中讀取所述寫(xiě)請(qǐng)求核間消息;用于將所述寫(xiě)應(yīng)答核間消息發(fā)送至核間消息隊(duì)列中的寫(xiě)應(yīng)答隊(duì)列中。16、如權(quán)利要求14所述的裝置,其特征在于,所述第二核間數(shù)據(jù)處理模塊,用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,將所述寫(xiě)數(shù)據(jù)隊(duì)列中的內(nèi)存塊都標(biāo)記為空閑;用于在將要寫(xiě)入共享存儲(chǔ)介質(zhì)的數(shù)據(jù)寫(xiě)入指定內(nèi)存塊時(shí),將該指定內(nèi)存塊標(biāo)記為已用;用于在接收到第一核間數(shù)據(jù)處理模塊發(fā)送的寫(xiě)應(yīng)答核間消息時(shí),將所述指定內(nèi)存塊標(biāo)記為空閑。17、如權(quán)利要求10至16中任一項(xiàng)所述的裝置,其特征在于,所述第一核間數(shù)據(jù)處理模塊,進(jìn)一步用于在第一操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,將所述共享存儲(chǔ)介質(zhì)的信息發(fā)送到第一操作系統(tǒng)和所述任一第二操作系統(tǒng)的共享內(nèi)存中;所述第二核間數(shù)據(jù)處理模塊,進(jìn)一步用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,從所述共享內(nèi)存中獲取所述共享存儲(chǔ)介質(zhì)的信息。18、如權(quán)利要求17所述的裝置,其特征在于,該裝置進(jìn)一步包括屬于第一操作系統(tǒng)的第一狀態(tài)交互模塊和屬于所述任一第二操作系統(tǒng)的第二狀態(tài)交互模塊,其中,第一狀態(tài)交互模塊,用于在第一操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,向第二狀態(tài)交互模塊發(fā)送核間中斷,以通知共享存儲(chǔ)介質(zhì)可用;第二狀態(tài)交互模塊,用于在所述任一第二操作系統(tǒng)啟動(dòng)時(shí)的初始化過(guò)程中,收到通知共享存儲(chǔ)介質(zhì)可用的核間中斷時(shí),將共享存儲(chǔ)介質(zhì)的可用標(biāo)志置位。第一狀態(tài)交互模塊,用于在第一操作系統(tǒng)關(guān)機(jī)時(shí),向第二狀態(tài)交互模塊發(fā)送核間中斷,以禁止發(fā)送對(duì)共享存儲(chǔ)介質(zhì)的操作請(qǐng)求;第二狀態(tài)交互模塊,用于在收到禁止發(fā)送對(duì)共享存儲(chǔ)介質(zhì)的操作請(qǐng)求的核間中斷時(shí),向第二核間數(shù)據(jù)處理模塊發(fā)送禁止對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作的指令。全文摘要本發(fā)明公開(kāi)了一種實(shí)現(xiàn)多個(gè)操作系統(tǒng)共享存儲(chǔ)介質(zhì)的方法和裝置。方法包括多個(gè)操作系統(tǒng)中的一個(gè)指定的第一操作系統(tǒng)直接操作共享存儲(chǔ)介質(zhì);多個(gè)操作系統(tǒng)中的任一第二操作系統(tǒng)需要對(duì)共享存儲(chǔ)介質(zhì)進(jìn)行操作時(shí),該第二操作系統(tǒng)通過(guò)核間通信機(jī)制,將操作請(qǐng)求通知第一操作系統(tǒng);第一操作系統(tǒng)根據(jù)所述操作請(qǐng)求完成對(duì)共享存儲(chǔ)介質(zhì)的操作后,通過(guò)核間通信機(jī)制將操作結(jié)果通知第二操作系統(tǒng)。本發(fā)明的技術(shù)方案簡(jiǎn)單而高效。文檔編號(hào)G06F15/16GK101477511SQ20081024745公開(kāi)日2009年7月8日申請(qǐng)日期2008年12月31日優(yōu)先權(quán)日2008年12月31日發(fā)明者朱而剛申請(qǐng)人:杭州華三通信技術(shù)有限公司