亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

在Linux系統(tǒng)中用戶和多內(nèi)核進(jìn)行通訊的方法

文檔序號(hào):7692017閱讀:147來(lái)源:國(guó)知局
專利名稱:在Linux系統(tǒng)中用戶和多內(nèi)核進(jìn)行通訊的方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種在Linux系統(tǒng)中用戶和多內(nèi)核 進(jìn)4亍通ifl的方法。
背景技術(shù)
隨著數(shù)據(jù)通信技術(shù)的發(fā)展,特別是Linux操作系統(tǒng)的進(jìn)一 步發(fā)展和完善, 越來(lái)越多的網(wǎng)絡(luò)設(shè)備開始并且已經(jīng)釆用Linux操作系統(tǒng)作為設(shè)備的操作系統(tǒng) 軟件,與其他一些操作系統(tǒng)相比,Linux具有支持多用戶,多處理器,多平 臺(tái)的特點(diǎn),同時(shí)也具有更豐富和更高效的網(wǎng)絡(luò)實(shí)現(xiàn)功能;除此之外最吸引人 的地方莫過(guò)于Linux的開源性和免費(fèi)性,即整個(gè)Linux內(nèi)核的源代碼都是免 費(fèi)可得的,這就使得采用Linux操作系統(tǒng)軟件的網(wǎng)絡(luò)設(shè)備除了具有較好的功 能擴(kuò)展和性能擴(kuò)展的特性外,也具有更好的商業(yè)價(jià)值,因?yàn)橛脩糁恍枰陂_ 放的Linux源代碼上做一些適合自己設(shè)備的開發(fā)就可以獲得很好的設(shè)備功能 和性能,而不用花費(fèi)大量的金錢去購(gòu)買專業(yè)商用的操作系統(tǒng)軟件,使得開發(fā) 的成本大大的降低。目前的網(wǎng)絡(luò)設(shè)備中大多使用的是VxWorks操作系統(tǒng),VxWorks操作系 統(tǒng)作為一種商業(yè)軟件采用微內(nèi)核結(jié)構(gòu),雖然有較好的性能,但使用費(fèi)用較高。 相比4交而言,Linux作為一種開源的和免費(fèi)的軟件,具有更好的經(jīng)濟(jì)價(jià)值。在Linux系統(tǒng)中分為L(zhǎng)inux用戶空間和Linux內(nèi)核空間。Linux用戶空 間主要是指在用戶空間中的各種應(yīng)用程序即處于用戶態(tài)的各種應(yīng)用程序; Linux內(nèi)核空間B:包括處于內(nèi)核態(tài)的各種應(yīng)用程序、完成處理器功能的內(nèi) 核和內(nèi)部組件之間的FMN ( Fast Message Network,快速消息網(wǎng)絡(luò))通信網(wǎng) 絡(luò)、以及可以實(shí)現(xiàn)用戶空間和內(nèi)核空間通信的Netlink協(xié)議族,用于完成對(duì) 用戶空間傳過(guò)來(lái)數(shù)據(jù)信息的處理,是內(nèi)核態(tài)中所有相關(guān)操作的運(yùn)行處理空 間。此外,Linux還支持多處理器結(jié)構(gòu),這可以進(jìn)一步提高處理器的處理能力和整個(gè)操作系統(tǒng)的性能,但是在采用多核的Linux系統(tǒng)中如何實(shí)現(xiàn)用戶空 間和多內(nèi)核空間進(jìn)行通訊是急需解決的問(wèn)題。發(fā)明內(nèi)容本發(fā)明提供一種在Linux系統(tǒng)中用戶和多內(nèi)核進(jìn)行通訊的方法,以解決 在采用Linux系統(tǒng)中實(shí)現(xiàn)用戶空間和多內(nèi)核空間進(jìn)行通訊的問(wèn)題。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供一種在Linux系統(tǒng)中用戶和多內(nèi)核 進(jìn)行通訊的方法,包括如下步驟(1) 在Linux系統(tǒng)中設(shè)置多內(nèi)核中的一個(gè)內(nèi)核為控制核,其它內(nèi)核為從核;(2) 所述Linux控制核收到該Linux用戶空間的應(yīng)用程序發(fā)送的數(shù)據(jù) 信息后,4艮據(jù)該數(shù)據(jù)信息的類型選"^發(fā)送策略,然后將包含喚醒接收從核的 喚醒函數(shù)指針信息和該接收從核信息的消息發(fā)送到快速消息網(wǎng)絡(luò)FMN上;(3 )所述接收從核接收到所述FMN上的消息后即被喚醒,從該FMN 消息中提取所述喚醒函數(shù)指針信息,進(jìn)入到該喚醒函數(shù)指針指向的業(yè)務(wù)處理 函^:中,通過(guò)其業(yè)務(wù)線程進(jìn)行業(yè)務(wù)處理。本發(fā)明所述方法,其中,步驟(2)中之前,所述Linux用戶空間的應(yīng) 用程序通過(guò)Netlink協(xié)議族的套接口系統(tǒng)調(diào)用,與該Linux內(nèi)核空間通訊, 向所述Linux控制核發(fā)送數(shù)據(jù)信息。本發(fā)明所述方法,其中,步驟(2)中,所述數(shù)據(jù)信息的類型分為控制 類和業(yè)務(wù)類,所述發(fā)送策略分為"定向發(fā)送策略,,和"負(fù)載均衡發(fā)送策略"如果是控制類的數(shù)據(jù)信息,則采用"定向發(fā)送策略";如果是業(yè)務(wù)類的數(shù)據(jù)信息,則采用"負(fù)載均衡發(fā)送策略"。本發(fā)明所述方法,其中,步驟(l)中,還根據(jù)業(yè)務(wù)類別的不同來(lái)設(shè)置 劃分不同的處理從核。進(jìn)一步地,步驟(2)中,所述Linux控制核收到該Linux用戶空間的 應(yīng)用程序發(fā)送的數(shù)據(jù)信息后,首先判定該數(shù)據(jù)信息對(duì)應(yīng)何種業(yè)務(wù),以決定其 處理從核,然后再根據(jù)該數(shù)據(jù)信息的類型選擇發(fā)送策略,將包含喚醒接收從核的喚醒函數(shù)指針信息和該接收從核信息的消息發(fā)送到FMN上。進(jìn)一步地,如果所述Linux控制核收到該Linux用戶空間的應(yīng)用程序發(fā) 送的業(yè)務(wù)類的數(shù)據(jù)信息,并判定該數(shù)據(jù)信息對(duì)應(yīng)何種業(yè)務(wù)后,將不同業(yè)務(wù)種 類的數(shù)據(jù)存儲(chǔ)在不同的緩沖隊(duì)列中,然后采用"負(fù)載均衡發(fā)送策略",構(gòu)造 FMN消息,該消息中包含用于喚醒接收從核的喚醒函數(shù)指針信息、接收此 FMN消息的從核信息和所述業(yè)務(wù)類數(shù)據(jù)信息在所述緩沖隊(duì)列中存儲(chǔ)位置的 地址,并發(fā)送到FMN上。本發(fā)明所述方法,其中,還包括如下步驟(4)接收從核將處理結(jié)果通過(guò)FMN消息返回給所述控制內(nèi)核,由該控 制內(nèi)核發(fā)送給所述Linux用戶空間的應(yīng)用程序。采用本發(fā)明所述方法,與現(xiàn)有技術(shù)相比,取得了用戶和內(nèi)核之間的通訊 由單核到多核的進(jìn)步,達(dá)到了在Linux系統(tǒng)中實(shí)現(xiàn)用戶和多內(nèi)核之間通訊的 效果,節(jié)省了采用Linux系統(tǒng)的開發(fā)成本,提高了采用Linux系統(tǒng)的業(yè)務(wù)處 理能力等等。


