欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種共享內(nèi)存空間的管理方法與流程

文檔序號:11432139閱讀:344來源:國知局
一種共享內(nèi)存空間的管理方法與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種共享內(nèi)存空間的管理方法。



背景技術(shù):

進(jìn)程是計(jì)算機(jī)進(jìn)行資源分配和調(diào)度的基本單位,進(jìn)程是一個(gè)實(shí)體。共享內(nèi)存(sharedmemory,shm)是被多個(gè)進(jìn)程共享的邏輯內(nèi)存區(qū)域。每個(gè)進(jìn)程將共享內(nèi)存空間地址映射到各自的邏輯地址空間中,一個(gè)進(jìn)程向共享內(nèi)存空間寫入了數(shù)據(jù),使用共享內(nèi)存空間的其他進(jìn)程就可以看到該數(shù)據(jù),從而實(shí)現(xiàn)進(jìn)程間通信(interprocesscommunication,ipc)。由于進(jìn)程可以直接讀寫內(nèi)存,不需要復(fù)制數(shù)據(jù),因此使用共享內(nèi)存空間通信是進(jìn)程間通信(interprocesscommunication,ipc)最有效的方式;此外,共享內(nèi)存空間還可以緩存大數(shù)據(jù)。

由于共享內(nèi)存空間在各進(jìn)程的地址空間中的地址不同,因此,共享內(nèi)存空間中只能存放數(shù)據(jù),不能存放指針。在共享內(nèi)存空間中使用相對共享內(nèi)存空間首地址的地址偏移量來模擬指針。

共享內(nèi)存空間的使用有如下幾個(gè)特點(diǎn):可以被多個(gè)進(jìn)程打開訪問;讀寫操作的進(jìn)程在執(zhí)行讀寫操作時(shí)其他進(jìn)程不能進(jìn)行讀寫操作;多個(gè)進(jìn)程可以交替對共享內(nèi)存空間執(zhí)行寫操作;一個(gè)進(jìn)程執(zhí)行了共享內(nèi)存空間的寫操作后,不影響其他進(jìn)程對該共享內(nèi)存空間的訪問,同時(shí)其他進(jìn)程對更新后的內(nèi)存具有可見性。共享內(nèi)存空間的使用需要通過信號量、全局鎖通過、管道消息或ipc消息等來保證讀寫之間的同步。

傳統(tǒng)的共享內(nèi)存空間的管理方法只是單純停留在地址偏移量的 移動(dòng),來存儲和讀取數(shù)據(jù),不僅使用上不靈活,多次讀寫后,地址偏移量的大小不好控制,因此很難發(fā)揮共享內(nèi)存空間的作用。



技術(shù)實(shí)現(xiàn)要素:

針對現(xiàn)有技術(shù)的缺陷,本發(fā)明提供一種共享內(nèi)存空間的管理方法及系統(tǒng),以解決現(xiàn)有共享內(nèi)存空間管理技術(shù)單純停留在偏移量的移動(dòng)來存儲和讀取數(shù)據(jù),不僅使用上不靈活,多次讀寫后,偏移量的大小不好控制,很難發(fā)揮共享內(nèi)存空間的作用的技術(shù)問題。

為此目的,本發(fā)明提出一種共享內(nèi)存空間的管理方法,包括:

基于預(yù)設(shè)的鏈表模式,將待管理的共享內(nèi)存空間初始化為公共區(qū)和私有區(qū),且在所述私有區(qū)中初始化一塊屬性區(qū),并將所述鏈表模式對應(yīng)的鏈表結(jié)點(diǎn)的屬性存放到所述屬性區(qū);

在接收到一條待寫入的數(shù)據(jù)時(shí),從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn);

將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域,并在該鏈表結(jié)點(diǎn)的指針域記錄與該鏈表結(jié)點(diǎn)相關(guān)的鏈表結(jié)點(diǎn)相對所述共享內(nèi)存空間的首地址的地址偏移量。

可選的,所述鏈表模式為容器vector;

相應(yīng)地,所述將所述鏈表模式對應(yīng)的鏈表結(jié)點(diǎn)屬性存放到所述屬性區(qū),包括:

