本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種針對存儲軟件的內(nèi)存分配方法及裝置。
背景技術(shù):
在傳統(tǒng)的軟件設(shè)計(jì)中,應(yīng)用軟件的內(nèi)存完全交由操作系統(tǒng)來管理,這樣帶來的一個(gè)問題是,當(dāng)某個(gè)應(yīng)用軟件設(shè)計(jì)不合理,比如內(nèi)存泄漏等原因,會消耗大量內(nèi)存,導(dǎo)致其他應(yīng)用軟件運(yùn)行緩慢,甚至導(dǎo)致整個(gè)系統(tǒng)崩潰。由于所有內(nèi)存都是由操作系統(tǒng)分配管理,所以一旦出現(xiàn)這種問題,也很難跟蹤和調(diào)試。存儲軟件是應(yīng)用軟件中的一種,在存儲軟件中,系統(tǒng)的穩(wěn)定性尤為重要,而內(nèi)存的使用又是重中之重。因此,如何管理好存儲軟件內(nèi)存的使用,就是一個(gè)很大的課題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種針對存儲軟件的內(nèi)存分配方法及裝置,用于管理存儲軟件內(nèi)存的使用,以提高操作系統(tǒng)的可靠性和降低操作系統(tǒng)的故障機(jī)率。另外,當(dāng)出現(xiàn)問題時(shí),能夠快速定位。
為解決上述技術(shù)問題,本發(fā)明提供一種針對存儲軟件的內(nèi)存分配方法,包括:
在操作系統(tǒng)啟動時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,并將所述系統(tǒng)內(nèi)存映射到用戶空間;
獲取所述存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間;
記錄所述功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系;
其中,所述系統(tǒng)內(nèi)存的空間大于或等于全部所述功能模塊所需的內(nèi)存空間。
優(yōu)選地,具體通過文件記錄所述功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。
優(yōu)選地,還包括:當(dāng)所述功能模塊所需的內(nèi)存空間發(fā)生變化時(shí),更新所述對應(yīng)關(guān)系。
優(yōu)選地,在更新所述對應(yīng)關(guān)系之后還包括:輸出重新啟動所述操作系統(tǒng)的提示信息。
為解決上述技術(shù)問題,本發(fā)明提供一種針對存儲軟件的內(nèi)存分配裝置,包括:
映射單元,用于在操作系統(tǒng)啟動時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,并將所述系統(tǒng)內(nèi)存映射到用戶空間;
獲取單元,用于獲取所述存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間;
記錄單元,用于記錄所述功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系;
其中,所述系統(tǒng)內(nèi)存的空間大于或等于全部所述功能模塊所需的內(nèi)存空間。
優(yōu)選地,所述記錄單元具體通過文件記錄所述功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。
優(yōu)選地,記錄單元,還用于當(dāng)所述功能模塊所需的內(nèi)存空間發(fā)生變化時(shí),更新所述對應(yīng)關(guān)系。
優(yōu)選地,還包括:提示單元,用于在更新所述對應(yīng)關(guān)系之后輸出重新啟動所述操作系統(tǒng)的提示信息。
本發(fā)明所提供的本發(fā)明實(shí)施例提供的針對存儲軟件的內(nèi)存分配方法及裝置,包括:在操作系統(tǒng)啟動時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,并將系統(tǒng)內(nèi)存映射到用戶空間;獲取存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間;記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。通過上述方法,將預(yù)定大小的系統(tǒng)內(nèi)存映射到用戶空間使得該部分系統(tǒng)內(nèi)存不被操作系統(tǒng)管理,因此即使存儲軟件對應(yīng)的系統(tǒng)內(nèi)存發(fā)生泄漏等問題時(shí),不會影響整個(gè)操作系統(tǒng)的正常運(yùn)行,提高了操作系統(tǒng)的可靠性,降低了操作系統(tǒng)的故障機(jī)率。另外,存儲軟件的功能模塊具有單獨(dú)的系統(tǒng)內(nèi)存,因此當(dāng)出現(xiàn)問題時(shí),能夠快速定位。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例,下面將對實(shí)施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種針對存儲軟件的內(nèi)存分配方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種針對存儲軟件的內(nèi)存分配裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下,所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)范圍。
本發(fā)明的核心是提供一種針對存儲軟件的內(nèi)存分配方法及裝置。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明。
圖1為本發(fā)明實(shí)施例提供的一種針對存儲軟件的內(nèi)存分配方法的流程圖。如圖1所示,針對存儲軟件的內(nèi)存分配方法包括:
S10:在操作系統(tǒng)啟動時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,并將系統(tǒng)內(nèi)存映射到用戶空間。
S11:獲取存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間。
S12:記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。
其中,系統(tǒng)內(nèi)存的空間大于或等于全部功能模塊所需的內(nèi)存空間。
在具體實(shí)施中,在接收到操作系統(tǒng)啟動的指令時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,保留下來的系統(tǒng)內(nèi)存專門用來分配給存儲軟件中的各個(gè)功能模塊。本實(shí)施例中,將系統(tǒng)內(nèi)存映射到用戶空間后,該系統(tǒng)內(nèi)存就不會被操作系統(tǒng)所管理??梢岳斫獾氖?,通過Linux現(xiàn)有的技術(shù)就可以把預(yù)定大小的系統(tǒng)內(nèi)存映射到用戶空間,本實(shí)施例不再贅述。由上可知,我們在用戶空間實(shí)現(xiàn)一套管理邏輯來操作內(nèi)存。這樣做的好處是,即使用戶層應(yīng)用使用內(nèi)存有問題導(dǎo)致應(yīng)用崩潰,也不會導(dǎo)致整個(gè)系統(tǒng)崩潰,從而有利于調(diào)試人員的調(diào)試工作;從編程的角度看,用戶層的編程比內(nèi)核層編程容易的多。
獲取存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間。在使用中,就可以按照功能模塊的數(shù)量來劃分,并且使得每個(gè)功能模塊所需的內(nèi)存空間都可以滿足。記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系,當(dāng)存儲應(yīng)用啟動的時(shí)候,會解析需要哪個(gè)功能模塊,并且取得相應(yīng)的功能模塊所需的內(nèi)存空間,應(yīng)用根據(jù)這些參數(shù)為每個(gè)功能模塊分配好空間,從而實(shí)現(xiàn)存儲軟件的正常工作。
本發(fā)明實(shí)施例提供的針對存儲軟件的內(nèi)存分配方法,包括:在操作系統(tǒng)啟動時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,并將系統(tǒng)內(nèi)存映射到用戶空間;獲取存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間;記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。通過上述方法,將預(yù)定大小的系統(tǒng)內(nèi)存映射到用戶空間使得該部分系統(tǒng)內(nèi)存不被操作系統(tǒng)管理,因此即使存儲軟件對應(yīng)的系統(tǒng)內(nèi)存發(fā)生泄漏等問題時(shí),不會影響整個(gè)操作系統(tǒng)的正常運(yùn)行,提高了操作系統(tǒng)的可靠性,降低了操作系統(tǒng)的故障機(jī)率。另外,存儲軟件的功能模塊具有單獨(dú)的系統(tǒng)內(nèi)存,因此當(dāng)出現(xiàn)問題時(shí),能夠快速定位。
作為優(yōu)選地實(shí)時(shí)方式,具體通過文件記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。
在具體實(shí)施中,將功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系記錄在一個(gè)專屬的文件中,可以方便調(diào)試人員查看,并方便后續(xù)的修改。
作為優(yōu)選地實(shí)時(shí)方式,還包括:當(dāng)功能模塊所需的內(nèi)存空間發(fā)生變化時(shí),更新對應(yīng)關(guān)系。
由于操作系統(tǒng)是動態(tài)變化的,每次啟動時(shí)都需要進(jìn)行上述分配過程,而每次分配過程中,對應(yīng)的功能模塊的數(shù)量以及每個(gè)功能模塊所需的內(nèi)存空間大小都是不同,因此,當(dāng)功能模塊所需的內(nèi)存空間大小變化時(shí),需要更新相應(yīng)的對應(yīng)關(guān)系,即更新文件。
作為優(yōu)選地實(shí)時(shí)方式,在更新對應(yīng)關(guān)系之后還包括:輸出重新啟動操作系統(tǒng)的提示信息。
為了保證能夠獲取正確的對應(yīng)關(guān)系,當(dāng)更新對應(yīng)關(guān)系之后,需要重新啟動,因此,為了更好的提示用戶,本實(shí)施例中,輸出提示信息。
圖2為本發(fā)明實(shí)施例提供的一種針對存儲軟件的內(nèi)存分配裝置的結(jié)構(gòu)圖。如圖2,針對存儲軟件的內(nèi)存分配裝置包括:
映射單元10,用于在操作系統(tǒng)啟動時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,并將系統(tǒng)內(nèi)存映射到用戶空間;
獲取單元11,用于獲取存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間;
記錄單元12,用于記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系;
其中,系統(tǒng)內(nèi)存的空間大于或等于全部功能模塊所需的內(nèi)存空間。
在具體實(shí)施中,在接收到操作系統(tǒng)啟動的指令時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,保留下來的系統(tǒng)內(nèi)存專門用來分配給存儲軟件中的各個(gè)功能模塊。本實(shí)施例中,將系統(tǒng)內(nèi)存映射到用戶空間后,該系統(tǒng)內(nèi)存就不會被操作系統(tǒng)所管理??梢岳斫獾氖牵ㄟ^Linux現(xiàn)有的技術(shù)就可以把預(yù)定大小的系統(tǒng)內(nèi)存映射到用戶空間,本實(shí)施例不再贅述。由上可知,我們在用戶空間實(shí)現(xiàn)一套管理邏輯來操作內(nèi)存。這樣做的好處是,即使用戶層應(yīng)用使用內(nèi)存有問題導(dǎo)致應(yīng)用崩潰,也不會導(dǎo)致整個(gè)系統(tǒng)崩潰,從而有利于調(diào)試人員的調(diào)試工作;從編程的角度看,用戶層的編程比內(nèi)核層編程容易的多。
獲取存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間。在使用中,就可以按照功能模塊的數(shù)量來劃分,并且使得每個(gè)功能模塊所需的內(nèi)存空間都可以滿足。記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系,當(dāng)存儲應(yīng)用啟動的時(shí)候,會解析需要哪個(gè)功能模塊,并且取得相應(yīng)的功能模塊所需的內(nèi)存空間,應(yīng)用根據(jù)這些參數(shù)為每個(gè)功能模塊分配好空間,從而實(shí)現(xiàn)存儲軟件的正常工作。
本發(fā)明實(shí)施例提供的針對存儲軟件的內(nèi)存分配裝置,包括:在操作系統(tǒng)啟動時(shí),預(yù)先保留預(yù)定大小的系統(tǒng)內(nèi)存,并將系統(tǒng)內(nèi)存映射到用戶空間;獲取存儲軟件中包含的功能模塊的數(shù)量,以及每個(gè)功能模塊所需的內(nèi)存空間;記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。通過上述裝置,將預(yù)定大小的系統(tǒng)內(nèi)存映射到用戶空間使得該部分系統(tǒng)內(nèi)存不被操作系統(tǒng)管理,因此即使存儲軟件對應(yīng)的系統(tǒng)內(nèi)存發(fā)生泄漏等問題時(shí),不會影響整個(gè)操作系統(tǒng)的正常運(yùn)行,提高了操作系統(tǒng)的可靠性,降低了操作系統(tǒng)的故障機(jī)率。另外,存儲軟件的功能模塊具有單獨(dú)的系統(tǒng)內(nèi)存,因此當(dāng)出現(xiàn)問題時(shí),能夠快速定位。
作為優(yōu)選地實(shí)施方式,記錄單元12具體通過文件記錄功能模塊與所需的內(nèi)存空間的對應(yīng)關(guān)系。
作為優(yōu)選地實(shí)施方式,記錄單元12還用于當(dāng)功能模塊所需的內(nèi)存空間發(fā)生變化時(shí),更新對應(yīng)關(guān)系。
作為優(yōu)選地實(shí)施方式,還包括提示單元,用于在更新對應(yīng)關(guān)系之后輸出重新啟動操作系統(tǒng)的提示信息。
由于裝置部分的實(shí)施例與方法部分的實(shí)施例相互對應(yīng),因此裝置部分的實(shí)施例請參見方法部分的實(shí)施例的描述,這里暫不贅述。
以上對本發(fā)明所提供的針對存儲軟件的內(nèi)存分配方法及裝置進(jìn)行了詳細(xì)介紹。說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。