新四季網

一種進程處理方法、移動終端以及計算機可讀存儲介質與流程

2023-11-10 16:37:47 2

本發明涉及移動通信
技術領域:
:,尤其涉及一種進程處理方法、移動終端以及計算機可讀存儲介質。
背景技術:
::隨著網際網路的發展和終端的普及,終端的用戶群越來越大,同時也對軟體提出了更多智能,人性化的需求。在現有的技術中,其實終端,雖然被用戶作為一個遊戲機或電視機,還可能是一個學習機,還可能成為小寶寶的樂園等等,給我們的生活帶來更多的樂趣。隨著通訊產品的更新換代,移動終端(例如手機、個人數位化助理pda等)已成為人們必備的通訊工具。各種方便人們生活的功能都能在移動終端上實現,例如手機電視、gps、行動支付等等,都需要移動終端接入到網際網路才能實現。隨著電子產業的快速發展,移動終端智能化程度越來越高。移動終端研發公司也越來越注重智能化,人性化設計。在此移動終端快速發展的背景下,終端的便捷操作和人性化設計成為移動終端不可忽視的一部分。android智能移動終端系統是一個開放的平臺。為rom的定製和個性化需求打開了方便之門。andorid智能移動系統可以說在智能移動終端的佔比是相當大,也深受消費者的歡迎。隨著google以及國內外的各大rom廠商的定製修改,android更能夠迎合消費者的及時需求,更貼近市場前沿,更能及時的捕獲最新的消費需求。甚至於android資深系統發燒友可以下載開源的原始碼進行修改編譯後放在網上發布。總之來說,android系統的開放性讓每個想接觸的人都可以進行深入的了解。然而,由於其開放性,惡意的軟體也被某些惡搞的人看在了眼裡。其中之一就殭屍是zombies進程的大量產生,導致系統進程號消耗殆盡;只有重新啟動移動終端才能繼續使用,否則移動終端根本無法繼續運行。在android系統中,子進程退出的時候,內核釋放該進程所有的資源,比如文件描述符,內存,等等,但是依然為該進程保留一定的信息,只有該進程的父進程顯式的回收其資源之後才會釋放掉這些保留的信息。如果父進程沒有顯示回收,那么子進程就變成了zombies進程。android系統是一個多進程系統,系統同時運行大量的進程。進程根據需要不斷的經歷創建、運行、消亡的過程。每個進程在被創建之後,會被賦予一個系統唯一的進程號。如果存在惡意程序,不斷的產生大量的zombies進程,會迅速的消耗掉有限的進程號,導致系統無法產生新的進程。這樣,系統就無法正常工作,給用戶的體驗和系統的穩定性造成一定影響。針對相關技術中如果存在惡意程序不斷產生大量的殭屍進程會迅速的消耗掉有限的進程號,導致系統無法正常工作的問題,目前尚未提出解決方案。技術實現要素:本發明的主要目的在於提出一種進程處理方法、移動終端以及計算機可讀存儲介質,旨在解決相關技術中如果存在惡意程序不斷產生大量的殭屍進程會迅速的消耗掉有限的進程號,導致系統無法正常工作的問題。為實現上述目的,本發明實施例提出一種進程處理方法,包括:通過低內存管理機制對被殺掉的進程進行輪詢;對殭屍狀態的進程進行統計,其中,所述殭屍狀態為父進程在未顯示回收的情況下,子進程所處的狀態;判斷殭屍狀態的進程是否為惡意產生的殭屍進程;在判斷結果為是的情況下,清除所述惡意產生的殭屍進程。優選地,在對殭屍狀態的進程進行統計之前,所述方法還包括:通過確定每個進程的父進程是否未顯示回收的方式,確定每個進程的狀態是否為殭屍狀態。優選地,對殭屍殭屍狀態的進程進行統計包括:對所述殭屍狀態的進程的信息進行分類緩存,其中,所述殭屍狀態的進程的信息種類包括惡意和非惡意。優選地,在清除所述惡意產生的殭屍進程之後,所述方法還包括:將被清除的所述惡意產生的殭屍進程的信息從緩存中刪除。優選地,判斷殭屍狀態的進程是否為惡意產生的殭屍進程包括:對緩存的所有進程按照預先設置的規則進行匹配,判斷所述殭屍狀態的進程是否符合所述預先設置的規則。優選地,清除所述惡意產生的殭屍進程包括:查詢所述惡意產生的殭屍進程孵化的子進程;殺掉正在運行的所述子進程,同時卸載所述惡意產生的殭屍進程。根據本發明實施例的另一方面,還提供了一種移動終端,所述移動終端包括處理器、存儲器及通信總線;所述通信總線用於實現處理器和存儲器之間的連接通信;所述處理器用於執行存儲器中存儲的進程處理程序,以實現以下步驟:通過低內存管理機制對被殺掉的進程進行輪詢;對殭屍狀態的進程進行統計,其中,所述殭屍狀態為父進程在未顯示回收的情況下,子進程所處的狀態;判斷殭屍狀態的進程是否為惡意產生的殭屍進程;在判斷結果為是的情況下,清除所述惡意產生的殭屍進程。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:在對殭屍狀態的進程進行統計之前,通過確定每個進程的父進程是否未顯示回收的方式,確定每個進程的狀態是否為殭屍狀態。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:對所述殭屍a狀態的進程的信息進行分類緩存,其中,所述殭屍a狀態的進程的信息種類包括惡意和非惡意。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:在清除所述惡意產生的殭屍進程之後,將被清除的所述惡意產生的殭屍進程的信息從緩存中刪除。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:對緩存的所有進程按照預先設置的規則進行匹配,判斷所述殭屍狀態的進程是否符合所述預先設置的規則。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:查詢所述惡意產生的殭屍進程孵化的子進程;殺掉正在運行的所述子進程,同時卸載所述惡意產生的殭屍進程。根據本發明實施例的另一方面,還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執行,以實現上述進程處理方法的步驟。通過本發明,通過低內存管理機制對被殺掉的進程進行輪詢;對殭屍狀態的進程進行統計,其中,所述殭屍狀態為父進程在未顯示回收的情況下,子進程所處的狀態;判斷殭屍狀態的進程是否為惡意產生的殭屍進程;在判斷結果為是的情況下,清除所述惡意產生的殭屍進程,解決了相關技術中如果存在惡意程序不斷產生大量的殭屍進程會迅速的消耗掉有限的進程號,導致系統無法正常工作的問題,通過找出惡意產生的殭屍進程並清除,使得進程號不被惡意消耗,提高了用戶體驗。附圖說明圖1為實現本發明各個實施例一可選的移動終端的硬體結構示意圖;圖2為如圖1所示的移動終端的無線通信系統示意圖;圖3是根據本發明實施例的進程處理方法的流程圖;圖4是根據本發明實施例的程序清楚的示意圖;圖5是根據本發明實施例的音量調節的示意圖二;圖6是根據本發明實施例的進程處理的移動終端的框圖。本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。具體實施方式應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。在後續的描述中,使用用於表示元件的諸如「模塊」、「部件」或「單元」的後綴僅為了有利於本發明的說明,其本身沒有特定的意義。因此,「模塊」、「部件」或「單元」可以混合地使用。終端可以以各種形式來實施。例如,本發明中描述的終端可以包括諸如手機、平板電腦、筆記本電腦、掌上電腦、個人數字助理(personaldigitalassistant,pda)、便捷式媒體播放器(portablemediaplayer,pmp)、導航裝置、可穿戴設備、智能手環、計步器等移動終端,以及諸如數字tv、臺式計算機等固定終端。後續描述中將以移動終端為例進行說明,本領域技術人員將理解的是,除了特別用於移動目的的元件之外,根據本發明的實施方式的構造也能夠應用於固定類型的終端。請參閱圖1,其為實現本發明各個實施例的一種移動終端的硬體結構示意圖,該移動終端100可以包括:rf(radiofrequency,射頻)單元101、wifi模塊102、音頻輸出單元103、a/v(音頻/視頻)輸入單元104、傳感器105、顯示單元106、用戶輸入單元107、接口單元108、存儲器109、處理器110、以及電源111等部件。本領域技術人員可以理解,圖1中示出的移動終端結構並不構成對移動終端的限定,移動終端可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。下面結合圖1對移動終端的各個部件進行具體的介紹:射頻單元101可用於收發信息或通話過程中,信號的接收和發送,具體的,將基站的下行信息接收後,給處理器110處理;另外,將上行的數據發送給基站。通常,射頻單元101包括但不限於天線、至少一個放大器、收發信機、耦合器、低噪聲放大器、雙工器等。此外,射頻單元101還可以通過無線通信與網絡和其他設備通信。上述無線通信可以使用任一通信標準或協議,包括但不限於gsm(globalsystemofmobilecommunication,全球移動通訊系統)、gprs(generalpacketradioservice,通用分組無線服務)、cdma2000(codedivisionmultipleaccess2000,碼分多址2000)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時分同步碼分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,頻分雙工長期演進)和tdd-lte(timedivisionduplexing-longtermevolution,分時雙工長期演進)等。wifi屬於短距離無線傳輸技術,移動終端通過wifi模塊102可以幫助用戶收發電子郵件、瀏覽網頁和訪問流式媒體等,它為用戶提供了無線的寬帶網際網路訪問。雖然圖1示出了wifi模塊102,但是可以理解的是,其並不屬於移動終端的必須構成,完全可以根據需要在不改變發明的本質的範圍內而省略。音頻輸出單元103可以在移動終端100處於呼叫信號接收模式、通話模式、記錄模式、語音識別模式、廣播接收模式等等模式下時,將射頻單元101或wifi模塊102接收的或者在存儲器109中存儲的音頻數據轉換成音頻信號並且輸出為聲音。而且,音頻輸出單元103還可以提供與移動終端100執行的特定功能相關的音頻輸出(例如,呼叫信號接收聲音、消息接收聲音等等)。音頻輸出單元103可以包括揚聲器、蜂鳴器等等。a/v輸入單元104用於接收音頻或視頻信號。a/v輸入單元104可以包括圖形處理器(graphicsprocessingunit,gpu)1041和麥克風1042,圖形處理器1041對在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置(如攝像頭)獲得的靜態圖片或視頻的圖像數據進行處理。處理後的圖像幀可以顯示在顯示單元106上。經圖形處理器1041處理後的圖像幀可以存儲在存儲器109(或其它存儲介質)中或者經由射頻單元101或wifi模塊102進行發送。麥克風1042可以在電話通話模式、記錄模式、語音識別模式等等運行模式中經由麥克風1042接收聲音(音頻數據),並且能夠將這樣的聲音處理為音頻數據。處理後的音頻(語音)數據可以在電話通話模式的情況下轉換為可經由射頻單元101發送到移動通信基站的格式輸出。麥克風1042可以實施各種類型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發送音頻信號的過程中產生的噪聲或者幹擾。移動終端100還包括至少一種傳感器105,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光線的明暗來調節顯示面板1061的亮度,接近傳感器可在移動終端100移動到耳邊時,關閉顯示面板1061和/或背光。作為運動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用於識別手機姿態的應用(比如橫豎屏切換、相關遊戲、磁力計姿態校準)、振動識別相關功能(比如計步器、敲擊)等;至於手機還可配置的指紋傳感器、壓力傳感器、虹膜傳感器、分子傳感器、陀螺儀、氣壓計、溼度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。顯示單元106用於顯示由用戶輸入的信息或提供給用戶的信息。顯示單元106可包括顯示面板1061,可以採用液晶顯示器(liquidcrystaldisplay,lcd)、有機發光二極體(organiclight-emittingdiode,oled)等形式來配置顯示面板1061。用戶輸入單元107可用於接收輸入的數字或字符信息,以及產生與移動終端的用戶設置以及功能控制有關的鍵信號輸入。具體地,用戶輸入單元107可包括觸控面板1071以及其他輸入設備1072。觸控面板1071,也稱為觸控螢幕,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1071上或在觸控面板1071附近的操作),並根據預先設定的程式驅動相應的連接裝置。觸控面板1071可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,並檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,並將它轉換成觸點坐標,再送給處理器110,並能接收處理器110發來的命令並加以執行。此外,可以採用電阻式、電容式、紅外線以及表面聲波等多種類型實現觸控面板1071。除了觸控面板1071,用戶輸入單元107還可以包括其他輸入設備1072。具體地,其他輸入設備1072可以包括但不限於物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、滑鼠、操作杆等中的一種或多種,具體此處不做限定。進一步的,觸控面板1071可覆蓋顯示面板1061,當觸控面板1071檢測到在其上或附近的觸摸操作後,傳送給處理器110以確定觸摸事件的類型,隨後處理器110根據觸摸事件的類型在顯示面板1061上提供相應的視覺輸出。雖然在圖1中,觸控面板1071與顯示面板1061是作為兩個獨立的部件來實現移動終端的輸入和輸出功能,但是在某些實施例中,可以將觸控面板1071與顯示面板1061集成而實現移動終端的輸入和輸出功能,具體此處不做限定。接口單元108用作至少一個外部裝置與移動終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機埠、外部電源(或電池充電器)埠、有線或無線數據埠、存儲卡埠、用於連接具有識別模塊的裝置的埠、音頻輸入/輸出(i/o)埠、視頻i/o埠、耳機埠等等。接口單元108可以用於接收來自外部裝置的輸入(例如,數據信息、電力等等)並且將接收到的輸入傳輸到移動終端100內的一個或多個元件或者可以用於在移動終端100和外部裝置之間傳輸數據。存儲器109可用於存儲軟體程序以及各種數據。存儲器109可主要包括存儲程序區和存儲數據區,其中,存儲程序區可存儲作業系統、至少一個功能所需的應用程式(比如聲音播放功能、圖像播放功能等)等;存儲數據區可存儲根據手機的使用所創建的數據(比如音頻數據、電話本等)等。此外,存儲器109可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁碟存儲器件、快閃記憶體器件、或其他易失性固態存儲器件。處理器110是移動終端的控制中心,利用各種接口和線路連接整個移動終端的各個部分,通過運行或執行存儲在存儲器109內的軟體程序和/或模塊,以及調用存儲在存儲器109內的數據,執行移動終端的各種功能和處理數據,從而對移動終端進行整體監測。處理器110可包括一個或多個處理單元;優選的,處理器110可集成應用處理器和調製解調處理器,其中,應用處理器主要處理作業系統、用戶界面和應用程式等,調製解調處理器主要處理無線通信。可以理解的是,上述調製解調處理器也可以不集成到處理器110中。移動終端100還可以包括給各個部件供電的電源111(比如電池),優選的,電源111可以通過電源管理系統與處理器110邏輯相連,從而通過電源管理系統實現管理充電、放電、以及功耗管理等功能。儘管圖1未示出,移動終端100還可以包括藍牙模塊等,在此不再贅述。為了便於理解本發明實施例,下面對本發明的移動終端所基於的通信網絡系統進行描述。請參閱圖2,圖2為本發明實施例提供的一種通信網絡系統架構圖,該通信網絡系統為通用移動通信技術的lte系統,該lte系統包括依次通訊連接的ue(userequipment,用戶設備)201,e-utran(evolvedumtsterrestrialradioaccessnetwork,演進式umts陸地無線接入網)202,epc(evolvedpacketcore,演進式分組核心網)203和運營商的ip業務204。具體地,ue201可以是上述終端100,此處不再贅述。e-utran202包括enodeb2021和其它enodeb2022等。其中,enodeb2021可以通過回程(backhaul)(例如x2接口)與其它enodeb2022連接,enodeb2021連接到epc203,enodeb2021可以提供ue201到epc203的接入。epc203可以包括mme(mobilitymanagemententity,移動性管理實體)2031,hss(homesubscriberserver,歸屬用戶伺服器)2032,其它mme2033,sgw(servinggateway,服務網關)2034,pgw(pdngateway,分組數據網絡網關)2035和pcrf(policyandchargingrulesfunction,政策和資費功能實體)2036等。其中,mme2031是處理ue201和epc203之間信令的控制節點,提供承載和連接管理。hss2032用於提供一些寄存器來管理諸如歸屬位置寄存器(圖中未示)之類的功能,並且保存有一些有關服務特徵、數據速率等用戶專用的信息。所有用戶數據都可以通過sgw2034進行發送,pgw2035可以提供ue201的ip地址分配以及其它功能,pcrf2036是業務數據流和ip承載資源的策略與計費控制策略決策點,它為策略與計費執行功能單元(圖中未示)選擇及提供可用的策略和計費控制決策。ip業務204可以包括網際網路、內聯網、ims(ipmultimediasubsystem,ip多媒體子系統)或其它ip業務等。雖然上述以lte系統為例進行了介紹,但本領域技術人員應當知曉,本發明不僅僅適用於lte系統,也可以適用於其他無線通信系統,例如gsm、cdma2000、wcdma、td-scdma以及未來新的網絡系統等,此處不做限定。基於上述移動終端硬體結構以及通信網絡系統,提出本發明方法各個實施例。實施例1基於上述的移動終端,本發明實施例提供了一種進程處理方法,圖3是根據本發明實施例的進程處理方法的流程圖,如圖3所示,該方法包括以下步驟:步驟s301,通過低內存管理機制對被殺掉的進程進行輪詢;步驟s302,對殭屍狀態的進程進行統計,其中,所述殭屍狀態為父進程在未顯示回收的情況下,子進程所處的狀態;步驟s303,判斷殭屍狀態的進程是否為惡意產生的殭屍進程;步驟s304,在判斷結果為是的情況下,清除所述惡意產生的殭屍進程。通過上述步驟,通過低內存管理lmk機制對被殺kill掉的進程進行輪詢;對殭屍狀態的進程進行統計,其中,所述殭屍狀態為父進程在未顯示回收的情況下,子進程所處的狀態;判斷殭屍狀態的進程是否為惡意產生的殭屍進程;在判斷結果為是的情況下,清除所述惡意產生的殭屍進程,解決了相關技術中如果存在惡意程序不斷產生大量的殭屍進程會迅速的消耗掉有限的進程號,導致系統無法正常工作的問題,通過找出惡意產生的殭屍進程並清除,使得進程號不被惡意消耗,提高了用戶體驗。優選地,在對殭屍狀態的進程進行統計之前,通過確定每個進程的父進程是否未顯示回收的方式,確定每個進程的狀態是否為殭屍狀態,如果進程的父進程顯示回收,則表示該進程不為殭屍狀態,若進程的父進程未顯示回收,則表示該進程為殭屍狀態。優選地,對殭屍殭屍狀態的進程進行統計可以包括:對所述殭屍狀態的進程的信息進行分類緩存,其中,所述殭屍狀態的進程的信息種類包括惡意和非惡意,即將惡意產生的殭屍狀態的進程和非惡意產生的殭屍狀態的進程分開緩存。為了避免惡意程序被誤判或者被重複判定,引起系統異常,在清除所述惡意產生的殭屍進程之後,將被清除的所述惡意產生的殭屍進程的信息從緩存中刪除。優選地,判斷殭屍狀態的進程是否為惡意產生的殭屍進程可以包括:對緩存的所有進程按照預先設置的規則進行匹配,判斷所述殭屍狀態的進程是否符合所述預先設置的規則。其中,該規則可以在ui上在設置程序中進行引入,規則的默認配置規則基於殭屍進程的單位時間產生的數量和殭屍進程存在的時長;其它的規則可由rom廠商進行更多的配置。優選地,清除所述惡意產生的殭屍進程可以包括:查詢所述惡意產生的殭屍進程孵化的子進程;殺kill掉正在運行的所述子進程,同時卸載所述惡意產生的殭屍進程,由於及時清除,在一定程度上提升系統的穩定性,具體包括:在接收到清除指令後,獲取當前任務列表中的程序。在本實施方式中,在接收到清除指令後,獲取的是當前任務列表中的所有程序。圖4是根據本發明實施例的程序清楚的示意圖,如圖4所示,例如,智慧型手機或者平板電腦等電子設備上有預設的特定清除程序按鍵,該特定按鍵可以是一個獨立的按鍵,也可以對是電子設備上當前已有的按鍵進行定義,比如雙擊home鍵、雙擊音量鍵等來實現一鍵清除程序的功能。當檢測到特定按鍵的操作信息後,生成清除指令,當接收到後臺程序的清除指令之後,獲取當前任務列表中的所有程序。查找獲取的各程序的所有進程。每個程序對應有主進程,該主進程會創建一些子進程,還有可能會產生殭屍進程和孤兒進程。具體的說,系統調用用於查看系統進程列表的ps命令,可以獲取到各進程所對應的所有的主進程、子進程、殭屍進程、孤兒進程。需要說明的是,當用戶開啟一個程序的時候,該程序所對應的主進程(又稱為父進程)會創建一些子進程,子進程再創建新的進程,子進程的結束和父進程的運行是一個異步過程,即父進程無法預測子進程什麼時候結束。在每個進程退出的時候,內核釋放該進程所有的資源,包括打開的文件,佔用的內存等。但是仍然為其保留一定的信息(包括進程號theprocessid,退出狀態theterminationstatusoftheprocess,運行時間theamountofcputimetakenbytheprocess等)。直到父進程通過調用等待函數wait/waitpid來取時才釋放。一個子進程在其父進程還沒有調用函數wait或waitpid的情況下退出。這個子進程將成為殭屍進程。任何一個子進程(init除外)在退出之後,並非馬上就消失掉,而是留下一個稱為殭屍進程(zombie)的數據結構,等待父進程處理,這是每個子進程在結束時都要經過的階段,若是父進程及時處理,即調用函數wait或waitpid自動分析當前進程的某個子進程是否已經退出,如果讓找到已經變成殭屍的子進程,wait或waitpid就會收集這個子進程的信息,並把它徹底銷毀後返回。如果子進程在退出之後,父進程沒有來得及處理,這個子進程將成為殭屍進程,這時用ps命令就能看到子進程的狀態是「z」。那麼保留的那段信息(即殭屍進程(zombie)的數據結構)就不會釋放,其進程號就會一直被佔用,但是系統所能使用的進程號是有限的,如果大量的產生殭屍進程,將因為沒有可用的進程號而導致系統不能產生新的進程。當一個父進程由於正常完成工作而退出或由於其他情況被終止,它的一個或多個子進程卻還在運行,那麼那些子進程將成為孤兒進程。每當出現一個孤兒進程的時候,內核就把孤兒進程的父進程設置為init,而init進程會循環地wait已經退出的子進程。關閉查找到的所有進程,將查找的到各程序對應的所有進程,包括主進程、子進程、殭屍進程和孤兒進程全部關閉。具體的說,通過kill發送sigterm或者sigkill信號殺死父進程,由於殭屍進程是由父進程產生的,那麼將父進程殺死之後,該父進程產生的殭屍進程就變成了孤兒進程,這些孤兒進程會被init進程接管,init進程會wait這些孤兒進程,釋放它們佔用的系統進程表中的資源。找到子進程、殭屍進程和孤兒進程產生的根源父進程,並從根源開始處理,這樣就可以實現關閉所有的進程的目的了。不難發現,通過ps命令可以獲得當前任務列表中的所有程序及各程序的所有進程,包括主進程、子進程、殭屍進程和孤兒進程,並能關閉查找到的所有進程,釋放系統內存,提高系統的運行速度。在一個優選的實施例中,在系統中設置白名單,將系統中的核心進程以及使用頻率較高的進程加入白名單,獲取當前任務列表中的程序時,只需獲取當前任務列表中除白名單外的所有程序。通過白名單將這些程序保護起來,使得在清理程序過程中,核心進程和經常使用的進程不被關閉,可以方便用戶操作,避免頻繁的開關核心程序和使用頻率較高的程序。在另一個優選的實施例中,在關閉查找到的所有進程後,禁止各程序的自動開啟,具體包括:接收到清除指令後,獲取當前任務列表中的程序。在本實施方式中,在接收到清除指令後,獲取的是當前任務列表中的所有程序。查找獲取的各程序的所有進程。每個程序對應有主進程,該主進程會創建一些子進程,還有可能會產生殭屍進程和孤兒進程。具體的說,系統調用用於查看系統進程列表的ps命令,可以獲取到各進程所對應的所有的主進程、子進程、殭屍進程、孤兒進程。關閉查找到的所有進程。將查找的到各程序對應的所有進程,包括主進程、子進程、殭屍進程和孤兒進程全部關閉。禁止各程序的自動開啟。具體的說,系統可根據各程序的屬性信息,獲取各程序的自動開啟的觸發條件,比如屏幕的亮滅狀態變化、檢測到的光強度變化、檢測到的溫度變化、移動速度變化。若這些觸發條件中的一個或者任意幾個的組合滿足預設的狀態變化,系統獲取到該狀態變化之後,將對該狀態變化通知進行攔截,並禁止將該狀態變化通知給該觸發條件所對應的程序。例如,在程序a安裝註冊到系統的過程中,會產生註冊列表信息,其中包括攜帶有程序自動開啟的參數的信息,如當屏幕從鎖屏的黑屏狀態變為解鎖屏幕的亮屏狀態時,程序a就會自動開啟。即,當程序a在收到的系統廣播的屏幕狀態滿足自動開啟的條件(屏幕從鎖屏的黑屏狀態變為解鎖屏幕的亮屏狀態)時,將會自啟動。因此,在本實施方式中通過獲取系統的最高root權限,攔截引起自動開啟的狀態變化通知廣播,使得該觸發條件對應的程序a接收不到狀態變化通知廣播,從而達到禁止該程序a自動開啟的目的。當檢測到的程序自動開啟的觸發條件為預設的狀態變化時,通過禁止該狀態變化通知給該觸發條件所對應的程序,從而實現禁止程序自動開啟。而在第四實施方式中,當檢測到的各程序的自動開啟的觸發條件為網絡信息滿足預設條件時,系統禁止將監聽到的網絡信息通知給該觸發條件所對應的程序。例如,在程序b安裝註冊到系統的過程中,會產生註冊列表信息,其中包括攜帶有程序自動開啟的參數的信息,當網絡信息發生變化(系統通過發送廣播的方式將網絡信息通知給程序b)時,網絡信息變化可以為網絡的斷網以及聯網、信息推送、或者連接的網絡地址發生變化,程序b通過監聽網絡信息變化,從而自動開啟。因此,在本實施方式中通過獲取系統的最高root權限,攔截引起自動開啟的網絡信息通知廣播,使得該觸發條件對應的程序b接收不到該網絡信息通知廣播,從而達到禁止該程序b自動開啟的目的。本發明實施例採用了基於lmk機制對殭屍進程的來源進行探查。lmk負責內存管理,包括對進程的輪詢。在其基礎上增加進程狀態判斷;同時對殭屍狀態的進程進行統計,以期甄別是否為惡意產生殭屍進程;然後定位惡意來源進程予以清除。這樣,可以精確的判定惡意程序,及時清除,在一定程度上提升系統的穩定性。對於pc來說,內存是至關重要。如果某個程序發生了內存洩漏,那麼一般情況下系統就會將其進程kill掉。linux中使用一種名稱為oom(outofmemory,內存不足)的機制來完成這個任務,該機制會在系統內存不足的情況下,選擇一個進程並將其kill掉。android則使用了一個新的機制——lowmemorykiller來完成同樣的任務。低內存管理(lowmemorykiller,簡稱為lmk)開始工作時,首先根據閾值表確定當前的警戒級數,則高於警戒級數的進程是待殺的範圍。然後遍歷所有進程的oom_adj值,找到大於min_adj的進程,若找到多個,則把佔用進程最大的進程存放在selected中。最關鍵的一步就是,發送sigkill信息,殺掉該進程。lmk是定時進行檢查,主要是通過進程的oom_adj來判定進程的重要程度。這個值越小,程序越重要,被殺的可能性越低。oom_adj的大小和進程的類型以及進程被調度的次序有關。1.oom_adj的值是如何賦予的進程的類型,可以在activitymanagerservice中清楚的看到:staticfinalintempty_app_adj;staticfinalinthidden_app_max_adj;staticfinalinthidden_app_min_adj;staticfinalinthome_app_adj;staticfinalintbackup_app_adj;staticfinalintsecondary_server_adj;staticfinalintheavy_weight_app_adj;staticfinalintperceptible_app_adj;staticfinalintvisible_app_adj;staticfinalintforeground_app_adj;staticfinalintcore_server_adj=-12;staticfinalintsystem_adj=-16;activitymanagerservice定義各種進程的oom_adj,core_server_adj代表一些核心的服務的omm_adj,數值為-12,這類進程永遠也不會被殺死。其他未賦值的都在static塊中進行了初始化,是通過system/rootdir/init.rc進行配置的:在init.rc中:#definetheoom_adjvaluesfortheclassesofprocessesthatcanbe#killedbythekernel.theseareusedinactivitymanagerservice.setpropro.foreground_app_adj0setpropro.visible_app_adj1setpropro.secondary_server_adj2setpropro.hidden_app_min_adj7setpropro.content_provider_adj14setpropro.empty_app_adj15#definethememorythresholdsatwhichtheaboveprocessclasseswill#bekilled.thesenumbersareinpages(4k).setpropro.foreground_app_mem1536setpropro.visible_app_mem2048setpropro.secondary_server_mem4096setpropro.hidden_app_mem5120setpropro.content_provider_mem5632setpropro.empty_app_mem6144配置文件有如下兩個:/sys/module/lowmemorykiller/parameters/adj/sys/module/lowmemorykiller/parameters/minfreeowmeme_adj中各項數值代表閾值的警戒級數,lowmem_minfree代表對應級數的剩餘內存。adj文件存放著oom_adj內存警戒值(以4k為單位)01536120482409675120145632156144也就是說,當系統的剩餘內存為小於6mb時候,警戒級數為0,當系統內存剩餘小於8m而大於6m的時候,警戒級數為1,當內存小於64m大於16mb的時候,警戒級數為12。對於某些小內存設備,可以調整對應的門限值,例如:一般調整後三個值。echo「1536,2048,4096,15360,17920,20480″>/sys/module/lowmemorykiller/parameters/minfree2.lmk的工作機制lmk開始工作時,首先根據閾值表確定當前的警戒級數,則高於警戒級數的進程是待殺的範圍。然後遍歷所有進程的oom_adj值,找到大於min_adj的進程,若找到多個,則把佔用進程最大的進程存放在selected中。最關鍵的一步就是,發送sigkill信息,殺掉該進程。3.tips(1)在init.rc中配置:(2)進程oom_adj同樣可以進行設置,通過write/proc//oom_adj,在init.rc中,init進程的pid為1,omm_adj被配置為-16,永遠不會被殺死。#setinititsforkedchildren'soom_adj.write/proc/1/oom_adj-16(3)dumpsysactivity可以dump進程的信息,查看adj值;procrank可以查看進程佔用內存大小。在android系統中,子進程退出的時候,內核釋放該進程所有的資源,比如文件描述符,內存,等等,但是依然為該進程保留一定的信息,只有該進程的父進程顯式的回收其資源之後才會釋放掉這些保留的信息。如果父進程沒有顯示回收,那么子進程就變成了zombies進程。android系統是一個多進程系統,系統同時運行大量的進程。進程根據需要不斷的經歷創建、運行、消亡的過程。每個進程在被創建之後,會被賦予一個系統唯一的進程號。如果存在惡意程序,不斷的產生大量的zombies進程,會迅速的消耗掉有限的進程號,導致系統無法產生新的進程。這樣,系統就無法正常工作,給用戶的體驗和系統的穩定性造成一定影響。針對上述問題,採用了基於lmk機制對zombies進程的來源進行探查。lmk負責內存管理,包括對進程的輪詢。在其基礎上增加進程狀態判斷;同時對zombies狀態的進程進行統計,以期甄別是否為惡意產生zombies進程;然後定位惡意來源進程予以清除。這樣,可以精確的判定惡意程序,及時清除,在一定程度上提升系統的穩定性。圖5是根據本發明實施例的zombies進程處理的框圖,如圖5所示,主要包括lmk系統模塊51、進程狀態判定模塊52、進程狀態統計模塊53、規則配置模塊55、惡意程序判定模塊54以及pms模塊56,下面對各個模塊進行詳細說明。進程狀態判定模塊52,主要被嵌入lmk系統模塊51,lmk系統模塊51會定時對系統的所有進程進行優先級的調整,將進程狀態判定模塊52嵌在這個階段,對每個進程的運行狀態進行判定;如果進程的狀態為zombies的話,則調用進程狀態統計模塊53;否則忽略該進程;進程狀態統計模塊53,主要是對zombiesa狀態的進程信息進行分類緩存;同時,在每一輪lmk統計周期進行同步。如果新周期中已經被釋放的進程信息將從被進程狀態統計模塊53中清除,以防被惡意程序誤判或者被重複判定,引起系統異常;規則配置模塊55,在ui上可以在設置程序中進行引入;規則的默認配置規則基於zombies進程的單位時間產生的數量和zombies進程存在的時長;其它的規則可由rom廠商進行更多的配置;當規則配置模塊55的規則初始化完成後或者更新後,規則配置模塊55會同步將規則註冊至惡意程序判定模塊54;惡意程序判定模塊54,定期判定進程狀態統計模塊53,對緩存的所有進程進行規則匹配,對於符合規則的進程則判定為惡意程序;並查詢其孵化進程;然後,通知lmk系統模塊51殺掉正在運行的孵化進程;同時,調用pms模塊56對惡意程序進行卸載,防止其重新啟動;通過上述步驟就可以精確的判定惡意程序,及時清除,在一定程度上提升系統的穩定性。本發明實施例採用了基於lmk機制對zombies進程的來源進行探查,lmk負責內存管理,包括對進程的輪詢。在其基礎上增加進程狀態判斷;同時對zombies狀態的進程進行統計,以期甄別是否為惡意產生zombies進程;然後定位惡意來源進程予以清除。這樣,可以精確的判定惡意程序,及時清除,在一定程度上提升系統的穩定性。實施例2根據本發明實施例的另一方面,還提供了一種移動終端,圖6是根據本發明實施例的進程處理的移動終端的框圖,如圖6所示,所述移動終端包括處理器、存儲器及通信總線;所述通信總線用於實現處理器和存儲器之間的連接通信;所述處理器用於執行存儲器中存儲的進程處理程序,以實現以下步驟:通過低內存管理機制對被殺掉的進程進行輪詢;對殭屍狀態的進程進行統計,其中,所述殭屍狀態為父進程在未顯示回收的情況下,子進程所處的狀態;判斷殭屍狀態的進程是否為惡意產生的殭屍進程;在判斷結果為是的情況下,清除所述惡意產生的殭屍進程。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:在對殭屍狀態的進程進行統計之前,通過確定每個進程的父進程是否未顯示回收的方式,確定每個進程的狀態是否為殭屍狀態。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:對所述殭屍狀態的進程的信息進行分類緩存,其中,所述殭屍狀態的進程的信息種類包括惡意和非惡意。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:在清除所述惡意產生的殭屍進程之後,將被清除的所述惡意產生的殭屍進程的信息從緩存中刪除。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:對緩存的所有進程按照預先設置的規則進行匹配,判斷所述殭屍狀態的進程是否符合所述預先設置的規則。優選地,所述處理器還用於執行進程處理程序,以實現以下步驟:查詢所述惡意產生的殭屍進程孵化的子進程;kill掉正在運行的所述子進程,同時卸載所述惡意產生的殭屍進程。實施例3根據本發明實施例的另一方面,還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執行,以實現上述進程處理方法的步驟。本發明實施例,通過低內存管理機制對被殺掉的進程進行輪詢;對殭屍狀態的進程進行統計,其中,所述殭屍狀態為父進程在未顯示回收的情況下,子進程所處的狀態;判斷殭屍狀態的進程是否為惡意產生的殭屍進程;在判斷結果為是的情況下,清除所述惡意產生的殭屍進程,解決了相關技術中如果存在惡意程序不斷產生大量的殭屍進程會迅速的消耗掉有限的進程號,導致系統無法正常工作的問題,通過找出惡意產生的殭屍進程並清除,使得進程號不被惡意消耗,提高了用戶體驗。需要說明的是,在本文中,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可藉助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質(如rom/ram、磁碟、光碟)中,包括若干指令用以使得一臺終端(可以是手機,計算機,伺服器,空調器,或者網絡設備等)執行本發明各個實施例所述的方法。上面結合附圖對本發明的實施例進行了描述,但是本發明並不局限於上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領域的普通技術人員在本發明的啟示下,在不脫離本發明宗旨和權利要求所保護的範圍情況下,還可做出很多形式,這些均屬於本發明的保護之內。當前第1頁12當前第1頁12

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