將鏈表結(jié)點(diǎn)的數(shù)據(jù)域預(yù)設(shè)的數(shù)據(jù)條數(shù)、每條數(shù)據(jù)預(yù)設(shè)的最大長度、第一個(gè)鏈表結(jié)點(diǎn)的指針域相對于共享內(nèi)存空間的首地址的地址偏移量以及當(dāng)前使用的鏈表結(jié)點(diǎn)的指針域相對于共享內(nèi)存空間的首地址的地址偏移量存放到所述屬性區(qū)。

可選的,所述從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn)空間,包括:

從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)數(shù)據(jù)域大小為預(yù)設(shè)頁大小的鏈表結(jié)點(diǎn)空間,所述預(yù)設(shè)頁大小由所述鏈表結(jié)點(diǎn)的數(shù)據(jù)域 預(yù)設(shè)的數(shù)據(jù)條數(shù)以及每條數(shù)據(jù)預(yù)設(shè)的最大長度確定。

可選的,所述在該鏈表結(jié)點(diǎn)的指針域記錄與該鏈表結(jié)點(diǎn)相關(guān)的鏈表結(jié)點(diǎn)相對所述共享內(nèi)存空間的首地址的地址偏移量,包括:

在該鏈表結(jié)點(diǎn)的指針域記錄該鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的地址偏移量、前一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量以及后一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量。

可選的,所述從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn)空間之前,所述共享內(nèi)存空間管理方法還包括:

判斷當(dāng)前使用的鏈表結(jié)點(diǎn)的數(shù)據(jù)域?qū)懭氲臄?shù)據(jù)條數(shù)是否達(dá)到預(yù)設(shè)的數(shù)據(jù)條數(shù);

若是,則執(zhí)行所述從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn)空間的步驟;

相應(yīng)地,所述將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域,包括:

將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域的第一條數(shù)據(jù)中。

可選的,所述從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn)空間之后,所述共享內(nèi)存空間的管理方法還包括:

將申請的鏈表結(jié)點(diǎn)空間的數(shù)據(jù)域相對于共享內(nèi)存空間的首地址的地址偏移量存放到預(yù)先創(chuàng)建的棧空間中。

可選的,所述鏈表模式為表list;

相應(yīng)地,所述在所述私有區(qū)中初始化一塊屬性區(qū),包括:

在所述私有區(qū)中初始化一塊具有n個(gè)歸類標(biāo)識slot空間的屬性區(qū),所述n為slot的預(yù)設(shè)個(gè)數(shù),所述slot空間用于存放該slot當(dāng)前使用的鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量;

相應(yīng)地,所述將所述鏈表模式對應(yīng)的鏈表結(jié)點(diǎn)屬性存放到所述屬性區(qū),包括:

將第一個(gè)鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的 地址偏移量、最后一個(gè)鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的地址偏移量存放到所述屬性區(qū)的非slot空間中。

可選的,所述從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn)空間,包括:

從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)數(shù)據(jù)域長度為該條數(shù)據(jù)長度的鏈表結(jié)點(diǎn)空間。

可選的,所述將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域之前,所述共享內(nèi)存空間的管理方法還包括:

基于預(yù)設(shè)的哈希規(guī)則哈希該條數(shù)據(jù),得到該條數(shù)據(jù)的哈希值;

基于各slot預(yù)設(shè)的哈希值范圍,確定該條數(shù)據(jù)的哈希值所屬的目標(biāo)哈希值范圍,得到目標(biāo)slot空間;

將該鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量存放到所述目標(biāo)slot空間中。

可選的,所述在該鏈表結(jié)點(diǎn)的指針域記錄與該鏈表結(jié)點(diǎn)相關(guān)的鏈表結(jié)點(diǎn)相對所述共享內(nèi)存空間的首地址的地址偏移量,包括:

在該鏈表結(jié)點(diǎn)的指針域記錄該鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的地址偏移量、與該鏈表結(jié)點(diǎn)同屬一個(gè)slot的前一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量以及后一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量。

相比于現(xiàn)有技術(shù),本發(fā)明的共享內(nèi)存空間的管理方法,利用鏈表結(jié)點(diǎn)的指針域記錄相對共享內(nèi)存空間首地址的地址偏移量,用以模擬鏈表結(jié)構(gòu),對共享內(nèi)存空間實(shí)現(xiàn)靈活、高效的管理。

附圖說明

圖1為本發(fā)明第一實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖2為本發(fā)明第二實(shí)施例提供的一種共享內(nèi)存空間的管理方法 流程圖;

