本申請(qǐng)?zhí)峁┝艘环N共享內(nèi)存的訪問(wèn)控制方法、裝置及系統(tǒng),這三個(gè)技術(shù)方案的技術(shù)思想一致,其中,系統(tǒng)包括:狀態(tài)感知模塊、消息發(fā)布模塊、以及內(nèi)核模塊;其中,所述狀態(tài)感知模塊,用于實(shí)時(shí)感知用戶態(tài)進(jìn)程的狀態(tài),并將所述狀態(tài)發(fā)送至所述消息發(fā)布模塊;所述消息發(fā)布模塊,用于向所述內(nèi)核模塊發(fā)布所述用戶態(tài)進(jìn)程的狀態(tài);所述內(nèi)核模塊,用于在所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài)時(shí),控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存,并當(dāng)所述進(jìn)程結(jié)束訪問(wèn)時(shí),再觸發(fā)所述用戶態(tài)進(jìn)程完成退出。本申請(qǐng)?zhí)峁┑募夹g(shù)方案能夠防止內(nèi)核模塊訪問(wèn)錯(cuò)誤數(shù)據(jù),以有效避免由于錯(cuò)誤數(shù)據(jù)導(dǎo)致了操作系統(tǒng)內(nèi)核產(chǎn)生無(wú)法恢復(fù)的異常問(wèn)題。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及計(jì)算機(jī)
,特別涉及內(nèi)核態(tài)安全訪問(wèn)用戶態(tài)共享內(nèi)存的控制方法、裝置及系統(tǒng)。
技術(shù)介紹
在Linux系統(tǒng)中,用戶態(tài)進(jìn)程與操作系統(tǒng)內(nèi)核通過(guò)共享內(nèi)存進(jìn)行通信,用戶態(tài)進(jìn)程和操作系統(tǒng)內(nèi)核能夠訪問(wèn)同一塊內(nèi)存,以實(shí)現(xiàn)數(shù)據(jù)通信。在實(shí)際應(yīng)用場(chǎng)景中,用戶態(tài)進(jìn)程由于某些原因?qū)е逻M(jìn)程崩潰,需要自動(dòng)重啟。而在用戶態(tài)進(jìn)程發(fā)生崩潰到完成重啟這一段時(shí)間內(nèi),用戶態(tài)進(jìn)程異常退出,其占用的共享內(nèi)存就會(huì)被回收,再被重新分配給其他的進(jìn)程使用,而訪問(wèn)該用戶態(tài)進(jìn)程的操作系統(tǒng)內(nèi)核卻不知道用戶態(tài)進(jìn)程已經(jīng)崩潰,還是一如既往地繼續(xù)訪問(wèn)共享內(nèi)存,此時(shí),從共享內(nèi)存讀取的數(shù)據(jù),對(duì)于操作系統(tǒng)內(nèi)核而言就是錯(cuò)誤數(shù)據(jù),嚴(yán)重時(shí),該錯(cuò)誤數(shù)據(jù)會(huì)導(dǎo)致操作系統(tǒng)內(nèi)核產(chǎn)生無(wú)法恢復(fù)的異常問(wèn)題,導(dǎo)致系統(tǒng)死機(jī)。
技術(shù)實(shí)現(xiàn)思路
本申請(qǐng)所要解決的技術(shù)問(wèn)題是提供共享內(nèi)存的訪問(wèn)控制方法,能夠在一定程度上防止內(nèi)核模塊訪問(wèn)錯(cuò)誤數(shù)據(jù),從而避免出現(xiàn)由于錯(cuò)誤數(shù)據(jù)導(dǎo)致了操作系統(tǒng)內(nèi)核產(chǎn)生無(wú)法恢復(fù)的異常問(wèn)題,在一定程度上能夠提高操作系統(tǒng)運(yùn)行的穩(wěn)定性和健壯性。另外,本申請(qǐng)還提供了一種共享內(nèi)存的訪問(wèn)控制裝置及系統(tǒng),用于保證上述方法在實(shí)際中的實(shí)現(xiàn)以及應(yīng)用。在本申請(qǐng)第一方面提供了一種共享內(nèi)存的訪問(wèn)控制方法,所述方法包括:監(jiān)控用戶態(tài)進(jìn)程的狀態(tài);若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存;當(dāng)所述線程結(jié)束訪問(wèn)時(shí),觸發(fā)所述用戶態(tài)進(jìn)程完成退出。可選的,所述方法還包括:設(shè)置所述用戶態(tài)進(jìn)程對(duì)應(yīng)的訪問(wèn)計(jì)數(shù)器;所述訪問(wèn)計(jì)數(shù)器用于記錄所述用戶態(tài)進(jìn)程的共享內(nèi)存正在被訪問(wèn)的次數(shù);則所述若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存,包括:若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),且根據(jù)所述訪問(wèn)計(jì)數(shù)器的計(jì)數(shù)值,控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存。可選的,所述控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存,包括:禁止發(fā)起新線程訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存;或,控制正在訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存的線程,盡快結(jié)束訪問(wèn)。可選的,所述方法還包括:監(jiān)控正在訪問(wèn)所述共享內(nèi)存的線程是否在預(yù)設(shè)時(shí)間內(nèi)結(jié)束訪問(wèn),如果否,則再次通知正在訪問(wèn)所述共享內(nèi)存的線程盡快結(jié)束訪問(wèn)。可選的,所述方法還包括:禁止中央處理器對(duì)所述線程發(fā)起進(jìn)程調(diào)度,并在所述線程訪問(wèn)完畢時(shí),解除禁止。可選的,所述方法還包括:預(yù)先注冊(cè)與所述用戶態(tài)進(jìn)程相關(guān)的回調(diào)函數(shù);則通過(guò)所述回調(diào)函數(shù)被調(diào)用方式,監(jiān)控得到用戶態(tài)進(jìn)程的狀態(tài)。可選的,所述方法還包括:設(shè)置所述用戶態(tài)進(jìn)程調(diào)用預(yù)設(shè)的字符設(shè)備驅(qū)動(dòng)中的release函數(shù)實(shí)現(xiàn)用戶態(tài)進(jìn)程的退出;所述release函數(shù)用于感知所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),并在確定訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存的線程結(jié)束訪問(wèn)時(shí),再觸發(fā)所述用戶態(tài)進(jìn)程完成退出。可選的,所述方法還包括:設(shè)置所述用戶態(tài)進(jìn)程調(diào)用預(yù)設(shè)的字符設(shè)備驅(qū)動(dòng)中的open函數(shù)實(shí)現(xiàn)用戶態(tài)進(jìn)程的啟動(dòng);所述open函數(shù)用于實(shí)時(shí)感知用戶態(tài)進(jìn)程進(jìn)入啟動(dòng)狀態(tài)。在本申請(qǐng)第二方面提供了一種共享內(nèi)存的訪問(wèn)控制裝置,所述裝置包括:監(jiān)控模塊、線程訪問(wèn)控制模塊、用戶態(tài)進(jìn)程退出控制模塊;其中,所述監(jiān)控模塊,用于監(jiān)控用戶態(tài)進(jìn)程的狀態(tài);若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),觸發(fā)所述線程訪問(wèn)控制模塊;所述線程訪問(wèn)控制模塊,用于若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存;當(dāng)所述線程結(jié)束訪問(wèn)時(shí),觸發(fā)用戶態(tài)進(jìn)程退出控制模塊;所述用戶態(tài)進(jìn)程退出控制模塊,用于當(dāng)所述線程結(jié)束訪問(wèn)時(shí),觸發(fā)所述用戶態(tài)進(jìn)程完成退出。可選的,所述裝置還包括:訪問(wèn)計(jì)數(shù)模塊,用于設(shè)置所述用戶態(tài)進(jìn)程對(duì)應(yīng)的訪問(wèn)計(jì)數(shù)器;所述訪問(wèn)計(jì)數(shù)器用于記錄所述用戶態(tài)進(jìn)程的共享內(nèi)存正在被訪問(wèn)的次數(shù);則所述線程訪問(wèn)控制模塊,具體用于:若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),且根據(jù)所述訪問(wèn)計(jì)數(shù)器的計(jì)數(shù)值,控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存。可選的,所述線程訪問(wèn)控制模塊,包括:禁止子模塊,用于禁止發(fā)起新線程訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存;或,控制子模塊,用于控制正在訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存的線程,盡快結(jié)束訪問(wèn)。可選的,所述裝置還包括:延遲再通知模塊,用于監(jiān)控正在訪問(wèn)所述共享內(nèi)存的線程是否在預(yù)設(shè)時(shí)間內(nèi)結(jié)束訪問(wèn),如果否,則再次通知正在訪問(wèn)所述共享內(nèi)存的線程盡快結(jié)束訪問(wèn)。可選的,所述裝置還包括:禁止模塊,用于禁止中央處理器對(duì)所述線程發(fā)起進(jìn)程調(diào)度,并在所述線程訪問(wèn)完畢時(shí),解除禁止。可選的,所述裝置還包括:注冊(cè)模塊,用于預(yù)先注冊(cè)與所述用戶態(tài)進(jìn)程相關(guān)的回調(diào)函數(shù);則所述監(jiān)控模塊具體通過(guò)所述回調(diào)函數(shù)被調(diào)用方式,監(jiān)控得到用戶態(tài)進(jìn)程的狀態(tài)。可選的,所述裝置還包括:第一設(shè)置模塊,用于設(shè)置所述用戶態(tài)進(jìn)程調(diào)用預(yù)設(shè)的字符設(shè)備驅(qū)動(dòng)中的release函數(shù)實(shí)現(xiàn)用戶態(tài)進(jìn)程的退出;所述release函數(shù)用于感知所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),并在確定訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存的線程結(jié)束訪問(wèn)時(shí),再觸發(fā)所述用戶態(tài)進(jìn)程完成退出。可選的,所述裝置還包括:第二設(shè)置模塊,用于設(shè)置所述用戶態(tài)進(jìn)程調(diào)用預(yù)設(shè)的字符設(shè)備驅(qū)動(dòng)中的open函數(shù)實(shí)現(xiàn)用戶態(tài)進(jìn)程的啟動(dòng);所述open函數(shù)用于實(shí)時(shí)感知用戶態(tài)進(jìn)程進(jìn)入啟動(dòng)狀態(tài)。在本申請(qǐng)第三方面提供了一種共享內(nèi)存的訪問(wèn)控制系統(tǒng),所述系統(tǒng)包括:狀態(tài)感知模塊、消息發(fā)布模塊、以及配置有上述第二方面描述的共享內(nèi)存的訪問(wèn)控制裝置的內(nèi)核模塊;其中,所述狀態(tài)感知模塊,用于實(shí)時(shí)感知用戶態(tài)進(jìn)程的狀態(tài),并將所述狀態(tài)發(fā)送至所述消息發(fā)布模塊;所述消息發(fā)布模塊,用于向所述內(nèi)核模塊發(fā)布所述用戶態(tài)進(jìn)程的狀態(tài)。可選的,所述狀態(tài)感知模塊包括:第一感知子模塊,用于通過(guò)預(yù)設(shè)的open函數(shù)實(shí)時(shí)感知所述用戶態(tài)進(jìn)程進(jìn)入啟動(dòng)狀態(tài),并觸發(fā)所述消息發(fā)布模塊向所述內(nèi)核模塊發(fā)布所述用戶態(tài)進(jìn)程進(jìn)入啟動(dòng)狀態(tài)的消息;第二感知子模塊,用于通過(guò)預(yù)設(shè)的release函數(shù)實(shí)時(shí)感知所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),觸發(fā)所述消息發(fā)布模塊向所述內(nèi)核模塊發(fā)布所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài)的消息;其中,所述release函數(shù)被設(shè)置為在確定訪問(wèn)所述共享內(nèi)存的線程都結(jié)束時(shí),再執(zhí)行退出。可選的,所述消息發(fā)布模塊,包括:注冊(cè)記錄子模塊,用于記錄所述內(nèi)核模塊預(yù)先注冊(cè)的、與所述用戶態(tài)進(jìn)程對(duì)應(yīng)的回調(diào)函數(shù);消息發(fā)布子模塊,用于通過(guò)調(diào)用與所述用戶態(tài)進(jìn)程對(duì)應(yīng)的回調(diào)函數(shù)地方式,向所述內(nèi)核模塊發(fā)布所述用戶態(tài)進(jìn)程的狀態(tài)。與現(xiàn)有技術(shù)相比,本申請(qǐng)?zhí)峁┑募夹g(shù)方案具有以下優(yōu)點(diǎn):本申請(qǐng)?zhí)峁┑募夹g(shù)方案提出了用戶態(tài)進(jìn)程狀態(tài)的監(jiān)控機(jī)制和內(nèi)核模塊根據(jù)用戶態(tài)進(jìn)程狀態(tài)控制訪問(wèn)的工作機(jī)制;基于該監(jiān)控機(jī)制,內(nèi)核模塊能夠在第一時(shí)間了解到用戶態(tài)進(jìn)程的狀態(tài),并按照這種工作機(jī)制,在發(fā)現(xiàn)用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài)時(shí),及時(shí)控制正在訪問(wèn)用戶態(tài)進(jìn)程的共享內(nèi)存的線程,盡快停止訪問(wèn);并且該內(nèi)核模塊停止發(fā)起新的訪問(wèn)進(jìn)程。在訪問(wèn)用戶態(tài)進(jìn)程的共享內(nèi)存的線程都結(jié)束訪問(wèn)時(shí),用戶態(tài)進(jìn)程才會(huì)完全退出,在用戶態(tài)進(jìn)程完全退出時(shí),其占用的共享內(nèi)存才會(huì)被操作系統(tǒng)回收再利用。可以看出:本申請(qǐng)?zhí)岢隽诉@種監(jiān)控機(jī)制和內(nèi)核模塊的工作機(jī)制,內(nèi)核模塊在用戶態(tài)進(jìn)程崩潰重啟階段,不會(huì)訪問(wèn)用戶態(tài)進(jìn)程的共享內(nèi)存,不會(huì)獲取到錯(cuò)誤數(shù)據(jù),從而能夠避免因錯(cuò)誤數(shù)據(jù)引發(fā)操作系統(tǒng)穩(wěn)定性問(wèn)題。附圖說(shuō)明為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下本文檔來(lái)自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種共享內(nèi)存的訪問(wèn)控制方法,其特征在于,所述方法包括:監(jiān)控用戶態(tài)進(jìn)程的狀態(tài);若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存;當(dāng)所述線程結(jié)束訪問(wèn)時(shí),觸發(fā)所述用戶態(tài)進(jìn)程完成退出。
【技術(shù)特征摘要】
1.一種共享內(nèi)存的訪問(wèn)控制方法,其特征在于,所述方法包括:監(jiān)控用戶態(tài)進(jìn)程的狀態(tài);若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存;當(dāng)所述線程結(jié)束訪問(wèn)時(shí),觸發(fā)所述用戶態(tài)進(jìn)程完成退出。2.根據(jù)權(quán)利要求1所述的共享內(nèi)存的訪問(wèn)控制方法,其特征在于,所述方法還包括:設(shè)置所述用戶態(tài)進(jìn)程對(duì)應(yīng)的訪問(wèn)計(jì)數(shù)器;所述訪問(wèn)計(jì)數(shù)器用于記錄所述用戶態(tài)進(jìn)程的共享內(nèi)存正在被訪問(wèn)的次數(shù);則所述若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存,包括:若所述用戶態(tài)進(jìn)程進(jìn)入退出狀態(tài),且根據(jù)所述訪問(wèn)計(jì)數(shù)器的計(jì)數(shù)值,控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存。3.根據(jù)權(quán)利要求1或者2所述的共享內(nèi)存的訪問(wèn)控制方法,其特征在于,所述控制線程停止訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存,包括:禁止發(fā)起新線程訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存;或,控制正在訪問(wèn)所述用戶態(tài)進(jìn)程的共享內(nèi)存的線程,盡快結(jié)束訪問(wèn)。4.根據(jù)權(quán)利要求3所述的共享內(nèi)存的訪問(wèn)控制方法,其特征在于,所述方法還包括:監(jiān)控正在訪問(wèn)所述共享內(nèi)存的線程是否在預(yù)設(shè)時(shí)間內(nèi)結(jié)束訪問(wèn),如果否,則再次通知正在訪問(wèn)所述共享內(nèi)存的線程盡快結(jié)束訪問(wèn)。5.根據(jù)權(quán)利要求1所述的共享內(nèi)存的訪問(wèn)控制方法,其特征在于,所述方法還包括:禁止中央處理器對(duì)所述線程發(fā)起進(jìn)程調(diào)度,并在所述線程訪問(wèn)完畢時(shí),解除禁止。6.根據(jù)權(quán)利要求1所述的共享內(nèi)存的訪問(wèn)控制方法,其特征在于,所述方法還包括:預(yù)先注冊(cè)與所述用戶態(tài)進(jìn)程相關(guān)的回調(diào)函數(shù);則通過(guò)所述回調(diào)函數(shù)被調(diào)用方式...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:李拓,
申請(qǐng)(專利權(quán))人:東軟集團(tuán)股份有限公司,
類型:發(fā)明
國(guó)別省市:遼寧;21
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。