1.一種用于進程間資源共享的方法,其中,該方法包括:
第一進程創(chuàng)建或打開與共享內(nèi)存對應(yīng)的文件映射內(nèi)核對象,以通過所述文件映射內(nèi)核對象訪問所述共享內(nèi)存;
所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài);
當所述共享內(nèi)存的訪問狀態(tài)為可訪問時,所述第一進程訪問所述共享內(nèi)存,以向所述共享內(nèi)存寫入數(shù)據(jù)或者從所述共享內(nèi)存讀取其它共享進程寫入的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,第一進程創(chuàng)建或打開與共享內(nèi)存對應(yīng)的文件映射內(nèi)核對象,包括:
當不存在其他共享進程創(chuàng)建的所述文件映射內(nèi)核對象,所述第一進程創(chuàng)建所述文件映射內(nèi)核對象,以使其他共享進程打開所述文件映射內(nèi)核對象;
或者當存在其他共享進程創(chuàng)建所述文件映射內(nèi)核對象,所述第一進程打開所述文件映射內(nèi)核對象。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述可訪問包括可寫和可讀,其中,所述當所述共享內(nèi)存的訪問狀態(tài)為可訪問時,所述第一進程訪問所述共享內(nèi)存包括:
當所述共享內(nèi)存的訪問狀態(tài)為可寫時,所述第一進程向所述共享內(nèi)存寫入數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)包括:
當所有共享進程對應(yīng)的同步控制標記都為可寫值時,確定所述共享內(nèi)存的訪問狀態(tài)為可寫,
所述第一進程向所述共享內(nèi)存寫入數(shù)據(jù)之后,還包括:
將所述第一進程對應(yīng)的同步控制標記設(shè)為可讀值,以使其他共享進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)為可讀。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述可訪問包括可寫和可讀,其中,所述當所述共享內(nèi)存的訪問狀態(tài)為可訪問時,所述第一進程訪問所述共享內(nèi)存包括:
當所述共享內(nèi)存的訪問狀態(tài)為可讀時,所述第一進程從所述共享內(nèi)存讀取由第二共享進程寫入的數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)包括:
當存在任一其他共享進程對應(yīng)的同步控制標記為可讀值,確定所述共享內(nèi)存的訪問狀態(tài)為可讀;
所述第一進程從所述共享內(nèi)存讀取數(shù)據(jù)之后,還包括:
修改所述第二共享進程對應(yīng)的同步控制標記,其中,當除第二共享進程之外的所有共享進程從所述共享內(nèi)存讀取數(shù)據(jù)之后,所述同步控制標記被修改為可寫值。
7.根據(jù)權(quán)利要求1所述的方法,其中,該方法還包括:
所述第一進程獲取提示標記的狀態(tài);
所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)包括:
當提示標記處于觸發(fā)狀態(tài),所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述提示標記在觸發(fā)所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)之后,還原為未觸發(fā)狀態(tài);
以及所述第一進程訪問所述共享內(nèi)存之后,還包括:
所述第一進程將所述提示標記設(shè)置為觸發(fā)狀態(tài)。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述當所述共享內(nèi)存的訪問狀態(tài)為可訪問時,所述第一進程訪問所述共享內(nèi)存包括:
當存在任一其它共享進程對應(yīng)的同步控制標記為非零時,所述第一進程從所述共享內(nèi)存讀取由第二共享進程寫入的數(shù)據(jù),并將所述第二共享進程對應(yīng)的同步控制標記的值減一,同時將提示標記設(shè)置為觸發(fā)狀態(tài);
當所有共享進程對應(yīng)的同步控制標記為零時,所述第一進程向所述共享內(nèi)存寫入數(shù)據(jù),并所述第一進程對應(yīng)的同步控制標記設(shè)為預(yù)設(shè)值,同時將所述提示標記設(shè)置為觸發(fā)狀態(tài),其中,所述預(yù)設(shè)值為所有共享進程的數(shù)量減一。
10.根據(jù)權(quán)利要求7至9中任一項所述的方法,其中,所述提示標記包括事件內(nèi)核對象或者信號量。
11.一種用于進程間資源共享的設(shè)備,其中,該設(shè)備包括:
第一裝置,用于控制第一進程創(chuàng)建或打開與共享內(nèi)存對應(yīng)的文件映射內(nèi)核對象,以通過所述文件映射內(nèi)核對象訪問所述共享內(nèi)存;
第二裝置,用于控制所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài);
第三裝置,用于當所述共享內(nèi)存的訪問狀態(tài)為可訪問時,控制所述第一進程訪問所述共享內(nèi)存,以向所述共享內(nèi)存寫入數(shù)據(jù)或者從所述共享內(nèi)存讀取其它共享進程寫入的數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述第一裝置用于:
當不存在其他共享進程創(chuàng)建的所述文件映射內(nèi)核對象,控制所述第一進程創(chuàng)建所述文件映射內(nèi)核對象,以使其他共享進程打開所述文件映射內(nèi)核對象;
或者當存在其他共享進程創(chuàng)建所述文件映射內(nèi)核對象,控制所述第一進程打開所述文件映射內(nèi)核對象。
13.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述可訪問包括可寫和可讀,其中,所述第三裝置用于:
當所述共享內(nèi)存的訪問狀態(tài)為可寫時,控制所述第一進程向所述共享內(nèi)存寫入數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的設(shè)備,其中,所述第二裝置用于:
當所有共享進程對應(yīng)的同步控制標記都為可寫值時,確定所述共享內(nèi)存的訪問狀態(tài)為可寫,
所述第三裝置控制所述第一進程向所述共享內(nèi)存寫入數(shù)據(jù)之后還用于:
將所述第一進程對應(yīng)的同步控制標記設(shè)為可讀值,以使其他共享進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)為可讀。
15.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述可訪問包括可寫和可讀,其中,所述第三裝置用于:
當所述共享內(nèi)存的訪問狀態(tài)為可讀時,所述第一進程從所述共享內(nèi)存讀取由第二共享進程寫入的數(shù)據(jù)。
16.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述第二裝置用于:
當存在任一其他共享進程對應(yīng)的同步控制標記為可讀值,確定所述共享內(nèi)存的訪問狀態(tài)為可讀;
所述第三裝置控制所述第一進程從所述共享內(nèi)存讀取數(shù)據(jù)之后還用于:
修改所述第二共享進程對應(yīng)的同步控制標記,其中,當除第二共享進程之外的所有共享進程從所述共享內(nèi)存讀取數(shù)據(jù)之后,所述同步控制標記被修改為可寫值。
17.根據(jù)權(quán)利要求11所述的設(shè)備,其中,該設(shè)備還包括:
第四裝置,用于控制所述第一進程獲取提示標記的狀態(tài);
所述第二裝置用于:
當提示標記處于觸發(fā)狀態(tài),控制所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中,所述提示標記在觸發(fā)所述第一進程根據(jù)所有共享進程對應(yīng)的同步控制標記確定所述共享內(nèi)存的訪問狀態(tài)之后,還原為未觸發(fā)狀態(tài);
以及所述第一進程訪問所述共享內(nèi)存之后,還包括:
第五裝置,用于控制所述第一進程將所述提示標記設(shè)置為觸發(fā)狀態(tài)。
19.根據(jù)權(quán)利要求18所述的設(shè)備,其中,所述第三裝置用于:
當存在任一其它共享進程對應(yīng)的同步控制標記為非零時,所述第一進程從所述共享內(nèi)存讀取由第二共享進程寫入的數(shù)據(jù),并將所述第二共享進程對應(yīng)的同步控制標記的值減一,同時將提示標記設(shè)置為觸發(fā)狀態(tài);
當所有共享進程對應(yīng)的同步控制標記為零時,所述第一進程向所述共享內(nèi)存寫入數(shù)據(jù),并所述第一進程對應(yīng)的同步控制標記設(shè)為預(yù)設(shè)值,同時將所述提示標記設(shè)置為觸發(fā)狀態(tài),其中,所述預(yù)設(shè)值為所有共享進程的數(shù)量減一。
20.根據(jù)權(quán)利要求17至19中任一項所述的設(shè)備,其中,所述提示標記包括事件內(nèi)核對象或者信號量。