圖3為本發(fā)明第三實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖4為本發(fā)明第四實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖5為本發(fā)明第五實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖6為本發(fā)明第六實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖7為本發(fā)明第七實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖8為本發(fā)明第八實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖9為本發(fā)明第九實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖;

圖10為本發(fā)明第十實(shí)施例提供的一種共享內(nèi)存空間的管理方法流程圖。

具體實(shí)施方式

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。

如圖1所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟101至103:

101、基于預(yù)設(shè)的鏈表模式,將待管理的共享內(nèi)存空間初始化為公共區(qū)和私有區(qū),且在所述私有區(qū)中初始化一塊屬性區(qū),并將所述鏈表模式對應(yīng)的鏈表結(jié)點(diǎn)的屬性存放到所述屬性區(qū)。

本實(shí)施例的管理方法的執(zhí)行主體可以創(chuàng)建所述待管理的共享內(nèi)存空間,當(dāng)然,待管理的共享內(nèi)存空間也可由其他進(jìn)程創(chuàng)建。每創(chuàng)建一個(gè)共享內(nèi)存空間,也即得到一個(gè)共享內(nèi)存空間對象,在創(chuàng)建一個(gè)共享內(nèi)存空間后要為其增加標(biāo)識,也即該共享內(nèi)存空間對象有唯一對象名稱用于標(biāo)識該共享內(nèi)存空間對象。

本實(shí)施例的的管理方法,將待管理的共享內(nèi)存空間初始化為公共區(qū)和私有區(qū)后,可以將待管理的共享內(nèi)存空間的信息存儲到公共區(qū),共享內(nèi)存空間的信息可包括:共享內(nèi)存空間對象名稱及共享內(nèi)存空間的首地址等。

本實(shí)施例的管理方法中,預(yù)設(shè)的鏈表模式可為用戶從多個(gè)預(yù)設(shè)的鏈表模式中任選的一個(gè)鏈表模式,也可為本實(shí)施例的管理方法的執(zhí)行主體預(yù)先配置的鏈表模式。

102、在接收到一條待寫入的數(shù)據(jù)時(shí),從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn)空間。

私有區(qū)的非屬性區(qū)用來存放數(shù)據(jù)及其相關(guān)信息,因此,私有區(qū)的非屬性區(qū)也可稱為數(shù)據(jù)區(qū)。

103、將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域,并在該鏈表結(jié)點(diǎn)的指針域記錄與該鏈表結(jié)點(diǎn)相關(guān)的鏈表結(jié)點(diǎn)相對所述共享內(nèi)存空間的首地址的地址偏移量。

本實(shí)施例中,步驟103執(zhí)行后,可進(jìn)一步地更新公共區(qū)中存放的信息,例如:共享內(nèi)存空間中已存放的數(shù)據(jù)條數(shù)及共享內(nèi)存空間容量等。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式,鏈表結(jié)點(diǎn)的指針域記錄相對共享內(nèi)存空間首地址的地址偏移量,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

在一個(gè)具體的例子中,可將公共區(qū)進(jìn)一步初始化為共享內(nèi)存空間環(huán)境管理區(qū)和對象管理區(qū)。

具體地,共享內(nèi)存空間環(huán)境管理區(qū)中可存儲的信息可包括:共享內(nèi)存空間環(huán)境管理區(qū)標(biāo)識、共享內(nèi)存空間環(huán)境管理區(qū)版本號、共享內(nèi)存空間環(huán)境管理區(qū)創(chuàng)建日期、共享內(nèi)存空間長度(以字節(jié)計(jì)算)、共享內(nèi)存空間已使用空間(以字節(jié)計(jì)算)、共享內(nèi)存空間環(huán)境鎖、共享內(nèi)存空間對象字典表、共享內(nèi)存空間環(huán)境管理區(qū)占用空間(以字節(jié)計(jì)算)、共享內(nèi)存空間環(huán)境管理區(qū)結(jié)束位置。

對象管理區(qū)中可存儲的信息可包括:共享內(nèi)存空間對象類型定義、對象名稱、對象在內(nèi)存中的偏移位置、對象占用內(nèi)存字節(jié)數(shù)、對象容量、對象中已保存數(shù)據(jù)條數(shù)。

如圖2所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟201至203:

