最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

非揮發(fā)信息存儲(chǔ)管理方法

文檔序號(hào):6566702閱讀:277來源:國知局
專利名稱:非揮發(fā)信息存儲(chǔ)管理方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種信息存儲(chǔ)管理方法。
目前,對(duì)這些非揮發(fā)信息的存儲(chǔ)基本采用以下兩種方法一種是將所有的信息作為一個(gè)完整的文件,每條信息沒有明確的位置,對(duì)其中的某條信息的操作必須針對(duì)整個(gè)文件;另一種方法是將每條信息獨(dú)立存儲(chǔ),其起始位置固定在某個(gè)地址,每條信息允許的最大長度和格式也固定設(shè)置,通過軟件維護(hù)一張表來記錄每條信息的起始位置和長度。
采用第一種方法時(shí),如果要修改其中的一條信息,就會(huì)造成其后所有信息都要移動(dòng);當(dāng)要讀取指定的信息時(shí),也必須對(duì)整個(gè)文件進(jìn)行分析和解釋才能獲得指定信息,運(yùn)行效率較低。
采用第二種方法實(shí)現(xiàn)了信息的獨(dú)立,雖然可以單獨(dú)寫入和查詢,但由于格式定義簡單,預(yù)先設(shè)定后缺乏靈活性和可擴(kuò)展性,如果系統(tǒng)新的版本中出現(xiàn)信息的長度超過了規(guī)定的最大長度,就只能重新設(shè)計(jì)和編寫整個(gè)信息存儲(chǔ)模塊的代碼。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種既能實(shí)現(xiàn)信息獨(dú)立訪問又能適應(yīng)各種記錄長度的非揮發(fā)信息存儲(chǔ)管理方法。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是先將用于存儲(chǔ)非揮發(fā)信息的存儲(chǔ)區(qū)域劃分為整數(shù)個(gè)等長度的段作為存取操作的基本單元,并對(duì)各段依次編號(hào),其中首段作為用于描述段的結(jié)構(gòu)的描述段,其余段為用于信息存儲(chǔ)的記錄段;所述描述段包括用于表示段的大小的粒度域和用于表示記錄段中的指針域長度的指針長度域,所述記錄段包括下述域(1)指針域,用于表示同一記錄的各段間的順序關(guān)系;(2)記錄名域,用于唯一地標(biāo)識(shí)每個(gè)記錄;(3)格式域,用于描述記錄的格式;(4)記錄數(shù)據(jù)域,用于存儲(chǔ)記錄的內(nèi)容;非揮發(fā)信息存儲(chǔ)管理是對(duì)經(jīng)上述劃分的存儲(chǔ)區(qū)域執(zhí)行下述操作a、對(duì)段作初始化;b、獲取記錄的相關(guān)數(shù)據(jù);c、設(shè)置或修改記錄;d、刪除記錄。
采用上述技術(shù)方案后,存儲(chǔ)空間動(dòng)態(tài)劃分為多個(gè)段,對(duì)記錄的存取操作以段為單位進(jìn)行,每個(gè)記錄至少占據(jù)一個(gè)段,描述段與記錄段結(jié)合的方法使存儲(chǔ)空間的利用具有靈活性,信息的存取、修改及刪除均可通過對(duì)其中域的運(yùn)算實(shí)現(xiàn),既可對(duì)信息獨(dú)立訪問又能適應(yīng)各種記錄長度的信息存儲(chǔ)。


