欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法和裝置制造方法

文檔序號(hào):6538235閱讀:160來源:國(guó)知局
一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法和裝置,該方法包括:響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,從計(jì)算機(jī)的磁盤中讀取預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù);將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù),通過本發(fā)明的實(shí)施例能夠有效減少操作系統(tǒng)啟動(dòng)所需的時(shí)間。
【專利說明】一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法和裝置。
【背景技術(shù)】
[0002]開機(jī)啟動(dòng)項(xiàng)也即啟動(dòng)項(xiàng),就是開機(jī)的時(shí)候會(huì)在前臺(tái)或后臺(tái)運(yùn)行的程序。目前的系統(tǒng)啟動(dòng)服務(wù)包括:SERVICE_FILE_SYSTEM_DRIVER、SERVICE_KE RNEL_DRIVER、SERVICE,WIN32_0WN_PR0CESS 和 SERVICE_WIN32_S HARE_PR0CESS 四種,通過注冊(cè)表項(xiàng) HKEY_L0CAL_MACHINE\SYSTEM\CurrentControlSet\service\XXXX 下的 TYPE 值標(biāo)識(shí)可以識(shí)別的服務(wù)類型,其中表項(xiàng)中的XXXX表示服務(wù)名稱。
[0003]通常情況下,操作系統(tǒng)啟動(dòng)時(shí),操作系統(tǒng)需要加載很多應(yīng)用程序。現(xiàn)有的加快操作系統(tǒng)啟動(dòng)速度的做法是在操作系統(tǒng)啟動(dòng)時(shí)禁用不需要的應(yīng)用程序,通過禁用沒必要啟動(dòng)的應(yīng)用程序,達(dá)到對(duì)操作系統(tǒng)啟動(dòng)速度進(jìn)行優(yōu)化的目的,例如,禁用第三方安裝的應(yīng)用程序的啟動(dòng)項(xiàng),用戶用不到的打印機(jī)啟動(dòng)項(xiàng),遠(yuǎn)程登陸服務(wù)的啟動(dòng)項(xiàng)等。然而這種啟動(dòng)加速是由用戶修改操作系統(tǒng)的啟動(dòng)配置文件實(shí)現(xiàn),需要用戶對(duì)操作系統(tǒng)的啟動(dòng)配置文件有所了解,以免因禁用操作系統(tǒng)啟動(dòng)所必須的啟動(dòng)項(xiàng),而導(dǎo)致操作系統(tǒng)無法正常啟動(dòng)。

【發(fā)明內(nèi)容】