201、基于預(yù)設(shè)的鏈表模式:容器vector,將待管理的共享內(nèi)存空間初始化為公共區(qū)和私有區(qū),且在所述私有區(qū)中初始化一塊屬性區(qū),將鏈表結(jié)點(diǎn)的數(shù)據(jù)域預(yù)設(shè)的數(shù)據(jù)條數(shù)、每條數(shù)據(jù)預(yù)設(shè)的最大長度、第一個(gè)鏈表結(jié)點(diǎn)的指針域相對于共享內(nèi)存空間的首地址的地址偏移量以及當(dāng)前使用的鏈表結(jié)點(diǎn)的指針域相對于共享內(nèi)存空間的首地址的地址偏移量存放到所述屬性區(qū)。

步驟202~203與圖1所示的步驟102~103相同,在此不再贅述。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:容器vector,將共享內(nèi)存空間以頁的方式進(jìn)行管理,即每個(gè)鏈表結(jié)點(diǎn)的數(shù)據(jù)域的大小為頁大小,并在初始化共享內(nèi)存空間時(shí)即確定頁大小,鏈表結(jié)點(diǎn)的指針域可稱為頁信息域,鏈表結(jié)點(diǎn)的數(shù)據(jù)域可稱為頁數(shù)據(jù)域,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

在一個(gè)具體的例子中,步驟201中在所述私有區(qū)中初始化一塊屬性區(qū)的同時(shí)也可申請一個(gè)鏈表結(jié)點(diǎn)空間。步驟201中屬性區(qū)中還保存以下信息:頁數(shù)(即頁數(shù)據(jù)域個(gè)數(shù))。

由于在初始化時(shí)申請了一個(gè)鏈表結(jié)點(diǎn)空間,則頁數(shù)為1,后續(xù)每 申請一個(gè)鏈表結(jié)點(diǎn)空間,則頁數(shù)加1。

如圖3所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟301至303:

步驟301與圖2所示的步驟201相同,在此不再贅述。

302、在接收到一條待寫入的數(shù)據(jù)時(shí),從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)數(shù)據(jù)域大小為預(yù)設(shè)頁大小的鏈表結(jié)點(diǎn)空間,所述預(yù)設(shè)頁大小由所述鏈表結(jié)點(diǎn)的數(shù)據(jù)域預(yù)設(shè)的數(shù)據(jù)條數(shù)以及每條數(shù)據(jù)預(yù)設(shè)的最大長度確定。

步驟303與圖2所示的步驟203相同,在此不再贅述。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:容器vector,在申請鏈表結(jié)點(diǎn)空間時(shí),鏈表結(jié)點(diǎn)的數(shù)據(jù)域的大小是固定的即預(yù)設(shè)的頁大小,以頁的方式對共享內(nèi)存空間進(jìn)行管理,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

如圖4所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟401至404:

步驟401~402與圖2所示的步驟201~202相同,在此不再贅述。

403、將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域,并在該鏈表結(jié)點(diǎn)的指針域記錄該鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的地址偏移量、前一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量以及后一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:容器vector,在將一條數(shù)據(jù)寫入到鏈表結(jié)點(diǎn)的數(shù)據(jù)域后,在該鏈表結(jié)點(diǎn)的指針域記錄與該鏈表結(jié)點(diǎn)相關(guān)的鏈表結(jié)點(diǎn)相對所述共享內(nèi)存空間的首地址的地址偏移量,方便尋找待讀取的數(shù)據(jù),從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

進(jìn)一步地,本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式: 容器vector,鏈表結(jié)點(diǎn)的指針域可稱為頁信息域,鏈表結(jié)點(diǎn)的數(shù)據(jù)域可稱為頁數(shù)據(jù)域,有效的將頁信息域和頁數(shù)據(jù)域解耦,在頁數(shù)據(jù)域增加數(shù)據(jù)更方便,刪除數(shù)據(jù)從末尾開始。

如圖5所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟501至505:

步驟501與圖2所示的步驟201相同,在此不再贅述。

502、在接收到一條待寫入的數(shù)據(jù)時(shí),判斷當(dāng)前使用的鏈表結(jié)點(diǎn)的數(shù)據(jù)域?qū)懭氲臄?shù)據(jù)條數(shù)是否達(dá)到預(yù)設(shè)的數(shù)據(jù)條數(shù);若是,則執(zhí)行步驟503~504;若否,則執(zhí)行步驟505。

503、從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)鏈表結(jié)點(diǎn)空間。

