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

內(nèi)存溢出的處理方法、裝置、車輛、設(shè)備及介質(zhì)與流程

文檔序號:40616901發(fā)布日期:2025-01-10 18:22閱讀:5來源:國知局
內(nèi)存溢出的處理方法、裝置、車輛、設(shè)備及介質(zhì)與流程

本公開涉及操作系統(tǒng)和車輛領(lǐng)域,尤其涉及一種內(nèi)存溢出的處理方法、裝置、車輛、設(shè)備及介質(zhì)。


背景技術(shù):

1、隨著智能設(shè)備的功能增多和數(shù)據(jù)量越來越大,智能設(shè)備上的應(yīng)用所需的運行空間和存儲空間也越來越大。在智能設(shè)備的操作系統(tǒng)中運行較多的應(yīng)用進程時,會出現(xiàn)內(nèi)存溢出(oom,out?of?memory)的現(xiàn)象。內(nèi)存溢出是指有些應(yīng)用進程中存在無法回收的內(nèi)存或使用的內(nèi)存過多,其它應(yīng)用進程申請分配內(nèi)存時系統(tǒng)會優(yōu)先強制退出占用內(nèi)存較大的當(dāng)前進程以減輕系統(tǒng)負(fù)擔(dān);或者當(dāng)前應(yīng)用進程再次申請內(nèi)存時,因系統(tǒng)無法分配更多內(nèi)存而拋出異常,使得當(dāng)前應(yīng)用進程退出。


技術(shù)實現(xiàn)思路

1、在研發(fā)中發(fā)現(xiàn)相關(guān)技術(shù)存在以下技術(shù)問題:目前針對內(nèi)存溢出的處理方案基本都是由內(nèi)核配置各個應(yīng)用進程的得分策略或進程優(yōu)先級,在內(nèi)存溢出時由內(nèi)核態(tài)進程選擇得分較高或較低、或優(yōu)先級較低的進程進行結(jié)束(kill);然而在上述過程中如果上述內(nèi)核態(tài)進程發(fā)生內(nèi)核錯誤(panic),則會引起系統(tǒng)級別的問題,導(dǎo)致整個系統(tǒng)的運行受影響。

2、為克服相關(guān)技術(shù)中存在的問題,本公開提供一種內(nèi)存溢出的處理方法、裝置、車輛、設(shè)備及介質(zhì)。

3、根據(jù)本公開實施例的第一方面,提供一種內(nèi)存溢出的處理方法。上述方法包括:在內(nèi)核態(tài)檢測是否發(fā)生內(nèi)存溢出;響應(yīng)于檢測到內(nèi)存溢出,將內(nèi)存溢出的處理權(quán)從內(nèi)核的內(nèi)存溢出處理函數(shù)轉(zhuǎn)移到仲裁進程,使得上述仲裁進程進行內(nèi)存溢出的處理;其中,上述仲裁進程為后臺運行的用戶態(tài)進程并具有管控其他進程的權(quán)限。

4、在一些實施例中,上述將內(nèi)存溢出的處理權(quán)從內(nèi)存溢出處理函數(shù)轉(zhuǎn)移到仲裁進程,使得上述仲裁進程進行內(nèi)存溢出的處理,包括:上述內(nèi)存溢出處理函數(shù)獲取仲裁進程對應(yīng)的功能開關(guān)狀態(tài);響應(yīng)于上述功能開關(guān)狀態(tài)指示上述仲裁進程的功能開啟,上述內(nèi)存溢出處理函數(shù)向上述仲裁進程發(fā)送處理權(quán)轉(zhuǎn)移信號;上述仲裁進程在接收到上述處理權(quán)轉(zhuǎn)移信號后,根據(jù)預(yù)先配置的進程管控策略來確定目標(biāo)進程,并結(jié)束上述目標(biāo)進程以釋放對應(yīng)資源。

5、在一些實施例中,上述處理權(quán)轉(zhuǎn)移信號用于指示由上述仲裁進程進行上述內(nèi)存溢出的處理,而不再繼續(xù)執(zhí)行上述內(nèi)存溢出處理函數(shù)自帶的默認(rèn)處理邏輯。

6、在一些實施例中,上述方法還包括:創(chuàng)建用于進行內(nèi)核態(tài)和用戶態(tài)通信的接口對象;上述接口對象包含:用于存放仲裁進程對應(yīng)的功能開關(guān)狀態(tài)的第一接口對象;用于存放仲裁進程的進程標(biāo)識的第二接口對象;其中,上述內(nèi)存溢出處理函數(shù)獲取仲裁進程對應(yīng)的功能開關(guān)狀態(tài),包括:上述內(nèi)存溢出處理函數(shù)從上述第一接口對象中獲取預(yù)先配置的仲裁進程對應(yīng)的功能開關(guān)狀態(tài);上述內(nèi)存溢出處理函數(shù)向上述仲裁進程發(fā)送處理權(quán)轉(zhuǎn)移信號,包括:上述內(nèi)存溢出處理函數(shù)從上述第二接口對象中獲取預(yù)先配置的仲裁進程的進程標(biāo)識;根據(jù)上述進程標(biāo)識,上述內(nèi)存溢出處理函數(shù)向上述仲裁進程發(fā)送處理權(quán)轉(zhuǎn)移信號。