[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法和裝置。
[0005]依據(jù)本發(fā)明的一個(gè)方面,提供了一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法,包括:響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;所述預(yù)讀取線程和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀取數(shù)據(jù),其中預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù);將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0006]可選地,在操作系統(tǒng)啟動(dòng)過程中,利用所述預(yù)讀取線程繼續(xù)讀取所述預(yù)讀取數(shù)據(jù),并且接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段內(nèi)暫停所述預(yù)讀取線程的讀取,并響應(yīng)所述操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求。
[0007]可選地,所述方法還包括:預(yù)先記錄操作系統(tǒng)啟動(dòng)的信息,并且基于所述信息以及用于之前一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),并且按照系統(tǒng)啟動(dòng)時(shí)讀取的優(yōu)先級(jí)對(duì)所述預(yù)先定義的預(yù)讀取數(shù)據(jù)中的數(shù)據(jù)進(jìn)行排序,其中數(shù)據(jù)的優(yōu)先級(jí)越高,該數(shù)據(jù)越早被預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取出來。
[0008]可選地,記錄計(jì)算機(jī)的磁盤進(jìn)行磁盤碎片整理時(shí)磁盤中數(shù)據(jù)的移動(dòng)信息;
[0009]根據(jù)所述磁盤中數(shù)據(jù)的移動(dòng)信息和之前的所述預(yù)先定義的預(yù)讀取數(shù)據(jù)重新生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0010]可選地,其中所述操作系統(tǒng)啟動(dòng)的信息包括操作系統(tǒng)啟動(dòng)所花費(fèi)的時(shí)間、操作系統(tǒng)從內(nèi)存中讀取所緩存的預(yù)讀取數(shù)據(jù)的描述信息。
[0011]可選地,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟包括:在小于或等于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及在大于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
[0012]可選地,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到所述數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0013]可選地,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在檢測(cè)到操作系統(tǒng)仍在讀取地址偏移連續(xù)的數(shù)據(jù)的情況下,保持暫停所述預(yù)讀取線程的讀取,直到檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),然后恢復(fù)所述預(yù)讀取線程的讀取。
[0014]可選地,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:在檢測(cè)到操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),直到檢測(cè)到磁盤自檢結(jié)束,然后恢復(fù)所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。
[0015]可選地,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在檢測(cè)到操作系統(tǒng)要從磁盤中讀取的數(shù)據(jù)中的部分包括在所述預(yù)讀取數(shù)據(jù)中的情況下,將讀取的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取;并且在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到其它部分的數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述其它部分的數(shù)據(jù),并將所述其它部分的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0016]依據(jù)本發(fā)明的另一個(gè)方面,還提供了一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的裝置,包括:讀取模塊,用于響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;所述預(yù)讀取線程和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀取數(shù)據(jù),其中預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù);緩存模塊,用于將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及啟動(dòng)加載模塊,用于響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0017]可選地,所述讀取模塊包括:線程創(chuàng)建單元,用于響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;讀取單元,用于利用預(yù)讀取線程開始從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù)。
[0018]可選地,所述讀取模塊在操作系統(tǒng)啟動(dòng)過程中,利用所述預(yù)讀取線程繼續(xù)讀取所述預(yù)讀取數(shù)據(jù),并且接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段內(nèi)暫停所述預(yù)讀取線程的讀取。
[0019]可選地,所述裝置還包括:預(yù)讀取數(shù)據(jù)生成模塊,用于預(yù)讀取數(shù)據(jù)預(yù)先記錄操作系統(tǒng)啟動(dòng)的信息,并且基于所述信息以及用于之前一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),并且按照系統(tǒng)啟動(dòng)時(shí)讀取的優(yōu)先級(jí)對(duì)所述預(yù)先定義的預(yù)讀取數(shù)據(jù)中的數(shù)據(jù)進(jìn)行排序,其中數(shù)據(jù)的優(yōu)先級(jí)越高,該數(shù)據(jù)越早被預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取出來。
[0020]可選地,所述裝置還包括:磁盤碎片整理檢測(cè)模塊,用于記錄計(jì)算機(jī)的磁盤進(jìn)行磁盤碎片整理時(shí)磁盤中數(shù)據(jù)的移動(dòng)信息;根據(jù)所述磁盤中數(shù)據(jù)的移動(dòng)信息和所述預(yù)先定義的預(yù)讀取數(shù)據(jù)重新生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0021]。
[0022]可選地,其中所述操作系統(tǒng)啟動(dòng)的信息包括操作系統(tǒng)啟動(dòng)所花費(fèi)的時(shí)間、操作系統(tǒng)從內(nèi)存中讀取所緩存的預(yù)讀取數(shù)據(jù)的描述信息。
[0023]可選地,其中所述讀取單元進(jìn)一步用于在小于或等于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及在大于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
[0024]可選地,其中所述讀取單元在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到所述數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0025]可選地,其中所述讀取單元在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在檢測(cè)到操作系統(tǒng)仍在讀取地址偏移連續(xù)的數(shù)據(jù)的情況下,保持暫停所述預(yù)讀取線程的讀取,直到檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),然后恢復(fù)所述預(yù)讀取線程的讀取。
[0026]可選地,其中所述讀取單元在檢測(cè)到操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),直到檢測(cè)到磁盤自檢結(jié)束,然后恢復(fù)所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。
[0027]可選地,其中所述讀取單元在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在檢測(cè)到操作系統(tǒng)要從磁盤中讀取的數(shù)據(jù)中的部分包括在所述預(yù)讀取數(shù)據(jù)中的情況下,將讀取的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀?。徊⑶以陬A(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到其它部分的數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述其它部分的數(shù)據(jù),并將所述其它部分的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0028]由上述技術(shù)方案可知,本發(fā)明的實(shí)施例具有如下有益效果:本發(fā)明提供了上述計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法和裝置。根據(jù)本發(fā)明的實(shí)施例,能夠在計(jì)算機(jī)啟動(dòng)時(shí),操作系統(tǒng)啟動(dòng)前,創(chuàng)建預(yù)讀取線程,盡可能早地將操作系統(tǒng)啟動(dòng)所需要的數(shù)據(jù)讀取出來,并緩存到內(nèi)存中以供操作系統(tǒng)啟動(dòng)時(shí)使用,避免了磁盤請(qǐng)求隊(duì)列阻塞,從而使操作系統(tǒng)啟動(dòng)加速;根據(jù)本發(fā)明的實(shí)施例,能夠通過一次或少數(shù)幾次從磁盤中讀取出操作系統(tǒng)啟動(dòng)所需的預(yù)讀取數(shù)據(jù),將其合并成一個(gè)數(shù)據(jù)塊并緩存到內(nèi)存中,加快了操作系統(tǒng)啟動(dòng)的速度;根據(jù)本發(fā)明的實(shí)施例,預(yù)讀取線程從磁盤中讀取數(shù)據(jù)與操作系統(tǒng)從內(nèi)存中讀取數(shù)據(jù)能夠同時(shí)進(jìn)行,減少了操作系統(tǒng)啟動(dòng)所需的時(shí)間;根據(jù)本發(fā)明的實(shí)施例,通過對(duì)預(yù)讀取線程從磁盤中讀取數(shù)據(jù)、操作系統(tǒng)從內(nèi)存中讀取數(shù)據(jù)、以及操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求的適當(dāng)安排,并且在需要時(shí)暫停預(yù)讀取線程從磁盤中讀取數(shù)據(jù),為操作系統(tǒng)從磁盤讀取數(shù)據(jù)讓路,能夠?qū)崿F(xiàn)快速讀取數(shù)據(jù),同時(shí)滿足操作請(qǐng)求的時(shí)序性。
[0029]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。。
【專利附圖】

