用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法和裝置的制造方法
【專(zhuān)利摘要】本申請(qǐng)公開(kāi)了用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法和裝置。所述方法的一【具體實(shí)施方式】包括:獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求,注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小;根據(jù)所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將話題名稱(chēng)保存到配置文件中;根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將內(nèi)存段劃分成多個(gè)內(nèi)存塊;當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱話題名稱(chēng)對(duì)應(yīng)的話題。該實(shí)施方式實(shí)現(xiàn)了更加合理、靈活地分配和管理機(jī)器人操作系統(tǒng)的共享內(nèi)存。
【專(zhuān)利說(shuō)明】
用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法和裝置
技術(shù)領(lǐng)域
[0001]本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及計(jì)算機(jī)操作系統(tǒng)技術(shù)領(lǐng)域,尤其涉及用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法和裝置。
【背景技術(shù)】
[0002]R0S(Robot Operating System,機(jī)器人操作系統(tǒng))使用共享內(nèi)存的通信方式,它與傳統(tǒng)通信方式的區(qū)別是:通過(guò)不斷申請(qǐng)新的共享內(nèi)存區(qū)來(lái)實(shí)現(xiàn)消息的快速傳輸,從而實(shí)現(xiàn)控制通道的低時(shí)延和數(shù)據(jù)通道的高吞吐量,提高系統(tǒng)的運(yùn)行效率。
[0003]目前ROS使用自動(dòng)回收內(nèi)存的方法,當(dāng)節(jié)點(diǎn)進(jìn)程停止工作后,系統(tǒng)會(huì)自行判斷是否對(duì)該內(nèi)存進(jìn)行回收。當(dāng)對(duì)象的所有關(guān)聯(lián)都被切斷,且系統(tǒng)進(jìn)行資源清理后依舊沒(méi)有使該對(duì)象變?yōu)榭蛇_(dá)狀態(tài),則這個(gè)對(duì)象將永久性失去引用并且變成不可達(dá)狀態(tài),系統(tǒng)才會(huì)真正的回收該對(duì)象所占用的內(nèi)存資源。
[0004]然而,該自動(dòng)回收內(nèi)存的方法存在很多隱患,如果出現(xiàn)某些異常原因沒(méi)有及時(shí)清理不可達(dá)內(nèi)存將會(huì)造成大量的資源浪費(fèi),嚴(yán)重時(shí)會(huì)影響其他模塊執(zhí)行效率,甚至?xí)斐烧麄€(gè)系統(tǒng)崩潰。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)的目的在于提出一種改進(jìn)的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法和裝置,來(lái)解決以上【背景技術(shù)】部分提到的技術(shù)問(wèn)題。
[0006]第一方面,本申請(qǐng)?zhí)峁┝艘环N用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法,其特征在于,所述方法包括:獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求,所述注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小;根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將所述話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將所述話題名稱(chēng)保存到配置文件中;根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將所申請(qǐng)的內(nèi)存段劃分成多個(gè)內(nèi)存塊,其中,每個(gè)內(nèi)存塊的大小大于所發(fā)送的消息的大小;當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將所申請(qǐng)的內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與所述配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題;其中,所述主節(jié)點(diǎn)維護(hù)著消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)的話題名稱(chēng),消息發(fā)送節(jié)點(diǎn)在發(fā)布消息前先通知主節(jié)點(diǎn)自身節(jié)點(diǎn)名稱(chēng)和發(fā)布的話題名稱(chēng),消息接收節(jié)點(diǎn)在收到信息前通知主節(jié)點(diǎn)自身的節(jié)點(diǎn)名稱(chēng)和訂閱的話題名稱(chēng)。
[0007]在一些實(shí)施例中,所述根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段包括:將內(nèi)存段申請(qǐng)成功后返回的所述內(nèi)存段的首地址映射到消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)各自進(jìn)程的地址中。
[0008]在一些實(shí)施例中,每個(gè)內(nèi)存塊包括用于指示內(nèi)存塊讀寫(xiě)狀態(tài)的內(nèi)存塊標(biāo)志量。
[0009]在一些實(shí)施例中,所述方法還包括:檢測(cè)消息發(fā)送節(jié)點(diǎn)對(duì)所述內(nèi)存塊的寫(xiě)入操作的時(shí)間和消息接收節(jié)點(diǎn)對(duì)內(nèi)存塊的讀取操作的時(shí)間是否超過(guò)預(yù)設(shè)的閾值時(shí)間;在超過(guò)預(yù)設(shè)的閾值時(shí)間的情況下,將所述內(nèi)存塊的內(nèi)存塊標(biāo)志量設(shè)置為可寫(xiě)入以允許消息發(fā)送節(jié)點(diǎn)對(duì)其重新寫(xiě)入。
[0010]在一些實(shí)施例中,所述內(nèi)存段包括用于記錄已經(jīng)寫(xiě)入消息的內(nèi)存塊的序號(hào)的內(nèi)存段標(biāo)志量。
[0011]第二方面,本申請(qǐng)?zhí)峁┝艘环N用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置,其特征在于,所述裝置包括:注冊(cè)單元,配置用于獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求,所述注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小;申請(qǐng)單元,配置用于根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將所述話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將所述話題名稱(chēng)保存到配置文件中;分配單元,配置用于根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將所申請(qǐng)的內(nèi)存段劃分成多個(gè)內(nèi)存塊,其中,每個(gè)內(nèi)存塊的大小大于所發(fā)送的消息的大小;回收單元,配置用于當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將所申請(qǐng)的內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與所述配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題;其中,所述主節(jié)點(diǎn)維護(hù)著消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)的話題名稱(chēng),消息發(fā)送節(jié)點(diǎn)在發(fā)布消息前先通知主節(jié)點(diǎn)自身節(jié)點(diǎn)名稱(chēng)和發(fā)布的話題名稱(chēng),消息接收節(jié)點(diǎn)在收到信息前通知主節(jié)點(diǎn)自身的節(jié)點(diǎn)名稱(chēng)和訂閱的話題名稱(chēng)。
[0012]在一些實(shí)施例中,所述裝置還包括:映射單元,配置用于將內(nèi)存段申請(qǐng)成功后返回的所述內(nèi)存段的首地址映射到消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)各自進(jìn)程的地址中。
[0013]在一些實(shí)施例中,每個(gè)內(nèi)存塊包括用于指示內(nèi)存塊讀寫(xiě)狀態(tài)的內(nèi)存塊標(biāo)志量。
[0014]在一些實(shí)施例中,所述裝置還包括:檢測(cè)單元,配置用于檢測(cè)消息發(fā)送節(jié)點(diǎn)對(duì)所述內(nèi)存塊的寫(xiě)入操作的時(shí)間和消息接收節(jié)點(diǎn)對(duì)內(nèi)存塊的讀取操作的時(shí)間是否超過(guò)預(yù)設(shè)的閾值時(shí)間,在超過(guò)預(yù)設(shè)的閾值時(shí)間的情況下,將所述內(nèi)存塊的內(nèi)存塊標(biāo)志量設(shè)置為可寫(xiě)入以允許消息發(fā)送節(jié)點(diǎn)對(duì)其重新寫(xiě)入。
[0015]在一些實(shí)施例中,所述內(nèi)存段包括用于記錄已經(jīng)寫(xiě)入消息的內(nèi)存塊的序號(hào)的內(nèi)存段標(biāo)志量。
[0016]本申請(qǐng)?zhí)峁┑挠糜跈C(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法和裝置,通過(guò)根據(jù)注冊(cè)共享內(nèi)存服務(wù)中的話題名稱(chēng)和所需內(nèi)存段大小申請(qǐng)內(nèi)存段,根據(jù)發(fā)送消息的大小將內(nèi)存段分成多個(gè)內(nèi)存塊,當(dāng)監(jiān)控到主節(jié)點(diǎn)中的話題名稱(chēng)與所述配置文件中的話題名稱(chēng)不一致,或者消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,或者消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題時(shí)回收所分配的內(nèi)存段,從而能夠合理、靈活的分配內(nèi)存并及時(shí)清理不可達(dá)內(nèi)存,提高內(nèi)存使用效率。
【附圖說(shuō)明】
[0017]通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0018]圖1是本申請(qǐng)可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
[0019]圖2是根據(jù)本申請(qǐng)的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法的一個(gè)實(shí)施例的流程圖;
[0020]圖3是根據(jù)本申請(qǐng)的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法的又一個(gè)實(shí)施例的流程圖;
[0021]圖4是根據(jù)本申請(qǐng)的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0022]圖5是適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0024]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。
[0025]圖1示出了可以應(yīng)用本申請(qǐng)的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法或裝置的實(shí)施例的示例性系統(tǒng)架構(gòu)100。
[0026]如圖1所示,系統(tǒng)架構(gòu)100可以包括無(wú)人駕駛車(chē)輛101、后臺(tái)服務(wù)器106和網(wǎng)絡(luò)105。網(wǎng)絡(luò)105用以在無(wú)人駕駛車(chē)輛101和后臺(tái)服務(wù)器106之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)105可以包括各種連接類(lèi)型,例如有線、無(wú)線通信鏈路或者光纖電纜等等。
[0027]后臺(tái)服務(wù)器106可以是提供各種服務(wù)的服務(wù)器,例如為無(wú)人駕駛車(chē)輛101提供在線地圖的后臺(tái)地圖服務(wù)器。
[0028]無(wú)人駕駛車(chē)輛101上可以安裝有采集設(shè)備102、103和車(chē)載控制器104。采集設(shè)備102、103可以通過(guò)各種通信方式(例如有線、無(wú)線通信鏈路或者光纖電纜等等)將采集的信息發(fā)送給車(chē)載控制器104。采集設(shè)備102、103可以是采集周?chē)h(huán)境信息的各種電子設(shè)備,包括但不限于攝像頭、雷達(dá)等等。車(chē)載控制器104采用改進(jìn)的機(jī)器人操作系統(tǒng),通過(guò)車(chē)內(nèi)各節(jié)點(diǎn)的協(xié)同配合,將采集設(shè)備102、103采集的周?chē)h(huán)境信息和后臺(tái)服務(wù)器106提供的地圖信息轉(zhuǎn)化成控制信息,讓汽車(chē)平穩(wěn)精確地在道路上行駛。
[0029]需要說(shuō)明的是,本申請(qǐng)實(shí)施例所提供的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法一般由車(chē)載控制器104執(zhí)行,相應(yīng)地,用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置一般設(shè)置于車(chē)載控制器104中。
[0030]應(yīng)該理解,圖1中的采集設(shè)備、無(wú)人駕駛車(chē)輛和后臺(tái)服務(wù)器的數(shù)目?jī)H僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的采集設(shè)備、無(wú)人駕駛車(chē)輛和后臺(tái)服務(wù)器。
[0031]繼續(xù)參考圖2,示出了根據(jù)本申請(qǐng)的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法的一個(gè)實(shí)施例的流程200。所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法,包括以下步驟:
[0032]步驟201,獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求。
[0033]機(jī)器人操作系統(tǒng)由很多節(jié)點(diǎn)和話題構(gòu)成,每個(gè)節(jié)點(diǎn)都是一個(gè)獨(dú)立的進(jìn)程可以和其他節(jié)點(diǎn)進(jìn)行通信。話題是節(jié)點(diǎn)之間建立連接的依據(jù),節(jié)點(diǎn)可以在一個(gè)話題上發(fā)布消息,同樣也可以訂閱一個(gè)話題來(lái)接收消息。當(dāng)在一個(gè)話題上,發(fā)布或訂閱時(shí)所使用的ROS的數(shù)據(jù)類(lèi)型。節(jié)點(diǎn)分為兩種:發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn),發(fā)送節(jié)點(diǎn)負(fù)責(zé)將處理完成的信息發(fā)送出去,接收節(jié)點(diǎn)負(fù)責(zé)接收發(fā)送節(jié)點(diǎn)發(fā)出的信息,并根據(jù)命令做出相應(yīng)操作(有時(shí)一個(gè)節(jié)點(diǎn)即是發(fā)送者又是接收者)。當(dāng)節(jié)點(diǎn)之間建立連接后,發(fā)送-接收節(jié)點(diǎn)通過(guò)共享內(nèi)存的方式進(jìn)行消息傳輸。使用共享內(nèi)存的方式進(jìn)行傳輸通常是多個(gè)發(fā)布和接收節(jié)點(diǎn)同時(shí)使用同一段共享內(nèi)存區(qū)。
[0034]在本實(shí)施例中,用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的車(chē)載控制器)通過(guò)操作系統(tǒng)的內(nèi)存管理進(jìn)程獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求。其中,該注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小。例如,向內(nèi)存管理進(jìn)程發(fā)送話題名稱(chēng)為topicl,所需內(nèi)存段為500M的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求。
[0035]步驟202,根據(jù)所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將話題名稱(chēng)保存到配置文件中。
[0036]在本實(shí)施例中,根據(jù)所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,例如,消息接收節(jié)點(diǎn)向共享內(nèi)存區(qū)申請(qǐng)500M的內(nèi)存段,內(nèi)存管理進(jìn)程將話題名稱(chēng)topicl與所申請(qǐng)的500M內(nèi)存段進(jìn)行關(guān)聯(lián),將話題名稱(chēng)topicl保存到配置文件中。
[0037]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,將內(nèi)存段申請(qǐng)成功后返回的內(nèi)存段的首地址映射到消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)各自進(jìn)程的地址中。
[0038]步驟203,根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將內(nèi)存段劃分成多個(gè)內(nèi)存塊。
[0039]在本實(shí)施例中,根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將內(nèi)存段劃分成多個(gè)內(nèi)存塊,其中,每個(gè)內(nèi)存塊的大小大于所發(fā)送的消息的大小。例如,消息發(fā)送節(jié)點(diǎn)發(fā)送40k的消息,則可將500M的內(nèi)存段分成10個(gè)內(nèi)存塊,每一個(gè)內(nèi)存塊50k,也可以是不均分但要保證每一個(gè)內(nèi)存塊大于40k,每個(gè)內(nèi)存塊除了存放消息之外還要保留部分冗余空間,內(nèi)存塊的大小一般設(shè)置成消息大小的1.2倍。
[0040]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,每個(gè)內(nèi)存塊包括用于指示內(nèi)存塊讀寫(xiě)狀態(tài)的內(nèi)存塊標(biāo)志量。該內(nèi)存塊標(biāo)志量存儲(chǔ)在內(nèi)存塊中,因此在劃分內(nèi)存塊時(shí)需要一些冗余空間來(lái)存儲(chǔ)內(nèi)存塊標(biāo)志M。
[0041]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,所申請(qǐng)的內(nèi)存段包括用于記錄已經(jīng)寫(xiě)入消息的內(nèi)存塊的序號(hào)的內(nèi)存段標(biāo)志量。消息發(fā)送節(jié)點(diǎn)將消息寫(xiě)入內(nèi)存塊后在內(nèi)存段標(biāo)志量中記錄該內(nèi)存塊的序號(hào),消息接收節(jié)點(diǎn)可以根據(jù)該內(nèi)存塊的序號(hào)去讀取相應(yīng)的數(shù)據(jù),這樣可以節(jié)省遍歷查找內(nèi)存塊的時(shí)間。
[0042]步驟204,當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將所申請(qǐng)的內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題。
[0043]在本實(shí)施例中,用于自動(dòng)駕駛汽車(chē)的ROS中的應(yīng)用是以節(jié)點(diǎn)和話題的形式組成的,其中主節(jié)點(diǎn)中維護(hù)著系統(tǒng)內(nèi)所有節(jié)點(diǎn)和話題的信息。消息發(fā)送節(jié)點(diǎn)在發(fā)布消息前先通知主節(jié)點(diǎn)自身節(jié)點(diǎn)名稱(chēng)和發(fā)布的話題名稱(chēng),消息接收節(jié)點(diǎn)在收到信息前通知主節(jié)點(diǎn)自身的節(jié)點(diǎn)名稱(chēng)和訂閱的話題名稱(chēng)。需要頻繁地同步主節(jié)點(diǎn)中的活躍信息,當(dāng)監(jiān)控到主節(jié)點(diǎn)中的話題信息與自身配置文件中的話題不一致、發(fā)送者和接收者進(jìn)程都停止工作或都不再訂閱當(dāng)前話題時(shí),內(nèi)存管理者將分配的內(nèi)存回收。
[0044]本申請(qǐng)的上述實(shí)施例提供的方法通過(guò)將話題與所申請(qǐng)的內(nèi)存段相關(guān)聯(lián),能夠及時(shí)回收不可達(dá)內(nèi)存以避免內(nèi)存資源浪費(fèi)。
[0045]進(jìn)一步參考圖3,其示出了用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法的又一個(gè)實(shí)施例的流程300。該用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法的流程300,包括以下步驟:
[0046]步驟301,獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求。
[0047]步驟302,根據(jù)所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將話題名稱(chēng)保存到配置文件中。
[0048]步驟303,根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將內(nèi)存段劃分成多個(gè)內(nèi)存塊。
[0049]步驟301-302與步驟201-202基本相同,因此不再贅述。
[0050]步驟304,檢測(cè)消息發(fā)送節(jié)點(diǎn)對(duì)內(nèi)存塊的寫(xiě)入操作的時(shí)間和消息接收節(jié)點(diǎn)對(duì)內(nèi)存塊的讀取操作的時(shí)間是否超過(guò)預(yù)設(shè)的閾值時(shí)間。
[0051]在本實(shí)施例中,如果發(fā)送節(jié)點(diǎn)或接收節(jié)點(diǎn)對(duì)一個(gè)內(nèi)存塊進(jìn)行了過(guò)長(zhǎng)時(shí)間的讀寫(xiě)操作,有可能是因?yàn)閮?nèi)存塊異常、進(jìn)程死亡等因素所導(dǎo)致,這塊內(nèi)存塊將一直不會(huì)被利用且處于永久被占用狀態(tài),我們將這樣的內(nèi)存塊稱(chēng)為“僵尸內(nèi)存”。需要進(jìn)行定時(shí)輪詢檢查以發(fā)現(xiàn)“僵尸內(nèi)存”。
[0052]步驟305,在超過(guò)預(yù)設(shè)的閾值時(shí)間的情況下,將內(nèi)存塊的內(nèi)存塊標(biāo)志量設(shè)置為可寫(xiě)入以允許消息發(fā)送節(jié)點(diǎn)對(duì)其重新寫(xiě)入。
[0053]在本實(shí)施例中,當(dāng)發(fā)現(xiàn)“僵尸內(nèi)存”存在時(shí),將內(nèi)存塊中的內(nèi)存塊標(biāo)志量設(shè)置為可寫(xiě)入狀態(tài),允許消息發(fā)送節(jié)點(diǎn)對(duì)其重新寫(xiě)入,從而避免內(nèi)存過(guò)度浪費(fèi)。
[0054]從圖3中可以看出,與圖2對(duì)應(yīng)的實(shí)施例相比,本實(shí)施例中的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法的流程300突出了對(duì)“僵尸內(nèi)存”處理的步驟。由此,本實(shí)施例描述的方案可以重新寫(xiě)入內(nèi)存塊,避免內(nèi)存浪費(fèi)。
[0055]進(jìn)一步參考圖4,作為對(duì)上述各圖所示方法的實(shí)現(xiàn),本申請(qǐng)?zhí)峁┝艘环N用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置的一個(gè)實(shí)施例,該裝置實(shí)施例與圖2所示的方法實(shí)施例相對(duì)應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
[0056]如圖4所示,本實(shí)施例所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置400包括:注冊(cè)單元401、申請(qǐng)單元402、分配單元403和回收單元404。其中,注冊(cè)單元401配置用于獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求,所述注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小;申請(qǐng)單元402配置用于根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將所述話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將所述話題名稱(chēng)保存到配置文件中;分配單元403配置用于根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將所申請(qǐng)的內(nèi)存段劃分成多個(gè)內(nèi)存塊,其中,每個(gè)內(nèi)存塊的大小大于所發(fā)送的消息的大小;回收單元404配置用于當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將所申請(qǐng)的內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與所述配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題;其中,所述主節(jié)點(diǎn)維護(hù)著消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)的話題名稱(chēng),消息發(fā)送節(jié)點(diǎn)在發(fā)布消息前先通知主節(jié)點(diǎn)自身節(jié)點(diǎn)名稱(chēng)和發(fā)布的話題名稱(chēng),消息接收節(jié)點(diǎn)在收到信息前通知主節(jié)點(diǎn)自身的節(jié)點(diǎn)名稱(chēng)和訂閱的話題名稱(chēng)。
[0057]在本實(shí)施例中,用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置400的注冊(cè)單元401接收共享內(nèi)存服務(wù)請(qǐng)求,其中,該注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小。
[0058]在本實(shí)施例中,基于注冊(cè)單元接收的共享內(nèi)存服務(wù)請(qǐng)求,申請(qǐng)單元402向共享內(nèi)存區(qū)申請(qǐng)共享內(nèi)存段。
[0059]在本實(shí)施例中,分配單元403根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將申請(qǐng)單元402申請(qǐng)的共享內(nèi)存段劃分成多個(gè)內(nèi)存塊。
[0060]在本實(shí)施例中,當(dāng)滿足內(nèi)存回收條件時(shí),回收單元404將所申請(qǐng)的內(nèi)存段回收。
[0061]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置400還包括映射單元,配置用于將內(nèi)存段申請(qǐng)成功后返回的內(nèi)存段的首地址映射到消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)各自進(jìn)程的地址中。
[0062]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,每個(gè)內(nèi)存塊包括用于指示內(nèi)存塊讀寫(xiě)狀態(tài)的內(nèi)存塊標(biāo)志量。
[0063]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置400還包括:檢測(cè)單元,配置用于檢測(cè)消息發(fā)送節(jié)點(diǎn)對(duì)內(nèi)存塊的寫(xiě)入操作的時(shí)間和消息接收節(jié)點(diǎn)對(duì)內(nèi)存塊的讀取操作的時(shí)間是否超過(guò)預(yù)設(shè)的閾值時(shí)間,在超過(guò)預(yù)設(shè)的閾值時(shí)間的情況下,將內(nèi)存塊的內(nèi)存塊標(biāo)志量設(shè)置為可寫(xiě)入以允許消息發(fā)送節(jié)點(diǎn)對(duì)其重新寫(xiě)入。
[0064]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,內(nèi)存段包括用于記錄已經(jīng)寫(xiě)入消息的內(nèi)存塊的序號(hào)的內(nèi)存段標(biāo)志量。
[0065]下面參考圖5,其示出了適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備的計(jì)算機(jī)系統(tǒng)500的結(jié)構(gòu)示意圖。
[0066]如圖5所示,計(jì)算機(jī)系統(tǒng)500包括中央處理單元(CPU)501,其可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(R0M)502中的程序或者從存儲(chǔ)部分508加載到隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)503中的程序而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。在RAM 503中,還存儲(chǔ)有系統(tǒng)500操作所需的各種程序和數(shù)據(jù)。CPU 50KROM 502以及RAM 503通過(guò)總線504彼此相連。輸入/輸出(I/O)接口505也連接至總線 504。
[0067]以下部件連接至I/O接口505:包括鍵盤(pán)、鼠標(biāo)等的輸入部分506 ;包括諸如液晶顯示器(IXD)等以及揚(yáng)聲器等的輸出部分507;包括硬盤(pán)等的存儲(chǔ)部分508;以及包括諸如LAN卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分509。通信部分509經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動(dòng)器510也根據(jù)需要連接至I/O接口 505。可拆卸介質(zhì)511,諸如磁盤(pán)、光盤(pán)、磁光盤(pán)、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器510上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分508。
[0068]特別地,根據(jù)本公開(kāi)的實(shí)施例,上文參考流程圖描述的過(guò)程可以被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本公開(kāi)的實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過(guò)通信部分509從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)511被安裝。在該計(jì)算機(jī)程序被中央處理單元(CPU) 501執(zhí)行時(shí),執(zhí)行本申請(qǐng)的方法中限定的上述功能。
[0069]附圖中的流程圖和框圖,圖示了按照本申請(qǐng)各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0070]描述于本申請(qǐng)實(shí)施例中所涉及到的單元可以通過(guò)軟件的方式實(shí)現(xiàn),也可以通過(guò)硬件的方式來(lái)實(shí)現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括注冊(cè)單元、申請(qǐng)單元、分配單元和回收單元。其中,這些單元的名稱(chēng)在某種情況下并不構(gòu)成對(duì)該單元本身的限定,例如,注冊(cè)單元還可以被描述為“獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求的單元”。
[0071]作為另一方面,本申請(qǐng)還提供了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),該非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是上述實(shí)施例中所述裝置中所包含的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。上述非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,當(dāng)所述一個(gè)或者多個(gè)程序被一個(gè)設(shè)備執(zhí)行時(shí),使得所述設(shè)備:獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求,所述注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小;根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將所述話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將所述話題名稱(chēng)保存到配置文件中;根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將所申請(qǐng)的內(nèi)存段劃分成多個(gè)內(nèi)存塊,其中,每個(gè)內(nèi)存塊的大小大于所發(fā)送的消息的大小;當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將所申請(qǐng)的內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與所述配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題;其中,所述主節(jié)點(diǎn)維護(hù)著消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)的話題名稱(chēng),消息發(fā)送節(jié)點(diǎn)在發(fā)布消息前先通知主節(jié)點(diǎn)自身節(jié)點(diǎn)名稱(chēng)和發(fā)布的話題名稱(chēng),消息接收節(jié)點(diǎn)在收到信息前通知主節(jié)點(diǎn)自身的節(jié)點(diǎn)名稱(chēng)和訂閱的話題名稱(chēng)。
[0072]以上描述僅為本申請(qǐng)的較佳實(shí)施例以及對(duì)所運(yùn)用技術(shù)原理的說(shuō)明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請(qǐng)中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時(shí)也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請(qǐng)中公開(kāi)的(但不限于)具有類(lèi)似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。
【主權(quán)項(xiàng)】
1.一種用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法,其特征在于,所述方法包括: 獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求,所述注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小; 根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將所述話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將所述話題名稱(chēng)保存到配置文件中; 根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將所申請(qǐng)的內(nèi)存段劃分成多個(gè)內(nèi)存塊,其中,每個(gè)內(nèi)存塊的大小大于所發(fā)送的消息的大小; 當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將所申請(qǐng)的內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與所述配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題;其中,所述主節(jié)點(diǎn)維護(hù)著消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)的話題名稱(chēng),消息發(fā)送節(jié)點(diǎn)在發(fā)布消息前先通知主節(jié)點(diǎn)自身節(jié)點(diǎn)名稱(chēng)和發(fā)布的話題名稱(chēng),消息接收節(jié)點(diǎn)在收到信息前通知主節(jié)點(diǎn)自身的節(jié)點(diǎn)名稱(chēng)和訂閱的話題名稱(chēng)。2.根據(jù)權(quán)利要求1所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法,其特征在于,所述根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段包括: 將內(nèi)存段申請(qǐng)成功后返回的所述內(nèi)存段的首地址映射到消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)各自進(jìn)程的地址中。3.根據(jù)權(quán)利要求1所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法,其特征在于,每個(gè)內(nèi)存塊包括用于指示內(nèi)存塊讀寫(xiě)狀態(tài)的內(nèi)存塊標(biāo)志量。4.根據(jù)權(quán)利要求3所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法,其特征在于,所述方法還包括: 檢測(cè)消息發(fā)送節(jié)點(diǎn)對(duì)內(nèi)存塊的寫(xiě)入操作的時(shí)間和消息接收節(jié)點(diǎn)對(duì)內(nèi)存塊的讀取操作的時(shí)間是否超過(guò)預(yù)設(shè)的閾值時(shí)間; 在超過(guò)預(yù)設(shè)的閾值時(shí)間的情況下,將所述內(nèi)存塊的內(nèi)存塊標(biāo)志量設(shè)置為可寫(xiě)入以允許消息發(fā)送節(jié)點(diǎn)對(duì)其重新寫(xiě)入。5.根據(jù)權(quán)利要求3所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理方法,其特征在于,所述內(nèi)存段包括用于記錄已經(jīng)寫(xiě)入消息的內(nèi)存塊的序號(hào)的內(nèi)存段標(biāo)志量。6.—種用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置,其特征在于,所述裝置包括: 注冊(cè)單元,配置用于獲取消息接收節(jié)點(diǎn)發(fā)送的注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求,所述注冊(cè)共享內(nèi)存服務(wù)請(qǐng)求包括:話題名稱(chēng)和所需內(nèi)存段大小; 申請(qǐng)單元,配置用于根據(jù)所述所需內(nèi)存段大小向共享內(nèi)存區(qū)申請(qǐng)內(nèi)存段,并將所述話題名稱(chēng)與所申請(qǐng)的內(nèi)存段進(jìn)行關(guān)聯(lián),將所述話題名稱(chēng)保存到配置文件中; 分配單元,配置用于根據(jù)消息發(fā)送節(jié)點(diǎn)所發(fā)送的消息的大小將所申請(qǐng)的內(nèi)存段劃分成多個(gè)內(nèi)存塊,其中,每個(gè)內(nèi)存塊的大小大于所發(fā)送的消息的大小; 回收單元,配置用于當(dāng)滿足以下條件中的任一項(xiàng)時(shí)將所申請(qǐng)的內(nèi)存段回收:主節(jié)點(diǎn)中的話題名稱(chēng)與所述配置文件中的話題名稱(chēng)不一致,消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)停止工作,消息接收節(jié)點(diǎn)不再訂閱所述話題名稱(chēng)對(duì)應(yīng)的話題;其中,所述主節(jié)點(diǎn)維護(hù)著消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)的話題名稱(chēng),消息發(fā)送節(jié)點(diǎn)在發(fā)布消息前先通知主節(jié)點(diǎn)自身節(jié)點(diǎn)名稱(chēng)和發(fā)布的話題名稱(chēng),消息接收節(jié)點(diǎn)在收到信息前通知主節(jié)點(diǎn)自身的節(jié)點(diǎn)名稱(chēng)和訂閱的話題名稱(chēng)。7.根據(jù)權(quán)利要求6所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置,其特征在于,所述裝置還包括: 映射單元,配置用于將內(nèi)存段申請(qǐng)成功后返回的所述內(nèi)存段的首地址映射到消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)各自進(jìn)程的地址中。8.根據(jù)權(quán)利要求6所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置,其特征在于,每個(gè)內(nèi)存塊包括用于指示內(nèi)存塊讀寫(xiě)狀態(tài)的內(nèi)存塊標(biāo)志量。9.根據(jù)權(quán)利要求8所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置,其特征在于,所述裝置還包括: 檢測(cè)單元,配置用于檢測(cè)消息發(fā)送節(jié)點(diǎn)對(duì)內(nèi)存塊的寫(xiě)入操作的時(shí)間和消息接收節(jié)點(diǎn)對(duì)內(nèi)存塊的讀取操作的時(shí)間是否超過(guò)預(yù)設(shè)的閾值時(shí)間,在超過(guò)預(yù)設(shè)的閾值時(shí)間的情況下,將所述內(nèi)存塊的內(nèi)存塊標(biāo)志量設(shè)置為可寫(xiě)入以允許消息發(fā)送節(jié)點(diǎn)對(duì)其重新寫(xiě)入。10.根據(jù)權(quán)利要求8所述的用于機(jī)器人操作系統(tǒng)的共享內(nèi)存管理裝置,其特征在于,所述內(nèi)存段包括用于記錄已經(jīng)寫(xiě)入消息的內(nèi)存塊的序號(hào)的內(nèi)存段標(biāo)志量。
【文檔編號(hào)】G06F9/54GK106021000SQ201610390625
【公開(kāi)日】2016年10月12日
【申請(qǐng)日】2016年6月2日
【發(fā)明人】馮靖超, 夏黎明, 王全, 曲寧, 陳卓
【申請(qǐng)人】北京百度網(wǎng)訊科技有限公司