本發(fā)明涉及l(fā)inux系統(tǒng)休眠,尤其涉及一種休眠流程中鏡像異?;謴?fù)方法、裝置及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著計(jì)算機(jī)系統(tǒng)的發(fā)展,系統(tǒng)的穩(wěn)定性和數(shù)據(jù)安全性變得越來(lái)越重要。s4休眠模式是acpi規(guī)范中定義的低功耗狀態(tài),系統(tǒng)在該模式下可以完全斷電,并將當(dāng)前的系統(tǒng)狀態(tài)保存到非易失性存儲(chǔ)設(shè)備中。
2、在硬件系統(tǒng)內(nèi)存不穩(wěn)定時(shí),在休眠模式喚醒過(guò)程中可能會(huì)出現(xiàn)鏡像數(shù)據(jù)異常情況,例如:非法的鏡像數(shù)據(jù)解壓縮長(zhǎng)度、鏡像數(shù)據(jù)解壓縮失敗、鏡像數(shù)據(jù)校驗(yàn)異常等,導(dǎo)致系統(tǒng)無(wú)法正?;謴?fù),造成了用戶數(shù)據(jù)丟失的問(wèn)題。
3、在linux操作系統(tǒng)使用過(guò)程中,硬件內(nèi)存不穩(wěn)定導(dǎo)致的休眠喚醒失敗是一種常見(jiàn)現(xiàn)象,然而,當(dāng)前內(nèi)核的處理方式是直接丟掉鏡像數(shù)據(jù),造成用戶數(shù)據(jù)丟失,嚴(yán)重影響了數(shù)據(jù)的安全性和用戶的體驗(yàn)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種休眠流程中鏡像異?;謴?fù)方法、裝置及存儲(chǔ)介質(zhì),以解決現(xiàn)有技術(shù)中對(duì)于linux系統(tǒng)在休眠喚醒階段,由于內(nèi)存不穩(wěn)定導(dǎo)致鏡像恢復(fù)異常產(chǎn)生用戶數(shù)據(jù)丟失的技術(shù)問(wèn)題。
2、第一方面,本發(fā)明實(shí)施例提供了一種休眠流程中鏡像異常恢復(fù)方法,包括:
3、在接收到系統(tǒng)喚醒休眠信號(hào)時(shí),啟動(dòng)休眠鏡像讀取函數(shù)從交換分區(qū)讀取鏡像數(shù)據(jù);
4、在接收到的休眠鏡像讀取函數(shù)的返回結(jié)果為非正常結(jié)果時(shí),釋放當(dāng)前分區(qū)緩沖區(qū),啟動(dòng)休眠鏡像讀取函數(shù)重新從交換分區(qū)讀取鏡像數(shù)據(jù);
5、利用讀取次數(shù)變量累計(jì)在喚醒階段的休眠鏡像讀取函數(shù)的啟動(dòng)次數(shù);
6、在所述讀取次數(shù)變量大于預(yù)設(shè)的第一閾值時(shí),重啟內(nèi)核,并在重啟內(nèi)核后,再次啟動(dòng)休眠鏡像讀取函數(shù)從交換分區(qū)讀取鏡像數(shù)據(jù)。
7、第二方面,本發(fā)明實(shí)施例還提供了一種休眠流程中鏡像異?;謴?fù)裝置,包括:
8、啟動(dòng)模塊,用于在接收到系統(tǒng)喚醒休眠信號(hào)時(shí),啟動(dòng)休眠鏡像讀取函數(shù)從交換分區(qū)讀取鏡像數(shù)據(jù);
9、釋放模塊,用于在接收到的休眠鏡像讀取函數(shù)的返回結(jié)果為非正常結(jié)果時(shí),釋放當(dāng)前分區(qū)緩沖區(qū),啟動(dòng)休眠鏡像讀取函數(shù)重新從交換分區(qū)讀取鏡像數(shù)據(jù);
10、累計(jì)模塊,用于利用讀取次數(shù)變量累計(jì)在喚醒階段的休眠鏡像讀取函數(shù)的啟動(dòng)次數(shù);
11、重啟模塊,用于在所述讀取次數(shù)變量大于預(yù)設(shè)的第一閾值時(shí),重啟內(nèi)核,并在重啟內(nèi)核后,再次啟動(dòng)休眠鏡像讀取函數(shù)從交換分區(qū)讀取鏡像數(shù)據(jù)。
12、第三方面,本發(fā)明實(shí)施例還提供了一種包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行如上述實(shí)施例提供的休眠流程中鏡像異常恢復(fù)方法。
13、本發(fā)明實(shí)施例提供的休眠流程中鏡像異?;謴?fù)方法、裝置及存儲(chǔ)介質(zhì),通過(guò)在接收到系統(tǒng)喚醒休眠信號(hào)時(shí),啟動(dòng)休眠鏡像讀取函數(shù)從交換分區(qū)讀取鏡像數(shù)據(jù);在接收到的休眠鏡像讀取函數(shù)的返回結(jié)果為非正常結(jié)果時(shí),釋放當(dāng)前分區(qū)緩沖區(qū),啟動(dòng)休眠鏡像讀取函數(shù)重新從交換分區(qū)讀取鏡像數(shù)據(jù);利用讀取次數(shù)變量累計(jì)在喚醒階段的休眠鏡像讀取函數(shù)的啟動(dòng)次數(shù);在所述讀取次數(shù)變量大于預(yù)設(shè)的第一閾值時(shí),重啟內(nèi)核,并在重啟內(nèi)核后,再次啟動(dòng)休眠鏡像讀取函數(shù)從交換分區(qū)讀取鏡像數(shù)據(jù)??梢岳枚啻渭虞d鏡像數(shù)據(jù)方式,減少內(nèi)存不穩(wěn)定導(dǎo)致出現(xiàn)喚醒異常的偶發(fā)性,并可利用內(nèi)核重啟流程中uefi會(huì)重新對(duì)內(nèi)存做初始化,糾正內(nèi)存不穩(wěn)定情況,進(jìn)一步提升鏡像能夠正常加載的概率。避免產(chǎn)生用戶數(shù)據(jù)丟失,提升了數(shù)據(jù)的安全性和休眠喚醒過(guò)程的用戶體驗(yàn)。
1.一種休眠流程中鏡像異?;謴?fù)方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述重啟內(nèi)核,并在重啟內(nèi)核后,再次啟動(dòng)休眠鏡像讀取函數(shù)從交換分區(qū)讀取鏡像數(shù)據(jù),包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述重啟內(nèi)核利用kernel_restart()函數(shù)實(shí)現(xiàn)重新啟動(dòng)內(nèi)核。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述重啟內(nèi)核,包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
9.一種休眠流程中鏡像異?;謴?fù)裝置,其特征在于,包括:
10.一種包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行如權(quán)利要求1-8任一所述的休眠流程中鏡像異常恢復(fù)方法。