用于調(diào)節(jié)應(yīng)用進程的方法和設(shè)備的制作方法
【專利摘要】本發(fā)明提供了用于調(diào)節(jié)應(yīng)用進程的方法和設(shè)備。該方法包括:監(jiān)測應(yīng)用進程的資源占用情況;以及根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。
【專利說明】用于調(diào)節(jié)應(yīng)用進程的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及計算機通信【技術(shù)領(lǐng)域】,更具體地涉及用于調(diào)節(jié)應(yīng)用進程的方法和設(shè)備。
【背景技術(shù)】
[0002]作為移動通信終端的主流開發(fā)平臺之一,在安卓(Android)平臺的基礎(chǔ)上已經(jīng)開發(fā)出了大量不同類型的應(yīng)用。應(yīng)用通??梢苑譃閮深?商業(yè)應(yīng)用和個人應(yīng)用。由于安卓平臺的開放性,個人應(yīng)用得到了迅速發(fā)展,并且出現(xiàn)了種類繁多的應(yīng)用。對于移動通信終端來說,這些應(yīng)用帶來的明顯感受通常是電量使用加快、系統(tǒng)突然變慢、無故死機或重啟。在這種情況下,用戶通常需要手動使用安卓系統(tǒng)管理工具,通過人工方式調(diào)節(jié)應(yīng)用程序的運行狀態(tài)。通常采用的方法是終止應(yīng)用進程或重啟應(yīng)用進程,以卸載占用資源過多的應(yīng)用進程。
[0003]這種通過人為參與和手工調(diào)節(jié)的方式存在較大缺陷:
[0004]-耗費用戶過多時間去查看系統(tǒng)中應(yīng)用進程的運行狀況;
[0005]-對于非專業(yè)用戶而言,由于對專業(yè)參數(shù)的理解較差,因而容易導(dǎo)致無法做出最準確的判斷;
[0006]-這種過程需要重復(fù)動作,缺乏自動監(jiān)控機制,易出現(xiàn)資源占用過多而導(dǎo)致系統(tǒng)變慢直至系統(tǒng)無響應(yīng)和重啟現(xiàn)象發(fā)生。
【發(fā)明內(nèi)容】
[0007]為了解決上述問題,本發(fā)明提供了用于對應(yīng)用進程的資源占用情況進行自動監(jiān)測并由此調(diào)節(jié)應(yīng)用進程的運行的機制。
[0008]根據(jù)本發(fā)明的一方面,提供了一種用于調(diào)節(jié)應(yīng)用進程的方法。該方法包括以下步驟:監(jiān)測應(yīng)用進程的資源占用情況;以及根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。
[0009]在一些實施例中,資源占用情況包括以下一種或多種:資源占用量;以及運行時間。
[0010]在一些實施例中,應(yīng)用進程包括正在運行的應(yīng)用進程,以及根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行的步驟包括:如果正在運行的應(yīng)用進程所占用的資源量超過預(yù)定資源量閾值,則結(jié)束該應(yīng)用進程。在這種情況下,根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行的步驟還可以包括:如果所占用的資源量沒有超過預(yù)定資源量閾值,并且該應(yīng)用進程的運行時間超過預(yù)定運行時間閾值,則重啟該應(yīng)用進程。
[0011]在一些實施例中,應(yīng)用進程包括即將運行的應(yīng)用進程,以及根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行的步驟包括:如果即將運行的應(yīng)用進程所請求的資源量不超過預(yù)定資源量閾值,則允許運行該應(yīng)用進程;以及如果所請求的資源量超過預(yù)定資源量閾值,則拒絕運行該應(yīng)用進程。
[0012]在一些實施例中,該方法還包括:更新應(yīng)用進程資源占用表。[0013]根據(jù)本發(fā)明的另一方面,提供了一種用于調(diào)節(jié)應(yīng)用進程的設(shè)備。該設(shè)備包括:監(jiān)測單元,用于監(jiān)測應(yīng)用進程的資源占用情況;以及調(diào)節(jié)單元,用于根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。
[0014]在一些實施例中,資源占用情況包括以下一種或多種:資源占用量;以及運行時間。
[0015]在一些實施例中,應(yīng)用進程包括正在運行的應(yīng)用進程,以及調(diào)節(jié)單元用于:如果正在運行的應(yīng)用進程所占用的資源量超過預(yù)定資源量閾值,則結(jié)束該應(yīng)用進程。在這種情況,調(diào)節(jié)單元還可以用于:如果所占用的資源量沒有超過預(yù)定資源量閾值,并且該應(yīng)用進程的運行時間超過預(yù)定運行時間閾值,則重啟該應(yīng)用進程。
[0016]在一些實施例中,應(yīng)用進程包括即將運行的應(yīng)用進程,以及調(diào)節(jié)單元用于:如果即將運行的應(yīng)用進程所請求的資源量不超過預(yù)定資源量閾值,則允許運行該應(yīng)用進程;如果所請求的資源量超過預(yù)定資源量閾值,則拒絕運行該應(yīng)用進程。
[0017]在一些實施例中,該設(shè)備還包括:更新單元,用于更新應(yīng)用進程資源占用表。
[0018]使用本發(fā)明的方法和設(shè)備,能夠?qū)?yīng)用進程的資源占用情況進行自動監(jiān)測,并對應(yīng)用進程的運行進行調(diào)節(jié)控制。這無需用戶手工處理,從而提高了系統(tǒng)的效率和穩(wěn)定性。
【專利附圖】
【附圖說明】
[0019]通過下面結(jié)合【專利附圖】
【附圖說明】本發(fā)明的優(yōu)選實施例,將使本發(fā)明的上述及其它目標、特征和優(yōu)點更加清楚,其中:
[0020]圖1是示出了根據(jù)本發(fā)明的一些實施例的移動終端100中的示例網(wǎng)絡(luò)協(xié)議棧的框圖。
[0021]圖2示出了根據(jù)本發(fā)明的一些實施例的示例應(yīng)用進程資源占用表。
[0022]圖3是示出了根據(jù)本發(fā)明的一些實施例的資源監(jiān)測調(diào)節(jié)模塊300的示意框圖。
[0023]圖4是示出了根據(jù)本發(fā)明的一些實施例的調(diào)節(jié)應(yīng)用進程的方法400的流程圖。
[0024]圖5是示出了作為方法400的具體示例的方法500的流程圖。
[0025]圖6是示出了作為方法400的具體示例的方法600的流程圖。
[0026]圖7是示出了根據(jù)本發(fā)明的一些實施例的調(diào)節(jié)應(yīng)用進程的設(shè)備700的方框圖。
[0027]在本發(fā)明的所有附圖中,相同或相似的結(jié)構(gòu)均以相同或相似的附圖標記標識。
【具體實施方式】
[0028]下面參照附圖對本發(fā)明的優(yōu)選實施例進行詳細說明,在描述過程中省略了對于本發(fā)明來說是不必要的細節(jié)和功能,以防止對本發(fā)明的理解造成混淆。以下,以本發(fā)明應(yīng)用于無線移動通信系統(tǒng)的場景為例,對本發(fā)明進行了詳細描述。但本發(fā)明并不局限于此,本發(fā)明也可以應(yīng)用于固定通信系統(tǒng)、有線通信系統(tǒng),或者應(yīng)用于無線移動通信系統(tǒng)、固定通信系統(tǒng)、有線通信系統(tǒng)等的任意混合結(jié)構(gòu)。就移動通信系統(tǒng)而言,本發(fā)明并不局限于所涉及的各個移動通信終端的具體通信協(xié)議,可以包括(但不限于)2G、3G、4G、5G網(wǎng)絡(luò),WCDMA,CDMA2000、TD-SCDMA系統(tǒng)等,不同的移動終端可以采用相同的通信協(xié)議,也可以采用不同的通信協(xié)議。本發(fā)明并不局限于移動終端的具體操作系統(tǒng),可以包括(但不限于)iOS、Windows Mobile、Symbian、安卓等,不同的移動終端可以采用相同的操作系統(tǒng),也可以采用不同的操作系統(tǒng)。特別地,在本發(fā)明的以下實施例中,使用基于安卓平臺開發(fā)的移動通信終端作為示例,來說明本發(fā)明的理念。然而,應(yīng)當理解的是:實際上可以使用任何移動或固定通信終端來實現(xiàn)本發(fā)明的各實施例,本發(fā)明不受限于具體使用的硬件、軟件(包括操作系統(tǒng))、固件、或它們的組合等。
[0029]首先,參考圖1來說明根據(jù)本發(fā)明的一些示例實施例的移動終端100中的示例網(wǎng)絡(luò)協(xié)議棧的框圖。如圖1所示,移動終端100中具有用于處理數(shù)據(jù)報文的網(wǎng)絡(luò)協(xié)議棧110。在開放式系統(tǒng)互聯(lián)(Open System Interconnection,下文中簡稱為OSI) 7層參考模型下,該協(xié)議棧110也相應(yīng)地包括7個協(xié)議層,即:物理層111、數(shù)據(jù)鏈路層112、網(wǎng)絡(luò)層113、傳輸層114、會話層115、表示層116和應(yīng)用層117。
[0030]在本實施例中,假設(shè)移動終端100是基于安卓平臺開發(fā)的,而安卓平臺是類Linux系統(tǒng),其通??杀环譃閮?nèi)核空間(kernel space)和用戶空間(user space)。數(shù)據(jù)鏈路層
112、網(wǎng)絡(luò)層113、傳輸層114、會話層115等層的操作主要是在內(nèi)核空間中實現(xiàn)的,用戶通過系統(tǒng)調(diào)用(system calls)來調(diào)用內(nèi)核空間中的函數(shù)接口,進而處理這些層的事務(wù),而表示層116和應(yīng)用層117的操作基本上是在用戶空間中由用戶自己實現(xiàn)的,用戶需要自行編寫處理函數(shù)來處理這兩個層中的事務(wù)。當然,在其他實施例中,可以采用針對處理操作的其它內(nèi)核空間/用戶空間分布方式,本發(fā)明不限于上述分布方式。例如,會話層115的相關(guān)處理可以由用戶在用戶空間通過調(diào)用安卓系統(tǒng)的底層系統(tǒng)調(diào)用來自行實現(xiàn)。在本發(fā)明中,主要關(guān)注的是內(nèi)核空間以及應(yīng)用層117。
[0031]網(wǎng)絡(luò)層113對應(yīng)于OSI參考模型中的第3層(層3),其介于傳輸層114和數(shù)據(jù)鏈路層112之間?;跀?shù)據(jù)鏈路層112提供的在兩個相鄰端點之間傳輸數(shù)據(jù)幀的功能,網(wǎng)絡(luò)層113進一步管理網(wǎng)絡(luò)中的數(shù)據(jù)通信,將數(shù)據(jù)設(shè)法從源節(jié)點經(jīng)過若干個中間節(jié)點傳送到目標節(jié)點,從而向傳輸層114提供最基本的端到端的數(shù)據(jù)傳輸服務(wù)。
[0032]傳輸層114對應(yīng)于OSI參考模型中相對重要和關(guān)鍵的一層,其是唯一負責(zé)總體數(shù)據(jù)傳輸和數(shù)據(jù)控制的一層。傳輸層114提供用于端到端的交換數(shù)據(jù)的機制。傳輸層114為會話層115、表示層116和應(yīng)用層117等上三層提供可靠的傳輸服務(wù),向網(wǎng)絡(luò)層113提供可靠的目標節(jié)點信息。由于世界上各種通信網(wǎng)絡(luò)在性能上存在著很大差異(例如,電話交換網(wǎng)、分組交換網(wǎng)、公用數(shù)據(jù)交換網(wǎng)、局域網(wǎng)等通信網(wǎng)絡(luò)都可互連,但它們提供的吞吐量、傳輸速率、數(shù)據(jù)延遲、通信費用等各不相同),因此對于會話層115等高層來說,要求具有性能穩(wěn)定的接口。傳輸層114就承擔(dān)了這一功能。它采用分流/合流、復(fù)用/解復(fù)用等技術(shù)來調(diào)節(jié)上述通信網(wǎng)絡(luò)的差異,使會話層115感受不到這種差別。此外,傳輸層114還要具備差錯恢復(fù)、流量控制等功能,以向會話層115屏蔽通信網(wǎng)絡(luò)在這些方面的細節(jié)與差異。傳輸層114面對的數(shù)據(jù)對象不是網(wǎng)絡(luò)地址和主機地址,而是和會話層115的界面端口。
[0033]應(yīng)用層117對應(yīng)于OSI參考模型的第7層。應(yīng)用層117直接和應(yīng)用程序的本地進程交互并提供常見的網(wǎng)絡(luò)應(yīng)用服務(wù)。應(yīng)用層117也向表示層116發(fā)出請求。應(yīng)用層117是OSI參考模型的最高層,其是直接為應(yīng)用進程提供服務(wù)的。其作用是在實現(xiàn)多個系統(tǒng)應(yīng)用進程相互通信的同時,完成一系列業(yè)務(wù)處理所需的服務(wù)。
[0034]本發(fā)明的主要思路在于,通過在內(nèi)核(例如圖1所示的數(shù)據(jù)鏈路層112、網(wǎng)絡(luò)層
113、傳輸層114或會話層115)通過C++和JAVA等編程語言來實現(xiàn)針對應(yīng)用進程的資源監(jiān)測和調(diào)節(jié)。內(nèi)核中的模塊可以通過例如系統(tǒng)啟動Linux模塊加載方式進行啟動。還可以通過應(yīng)用層(例如圖1所示的應(yīng)用層117)配置和管理在資源調(diào)節(jié)中應(yīng)用的參數(shù)。應(yīng)用層中的模塊可以通過系統(tǒng)啟動Service方式進行。
[0035]下面將簡要描述資源監(jiān)測和調(diào)節(jié)在內(nèi)核和應(yīng)用層中的實現(xiàn)流程。
[0036]第一,修改系統(tǒng)R0M,將資源監(jiān)測調(diào)節(jié)內(nèi)核模塊放入系統(tǒng)啟動模塊序列中;在系統(tǒng)啟動加載系統(tǒng)基本模塊后,加載該模塊,同時在用戶空間預(yù)分配共享內(nèi)存,并將內(nèi)存地址信息寫入臨時目錄特定命名文件A中,然后進入守護狀態(tài)。
[0037]第二,在完成系統(tǒng)關(guān)鍵功能啟動后,啟動資源監(jiān)測調(diào)節(jié)應(yīng)用層服務(wù),進入守護進程狀態(tài),并判斷是否已經(jīng)完成系統(tǒng)啟動;如果已經(jīng)完成啟動,則讀取A中的地址信息,通過約定的數(shù)據(jù)交互模式,在共享內(nèi)存中的指定位置寫入動作標志位C。這里的數(shù)據(jù)交互模式例如基于內(nèi)核空間與用戶空間之間的數(shù)據(jù)傳遞機制和內(nèi)存共享方式來實現(xiàn)對數(shù)據(jù)的共享訪問。
[0038]第三,資源監(jiān)測調(diào)節(jié)內(nèi)核模塊以固定時間間隔T讀取共享內(nèi)存中的動作標志位C ;如果C表明系統(tǒng)啟動已經(jīng)完成,則資源監(jiān)測調(diào)節(jié)內(nèi)核模塊會通過內(nèi)核高權(quán)限特性,讀取當前所有非關(guān)鍵系統(tǒng)進程之外的所有應(yīng)用進程的狀態(tài)信息,包括六個當前信息:進程名、PID (Process Identifier,進程標識符)、占用內(nèi)存、CPU占用、開始運行時間和持續(xù)運行時間。
[0039]第四,資源監(jiān)測調(diào)節(jié)內(nèi)核模塊利用監(jiān)測到的所有信息來構(gòu)造當前應(yīng)用進程的資源占用狀況表,也稱為“應(yīng)用進程資源占用表”。
[0040]圖2示出了根據(jù)本發(fā)明的一些實施例的應(yīng)用進程資源占用表,該表示意了一個示例進程的六個當前信息。如圖2所示,資源監(jiān)測調(diào)節(jié)內(nèi)核模塊監(jiān)測到了名為“qq”的進程在“2013 / 09 / 28 / 09:02”開始運行,持續(xù)了 97分鐘。該進程的PIC為1301,并且占用了12M的內(nèi)存和2%的CPU。
[0041]下面將以圖3為例來說明本發(fā)明的總的發(fā)明構(gòu)思。
[0042]圖3是示出了根據(jù)本發(fā)明的一些實施例的資源監(jiān)測調(diào)節(jié)模塊300的示意框圖。
[0043]如圖3所示,根據(jù)本發(fā)明的資源監(jiān)測調(diào)節(jié)模塊300由監(jiān)測功能模塊310和調(diào)節(jié)功能模塊320這兩部分組成。
[0044]可選地,資源監(jiān)測調(diào)節(jié)模塊300還可以包括參數(shù)管理配置功能模塊330。參數(shù)管理配置功能模塊330可以在應(yīng)用層中實現(xiàn)為應(yīng)用層模塊。例如,利用在應(yīng)用層上實現(xiàn)的參數(shù)管理配置功能模塊330,用戶可以通過例如用戶界面(UI)查看如圖2所示的資源占用狀況,也可以根據(jù)經(jīng)驗值或者根據(jù)實際需求對占用資源C(例如,內(nèi)存(C1)、CPU(C2))閥值、運行時間閥值R、信息采集頻率F、是否云端數(shù)據(jù)處理CR和數(shù)據(jù)上傳時間TU等信息進行配置。另外,還可以將配置結(jié)果V寫入到SD卡指定位置,同時將該配置結(jié)果V同步到共享內(nèi)存指定位置。
[0045]參數(shù)管理配置功能模塊330也可以在內(nèi)核中實現(xiàn)為內(nèi)核模塊。在這種情況下,占用資源C(例如,內(nèi)存(C1)、CPU(C2))閥值、運行時間閥值R、信息采集頻率F、是否云端數(shù)據(jù)處理CR和數(shù)據(jù)上傳時間TU等信息可以是預(yù)配置的,并且可以從本地或遠程獲得。
[0046]可選地,資源監(jiān)測調(diào)節(jié)模塊300還可以包括更新功能模塊340,用于更新如圖2所示的“應(yīng)用進程資源占用表”,并將日志寫入指定位置。
[0047]監(jiān)測功能模塊310、調(diào)節(jié)功能模塊320和更新功能模塊340均可以以內(nèi)核模塊的方式實現(xiàn)。內(nèi)核模塊啟動監(jiān)測功能模塊310之后,該功能首先讀取共享內(nèi)存中的配置結(jié)果V,以獲得相應(yīng)的調(diào)節(jié)閾值,從而形成監(jiān)測調(diào)節(jié)閾值開關(guān)。
[0048]監(jiān)測功能模塊310可以監(jiān)測正在運行的應(yīng)用進程、即將運行的應(yīng)用進程或即將退出的應(yīng)用進程。調(diào)節(jié)功能模塊320可以根據(jù)監(jiān)測功能模塊310的監(jiān)測結(jié)果來調(diào)節(jié)各種應(yīng)用進程的運行。下面將分別針對正在運行的應(yīng)用進程、即將運行的應(yīng)用進程或即將退出的應(yīng)用進程這三種應(yīng)用進程,對根據(jù)本發(fā)明的資源監(jiān)測調(diào)節(jié)模塊300進行詳細描述。
[0049]正在運行的應(yīng)用進程
[0050]監(jiān)測功能模塊310對所有正在運行的應(yīng)用進程(主要是非系統(tǒng)關(guān)鍵應(yīng)用進程)的資源占用狀況和運行時間信息進行監(jiān)測和采集,在內(nèi)存中形成運行狀況列表(即,應(yīng)用進程資源占用表),然后采用順序查詢該列表方式對監(jiān)測到的應(yīng)用進程占用信息進行檢測。
[0051]如果發(fā)現(xiàn)應(yīng)用進程占用的資源量超過預(yù)定資源量閾值,例如內(nèi)存大于閾值Cl或CPU占用情況大于閥值C2,則監(jiān)測功能模塊310通過系統(tǒng)消息機制告知用戶該應(yīng)用進程占用的資源量超過預(yù)定資源量閾值。這里的預(yù)定資源量閾值可以是用戶定義的。
[0052]此時,調(diào)節(jié)功能模塊320將直接結(jié)束該應(yīng)用進程。更新功能模塊340更新“應(yīng)用進程資源占用表”,同時將日志通過明文方式寫入到SD卡中指定位置,例如/ sdcard /rscmonitor / running_log。
[0053]如果應(yīng)用進程沒有超過預(yù)定資源量閾值(例如,閥值C),那么調(diào)節(jié)功能模塊320可以檢查該應(yīng)用進程的運行時間是否已經(jīng)超過預(yù)定運行時間閾值,例如運行時間閥值R。如果超過預(yù)定運行時間閾值,則監(jiān)測功能模塊310通過系統(tǒng)消息機制告知用戶該應(yīng)用進程已經(jīng)超過設(shè)定運行時間。同時,調(diào)節(jié)功能模塊320將重啟該應(yīng)用進程。更新功能模塊340可以將“應(yīng)用進程資源占用表”進行更新,同時將日志通過明文方式寫入到SD卡中指定位置,例如 / sdcard / rscmonitor / running_log。
[0054]即將運行的應(yīng)用進程
[0055]當有一非系統(tǒng)關(guān)鍵應(yīng)用進程請求運行時,監(jiān)測功能模塊310檢查其內(nèi)存申請資源請求所請求的資源量是否超過允許預(yù)定資源量閾值,例如閥值Cl。如果超過預(yù)定資源量閾值,則調(diào)節(jié)功能模塊320可以直接拒絕該應(yīng)用運行請求。同時,更新功能模塊340將日志通過明文方式寫入到SD卡中指定位置,例如/ sdcard / rscmonitor / request_log。
[0056]如果沒有超過預(yù)定資源量閾值,則調(diào)節(jié)功能模塊320將通過該應(yīng)用進程的運行申請請求,并由監(jiān)測功能模塊310監(jiān)控其啟動過程。當該應(yīng)用啟動完畢后,更新功能模塊340將更新“應(yīng)用進程資源占用表”,同時,將日志更新到SD卡中指定位置,例如/ sdcard /rscmonitor / request_log。
[0057]即將退出的應(yīng)用進程
[0058]監(jiān)測功能模塊310對即將退出的應(yīng)用進程進行監(jiān)測并對其運行時間資源進行采集。監(jiān)測功能模塊310監(jiān)測其完成退出后,重新統(tǒng)計系統(tǒng)可用資源,用于后續(xù)可用資源判斷依據(jù)。同時,更新功能模塊340更新“應(yīng)用進程資源占用表”,并將操作日志寫入到SD卡指定位置/ sdcard / rscmonitor / quit_log。該日志可以用于下次請求運行相同應(yīng)用時,對該應(yīng)用所請求的資源進行評估。例如,假設(shè)監(jiān)測功能模塊310檢測到即將退出的應(yīng)用進程占用了 IM內(nèi)存,并由更新功能模塊340記錄了這一信息。那么,如果該應(yīng)用進程下一次請求10M內(nèi)存,則監(jiān)測功能模塊310可以通過查詢“應(yīng)用進程資源占用表”來判定該請求為異常請求。[0059]另外,監(jiān)測功能模塊310還可以讀取內(nèi)存中CR和TU配置信息,并判斷是否可以將監(jiān)測到的數(shù)據(jù)上傳到云端。如果是,根據(jù)TU配置信息,決定上傳時間點。然后,監(jiān)測功能模塊310在該時間點收集當前內(nèi)存中所有監(jiān)測信息和日志信息,并使用zip方式進行加密壓縮,然后通過與云端(例如,網(wǎng)秦云平臺)之間約定的加密傳輸通道進行上傳,以用于后續(xù)大數(shù)據(jù)分析和處理,從而得出應(yīng)用進程運行狀態(tài)規(guī)律分析。
[0060]圖4是示出了根據(jù)本發(fā)明的一些實施例的調(diào)節(jié)應(yīng)用進程的方法400的流程圖,圖5和圖6分別示出了作為方法400的具體示例的方法500和方法600。方法400?600均可以在系統(tǒng)內(nèi)核中實現(xiàn),也可以在系統(tǒng)內(nèi)核和應(yīng)用層中一起實現(xiàn)。如圖4所示,方法400可以包括步驟S410、S420和S430,其中步驟S430是可選的。如圖5所示,方法500可以包括步驟 S510、S520、S530、S540 和 S550。如圖 6 所示,方法 600 可以包括步驟 S610、S620、S630和S640。根據(jù)本發(fā)明,方法400?600的一些步驟可以單獨執(zhí)行或組合執(zhí)行,以及可以并行執(zhí)行或順序執(zhí)行,并不局限于圖4?6所示的具體操作順序。在一些實施例中,方法400?600可以由圖7所示的設(shè)備700來執(zhí)行。在另一些實施例中,方法400?600可以由圖1所示的移動終端100或圖3所示的資源監(jiān)測調(diào)節(jié)模塊300來執(zhí)行。
[0061]圖7是示出了根據(jù)本發(fā)明的一些實施例的設(shè)備700的方框圖,該設(shè)備700可以調(diào)節(jié)應(yīng)用進程的運行。如圖7所示,設(shè)備700可以包括監(jiān)測單元710、調(diào)節(jié)單元720和更新單元730,其中更新單元730是可選的。
[0062]監(jiān)測單元710用于監(jiān)測應(yīng)用進程的資源占用情況。監(jiān)測單元710可以是設(shè)備700的中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微處理器、微控制器等等,其可以與設(shè)備700的存儲設(shè)備(例如、硬盤、軟盤、光盤、磁帶等)等相配合,以監(jiān)測應(yīng)用進程的資源占用情況。根據(jù)本發(fā)明的一些實施例,資源占用情況包括以下一種或多種:資源占用量,例如占用內(nèi)存或CPU占用;以及運行時間。
[0063]調(diào)節(jié)單元720用于根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。調(diào)節(jié)單元720可以是設(shè)備700的中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微處理器、微控制器等等,其可以與設(shè)備700的存儲設(shè)備(例如、硬盤、軟盤、光盤、磁帶等)等相配合,以根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。
[0064]根據(jù)本發(fā)明的一些實施例,應(yīng)用進程可以包括正在運行的應(yīng)用進程。在這種情況下,調(diào)節(jié)單元720可以用于:如果正在運行的應(yīng)用進程所占用的資源量超過預(yù)定資源量閾值,則結(jié)束該應(yīng)用進程。進一步地,調(diào)節(jié)單元720還可以用于:如果所占用的資源量沒有超過預(yù)定資源量閾值,并且該應(yīng)用進程的運行時間超過預(yù)定運行時間閾值,則重啟該應(yīng)用進程。預(yù)定資源量閾值和預(yù)定運行時間閾值可以通過應(yīng)用層由用戶配置,或者可以在內(nèi)核中預(yù)配置。
[0065]根據(jù)本發(fā)明的一些實施例,應(yīng)用進程包括即將運行的應(yīng)用進程。在這種情況下,調(diào)節(jié)單元720可以用于:如果即將運行的應(yīng)用進程所請求的資源量不超過預(yù)定資源量閾值,則允許運行該應(yīng)用進程;如果所請求的資源量超過預(yù)定資源量閾值,則拒絕運行該應(yīng)用進程。
[0066]更新單元730用于更新應(yīng)用進程資源占用表,例如如圖2所示的應(yīng)用進程資源占用表。更新單元730可以是設(shè)備700的中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微處理器、微控制器等等,其可以與設(shè)備700的存儲設(shè)備(例如、硬盤、軟盤、光盤、磁帶等)等相配合,以根據(jù)監(jiān)測單元710所監(jiān)測到的應(yīng)用進程的資源情況以及經(jīng)調(diào)節(jié)單元720調(diào)節(jié)后的應(yīng)用進程的運行狀況來更新應(yīng)用進程資源占用表。
[0067]應(yīng)注意,設(shè)備700中的兩個或多個不同單元可以在邏輯上或物理上組合在一起。例如,監(jiān)測單元710和調(diào)節(jié)單元720可以組合成一個單元,由設(shè)備700中的中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微處理器、微控制器來統(tǒng)一實現(xiàn)。
[0068]根據(jù)本發(fā)明的一些實施例,設(shè)備700可以由如圖1所示的移動終端100之類的移動終端或者如傳統(tǒng)的PC (Personal Computer,個人電腦)、筆記本電腦之類的固定終端來實現(xiàn)。
[0069]以下將結(jié)合圖1?7,對根據(jù)本發(fā)明實施例的調(diào)節(jié)應(yīng)用進程的方法400?600和設(shè)備700進行詳細的描述。應(yīng)當注意,本發(fā)明實施例的方法400?600和設(shè)備700可以在圖1所示的移動終端100中實現(xiàn),但本發(fā)明并不局限于此。
[0070]在步驟S410,設(shè)備700的監(jiān)測單元710監(jiān)測應(yīng)用進程的資源占用情況。根據(jù)本發(fā)明的一些實施例,資源占用情況包括以下一種或多種:資源占用量,例如占用內(nèi)存或CPU占用;以及運行時間。
[0071]在步驟S420,設(shè)備700的調(diào)節(jié)單元720根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。
[0072]在步驟S430,設(shè)備700的更新單元730對應(yīng)用進程資源占用表進行更新。例如,更新單元730可以根據(jù)監(jiān)測單元710所監(jiān)測到的應(yīng)用進程的資源情況以及經(jīng)調(diào)節(jié)單元720調(diào)節(jié)后的應(yīng)用進程的運行狀況來更新應(yīng)用進程資源占用表。
[0073]根據(jù)本發(fā)明的一些實施例,應(yīng)用進程可以包括正在運行的應(yīng)用進程。方法500涉及調(diào)節(jié)正在運行的應(yīng)用進程的運行。
[0074]在步驟S510,設(shè)備700的監(jiān)測單元710檢查正在運行的應(yīng)用進程所占用的資源量是否超過預(yù)定資源量閾值。預(yù)定資源量閾值可以通過應(yīng)用層由用戶配置,或者可以在內(nèi)核中預(yù)配置。
[0075]如果步驟S510的檢查結(jié)果為是,則方法500前進到步驟S520 ;如果為否,則方法500前進行步驟S530。
[0076]在步驟S520,設(shè)備700的調(diào)節(jié)單元720直接結(jié)束該應(yīng)用進程。然后,方法500前進到步驟S550。
[0077]在步驟S530,設(shè)備700的監(jiān)測單元710進一步檢查該應(yīng)用進程的運行時間是否超過預(yù)定運行時間閾值。如果是,則方法500前進到步驟S540 ;如果否,則方法500前進行步驟S550。預(yù)定運行時間閾值可以通過應(yīng)用層由用戶配置,或者可以在內(nèi)核中預(yù)配置。
[0078]在步驟S540,設(shè)備700的調(diào)節(jié)單元720重啟該應(yīng)用進程,即,使得該應(yīng)用進程重新運行。然后,方法500前進到步驟S550。
[0079]在步驟S550,設(shè)備700的更新單元730根據(jù)監(jiān)測單元710所監(jiān)測到的應(yīng)用進程的資源情況以及經(jīng)調(diào)節(jié)單元720調(diào)節(jié)后的應(yīng)用進程的運行狀況來更新應(yīng)用進程資源占用表。例如,設(shè)備700的更新單元730可以將“應(yīng)用進程資源占用表”進行更新,同時將日志通過明文方式寫入到SD卡中的指定位置,例如/ sdcard / rscmonitor / running_log。
[0080]根據(jù)本發(fā)明的一些實施例,應(yīng)用進程可以包括即將運行的應(yīng)用進程。方法600涉及調(diào)節(jié)即將運行的應(yīng)用進程的運行。[0081]在步驟S610,設(shè)備700的監(jiān)測單元710檢查即將運行的應(yīng)用進程所請求的資源量是否超過預(yù)定資源量閾值。預(yù)定資源量閾值可以通過應(yīng)用層由用戶配置,或者可以在內(nèi)核中預(yù)配置。
[0082]如果步驟S610的檢查結(jié)果為是,則方法600前進到步驟S620 ;如果為否,則方法600前進行步驟S630。
[0083]在步驟S620,設(shè)備700的調(diào)節(jié)單元720直接拒絕運行該應(yīng)用進程,即,終止運行該應(yīng)用進程的請求。然后,方法600前進到步驟S640,其中由設(shè)備700的更新單元730將日志通過明文方式寫入到SD卡中的指定位置,例如/ sdcard / rscmonitor / mnning_log。
[0084]在步驟S630,設(shè)備700的調(diào)節(jié)單元720接受了運行該應(yīng)用進程的請求,并允許運行該應(yīng)用進程。然后,方法600前進到步驟S640,其中由設(shè)備700的更新單元730根據(jù)監(jiān)測單元710所監(jiān)測到的應(yīng)用進程的資源情況以及經(jīng)調(diào)節(jié)單元720調(diào)節(jié)后的應(yīng)用進程的運行狀況來更新應(yīng)用進程資源占用表。例如,設(shè)備700的更新單元730可以將“應(yīng)用進程資源占用表”進行更新,同時將日志通過明文方式寫入到SD卡中的指定位置,例如/ sdcard /rscmonitor / mnning_log。
[0085]在本發(fā)明的一些實施例中,設(shè)備700的監(jiān)測單元710還可以進一步判斷是否可以將監(jiān)測到的數(shù)據(jù)上傳至云端。如果是,根據(jù)TU配置信息,決定上傳時間點。然后,設(shè)備700的監(jiān)測單元710可以在該時間點收集當前內(nèi)存中所有監(jiān)測信息和日志信息,并使用zip方式進行加密壓縮,然后通過與云端(例如,網(wǎng)秦云平臺)之間約定的加密傳輸通道進行上傳,以用于后續(xù)大數(shù)據(jù)分析和處理,從而得出應(yīng)用進程運行狀態(tài)規(guī)律分析。
[0086]在本發(fā)明的一些實施例中,應(yīng)用進程也可以是即將退出的應(yīng)用進程。設(shè)備700的監(jiān)測單元710可以對即將退出的應(yīng)用進程進行監(jiān)測并對其運行時間資源進行采集。同時,設(shè)備700的監(jiān)測單元710可以在該應(yīng)用進程退出之后,重新統(tǒng)計系統(tǒng)可用資源,以用于后續(xù)可用資源判斷依據(jù)。此外,設(shè)備700的更新單元730也可以更新“應(yīng)用進程資源占用表”,并將操作日志寫入到SD卡指定位置,例如/ sdcard / rscmonitor / quit_log。例如,假設(shè)監(jiān)測單元710檢測到即將退出的應(yīng)用進程占用了 IM內(nèi)存,并由監(jiān)測單元710記錄了這一信息。那么,如果該應(yīng)用下一次請求10M內(nèi)存,監(jiān)測單元710可以通過查詢“應(yīng)用進程資源占用表”來判定該請求為異常請求。
[0087]至此已經(jīng)結(jié)合優(yōu)選實施例對本發(fā)明進行了描述。應(yīng)該理解,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍的情況下,可以進行各種其它的改變、替換和添加。因此,本發(fā)明的范圍不局限于上述特定實施例,而應(yīng)由所附權(quán)利要求所限定。
【權(quán)利要求】
1.一種用于調(diào)節(jié)應(yīng)用進程的方法,包括以下步驟: 監(jiān)測應(yīng)用進程的資源占用情況;以及 根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。
2.根據(jù)權(quán)利要求1所述的方法,其中,資源占用情況包括以下一種或多種: 資源占用量;以及 運行時間。
3.根據(jù)權(quán)利要求1所述的方法,其中,應(yīng)用進程包括正在運行的應(yīng)用進程,以及根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行的步驟包括: 如果正在運行的應(yīng)用進程所占用的資源量超過預(yù)定資源量閾值,則結(jié)束該應(yīng)用進程。
4.根據(jù)權(quán)利要求3所述的方法,其中,根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行的步驟還包括: 如果所占用的資源量沒有超過預(yù)定資源量閾值,并且該應(yīng)用進程的運行時間超過預(yù)定運行時間閾值,則重啟該應(yīng)用進程。
5.根據(jù)權(quán)利要求1所述的方法,其中,應(yīng)用進程包括即將運行的應(yīng)用進程,以及根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行的步驟包括: 如果即將運行的應(yīng)用進程所請求的資源量不超過預(yù)定資源量閾值,則允許運行該應(yīng)用進程;以及 如果所請求的資源量超過預(yù)定資源量閾值,則拒絕運行該應(yīng)用進程。
6.根據(jù)權(quán)利要求1至5中任一項所述的方法,還包括: 更新應(yīng)用進程資源占用表。
7.一種用于調(diào)節(jié)應(yīng)用進程的設(shè)備,包括: 監(jiān)測單元,用于監(jiān)測應(yīng)用進程的資源占用情況;以及 調(diào)節(jié)單元,用于根據(jù)監(jiān)測到的資源占用情況來調(diào)節(jié)應(yīng)用進程的運行。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其中,資源占用情況包括以下一種或多種: 資源占用量;以及 運行時間。
9.根據(jù)權(quán)利要求7所述的設(shè)備,其中,應(yīng)用進程包括正在運行的應(yīng)用進程,以及調(diào)節(jié)單元用于: 如果正在運行的應(yīng)用進程所占用的資源量超過預(yù)定資源量閾值,則結(jié)束該應(yīng)用進程。
10.根據(jù)權(quán)利要求9所述的設(shè)備,其中,調(diào)節(jié)單元還用于: 如果所占用的資源量沒有超過預(yù)定資源量閾值,并且該應(yīng)用進程的運行時間超過預(yù)定運行時間閾值,則重啟該應(yīng)用進程。
11.根據(jù)權(quán)利要求7所述的設(shè)備,其中,應(yīng)用進程包括即將運行的應(yīng)用進程,以及調(diào)節(jié)單元用于: 如果即將運行的應(yīng)用進程所請求的資源量不超過預(yù)定資源量閾值,則允許運行該應(yīng)用進程;以及 如果所請求的資源量超過預(yù)定資源量閾值,則拒絕運行該應(yīng)用進程。
12.根據(jù)權(quán)利要求7至11中任一項所述的設(shè)備,還包括: 更新單元,用于更新應(yīng)用進程資源占用表。
【文檔編號】G06F9/48GK103530193SQ201310535488
【公開日】2014年1月22日 申請日期:2013年11月1日 優(yōu)先權(quán)日:2013年11月1日
【發(fā)明者】陳繼 申請人:北京網(wǎng)秦天下科技有限公司