圖1是本發(fā)明方法中存儲(chǔ)區(qū)域劃分結(jié)構(gòu)圖。
圖2是對(duì)段作初始化的實(shí)施方式流程圖。
圖3是獲取當(dāng)前的記錄數(shù)目的實(shí)施方式流程圖。
圖4是獲取指定記錄名的記錄內(nèi)容的實(shí)施方式流程圖。
圖5是獲取指定序號(hào)的記錄的實(shí)施方式流程圖。
圖6是設(shè)置或修改記錄的實(shí)施方式流程圖。
圖7是刪除指定記錄名的記錄的實(shí)施方式流程圖。
參照?qǐng)D1,首先將非易失存儲(chǔ)介質(zhì)的整個(gè)存儲(chǔ)區(qū)域劃分成整數(shù)個(gè)連續(xù)的段,每個(gè)段的大小相同。每個(gè)段只能被一條記錄獨(dú)占,不能多個(gè)記錄使用同一個(gè)段;一條記錄至少占用一個(gè)段,當(dāng)記錄比較長時(shí),一個(gè)記錄可使用多個(gè)段。對(duì)各段依次編號(hào),具體實(shí)施中,可以從低地址到高地址從0開始編號(hào),依次向上遞增。其中首段,即第0號(hào)段固定用于描述段的結(jié)構(gòu),作為描述段,其后編號(hào)從1開始的段都用來存放記錄,作為記錄段。作為本發(fā)明的具體實(shí)施方式
,可將描述段的前2個(gè)字節(jié)作為粒度域,用來表示段的大小,以字節(jié)為單位。由于粒度域占用2個(gè)字節(jié),因此粒度為小于64k字節(jié)的數(shù)值。粒度的大小可根據(jù)記錄的特點(diǎn)選擇適當(dāng)值。描述段還包括用于表示記錄段中的指針域長度的指針長度域,具體實(shí)施中,可用粒度后的1個(gè)字節(jié)作為指針長度域,以字節(jié)為單位。描述段中還可以設(shè)置保留區(qū)域,以便結(jié)合需要增加其他自描述內(nèi)容,如用于記錄存儲(chǔ)介質(zhì)好壞的介質(zhì)狀態(tài)標(biāo)識(shí)域。
描述段后均為記錄段,具體實(shí)施中,記錄段可按如下結(jié)構(gòu)設(shè)置記錄段的開頭為一個(gè)指針域,其長度是由描述段中的指針長度域決定。指針域的最高比特位用于指示本記錄段是否是記錄的第一個(gè)段,該位如果是0就表示是記錄的第一個(gè)段,是1就表示不是第一個(gè)段。從次高位開始是真正的指針,該指針用于指向本記錄的下一個(gè)段的編號(hào)。如果是0,則表示這個(gè)段尚未被用作記錄,是可用的;如果是全1,則表示本段是記錄的最后一個(gè)段。執(zhí)行程序通過查找第一個(gè)比特位為0,且指針為非0的記錄段,就可以遍歷所有的記錄。初始狀態(tài)為整個(gè)存儲(chǔ)區(qū)域?yàn)槿?,表示所有的記錄段都是空的。指針域后面是記錄名域,由可打印字符組成,以一個(gè)字節(jié)的格式域作結(jié)束符,記錄名用來唯一的標(biāo)識(shí)每個(gè)記錄。格式域設(shè)置為一個(gè)字節(jié),具有兩個(gè)作用,一是作為記錄名的結(jié)束符,二是描述記錄的格式??蓪⒏袷接虻娜≈捣秶薅ㄓ?至31,對(duì)應(yīng)于ASCII(信息交換標(biāo)準(zhǔn)代碼)中的控制字符,用來標(biāo)識(shí)記錄名的結(jié)束位置。且0至31的值僅占用一個(gè)字節(jié)中的最低5個(gè)比特,其中高位的兩個(gè)比特用來標(biāo)識(shí)記錄類型,如以0標(biāo)識(shí)字符類型,以1標(biāo)識(shí)二進(jìn)制類型,2和3保留。具體實(shí)施中,格式域后還可以跟標(biāo)識(shí)記錄長度的記錄長度域,使用格式域的最低位的三個(gè)比特來描述這個(gè)記錄長度域,以0表示格式域后不跟記錄長度區(qū)域,1表示記錄長度域占用1個(gè)字節(jié),依此類推。采用該種變長記錄長度域可以提高存儲(chǔ)空間的利用率,尤其對(duì)于字符型記錄,可以不需要記錄長度域,而用一個(gè)NULL(空)字符表示字符串的結(jié)束。記錄段中的記錄數(shù)據(jù)域用于存儲(chǔ)記錄的內(nèi)容,如果一個(gè)段不夠存儲(chǔ)一個(gè)記錄,可以使用多個(gè)段,每個(gè)段起始的指針域指向下一個(gè)段。采用以上實(shí)施方式劃分存儲(chǔ)空間,用一個(gè)描述段來描述段的結(jié)構(gòu),用一個(gè)格式域來描述記錄的類型和結(jié)構(gòu),具有較完善的自描述特性、靈活性和可擴(kuò)展性。
經(jīng)上述劃分后,對(duì)非揮發(fā)信息的存儲(chǔ)管理包括下述操作a、對(duì)段作初始化;b、獲取記錄的相關(guān)數(shù)據(jù);c、設(shè)置或修改記錄;d、刪除記錄。
圖2所示是對(duì)段作初始化的實(shí)施方式的流程,其操作步驟包括a1、描述段中寫入粒度值;a2、描述段中寫入指針長度值;a3、對(duì)所有記錄段的域賦0值;a4、返回主程序。
所述獲取記錄的相關(guān)數(shù)據(jù),包括獲取當(dāng)前的記錄數(shù)目、獲取指定記錄名的記錄內(nèi)容并返回記錄類型和長度以及獲取指定序號(hào)的記錄,并返回記錄名,類型和長度;圖3所示是獲取當(dāng)前的記錄數(shù)目的實(shí)施方式的流程,具體操作步驟包括b1、對(duì)當(dāng)前遍歷段號(hào)變量m賦初值1,記錄計(jì)數(shù)變量n賦初值0;b2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟b3;如果否,執(zhí)行步驟b4;b3、變量n增加1;b4、變量m增加1;
b5、判斷變量m的值是否大于總段數(shù),如果否,返回步驟b2;如果是,執(zhí)行步驟b6;b6、返回變量n的值。
圖4所示是獲取指定記錄名的記錄內(nèi)容的實(shí)施方式的流程,具體操作步驟包括c1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1;c2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟c3;如果否,執(zhí)行步驟c8;c3、搜索格式域;c4、判斷記錄名與搜索記錄是否一致,如果是,執(zhí)行步驟c5;如果否,執(zhí)行步驟c8;c5、處理記錄長度;c6、返回記錄內(nèi)容、類型和長度;c7、返回主程序;c8、變量m增加1;c9、判斷變量m的值是否大于總段數(shù),如果否,返回步驟c2;如果是,執(zhí)行步驟c10;c10、返回查找失敗結(jié)果。
圖5所示是獲取指定序號(hào)的記錄的實(shí)施方式的流程,具體操作步驟包括d1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1,當(dāng)前記錄號(hào)變量n賦初值0;
d2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟d3;如果否,執(zhí)行步驟d8;d3、變量n增加1;d4、判斷當(dāng)前記錄號(hào)變量n的值是否等于指定記錄號(hào),如果是,執(zhí)行步驟d5;如果否,執(zhí)行步驟d8;d5、處理格式域和記錄長度;d6、返回記錄名,類型和長度;d7、返回主程序;d8、變量m增加1;d9、判斷變量m的值是否大于總段數(shù),如果否,返回步驟d2;如果是,執(zhí)行步驟d10;d10、返回查找失敗結(jié)果。
圖6所示是設(shè)置或修改記錄的實(shí)施方式流程,具體操作步驟包括e1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1;e2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟e3;如果否,執(zhí)行步驟e9;e3、搜索格式域;e4、判斷記錄名與搜索記錄是否一致,如果是,執(zhí)行步驟e5;如果否,執(zhí)行步驟e9;e5、刪除該記錄;
e6、搜尋空白段;e7、寫入記錄;e8、返回主程序;e9、變量m增加1;刪除記錄的操作包括刪除指定記錄名的記錄和刪除所有記錄,其中,圖7所示是刪除指定記錄名的記錄的實(shí)施方式流程,步驟包括f1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1;f2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟f3;如果否,執(zhí)行步驟f7;f3、搜索格式域;f4、判斷記錄名與搜索記錄是否一致,如果是,執(zhí)行步驟f5;如果否,執(zhí)行步驟f7;f5、記錄數(shù)據(jù)域清零;f6、返回主程序;f7、變量m增加1;f8、判斷變量m的值是否大于總段數(shù),如果否,返回步驟f2;如果是,執(zhí)行步驟f9;f9、返回查找失敗結(jié)果。
刪除所有的記錄的操作是將所有記錄段的內(nèi)容清零,即將所有記錄數(shù)據(jù)域清零。
權(quán)利要求
1.一種非揮發(fā)信息存儲(chǔ)管理方法,其特征在于將用于存儲(chǔ)非揮發(fā)信息的存儲(chǔ)區(qū)域劃分為整數(shù)個(gè)等長度的段作為存取操作的基本單元,并對(duì)各段依次編號(hào),其中首段作為用于描述段的結(jié)構(gòu)的描述段,其余段為用于信息存儲(chǔ)的記錄段;所述描述段包括用于表示段的大小的粒度域和用于表示記錄段中的指針域長度的指針長度域,所述記錄段包括下述域(1)指針域,用于表示同一記錄的各段間的順序關(guān)系;(2)記錄名域,用于唯一地標(biāo)識(shí)每個(gè)記錄;(3)格式域,用于描述記錄的格式;(4)記錄數(shù)據(jù)域,用于存儲(chǔ)記錄的內(nèi)容;非揮發(fā)信息存儲(chǔ)管理是對(duì)經(jīng)上述劃分的存儲(chǔ)區(qū)域執(zhí)行下述操作a、對(duì)段作初始化;b、獲取記錄的相關(guān)數(shù)據(jù);c、設(shè)置或修改記錄;d、刪除記錄。
2.如權(quán)利要求1所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述描述段還包括用于記錄存儲(chǔ)介質(zhì)好壞的介質(zhì)狀態(tài)標(biāo)識(shí)域。
3.如權(quán)利要求1所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述記錄段的格式域中可選擇地設(shè)置標(biāo)識(shí)記錄長度的記錄長度域,如果記錄內(nèi)容為字符型,不設(shè)置該記錄長度域;如果記錄內(nèi)容為非字符型,該記錄長度域值決定記錄的長度。
4.如權(quán)利要求1所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述對(duì)段作初始化的操作包括下述步驟a1、描述段中寫入粒度值;a2、描述段中寫入指針長度值;a3、對(duì)所有記錄段的域賦0值;a4、返回主程序。
5.如權(quán)利要求1所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述獲取記錄的相關(guān)數(shù)據(jù)包括獲取當(dāng)前的記錄數(shù)目、獲取指定記錄名的記錄內(nèi)容并返回記錄類型和長度以及獲取指定序號(hào)的記錄,并返回記錄名,類型和長度;
6.如權(quán)利要求5所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述獲取當(dāng)前的記錄數(shù)目的操作包括下述步驟b1、對(duì)當(dāng)前遍歷段號(hào)變量m賦初值1,記錄計(jì)數(shù)變量n賦初值0;b2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟b3;如果否,執(zhí)行步驟b4;b3、變量n增加1;b4、變量m增加1;b5、判斷變量m的值是否大于總段數(shù),如果否,返回步驟b2;如果是,執(zhí)行步驟b6;b6、返回變量n的值。
7.如權(quán)利要求5所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述獲取指定記錄名的記錄內(nèi)容并返回記錄類型和長度的操作包括下述步驟c1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1;c2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟c3;如果否,執(zhí)行步驟c8;c3、搜索格式域;c4、判斷記錄名與搜索記錄是否一致,如果是,執(zhí)行步驟c5;如果否,執(zhí)行步驟c8;c5、處理記錄長度;c6、返回記錄內(nèi)容、類型和長度;c7、返回主程序;c8、變量m增加1;c9、判斷變量m的值是否大于總段數(shù),如果否,返回步驟c2;如果是,執(zhí)行步驟c10;c10、返回查找失敗結(jié)果。
8.如權(quán)利要求5所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述獲取指定序號(hào)的記錄,并返回記錄名,類型和長度的操作包括下述步驟d1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1,當(dāng)前記錄號(hào)變量n賦初值0;d2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟d3;如果否,執(zhí)行步驟d8;d3、變量n增加1;d4、判斷當(dāng)前記錄號(hào)變量n的值是否等于指定記錄號(hào),如果是,執(zhí)行步驟d5;如果否,執(zhí)行步驟d8;d5、處理格式域和記錄長度;d6、返回記錄名,類型和長度;d7、返回主程序;d8、變量m增加1;d9、判斷變量m的值是否大于總段數(shù),如果否,返回步驟d2;如果是,執(zhí)行步驟d10;d10、返回查找失敗結(jié)果。
9.如權(quán)利要求1所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述設(shè)置或修改記錄的操作包括下述步驟e1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1;e2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟e3;如果否,執(zhí)行步驟e9;e3、搜索格式域;e4、判斷記錄名與搜索記錄是否一致,如果是,執(zhí)行步驟e5;如果否,執(zhí)行步驟e9;e5、刪除該記錄;e6、搜尋空白段;e7、寫入記錄;e8、返回主程序;e9、變量m增加1;e10、判斷變量m的值是否大于總段數(shù),如果否,返回步驟e2;如果是,執(zhí)行步驟e6;
10.如權(quán)利要求1所述的非揮發(fā)信息存儲(chǔ)管理方法,其特征在于所述刪除記錄的操作包括刪除指定記錄名的記錄和刪除所有記錄,其中,刪除指定記錄名的記錄包括下述步驟f1、對(duì)當(dāng)前搜索段號(hào)變量m賦初值1;f2、判斷段號(hào)為m的段之0比特位的值是否等于0而且該段指針域的值不等于0,判斷結(jié)果如果是真,執(zhí)行步驟f3;如果否,執(zhí)行步驟f7;f3、搜索格式域;f4、判斷記錄名與搜索記錄是否一致,如果是,執(zhí)行步驟f5;如果否,執(zhí)行步驟f7;f5、記錄數(shù)據(jù)域清零;f6、返回主程序;f7、變量m增加1;f8、判斷變量m的值是否大于總段數(shù),如果否,返回步驟f2;如果是,執(zhí)行步驟f9;f9、返回查找失敗結(jié)果。刪除所有的記錄的操作是將所有記錄段的內(nèi)容清零。
全文摘要
本發(fā)明公開了一種非揮發(fā)信息存儲(chǔ)管理方法,先將存儲(chǔ)區(qū)域劃分為整數(shù)個(gè)等長度的段作為存取操作的基本單元,并對(duì)各段依次編號(hào),其中首段作為用于描述段的結(jié)構(gòu)的描述段,其余段為用于信息存儲(chǔ)的記錄段;描述段包括粒度域和指針域長度的指針長度域,記錄段包括指針域、記錄名域、格式域和記錄數(shù)據(jù)域,對(duì)經(jīng)上述劃分的存儲(chǔ)區(qū)域執(zhí)行對(duì)段作初始化、獲取記錄的相關(guān)數(shù)據(jù)、設(shè)置或修改記錄及刪除記錄等操作對(duì)信息作存儲(chǔ)管理,使存儲(chǔ)空間的利用具有靈活性,信息的存取、修改及刪除均可通過對(duì)其中域的運(yùn)算實(shí)現(xiàn),既可對(duì)信息獨(dú)立訪問又能適應(yīng)各種記錄長度的信息存儲(chǔ)。
文檔編號(hào)G06F12/06GK1417686SQ0113461
公開日2003年5月14日 申請(qǐng)日期2001年11月7日 優(yōu)先權(quán)日2001年11月7日
發(fā)明者趙嵐 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1