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

一種線程優(yōu)化系統(tǒng)及方法

文檔序號:10569791閱讀:387來源:國知局
一種線程優(yōu)化系統(tǒng)及方法
【專利摘要】本發(fā)明涉及計算機領域,尤其涉及一種線程優(yōu)化系統(tǒng)及方法。本發(fā)明通過將當前被調(diào)出的第一線程中浪費的存儲空間減小,節(jié)省了第一線程占用的存儲空間,當前被調(diào)入的第二線程存儲空間不足時,增加第二線程的存儲空間,提高了線程的執(zhí)行效率,提高了存儲空間的利用率,避免了存儲空間的浪費。
【專利說明】
一種線程優(yōu)化系統(tǒng)及方法
技術領域
[0001 ]本發(fā)明涉及計算機領域,尤其涉及一種線程優(yōu)化系統(tǒng)及方法。
【背景技術】
[0002] 現(xiàn)有技術中,為了執(zhí)行線程通常會為該線程預分配一定的存儲空間,現(xiàn)有的分配 方法是對所有的線程采用同一的分配標準,并且線程的存儲空間的申請沒有被限制,有一 些線程由于函數(shù)的嵌套較多,會占用較大的存儲空間,但是有一些線程的存儲空間內(nèi)有大 量的未被使用的部分,這就會造成存儲空間的浪費,其他準備執(zhí)行的線程由于存儲空間的 浪費導致存儲空間的不足,使其執(zhí)行過程因存儲空間不足而被打斷。

【發(fā)明內(nèi)容】