圖1是本發(fā)明實(shí)施例在Linux系統(tǒng)中用戶和多內(nèi)核進(jìn)行通訊的方法流程圖;圖2是本發(fā)明應(yīng)用實(shí)例在采用Linux系統(tǒng)中實(shí)現(xiàn)用戶和多內(nèi)核之間通訊 方法的示意圖;圖3是本發(fā)明應(yīng)用實(shí)例在圖2的采用Linux系統(tǒng)中實(shí)現(xiàn)用戶和多內(nèi)核之 間通訊方法的流程圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明所述技術(shù)方案進(jìn)行詳細(xì)描述。如圖l所示,是本發(fā)明實(shí)施例在Linux系統(tǒng)中用戶和多內(nèi)核進(jìn)行通訊的 方法流程圖,包括如下步驟步驟IOI,在Linux系統(tǒng)中設(shè)置多內(nèi)核中的一個(gè)內(nèi)核為控制核,其它內(nèi)核為從核;步驟102, Linux用戶空間的應(yīng)用程序通過(guò)Netlink協(xié)議族的套接口系統(tǒng) 調(diào)用,與該Linux內(nèi)核空間通訊,向Linux控制核發(fā)送數(shù)據(jù)信息;步驟103, Linux控制核收到該Linux用戶空間的應(yīng)用程序發(fā)送的數(shù)據(jù) 信息后,根據(jù)該數(shù)據(jù)信息的類型選擇發(fā)送策略,然后將包含可喚醒接收從核 的喚醒函數(shù)指針信息和該接收從核信息的消息發(fā)送到FMN上;步驟104, 一般情況下,接收從核處于休眠狀態(tài),接收到FMN上的消 息后即被喚醒,從FMN消息中提取喚醒函數(shù)指針信息,進(jìn)入到該喚醒函數(shù) 指針指向的業(yè)務(wù)處理函數(shù)中,通過(guò)其業(yè)務(wù)線程進(jìn)行相應(yīng)的業(yè)務(wù)處理。如圖2所示,是本發(fā)明應(yīng)用實(shí)例在采用Linux系統(tǒng)中實(shí)現(xiàn)用戶和多內(nèi)核 之間通訊方法的示意圖本應(yīng)用實(shí)例使用的處理器中包括8個(gè)內(nèi)核,通過(guò)CoreO、 Core 1........ Core7來(lái)標(biāo)識(shí),其中用作控制的Core0我們稱之為控制核,用作業(yè)務(wù)處理的其它核我們稱之為從核。Linux系統(tǒng)包括Linux用戶 空間A和Linux內(nèi)4亥空間B 。如圖3所示,是本發(fā)明應(yīng)用實(shí)例在圖2的采用Linux系統(tǒng)中實(shí)現(xiàn)用戶和 多內(nèi)核之間通訊方法的流程圖,包括如下步驟步驟301,在Linux系統(tǒng)中設(shè)置8個(gè)內(nèi)核中的一個(gè)內(nèi)核CoreO為控制核, 其它內(nèi)核為從核;進(jìn)一步地,還根據(jù)業(yè)務(wù)類別的不同來(lái)設(shè)置劃分不同的處理 從核,比如Corel至Core4運(yùn)行業(yè)務(wù)A, Core5至Core7運(yùn)行業(yè)務(wù)B;步驟302, Linux用戶空間的應(yīng)用程序通過(guò)Netlink協(xié)議族的套接口系統(tǒng) 調(diào)用,與該Linux內(nèi)核空間通訊,向控制核CoreO發(fā)送數(shù)據(jù)信息;步驟303, CoreO收到數(shù)據(jù)信息后,首先判定該數(shù)據(jù)信息對(duì)應(yīng)何種業(yè)務(wù), 以決定其處理從核,如果是業(yè)務(wù)A,則需將其發(fā)送到Corel至Core4;如果 是業(yè)務(wù)B,則需將其發(fā)送到Core5至Core7;步驟304,在判定是何種業(yè)務(wù)后,CoreO根據(jù)緩沖隊(duì)列中該數(shù)據(jù)信息的 類型選擇發(fā)送策略如果是控制類的數(shù)據(jù)信息,則轉(zhuǎn)步驟305;如果是業(yè)務(wù) 類的數(shù)據(jù)信息,則轉(zhuǎn)步驟306;步驟305, Core0選擇釆用"定向發(fā)送策略"發(fā)送控制信息,然后轉(zhuǎn)步 驟307:比如該控制信息為業(yè)務(wù)A,發(fā)送時(shí)構(gòu)造4條FMN消息分別對(duì)應(yīng)Corel 至Core4,如果在一定的延遲時(shí)間內(nèi)收不到接收核的FMN回傳消息,就會(huì) 向該核重復(fù)發(fā)送,可見采用此策略時(shí)Corel至Core4的每個(gè)核都將收到該控 制信息;步驟306, Core0選擇采用"負(fù)載均衡發(fā)送策略"發(fā)送業(yè)務(wù)信息,然后 轉(zhuǎn)步驟307:采用此策略時(shí)一條業(yè)務(wù)信息只可能被一個(gè)從核收到并處理;步驟307,在Core0選擇好發(fā)送策略后,就會(huì)構(gòu)造FMN消息并發(fā)送到 FMN上,F(xiàn)MN消息中含有用來(lái)喚醒從核的函數(shù)指針信息和接收從核信息;步驟308,接收從核處于休眠狀態(tài),接收到FMN上的消息后即被喚醒, 從FMN消息中提取喚醒函數(shù)指針信息,進(jìn)入到該喚醒函數(shù)指針指向的業(yè)務(wù) 處理函數(shù)中,通過(guò)其業(yè)務(wù)線程進(jìn)行相應(yīng)的業(yè)務(wù)處理,并將處理結(jié)果通過(guò)FMN 消息返回給Core0,由Core0發(fā)送給Linux用戶空間的應(yīng)用程序。此處需要注意的是,上述應(yīng)用實(shí)例中業(yè)務(wù)數(shù)據(jù)是存儲(chǔ)在緩沖隊(duì)列Buffer 中的,F(xiàn)MN消息中并沒有業(yè)務(wù)數(shù)據(jù),只有業(yè)務(wù)數(shù)據(jù)在Buffer中存儲(chǔ)位置的 地址。Core0先存儲(chǔ)業(yè)務(wù)數(shù)據(jù)到Buffer,然后將存儲(chǔ)地址封裝到步驟307中 構(gòu)造的FMN消息中。步驟303中,Core0收到業(yè)務(wù)類的數(shù)據(jù)信息后,首先 判定該數(shù)據(jù)信息對(duì)應(yīng)何種業(yè)務(wù),以決定其處理從核,此處我們使用兩個(gè)緩沖 隊(duì)列BufferA和BufferB分別對(duì)應(yīng)業(yè)務(wù)A和B,將業(yè)務(wù)A和B的業(yè)務(wù)數(shù)據(jù)分 別發(fā)到BufferA和BufferB中;由于業(yè)務(wù)數(shù)據(jù)地址信息采用的是"負(fù)載均衡 發(fā)送策略,,;Corel至Core4會(huì)不停的輪詢BufferA,處理其中的業(yè)務(wù)數(shù)據(jù) (Core5至Core7同理輪詢BufferB ),這樣當(dāng)BufferA非空時(shí), 一旦有某個(gè) 核空閑下來(lái),該核就會(huì)來(lái)處理BufferA中的數(shù)據(jù),而不會(huì)發(fā)生某些核負(fù)荷過(guò) 重,某些核卻又空閑的情況,有效的提高了多核的效率。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域 的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則 之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍 之內(nèi)。
權(quán)利要求
1. 一種在Linux系統(tǒng)中用戶和多內(nèi)核進(jìn)行通訊的方法,其特征在于,包括如下步驟(1)在Linux系統(tǒng)中設(shè)置多內(nèi)核中的一個(gè)內(nèi)核為控制核,其它內(nèi)核為從核;(2)所述Linux控制核收到該Linux用戶空間的應(yīng)用程序發(fā)送的數(shù)據(jù)信息后,根據(jù)該數(shù)據(jù)信息的類型選擇發(fā)送策略,然后將包含喚醒接收從核的喚醒函數(shù)指針信息和該接收從核信息的消息發(fā)送到快速消息網(wǎng)絡(luò)FMN上;(3)所述接收從核接收到所述FMN上的消息后即被喚醒,從該FMN消息中提取所述喚醒函數(shù)指針信息,進(jìn)入到該喚醒函數(shù)指針指向的業(yè)務(wù)處理函數(shù)中,通過(guò)其業(yè)務(wù)線程進(jìn)行業(yè)務(wù)處理。
2、 如權(quán)利要求1所述方法,其特征在于,步驟(2)中之前,所述Linux 用戶空間的應(yīng)用程序通過(guò)Netlink協(xié)議族的套接口系統(tǒng)調(diào)用,與該Linux內(nèi) 核空間通訊,向所述Linux控制核發(fā)送數(shù)據(jù)信息。
3、 如權(quán)利要求l所述方法,其特征在于,步驟(2)中,所述數(shù)據(jù)信息 的類型分為控制類和業(yè)務(wù)類,所述發(fā)送策略分為"定向發(fā)送策略"和"負(fù)載 均衡發(fā)送策略"如果是控制類的數(shù)據(jù)信息,則采用"定向發(fā)送策略";如果是業(yè)務(wù)類的數(shù)據(jù)信息,則采用"負(fù)載均衡發(fā)送策略"。
4、 如權(quán)利要求l所述方法,其特征在于,步驟(l)中,還根據(jù)業(yè)務(wù)類 別的不同來(lái)設(shè)置劃分不同的處理從核。
5、 如權(quán)利要求4所述方法,其特征在于,步驟(2)中,所述Linux控 制核收到該Linux用戶空間的應(yīng)用程序發(fā)送的數(shù)據(jù)信息后,首先判定該數(shù)據(jù) 信息對(duì)應(yīng)何種業(yè)務(wù),以決定其處理從核,然后再根據(jù)該數(shù)據(jù)信息的類型選擇 發(fā)送策略,將包含喚醒接收從核的喚醒函數(shù)指針信息和該接收從核信息的消 息發(fā)送到FMN上。
6、 如權(quán)利要求5所述方法,其特征在于,如果所述Linux控制核收到該Linux用戶空間的應(yīng)用程序發(fā)送的業(yè)務(wù)類的數(shù)據(jù)信息,并判定該數(shù)據(jù)信息 對(duì)應(yīng)何種業(yè)務(wù)后,將不同業(yè)務(wù)種類的數(shù)據(jù)存儲(chǔ)在不同的緩沖隊(duì)列中,然后采 用"負(fù)載均衡發(fā)送策略,,,構(gòu)造FMN消息,該消息中包含用于喚醒接收從 核的喚醒函數(shù)指針信息、接收此FMN消息的從核信息和所述業(yè)務(wù)類數(shù)據(jù)信 息在所述緩沖隊(duì)列中存儲(chǔ)位置的地址,并發(fā)送到FMN上。
7、如權(quán)利要求l所述方法,其特征在于,還包括如下步驟(4)接收從核將處理結(jié)果通過(guò)FMN消息返回給所述控制內(nèi)核,由該控 制內(nèi)核發(fā)送給所述Linux用戶空間的應(yīng)用程序。
全文摘要
本發(fā)明公開了一種在Linux系統(tǒng)中用戶和多內(nèi)核進(jìn)行通訊的方法,包括1)在Linux系統(tǒng)中設(shè)置多內(nèi)核中的一個(gè)內(nèi)核為控制核,其它內(nèi)核為從核;2)Linux控制核收到該Linux用戶空間的應(yīng)用程序發(fā)送的數(shù)據(jù)信息后,根據(jù)該數(shù)據(jù)信息的類型選擇發(fā)送策略,然后將包含喚醒接收從核的喚醒函數(shù)指針信息和該接收從核信息的消息發(fā)送到FMN上;3)接收從核接收到FMN上的消息后即被喚醒,從該FMN消息中提取喚醒函數(shù)指針信息,進(jìn)入到該喚醒函數(shù)指針指向的業(yè)務(wù)處理函數(shù)中,通過(guò)其業(yè)務(wù)線程進(jìn)行業(yè)務(wù)處理。本發(fā)明取得了用戶和內(nèi)核之間的通訊由單核到多核的進(jìn)步,達(dá)到了在Linux系統(tǒng)中實(shí)現(xiàn)用戶和多內(nèi)核之間通訊的效果。
文檔編號(hào)H04L29/08GK101276289SQ20081009616
公開日2008年10月1日 申請(qǐng)日期2008年5月9日 優(yōu)先權(quán)日2008年5月9日
發(fā)明者李弘博 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1