1.一種數(shù)據(jù)處理系統(tǒng)中實(shí)施的方法,其特征在于,包括:
從處理線程接收輸入/輸出(input/output,簡(jiǎn)稱IO)寫入請(qǐng)求,以將數(shù)據(jù)從所述數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器傳送至IO設(shè)備;
將所述存儲(chǔ)器設(shè)置為只讀存儲(chǔ)器,以保護(hù)所述數(shù)據(jù)在所述數(shù)據(jù)被傳送至所述IO設(shè)備之前免于覆蓋;
為響應(yīng)所述IO寫入請(qǐng)求,將推測(cè)IO寫入完成響應(yīng)發(fā)送至所述處理線程,以使得所述處理線程能夠繼續(xù)執(zhí)行,而不用等待所述將數(shù)據(jù)被傳送至所述IO設(shè)備。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
將所述數(shù)據(jù)從所述存儲(chǔ)器傳送至所述IO設(shè)備;
在將所述數(shù)據(jù)從所述存儲(chǔ)器傳送至所述IO設(shè)備之后,將所述存儲(chǔ)器從所述只讀存儲(chǔ)器恢復(fù)為可讀寫存儲(chǔ)器。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:
接收IO讀取請(qǐng)求,以在所述數(shù)據(jù)被傳送至所述IO設(shè)備之前從所述IO設(shè)備讀取所述數(shù)據(jù);
重定向所述IO讀取請(qǐng)求,以從所述IO設(shè)備讀取所述數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:
接收信號(hào),其中所述信號(hào)表示所述處理線程嘗試在所述數(shù)據(jù)被傳送至所述IO設(shè)備之前寫入至所述存儲(chǔ)器;
為響應(yīng)所述信號(hào),指示所述處理線程進(jìn)入等待狀態(tài);
在所述數(shù)據(jù)被傳送至所述IO設(shè)備之后,指示所述處理線程繼續(xù)寫入所述存儲(chǔ)器。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括:
為異常處理程序用配置所述數(shù)據(jù)的存儲(chǔ)器地址范圍,以使得所述異常處理程序?qū)懭雵L試捕獲至所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍;
將所述異常處理程序動(dòng)態(tài)鏈接至所述處理線程;
在將所述數(shù)據(jù)從所述存儲(chǔ)器傳送至所述IO設(shè)備之后,將所述異常處理程序從所述處理線程處斷開鏈接,
其中所述信號(hào)接收自所述異常處理程序。
6.根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的方法,其特征在于,還包括:
將數(shù)據(jù)從所述IO設(shè)備拷貝至內(nèi)部緩沖區(qū);
在將所述數(shù)據(jù)從所述存儲(chǔ)器傳送至所述內(nèi)部緩沖區(qū)之后,將所述存儲(chǔ)器從所述只讀存儲(chǔ)器恢復(fù)為可讀寫存儲(chǔ)器;
將所述數(shù)據(jù)從所述內(nèi)部緩沖區(qū)傳送至所述IO設(shè)備。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在所述數(shù)據(jù)從所述存儲(chǔ)器拷貝至所述內(nèi)部緩沖區(qū)時(shí),所述數(shù)據(jù)的至少一部分從所述存儲(chǔ)器被傳送至所述IO設(shè)備。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括:
接收IO讀取請(qǐng)求,以在所述數(shù)據(jù)被傳送至所述IO設(shè)備之前從所述IO設(shè)備讀取所述數(shù)據(jù);
重定向所述IO讀取請(qǐng)求,以從述內(nèi)部緩沖區(qū)讀取所述數(shù)據(jù)。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括:
接收信號(hào),其中所述信號(hào)表示所述處理線程嘗試在所述數(shù)據(jù)被拷貝至所述內(nèi)部緩沖區(qū)之前寫入至所述存儲(chǔ)器;
為響應(yīng)所述信號(hào),指示所述處理線程進(jìn)入等待狀態(tài);
在所述數(shù)據(jù)被拷貝至所述內(nèi)部緩沖區(qū)之后,指示所述處理線程繼續(xù)寫入所述存儲(chǔ)器。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,還包括:
為異常處理程序配置所述數(shù)據(jù)的存儲(chǔ)器地址范圍,以使得所述異常處理程序?qū)懭雵L試捕獲至所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍;
將所述異常處理程序動(dòng)態(tài)鏈接至所述處理線程;
在將所述數(shù)據(jù)從所述存儲(chǔ)器傳送至所述內(nèi)部緩沖區(qū)之后,將所述異常處理程序從所述處理線程處斷開鏈接,
其中所述信號(hào)接收自所述異常處理程序。
11.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括針對(duì)文件處理程序的計(jì)算機(jī)可執(zhí)行指令,其中所述計(jì)算機(jī)可執(zhí)行指令存儲(chǔ)在非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)中,以便當(dāng)被計(jì)算設(shè)備執(zhí)行時(shí),所述指令使所述文件處理程序:
從包括輸入/輸出(input/output,簡(jiǎn)稱IO)寫入請(qǐng)求的處理線程處接收第一消息,以將數(shù)據(jù)從所述計(jì)算設(shè)備的存儲(chǔ)器傳送至IO設(shè)備;
配置異常處理程序,以保護(hù)所述數(shù)據(jù)在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之前免于覆蓋;
將包括推測(cè)IO寫入完成響應(yīng)的第二消息發(fā)送至所述處理線程而不用等待所述數(shù)據(jù)被完全傳送至所述IO設(shè)備,其中所述推測(cè)IO寫入完成響應(yīng)使得所述處理線程繼續(xù)執(zhí)行。
12.根據(jù)權(quán)利要求11的所述計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述指令還使得所述文件處理程序能夠:
設(shè)置只讀標(biāo)志至,以指示所述存儲(chǔ)器是只讀的;
將所述數(shù)據(jù)從所述存儲(chǔ)器傳送至所述IO設(shè)備;
在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之后清除所述只讀標(biāo)志,以指示所述存儲(chǔ)器是可讀取可寫入的。
13.根據(jù)權(quán)利要求11到12中任意一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述指令還使得所述文件處理程序能夠:
接收包括請(qǐng)求的第三消息,以從所述IO設(shè)備讀取所述數(shù)據(jù),其中所述第三消息在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之前被接收;
為響應(yīng)所述第三消息,直接從所述存儲(chǔ)器拷貝所述數(shù)據(jù)。
14.根據(jù)權(quán)利要求11至13中任意一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,配置所述異常處理程序包括:
為異常處理程序配置所述數(shù)據(jù)的存儲(chǔ)器地址范圍;
將所述異常處理程序動(dòng)態(tài)鏈接至所述處理線程,
其中所述指令還能夠使得所述文件處理程序在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之后將所述異常處理程序從所述處理線程處斷開鏈接。
15.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述存儲(chǔ)器對(duì)應(yīng)存儲(chǔ)頁(yè),所述數(shù)據(jù)被存儲(chǔ)在所述存儲(chǔ)頁(yè)的一部分,所述指令還使得所述文件處理程序設(shè)置只讀標(biāo)志,以指示所述存儲(chǔ)頁(yè)是針對(duì)只讀存取的,其中,所述文件處理程序配置所述異常處理程序以:
在所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍外面的存儲(chǔ)器位置檢測(cè)針對(duì)所述存儲(chǔ)頁(yè)的寫入嘗試;
清除所述只讀標(biāo)志,以使得所述文件處理程序來寫入到所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍外面的所述存儲(chǔ)器位置;
確定所述存儲(chǔ)器位置是更新的;
設(shè)置所述只讀標(biāo)志,以在所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍外面的所述存儲(chǔ)器位置被更新之后指示所述存儲(chǔ)頁(yè)是針對(duì)只讀存取的。
16.根據(jù)權(quán)利要求14的所述計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述文件處理程序配置所述異常處理程序以:
檢測(cè)針對(duì)所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍中的所述存儲(chǔ)器的通過所述處理線程的寫入嘗試;
發(fā)送第三消息至所述文件處理程序,以指示通過所述處理線程的所述寫入嘗試。
17.根據(jù)權(quán)利要求16的所述計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述指令還導(dǎo)致所述文件處理程序以:
從所述異常處理程序處接收所述第三消息,以指示針對(duì)所述存儲(chǔ)器的通過所述處理線程的所述寫入嘗試;
發(fā)送第四消息至所述處理線程,以指示所述處理線程在繼續(xù)寫入所述存儲(chǔ)器之前一直等到所述數(shù)據(jù)被完全傳送至所述IO設(shè)備。
18.一種裝置,其特征在于,包括:
用于與IO設(shè)備進(jìn)行通信的輸入/輸出(input/output,簡(jiǎn)稱IO)接口端口;
耦合至所述IO接口端口的存儲(chǔ)器;
耦合至所述存儲(chǔ)器和所述IO接口端口的處理器,其中所述處理器用于:
從處理線程處接收第一消息,其中所述第一消息包括IO寫入請(qǐng)求,以將數(shù)據(jù)從所述存儲(chǔ)器傳送至所述IO設(shè)備;
為響應(yīng)所述IO寫入請(qǐng)求,將包括推測(cè)寫入完成響應(yīng)的第二消息發(fā)送至所述處理線程,以使得所述處理線程在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之前繼續(xù)執(zhí)行;
接收包括IO讀取請(qǐng)求的第三消息,以從所述IO設(shè)備讀取所述數(shù)據(jù),其中所述第三消息在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之前被接收;
為響應(yīng)所述IO讀取請(qǐng)求,直接從所述存儲(chǔ)器讀取所述數(shù)據(jù)。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述處理器還用于通過下面的方法在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之前保護(hù)所述存儲(chǔ)器免于存儲(chǔ)器覆蓋:
設(shè)置所述存儲(chǔ)器為可只讀的存儲(chǔ)器;
為異常處理程序配置所述數(shù)據(jù)的存儲(chǔ)器地址范圍,以使得所述異常處理程序?qū)懭雵L試捕獲至所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍;
將所述異常處理程序動(dòng)態(tài)鏈接至所述處理線程;
將所述數(shù)據(jù)從所述存儲(chǔ)器傳送至所述IO設(shè)備;
在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之后,將所述存儲(chǔ)器從所述可只讀的存儲(chǔ)器恢復(fù)為可讀寫存儲(chǔ)器;
在所述數(shù)據(jù)被完全傳送至所述IO設(shè)備之后,將所述異常處理程序從所述處理線程處斷開鏈接。
20.根據(jù)權(quán)利要求19所述的裝置,其特征在于,所述處理器還用于:
從所述異常處理程序接收第四消息,其中所述第四消息指示針對(duì)所述數(shù)據(jù)的所述存儲(chǔ)器地址范圍的所述寫入嘗試;
為響應(yīng)所述第四消息,將第五消息發(fā)送至所述處理線程,以指示所述處理線程進(jìn)入線程等待狀態(tài)來一直等到所述數(shù)據(jù)被完全傳送至所述IO設(shè)備。