504、將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域的第一條數(shù)據(jù)中,并在該鏈表結(jié)點(diǎn)的指針域記錄與該鏈表結(jié)點(diǎn)相關(guān)的鏈表結(jié)點(diǎn)相對所述共享內(nèi)存空間的首地址的地址偏移量。

505、將該條數(shù)據(jù)寫入到當(dāng)前使用的鏈表結(jié)點(diǎn)的數(shù)據(jù)域中。

具體地,可將該條數(shù)據(jù)寫入到當(dāng)前使用的鏈表結(jié)點(diǎn)的數(shù)據(jù)域的已寫入數(shù)據(jù)中最末條數(shù)據(jù)之后,例如:鏈表結(jié)點(diǎn)的數(shù)據(jù)域可存放30條數(shù)據(jù),已寫入了15條數(shù)據(jù),則來一條數(shù)據(jù),就寫入到第16條中。若已寫入的15條數(shù)據(jù)中第2條被刪除了,則來一條數(shù)據(jù),也是寫到第16條中,方便管理。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:容器vector,以頁的方式對共享內(nèi)存空間進(jìn)行管理,在接收到一條待寫入的數(shù)據(jù)時(shí),判斷當(dāng)前使用的鏈表結(jié)點(diǎn)的數(shù)據(jù)域(頁)是否用完,若用完則申請新的鏈表結(jié)點(diǎn)空間,若未用完,則繼續(xù)使用,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

如圖6所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟601至604:

步驟601~603與圖2所示的步驟201~203相同,在此不再贅述。

步驟604為圖2所示的步驟202之后新增的步驟:

605、將申請的鏈表結(jié)點(diǎn)空間的數(shù)據(jù)域相對于共享內(nèi)存空間的首地址的地址偏移量存放到預(yù)先創(chuàng)建的??臻g中。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:容器vector,以頁的方式對共享內(nèi)存空間進(jìn)行管理,鏈表結(jié)點(diǎn)的指針域可稱為頁信息域,鏈表結(jié)點(diǎn)的數(shù)據(jù)域可稱為頁數(shù)據(jù)域,由于頁數(shù)據(jù)域分散,本實(shí)施例通過預(yù)先創(chuàng)建的??臻g來管理頁數(shù)據(jù)域,??臻g中每個(gè)存儲單元存儲一個(gè)頁數(shù)據(jù)域相對于共享內(nèi)存空間的首地址的地址偏移量,從而通過??臻g可以快速訪問頁數(shù)據(jù)域任一條數(shù)據(jù),從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

如圖7所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟701至703:

701、基于預(yù)設(shè)的鏈表模式:表list,將待管理的共享內(nèi)存空間初始化為公共區(qū)和私有區(qū),且在所述私有區(qū)中初始化一塊具有歸類標(biāo)識slot空間的屬性區(qū),所述n為slot的預(yù)設(shè)個(gè)數(shù),所述slot空間用于存放該slot當(dāng)前使用的鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量,并將第一個(gè)鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的地址偏移量、最后一個(gè)鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的地址偏移量存放到所述屬性區(qū)的非slot空間中。

步驟702~703與圖1所示的步驟102~103相同,在此不再贅述。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:表list,將共享內(nèi)存空間分為多個(gè)歸類標(biāo)識slot,每個(gè)slot有slot空間,這樣寫入的多條數(shù)據(jù)被歸類到不同的slot空間,讀數(shù)據(jù)時(shí)可基于slot空間快速找到待讀取的數(shù)據(jù)的位置,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

進(jìn)一步地,本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式: 表list,與vector模式不同,list模式在初始化時(shí)不需要固定每次增加數(shù)據(jù)的長度,因此在頻繁增加、刪除數(shù)據(jù)的場景可以實(shí)現(xiàn)高效的共享內(nèi)存空間管理。

進(jìn)一步地,本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:表list,與vector模式相比,vector模式可通過下標(biāo)方式訪問數(shù)據(jù),list模式的數(shù)據(jù)地址不連續(xù),不能通過下標(biāo)方式來訪問數(shù)據(jù),速度上沒有vector模式快,但是list模式通過slot對數(shù)據(jù)歸類,不像vector模式具有若干頁信息域,因此,可騰出更多空間存放數(shù)據(jù),并且可以加快搜索數(shù)據(jù)的速度。

vector模式通過下標(biāo)方式訪問數(shù)據(jù)舉例如下:

下標(biāo)為31,則表示要訪問第31條數(shù)據(jù)。

