專利名稱:計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法和裝置。
背景技術(shù):
一直以來(lái) ,業(yè)界都在為加快計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)速度不斷探索。某些設(shè)備廠商開(kāi)發(fā)出閃存作為加速緩沖的混合硬盤,大大加快了以傳統(tǒng)機(jī)械硬盤作為主要外部存儲(chǔ)設(shè)備的計(jì)算機(jī)系統(tǒng)的開(kāi)機(jī)速度。然而伴隨著信息技術(shù)的不斷發(fā)展,人們生活節(jié)奏不斷加快,人們對(duì)自己生活、學(xué)習(xí)和工作不可或缺的助手一計(jì)算機(jī)的速度也不斷提出新的要求,而計(jì)算機(jī)的開(kāi)機(jī)速度更是受到廣泛的關(guān)注。計(jì)算機(jī)開(kāi)機(jī)時(shí),需要從磁盤上讀取文件來(lái)啟動(dòng)計(jì)算機(jī)系統(tǒng)。很多場(chǎng)景下,文件不是保存在磁盤連續(xù)的簇中,而是被分散保存到整個(gè)磁盤的不同位置,即在磁盤上產(chǎn)生了文件碎片。例如,當(dāng)存儲(chǔ)文件的磁盤空間不充足時(shí),在磁盤上刪除文件或添加文件時(shí)會(huì)產(chǎn)生大量的文件碎片,對(duì)文件的刪改越頻繁,文件碎片的現(xiàn)象越嚴(yán)重。由于在讀取磁盤上不同位置的文件時(shí),磁盤觸頭需要移動(dòng)至不同的位置,文件碎片會(huì)使磁盤觸頭來(lái)回頻繁移動(dòng),導(dǎo)致文件讀取時(shí)間過(guò)長(zhǎng),因此,現(xiàn)有方案通過(guò)將一個(gè)文件的文件碎片填寫至磁盤中連續(xù)的空間中,來(lái)縮短開(kāi)機(jī)過(guò)程中讀取該文件的時(shí)間,以加快計(jì)算機(jī)系統(tǒng)的開(kāi)機(jī)速度?,F(xiàn)有方案僅是針對(duì)單個(gè)文件存在多個(gè)文件碎片的場(chǎng)景,然而,在計(jì)算機(jī)開(kāi)機(jī)過(guò)程中需要讀取多個(gè)文件,且在開(kāi)機(jī)的不同階段需要讀取的文件也是不同,而這些文件在磁盤上是隨意排列的,磁盤觸頭需要在磁道中來(lái)回切換才能讀取到這些文件,讀取這些文件仍會(huì)消耗較長(zhǎng)的時(shí)間,現(xiàn)有方案達(dá)到的開(kāi)機(jī)加速效果較差,無(wú)法有效提高計(jì)算機(jī)的開(kāi)機(jī)速度。
發(fā)明內(nèi)容
鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法和裝置。依據(jù)本發(fā)明的一個(gè)方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法,包括獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序;獲取系統(tǒng)開(kāi)機(jī)文件的分布信息,該分布信息包括系統(tǒng)開(kāi)機(jī)文件的文件名稱、文件路徑和指示文件在系統(tǒng)磁盤中位置的信息;利用系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件;移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上。其中,在獲取開(kāi)機(jī)文件的分布信息之前,上述方法還包括獲取系統(tǒng)磁盤的描述信息,該描述信息包括系統(tǒng)磁盤的已使用空間相對(duì)于空閑空間的比例值;
上述方法還包括當(dāng)比例值小于容忍閾值時(shí),確定當(dāng)前狀態(tài)為禁止啟動(dòng)文件整理操作,不對(duì)系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理,結(jié)束操作。其中,上述指示文件在系統(tǒng)磁盤中位置的信息為文件在系統(tǒng)磁盤中占用的簇的編號(hào),上述利用系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件包括利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件名稱和文件路徑確定當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件;利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件在系統(tǒng)磁盤中占用的簇的編號(hào),在系統(tǒng)磁盤中查找到當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件。其中,系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括文件大小,上述移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系 統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上包括 將系統(tǒng)磁盤上可使用的首個(gè)扇區(qū)選取為排列目標(biāo)位置;按照讀取順序確定當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件,并判斷從排列目標(biāo)位置開(kāi)始是否存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),若存在,將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū),若不存在,移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域,直至從排列目標(biāo)位置開(kāi)始存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),并將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū);更新排列目標(biāo)位置為系統(tǒng)磁盤上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后占用的扇區(qū)之后的下一個(gè)扇區(qū),以及,按照讀取順序確定下一個(gè)處理的系統(tǒng)開(kāi)機(jī)文件;根據(jù)更新后的排列目標(biāo)位置,移動(dòng)下一個(gè)需要處理的系統(tǒng)開(kāi)機(jī)文件;其中,不相關(guān)區(qū)域?yàn)橄到y(tǒng)磁盤上從排列目標(biāo)位置加上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小對(duì)應(yīng)的扇區(qū)之后的空閑扇區(qū)區(qū)域。其中,若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件由二個(gè)以上的文件碎片構(gòu)成,上述方法還包括獲取系統(tǒng)開(kāi)機(jī)文件的文件描述信息,該文件描述信息包括指示文件碎片排列順序的信息;上述將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)包括將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件碎片按照文件碎片排列順序依次移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)。其中,獲取到的系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括系統(tǒng)開(kāi)機(jī)文件的狀態(tài),當(dāng)系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不允許移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤中的位置;上述將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)包括若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng);上述移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域包括當(dāng)排列目標(biāo)位置之后的需要移動(dòng)的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng),將排列目標(biāo)位置更新為該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件占用的扇區(qū)之后的下一個(gè)扇區(qū)。其中,上述獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序包括
將計(jì)算機(jī)開(kāi)機(jī)過(guò)程中執(zhí)行預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核至系統(tǒng)登錄操作時(shí)從系統(tǒng)磁盤上讀取的文件作為系統(tǒng)開(kāi)機(jī)文件,記錄讀取該系統(tǒng)開(kāi)機(jī)文件的順序作為獲取到的讀取順序。根據(jù)本發(fā)明的另一方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置,包括讀取順序獲取單元,適于獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序;信息獲取單元,適于獲取系統(tǒng)開(kāi)機(jī)文件的分布 信息,該分布信息包括系統(tǒng)開(kāi)機(jī)文件的文件名稱、文件路徑和指示文件在系統(tǒng)磁盤中位置的信息;文件查找單元,適于利用系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件;文件移動(dòng)單元,適于移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上。其中,信息獲取單元,還適于在獲取系統(tǒng)磁盤上開(kāi)機(jī)文件的分布信息之前,獲取系統(tǒng)磁盤的描述信息,該描述信息包括系統(tǒng)磁盤的已使用空間相對(duì)于空閑空間的比例值;上述裝置還包括啟動(dòng)控制單元,適于當(dāng)比例值小于容忍閾值時(shí),確定當(dāng)前狀態(tài)為禁止啟動(dòng)文件整理操作,不對(duì)系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理,結(jié)束操作。其中,上述指示文件在系統(tǒng)磁盤中位置的信息為文件在系統(tǒng)磁盤中占用的簇的編號(hào),文件查找單元,具體適于利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件名稱和文件路徑確定當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件;利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件在系統(tǒng)磁盤中占用的簇的編號(hào),在系統(tǒng)磁盤中查找到當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件。其中,系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括文件大小,文件移動(dòng)單元包括目標(biāo)位置選取模塊,適于將系統(tǒng)磁盤上可使用的首個(gè)扇區(qū)選取為排列目標(biāo)位置;移動(dòng)模塊,適于按照讀取順序確定當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件,并判斷從排列目標(biāo)位置開(kāi)始是否存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),若存在,將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū),若不存在,移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域,直至從排列目標(biāo)位置開(kāi)始存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),并將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū);更新模塊,適于更新排列目標(biāo)位置為系統(tǒng)磁盤上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后占用的扇區(qū)之后的下一個(gè)扇區(qū),以及,按照讀取順序確定下一個(gè)處理的系統(tǒng)開(kāi)機(jī)文件;循環(huán)控制模塊,適于根據(jù)更新后的排列目標(biāo)位置,調(diào)用移動(dòng)模塊移動(dòng)下一個(gè)需要處理的系統(tǒng)開(kāi)機(jī)文件;其中,不相關(guān)區(qū)域?yàn)橄到y(tǒng)磁盤上從排列目標(biāo)位置加上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小對(duì)應(yīng)的扇區(qū)之后的空閑扇區(qū)區(qū)域。其中,若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件由二個(gè)以上的文件碎片構(gòu)成,信息獲取單元,還適于獲取系統(tǒng)開(kāi)機(jī)文件的文件描述信息,該文件描述信息包括指示文件碎片排列順序的信息;
移動(dòng)模塊,具體適于將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件碎片按照文件碎片排列順序依次移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)。其中,信息獲取單元獲取到的系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括系統(tǒng)開(kāi)機(jī)文件的狀態(tài),當(dāng)系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不允許移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤中的位置;移動(dòng)模塊,具體適于若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng);以及,移動(dòng)模塊,具體適于當(dāng)排列目標(biāo)位置之后的需要移動(dòng)的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng),并啟動(dòng)更新模塊,更新模塊,具體適于將排列目標(biāo)位置更新為該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件占用的扇 區(qū)之后的下一個(gè)扇區(qū)。其中,讀取順序獲取單元,具體適于將計(jì)算機(jī)開(kāi)機(jī)過(guò)程中執(zhí)行預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核至系統(tǒng)登錄操作時(shí)從系統(tǒng)磁盤上讀取的文件作為系統(tǒng)開(kāi)機(jī)文件,記錄讀取該系統(tǒng)開(kāi)機(jī)文件的順序作為獲取到的讀取順序。由上所述,本發(fā)明實(shí)施例通過(guò)獲取開(kāi)機(jī)過(guò)程中系統(tǒng)開(kāi)機(jī)文件的讀取順序以及系統(tǒng)開(kāi)機(jī)文件的分布信息,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上,則系統(tǒng)開(kāi)機(jī)時(shí),磁盤觸頭只需在磁道中順序移動(dòng)即可讀取到開(kāi)機(jī)的各個(gè)階段中需要的系統(tǒng)開(kāi)機(jī)文件,解決了磁盤觸頭在磁道中頻繁切換來(lái)回往復(fù)移動(dòng)造成的文件讀取時(shí)間過(guò)長(zhǎng)的問(wèn)題,能夠顯著提高計(jì)算機(jī)的開(kāi)機(jī)速度,更加有效地實(shí)現(xiàn)計(jì)算機(jī)開(kāi)機(jī)加速的目的。上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法流程圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的系統(tǒng)磁盤上的文件在執(zhí)行整理前的分布圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的移動(dòng)讀取順序?yàn)镮號(hào)的系統(tǒng)開(kāi)機(jī)文件之后的系統(tǒng)磁盤上的文件分布圖;圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的對(duì)讀取順序2號(hào)的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后系統(tǒng)磁盤上的文件分布圖;圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的對(duì)讀取順序3號(hào)的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后系統(tǒng)磁盤上的文件分布圖;圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置結(jié)構(gòu)示意圖;圖7示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的又一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置結(jié)構(gòu)示意圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算機(jī)終端結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。本發(fā)明一個(gè)實(shí)施例提供了一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法,參見(jiàn)圖1,包括SlOO :獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序;S102 :獲取系統(tǒng)開(kāi)機(jī)文件的分布信息,該分布信息包括系統(tǒng)開(kāi)機(jī)文件的文件名稱、文件路徑和指示文件在系統(tǒng)磁盤中位置的信息,本步驟中可以從磁盤所對(duì)應(yīng)的文件系 統(tǒng)中獲取到上述分布信息。S104 :利用系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件;S106 :移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上。本實(shí)施例在修改系統(tǒng)開(kāi)機(jī)文件在存儲(chǔ)空間中的位置時(shí),采用了移動(dòng)文件的方式,例如,通過(guò)調(diào)用NTFS文件系統(tǒng)提供文件控制應(yīng)用接口 NtFsControlFiIe API,移動(dòng)文件到指定的位置。由于系統(tǒng)開(kāi)機(jī)文件是系統(tǒng)運(yùn)行所需的基礎(chǔ)文件,若采用文件刪除再寫入的方式,刪除文件可以導(dǎo)致系統(tǒng)運(yùn)行故障,或影響系統(tǒng)中其他應(yīng)用的正常運(yùn)行,為避免出現(xiàn)這種問(wèn)題,本實(shí)施例采用移動(dòng)文件的方式,保證了在對(duì)系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理的同時(shí),系統(tǒng)運(yùn)行的穩(wěn)定性。本實(shí)施例中不對(duì)步驟SlOO和S102的具體執(zhí)行時(shí)序進(jìn)行限定,只需在移動(dòng)磁盤文件的操作執(zhí)行之前(在執(zhí)行步驟S104之前)獲取到系統(tǒng)開(kāi)機(jī)文件的讀取順序和分布信息即可。由上所述,本發(fā)明實(shí)施例通過(guò)獲取開(kāi)機(jī)過(guò)程中系統(tǒng)開(kāi)機(jī)文件的讀取順序以及系統(tǒng)開(kāi)機(jī)文件的分布信息,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上,則系統(tǒng)開(kāi)機(jī)時(shí),磁盤觸頭只需在磁道中順序移動(dòng)即可讀取到開(kāi)機(jī)的各個(gè)階段中需要的系統(tǒng)開(kāi)機(jī)文件,系統(tǒng)開(kāi)機(jī)啟動(dòng)的時(shí)候加載的是按照讀取順序連續(xù)排列在系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件,解決了磁盤觸頭在磁道中頻繁切換來(lái)回往復(fù)移動(dòng)造成的文件讀取時(shí)間過(guò)長(zhǎng)的問(wèn)題,能夠顯著提高計(jì)算機(jī)的開(kāi)機(jī)速度,更加有效地實(shí)現(xiàn)計(jì)算機(jī)開(kāi)機(jī)加速的目的。本發(fā)明實(shí)施例中能夠應(yīng)用于NTFS文件系統(tǒng)中,則系統(tǒng)開(kāi)機(jī)文件為NTFS系統(tǒng)下計(jì)算機(jī)開(kāi)機(jī)時(shí)需要讀取的文件。NTFS文件系統(tǒng)為Microsoft的Windows系列操作系統(tǒng)提供文件系統(tǒng)。NTFS對(duì)傳統(tǒng)的文件分配表(FileAllocation Table, FAT)系統(tǒng)和高性能文件系統(tǒng)(High-Performance FileSystem,HPFS)作了若干改進(jìn),例如,支持元數(shù)據(jù),并且使用了高級(jí)數(shù)據(jù)結(jié)構(gòu),以便于改善性能、可靠性和磁盤空間利用率,并提供了若干附加擴(kuò)展功能,如訪問(wèn)控制列表和文件系統(tǒng)日志。NTFS的特點(diǎn)包括支持2TB大小的分區(qū)、可恢復(fù)的文件系統(tǒng)、支持文件夾壓縮以及有效管理磁盤空間等等。在圖I示出的實(shí)施例的基礎(chǔ)上,本實(shí)施例在執(zhí)行步驟S102之前,還包括獲取系統(tǒng)磁盤的描述信息,該描述信息包括系統(tǒng)磁盤的已使用空間相對(duì)于空閑空間的比例值。以NTFS文件系統(tǒng)為例,該描述信息中可以包括分區(qū)的大小、使用空間和空閑空間的大小、使用空間相對(duì)于空閑空間的比例值、分區(qū)中每簇占用的扇區(qū)數(shù)(即磁盤被劃分使用的最小單位)
坐寸O則本實(shí)施例中當(dāng)比例值小于容忍閾值時(shí),確定當(dāng)前狀態(tài)為禁止啟動(dòng)文件整理操作,不對(duì)系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理,結(jié)束操作。這種處理方式,只有當(dāng)系統(tǒng)磁盤上有足夠的空閑扇區(qū)時(shí),才啟動(dòng)文件整理操作,這是由于對(duì)系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng)并重新排列時(shí),挪動(dòng)后的文件仍需要存儲(chǔ)在磁盤上,若磁盤中的空閑空間過(guò)小,可能會(huì)導(dǎo)致需要采用復(fù)雜的移動(dòng)操作來(lái)保證文件的正常存儲(chǔ),甚至導(dǎo)致在文件移動(dòng)時(shí)磁盤上沒(méi)有充足的空間用于存儲(chǔ)移動(dòng)后的文件,發(fā)生文件丟失或者系統(tǒng)異常等問(wèn)題,為避免這些問(wèn)題,本實(shí)施例采用了上述處理方式保證能夠成功實(shí)現(xiàn)文件的移動(dòng)和重排列。示例性的,上述容忍閾值可以為15%,即要求系統(tǒng)磁盤中有15%的空閑空間,容忍閾值的數(shù)值可以根據(jù)需要移動(dòng)文件的大小以整個(gè)磁盤空間大小而改變,并不特別固定于一個(gè)數(shù)值,但選取的容忍閾值必須滿足系統(tǒng)磁盤中能有足夠空閑空間去暫時(shí)緩沖保存需要移動(dòng)的文件中容量最大的那個(gè)文件。 在上述步驟S102中,可以利用Windows系統(tǒng)提供的查詢目錄文件“NtQueryDirectoryFile”函數(shù)從系統(tǒng)磁盤根目錄開(kāi)始遞歸枚舉文件及子目錄,遇到子目錄則再調(diào)用“NtQueryDirectoryFile”函數(shù)枚舉子目錄中的文件,最終得到的所有文件的信息,包括系統(tǒng)磁盤上的所有存在文件的文件名稱、文件路徑、文件大小、指示文件在系統(tǒng)磁盤中位置的信息,如文件數(shù)據(jù)保存在哪些扇區(qū)或簇(文件數(shù)據(jù)可能不是連續(xù)的存放)等等。從獲取到的系統(tǒng)磁盤上所有文件的信息中找出系統(tǒng)開(kāi)機(jī)文件的分布信息。其中,上述指示文件在系統(tǒng)磁盤中位置的信息為文件在系統(tǒng)磁盤中占用的簇的編號(hào),步驟S104包括利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件名稱和文件路徑確定當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件;利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件在系統(tǒng)磁盤中占用的簇的編號(hào),在系統(tǒng)磁盤中查找到當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件。進(jìn)一步的,步驟S106具體包括將系統(tǒng)磁盤上可使用的首個(gè)扇區(qū)選取為排列目標(biāo)位置;按照讀取順序確定當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件,并判斷從排列目標(biāo)位置開(kāi)始是否存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),若存在,將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū),若不存在,移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域,直至從排列目標(biāo)位置開(kāi)始存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),并將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū);更新排列目標(biāo)位置為系統(tǒng)磁盤上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后占用的扇區(qū)之后的下一個(gè)扇區(qū),以及,按照讀取順序確定下一個(gè)處理的系統(tǒng)開(kāi)機(jī)文件;根據(jù)更新后的排列目標(biāo)位置,移動(dòng)下一個(gè)需要處理的系統(tǒng)開(kāi)機(jī)文件;其中,不相關(guān)區(qū)域?yàn)橄到y(tǒng)磁盤上從排列目標(biāo)位置加上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小對(duì)應(yīng)的扇區(qū)之后的空閑扇區(qū)區(qū)域。在本步驟中按照開(kāi)機(jī)時(shí)系統(tǒng)開(kāi)機(jī)文件的讀取順序,將系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上重新排列。在文件整理過(guò)程中,上述步驟S106中以連續(xù)扇區(qū)為單位的處理方式,也可以更換為以連續(xù)簇為單位進(jìn)行處理,即只要保證系統(tǒng)開(kāi)機(jī)文件被排列在系統(tǒng)磁盤上連續(xù)的存儲(chǔ)空間中即可。計(jì)算機(jī)開(kāi)機(jī)過(guò)程是從計(jì)算機(jī)通電自檢完成之后開(kāi)始進(jìn)行的,這一過(guò)程可以細(xì)分為預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核和系統(tǒng)登錄操作這五個(gè)階段,所以在步驟SlOO中,將計(jì)算機(jī)開(kāi)機(jī)過(guò)程中執(zhí)行預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核至系統(tǒng)登錄操作時(shí)從系統(tǒng)磁盤上讀取的文件作為系統(tǒng)開(kāi)機(jī)文件,記錄讀取該系統(tǒng)開(kāi)機(jī)文件的順序作為獲取到的讀取順序。在開(kāi)機(jī)過(guò)程中需要讀取的文件主要包括Ntldr、Boot, ini、Ntdetect. com、Ntoskrnl.exe、Ntbootdd. sys以及Bootsect. dos等文件,各個(gè)階段的主要處理過(guò)程如下預(yù)引導(dǎo)階段計(jì)算機(jī)啟動(dòng)后,BIOS自檢通過(guò)后,開(kāi)始尋找引導(dǎo)設(shè)備,正常情況下需要的引導(dǎo)的設(shè)備就是計(jì)算機(jī)硬盤。BIOS讀取硬盤的第一個(gè)扇區(qū)的引導(dǎo)代碼,即主引導(dǎo)記錄(Master BootRecord, MBR)到內(nèi)存,然后將控制權(quán)轉(zhuǎn)移到MBR代碼。MBR代碼功能是尋找磁盤的引導(dǎo)分區(qū)(boot partition),其第一個(gè)扇區(qū)為引導(dǎo)扇區(qū)(boot sector),該卷稱為系統(tǒng)卷(systemvolume),是需要優(yōu)化的系統(tǒng)磁盤扇區(qū)。引導(dǎo)階段引導(dǎo)扇區(qū)的代碼能夠解析系統(tǒng)卷的文件格式,并找到Ntldr,該程序會(huì)將處理器由 實(shí)模式(Real Mode)切換為32位平坦內(nèi)存模式(32-bit Flat MemoryMode)0 Ntldr程序在完成了初始化工作之后會(huì)從硬盤上讀取boot, ini文件,根據(jù)該文件中的內(nèi)容選擇操作系統(tǒng)。在選擇了需要載入的Windows操作系統(tǒng)之后,Ntdetect. com將計(jì)算機(jī)中安裝的所有硬件信息收集起來(lái),并將該信息交給Ntldr。載入內(nèi)核階段載入系統(tǒng)的內(nèi)核文件Ntoskrnl. exe,但這里僅僅是載入,內(nèi)核此時(shí)還不會(huì)被初始化。隨后載入硬件抽象層HAL. dll。加載SYSTEM注冊(cè)表儲(chǔ)巢文件(%SyStemR00t%\SyStem32\Config\System)為注冊(cè)表鍵值(HKEY_LOCAL_MACHINE\SYSTEM),根據(jù)注冊(cè)表中引導(dǎo)設(shè)備驅(qū)動(dòng)列表添加相應(yīng)的文件系統(tǒng)驅(qū)動(dòng),以實(shí)現(xiàn)對(duì)各個(gè)分區(qū),目錄,文件的訪問(wèn)管理。初始化內(nèi)核階段內(nèi)核初始化進(jìn)程會(huì)加載(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services)中記錄的驅(qū)動(dòng),如磁盤管理過(guò)濾驅(qū)動(dòng)、網(wǎng)絡(luò)驅(qū)動(dòng)
坐寸ο先加載注冊(cè)為“Start”鍵值O (SERVICE_B00T_START)的驅(qū)動(dòng)然后加載鍵值為 I(SERVICE_SYSTEM_START)的驅(qū)動(dòng)。首先掃描(HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro I Set \Contro I \Serv iceGroupOrder )中定義的組別加載順序,按照組別依次加載已注冊(cè)的驅(qū)動(dòng),已注冊(cè)驅(qū)動(dòng)的組別會(huì)記錄在注冊(cè)表鍵值“Group”中。對(duì)相同組別的驅(qū)動(dòng),會(huì)根據(jù)注冊(cè)表鍵值“ Tag”來(lái)決定加載順序。GroupOrderLi st (HKEY_L0CAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList)中每個(gè)組的第一項(xiàng)都是Tag值的數(shù)值。接下來(lái)是要加載的Tag值的數(shù)字順序。組中的設(shè)備驅(qū)動(dòng)程序首先按照其由GroupOrderList所定義的Tag值進(jìn)行加載。如果設(shè)備驅(qū)動(dòng)程序沒(méi)有Tag值,或者Tag值不在GroupOrderList中,則這些設(shè)備驅(qū)動(dòng)程序?qū)⒃诩虞d具有有效Tag值的設(shè)備驅(qū)動(dòng)程序之后進(jìn)行加載。系統(tǒng)登錄階段在本階段會(huì)話管理器啟動(dòng)本地安全性授權(quán)子系統(tǒng)。執(zhí)行到這一步后,計(jì)算機(jī)顯示屏上會(huì)顯示W(wǎng)indows系統(tǒng)的登錄界面,與此同時(shí),后臺(tái)會(huì)加載一些非關(guān)鍵的設(shè)備驅(qū)動(dòng)。通過(guò)上述五個(gè)階段的操作,計(jì)算機(jī)開(kāi)機(jī)過(guò)程執(zhí)行完畢,從而獲知了系統(tǒng)開(kāi)機(jī)時(shí)所有需要讀取的系統(tǒng)開(kāi)機(jī)文件以及這些系統(tǒng)開(kāi)機(jī)文件的讀取順序。對(duì)于同一個(gè)計(jì)算機(jī)操作系統(tǒng),系統(tǒng)開(kāi)機(jī)文件的讀取及加載順序是不會(huì)改變的,每次開(kāi)機(jī)都會(huì)按照相同的讀取順序讀取系統(tǒng)開(kāi)機(jī)文件。本實(shí)施例可以在一次開(kāi)機(jī)過(guò)程中,通過(guò)設(shè)置的文件讀取監(jiān)控驅(qū)動(dòng)記錄系統(tǒng)開(kāi)機(jī)文件的讀取順序,然后按照記錄的讀取順序執(zhí)行系統(tǒng)開(kāi)機(jī)文件在磁盤上的重排列。本發(fā)明又一個(gè)實(shí)施例中結(jié)合具體的示例來(lái)說(shuō)明將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上的方法。參見(jiàn)圖2,示出了系統(tǒng)磁盤上的文件在執(zhí)行整理前的分布圖。圖2中整個(gè)表格代表系統(tǒng)磁盤,每一單元格代表文件系統(tǒng)的最小使用單位簇。系統(tǒng)磁盤上包括若干非系統(tǒng)開(kāi)機(jī)文件以及三個(gè)系統(tǒng)開(kāi)機(jī)文件。為便于描述,在圖2中已經(jīng)對(duì)這三個(gè)系統(tǒng)開(kāi)機(jī)文件的讀取順序進(jìn)行了注明,在實(shí)際操作中,可以將系統(tǒng)開(kāi)機(jī)文件的名稱、位置和讀取順序記錄在列表中,從列表中查找到當(dāng)前需要移動(dòng)的系統(tǒng)開(kāi)機(jī)文件。圖2示出的例子中,讀取順序?yàn)镮號(hào)的文件存在文件碎片,該文件由兩個(gè)文件碎片組成。通常情況下,一個(gè)文件被分為多個(gè)碎片時(shí),會(huì)有一個(gè)較大的文件碎片中包含了該文件的主體數(shù)據(jù),而其余的文件 碎片會(huì)比較小。首先選取重排列的起始位置,將系統(tǒng)磁盤上可使用的首個(gè)扇區(qū)選取為排列目標(biāo)位置,圖2的示例中,系統(tǒng)磁盤上的第一個(gè)簇中的第一個(gè)扇區(qū)可用于存儲(chǔ)任意系統(tǒng)開(kāi)機(jī)文件,則將該第一個(gè)扇區(qū)選取為排列目標(biāo)位置。根據(jù)讀取順序,先移動(dòng)讀取順序?yàn)镮號(hào)的系統(tǒng)開(kāi)機(jī)文件,根據(jù)文件的文件大小獲知該文件需要占用兩個(gè)簇(兩個(gè)單元格)的空間,而從排列目標(biāo)位置開(kāi)始沒(méi)有兩個(gè)簇的連續(xù)扇區(qū),則移動(dòng)排列目標(biāo)位置后至少兩個(gè)簇中的文件至不相關(guān)區(qū)域。不相關(guān)區(qū)域?yàn)橄到y(tǒng)磁盤上從排列目標(biāo)位置加上當(dāng)前處理(讀取順序?yàn)镮號(hào))的系統(tǒng)開(kāi)機(jī)文件的文件大小對(duì)應(yīng)的扇區(qū)之后的空閑扇區(qū)區(qū)域,圖2示出的場(chǎng)景中從第三個(gè)單元格開(kāi)始的未占用的單元格都屬于不相關(guān)區(qū)域。參見(jiàn)圖3,為移動(dòng)讀取順序?yàn)镮號(hào)的系統(tǒng)開(kāi)機(jī)文件之后的系統(tǒng)磁盤上的文件分布情況。本實(shí)施例將非系統(tǒng)開(kāi)機(jī)文件I和讀取順序3號(hào)的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到了不相關(guān)區(qū)域中距離排列目標(biāo)位置最遠(yuǎn)的區(qū)域。將讀取順序?yàn)镮號(hào)的文件的各部分從當(dāng)前排列位置開(kāi)始連續(xù)排列在磁盤上。本方案也能夠?qū)ξ募槠M(jìn)行整理,若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件(讀取順序I號(hào)的文件)由兩個(gè)以上的文件碎片構(gòu)成,獲取該系統(tǒng)開(kāi)機(jī)文件的文件描述信息,該文件描述信息包括指示文件碎片排列順序的信息,將讀取順序I號(hào)的系統(tǒng)開(kāi)機(jī)文件的文件碎片按照文件碎片排列順序依次移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)。在對(duì)讀取順序I號(hào)的系統(tǒng)開(kāi)機(jī)文件移動(dòng)結(jié)束后,將排列目標(biāo)位置更新為讀取順序I號(hào)的文件占用的扇區(qū)之后的下一個(gè)扇區(qū),即第三個(gè)單元格對(duì)應(yīng)的簇中的第一個(gè)扇區(qū)。然后,移動(dòng)讀取順序?yàn)?號(hào)的系統(tǒng)開(kāi)機(jī)文件。參見(jiàn)圖4,示出了對(duì)讀取順序2號(hào)的文件移動(dòng)后磁盤上的文件分布情況圖。由于排列目標(biāo)位置起的連續(xù)扇區(qū)被非系統(tǒng)開(kāi)機(jī)文件2占用,將非系統(tǒng)開(kāi)機(jī)文件2移動(dòng)至不相關(guān)區(qū)域,將讀取順序2號(hào)的系統(tǒng)開(kāi)機(jī)文件移動(dòng)至從當(dāng)前的排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)中(第三個(gè)單元格)。在對(duì)讀取順序2號(hào)的系統(tǒng)開(kāi)機(jī)文件移動(dòng)結(jié)束后,將排列目標(biāo)位置更新為讀取順序2號(hào)的文件占用的扇區(qū)之后的下一個(gè)扇區(qū),即第四個(gè)單元格對(duì)應(yīng)的簇中的第一個(gè)扇區(qū)。然后,移動(dòng)讀取順序?yàn)?號(hào)的系統(tǒng)開(kāi)機(jī)文件。參見(jiàn)圖5,示出了對(duì)讀取順序3號(hào)的文件移動(dòng)后磁盤上的文件分布情況圖。由于排列目標(biāo)位置起的連續(xù)扇區(qū)被非系統(tǒng)開(kāi)機(jī)文件3占用,將非系統(tǒng)開(kāi)機(jī)文件3移動(dòng)至不相關(guān)區(qū)域,將讀取順序3號(hào)的系統(tǒng)開(kāi)機(jī)文件移動(dòng)至從當(dāng)前的排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)中(第四個(gè)單元格)。進(jìn)一步的,由于一些特定的系統(tǒng)開(kāi)機(jī)文件要求存儲(chǔ)在磁盤上固定的位置,本實(shí)施例獲取到的系統(tǒng)開(kāi)機(jī)文件的分布信息中還可以包括系統(tǒng)開(kāi)機(jī)文件的狀態(tài),該狀態(tài)可以包括鎖定狀態(tài)和非鎖定狀態(tài),文件系統(tǒng)(如NTFS)可以確定文件是否可以移動(dòng),獲知文件的狀態(tài),通過(guò)調(diào)用文件系統(tǒng)的API接口即可得到文件的狀態(tài)。當(dāng)系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),表明該系統(tǒng)開(kāi)機(jī)文件必須存儲(chǔ)在固定位置,不允許移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤中的位置,當(dāng)系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為非鎖定狀態(tài)時(shí),允許移動(dòng)該系統(tǒng)開(kāi)機(jī)文件。則在按照讀取順序?qū)ο到y(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng)時(shí),若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng),保持該系統(tǒng)開(kāi)機(jī)文件的位置不變。相似的,為了從排列目標(biāo)位置起為當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件清理出足夠的存儲(chǔ)空間,需要移動(dòng)排列目標(biāo)位置之后的系統(tǒng)開(kāi)機(jī)文件且該文件的狀態(tài)為鎖定時(shí),不對(duì)該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng),則將排列目標(biāo)位置更新為該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件占用的扇區(qū)之后的 下一個(gè)扇區(qū),將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)至從更新后的排列目標(biāo)位置起的連續(xù)扇區(qū)中。本發(fā)明又一實(shí)施例還提供了一種實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)加速的方法,包括在開(kāi)機(jī)過(guò)程中需要運(yùn)行的系統(tǒng)開(kāi)機(jī)文件已經(jīng)被按照讀取順序連續(xù)排列在系統(tǒng)磁盤上,則當(dāng)接收到系統(tǒng)開(kāi)機(jī)指令時(shí),直接加載連續(xù)排列在系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件,執(zhí)行計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)操作。本實(shí)施例中由于系統(tǒng)開(kāi)機(jī)時(shí),系統(tǒng)開(kāi)機(jī)啟動(dòng)的時(shí)候加載的是按照讀取順序連續(xù)排列在系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件,磁盤觸頭只需在磁道中順序移動(dòng)即可讀取到開(kāi)機(jī)的各個(gè)階段中需要的系統(tǒng)開(kāi)機(jī)文件,解決了磁盤觸頭在磁道中頻繁切換來(lái)回往復(fù)移動(dòng)造成的文件讀取時(shí)間過(guò)長(zhǎng)的問(wèn)題,能夠顯著提高計(jì)算機(jī)的開(kāi)機(jī)速度,有效地達(dá)到計(jì)算機(jī)開(kāi)機(jī)加速的目的。本發(fā)明又一個(gè)實(shí)施例還提供了一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置,參見(jiàn)圖6,包括讀取順序獲取單元600,適于獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序,例如,讀取順序獲取單元600具體適于將計(jì)算機(jī)開(kāi)機(jī)過(guò)程中執(zhí)行預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核至系統(tǒng)登錄操作時(shí)從系統(tǒng)磁盤上讀取的文件作為系統(tǒng)開(kāi)機(jī)文件,記錄讀取該系統(tǒng)開(kāi)機(jī)文件的順序作為獲取到的讀取順序。信息獲取單元602,適于獲取系統(tǒng)開(kāi)機(jī)文件的分布信息,該分布信息包括系統(tǒng)開(kāi)機(jī)文件的文件名稱、文件路徑和指示文件在系統(tǒng)磁盤中位置的信息。信息獲取單元602可以從磁盤所對(duì)應(yīng)的文件系統(tǒng)(如NTFS文件系統(tǒng))中獲取到上述分布信息。文件查找單兀604,適于利用系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件;文件移動(dòng)單元606,適于移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上。本實(shí)施例在修改系統(tǒng)開(kāi)機(jī)文件在存儲(chǔ)空間中的位置時(shí),采用了移動(dòng)文件的方式,例如,通過(guò)調(diào)用NTFS文件系統(tǒng)提供文件控制應(yīng)用接口NtFsControlFile API,移動(dòng)文件到指定的位置。由于系統(tǒng)開(kāi)機(jī)文件是系統(tǒng)運(yùn)行所需的基礎(chǔ)文件,若采用文件刪除再寫入的方式,刪除文件可以導(dǎo)致系統(tǒng)運(yùn)行故障,或影響系統(tǒng)中其他應(yīng)用的正常運(yùn)行,為避免出現(xiàn)這種問(wèn)題,本實(shí)施例采用移動(dòng)文件的方式,保證了在對(duì)系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理的同時(shí),系統(tǒng)運(yùn)行的穩(wěn)定性。其中,信息獲取單元602,還適于在獲取系統(tǒng)磁盤上開(kāi)機(jī)文件的分布信息之前,獲取系統(tǒng)磁盤的描述信息,該描述信息包括系統(tǒng)磁盤的已使用空間相對(duì)于空閑空間的比例值;參見(jiàn)圖7,上述裝置還包括啟動(dòng)控制單元608,適于當(dāng)比例值小于容忍閾值時(shí),確定當(dāng)前狀態(tài)為禁止啟動(dòng)文件整理操作,不對(duì)系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理,結(jié)束操作。例如,啟動(dòng)控制單元608可以通過(guò)禁止文件查找單元604和/或文件移動(dòng)單元606的啟動(dòng),達(dá)到不對(duì)系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理的效果。這種處理方式,只有當(dāng)系統(tǒng)磁盤上有足夠的空閑扇區(qū)時(shí),才啟動(dòng)文件整理操作,這是由于對(duì)系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng)并重新排列時(shí),挪動(dòng)后的文件仍需要存儲(chǔ)在磁盤上,若磁盤中的空閑空間過(guò)小,可能會(huì)導(dǎo)致需要采用復(fù)雜的移動(dòng)操作來(lái)保證文件的正常存儲(chǔ),甚至導(dǎo)致在文件移動(dòng)時(shí)磁盤上沒(méi)有充足的空間用于存儲(chǔ)移動(dòng)后的文件,所以采用上述處理方式保證了能夠成功實(shí)現(xiàn)文件的移動(dòng)和重排列。 其中,上述指示文件在系統(tǒng)磁盤中位置的信息為文件在系統(tǒng)磁盤中占用的簇的編號(hào),文件查找單元604,具體適于利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件名稱和文件路徑確定當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件;利用系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件在系統(tǒng)磁盤中占用的簇的編號(hào),在系統(tǒng)磁盤中查找到當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件。文件移動(dòng)單元606包括目標(biāo)位置選取模塊,適于將系統(tǒng)磁盤上可使用的首個(gè)扇區(qū)選取為排列目標(biāo)位置;移動(dòng)模塊,適于按照讀取順序確定當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件,并判斷從排列目標(biāo)位置開(kāi)始是否存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),若存在,將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū),若不存在,移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域,直至從排列目標(biāo)位置開(kāi)始存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),并將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū);更新模塊,適于更新排列目標(biāo)位置為系統(tǒng)磁盤上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后占用的扇區(qū)之后的下一個(gè)扇區(qū),以及,按照讀取順序確定下一個(gè)處理的系統(tǒng)開(kāi)機(jī)文件;循環(huán)控制模塊,適于根據(jù)更新后的排列目標(biāo)位置,調(diào)用移動(dòng)模塊移動(dòng)下一個(gè)需要處理的系統(tǒng)開(kāi)機(jī)文件;其中,不相關(guān)區(qū)域?yàn)橄到y(tǒng)磁盤上從排列目標(biāo)位置加上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小對(duì)應(yīng)的扇區(qū)之后的空閑扇區(qū)區(qū)域。本實(shí)施例還提供了一種對(duì)文件碎片的整理方案,若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件由二個(gè)以上的文件碎片構(gòu)成,信息獲取單元602,還適于獲取系統(tǒng)開(kāi)機(jī)文件的文件描述信息,該文件描述信息包括指示文件碎片排列順序的信息;則文件移動(dòng)單元606中的移動(dòng)模塊,具體適于將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件碎片按照文件碎片排列順序依次移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)。進(jìn)一步的,信息獲取單元602獲取到的系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括系統(tǒng)開(kāi)機(jī)文件的狀態(tài),當(dāng)系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不允許移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤中的位置;文件移動(dòng)單元606中的移動(dòng)模塊,具體適于若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng);以及,該移動(dòng)模塊,具體適于當(dāng)排列目標(biāo)位置之后的需要移動(dòng)的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng),并啟動(dòng)文件移動(dòng)單元606中的更新模塊,該更新模塊,具體適于將排列目標(biāo)位置更新為該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件占用的扇區(qū)之后的下一個(gè)扇區(qū)。本實(shí)施例中各單元及模塊的具體工作方式可以參見(jiàn)本發(fā)明其他實(shí)施例的相關(guān)內(nèi)容。根據(jù)本發(fā)明的另一方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)終端,系統(tǒng)磁盤、內(nèi)存儲(chǔ)器、數(shù)據(jù)處理器、顯示器,參見(jiàn)圖8,該計(jì)算機(jī)終端800上安裝有計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置900,計(jì)算機(jī)終端800,適于當(dāng)接收到系統(tǒng)文件整理指令時(shí),根據(jù)該系統(tǒng)文件整理指令,啟動(dòng)計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置900。 計(jì)算機(jī)終端800,還適于在計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置900對(duì)系統(tǒng)開(kāi)機(jī)文件整理之后,當(dāng)接收到系統(tǒng)開(kāi)機(jī)指令時(shí),加載連續(xù)排列在系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件,執(zhí)行計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)操作。在利用計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置900執(zhí)行一次系統(tǒng)開(kāi)機(jī)文件的整理操作之后,計(jì)算機(jī)終端800以后在每次開(kāi)機(jī)時(shí)都直接加載已經(jīng)連續(xù)排序在系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件,以提高系統(tǒng)開(kāi)機(jī)速度。上述系統(tǒng)磁盤上存儲(chǔ)有系統(tǒng)開(kāi)機(jī)文件以及其他所需的非系統(tǒng)開(kāi)機(jī)文件,內(nèi)存儲(chǔ)器適于存儲(chǔ)各種文件及數(shù)據(jù),數(shù)據(jù)處理器適于進(jìn)行數(shù)據(jù)處理以及對(duì)計(jì)算機(jī)終端中器件的運(yùn)行進(jìn)行控制,顯示器適于進(jìn)行信息的顯示。計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置900中可以具有如圖6和圖7所示的結(jié)構(gòu),計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置900的具體工作方式也可以參見(jiàn)圖6和圖7中各單元和模塊的
工作方式。由上所述,本發(fā)明實(shí)施例通過(guò)獲取開(kāi)機(jī)過(guò)程中系統(tǒng)開(kāi)機(jī)文件的讀取順序以及系統(tǒng)開(kāi)機(jī)文件的分布信息,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上,則系統(tǒng)開(kāi)機(jī)時(shí),磁盤觸頭只需在磁道中順序移動(dòng)即可讀取到開(kāi)機(jī)的各個(gè)階段中需要的系統(tǒng)開(kāi)機(jī)文件,解決了磁盤觸頭在磁道中頻繁切換來(lái)回往復(fù)移動(dòng)造成的文件讀取時(shí)間過(guò)長(zhǎng)的問(wèn)題,能夠顯著提高計(jì)算機(jī)的開(kāi)機(jī)速度,更加有效地實(shí)現(xiàn)計(jì)算機(jī)開(kāi)機(jī)加速的目的。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法,包括 獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序; 獲取所述系統(tǒng)開(kāi)機(jī)文件的分布信息,所述分布信息包括系統(tǒng)開(kāi)機(jī)文件的文件名稱、文件路徑和指示文件在系統(tǒng)磁盤中位置的信息; 利用所述系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的所述系統(tǒng)開(kāi)機(jī)文件; 移動(dòng)所述系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照所述讀取順序連續(xù)排列在所述系統(tǒng)磁盤上。
2.根據(jù)權(quán)利要求I所述的方法,其中,在所述獲取所述開(kāi)機(jī)文件的分布信息之前,所述方法還包括 獲取所述系統(tǒng)磁盤的描述信息,所述描述信息包括系統(tǒng)磁盤的已使用空間相對(duì)于空閑空間的比例值; 所述方法還包括當(dāng)所述比例值小于容忍閾值時(shí),確定當(dāng)前狀態(tài)為禁止啟動(dòng)文件整理操作,不對(duì)系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理,結(jié)束操作。
3.根據(jù)權(quán)利要求I所述的方法,其中,所述指示文件在系統(tǒng)磁盤中位置的信息為文件在系統(tǒng)磁盤中占用的簇的編號(hào),所述利用所述系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的所述系統(tǒng)開(kāi)機(jī)文件包括 利用所述系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件名稱和文件路徑確定當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件; 利用所述系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件在系統(tǒng)磁盤中占用的簇的編號(hào),在系統(tǒng)磁盤中查找到當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件。
4.根據(jù)權(quán)利要求I所述的方法,其中,所述系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括文件大小,所述移動(dòng)所述系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照所述讀取順序連續(xù)排列在所述系統(tǒng)磁盤上包括 將系統(tǒng)磁盤上可使用的首個(gè)扇區(qū)選取為排列目標(biāo)位置; 按照讀取順序確定當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件,并判斷從排列目標(biāo)位置開(kāi)始是否存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),若存在,將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū),若不存在,移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域,直至從排列目標(biāo)位置開(kāi)始存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),并將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū); 更新所述排列目標(biāo)位置為系統(tǒng)磁盤上所述當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后占用的扇區(qū)之后的下一個(gè)扇區(qū),以及,按照讀取順序確定下一個(gè)處理的系統(tǒng)開(kāi)機(jī)文件; 根據(jù)所述更新后的排列目標(biāo)位置,移動(dòng)下一個(gè)需要處理的系統(tǒng)開(kāi)機(jī)文件; 其中,所述不相關(guān)區(qū)域?yàn)橄到y(tǒng)磁盤上從排列目標(biāo)位置加上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小對(duì)應(yīng)的扇區(qū)之后的空閑扇區(qū)區(qū)域。
5.根據(jù)權(quán)利要求4所述的方法,其中,若所述當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件由二個(gè)以上的文件碎片構(gòu)成,所述方法還包括 獲取所述系統(tǒng)開(kāi)機(jī)文件的文件描述信息,所述文件描述信息包括指示文件碎片排列順序的信息;所述將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)包括 將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件碎片按照文件碎片排列順序依次移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)。
6.根據(jù)權(quán)利要求4所述的方法,其中,獲取到的所述系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括系統(tǒng)開(kāi)機(jī)文件的狀態(tài),當(dāng)系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不允許移動(dòng)所述系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤中的位置; 所述將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)包括若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng); 所述移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域包括 當(dāng)排列目標(biāo)位置之后的需要移動(dòng)的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng),將排列目標(biāo)位置更新為該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件占用的扇區(qū)之后的下一個(gè)扇區(qū)。
7.根據(jù)權(quán)利要求I所述的方法,其中,所述獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序包括 將計(jì)算機(jī)開(kāi)機(jī)過(guò)程中執(zhí)行預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核至系統(tǒng)登錄操作時(shí)從系統(tǒng)磁盤上讀取的文件作為所述系統(tǒng)開(kāi)機(jī)文件,記錄讀取該系統(tǒng)開(kāi)機(jī)文件的順序作為所述獲取到的讀取順序。
8.一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理裝置,包括 讀取順序獲取單元,適于獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序; 信息獲取單元,適于獲取所述系統(tǒng)開(kāi)機(jī)文件的分布信息,所述分布信息包括系統(tǒng)開(kāi)機(jī)文件的文件名稱、文件路徑和指示文件在系統(tǒng)磁盤中位置的信息; 文件查找單元,適于利用所述系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的所述系統(tǒng)開(kāi)機(jī)文件; 文件移動(dòng)單元,適于移動(dòng)所述系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照所述讀取順序連續(xù)排列在所述系統(tǒng)磁盤上。
9.根據(jù)權(quán)利要求8所述的裝置,其中,所述信息獲取單元,還適于在所述獲取系統(tǒng)磁盤上所述開(kāi)機(jī)文件的分布信息之前,獲取所述系統(tǒng)磁盤的描述信息,所述描述信息包括系統(tǒng)磁盤的已使用空間相對(duì)于空閑空間的比例值; 所述裝置還包括啟動(dòng)控制單元,適于當(dāng)所述比例值小于容忍閾值時(shí),確定當(dāng)前狀態(tài)為禁止啟動(dòng)文件整理操作,不對(duì)系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件進(jìn)行整理,結(jié)束操作。
10.根據(jù)權(quán)利要求8所述的裝置,其中, 所述指示文件在系統(tǒng)磁盤中位置的信息為文件在系統(tǒng)磁盤中占用的簇的編號(hào), 所述文件查找單元,具體適于利用所述系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件名稱和文件路徑確定當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件;利用所述系統(tǒng)開(kāi)機(jī)文件的分布信息中的文件在系統(tǒng)磁盤中占用的簇的編號(hào),在系統(tǒng)磁盤中查找到當(dāng)前需要查找的系統(tǒng)開(kāi)機(jī)文件。
11.根據(jù)權(quán)利要求8所述的裝置,其中, 所述系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括文件大小,所述文件移動(dòng)單元包括 目標(biāo)位置選取模塊,適于將系統(tǒng)磁盤上可使用的首個(gè)扇區(qū)選取為排列目標(biāo)位置;移動(dòng)模塊,適于按照讀取順序確定當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件,并判斷從排列目標(biāo)位置開(kāi)始是否存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),若存在,將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū),若不存在,移動(dòng)系統(tǒng)磁盤上排列目標(biāo)位置之后的一個(gè)或多個(gè)文件至不相關(guān)區(qū)域,直至從排列目標(biāo)位置開(kāi)始存在滿足當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小的連續(xù)扇區(qū),并將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū); 更新模塊,適于更新所述排列目 標(biāo)位置為系統(tǒng)磁盤上所述當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件移動(dòng)后占用的扇區(qū)之后的下一個(gè)扇區(qū),以及,按照讀取順序確定下一個(gè)處理的系統(tǒng)開(kāi)機(jī)文件; 循環(huán)控制模塊,適于根據(jù)所述更新后的排列目標(biāo)位置,調(diào)用移動(dòng)模塊移動(dòng)下一個(gè)需要處理的系統(tǒng)開(kāi)機(jī)文件; 其中,所述不相關(guān)區(qū)域?yàn)橄到y(tǒng)磁盤上從排列目標(biāo)位置加上當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件大小對(duì)應(yīng)的扇區(qū)之后的空閑扇區(qū)區(qū)域。
12.根據(jù)權(quán)利要求11所述的裝置,其中,若所述當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件由二個(gè)以上的文件碎片構(gòu)成,所述信息獲取單元,還適于獲取所述系統(tǒng)開(kāi)機(jī)文件的文件描述信息,所述文件描述信息包括指示文件碎片排列順序的信息; 所述移動(dòng)模塊,具體適于將當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的文件碎片按照文件碎片排列順序依次移動(dòng)到從排列目標(biāo)位置開(kāi)始的連續(xù)扇區(qū)。
13.根據(jù)權(quán)利要求11所述的裝置,其中,所述信息獲取單元獲取到的所述系統(tǒng)開(kāi)機(jī)文件的分布信息中還包括系統(tǒng)開(kāi)機(jī)文件的狀態(tài),當(dāng)系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不允許移動(dòng)所述系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤中的位置; 所述移動(dòng)模塊,具體適于若當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)當(dāng)前處理的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng);以及, 所述移動(dòng)模塊,具體適于當(dāng)排列目標(biāo)位置之后的需要移動(dòng)的系統(tǒng)開(kāi)機(jī)文件的狀態(tài)為鎖定時(shí),不對(duì)該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件進(jìn)行移動(dòng),并啟動(dòng)更新模塊, 所述更新模塊,具體適于將排列目標(biāo)位置更新為該鎖定狀態(tài)的系統(tǒng)開(kāi)機(jī)文件占用的扇區(qū)之后的下一個(gè)扇區(qū)。
14.根據(jù)權(quán)利要求8所述的裝置,其中, 所述讀取順序獲取單元,具體適于將計(jì)算機(jī)開(kāi)機(jī)過(guò)程中執(zhí)行預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核至系統(tǒng)登錄操作時(shí)從系統(tǒng)磁盤上讀取的文件作為所述系統(tǒng)開(kāi)機(jī)文件,記錄讀取該系統(tǒng)開(kāi)機(jī)文件的順序作為所述獲取到的讀取順序。
全文摘要
本發(fā)明公開(kāi)了一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法和裝置。本發(fā)明實(shí)施例提供的一種計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)文件的整理方法包括獲取計(jì)算機(jī)開(kāi)機(jī)過(guò)程中從系統(tǒng)磁盤上讀取系統(tǒng)開(kāi)機(jī)文件的讀取順序,獲取系統(tǒng)開(kāi)機(jī)文件的分布信息,利用系統(tǒng)開(kāi)機(jī)文件的分布信息查找到系統(tǒng)磁盤上的系統(tǒng)開(kāi)機(jī)文件,移動(dòng)系統(tǒng)開(kāi)機(jī)文件在系統(tǒng)磁盤上的位置,將系統(tǒng)開(kāi)機(jī)文件按照讀取順序連續(xù)排列在系統(tǒng)磁盤上。
文檔編號(hào)G06F9/445GK102968324SQ20121050783
公開(kāi)日2013年3月13日 申請(qǐng)日期2012年11月30日 優(yōu)先權(quán)日2012年11月30日
發(fā)明者熊昱之, 潘劍鋒 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司