国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)處理方法和設(shè)備的制作方法

      文檔序號:6354411閱讀:292來源:國知局
      專利名稱:一種數(shù)據(jù)處理方法和設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法和設(shè)備。
      背景技術(shù)
      性能問題是操作系統(tǒng)的重要方面,Linux在網(wǎng)絡(luò)處理方面的優(yōu)勢非常明顯。其中, Linux 具有完善的 TCP (Transmission Control Protocol,傳輸控制協(xié)議)/IP (Internet Protocol,網(wǎng)絡(luò)互連協(xié)議)協(xié)議棧的支持,支持大多數(shù)網(wǎng)卡設(shè)備,而且網(wǎng)絡(luò)子系統(tǒng)架構(gòu)中的 Linux對新增的網(wǎng)卡設(shè)備驅(qū)動和自定義的協(xié)議開發(fā),均提供了良好的接口,從而使得軟件開發(fā)人員即使不了解Linux內(nèi)核,也能夠進行軟件開發(fā)。現(xiàn)有技術(shù)中,NAPI (New Application Interface, Linux基于輪詢方式的以太處理接口 ;Linux上采用的一種提高網(wǎng)絡(luò)處理效率的技術(shù))技術(shù)是Linux用于提高網(wǎng)絡(luò)性能的有效方式,由于高頻率的中斷可能會影響系統(tǒng)的整體效率,因此在網(wǎng)絡(luò)繁忙時,NAPI采用輪詢方式來替換每次數(shù)據(jù)包到達時引發(fā)的中斷。而由于中斷處理位于操作系統(tǒng)臨界區(qū),因此可減少中斷次數(shù),尤其是在高負載時,NAPI可以明顯增加Linux對實時任務(wù)的響應(yīng)性能。另外,Linux還采用了 softirq (軟中斷)機制,將以太驅(qū)動中耗時的操作(如BD緩沖區(qū)管理)、向協(xié)議棧提交數(shù)據(jù)包等操作推遲到軟中斷任務(wù),從而縮短中斷處理時間,改善 Linux的實時性能。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下問題
      NAPI技術(shù)在網(wǎng)絡(luò)高負載時,減少以太中斷發(fā)生的次數(shù),雖可以減小網(wǎng)絡(luò)對系統(tǒng)實時性能的影響,但是網(wǎng)卡中斷的隨機性,會對某些具有嚴(yán)格實時性要求的任務(wù)產(chǎn)生影響。

      發(fā)明內(nèi)容
      本發(fā)明實施例提供一種數(shù)據(jù)處理方法和設(shè)備,以保證關(guān)鍵任務(wù)的處理性能,從而提高系統(tǒng)性能。為了達到上述目的,本發(fā)明實施例提供一種數(shù)據(jù)處理方法,包括
      根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息;并根據(jù)所述定時器中斷時間信息對數(shù)據(jù)進行處理。本發(fā)明實施例提供一種數(shù)據(jù)處理設(shè)備,包括
      確定模塊,用于根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息; 處理模塊,用于根據(jù)所述定時器中斷時間信息對數(shù)據(jù)進行處理。與現(xiàn)有技術(shù)相比,本發(fā)明至少具有以下優(yōu)點
      在網(wǎng)絡(luò)高負載下,對Linux中關(guān)鍵任務(wù)的實時性能影響小,保證關(guān)鍵任務(wù)的處理性能。


      為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例一中原理框圖2是本發(fā)明實施例一提供的一種數(shù)據(jù)處理方法流程示意圖; 圖3是本發(fā)明實施例一中循環(huán)緩沖隊列的示意圖; 圖4是本發(fā)明實施例二提供的一種數(shù)據(jù)處理設(shè)備結(jié)構(gòu)示意圖。
      具體實施例方式現(xiàn)有技術(shù)中,Linux內(nèi)核在網(wǎng)絡(luò)協(xié)議棧的發(fā)送和接收路徑上,均有相應(yīng)的減小CPU (Central Processing Unit,中央處理器)負載的技術(shù);在TCP發(fā)送路徑上,LSO (Large segment off load,大段載荷)和 GSO (Generic Segmentation Off load,普通分段載荷)將大塊TCP緩沖區(qū)推送到網(wǎng)卡,之后通過網(wǎng)卡分包功能,或在調(diào)用驅(qū)動發(fā)送接口時分包,來減輕協(xié)議棧負荷。同樣的,在TCP接收路徑上,通過LRO (Large Receive Offload,大段接收載荷)和GRO (Generic Receive Off load,普通接收載荷)將多個數(shù)據(jù)包聚合成一個大包, 然后傳遞給協(xié)議棧處理。但是,(I)Linux現(xiàn)有的TCP/IP網(wǎng)絡(luò)協(xié)議棧位于內(nèi)核空間,進行協(xié)議棧開發(fā)難度大,出問題后調(diào)試?yán)щy。(2) Linux基于socket (套接字)的網(wǎng)絡(luò)應(yīng)用程序的開發(fā),每次數(shù)據(jù)收發(fā),均要進行內(nèi)核態(tài)和用戶態(tài)切換,且伴隨大量數(shù)據(jù)拷貝操作。(3)LinuX自身提供的 netfilter (防火墻)接口,對網(wǎng)絡(luò)數(shù)據(jù)包過濾分類效率較低,過濾匹配規(guī)則復(fù)雜,缺乏靈活性。針對現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供一種數(shù)據(jù)處理方法和設(shè)備,在Linux操作系統(tǒng)原有NIC (Netware Interface Card,網(wǎng)絡(luò)接口卡)驅(qū)動和TCP/IP協(xié)議棧之上,實現(xiàn)了一種增強Linux網(wǎng)絡(luò)性能的驅(qū)動擴展架構(gòu),從而使得Linux系統(tǒng)的實時性不受網(wǎng)絡(luò)流量負載的影響;Linux以太驅(qū)動擴展接口支持用戶空間協(xié)議棧,可減小在Linux內(nèi)核空間進行新協(xié)議開發(fā)和調(diào)試難度;Linux網(wǎng)絡(luò)應(yīng)用程序直接從以太驅(qū)動接口收發(fā)數(shù)據(jù)包,減小采用 socket接口產(chǎn)生的協(xié)議棧處理開銷,優(yōu)化網(wǎng)絡(luò)吞吐率;Linux以太驅(qū)動實現(xiàn)一個輕量級的網(wǎng)絡(luò)匹配過濾架構(gòu),實現(xiàn)對數(shù)據(jù)包分類、抄送和優(yōu)先級控制功能。下面將結(jié)合本發(fā)明中的附圖,對本發(fā)明中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例一
      本發(fā)明實施例一提供一種數(shù)據(jù)處理方法,如圖1所示的原理框圖,通過修改Linux以太驅(qū)動代碼,可支持Linux TCP/IP協(xié)議棧和多個用戶空間協(xié)議棧。如圖2所示,在數(shù)據(jù)(即數(shù)據(jù)包)接收方向上,該數(shù)據(jù)處理方法包括以下步驟
      步驟201,根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息。本發(fā)明實施例中,為了保證關(guān)鍵任務(wù)(即高優(yōu)先級任務(wù))的處理性能,保證關(guān)鍵任務(wù)的實時性,在確定定時器中斷時間信息時,需要避開關(guān)鍵任務(wù)的處理時間信息。例如,關(guān)鍵任務(wù)1的處理時間信息為時間點1進行處理,關(guān)鍵任務(wù)2的處理時間信息為時間點2進行處理,關(guān)鍵任務(wù)3的處理時間信息為時間點3進行處理,在產(chǎn)生定時器中斷時,產(chǎn)生定時器中斷的時間需要避開時間點1、時間點2、和時間點3 ;實際應(yīng)用中可通過調(diào)節(jié)的方式來避開時間點1、時間點2、和時間點3。本發(fā)明實施例中,為了盡可能提高Linux在網(wǎng)絡(luò)高負載下,關(guān)鍵任務(wù)的實時性,在將網(wǎng)卡中斷線程化的同時,可采用定時器中斷方式替代以太網(wǎng)卡產(chǎn)生中斷,打包處理以太網(wǎng)卡的數(shù)據(jù)收發(fā)。其中,中斷線程化是指將以太驅(qū)動中耗時的部分放到進程上下文中運行, 從而使得以太中斷底半部的處理變成可搶占的,網(wǎng)絡(luò)負載對Linux實時性的影響變小。具體的,由于以太網(wǎng)卡中斷的產(chǎn)生具有隨機性,對于某些對時序有嚴(yán)格要求的任務(wù)(即關(guān)鍵任務(wù)),不可避免的會受到影響。因此本發(fā)明實施例中采用定時器中斷替換以太網(wǎng)卡產(chǎn)生中斷,定時器中斷可以預(yù)測關(guān)鍵任務(wù)運行的時間點,動態(tài)調(diào)整中斷發(fā)生的時刻,從而避開與關(guān)鍵任務(wù)的沖突,減小對關(guān)鍵任務(wù)的影響。步驟202,根據(jù)定時器中斷時間信息對數(shù)據(jù)進行處理。其中,在硬件接收到新數(shù)據(jù)包后,通過DMA (Dynamic Memory Access,動態(tài)內(nèi)存存取)傳遞到內(nèi)存的接收隊列。之后, 在到達定時器中斷時間時,以太驅(qū)動將數(shù)據(jù)包從接收隊列中取出,并進行相應(yīng)處理。本發(fā)明實施例中,對數(shù)據(jù)進行相應(yīng)處理的方式包括(1)當(dāng)取出數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對數(shù)據(jù)進行匹配,并在數(shù)據(jù)符合匹配規(guī)則時,發(fā)送該數(shù)據(jù)。(2)為每個 port綁定一組規(guī)則過濾器,當(dāng)取出數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對數(shù)據(jù)進行匹配,當(dāng)數(shù)據(jù)符合其中一個規(guī)則過濾器的匹配規(guī)則時,將數(shù)據(jù)發(fā)送給該規(guī)則過濾器對應(yīng)的port。具體的,在通過規(guī)則過濾器的匹配時,如果數(shù)據(jù)待發(fā)送給Linux標(biāo)準(zhǔn)協(xié)議棧,則調(diào)用Linux協(xié)議棧接口發(fā)送該數(shù)據(jù)。否則,將數(shù)據(jù)存儲到循環(huán)緩沖隊列,喚醒在當(dāng)前循環(huán)緩沖隊列上等待的用戶空間接收任務(wù),并將數(shù)據(jù)從循環(huán)緩沖隊列復(fù)制到用戶態(tài)緩沖區(qū)。此時,以太驅(qū)動面向用戶空間任務(wù)展示的是多個獨立的port(0,1,2…),每個port對應(yīng)了一組匹配規(guī)則,規(guī)則過濾器依據(jù)規(guī)則對數(shù)據(jù)包分類。以下對規(guī)則過濾器、循環(huán)緩沖隊列和用戶空間port接口進行詳細說明
      (1)規(guī)則過濾器。本發(fā)明實施例中,規(guī)則過濾器具有可擴展性和高效性,規(guī)則過濾器通過采用多級匹配模型,并結(jié)合HASH (散列)算法,實現(xiàn)復(fù)雜度為0 (1)的匹配模型,以實現(xiàn)規(guī)則過濾器的可擴展性和高效性。針對規(guī)則過濾器的可擴展性,port是應(yīng)用程序接收數(shù)據(jù)的抽象接口,每個port綁定了一組規(guī)則過濾器,數(shù)據(jù)包只要符合其中一個規(guī)則過濾器的匹配規(guī)則,則被送到對應(yīng)的 port。進一步的,在規(guī)則過濾器中,匹配規(guī)則被分解為多個匹配域,每個匹配域由偏移地址, 位掩碼和匹配域長度來描述,數(shù)據(jù)包需要符合各個匹配域的匹配規(guī)則。例如,用戶空間協(xié)議棧處理源端口號從4000 5000之間的UDP (User Datagram ftOtocol,用戶數(shù)據(jù)包協(xié)議)包,對于上述應(yīng)用需求,UDP過濾器需要配置二個匹配域,第一個匹配域是UDP協(xié)議字段,第二個匹配域是源端口字段;如果用戶空間協(xié)議棧還需要處理 ARP (Address Resolution Protocol,地址解析協(xié)議)包,則另外添加一個ARP過濾器。由上可以看出,在本發(fā)明實施例中,每個port對應(yīng)一組規(guī)則過濾器,數(shù)據(jù)包只要符合其中一個規(guī)則過濾器的匹配規(guī)則,則被送到對應(yīng)的port,從而實現(xiàn)規(guī)則過濾器的并行設(shè)置;針對每個規(guī)則過濾器,匹配規(guī)則被分解為多個匹配域,數(shù)據(jù)包需要符合各個匹配域的匹配規(guī)則,從而實現(xiàn)規(guī)則過濾器的串行設(shè)置;從而實現(xiàn)規(guī)則過濾器的可擴展性。針對規(guī)則過濾器的高效性,特征值匹配采用了 HASH算法來減小CPU處理開銷。在初始化階段,先構(gòu)建一張16x16的字符串HASH表,分別對應(yīng)了 0 255個字符的HASH值,從而將計算HASH轉(zhuǎn)換為查表和加法運算以進一步降低開銷。另外,初始化階段,每一條匹配規(guī)則通過HASH算法獲取一個唯一值,將該唯一值為下標(biāo)散列到一個數(shù)組中。本發(fā)明實施例中,當(dāng)網(wǎng)卡驅(qū)動接收數(shù)據(jù)包后,規(guī)則過濾器通過匹配域的偏移地址,匹配域的位掩碼和匹配域的長度,提取數(shù)據(jù)包的特征值,通過查表計算HASH值,作為數(shù)值下標(biāo),并將特征值和規(guī)則做一次精確匹配,即可獲得匹配結(jié)果。(2)循環(huán)緩沖隊列。本發(fā)明實施例中,循環(huán)緩沖隊列由一個循環(huán)Buffer (緩沖器) 數(shù)組和若干個數(shù)組索引(數(shù)組索引i^etch、Ready和Temp等)組成;Buffer數(shù)組的每個元素存儲了指向具體數(shù)據(jù)的指針;隊列的讀寫位置分別由i^etch、Ready和Temp三個索引來控制,索引Fetch表示當(dāng)前循環(huán)緩沖隊列可出隊數(shù)據(jù)的位置F,索引Ready表示當(dāng)前循環(huán)緩沖隊列可用數(shù)據(jù)位置R,索引Temp表示當(dāng)前循環(huán)緩沖隊列可入隊數(shù)據(jù)位置T。如圖3所示的循環(huán)緩沖隊列的示意圖,如果F等于R,表示當(dāng)前循環(huán)緩沖隊列為空;在到達中斷時間時,數(shù)據(jù)進入循環(huán)緩沖隊列,臨時指針T向前移動;當(dāng)中斷處理完接收隊列中所有數(shù)據(jù)后,更新R=T ;當(dāng)喚醒用戶空間接收任務(wù)時,可以依次從循環(huán)緩沖隊列中獲取(R-F)個數(shù)據(jù),并更新F。本發(fā)明實施例中,Temp索引的引入可以達到免鎖的效果,不需要再引入其他同步手段,提高了緩沖區(qū)讀寫效率;而且這種循環(huán)緩沖隊列可適用于只有一個任務(wù)進行出隊或入隊的操作。(3)用戶空間port接口。本發(fā)明實施例中,用戶空間port接口采用Linux字符設(shè)備驅(qū)動ioctl系統(tǒng)調(diào)用封裝而成,包括添加、刪除匹配規(guī)則,發(fā)送、接收數(shù)據(jù)包四個接口。其中,為了減少以太在發(fā)送、接收路徑上,內(nèi)核態(tài)和用戶態(tài)切換的次數(shù),port接口均支持一次處理多個數(shù)據(jù)包。具體的,用戶態(tài)、內(nèi)核態(tài)的數(shù)據(jù)傳輸,可采用內(nèi)存映射的方式實現(xiàn)零拷貝;在循環(huán)緩沖隊列中,可保存數(shù)據(jù)包緩沖區(qū)的描述符。另外,需要注意的是,本發(fā)明實施例中,在數(shù)據(jù)發(fā)送方向上,由用戶空間任務(wù)(發(fā)送任務(wù))將數(shù)據(jù)包(待發(fā)送數(shù)據(jù))封裝成標(biāo)準(zhǔn)的以太幀,通過直接調(diào)用以太驅(qū)動的封裝接口,將以太幀拷貝到內(nèi)核空間后,加入以太網(wǎng)卡的發(fā)送隊列。綜上所述,本發(fā)明實施例中,實現(xiàn)了一種增強Linux網(wǎng)絡(luò)性能的驅(qū)動擴展架構(gòu),使得Linux系統(tǒng)的實時性不受網(wǎng)絡(luò)流量負載的影響;Linux以太驅(qū)動擴展接口支持用戶空間協(xié)議棧,可減小在Linux內(nèi)核空間進行新協(xié)議開發(fā)和調(diào)試難度;Linux網(wǎng)絡(luò)應(yīng)用程序直接從以太驅(qū)動接口收發(fā)數(shù)據(jù)包,減小采用socket接口產(chǎn)生的協(xié)議棧處理開銷,優(yōu)化網(wǎng)絡(luò)吞吐率;Linux以太驅(qū)動實現(xiàn)一個輕量級的網(wǎng)絡(luò)匹配過濾架構(gòu),實現(xiàn)對數(shù)據(jù)包分類、抄送和優(yōu)先級控制功能。進一步的,在網(wǎng)絡(luò)高負載下,對Linux實時性能影響?。粩U展了 Linux以太驅(qū)動功能,方便在Linux上實現(xiàn)對多協(xié)議棧應(yīng)用支持,而且可實現(xiàn)網(wǎng)絡(luò)抓包、數(shù)據(jù)抄送等應(yīng)用;對硬件需求小,只需對Linux以太驅(qū)動做少量修改,具有良好的可移植性;良好的模塊劃分, 靈活可配置,擴展性強。實施例二
      基于與上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種數(shù)據(jù)處理設(shè)備,如圖4
      7所示,該設(shè)備包括
      確定模塊11,用于根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息; 處理模塊12,用于根據(jù)所述定時器中斷時間信息對數(shù)據(jù)進行處理。所述確定模塊11,具體用于在確定所述定時器中斷時間信息時,避開所述關(guān)鍵任務(wù)的處理時間信息。所述處理模塊12,具體用于當(dāng)接收到數(shù)據(jù)后,將所述數(shù)據(jù)存儲到接收隊列;在到達所述定時器中斷時間時,從所述接收隊列中取出所述數(shù)據(jù)進行處理。所述處理模塊12,進一步用于當(dāng)取出所述數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對所述數(shù)據(jù)進行匹配,并在所述數(shù)據(jù)符合匹配規(guī)則時,發(fā)送所述數(shù)據(jù)。所述處理模塊12,具體用于如果所述數(shù)據(jù)待發(fā)送給Linux標(biāo)準(zhǔn)協(xié)議棧,則調(diào)用 Linux協(xié)議棧接口發(fā)送所述數(shù)據(jù);否則,將所述數(shù)據(jù)存儲到循環(huán)緩沖隊列,喚醒在當(dāng)前循環(huán)緩沖隊列上等待的用戶空間接收任務(wù),并將所述數(shù)據(jù)從所述循環(huán)緩沖隊列復(fù)制到用戶態(tài)緩沖區(qū)。本發(fā)明實施例中,所述循環(huán)緩沖隊列由一個循環(huán)Buffer數(shù)組和數(shù)組索引i^etch、 Ready和Temp組成;所述Buffer數(shù)組的每個元素存儲了指向具體數(shù)據(jù)的指針;索引Fetch 表示當(dāng)前循環(huán)緩沖隊列可出隊數(shù)據(jù)的位置F,索引Ready表示當(dāng)前循環(huán)緩沖隊列可用數(shù)據(jù)位置R,索引Temp表示當(dāng)前循環(huán)緩沖隊列可入隊數(shù)據(jù)位置T ;
      如果F等于R,表示當(dāng)前循環(huán)緩沖隊列為空;在到達所述定時器中斷時間時,數(shù)據(jù)進入循環(huán)緩沖隊列,臨時指針T向前移動;當(dāng)處理完接收隊列中所有數(shù)據(jù)后,更新R=T;當(dāng)喚醒用戶空間接收任務(wù)時,依次從循環(huán)緩沖隊列中獲取(R-F)個數(shù)據(jù),并更新F。所述處理模塊12,進一步用于為每個port綁定一組規(guī)則過濾器,當(dāng)取出所述數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對所述數(shù)據(jù)進行匹配;當(dāng)所述數(shù)據(jù)符合其中一個規(guī)則過濾器的匹配規(guī)則時,將所述數(shù)據(jù)發(fā)送給該規(guī)則過濾器對應(yīng)的port。本發(fā)明實施例中,所述處理模塊12,還用于通過用戶空間發(fā)送任務(wù)將待發(fā)送數(shù)據(jù)封裝成以太幀,通過調(diào)用以太驅(qū)動的封裝接口將該以太幀復(fù)制到內(nèi)核空間,并存儲到以太網(wǎng)卡的發(fā)送隊列。其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
      上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
      權(quán)利要求
      1.一種數(shù)據(jù)處理方法,其特征在于,包括根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息;并根據(jù)所述定時器中斷時間信息對數(shù)據(jù)進行處理。
      2.如權(quán)利要求1所述的方法,其特征在于,根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息,包括在確定所述定時器中斷時間信息時,避開所述關(guān)鍵任務(wù)的處理時間信息。
      3.如權(quán)利要求1所述的方法,其特征在于,根據(jù)所述定時器中斷時間信息對數(shù)據(jù)進行處理,包括當(dāng)接收到數(shù)據(jù)后,將所述數(shù)據(jù)存儲到接收隊列;在到達所述定時器中斷時間時,從所述接收隊列中取出所述數(shù)據(jù)進行處理。
      4.如權(quán)利要求3所述的方法,其特征在于,從所述接收隊列中取出所述數(shù)據(jù)進行處理, 包括當(dāng)取出所述數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對所述數(shù)據(jù)進行匹配,并在所述數(shù)據(jù)符合匹配規(guī)則時,發(fā)送所述數(shù)據(jù)。
      5.如權(quán)利要求4所述的方法,其特征在于,發(fā)送所述數(shù)據(jù),包括如果所述數(shù)據(jù)待發(fā)送給Linux標(biāo)準(zhǔn)協(xié)議棧,則調(diào)用Linux協(xié)議棧接口發(fā)送所述數(shù)據(jù);否則,將所述數(shù)據(jù)存儲到循環(huán)緩沖隊列,喚醒在當(dāng)前循環(huán)緩沖隊列上等待的用戶空間接收任務(wù),并將所述數(shù)據(jù)從所述循環(huán)緩沖隊列復(fù)制到用戶態(tài)緩沖區(qū)。
      6.如權(quán)利要求5所述的方法,其特征在于,所述循環(huán)緩沖隊列由一個循環(huán)Buffer數(shù)組和數(shù)組索引FetcKReady和Temp組成;所述Buffer數(shù)組的每個元素存儲了指向具體數(shù)據(jù)的指針;索引!^etch表示當(dāng)前循環(huán)緩沖隊列可出隊數(shù)據(jù)的位置F,索引Ready表示當(dāng)前循環(huán)緩沖隊列可用數(shù)據(jù)位置R,索引Temp表示當(dāng)前循環(huán)緩沖隊列可入隊數(shù)據(jù)位置T ;如果F等于R,表示當(dāng)前循環(huán)緩沖隊列為空;在到達所述定時器中斷時間時,數(shù)據(jù)進入循環(huán)緩沖隊列,臨時指針T向前移動;當(dāng)處理完接收隊列中所有數(shù)據(jù)后,更新R=T ;當(dāng)喚醒用戶空間接收任務(wù)時,依次從循環(huán)緩沖隊列中獲取(R-F)個數(shù)據(jù),并更新F。
      7.如權(quán)利要求3所述的方法,其特征在于,從所述接收隊列中取出所述數(shù)據(jù)進行處理, 包括為每個port綁定一組規(guī)則過濾器,當(dāng)取出所述數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對所述數(shù)據(jù)進行匹配;當(dāng)所述數(shù)據(jù)符合其中一個規(guī)則過濾器的匹配規(guī)則時,將所述數(shù)據(jù)發(fā)送給該規(guī)則過濾器對應(yīng)的port ο
      8.如權(quán)利要求1所述的方法,其特征在于,該方法進一步包括用戶空間發(fā)送任務(wù)將待發(fā)送數(shù)據(jù)封裝成以太幀,通過調(diào)用以太驅(qū)動的封裝接口將該以太幀復(fù)制到內(nèi)核空間,并存儲到以太網(wǎng)卡的發(fā)送隊列。
      9.一種數(shù)據(jù)處理設(shè)備,其特征在于,包括確定模塊,用于根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息;處理模塊,用于根據(jù)所述定時器中斷時間信息對數(shù)據(jù)進行處理。
      10.如權(quán)利要求9所述的設(shè)備,其特征在于,所述確定模塊,具體用于在確定所述定時器中斷時間信息時,避開所述關(guān)鍵任務(wù)的處理時間信息。
      11.如權(quán)利要求9所述的設(shè)備,其特征在于,所述處理模塊,具體用于當(dāng)接收到數(shù)據(jù)后,將所述數(shù)據(jù)存儲到接收隊列;在到達所述定時器中斷時間時,從所述接收隊列中取出所述數(shù)據(jù)進行處理。
      12.如權(quán)利要求11所述的設(shè)備,其特征在于,所述處理模塊,進一步用于當(dāng)取出所述數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對所述數(shù)據(jù)進行匹配,并在所述數(shù)據(jù)符合匹配規(guī)則時,發(fā)送所述數(shù)據(jù)。
      13.如權(quán)利要求12所述的設(shè)備,其特征在于,所述處理模塊,具體用于如果所述數(shù)據(jù)待發(fā)送給Linux標(biāo)準(zhǔn)協(xié)議棧,則調(diào)用Linux協(xié)議棧接口發(fā)送所述數(shù)據(jù);否則,將所述數(shù)據(jù)存儲到循環(huán)緩沖隊列,喚醒在當(dāng)前循環(huán)緩沖隊列上等待的用戶空間接收任務(wù),并將所述數(shù)據(jù)從所述循環(huán)緩沖隊列復(fù)制到用戶態(tài)緩沖區(qū)。
      14.如權(quán)利要求13所述的設(shè)備,其特征在于,所述循環(huán)緩沖隊列由一個循環(huán)Buffer數(shù)組和數(shù)組索引FetcKReady和Temp組成;所述Buffer數(shù)組的每個元素存儲了指向具體數(shù)據(jù)的指針;索引!^etch表示當(dāng)前循環(huán)緩沖隊列可出隊數(shù)據(jù)的位置F,索引Ready表示當(dāng)前循環(huán)緩沖隊列可用數(shù)據(jù)位置R,索引Temp表示當(dāng)前循環(huán)緩沖隊列可入隊數(shù)據(jù)位置T ;如果F等于R,表示當(dāng)前循環(huán)緩沖隊列為空;在到達所述定時器中斷時間時,數(shù)據(jù)進入循環(huán)緩沖隊列,臨時指針T向前移動;當(dāng)處理完接收隊列中所有數(shù)據(jù)后,更新R=T;當(dāng)喚醒用戶空間接收任務(wù)時,依次從循環(huán)緩沖隊列中獲取(R-F)個數(shù)據(jù),并更新F。
      15.如權(quán)利要求11所述的設(shè)備,其特征在于,所述處理模塊,進一步用于為每個port綁定一組規(guī)則過濾器,當(dāng)取出所述數(shù)據(jù)后,通過規(guī)則過濾器的關(guān)鍵字段對所述數(shù)據(jù)進行匹配;當(dāng)所述數(shù)據(jù)符合其中一個規(guī)則過濾器的匹配規(guī)則時,將所述數(shù)據(jù)發(fā)送給該規(guī)則過濾器對應(yīng)的port ο
      16.如權(quán)利要求9所述的設(shè)備,其特征在于,所述處理模塊,還用于通過用戶空間發(fā)送任務(wù)將待發(fā)送數(shù)據(jù)封裝成以太幀,通過調(diào)用以太驅(qū)動的封裝接口將該以太幀復(fù)制到內(nèi)核空間,并存儲到以太網(wǎng)卡的發(fā)送隊列。
      全文摘要
      本發(fā)明公開了一種數(shù)據(jù)處理方法和設(shè)備,該方法包括根據(jù)關(guān)鍵任務(wù)的處理時間信息確定定時器中斷時間信息;并根據(jù)所述定時器中斷時間信息對數(shù)據(jù)進行處理。本發(fā)明實施例中,在網(wǎng)絡(luò)高負載下,對Linux中關(guān)鍵任務(wù)的實時性能影響小,保證關(guān)鍵任務(wù)的處理性能。
      文檔編號G06F9/48GK102156662SQ201110037209
      公開日2011年8月17日 申請日期2011年2月14日 優(yōu)先權(quán)日2011年2月14日
      發(fā)明者劉博強, 笪禹, 董繼炳 申請人:大唐移動通信設(shè)備有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1