7、在一些實施例中,上述方法還包括:加載用戶態(tài)仲裁功能配置文件;其中,上述用戶態(tài)仲裁功能配置文件中包含:針對仲裁進程對應(yīng)的功能開關(guān)狀態(tài)是否開啟進行設(shè)置的第一配置信息、針對仲裁進程的進程標(biāo)識進行設(shè)置的第二配置信息和針對內(nèi)存溢出發(fā)生后實施的進程管控策略進行設(shè)置的第三配置信息;在啟動并初始化仲裁進程的過程中,解析上述用戶態(tài)仲裁功能配置文件得到上述第一配置信息、上述第二配置信息和上述第三配置信息,將上述第一配置信息和上述第二配置信息寫入至內(nèi)核態(tài)和用戶態(tài)通信的接口對象中,并根據(jù)上述第三配置信息對上述仲裁進程的進程管控策略進行配置。

8、在一些實施例中,上述方法還包括以下至少一種:響應(yīng)于上述功能開關(guān)狀態(tài)指示上述仲裁進程的功能關(guān)閉,執(zhí)行上述內(nèi)存溢出處理函數(shù)自帶的默認(rèn)處理邏輯;其中,上述默認(rèn)處理邏輯是內(nèi)核配置的針對內(nèi)存溢出的處理邏輯;或者,在上述仲裁進程根據(jù)預(yù)先配置的進程管控策略得不到目標(biāo)進程的情況下,上述仲裁進程向上述內(nèi)存溢出處理函數(shù)發(fā)送處理權(quán)退回信號;上述內(nèi)存溢出處理函數(shù)在接收到上述處理權(quán)退回信號后,執(zhí)行上述內(nèi)存溢出處理函數(shù)自帶的默認(rèn)處理邏輯。

9、在一些實施例中,上述方法還包括:在檢測到上述仲裁進程由于故障或異常導(dǎo)致終止,基于重啟機制,對上述仲裁進程進行至少一次重啟;在上述仲裁進程重啟成功后,上述仲裁進程繼續(xù)執(zhí)行之前的處理任務(wù);在上述仲裁進程基于重啟機制重啟失敗后,上述仲裁進程向上述內(nèi)存溢出處理函數(shù)發(fā)送處理權(quán)退回信號;上述內(nèi)存溢出處理函數(shù)在接收到上述處理權(quán)退回信號后,執(zhí)行上述內(nèi)存溢出處理函數(shù)自帶的默認(rèn)處理邏輯;或者,在上述仲裁進程基于重啟機制重啟失敗后,在前端顯示界面進行以下信息的提示:上述仲裁進程終止和內(nèi)存溢出處理報錯。

10、在一些實施例中,上述方法應(yīng)用于linux操作系統(tǒng);在上述linux操作系統(tǒng)中,改造上述內(nèi)存溢出處理函數(shù),包括:通過將上述內(nèi)存溢出處理函數(shù)中具有內(nèi)存溢出的處理權(quán)的結(jié)束進程選擇對象賦值為上述仲裁進程的進程標(biāo)識,以將內(nèi)存溢出的處理權(quán)從內(nèi)核的內(nèi)存溢出處理函數(shù)轉(zhuǎn)移到上述仲裁進程,使得上述仲裁進程進行內(nèi)存溢出的處理。

11、在一些實施例中,上述方法還包括:在上述linux操作系統(tǒng)的內(nèi)核源碼的主文件中定義第一全局變量和第二全局變量,上述第一全局變量表示上述仲裁進程對應(yīng)的功能開關(guān)狀態(tài),上述第二全局變量表示上述仲裁進程的進程標(biāo)識;在上述linux操作系統(tǒng)的proc文件中創(chuàng)建第一接口對象和第二接口對象,上述第一接口對象用于存放上述功能開關(guān)狀態(tài),上述第二接口對象用于存放上述進程標(biāo)識;其中,在上述功能開關(guān)狀態(tài)指示上述仲裁進程的功能開啟的情況下,執(zhí)行以下步驟:將上述內(nèi)存溢出處理函數(shù)中具有內(nèi)存溢出的處理權(quán)的結(jié)束進程選擇對象賦值為上述仲裁進程的進程標(biāo)識。