【附圖說明】
[0030]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0031]圖1示出了根據(jù)本發(fā)明的實(shí)施例中的計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法的流程圖之一;
[0032]圖2示出了根據(jù)本發(fā)明的實(shí)施例中的計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法的流程圖之二 ;
[0033]圖3示出了根據(jù)本發(fā)明的實(shí)施例中計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的裝置圖之一;以及
[0034]圖4示出了根據(jù)本發(fā)明的實(shí)施例中計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的裝置圖之二。
【具體實(shí)施方式】
[0035]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0036]在本發(fā)明的實(shí)施例中,計(jì)算機(jī)可以是計(jì)算機(jī)、移動(dòng)電話、平板電腦、視頻播放器、電子閱讀器、數(shù)碼相框等。本發(fā)明的實(shí)施例適用于任何計(jì)算機(jī)的操作系統(tǒng),包括但不限于:計(jì)算機(jī)的Windows、Linux、Mac OS、Unix等桌面操作系統(tǒng);移動(dòng)電話、平板電腦、視頻播放器、電子閱讀器、數(shù)碼相框的IOS、Android、Windows Phone、Symbian等移動(dòng)操作系統(tǒng)。
[0037]在下文中,將以計(jì)算機(jī)作為計(jì)算機(jī)的例子、以Windows作為操作系統(tǒng)的例子,對(duì)本發(fā)明的原理進(jìn)行示例性地描述。然而,這只是為了以具體的示例描述本發(fā)明,以幫助讀者理解本發(fā)明的原理,本發(fā)明的范圍不限于此,而是可以適用于任何計(jì)算機(jī)和任何操作系統(tǒng)。
[0038]如圖1所示,為本發(fā)明實(shí)施例的計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法的流程圖之一,方法100包括:
[0039]步驟S110、響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,從計(jì)算機(jī)的磁盤中讀取預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0040]引導(dǎo)程序(Boot loader,也稱啟動(dòng)加載器)位于計(jì)算機(jī)或其他計(jì)算機(jī)應(yīng)用上,是指引導(dǎo)操作系統(tǒng)啟動(dòng)的程序。任何一臺(tái)計(jì)算機(jī),在開機(jī)后,第一件事情就是引導(dǎo)(Booting),通過引導(dǎo),計(jì)算機(jī)為自身搭建好運(yùn)行環(huán)境,為以后OS的啟動(dòng)與運(yùn)行做好準(zhǔn)備。引導(dǎo)程序啟動(dòng)方式及程序視應(yīng)用機(jī)型種類而不同。例如在普通的個(gè)人計(jì)算機(jī)上,引導(dǎo)程序通常分為兩部分:第一階段引導(dǎo)程序位于主引導(dǎo)記錄(MBR),用以引導(dǎo)位于某個(gè)分區(qū)上的第二階段引導(dǎo)程序,如 NTLDR、GNU GRUB 等。
[0041]預(yù)讀取數(shù)據(jù)可以預(yù)先由啟動(dòng)文件生成,該啟動(dòng)文件是指操作系統(tǒng)正常啟動(dòng)所需啟動(dòng)的文件,以Windows操作系統(tǒng)為例,如果是win7系統(tǒng),預(yù)讀取數(shù)據(jù)保存路徑如下:
[0042]C:\Users\ 用戶名稱 \AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup0
[0043]具體地,在本發(fā)明的實(shí)施例中,在啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的Boot loader時(shí),即響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程,該預(yù)讀取線程會(huì)和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀數(shù)據(jù),其中利用預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。以Windows系統(tǒng)為例,在Windows啟動(dòng)過程中,即初始化完成BOOT驅(qū)動(dòng)后,會(huì)創(chuàng)建一個(gè)線程進(jìn)行并發(fā)的預(yù)讀,這個(gè)過程發(fā)生在1InitSystem函數(shù)中,然后通過CcPfBeginBootPhase函數(shù)創(chuàng)建新線程去執(zhí)行CcPfBootWorker,并由其負(fù)責(zé)整個(gè)預(yù)讀取的任務(wù)。
[0044]根據(jù)本發(fā)明的實(shí)施例,可以在計(jì)算機(jī)加電開機(jī)后、Boot loader驅(qū)動(dòng)初始化時(shí),從注冊(cè)表中獲取預(yù)先設(shè)置的預(yù)讀取數(shù)據(jù)的信息(例如這些數(shù)據(jù)的偏移地址),并且創(chuàng)建預(yù)讀取線程,在磁盤設(shè)備附加好后,利用該預(yù)讀取線程按照從注冊(cè)表獲取到的預(yù)讀取數(shù)據(jù)的信息,開始從磁盤中讀取預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù),并加載該預(yù)讀取數(shù)據(jù)。由于預(yù)讀取線程與操作系統(tǒng)是并發(fā)運(yùn)行的,且預(yù)讀取線程先于操作系統(tǒng)運(yùn)行,因此操作系統(tǒng)啟動(dòng)所要讀取的數(shù)據(jù)會(huì)盡可能早地被預(yù)讀取線程讀取出來。
[0045]可選地,所述磁盤可以是任何類型的用于在計(jì)算機(jī)中實(shí)現(xiàn)存儲(chǔ)功能的磁性存儲(chǔ)設(shè)備,包括但不限于:普通硬盤、混合式硬盤、固態(tài)硬盤等等。而所述磁盤采用各種格式的文件系統(tǒng),包括但不限于:FAT (File AllocationTable,文件配置表)、FAT32、NTFS (NewTechnology File System,新技術(shù)文件系統(tǒng),是WindowsNT操作環(huán)境和Windows NT高級(jí)服務(wù)器網(wǎng)絡(luò)操作系統(tǒng)環(huán)境的文件系統(tǒng))等。
[0046]根據(jù)本發(fā)明的實(shí)施例,利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟可以包括:在小于或等于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及在大于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
[0047]在現(xiàn)有技術(shù)方法中,例如微軟公司的操作系統(tǒng)Windows XP,采用磁盤請(qǐng)求隊(duì)列的方式讀取數(shù)據(jù),往往會(huì)存在上千個(gè)請(qǐng)求排隊(duì),此時(shí),如果系統(tǒng)的主線程發(fā)出請(qǐng)求,就會(huì)根據(jù)其偏移排在適當(dāng)?shù)奈恢?,往往都是在?duì)尾。根據(jù)本發(fā)明的方案,盡量將系統(tǒng)要讀取的數(shù)據(jù)利用預(yù)讀取線程提前讀取并緩存到內(nèi)存中,并采取上述方式避免隊(duì)列阻塞。即,在小于或等于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件,此時(shí)系統(tǒng)時(shí)間間隔很短,無需考慮時(shí)間順序。而在大于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件,這主要是按照系統(tǒng)初始化時(shí)處理文件的順序來進(jìn)行讀取。
[0048]可選地,所述預(yù)先設(shè)置的時(shí)間間隔可以根據(jù)實(shí)際需要來選取,一個(gè)示例可以是200毫秒。在預(yù)先設(shè)置的時(shí)間間隔是200毫秒的情況下,如果第一毫秒訪問文件A,第二毫秒訪問文件B,則可以一起讀出這至少兩個(gè)文件;而如果第一秒訪問文件A,第二秒訪問文件B,則需要按照時(shí)間順序進(jìn)行處理。按照上述方式,在接收到請(qǐng)求時(shí),可以保證只有兩個(gè)請(qǐng)求在排隊(duì)。由于請(qǐng)求只能一個(gè)一個(gè)地進(jìn)行處理,因此磁盤隊(duì)列中存在兩個(gè)請(qǐng)求與存在上千個(gè)請(qǐng)求對(duì)于磁盤10的吞吐量是一樣的。
[0049]步驟S130、將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中。
[0050]一般來說,內(nèi)存具有比磁盤更快的讀寫速度。可選地,所述內(nèi)存可以采用半導(dǎo)體存儲(chǔ)單元,包括但不限于:隨機(jī)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、高速緩沖存儲(chǔ)器(Cache)等
坐寸O
[0051]步驟S150、響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù),使得計(jì)算機(jī)可以根據(jù)加載的預(yù)讀取數(shù)據(jù)完成操作系統(tǒng)的啟動(dòng)。
[0052]在本發(fā)明的實(shí)施例中,能夠在計(jì)算機(jī)加電啟動(dòng)時(shí),操作系統(tǒng)啟動(dòng)前,創(chuàng)建預(yù)讀取線程,盡可能早地將操作系統(tǒng)啟動(dòng)所需要的數(shù)據(jù)讀取出來,并緩存到內(nèi)存中以供操作系統(tǒng)啟動(dòng)時(shí)使用,避免了磁盤請(qǐng)求隊(duì)列阻塞,從而使操作系統(tǒng)啟動(dòng)加速。
[0053]在本發(fā)明的實(shí)施例中,可以根據(jù)啟動(dòng)文件生成預(yù)讀取數(shù)據(jù)。
[0054]具體地,在本發(fā)明的又一個(gè)實(shí)施例中,在步驟SI 10之前,方法100還可以包括以下步驟:預(yù)先記錄操作系統(tǒng)啟動(dòng)的信息,并且基于所述信息以及用于之前一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先設(shè)置的預(yù)讀取數(shù)據(jù),生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先設(shè)置的預(yù)讀取數(shù)據(jù),并且按照系統(tǒng)啟動(dòng)時(shí)讀取的優(yōu)先級(jí)對(duì)所述預(yù)先設(shè)置的預(yù)讀取數(shù)據(jù)中的數(shù)據(jù)進(jìn)行排序。其中,所述操作系統(tǒng)啟動(dòng)的信息包括操作系統(tǒng)啟動(dòng)所花費(fèi)的時(shí)間、操作系統(tǒng)從內(nèi)存中讀取所緩存的預(yù)讀取數(shù)據(jù)的描述信息(例如,緩存的預(yù)讀取數(shù)據(jù)命中操作系統(tǒng)請(qǐng)求的比例、預(yù)讀取數(shù)據(jù)的名稱、預(yù)讀取數(shù)據(jù)的位置等)。例如,可以基于上述操作系統(tǒng)啟動(dòng)的信息以及例如前三次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù),來生成用于之后的操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。優(yōu)選地,在生成預(yù)讀取數(shù)據(jù)時(shí),既要保證能夠快速讀取,又要在操作系統(tǒng)請(qǐng)求之前將所需的數(shù)據(jù)讀取出來。
[0055]可選地,在本發(fā)明的又一個(gè)實(shí)施例中,所述方法100還可以包括步驟:記錄計(jì)算機(jī)的磁盤進(jìn)行磁盤碎片整理時(shí)磁盤中數(shù)據(jù)的移動(dòng)信息;根據(jù)所述磁盤中數(shù)據(jù)的移動(dòng)信息和所述預(yù)先定義的預(yù)讀取數(shù)據(jù)重新生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。。由于預(yù)讀取線程是根據(jù)磁盤偏移與大小來讀取預(yù)讀取數(shù)據(jù)的,因此在用戶執(zhí)行磁盤碎片整理操作之后,原有數(shù)據(jù)的磁盤偏移可能會(huì)發(fā)生改變,導(dǎo)致預(yù)讀取線程無法正確讀取到預(yù)讀取數(shù)據(jù)。此時(shí),利用上述可選步驟,可以在檢測(cè)到磁盤碎片整理時(shí)數(shù)據(jù)移動(dòng)的情況下,根據(jù)數(shù)據(jù)移動(dòng)來重新生成正確的預(yù)讀取數(shù)據(jù),以用于之后的操作系統(tǒng)啟動(dòng)。
[0056]在本發(fā)明的實(shí)施例中,能夠通過一次或少數(shù)幾次從磁盤中讀取出操作系統(tǒng)啟動(dòng)所需的預(yù)讀取數(shù)據(jù),將其合并成一個(gè)數(shù)據(jù)塊并緩存到內(nèi)存中,加快了操作系統(tǒng)啟動(dòng)的速度。
[0057]如圖2所示,為本發(fā)明的實(shí)施例中的計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法的流程圖之二,與圖1所示的方法100不同的是,在圖2中還包括:步驟S170。
[0058]在步驟S170中,在操作系統(tǒng)啟動(dòng)過程中,利用預(yù)讀取線程繼續(xù)讀取所述預(yù)讀取數(shù)據(jù),并且接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先設(shè)置的時(shí)間段內(nèi)暫停預(yù)讀取線程的讀取,并響應(yīng)操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求。
[0059]在步驟S170中,在操作系統(tǒng)開始啟動(dòng)(一般要在讀取系統(tǒng)驅(qū)動(dòng)文件之后再進(jìn)行)之后,繼續(xù)利用所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),即,在操作系統(tǒng)啟動(dòng)后從內(nèi)存中讀取所述預(yù)讀取數(shù)據(jù)的同時(shí),預(yù)讀取線程并發(fā)地繼續(xù)讀取所述預(yù)讀取數(shù)據(jù)。預(yù)讀取線程在系統(tǒng)底層操作,不需要解析數(shù)據(jù)結(jié)構(gòu),即使在操作系統(tǒng)存在讀取阻塞的情況下,預(yù)讀取線程仍然可以正常讀取數(shù)據(jù)。操作系統(tǒng)在讀取文件系統(tǒng)元數(shù)據(jù)和文件碎片數(shù)據(jù)時(shí),會(huì)將請(qǐng)求和偏移分散著一次一次讀取,速度非常慢,而根據(jù)本發(fā)明的方案,預(yù)讀取線程可以在底層將要讀取的數(shù)據(jù)合并為一個(gè)數(shù)據(jù)塊,從磁盤中一次性地(或者用很少的次數(shù))將數(shù)據(jù)讀取出來。
[0060]根據(jù)本發(fā)明的實(shí)施例,在上述步驟S170中,利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟可以包括:在小于或等于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及在大于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
[0061]在現(xiàn)有技術(shù)方法中,例如微軟公司的操作系統(tǒng)Windows XP,采用磁盤請(qǐng)求隊(duì)列的方式讀取數(shù)據(jù),往往會(huì)存在上千個(gè)請(qǐng)求排隊(duì),此時(shí),如果系統(tǒng)的主線程發(fā)出請(qǐng)求,就會(huì)根據(jù)其偏移排在適當(dāng)?shù)奈恢?,往往都是在?duì)尾。根據(jù)本發(fā)明的方案,盡量將系統(tǒng)要讀取的數(shù)據(jù)利用預(yù)讀取線程提前讀取并緩存到內(nèi)存中,并采取上述方式避免隊(duì)列阻塞。即,在小于或等于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件,此時(shí)系統(tǒng)時(shí)間間隔很短,無需考慮時(shí)間順序。而在大于預(yù)先設(shè)置的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件,這主要是按照系統(tǒng)初始化時(shí)處理文件的順序來進(jìn)行讀取。
[0062]可選地,所述預(yù)先設(shè)置的時(shí)間間隔可以根據(jù)實(shí)際需要來選取,一個(gè)示例可以是200毫秒。在預(yù)先設(shè)置的時(shí)間間隔是200毫秒的情況下,如果第一毫秒訪問文件A,第二毫秒訪問文件B,則可以一起讀出這至少兩個(gè)文件;而如果第一秒訪問文件A,第二秒訪問文件B,則需要按照時(shí)間順序進(jìn)行處理。按照上述方式,在接收到請(qǐng)求時(shí),可以保證只有兩個(gè)請(qǐng)求在排隊(duì)。由于請(qǐng)求只能一個(gè)一個(gè)地進(jìn)行處理,因此磁盤隊(duì)列中存在兩個(gè)請(qǐng)求與存在上千個(gè)請(qǐng)求對(duì)于磁盤IO的吞吐量是一樣的。
[0063]如果操作系統(tǒng)在啟動(dòng)過程中,發(fā)現(xiàn)所述預(yù)讀取線程緩存到內(nèi)存的預(yù)讀取數(shù)據(jù)之外的數(shù)據(jù)中沒有所需的數(shù)據(jù),此時(shí)操作系統(tǒng)會(huì)向磁盤請(qǐng)求讀取數(shù)據(jù),在上述步驟S170中,在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),可以在預(yù)先設(shè)置的時(shí)間段內(nèi)暫停所述預(yù)讀取線程的讀取,例如暫停30毫秒,這樣,就可以保證操作系統(tǒng)能夠及時(shí)讀取到數(shù)據(jù),而不會(huì)因磁盤隊(duì)列問題被堵塞。當(dāng)然,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要來選擇上述預(yù)先設(shè)置的時(shí)間段,本發(fā)明的范圍不僅限于30毫秒。
[0064]可選地,根據(jù)本發(fā)明的一個(gè)實(shí)施例,利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還可以包括:在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先設(shè)置的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到所述數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。仍以30毫秒的預(yù)先設(shè)置的時(shí)間段為例,在暫停所述預(yù)讀取線程的讀取達(dá)30毫秒之后,如果此時(shí)操作系統(tǒng)仍未從磁盤中獲取到所需的數(shù)據(jù),則可以利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0065]可選地,根據(jù)本發(fā)明的另一個(gè)實(shí)施例,利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還可以包括:在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先設(shè)置的時(shí)間段后,在檢測(cè)到操作系統(tǒng)仍在讀取地址偏移連續(xù)的數(shù)據(jù)的情況下,保持暫停所述預(yù)讀取線程的讀取,直到檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),然后恢復(fù)所述預(yù)讀取線程的讀取。操作系統(tǒng)在連續(xù)讀取磁盤中地址偏移連續(xù)的數(shù)據(jù)時(shí),磁頭連續(xù)移動(dòng),讀取效率較高,此時(shí),不便打斷操作系統(tǒng)的讀取,而一旦檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),則可以停止操作系統(tǒng)的讀取,恢復(fù)預(yù)讀取線程對(duì)于磁盤的讀取。[0066]可選地,根據(jù)本發(fā)明的又一個(gè)實(shí)施例,利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還可以包括:在檢測(cè)到操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),直到檢測(cè)到磁盤自檢結(jié)束,然后恢復(fù)所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。如果在操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),所述預(yù)讀取線程仍讀取預(yù)讀取數(shù)據(jù),則可能會(huì)導(dǎo)致磁盤自檢異常,因此此時(shí)需要暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。
[0067]可選地,根據(jù)本發(fā)明的又一個(gè)實(shí)施例,利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還可以包括:在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在檢測(cè)到操作系統(tǒng)要從磁盤中讀取的數(shù)據(jù)中的部分包括在所述預(yù)讀取數(shù)據(jù)中的情況下,將讀取的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀??;并且在預(yù)先設(shè)置的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到其它部分的數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述其它部分的數(shù)據(jù),并將所述其它部分的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。具體來說,操作系統(tǒng)要從磁盤讀取的數(shù)據(jù)可能會(huì)存在部分已經(jīng)包括預(yù)讀取數(shù)據(jù)中、而其它部分未包括在其中的情況,此時(shí),可以將該部分?jǐn)?shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取,而在預(yù)先設(shè)置的時(shí)間段(例如如上所述的30毫秒)后,在操作系統(tǒng)未從磁盤中獲取到其它部分的數(shù)據(jù)的情況下,就可以利用預(yù)讀取線程讀取所述其它部分的數(shù)據(jù),并將所述其它部分的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。由此,完成了一個(gè)數(shù)據(jù)讀取請(qǐng)求切割的過程。
[0068]在本發(fā)明的實(shí)施例中還提供了一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的裝置。圖3是根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的裝置300的結(jié)構(gòu)示意圖之一。
[0069]如圖3所示,該操作系統(tǒng)啟動(dòng)加速的裝置300包括:讀取模塊310、緩存模塊330和啟動(dòng)加載模塊350,其中讀取模塊310用于響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;所述預(yù)讀取線程和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀取數(shù)據(jù),其中預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù);緩存模塊330用于將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及啟動(dòng)加載模塊350用于響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0070]如圖4所示,為本發(fā)明的實(shí)施例的操作系統(tǒng)啟動(dòng)加速的裝置300的結(jié)構(gòu)示意圖之二,其中讀取模塊310包括:線程創(chuàng)建單元3110和讀取單元3130,其中線程創(chuàng)建單元3110用于響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;讀取單元3130用于與計(jì)算機(jī)的操作系統(tǒng)并發(fā)地讀取數(shù)據(jù),該讀取單元3130利用預(yù)讀取線程開始從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù)。
[0071]可選地,在本發(fā)明的實(shí)施例中,所述讀取模塊310在操作系統(tǒng)啟動(dòng)過程中,利用所述預(yù)讀取線程繼續(xù)讀取所述預(yù)讀取數(shù)據(jù),并且接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段內(nèi)暫停所述預(yù)讀取線程的讀取,并響應(yīng)所述操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求。
[0072]可選地,在本發(fā)明的實(shí)施例中,所述裝置300還包括:預(yù)讀取數(shù)據(jù)生成模塊,用于預(yù)讀取數(shù)據(jù)預(yù)先記錄操作系統(tǒng)啟動(dòng)的信息,并且基于所述信息以及用于之前一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),并且按照系統(tǒng)啟動(dòng)時(shí)讀取的優(yōu)先級(jí)對(duì)所述預(yù)先定義的預(yù)讀取數(shù)據(jù)中的數(shù)據(jù)進(jìn)行排序,其中數(shù)據(jù)的優(yōu)先級(jí)越高,該數(shù)據(jù)越早被預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取出來。[0073]可選地,在本發(fā)明的實(shí)施例中,所述裝置300還包括:磁盤碎片整理檢測(cè)模塊,用于記錄計(jì)算機(jī)的磁盤進(jìn)行磁盤碎片整理時(shí)磁盤中數(shù)據(jù)的移動(dòng)信息;根據(jù)所述磁盤中數(shù)據(jù)的移動(dòng)信息和所述預(yù)先定義的預(yù)讀取數(shù)據(jù)重新生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。。
[0074]可選地,在本發(fā)明的實(shí)施例中,其中所述操作系統(tǒng)啟動(dòng)的信息包括操作系統(tǒng)啟動(dòng)所花費(fèi)的時(shí)間、操作系統(tǒng)從內(nèi)存中讀取所緩存的預(yù)讀取數(shù)據(jù)的描述信息。
[0075]可選地,在本發(fā)明的實(shí)施例中,其中所述讀取單元3130進(jìn)一步用于在小于或等于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及
[0076]在大于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
[0077]可選地,在本發(fā)明的實(shí)施例中,其中所述讀取單元3130在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到所述數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0078]可選地,在本發(fā)明的實(shí)施例中,其中所述讀取單元3130在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在檢測(cè)到操作系統(tǒng)仍在讀取地址偏移連續(xù)的數(shù)據(jù)的情況下,保持暫停所述預(yù)讀取線程的讀取,直到檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),然后恢復(fù)所述預(yù)讀取線程的讀取。
[0079]可選地,在本發(fā)明的實(shí)施例中,其中所述讀取單元3130在檢測(cè)到操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),直到檢測(cè)到磁盤自檢結(jié)束,然后恢復(fù)所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。
[0080]可選地,在本發(fā)明的實(shí)施例中,其中所述讀取單元3130在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在檢測(cè)到操作系統(tǒng)要從磁盤中讀取的數(shù)據(jù)中的部分包括在所述預(yù)讀取數(shù)據(jù)中的情況下,將讀取的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀??;并且在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到其它部分的數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述其它部分的數(shù)據(jù),并將所述其它部分的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0081]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0082]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
[0083]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0084]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的替代特征來代替。
[0085]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0086]本發(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 )來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的裝置中的一些或者全部部件的一些或者全部功能。本發(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)上提供,或者以任何其他形式提供。
[0087]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(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ī)來實(shí)現(xiàn)。在列舉了若干設(shè)備的單元權(quán)利要求中,這些設(shè)備中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0088]本發(fā)明還公開了 Al、一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法,包括:
[0089]響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;
[0090]所述預(yù)讀取線程和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀取數(shù)據(jù),其中預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù);
[0091]將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及
[0092]響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù),以完成計(jì)算機(jī)操作系統(tǒng)的啟動(dòng)。
[0093]A2.根據(jù)Al所述的方法,其中,在操作系統(tǒng)啟動(dòng)過程中,利用所述預(yù)讀取線程繼續(xù)讀取所述預(yù)讀取數(shù)據(jù),并且接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段內(nèi)暫停所述預(yù)讀取線程的讀取,并響應(yīng)所述操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求。[0094]A3.根據(jù)A2所述的方法,所述方法還包括:
[0095]預(yù)先記錄操作系統(tǒng)啟動(dòng)的信息,并且基于所述信息以及用于之前一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),并且按照系統(tǒng)啟動(dòng)時(shí)讀取的優(yōu)先級(jí)對(duì)所述預(yù)先定義的預(yù)讀取數(shù)據(jù)中的數(shù)據(jù)進(jìn)行排序,其中數(shù)據(jù)的讀取的優(yōu)先級(jí)越高,所述數(shù)據(jù)越早被預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取出來。
[0096]A4.根據(jù)A3所述的方法,所述方法還包括:
[0097]記錄計(jì)算機(jī)的磁盤進(jìn)行磁盤碎片整理時(shí)磁盤中數(shù)據(jù)的移動(dòng)信息;
[0098]根據(jù)所述磁盤中數(shù)據(jù)的移動(dòng)信息和之前的所述預(yù)先定義的預(yù)讀取數(shù)據(jù)重新生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0099]A5.根據(jù)A3所述的方法,其中所述操作系統(tǒng)啟動(dòng)的信息包括操作系統(tǒng)啟動(dòng)所花費(fèi)的時(shí)間、操作系統(tǒng)從內(nèi)存中讀取所緩存的預(yù)讀取數(shù)據(jù)的描述信息。
[0100]A6.根據(jù)A2至A5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟包括:
[0101]在小于或等于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及
[0102]在大于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
[0103]A7.根據(jù)A2至A5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:
[0104]在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到所述數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0105]AS.根據(jù)A2至A5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:
[0106]在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在檢測(cè)到操作系統(tǒng)仍在讀取地址偏移連續(xù)的數(shù)據(jù)的情況下,保持暫停所述預(yù)讀取線程的讀取,直到檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),然后恢復(fù)所述預(yù)讀取線程的讀取。
[0107]A9.根據(jù)A2至A5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:
[0108]在檢測(cè)到操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),直到檢測(cè)到磁盤自檢結(jié)束,然后恢復(fù)所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。
[0109]A10.根據(jù)A2至A5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括:
[0110]在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在檢測(cè)到操作系統(tǒng)要從磁盤中讀取的數(shù)據(jù)中的部分包括在所述預(yù)讀取數(shù)據(jù)中的情況下,將讀取的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀?。徊⑶以陬A(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到其它部分的數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述其它部分的數(shù)據(jù),并將所述其它部分的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。[0111]Bll.一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的裝置,包括:
[0112]讀取模塊,用于響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;所述預(yù)讀取線程和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀取數(shù)據(jù),其中預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù);
[0113]緩存模塊,用于將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及
[0114]啟動(dòng)加載模塊,用于響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0115]B12.根據(jù)Bll所述的裝置,其中,所述讀取模塊包括:
[0116]線程創(chuàng)建單元,用于響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;
[0117]讀取單元,用于與計(jì)算機(jī)的操作系統(tǒng)并發(fā)地讀取數(shù)據(jù),其中所述讀取單元利用預(yù)讀取線程開始從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù)。
[0118]B13.根據(jù)B12所述的裝置,其中,所述讀取模塊在操作系統(tǒng)啟動(dòng)過程中,利用所述預(yù)讀取線程繼續(xù)讀取所述預(yù)讀取數(shù)據(jù),并且接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段內(nèi)暫停所述預(yù)讀取線程的讀取,并響應(yīng)所述操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求。
[0119]B14.根據(jù)B12所述的裝置,所述裝置還包括:
[0120]預(yù)讀取數(shù)據(jù)生成模塊,用于預(yù)讀取數(shù)據(jù)預(yù)先記錄操作系統(tǒng)啟動(dòng)的信息,并且基于所述信息以及用于之前一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),并且按照系統(tǒng)啟動(dòng)時(shí)讀取的優(yōu)先級(jí)對(duì)所述預(yù)先定義的預(yù)讀取數(shù)據(jù)中的數(shù)據(jù)進(jìn)行排序,其中數(shù)據(jù)的優(yōu)先級(jí)越高,該數(shù)據(jù)越早被預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取出來。
[0121]B15.根據(jù)B13所述的裝置,所述裝置還包括:
[0122]磁盤碎片整理檢測(cè)模塊,用于記錄計(jì)算機(jī)的磁盤進(jìn)行磁盤碎片整理時(shí)磁盤中數(shù)據(jù)的移動(dòng)信息;根據(jù)所述磁盤中數(shù)據(jù)的移動(dòng)信息和所述預(yù)先定義的預(yù)讀取數(shù)據(jù)重新生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
[0123]B16.根據(jù)B14所述的裝置,其中所述操作系統(tǒng)啟動(dòng)的信息包括操作系統(tǒng)啟動(dòng)所花費(fèi)的時(shí)間、操作系統(tǒng)從內(nèi)存中讀取所緩存的預(yù)讀取數(shù)據(jù)的描述信息。
[0124]B17.根據(jù)Bll至B16中的任一項(xiàng)所述的裝置,其中所述讀取單元進(jìn)一步用于在小于或等于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及
[0125]在大于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
[0126]B18.根據(jù)Bll至B16中的任一項(xiàng)所述的裝置,其中所述讀取單元在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到所述數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
[0127]B19.根據(jù)Bll至B16中的任一項(xiàng)所述的裝置,其中所述讀取單元在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在檢測(cè)到操作系統(tǒng)仍在讀取地址偏移連續(xù)的數(shù)據(jù)的情況下,保持暫停所述預(yù)讀取線程的讀取,直到檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),然后恢復(fù)所述預(yù)讀取線程的讀取。
[0128]B20.根據(jù)Bll至B16中的任一項(xiàng)所述的裝置,其中所述讀取單元在檢測(cè)到操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),直到檢測(cè)到磁盤自檢結(jié)束,然后恢復(fù)所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。
[0129]B21.根據(jù)Bll至B16中的任一項(xiàng)所述的裝置,其中所述讀取單元在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在檢測(cè)到操作系統(tǒng)要從磁盤中讀取的數(shù)據(jù)中的部分包括在所述預(yù)讀取數(shù)據(jù)中的情況下,將讀取的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀??;并且在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到其它部分的數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述其它部分的數(shù)據(jù),并將所述其它部分的數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
【權(quán)利要求】
1.一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的方法,包括: 響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程; 所述預(yù)讀取線程和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀取數(shù)據(jù),其中預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù); 將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及 響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù),以完成計(jì)算機(jī)操作系統(tǒng)的啟動(dòng)。
2.根據(jù)權(quán)利要求1所述的方法,其中,在操作系統(tǒng)啟動(dòng)過程中,利用所述預(yù)讀取線程繼續(xù)讀取所述預(yù)讀取數(shù)據(jù),并且接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段內(nèi)暫停所述預(yù)讀取線程的讀取,并響應(yīng)所述操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求。
3.根據(jù)權(quán)利要求2所述的方法,所述方法還包括: 預(yù)先記錄操作系統(tǒng)啟動(dòng)的信息,并且基于所述信息以及用于之前一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù),并且按照系統(tǒng)啟動(dòng)時(shí)讀取的優(yōu)先級(jí)對(duì)所述預(yù)先定義的預(yù)讀取數(shù)據(jù)中的數(shù)據(jù)進(jìn)行排序,其中數(shù)據(jù)的讀取的優(yōu)先級(jí)越高,所述數(shù)據(jù)越早被預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取出來。
4.根據(jù)權(quán)利要求3所述的方法,所述方法還包括: 記錄計(jì)算機(jī)的磁盤進(jìn)行磁盤碎片整理時(shí)磁盤中數(shù)據(jù)的移動(dòng)信息; 根據(jù)所述磁盤中數(shù)據(jù)的移動(dòng)信息和之前的所述預(yù)先定義的預(yù)讀取數(shù)據(jù)重新生成用于之后一次或多次操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
5.根據(jù)權(quán)利要求3所述的方法,其中所述操作系統(tǒng)啟動(dòng)的信息包括操作系統(tǒng)啟動(dòng)所花費(fèi)的時(shí)間、操作系統(tǒng)從內(nèi)存中讀取所緩存的預(yù)讀取數(shù)據(jù)的描述信息。
6.根據(jù)權(quán)利要求2至5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟包括: 在小于或等于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照磁盤排序和磁盤偏移同時(shí)讀取至少兩個(gè)文件;以及 在大于預(yù)先定義的讀取時(shí)間間隔的情況下,利用至少兩個(gè)讀取請(qǐng)求按照操作系統(tǒng)啟動(dòng)時(shí)處理文件的時(shí)間順序先后讀取至少兩個(gè)文件。
7.根據(jù)權(quán)利要求2至5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括: 在接收到操作系統(tǒng)從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在操作系統(tǒng)未從磁盤中獲取到所述數(shù)據(jù)的情況下,利用預(yù)讀取線程讀取所述數(shù)據(jù),并將所述數(shù)據(jù)緩存到內(nèi)存中以供操作系統(tǒng)讀取。
8.根據(jù)權(quán)利要求2至5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括: 在接收到操作系統(tǒng) 從磁盤中讀取數(shù)據(jù)的請(qǐng)求時(shí),在預(yù)先定義的時(shí)間段后,在檢測(cè)到操作系統(tǒng)仍在讀取地址偏移連續(xù)的數(shù)據(jù)的情況下,保持暫停所述預(yù)讀取線程的讀取,直到檢測(cè)到操作系統(tǒng)讀取地址偏移不連續(xù)的數(shù)據(jù),然后恢復(fù)所述預(yù)讀取線程的讀取。
9.根據(jù)權(quán)利要求2至5中的任一項(xiàng)所述的方法,其中利用預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)的步驟還包括: 在檢測(cè)到操作系統(tǒng)對(duì)磁盤進(jìn)行自檢時(shí),暫停所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù),直到檢測(cè)到磁盤自檢結(jié)束,然后恢復(fù)所述預(yù)讀取線程讀取所述預(yù)讀取數(shù)據(jù)。
10.一種計(jì)算機(jī)操作系統(tǒng)啟動(dòng)加速的裝置,包括: 讀取模塊,用于響應(yīng)于啟動(dòng)計(jì)算機(jī)的操作系統(tǒng)的引導(dǎo)程序的請(qǐng)求,創(chuàng)建預(yù)讀取線程;所述預(yù)讀取線程和計(jì)算機(jī)的操作系統(tǒng)并發(fā)地去讀取數(shù)據(jù),其中預(yù)讀取線程從計(jì)算機(jī)的磁盤中讀取用于操作系統(tǒng)啟動(dòng)的預(yù)先定義的預(yù)讀取數(shù)據(jù); 緩存模塊,用于將讀取的預(yù)讀取數(shù)據(jù)緩存到計(jì)算機(jī)的內(nèi)存中;以及啟動(dòng)加載模塊,用 于響應(yīng)于加載計(jì)算機(jī)的操作系統(tǒng)的預(yù)讀取數(shù)據(jù)的請(qǐng)求,從計(jì)算機(jī)的內(nèi)存中讀取并加載預(yù)先設(shè)置的用于操作系統(tǒng)啟動(dòng)的預(yù)讀取數(shù)據(jù)。
【文檔編號(hào)】G06F9/445GK103810009SQ201410058571
【公開日】2014年5月21日 申請(qǐng)日期:2014年2月20日 優(yōu)先權(quán)日:2014年2月20日
【發(fā)明者】李常坤, 湯迪斌 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
张家港市| 桐庐县| 斗六市| 巨鹿县| 三穗县| 长宁区| 彝良县| 库车县| 油尖旺区| 神池县| 县级市| 日土县| 澄迈县| 六枝特区| 公安县| 长垣县| 楚雄市| 洛扎县| 太保市| 鹰潭市| 隆尧县| 思南县| 平度市| 江孜县| 崇左市| 阿勒泰市| 美姑县| 仙桃市| 广东省| 梅州市| 柳河县| 嘉义市| 恭城| 芦山县| 斗六市| 浑源县| 隆子县| 阜城县| 临颍县| 托里县| 道真|