[0003] 針對現(xiàn)有技術存在的問題,現(xiàn)提供一種線程優(yōu)化系統(tǒng)及方法,能夠減小存儲空間 的浪費,提高存儲空間的利用率。
[0004] 具體的技術方案如下:
[0005] -種線程優(yōu)化系統(tǒng),應用于嵌入式系統(tǒng)中,所述線程優(yōu)化系統(tǒng)包括:
[0006] 調(diào)度模塊3,用以于一處理器上調(diào)出當前執(zhí)行的一第一線程,以及向所述處理器調(diào) 入需要執(zhí)行的一第二線程;
[0007] 判斷模塊1,與所述調(diào)度模塊3連接,用以判斷所述第一線程被調(diào)出后的實際占用 的存儲空間是否小于所述第一線程被分配的存儲空間,以及判斷所述第二線程被調(diào)入前的 被分配的存儲空間與所述第二線程被實際占用的存儲空間的差是否小于一第一值;
[0008] 調(diào)整模塊2,與所述判斷模塊1連接,用以于所述第一線程的所述實際占用的存儲 空間小于所述第一線程的所述被分配的存儲空間時,減小所述第一線程的所述被分配的存 儲空間至一第二值,以及于所述第二線程的所述被分配的存儲空間與所述第二線程的所述 實際占用的存儲空間的差小于所述第一值時增大所述第二線程的所述被分配的存儲空間。
[0009] 優(yōu)選的,所述存儲空間為堆棧。
[0010] 優(yōu)選的,還包括
[0011] 回收模塊4,所述回收模塊4與所述調(diào)整模塊3連接,用以于所述調(diào)整模塊3減小所 述第一線程的所述被分配的存儲空間時,回收所述第一線程的所述被分配的存儲空間被減 小的部分。
[0012] 優(yōu)選的,第二值大于等于所述第一線程被調(diào)出后的實際占用的存儲空間;或者
[0013] 所述第二值為4千字節(jié)。
[0014]優(yōu)選的,所述第一值為8千字節(jié)。
[0015] 一種線程優(yōu)化方法,包括:
[0016] 步驟S1,于一處理器上調(diào)出當前執(zhí)行的一第一線程,以及向所述處理器調(diào)入需要 執(zhí)行的一第二線程;
[0017] 步驟S2,判斷所述第一線程被調(diào)出后的實際占用的存儲空間是否小于所述第一線 程被分配的存儲空間,以及判斷所述第二線程被調(diào)入前的被分配的存儲空間與所述第二線 程被實際占用的存儲空間的差是否小于一第一值;
[0018] 步驟S3,于所述第一線程的所述實際占用的存儲空間小于所述第一線程的所述被 分配的存儲空間時,減小所述第一線程的所述被分配的存儲空間至一第二值,以及于所述 第二線程的所述被分配的存儲空間與所述第二線程的所述實際占用的存儲空間的差小于 所述第一值時增大所述第二線程的所述被分配的存儲空間。
[0019] 優(yōu)選的,所述存儲空間為堆棧。
[0020] 優(yōu)選的,所述步驟S3具體包括:
[0021 ]步驟S31,于減小所述第一線程的所述被分配的存儲空間時,回收所述第一線程的 所述被分配的存儲空間被減小的部分。
[0022]優(yōu)選的,第二值大于等于所述第一線程被調(diào)出后的實際占用的存儲空間;或者 [0023]所述第二值為4千字節(jié)。
[0024]優(yōu)選的,所述第一線程的所述被分配的存儲空間與所述第二值的差值為8千字節(jié)。 [0025]上述技術方案的有益效果是:
[0026] 上述技術方案通過將當前被調(diào)出的第一線程中浪費的存儲空間減小,節(jié)省了第一 線程占用的存儲空間,當前被調(diào)入的第二線程存儲空間不足時,增加第二線程的存儲空間, 提高了線程的執(zhí)行效率,提高了存儲空間的利用率,避免了存儲空間的浪費。
【附圖說明】
[0027] 圖1-圖2為本發(fā)明一種線程優(yōu)化系統(tǒng)的實施例的結構示意圖;
[0028] 圖3為本發(fā)明一種線程優(yōu)化方法的實施例的流程圖。
【具體實施方式】
[0029] 需要說明的是,在不沖突的情況下,下述技術方案,技術特征之間可以相互組合。
[0030] 下面結合附圖對本發(fā)明的【具體實施方式】作進一步的說明:
[0031] 本實施例提供了一種線程優(yōu)化系統(tǒng),應用于嵌入式系統(tǒng)中,如圖1所示,線程優(yōu)化 系統(tǒng)包括:
[0032] 調(diào)度模塊3,用以于一處理器上調(diào)出當前執(zhí)行的一第一線程,以及向處理器調(diào)入需 要執(zhí)行的一第二線程;
[0033] 判斷模塊1,與調(diào)度模塊3連接,用以判斷第一線程被調(diào)出后的實際占用的存儲空 間是否小于第一線程被分配的存儲空間,以及判斷第二線程被調(diào)入前的被分配的存儲空間 與第二線程被實際占用的存儲空間的差是否小于一第一值;
[0034] 調(diào)整模塊2,與判斷模塊1連接,用以于第一線程的實際占用的存儲空間小于第一 線程的被分配的存儲空間時,減小第一線程的被分配的存儲空間至一第二值,以及于第二 線程的被分配的存儲空間與第二線程的實際占用的存儲空間小于第一值時增大第二線程 的被分配的存儲空間。
[0035] 本實施例中每個線程可以有對應的存儲空間,其中被調(diào)出的第一線程的實際占用 的存儲空間小于第一線程被分配的存儲空間時,說明第一線程的實際占用的存儲空間并未 占滿第一線程被分配的存儲空間,存在存儲空間浪費現(xiàn)象,調(diào)度模塊2通過調(diào)整第一線程被 分配的存儲空間頭部或者尾部的指針將浪費的存儲空間釋放。
[0036] 本實施例中,調(diào)度模塊3對被調(diào)入的第二線程進行調(diào)度,使得第二線程的執(zhí)行時能 夠獲得足夠的存儲空間,避免第二進程的執(zhí)行過程被打斷。
[0037] 本發(fā)明一個較佳的實施例中,存儲空間為堆棧。
[0038] 當存儲空間為堆棧時,判斷模塊1可通過調(diào)用??臻g調(diào)度函數(shù)檢查第一線程的棧 空間和第二線程的棧空間,以判斷第一線程被調(diào)出后的實際占用的??臻g是否小于第一線 程被分配的??臻g,以及第二線程被調(diào)入前的被分配的存儲空間與判斷第二線程的實際占 用的??臻g是否小于一第一值。
[0039] 本發(fā)明一個較佳的實施例中,如圖2所示,還包括
[0040] 回收模塊4,回收模塊4與調(diào)整模塊3連接,用以于調(diào)整模塊3減小第一線程的被分 配的存儲空間時,回收第一線程的被分配的存儲空間被減小的部分。
[0041] 進一步的,當存儲空間為堆棧時,回收模塊4通過調(diào)用?;厥蘸瘮?shù)回收第一線程的 被分配的??臻g被減小的部分。
[0042] 本發(fā)明一個較佳的實施例中,第二值大于等于第一線程被調(diào)出后的實際占用的存 儲空間。
[0043] 本發(fā)明一個較佳的實施例中,第二值為4千字節(jié)。
[0044]本發(fā)明一個較佳的實施例中,第一值為8千字節(jié)。
[0045]本實施例提供了一種線程優(yōu)化方法,如圖3所示,包括:
[0046] 步驟S1,于一處理器上調(diào)出當前執(zhí)行的一第一線程,以及向處理器調(diào)入需要執(zhí)行 的一第二線程;
[0047] 步驟S2,判斷第一線程被調(diào)出后的實際占用的存儲空間是否小于第一線程被分配 的存儲空間,以及判斷第二線程被調(diào)入前的被分配的存儲空間與第二線程被實際占用的存 儲空間的差是否小于一第一值;
[0048] 步驟S3,于第一線程的實際占用的存儲空間小于第一線程的被分配的存儲空間 時,減小第一線程的被分配的存儲空間至一第二值,以及于第二線程的被分配的存儲空間 與第二線程的實際占用的存儲空間的差小于第一值時增大第二線程的被分配的存儲空間。
[0049] 本發(fā)明一個較佳的實施例中,存儲空間為堆棧。例如,本實施例中的存儲空間可以 為??臻g。
[0050] 本發(fā)明一個較佳的實施例中,步驟S3具體包括:
[0051] 步驟S31,于減小第一線程的被分配的存儲空間時,回收第一線程的被分配的存儲 空間被減小的部分。
[0052] 本發(fā)明一個較佳的實施例中,第二值大于等于第一線程被調(diào)出后的實際占用的存 儲空間。
[0053]本發(fā)明一個較佳的實施例中第二值為4千字節(jié)。
[0054] 本發(fā)明一個較佳的實施例中,第一值為8千字節(jié)。
[0055] 綜合上述實施例,現(xiàn)對上述實施例提供的線程優(yōu)化方法的偽代碼進行舉例說明: void stac:k_adjust(struct vm_area_struct *from_staGl</struct vm_area_struct *to_stack) { void *from_esp;
[0056] void *to_esp; void* tmp; i* * from^esp是第一線程當前的棧指針,
[0057] from_stack->vm_start是第一線程??臻g的結束位置,這兩個指針之間的棧空間 空隙就是被浪費的棧內(nèi)存,為了保證線程執(zhí)行切換的速度,可以預留4K的??臻g給每一個 線程,將其余的??臻g回收,這4K的??臻g即可以為第二值。
[0058] 本實施例中,增加棧空間的偽代碼為: .*/ for (tmp = from_esp; tmp > (from_stack->vm_start + 4KB); tmp
[0059] = 4KB) free(tmp);
[0060] 1* * t0_esf)是第二線程當前的棧指針,to_stack->vm_start是 第二線程的棧空間的結束位置,to_stad<->vm_end是第二線程旗起始 位置。 * t〇_e_sp和t〇_stac:k->vm_start的??臻g空隙就是尚未植 使用的??臻g,為了保證線程有足夠的棧:空間,當棧空間空隙小于8KB 的肘候:,可以給第二線程多分配一些棧空間,防止第二線程在執(zhí)行過 程中被頻繁打斷。 if (to_esp - to_stack->vm_start <= 8KB) { tmp = from_stack->vm_end; from stack->vm__end = realloc(16KB); memcpy(from_stack->vm_end, tmp, (to_esp -from_stack->end)); } }
[006i]本實施例中?;厥蘸瘮?shù)的偽代碼為: static void shrink cacbetetruct vm area struct ^vma stack} void *esp;
[0062] { * I <h-± voia nnip; i* * esp是第二進程的棧指針,vma_stack->vm_start是第二 進程棧空間的結束位置,這兩個指針之間的空隙就是被第一線程浪費 的部分。 n for (遍歷系統(tǒng)中每一個進程)
[0063] { for (tmp = esp; tmp > vma_stack->vm_start; tmp -= 4KB) { //釋放浪費了的內(nèi)存頁。 free(tmp); } }
[0064]綜上,上述技術方案通過將當前被調(diào)出的第一線程中浪費的存儲空間減小,節(jié)省 了第一線程占用的存儲空間,當前被調(diào)入的第二線程存儲空間不足時,增加第二線程的存 儲空間,提高了線程的執(zhí)行效率,提高了存儲空間的利用率,避免了存儲空間的浪費。
[0065]通過說明和附圖,給出了【具體實施方式】的特定結構的典型實施例,基于本發(fā)明精 神,還可作其他的轉換。盡管上述發(fā)明提出了現(xiàn)有的較佳實施例,然而,這些內(nèi)容并不作為 局限。
[0066] 對于本領域的技術人員而言,閱讀上述說明后,各種變化和修正無疑將顯而易見。 因此,所附的權利要求書應看作是涵蓋本發(fā)明的真實意圖和范圍的全部變化和修正。在權 利要求書范圍內(nèi)任何和所有等價的范圍與內(nèi)容,都應認為仍屬本發(fā)明的意圖和范圍內(nèi)。
【主權項】
1. 一種線程優(yōu)化系統(tǒng),其特征在于,應用于嵌入式系統(tǒng)中,所述線程優(yōu)化系統(tǒng)包括: 調(diào)度模塊(3),用以于一處理器上調(diào)出當前執(zhí)行的一第一線程,以及向所述處理器調(diào)入 需要執(zhí)行的一第二線程; 判斷模塊(1),與所述調(diào)度模塊(3)連接,用以判斷所述第一線程被調(diào)出后的實際占用 的存儲空間是否小于所述第一線程被分配的存儲空間,以及判斷所述第二線程被調(diào)入前的 被分配的存儲空間與所述第二線程被實際占用的存儲空間的差是否小于一第一值; 調(diào)整模塊(2),與所述判斷模塊(1)連接,用以于所述第一線程的所述實際占用的存儲 空間小于所述第一線程的所述被分配的存儲空間時,減小所述第一線程的所述被分配的存 儲空間至一第二值,以及于所述第二線程的所述被分配的存儲空間與所述第二線程的所述 實際占用的存儲空間的差小于所述第一值時增大所述第二線程的所述被分配的存儲空間。2. 根據(jù)權利要求1所述的線程優(yōu)化系統(tǒng),其特征在于,所述存儲空間為堆棧。3. 根據(jù)權利要求1所述的線程優(yōu)化系統(tǒng),其特征在于,還包括 回收模塊(4),所述回收模塊(4)與所述調(diào)整模塊(3)連接,用以于所述調(diào)整模塊(3)減 小所述第一線程的所述被分配的存儲空間時,回收所述第一線程的所述被分配的存儲空間 被減小的部分。4. 根據(jù)權利要求1所述的線程優(yōu)化系統(tǒng),其特征在于,第二值大于等于所述第一線程被 調(diào)出后的實際占用的存儲空間;或者 所述第二值為4千字節(jié)。5. 根據(jù)權利要求1所述的線程優(yōu)化系統(tǒng),其特征在于,所述第一值為8千字節(jié)。6. -種線程優(yōu)化方法,其特征在于,包括: 步驟Sl,于一處理器上調(diào)出當前執(zhí)行的一第一線程,以及向所述處理器調(diào)入需要執(zhí)行 的一第二線程; 步驟S2,判斷所述第一線程被調(diào)出后的實際占用的存儲空間是否小于所述第一線程被 分配的存儲空間,以及判斷所述第二線程被調(diào)入前的被分配的存儲空間與所述第二線程被 實際占用的存儲空間的差是否小于一第一值; 步驟S3,于所述第一線程的所述實際占用的存儲空間小于所述第一線程的所述被分配 的存儲空間時,減小所述第一線程的所述被分配的存儲空間至一第二值,以及于所述第二 線程的所述被分配的存儲空間與所述第二線程的所述實際占用的存儲空間的差小于所述 第一值時增大所述第二線程的所述被分配的存儲空間。7. 根據(jù)權利要求6所述的線程優(yōu)化方法,其特征在于,所述存儲空間為堆棧。8. 根據(jù)權利要求6所述的線程優(yōu)化方法,其特征在于,所述步驟S3具體包括: 步驟S31,于減小所述第一線程的所述被分配的存儲空間時,回收所述第一線程的所述 被分配的存儲空間被減小的部分。9. 根據(jù)權利要求6所述的線程優(yōu)化方法,其特征在于,第二值大于等于所述第一線程被 調(diào)出后的實際占用的存儲空間;或者 所述第二值為4千字節(jié)。10. 根據(jù)權利要求6所述的線程優(yōu)化方法,其特征在于,所述第一值為8千字節(jié)。
【文檔編號】G06F9/50GK105930217SQ201610237415
【公開日】2016年9月7日
【申請日】2016年4月15日
【發(fā)明人】黃金鈺
【申請人】上海斐訊數(shù)據(jù)通信技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
日土县| 岗巴县| 奈曼旗| 芦溪县| 固镇县| 邵阳市| 庆阳市| 泊头市| 万安县| 平乐县| 昌吉市| 祁门县| 法库县| 光泽县| 宁城县| 澄城县| 广东省| 焦作市| 宁强县| 新田县| 孟连| 堆龙德庆县| 太康县| 云林县| 绥江县| 天全县| 安徽省| 公主岭市| 鲁甸县| 孝昌县| 宣城市| 桐城市| 灵台县| 阜阳市| 巩义市| 德江县| 苍溪县| 鹤峰县| 锡林浩特市| 木里| 西峡县|