12、根據(jù)本公開實施例的第二方面,提供一種內(nèi)存溢出的處理裝置。上述裝置包括:檢測模塊和處理權(quán)轉(zhuǎn)移模塊。上述檢測模塊用于在內(nèi)核態(tài)檢測是否發(fā)生內(nèi)存溢出。上述處理權(quán)轉(zhuǎn)移模塊用于響應(yīng)于檢測到內(nèi)存溢出,將內(nèi)存溢出的處理權(quán)從內(nèi)核的內(nèi)存溢出處理函數(shù)轉(zhuǎn)移到仲裁進程,使得上述仲裁進程進行內(nèi)存溢出的處理。其中,上述仲裁進程為后臺運行的用戶態(tài)進程并具有管控其他進程的權(quán)限。

13、在一些實施例中,上述處理權(quán)轉(zhuǎn)移模塊包括:狀態(tài)獲取模塊、信號發(fā)送模塊、信號接收模塊和進程管控模塊。上述狀態(tài)獲取模塊,位于上述內(nèi)存溢出處理函數(shù)中,用于響應(yīng)于檢測到內(nèi)存溢出,獲取仲裁進程對應(yīng)的功能開關(guān)狀態(tài)。上述信號發(fā)送模塊,位于上述內(nèi)存溢出處理函數(shù)中,用于響應(yīng)于上述功能開關(guān)狀態(tài)指示上述仲裁進程的功能開啟,向上述仲裁進程發(fā)送處理權(quán)轉(zhuǎn)移信號。上述信號接收模塊,位于上述仲裁進程中,用于接收上述處理權(quán)轉(zhuǎn)移信號。上述進程管控模塊,位于上述仲裁進程中,用于在接收到上述處理權(quán)轉(zhuǎn)移信號后,根據(jù)預(yù)先配置的進程管控策略來確定目標(biāo)進程,并結(jié)束上述目標(biāo)進程以釋放對應(yīng)資源。

14、根據(jù)本公開實施例的第三方面,提供一種車輛,存儲有一組指令集,上述指令集被上述車輛執(zhí)行,以實現(xiàn)本公開第一方面所提供的內(nèi)存溢出的處理方法。

15、根據(jù)本公開實施例的第四方面,提供一種電子設(shè)備,包括:處理器;用于存儲上述處理器可執(zhí)行指令的存儲器;上述處理器,用于從上述存儲器中讀取上述可執(zhí)行指令,并執(zhí)行上述指令以實現(xiàn)本公開第一方面所提供的內(nèi)存溢出的處理方法。

16、根據(jù)本公開實施例的第五方面,提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序指令,該程序指令被處理器執(zhí)行時實現(xiàn)本公開第一方面所提供的內(nèi)存溢出的處理方法的步驟。

17、本公開的實施例提供的技術(shù)方案可以包括以下有益效果:

18、通過在檢測到內(nèi)存溢出的情況下,將內(nèi)存溢出(oom)的處理權(quán)從內(nèi)核的內(nèi)存溢出處理函數(shù)轉(zhuǎn)移到在后臺運行且具有管控其他進程權(quán)限的用戶態(tài)進程—仲裁進程,使得上述仲裁進程進行內(nèi)存溢出的處理;一方面,由用戶態(tài)進程接管內(nèi)存溢出的處理權(quán),相當(dāng)于將內(nèi)核態(tài)進程決策結(jié)束(kill)哪個進程的決策權(quán)轉(zhuǎn)移給了用戶態(tài)進程,由用戶態(tài)進程對內(nèi)存溢出進行處理,由于用戶態(tài)進程與內(nèi)核態(tài)進程之間是隔離的,避免內(nèi)核態(tài)進程在內(nèi)存溢出處理過程中發(fā)生內(nèi)核錯誤(panic)引起的系統(tǒng)級別的問題(一般較難恢復(fù))或?qū)е孪到y(tǒng)不穩(wěn)定等,能夠提升操作系統(tǒng)的魯棒性(承受故障和干擾的能力)。另一方面,考慮到內(nèi)核配置的進程得分策略面對操作系統(tǒng)內(nèi)的各個應(yīng)用是統(tǒng)一、無差別的,針對不同的設(shè)備端,有的用戶期望能夠針對哪些進程要保護、哪些重要進程不能被結(jié)束進行個性化配置,上述方案還提供了一種與內(nèi)核進行內(nèi)存溢出處理所并行的處理路徑,為用戶提供了更多的選擇,用戶可以通過對仲裁進程的進程管控策略進行個性化配置的方式來保護重要進程,靈活適配于在oom發(fā)生時進程的個性化保護需求。

19、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
江口县| 阳信县| 固安县| 彩票| 太白县| 克拉玛依市| 福贡县| 平和县| 卢湾区| 揭东县| 焦作市| 西藏| 柳江县| 青海省| 延吉市| 青铜峡市| 明水县| 大洼县| 扶余县| 金湖县| 卢龙县| 湖北省| 西乌| 临湘市| 松桃| 慈溪市| 鹤庆县| 萍乡市| 金塔县| 乌兰浩特市| 绍兴市| 灵丘县| 衢州市| 同江市| 兰西县| 栾川县| 阿瓦提县| 湘乡市| 云南省| 临城县| 杨浦区|