頁以0開始編號,則,第31條數(shù)據(jù)訪問的過程如下:31除以30(每頁30條)為1余1,前一個(gè)1表示數(shù)據(jù)在第1頁,后一個(gè)1表示數(shù)據(jù)在第1條。

頁以1開始編號,則,第31條數(shù)據(jù)訪問的過程如下:31除以30(每頁30條)為1余1,前一個(gè)1表示數(shù)據(jù)在第2頁即商加1,后一個(gè)1表示數(shù)據(jù)在第1條。

如圖8所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟801至803:

步驟801與圖7所示的步驟701相同,在此不再贅述。

802、在接收到一條待寫入的數(shù)據(jù)時(shí),從所述私有區(qū)的非屬性區(qū)為該條數(shù)據(jù)申請一個(gè)數(shù)據(jù)域長度為該條數(shù)據(jù)長度的鏈表結(jié)點(diǎn)空間。

步驟803與圖7所示的步驟703相同,在此不再贅述。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:表list,基于寫入數(shù)據(jù)的長度來申請鏈表結(jié)點(diǎn)空間,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

如圖9所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包 括以下步驟901至906:

步驟901~902與圖7所示的步驟701~702相同,在此不再贅述。

903、基于預(yù)設(shè)的哈希規(guī)則哈希該條數(shù)據(jù),得到該條數(shù)據(jù)的哈希值。

904、基于各slot預(yù)設(shè)的哈希值范圍,確定該條數(shù)據(jù)的哈希值所屬的目標(biāo)哈希值范圍,得到目標(biāo)slot空間。

905、將該鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量存放到所述目標(biāo)slot空間中。

步驟906與圖7所示的步驟703相同,在此不再贅述。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:表list,在將一條數(shù)據(jù)寫入到一個(gè)鏈表結(jié)點(diǎn)的數(shù)據(jù)域前,通過采用哈希處理的方式,確定該條數(shù)據(jù)屬于哪個(gè)slot,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

如圖10所示,本實(shí)施例公開一種共享內(nèi)存空間的管理方法,可包括以下步驟1001至1003:

步驟1001~1002與圖7所示的步驟701~702相同,在此不再贅述。

1003、將該條數(shù)據(jù)寫入到該鏈表結(jié)點(diǎn)的數(shù)據(jù)域,在該鏈表結(jié)點(diǎn)的指針域記錄該鏈表結(jié)點(diǎn)的數(shù)據(jù)域相對所述共享內(nèi)存空間的首地址的地址偏移量、與該鏈表結(jié)點(diǎn)同屬一個(gè)slot的前一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量以及后一鏈表結(jié)點(diǎn)的指針域相對所述共享內(nèi)存空間的首地址的地址偏移量。

本實(shí)施例的共享內(nèi)存空間的管理方法,采用鏈表模式:表list,在鏈表結(jié)點(diǎn)的指針域記錄與該鏈表結(jié)點(diǎn)相關(guān)的鏈表結(jié)點(diǎn)相對所述共享內(nèi)存空間的首地址的地址偏移量,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

需要說明的是,實(shí)施例中僅舉出兩種鏈表模式,本領(lǐng)域技術(shù)人員可基于本發(fā)明的思想,設(shè)計(jì)不同的鏈表模式,實(shí)現(xiàn)采用鏈表模式,鏈 表結(jié)點(diǎn)的指針域記錄相對共享內(nèi)存空間首地址的地址偏移量,從而實(shí)現(xiàn)高效靈活的共享內(nèi)存空間管理。

需要說明的是,本領(lǐng)域技術(shù)人員可基于實(shí)施例公開的共享內(nèi)存空間的管理方法涉及對應(yīng)的共享內(nèi)存空間的管理軟件或硬件。

本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。

雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
永福县| 黑河市| 黑河市| 太湖县| 铜陵市| 盐山县| 新宾| 瓮安县| 社会| 来凤县| 定襄县| 新和县| 浦东新区| 吉木乃县| 博白县| 德庆县| 舞钢市| 南宁市| 新安县| 静海县| 沛县| 孝义市| 富民县| 南通市| 陈巴尔虎旗| 麻城市| 金山区| 永丰县| 蕲春县| 正阳县| 靖西县| 丹凤县| 云龙县| 博客| 耒阳市| 怀化市| 房产| 兴城市| 林口县| 浮梁县| 友谊县|