一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法及裝置,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。在本發(fā)明中,首先建立守護(hù)線程,所述守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性;然后休眠所述守護(hù)線程;最后當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)所述文件系統(tǒng)的索引受損,則喚醒所述守護(hù)進(jìn)程,并同時(shí)執(zhí)行所述守護(hù)線程和所述寫(xiě)操作線程。本發(fā)明通過(guò)所述文件系統(tǒng)多線程實(shí)現(xiàn)的方法及裝置,實(shí)現(xiàn)了在維護(hù)文件系統(tǒng)完整性的同時(shí),及時(shí)保存錄像數(shù)據(jù)到硬盤(pán)。
【專利說(shuō)明】 一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法及裝置。
【背景技術(shù)】
[0002]錄像監(jiān)控文件系統(tǒng)的首要目標(biāo)是確保錄像數(shù)據(jù)不丟失。為了避免浪費(fèi)中央處理器資源,上層應(yīng)用程序通常休眠一定時(shí)間,如20毫秒,再喚醒以把緩存中的錄像數(shù)據(jù)寫(xiě)入硬盤(pán)后再休眠。為避免錄像數(shù)據(jù)不丟失,緩存大小必須保證能夠完全容納上層應(yīng)用程序休眠期間(20毫秒)可能產(chǎn)生的錄像數(shù)據(jù)量;而且必須保證上層應(yīng)用程序休眠預(yù)定的時(shí)間長(zhǎng)度后能夠被及時(shí)喚醒,以避免緩存溢出,不允許錄像存儲(chǔ)應(yīng)用程序長(zhǎng)時(shí)間阻塞或休眠過(guò)長(zhǎng)。
[0003]除了響應(yīng)讀、寫(xiě)、查詢等請(qǐng)求外,錄像監(jiān)控文件系統(tǒng)還需要完成一項(xiàng)很重要的任務(wù):文件系統(tǒng)索引完整性維護(hù)。絕大部分錄像監(jiān)控系統(tǒng)不錄像卻反復(fù)重啟的故障的原因是文件系統(tǒng)索引受損。原因是上層應(yīng)用程序讀取到異常的索引數(shù)據(jù),不知道如何處理,只能終止;由于該異常點(diǎn)存放文件系統(tǒng)的關(guān)鍵管理數(shù)據(jù),無(wú)法繞過(guò),所以上層業(yè)務(wù)表現(xiàn)為反復(fù)異常終止,不錄像。及時(shí)修復(fù)受損的文件系統(tǒng)索引是確保錄像不丟失的另一個(gè)必要條件。
[0004]錄像監(jiān)控文件系統(tǒng)當(dāng)前普遍的實(shí)現(xiàn)方式是提供一系列功能接口,如:讀、寫(xiě)、查詢、錄像文件空間分配、過(guò)期錄像文件刪除、文件系統(tǒng)索引完整性維護(hù)等,供上層應(yīng)用程序調(diào)用。
[0005]不過(guò),對(duì)于上層應(yīng)用而言,每當(dāng)休眠期滿被喚醒,確保錄像數(shù)據(jù)能夠及時(shí)地寫(xiě)入硬盤(pán)是首要目標(biāo)。文件系統(tǒng)索引完整性維護(hù)必須在規(guī)定的時(shí)間內(nèi)(如20毫秒)結(jié)束,否則就可能造成錄像數(shù)據(jù)緩存溢出,即錄像數(shù)據(jù)丟失,因此在運(yùn)行過(guò)程中,一方面需要冗余安排錄像數(shù)據(jù)緩存,另一方面往往不得不犧牲耗時(shí)長(zhǎng)的關(guān)鍵業(yè)務(wù),如文件系統(tǒng)索引完整性維護(hù)。
[0006]及時(shí)保存錄像數(shù)據(jù)到硬盤(pán)和及時(shí)維護(hù)文件系統(tǒng)完整性,兩者必須同時(shí)兼顧,但在業(yè)界現(xiàn)有錄像監(jiān)控文件系統(tǒng)的具體實(shí)現(xiàn)實(shí)例中,卻成為一對(duì)無(wú)法調(diào)和的矛盾。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供了一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法及裝置,旨在解決及時(shí)保存錄像數(shù)據(jù)到硬盤(pán)和及時(shí)維護(hù)文件系統(tǒng)完整性易發(fā)生沖突的問(wèn)題。
[0008]一方面,本發(fā)明提供了一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法,所述方法包括:
[0009]建立守護(hù)線程,所述守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性;
[0010]休眠所述守護(hù)線程;
[0011]當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)所述文件系統(tǒng)的索引受損,則喚醒所述守護(hù)進(jìn)程,并同時(shí)執(zhí)行所述守護(hù)線程和所述寫(xiě)操作線程。
[0012]第二方面,本發(fā)明提供了一種文件系統(tǒng)多線程實(shí)現(xiàn)的裝置,所述裝置包括:
[0013]建立模塊,用于建立守護(hù)線程,所述守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性;
[0014]休眠模塊,用于休眠所述守護(hù)線程;
[0015]第一執(zhí)行模塊,用于當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)所述文件系統(tǒng)的索引受損,則喚醒所述守護(hù)進(jìn)程,并同時(shí)執(zhí)行所述守護(hù)線程和所述寫(xiě)操作線程。
[0016]在本發(fā)明中,由于首先建立守護(hù)線程,守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性;然后休眠守護(hù)線程;最后當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則喚醒守護(hù)進(jìn)程,并同時(shí)執(zhí)行守護(hù)線程和寫(xiě)操作線程,因此,實(shí)現(xiàn)了在維護(hù)文件系統(tǒng)完整性的同時(shí),及時(shí)保存錄像數(shù)據(jù)到硬盤(pán)。
【專利附圖】
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為本發(fā)明實(shí)施例一提供的文件系統(tǒng)多線程實(shí)現(xiàn)的方法一種流程圖;
[0019]圖2為本發(fā)明實(shí)施例一提供的文件系統(tǒng)多線程實(shí)現(xiàn)的方法另一種流程圖;
[0020]圖3為本發(fā)明實(shí)施例二提供的文件系統(tǒng)多線程實(shí)現(xiàn)的裝置一種結(jié)構(gòu)示意圖;
[0021]圖4為本發(fā)明實(shí)施例二提供的文件系統(tǒng)多線程實(shí)現(xiàn)的裝置另一種結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0023]實(shí)施例一:
[0024]本發(fā)明實(shí)施例一提供了一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法,參見(jiàn)圖1,文件系統(tǒng)多線程實(shí)現(xiàn)的方法包括以下步驟:
[0025]101.建立守護(hù)線程,守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性。
[0026]守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性具體為:守護(hù)線程用于當(dāng)檢查文件系統(tǒng)的索引受損時(shí),恢復(fù)文件系統(tǒng)的索引。
[0027]102.休眠守護(hù)線程。
[0028]103a.當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則喚醒守護(hù)進(jìn)程,并同時(shí)執(zhí)行守護(hù)線程和寫(xiě)操作線程。錄像監(jiān)控文件系統(tǒng)提供讀、寫(xiě)、查詢等文件系統(tǒng)功能接口,供上層應(yīng)用程序調(diào)用,上層應(yīng)用程序調(diào)用文件系統(tǒng)功能接口過(guò)程中發(fā)現(xiàn)文件系統(tǒng)的索引受損,如果文件系統(tǒng)功能接口是寫(xiě)操作,則喚醒守護(hù)進(jìn)程,并同時(shí)執(zhí)行守護(hù)線程和寫(xiě)操作線程。
[0029]如圖2所示,步驟101與步驟102之間還包括步驟101-2.
[0030]101-2.執(zhí)行守護(hù)線程。文件系統(tǒng)啟動(dòng)時(shí),執(zhí)行一次守護(hù)線程。
[0031]如圖2所示,步驟102之后還包括步驟103b。
[0032]103b.當(dāng)執(zhí)行讀操作線程或查詢操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則先休眠讀操作線程或查詢操作線程,再喚醒守護(hù)線程,最后在執(zhí)行完守護(hù)線程后喚醒讀操作線程或查詢操作線程。上層應(yīng)用程序調(diào)用文件系統(tǒng)功能接口過(guò)程中發(fā)現(xiàn)文件系統(tǒng)索引受損,如果文件系統(tǒng)功能接口是讀操作或查詢操作,則先向上層應(yīng)用程序報(bào)錯(cuò),休眠讀操作線程或查詢操作線程,再喚醒守護(hù)線程,最后在執(zhí)行完守護(hù)線程后喚醒讀操作線程或查詢操作線程。
[0033]例如,文件系統(tǒng)啟動(dòng)時(shí),建立守護(hù)線程,該守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性;并執(zhí)行一次守護(hù)線程,執(zhí)行文件系統(tǒng)完整性檢查,修復(fù)受損的文件系統(tǒng)的索引;然后休眠守護(hù)線程;當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則喚醒守護(hù)進(jìn)程,并同時(shí)執(zhí)行守護(hù)線程和寫(xiě)操作線程,這樣文件系統(tǒng)索引完整性維護(hù)不需在規(guī)定的時(shí)間內(nèi)結(jié)束,不會(huì)造成錄像數(shù)據(jù)緩存溢出現(xiàn)象。
[0034]本實(shí)施例通過(guò)首先建立守護(hù)線程,守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性;然后休眠守護(hù)線程;最后當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則喚醒守護(hù)進(jìn)程,并同時(shí)執(zhí)行守護(hù)線程和寫(xiě)操作線程,因此,實(shí)現(xiàn)了在維護(hù)文件系統(tǒng)完整性的同時(shí),及時(shí)保存錄像數(shù)據(jù)到硬盤(pán)。
[0035]實(shí)施例二:
[0036]本發(fā)明實(shí)施例二提供了一種文件系統(tǒng)多線程實(shí)現(xiàn)的裝置,如圖3所示,文件系統(tǒng)多線程實(shí)現(xiàn)的裝置30包括建立模塊310、休眠模塊320和第一執(zhí)行模塊330a。
[0037]建立模塊310,用于建立守護(hù)線程,守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性。
[0038]其中,守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性具體為:守護(hù)線程用于當(dāng)檢查文件系統(tǒng)的索引受損時(shí),恢復(fù)文件系統(tǒng)的索引。
[0039]休眠模塊320,用于休眠守護(hù)線程。
[0040]第一執(zhí)行模塊330a,用于當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則喚醒守護(hù)進(jìn)程,并同時(shí)執(zhí)行守護(hù)線程和寫(xiě)操作線程。
[0041]可選的,如圖4所示,文件系統(tǒng)多線程實(shí)現(xiàn)的裝置40還包括第二執(zhí)行模塊310-2和第三執(zhí)行模塊330b。
[0042]第二執(zhí)行模塊310-2,用于執(zhí)行守護(hù)線程。
[0043]第三執(zhí)行模塊330b,用于當(dāng)執(zhí)行讀操作線程或查詢操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則先休眠讀操作線程或查詢操作線程,再喚醒守護(hù)線程,最后在執(zhí)行完守護(hù)線程后喚醒讀操作線程或查詢操作線程。
[0044]本實(shí)施例通過(guò)首先建立守護(hù)線程,守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性;然后休眠守護(hù)線程;最后當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)文件系統(tǒng)的索引受損,則喚醒守護(hù)進(jìn)程,并同時(shí)執(zhí)行守護(hù)線程和寫(xiě)操作線程,因此,實(shí)現(xiàn)了在維護(hù)文件系統(tǒng)完整性的同時(shí),及時(shí)保存錄像數(shù)據(jù)到硬盤(pán)。
[0045]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0046]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
[0047]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種文件系統(tǒng)多線程實(shí)現(xiàn)的方法,其特征在于,所述方法包括: 建立守護(hù)線程,所述守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性; 休眠所述守護(hù)線程; 當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)所述文件系統(tǒng)的索引受損,則喚醒所述守護(hù)進(jìn)程,并同時(shí)執(zhí)行所述守護(hù)線程和所述寫(xiě)操作線程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立守護(hù)線程的步驟之后和所述休眠所述守護(hù)線程的步驟之前還包括: 執(zhí)行所述守護(hù)線程。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述休眠所述守護(hù)線程的步驟之后包括: 當(dāng)執(zhí)行讀操作線程或查詢操作線程時(shí),若發(fā)現(xiàn)所述文件系統(tǒng)的索引受損,則先休眠所述讀操作線程或所述查詢操作線程,再喚醒所述守護(hù)線程,最后在執(zhí)行完所述守護(hù)線程后喚醒所述讀操作線程或所述查詢操作線程。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性具體為: 所述守護(hù)線程用于當(dāng)檢查文件系統(tǒng)的索引受損時(shí),恢復(fù)所述文件系統(tǒng)的索引。
5.一種文件系統(tǒng)多線程實(shí)現(xiàn)的裝置,其特征在于,所述裝置包括: 建立模塊,用于建立守護(hù)線程,所述守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性; 休眠模塊,用于休眠所述守護(hù)線程; 第一執(zhí)行模塊,用于當(dāng)執(zhí)行寫(xiě)操作線程時(shí),若發(fā)現(xiàn)所述文件系統(tǒng)的索引受損,則喚醒所述守護(hù)進(jìn)程,并同時(shí)執(zhí)行所述守護(hù)線程和所述寫(xiě)操作線程。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括: 第二執(zhí)行模塊,用于執(zhí)行所述守護(hù)線程。
7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括: 第三執(zhí)行模塊,用于當(dāng)執(zhí)行讀操作線程或查詢操作線程時(shí),若發(fā)現(xiàn)所述文件系統(tǒng)的索引受損,則先休眠所述讀操作線程或所述查詢操作線程,再喚醒所述守護(hù)線程,最后在執(zhí)行完所述守護(hù)線程后喚醒所述讀操作線程或所述查詢操作線程。
8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述守護(hù)線程用于維護(hù)文件系統(tǒng)的完整性具體為: 所述守護(hù)線程用于當(dāng)檢查文件系統(tǒng)的索引受損時(shí),恢復(fù)所述文件系統(tǒng)的索引。
【文檔編號(hào)】G06F17/30GK104331463SQ201410603639
【公開(kāi)日】2015年2月4日 申請(qǐng)日期:2014年10月30日 優(yōu)先權(quán)日:2014年10月30日
【發(fā)明者】黃凱明, 劉文濤, 歸建章 申請(qǐng)人:深圳市銳明視訊技術(shù)有限公司