專利名稱:保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在嵌入式系統(tǒng)中保證數(shù)據(jù)一致性的數(shù)據(jù)保存方法。
背景技術(shù):
目前嵌入式系統(tǒng)應(yīng)用具有非常高的可配置性,能夠依據(jù)用戶的需要靈活地設(shè)置系統(tǒng)的運(yùn) 行狀態(tài)。通常,這些對(duì)系統(tǒng)進(jìn)行配置的數(shù)據(jù)存儲(chǔ)在非易失性的存儲(chǔ)芯片中,即要求數(shù)據(jù)在掉 電的情況下仍然能夠保存。
一般來(lái)說(shuō),嵌入式系統(tǒng)中配置數(shù)據(jù)都是以多個(gè)數(shù)據(jù)表的形式保存,即對(duì)于用戶的一個(gè)配 置操作,系統(tǒng)實(shí)現(xiàn)過(guò)程中會(huì)保存多個(gè)數(shù)據(jù)庫(kù)表。當(dāng)系統(tǒng)接收到用戶配置操作后,會(huì)逐項(xiàng)對(duì)這 些數(shù)據(jù)表進(jìn)行保存,在前一數(shù)據(jù)表保存完畢后才接著處理后一個(gè)數(shù)據(jù)表,直到所有數(shù)據(jù)表都 保存完畢。這些數(shù)據(jù)表中的數(shù)據(jù)之間經(jīng)常不是孤立的,而是存在較強(qiáng)的關(guān)聯(lián)性,這些數(shù)據(jù)表 間可能存在的依賴或者索引等關(guān)系。如果在操作數(shù)據(jù)表的過(guò)程中出現(xiàn)系統(tǒng)掉電或者系統(tǒng)異常, 則可能導(dǎo)致保存的數(shù)據(jù)表之間的關(guān)聯(lián)數(shù)據(jù)不一致,可能導(dǎo)致業(yè)務(wù)異?;蛘哂行┫到y(tǒng)配置無(wú)法 啟動(dòng),嚴(yán)重的可能導(dǎo)致系統(tǒng)崩潰,因此,保證這些數(shù)據(jù)庫(kù)表之間關(guān)聯(lián)數(shù)據(jù)的一致性成為必要, 但目前的嵌入式系統(tǒng)缺少這種保證機(jī)制。
發(fā)明內(nèi)容
為克服上述缺陷,本發(fā)明的目的在于提供一種在系統(tǒng)掉電或者系統(tǒng)異常的情況下,能夠 保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法。
為達(dá)到上述發(fā)明目的,本發(fā)明采用如下技術(shù)方案該保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方 法包括-
(1) 定義并初始化數(shù)據(jù)操作標(biāo)志表;
(2) 利用數(shù)據(jù)操作標(biāo)志表的狀態(tài)進(jìn)行數(shù)據(jù)表的操作。
其中,所述的步驟(1)具體為:
〔11)定義數(shù)據(jù)操作標(biāo)志表中的關(guān)鍵標(biāo)識(shí)和操作標(biāo)志;
(12)選取待保存的數(shù)據(jù)表集合;
(13)在操作標(biāo)志表中為每-項(xiàng)數(shù)據(jù)表設(shè)置一個(gè)唯一的關(guān)鍵標(biāo)識(shí),并將操作標(biāo)志設(shè)為無(wú) 效狀態(tài)。
其中,所述的步驟(2)具體為
(21) 保存待保存的數(shù)據(jù)表;
(22) 判斷對(duì)數(shù)據(jù)表的保存是否成功,若保存成功,執(zhí)行步驟(23);若保存失敗,執(zhí)行 步驟(24);
(23) 進(jìn)入保存成功后的數(shù)據(jù)處理;
(24) 恢復(fù)處理后的數(shù)據(jù)。 其中,所述的步驟(21)具體為:
(211) 獲取一項(xiàng)待保存的數(shù)據(jù)表;
(212) 對(duì)該數(shù)據(jù)表對(duì)應(yīng)的上次數(shù)據(jù)表進(jìn)行備份,并保存該數(shù)據(jù)表的當(dāng)前數(shù)據(jù);
(213) 修改該數(shù)據(jù)表的操作標(biāo)志表中的操作標(biāo)志為有效。
其中,所述的步驟(23)具體為判斷待保存的數(shù)據(jù)表是否保存完畢,若沒(méi)有保存完畢, 返回執(zhí)行步驟(211);若保存完畢,則流程結(jié)束。 其中,所述的步驟(24)具體為
(241 )獲取保存后的操作標(biāo)志表中操作標(biāo)志為有效的一項(xiàng)數(shù)據(jù)表;
(242) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的備份數(shù)據(jù)恢復(fù)為當(dāng)前數(shù)據(jù);
(243) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的操作標(biāo)志表中的操作標(biāo)志設(shè)為無(wú)效;
(244) 判斷保存后的數(shù)據(jù)表是否恢復(fù)完畢,若恢復(fù)完畢,則流稃結(jié)束;若沒(méi)有恢復(fù)完畢, 返回執(zhí)行歩驟(241)。
若在步驟(21)中,系統(tǒng)尚未徹底完成數(shù)據(jù)的處理和保存,系統(tǒng)斷電或重啟,則進(jìn)入系統(tǒng)復(fù)位流程,具體為
系統(tǒng)復(fù)位后,判斷數(shù)據(jù)表的操作標(biāo)志表中是否存在操作標(biāo)志為無(wú)效狀態(tài)的數(shù)據(jù)表,若不 存在操作標(biāo)志為無(wú)效狀態(tài)的數(shù)據(jù)表,則流程結(jié)束;若存在操作標(biāo)志為無(wú)效狀態(tài)的數(shù)據(jù)表,執(zhí) 行如下步驟
(701) 獲取保存后的操作標(biāo)志表中操作標(biāo)志為有效的一項(xiàng)數(shù)據(jù)表;
(702) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的備份數(shù)據(jù)恢復(fù)為當(dāng)前數(shù)據(jù);
(703) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的操作標(biāo)志表中的操作標(biāo)志設(shè)為無(wú)效;
(704) 判斷保存后的數(shù)據(jù)表是否恢復(fù)完畢,若恢復(fù)完畢,則流程結(jié)束;若沒(méi)有恢復(fù)完畢,返回執(zhí)行步驟(701)。
由上述技術(shù)方案所描述的保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,在系統(tǒng)進(jìn)行配置的時(shí)候, 只要數(shù)據(jù)配置發(fā)生錯(cuò)誤就能夠?qū)⑺械呐渲脭?shù)據(jù)還原到上次配置的數(shù)據(jù),若沒(méi)有發(fā)生錯(cuò)誤, 則可以完整地將本次配置的數(shù)據(jù)保存下來(lái),這樣保證了系統(tǒng)的配置數(shù)據(jù)的一致性,不會(huì)同時(shí) 存在兩種不同的配置數(shù)據(jù)而導(dǎo)致系統(tǒng)無(wú)法正常運(yùn)行。
圖1為本發(fā)明保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法中使用的數(shù)據(jù)操作標(biāo)志表; 圖2為本發(fā)明保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法的多數(shù)據(jù)表的處理流程; 圖3為本發(fā)明保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法在系統(tǒng)重啟動(dòng)后的流程。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法進(jìn)行詳細(xì)描述。
在嵌入式系統(tǒng)接收到用戶配置操作后,會(huì)逐項(xiàng)對(duì)這些數(shù)據(jù)表進(jìn)行保存,在前一數(shù)據(jù)表保 存完畢后才接著處理后一個(gè)數(shù)據(jù)表,直到所有數(shù)據(jù)表都保存完畢。但有的時(shí)候可能會(huì)出現(xiàn)保 存了一部分?jǐn)?shù)據(jù)后就死機(jī)或斷電,系統(tǒng)重啟動(dòng)后所獲得的數(shù)據(jù)就是一部分是配置以前的數(shù)據(jù), 一部分是配置以后的數(shù)據(jù),無(wú)法保證數(shù)據(jù)表的一致性,這種錯(cuò)誤導(dǎo)致的后果可大可小,可能 導(dǎo)致業(yè)務(wù)異?;蛘哂行┫到y(tǒng)配置無(wú)法啟動(dòng),嚴(yán)重的可能導(dǎo)致系統(tǒng)崩潰。
本發(fā)明保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法在對(duì)多個(gè)數(shù)據(jù)表的處理過(guò)程中,能夠保證操 作前后的數(shù)據(jù)滿足一致性需求,該方法對(duì)數(shù)據(jù)的處理要么全部處理成功,要么全部都不處理, 這樣雖然不能保證數(shù)據(jù)一定處理成功,但至少保證了數(shù)據(jù)的一致性,并且在任意數(shù)據(jù)表異常 或者系統(tǒng)掉電的情況下,能夠恢復(fù)到操作前的狀態(tài),很好的保證多數(shù)據(jù)表之間的數(shù)據(jù)一致性。 這樣就能夠確保系統(tǒng)的正常運(yùn)行,沒(méi)有保存下來(lái)的配置可以重啟動(dòng)以后再進(jìn)行設(shè)置。
本發(fā)明實(shí)現(xiàn)上述數(shù)據(jù)處理的技術(shù)方案包括以下歩驟
第一步定義數(shù)據(jù)操作標(biāo)志表,數(shù)據(jù)操作標(biāo)志表包括所有數(shù)據(jù)表的操作標(biāo)志,每張數(shù)據(jù) 表的操作標(biāo)志表含有兩個(gè)部分關(guān)鍵標(biāo)識(shí)和操作標(biāo)志(如圖l所示),關(guān)鍵標(biāo)識(shí)是識(shí)別不同的 數(shù)據(jù)表,操作標(biāo)志的用途是記錄數(shù)據(jù)表的處理狀態(tài)。
第二步初始化數(shù)據(jù)操作標(biāo)志表,在數(shù)據(jù)操作標(biāo)志表中必須為操作中涉及的每一項(xiàng)數(shù)據(jù)
表分配一個(gè)唯一的關(guān)鍵標(biāo)識(shí),保證每一數(shù)據(jù)表的關(guān)鍵標(biāo)識(shí)在此數(shù)據(jù)操作標(biāo)志表中的唯一性,
并且將每個(gè)數(shù)據(jù)表在數(shù)據(jù)操作表中的操作標(biāo)志初始化為無(wú)效狀態(tài)。將上述初始化的結(jié)果保存到數(shù)據(jù)操作標(biāo)志表文件。
第三步當(dāng)需要保存多個(gè)數(shù)據(jù)表的數(shù)據(jù)時(shí),按照如下方式對(duì)每個(gè)數(shù)據(jù)表進(jìn)行處理。
1) 首先將當(dāng)前需要處理的數(shù)據(jù)表的上次數(shù)據(jù)進(jìn)行備份,然后保存本次的數(shù)據(jù)。
2) 如果當(dāng)前數(shù)據(jù)表保存成功,則依據(jù)當(dāng)前數(shù)據(jù)表的關(guān)鍵標(biāo)識(shí)在數(shù)據(jù)操作標(biāo)志表中査找其 對(duì)應(yīng)的操作標(biāo)志,找到操作標(biāo)志后將該數(shù)據(jù)表的操作標(biāo)志狀態(tài)字段修改為有效,并保存數(shù)據(jù) 操作標(biāo)志表。
3) 如果由于某種原因?qū)е庐?dāng)前數(shù)據(jù)表的操作失敗,包括數(shù)據(jù)配置過(guò)程中出錯(cuò)或數(shù)據(jù)配置 無(wú)效等,則在數(shù)據(jù)操作標(biāo)志表中查找操作標(biāo)志狀態(tài)字段為有效的所有數(shù)據(jù)表,從備份數(shù)據(jù)中 將該部分?jǐn)?shù)據(jù)表的恢復(fù),直到全部數(shù)據(jù)都從備份數(shù)據(jù)中恢復(fù),恢復(fù)成功的同時(shí),修改數(shù)據(jù)操 作標(biāo)志表的對(duì)應(yīng)操作標(biāo)志狀態(tài)字段為無(wú)效,并保存數(shù)據(jù)操作標(biāo)志表。
第四步系統(tǒng)重新運(yùn)行時(shí),檢査數(shù)據(jù)表的操作標(biāo)志表中的每一項(xiàng)數(shù)據(jù)的操作標(biāo)志狀態(tài)字 段是否都為有效,如果存在數(shù)據(jù)表的操作標(biāo)志字段有無(wú)效的情況,則需要將數(shù)據(jù)操作標(biāo)志狀 態(tài)字段中的所有操作標(biāo)志狀態(tài)為有效的數(shù)據(jù)表恢復(fù)為備份數(shù)據(jù)。
本發(fā)明保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法較好地解決了資源相對(duì)緊張的嵌入式應(yīng)用在 系統(tǒng)掉電或者系統(tǒng)異常的情況下,若數(shù)據(jù)表全部處理成功則不用恢復(fù)到處理前的數(shù)據(jù),而在 數(shù)據(jù)表沒(méi)有全部處理成功地情況下,將已經(jīng)處理并成功保存的數(shù)據(jù)恢復(fù)到數(shù)據(jù)操作前的狀態(tài), 保證了多數(shù)據(jù)表之間數(shù)據(jù)的一致性。在系統(tǒng)重新啟動(dòng)以后還能夠快速地恢復(fù)系統(tǒng)到能夠運(yùn)行 的配置狀態(tài),防止系統(tǒng)無(wú)法啟動(dòng)。
本發(fā)明在現(xiàn)行的光通訊系統(tǒng)中會(huì)有較好的應(yīng)用,傳輸設(shè)備時(shí)隙配置成功后保存時(shí)隙數(shù)據(jù) 時(shí)可以采用本發(fā)明所述的方法。需要保存的時(shí)隙數(shù)據(jù)涉及多個(gè)文件,多個(gè)文件的保存要么全 部成功,要么都不成功,才能保證時(shí)隙數(shù)據(jù)的一致,如圖2所示,實(shí)現(xiàn)的具體歩驟如下
201、 準(zhǔn)備需要配置的時(shí)隙數(shù)據(jù)表的集合,以A表示,定義包含數(shù)據(jù)關(guān)鍵標(biāo)識(shí)字段和數(shù)據(jù) 操作標(biāo)志字段的數(shù)據(jù)操作標(biāo)志表,依照時(shí)隙數(shù)據(jù)表的個(gè)數(shù)申請(qǐng)數(shù)據(jù)操作標(biāo)志表的數(shù)組;
202、 將歩驟201中申請(qǐng)的數(shù)據(jù)操作標(biāo)志表的數(shù)組初始化,每一項(xiàng)時(shí)隙數(shù)據(jù)分配一個(gè)唯一 的關(guān)鍵標(biāo)識(shí)填入數(shù)據(jù)中的關(guān)鍵標(biāo)識(shí)字段,并將該項(xiàng)數(shù)據(jù)的操作標(biāo)志字段初始化為無(wú)效字段, 將初始化完成的數(shù)據(jù)操作標(biāo)志表保存到文件中。該無(wú)效字段可以使用二進(jìn)制的0/1表示,若 用0表示無(wú)效,則用1表示有效;若用0表示有效,則用1表示無(wú)效。
203、 判斷集合A中是否還有數(shù)據(jù)表需要處理,若集合A中還有數(shù)據(jù)表需要處理,執(zhí)行歩 驟204;若集合A中沒(méi)有數(shù)據(jù)表需要處理,執(zhí)行步驟212;
204、 取得當(dāng)前需要保存的時(shí)隙數(shù)據(jù)表;
205、 將該時(shí)隙數(shù)據(jù)表對(duì)應(yīng)的上次時(shí)隙數(shù)據(jù)拷貝到備份文件中;
206、 將當(dāng)前需要處理的時(shí)隙數(shù)據(jù)表處理完成后寫入對(duì)應(yīng)的時(shí)隙文件中;
207、 判斷時(shí)隙數(shù)據(jù)表是否保存成功,如果數(shù)據(jù)表保存成功,執(zhí)行步驟208;若數(shù)據(jù)表沒(méi) 有保存成功,執(zhí)行步驟209;
208、 修改數(shù)據(jù)操作標(biāo)志表中對(duì)應(yīng)時(shí)隙數(shù)據(jù)的操作標(biāo)志為有效,并將數(shù)據(jù)操作標(biāo)志表保存 到文件,返回執(zhí)行步驟203;
209、 取得當(dāng)前數(shù)據(jù)操作標(biāo)志表中操作標(biāo)志為有效數(shù)據(jù)表集合,以B表示;
210、 判斷集合B中是否還有數(shù)據(jù)表需要處理,若集合B中還有數(shù)據(jù)表需要處理,執(zhí)行歩 驟211;若集合B中沒(méi)有數(shù)據(jù)表需要處理,執(zhí)行步驟212;
211、 取下一項(xiàng)需要處理的數(shù)據(jù)表,從備份文件將該項(xiàng)數(shù)據(jù)表的恢復(fù),將數(shù)據(jù)操作標(biāo)志表對(duì)應(yīng)數(shù)據(jù)的操作標(biāo)志修改為無(wú)效,并將該數(shù)據(jù)操作標(biāo)志表保存,返回執(zhí)行歩驟210;
212、 本次系統(tǒng)配置的流程結(jié)束。
上述歩驟為,本方法能夠正常運(yùn)行完全的步驟,若是系統(tǒng)尚未徹底完成數(shù)據(jù)的處理和保 存,系統(tǒng)就斷電或重啟,也就是時(shí)隙配置過(guò)程中,系統(tǒng)斷電或重啟,則需要將系統(tǒng)進(jìn)行復(fù)位 操作。該復(fù)位操作的流程如圖3所示,具體歩驟如下-
301、 系統(tǒng)重新啟動(dòng),裝載系統(tǒng)配置;
302、 在操作標(biāo)志表中査找操作標(biāo)志狀態(tài)字段為無(wú)效的數(shù)據(jù)表,并將與該數(shù)據(jù)表有關(guān)聯(lián)的 數(shù)據(jù)表列成一個(gè)集合,以C表示;
303、 判斷集合C中是否有數(shù)據(jù),若集合C中有數(shù)據(jù),執(zhí)行歩驟304;若集合C中沒(méi)有數(shù) 據(jù),執(zhí)行歩驟307;
304、 在操作標(biāo)志表中査找操作標(biāo)志為有效的數(shù)據(jù)表集合,以D表示;
305、 判斷集合D中是否還有數(shù)據(jù)需要處理,若集合D中還有數(shù)據(jù)需要處理,執(zhí)行歩驟 306;若集合D中沒(méi)有數(shù)據(jù)需要處理,執(zhí)行步驟307;
306、 取下一項(xiàng)需要處理的數(shù)據(jù)表,從備份文件將該項(xiàng)數(shù)據(jù)表的恢復(fù),將數(shù)據(jù)操作標(biāo)志表 對(duì)應(yīng)數(shù)據(jù)的操作標(biāo)志修改為無(wú)效,并將該數(shù)據(jù)操作標(biāo)志表保存,返回執(zhí)行歩驟305;
307、 流程結(jié)束,系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。當(dāng)然,上述操作也可以變?yōu)榱硪环N方式系統(tǒng)復(fù)位后,根據(jù)數(shù)據(jù)表的操作標(biāo)志表判斷是 否存在操作標(biāo)志為無(wú)效狀態(tài)的數(shù)據(jù)表若不存在,則流程結(jié)束;若存在,執(zhí)行如下步驟
(701) 獲取保存后的操作標(biāo)志表中操作標(biāo)志為有效的一項(xiàng)數(shù)據(jù)表;
(702) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的備份數(shù)據(jù)恢復(fù)為當(dāng)前數(shù)據(jù);
(703) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的操作標(biāo)志表中的操作標(biāo)志設(shè)為無(wú)效;
(704) 判斷保存后的數(shù)據(jù)表是否恢復(fù)完畢,若恢復(fù)完畢,則流程結(jié)束;若沒(méi)有恢復(fù)完畢,
返回執(zhí)行歩驟(701)。
系統(tǒng)復(fù)位后的流程無(wú)論采用哪種實(shí)施方式,都可以達(dá)到在系統(tǒng)無(wú)法正常保存好數(shù)據(jù)時(shí), 將部分修改后的數(shù)據(jù)表中的數(shù)據(jù)恢復(fù)到修改前的狀態(tài),保證所用數(shù)據(jù)的一致性,使得系統(tǒng)不 會(huì)由于系統(tǒng)配置數(shù)據(jù)的不一致而無(wú)法正常運(yùn)行。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,該具體實(shí)施方式
能夠?qū)r(shí)隙配置過(guò)程 中發(fā)生的一系列系統(tǒng)錯(cuò)誤進(jìn)行糾正,甚至對(duì)系統(tǒng)以為斷電而引起的配置故障也能還原,保證 系統(tǒng)的時(shí)隙配置數(shù)據(jù)表的一致性。對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原 理的前提下,還可以做出若干改進(jìn),這些改進(jìn)應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,其特征在于包括(1)定義并初始化數(shù)據(jù)操作標(biāo)志表;(2)利用數(shù)據(jù)操作標(biāo)志表的狀態(tài)進(jìn)行數(shù)據(jù)表的操作。
2、 按照權(quán)利要求l所述的保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,其特征在于所述的歩 驟(1)具體為-(11 )定義數(shù)據(jù)操作標(biāo)志表中的關(guān)鍵標(biāo)識(shí)和操作標(biāo)志;(12) 選取待保存的數(shù)據(jù)表集合;(13) 在操作標(biāo)志表中為每一項(xiàng)數(shù)據(jù)表設(shè)置一個(gè)唯一的關(guān)鍵標(biāo)識(shí),并將操作標(biāo)志設(shè)為無(wú) 效狀態(tài)。
3、 按照權(quán)利要求2所述的保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,其特征在于所述的步 驟(2)具體為-(21) 保存待保存的數(shù)據(jù)表;(22) 判斷對(duì)數(shù)據(jù)表的保存是否成功,若保存成功,執(zhí)行步驟(23);若保存失敗,執(zhí)行歩驟(24);(23) 進(jìn)入保存成功后的數(shù)據(jù)處理;(24) 恢復(fù)處理后的數(shù)據(jù)。
4、 按照權(quán)利要求3所述的保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,其特征在于所述的歩 驟(21)具體為(211) 獲取一項(xiàng)待保存的數(shù)據(jù)表;(212) 對(duì)該數(shù)據(jù)表對(duì)應(yīng)的上次數(shù)據(jù)表進(jìn)行備份,并保存該數(shù)據(jù)表的當(dāng)前數(shù)據(jù);(213) 修改該數(shù)據(jù)表的操作標(biāo)志表中的操作標(biāo)志為有效。
5、 按照權(quán)利要求4所述的保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,其特征在于所述的歩 驟(23)具體為判斷待保存的數(shù)據(jù)表是否保存完畢,若沒(méi)有保存完畢,返回執(zhí)行歩驟(211);若保存完畢,則流程結(jié)束。
6、 按照權(quán)利要求5所述的保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,其特征在于所述的歩 驟(24)具體為(241) 獲取保存后的操作標(biāo)志表中操作標(biāo)志為有效的一項(xiàng)數(shù)據(jù)表;(242) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的備份數(shù)據(jù)恢復(fù)為當(dāng)前數(shù)據(jù);(243) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的操作標(biāo)志表中的操作標(biāo)志設(shè)為無(wú)效;(244) 判斷保存后的數(shù)據(jù)表是否恢復(fù)完畢,若恢復(fù)完畢,則流程結(jié)束;若沒(méi)有恢復(fù)完畢, 返回執(zhí)行歩驟(241)。
7、按照權(quán)利要求3所述的保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,其特征在于若系統(tǒng)尚 未徹底完成數(shù)據(jù)的處理和保存,系統(tǒng)斷電或重啟,則進(jìn)入系統(tǒng)復(fù)位流程,具體為系統(tǒng)復(fù)位后,判斷數(shù)據(jù)表的操作標(biāo)志表中是否存在操作標(biāo)志為無(wú)效狀態(tài)的數(shù)據(jù)表,若不 存在操作標(biāo)志為無(wú)效狀態(tài)的數(shù)據(jù)表,則流程結(jié)束;若存在操作標(biāo)志為無(wú)效狀態(tài)的數(shù)據(jù)表,執(zhí) 行如下步驟(701) 獲取保存后的操作標(biāo)志表中操作標(biāo)志為有效的一項(xiàng)數(shù)據(jù)表;(702) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的備份數(shù)據(jù)恢復(fù)為當(dāng)前數(shù)據(jù);(703) 將該操作標(biāo)志為有效的數(shù)據(jù)表對(duì)應(yīng)的操作標(biāo)志表中的操作標(biāo)志設(shè)為無(wú)效;(704) 判斷保存后的數(shù)據(jù)表是否恢復(fù)完畢,若恢復(fù)完畢,則流程結(jié)束;若沒(méi)有恢復(fù)完畢, 返回執(zhí)行歩驟(701)。
全文摘要
本發(fā)明公開(kāi)了一種保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法,為解決現(xiàn)有嵌入式系統(tǒng)中沒(méi)有保證數(shù)據(jù)一致性的機(jī)制而發(fā)明。該保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法定義一個(gè)操作標(biāo)志表,通過(guò)操作標(biāo)志表中的關(guān)鍵標(biāo)識(shí)來(lái)識(shí)別各個(gè)數(shù)據(jù)表的不同,通過(guò)操作標(biāo)志表中的操作標(biāo)志的有效和無(wú)效狀態(tài)來(lái)判斷數(shù)據(jù)表是否完全處理完成,在沒(méi)有完全處理完成的情況下恢復(fù)數(shù)據(jù)表到操作以前的數(shù)據(jù),若完全處理完成則使用新的配置設(shè)置。本發(fā)明保證嵌入式系統(tǒng)中數(shù)據(jù)一致性的方法主要用在系統(tǒng)資源緊缺的嵌入式系統(tǒng),特別是通信領(lǐng)域的嵌入式系統(tǒng)。
文檔編號(hào)G06F11/14GK101201771SQ200610165809
公開(kāi)日2008年6月18日 申請(qǐng)日期2006年12月12日 優(yōu)先權(quán)日2006年12月12日
發(fā)明者劉建軍, 李小偉, 潘傳友 申請(qǐng)人:中興通訊股份有限公司