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

一種任務(wù)處理方法及系統(tǒng)的制作方法

文檔序號:6487966閱讀:168來源:國知局
一種任務(wù)處理方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種任務(wù)處理方法及系統(tǒng),可以使用擴展指令獲得任務(wù)所需訪問的堆地址信息、任務(wù)所需訪問的棧地址信息和任務(wù)中待執(zhí)行指令的地址信息并根據(jù)這些地址信息對任務(wù)進行調(diào)度處理或內(nèi)存優(yōu)化處理。由于并行任務(wù)執(zhí)行過程中的效率受限于這些地址信息,本發(fā)明通過對這些地址信息進行調(diào)度處理或內(nèi)存優(yōu)化處理,可以有效提高任務(wù)執(zhí)行的效率,縮短任務(wù)執(zhí)行的時間。
【專利說明】一種任務(wù)處理方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及任務(wù)處理【技術(shù)領(lǐng)域】,特別是涉及一種任務(wù)處理方法及系統(tǒng)。
【背景技術(shù)】
[0002]機群系統(tǒng)是互相連接的多個獨立計算機(又稱為計算節(jié)點)的集合,這些計算機可以是單機或多處理器系統(tǒng),每個結(jié)點都有自己的存儲器、I/o設(shè)備和操作系統(tǒng)。機群系統(tǒng)對用戶和應(yīng)用來說是一個單一的系統(tǒng),即呈現(xiàn)單一系統(tǒng)映像,它可以提供低價高效的高性能環(huán)境和快速可靠的服務(wù)。
[0003]為使機群系統(tǒng)呈現(xiàn)單一系統(tǒng)映像,機群系統(tǒng)中所有計算節(jié)點的存儲空間在是全局編址的,通過相應(yīng)的一致性模型和一致性協(xié)議來保證和維護各個節(jié)點地址空間的一致性。
[0004]可以采用分布式共享存儲(DSM, Distributed Shared Memory)的方式共享內(nèi)存,將各個計算節(jié)點的內(nèi)存進行共享,以增大內(nèi)存空間,但這也帶來了以下問題:
[0005]由于一個任務(wù)執(zhí)行中會用到多個數(shù)據(jù),而這多個數(shù)據(jù)一般是按順序放在內(nèi)存地址中的,因此為了提高數(shù)據(jù)的讀取速度,一般采用內(nèi)存頁面的方式來對數(shù)據(jù)進行讀寫,一個頁中包含多個數(shù)據(jù)。機群系統(tǒng)具有多個計算節(jié)點,因此可以并行執(zhí)行多個任務(wù)。當?shù)谝蝗蝿?wù)和第二任務(wù)需要同時訪問同一內(nèi)存頁面中不同的數(shù)據(jù)時,雖然第一任務(wù)和第二任務(wù)所訪問的內(nèi)存地址不同,但現(xiàn)有的任務(wù)處理方法也會讓其中的一個任務(wù)無效,等待另一個任務(wù)執(zhí)行完畢且根據(jù)執(zhí)行結(jié)果將該內(nèi)存頁面中的數(shù)據(jù)更新后,再執(zhí)行之前無效的任務(wù),這無疑降低了任務(wù)的執(zhí)行效率。

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

[0006]為解決上述技術(shù)問題,本發(fā)明實施例提供一種任務(wù)處理方法及系統(tǒng),以實現(xiàn)提高任務(wù)執(zhí)行效率的目的,技術(shù)方案如下:
[0007]第一方面,本發(fā)明實施例提供了一種任務(wù)處理方法,包括:
[0008]使用第一擴展指令創(chuàng)建任務(wù)并使用所述第一擴展指令獲得所述任務(wù)執(zhí)行所需的內(nèi)存地址信息,其中,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息包括:所述任務(wù)所需訪問的堆地址信息、所述任務(wù)所需訪問的棧地址信息和所述任務(wù)中待執(zhí)行指令的地址信息;
[0009]根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理。
[0010]在第一方面的第一種可能的實現(xiàn)方式中,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息還包括:
[0011]所述任務(wù)需同步的全局變量信息。
[0012]結(jié)合第一方面,或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,本發(fā)明實施例提供的一種任務(wù)處理方法還包括:
[0013]使用第二擴展指令結(jié)束所述任務(wù)并使用所述第二擴展指令獲得所述任務(wù)的執(zhí)行結(jié)束信息,其中,所述任務(wù)的執(zhí)行結(jié)束信息包括:所述任務(wù)正常結(jié)束的信息和所述任務(wù)異常結(jié)束的信息;
[0014]根據(jù)所述第二擴展指令獲得的所述任務(wù)的執(zhí)行結(jié)束信息對所述任務(wù)占用的資源進行釋放處理。
[0015]在第一方面的第三種可能的實現(xiàn)方式中,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理,包括:
[0016]對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照并初始化所述任務(wù)的執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
[0017]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理,包括:
[0018]等待所述需同步的全局變量信息的內(nèi)容更新后,對所述任務(wù)需訪問的堆地址信息創(chuàng)建快照并初始化任務(wù)執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
[0019]結(jié)合第一方面,或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,所述根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理,包括:
[0020]將所述任務(wù)執(zhí)行所需的內(nèi)存地址信息反饋給編譯器,以使所述編譯器重新為所述任務(wù)分配內(nèi)存地址。
[0021]結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,所述根據(jù)所述第二擴展指令獲得的所述任務(wù)的執(zhí)行結(jié)束信息對所述任務(wù)占用的資源進行釋放處理,包括:
[0022]判斷所述任務(wù)為正常結(jié)束還是異常結(jié)束,如果為正常結(jié)束,則提交所述任務(wù)更新后的全局變量信息,釋放所述任務(wù)所占用資源,刪除所述任務(wù)創(chuàng)建的快照;如果為異常結(jié)束,則釋放所述任務(wù)所占用的資源,刪除所述任務(wù)創(chuàng)建的快照。
[0023]結(jié)合第一方面的第六種可能的實現(xiàn)方式,在第一方面的第七種可能的實現(xiàn)方式中,在所述任務(wù)為異常結(jié)束的情況下,釋放所述任務(wù)所占用的資源,刪除所述快照后,還包括:
[0024]重新執(zhí)行所述根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理的步驟。
[0025]第二方面,本發(fā)明實施例提供了一種任務(wù)處理系統(tǒng),包括:第一獲取模塊和任務(wù)調(diào)度模塊,
[0026]所述第一獲取模塊使用第一擴展指令創(chuàng)建任務(wù)并使用所述第一擴展指令獲得所述任務(wù)執(zhí)行所需的內(nèi)存地址信息,發(fā)送至所述任務(wù)調(diào)度模塊中,其中,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息包括:所述任務(wù)所需訪問的堆地址信息、所述任務(wù)所需訪問的棧地址信息和所述任務(wù)中待執(zhí)行指令的地址信息;
[0027]所述任務(wù)調(diào)度模塊根據(jù)第一獲取模塊發(fā)送的所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理。
[0028]在第二方面的第一種可能的實現(xiàn)方式中,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息還包括:[0029]所述任務(wù)需同步的全局變量信息。
[0030]結(jié)合第二方面,或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,本發(fā)明實施例提供的一種任務(wù)處理系統(tǒng)還包括:執(zhí)行結(jié)束信息獲取模塊和任務(wù)結(jié)束處理模塊,
[0031]所述執(zhí)行結(jié)束信息獲取模塊使用第二擴展指令結(jié)束所述任務(wù)并使用所述第二擴展指令獲得所述任務(wù)的執(zhí)行結(jié)束信息并發(fā)送至所述任務(wù)結(jié)束處理模塊中,其中,所述任務(wù)的執(zhí)行結(jié)束信息包括:所述任務(wù)正常結(jié)束的信息和所述任務(wù)異常結(jié)束的信息;
[0032]所述任務(wù)結(jié)束處理模塊根據(jù)執(zhí)行結(jié)束信息獲取模塊發(fā)送的所述任務(wù)的執(zhí)行結(jié)束信息對所述任務(wù)占用的資源進行釋放處理。
[0033]在第二方面的第三種可能的實現(xiàn)方式中,所述任務(wù)調(diào)度模塊包括:第一調(diào)度子模塊,
[0034]所述第一調(diào)度子模塊對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照并初始化所述任務(wù)的執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
[0035]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,所述任務(wù)調(diào)度模塊包括:第二調(diào)度子模塊,
[0036]所述第二調(diào)度子模塊等待所述需同步的全局變量信息的內(nèi)容更新后,對所述任務(wù)需訪問的堆地址信息創(chuàng)建快照并初始化任務(wù)執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
[0037]結(jié)合第二方面,或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,所述任務(wù)調(diào)度模塊包括:地址信息發(fā)送子模塊,
[0038]所述地址信息發(fā)送子模塊將所述任務(wù)執(zhí)行所需的內(nèi)存地址信息反饋給編譯器,以使所述編譯器重新為所述任務(wù)分配內(nèi)存地址。
[0039]結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,所述任務(wù)結(jié)束處理模塊,包括:結(jié)束判斷子模塊、異常結(jié)束處理子模塊和正常結(jié)束處理子模塊,
[0040]所述結(jié)束判斷子模塊結(jié)束所述任務(wù)并判斷所述任務(wù)為正常結(jié)束還是異常結(jié)束,在所述任務(wù)異常結(jié)束時,觸發(fā)所述異常結(jié)束處理子模塊,在所述任務(wù)正常結(jié)束的情況下,觸發(fā)所述正常結(jié)束處理子模塊;
[0041]所述異常結(jié)束處理子模塊,用于釋放所述任務(wù)所占用的資源,刪除所述任務(wù)創(chuàng)建的快照;
[0042]所述正常結(jié)束處理子模塊,用于提交更新后的全局變量信息,釋放所述任務(wù)所占用的資源,刪除所述任務(wù)創(chuàng)建的快照。
[0043]結(jié)合第二方面的第六種可能的實現(xiàn)方式,在第二方面的第七種可能的實現(xiàn)方式中,本發(fā)明實施例提供的一種任務(wù)處理系統(tǒng)還包括:重新執(zhí)行模塊,用于在所述異常結(jié)束處理子模塊釋放所述任務(wù)所占用的資源,刪除所述快照后,重新觸發(fā)所述任務(wù)調(diào)度模塊。
[0044]通過應(yīng)用以上技術(shù)方案,本發(fā)明實施例提供的一種任務(wù)處理方法及系統(tǒng),可以使用擴展指令獲得任務(wù)所需訪問的堆地址信息、任務(wù)所需訪問的棧地址信息和任務(wù)中待執(zhí)行指令的地址信息并根據(jù)這些地址信息對任務(wù)進行調(diào)度處理或內(nèi)存優(yōu)化處理。由于并行任務(wù)執(zhí)行過程中的效率受限于這些地址信息,本發(fā)明通過對這些地址信息進行調(diào)度處理或內(nèi)存優(yōu)化處理,可以有效提高任務(wù)執(zhí)行的效率,縮短任務(wù)執(zhí)行的時間。
【專利附圖】

【附圖說明】
[0045]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0046]圖1為本發(fā)明實施例提供的一種任務(wù)處理方法的流程示意圖;
[0047]圖2為本發(fā)明實施例提供的另一種任務(wù)處理方法的流程示意圖;
[0048]圖3為本發(fā)明實施例提供的應(yīng)用程序的執(zhí)行示意圖;
[0049]圖4為本發(fā)明實施例提供的另一種任務(wù)處理方法的流程示意圖;
[0050]圖5為本發(fā)明實施例提供的另一種任務(wù)處理方法的流程示意圖;
[0051]圖6為本發(fā)明實施例提供的另一種任務(wù)處理方法的流程示意圖;
[0052]圖7為本發(fā)明實施例提供的一種任務(wù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0053]圖8為本發(fā)明實施例提供的另一種任務(wù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0054]圖9為本發(fā)明實施例提供的另一種任務(wù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0055]圖10為本發(fā)明實施例提供的另一種任務(wù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0056]圖11為本發(fā)明實施例提供的另一種任務(wù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0057]圖12為本發(fā)明實施例提供的另一種任務(wù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0058]圖13為本發(fā)明實施例提供的另一種任務(wù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0059]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本發(fā)明保護的范圍。
[0060]首先對可以實施本發(fā)明的一種構(gòu)架進行說明,可以理解的是,該構(gòu)架僅僅是可以實施本發(fā)明所提供方案的多個構(gòu)架中的一種,本發(fā)明并不限定具體的實施構(gòu)架。
[0061]本發(fā)明可以在機群系統(tǒng)中實施,機群系統(tǒng)是互相連接的多個獨立計算機(又稱為計算節(jié)點)的集合,這些計算機可以是單機或多處理器系統(tǒng),每個結(jié)點都有自己的存儲器、I/o設(shè)備和操作系統(tǒng)。機群系統(tǒng)對用戶和應(yīng)用來說是一個單一的系統(tǒng),即呈現(xiàn)單一系統(tǒng)映像,它可以提供低價高效的高性能環(huán)境和快速可靠的服務(wù)。為使機群系統(tǒng)呈現(xiàn)單一系統(tǒng)映像,機群系統(tǒng)中所有計算節(jié)點的存儲空間在邏輯上是全局編址的,通過相應(yīng)的一致性模型和一致性協(xié)議來保證和維護各個節(jié)點地址空間的一致性。當然本發(fā)明還可以在其他架構(gòu)中實施,如云系統(tǒng)。
[0062]如圖1所示,本發(fā)明實施例提供的一種任務(wù)處理方法,可以包括:
[0063]S100、使用第一擴展指令創(chuàng)建任務(wù)并使用該第一擴展指令獲得所述任務(wù)執(zhí)行所需的內(nèi)存地址信息,其中,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息包括:所述任務(wù)所需訪問的堆地址信息、所述任務(wù)所需訪問的棧地址信息和所述任務(wù)中待執(zhí)行指令的地址信息;
[0064]其中,任務(wù)執(zhí)行所需的內(nèi)存地址信息還可以包括:所述任務(wù)需同步的全局變量信息。本領(lǐng)域技術(shù)人員可以理解的是,由于僅有部分任務(wù)攜帶有需同步的全局變量信息,因此第一擴展指令可以僅獲得任務(wù)所需訪問的堆地址信息、任務(wù)所需訪問的棧地址信息和任務(wù)中待執(zhí)行指令的地址信息。
[0065]在實際應(yīng)用中,還可以使用第一擴展指令獲得其他信息,如文件描述句柄信息,本發(fā)明在此不做限定。
[0066]可以理解的是,在創(chuàng)建任務(wù)時就使用擴展指令獲得任務(wù)所需訪問的堆地址信息、任務(wù)所需訪問的棧地址信息和任務(wù)中待執(zhí)行指令的地址信息可以簡化流程,便于任務(wù)調(diào)度器基于這些信息進行合理的調(diào)度或使得編譯器基于這些信息對任務(wù)重新分配內(nèi)存地址。
[0067]其中,棧地址信息可以包括棧的起始位置和棧的大小。棧地址是各計算節(jié)點的私有地址,各計算節(jié)點對棧地址的數(shù)據(jù)修改操作對全局地址是不可見的。堆地址信息可以包括堆的起始位置和堆的大小,堆內(nèi)存儲的信息是全局共享的,對堆內(nèi)存儲數(shù)據(jù)的修改是對全局可見的。待執(zhí)行指令的地址信息指明了新創(chuàng)建的任務(wù)需要執(zhí)行的指令流的入口地址信息。需同步的全局變量信息包含了和其他任務(wù)進行同步的變量地址信息。
[0068]其中,堆地址信息可以為堆地址,棧地址信息可以為棧地址。
[0069]在實際應(yīng)用中,第一擴展指令可以作為擴展的基本指令加入到基本指令集中。可以理解的是,指令集是計算機能夠執(zhí)行的指令的集合,它是計算機資源的良好的抽象。基本指令是在各種任務(wù)執(zhí)行過程中所經(jīng)常用到的一些指令,如mov、add、or等。如表I所示,為一種基本指令集:
[00"70] 表I基本指令集表[0071]指令__操作數(shù)__^_
mov mov m/imm, m將操作數(shù)I傳送到操作數(shù)2
add add m/imm, m/imm, m相加(操作數(shù)1+操作數(shù)2->操作數(shù)3)
sub sub m/imm, m/imm, m相減(操作數(shù)1-操作數(shù)2->操作數(shù)3)
mul mul m/imm, m/imm.m相乘(操作數(shù)I*操作數(shù)2->操作數(shù)3)
div sub m/imm, m/imm, m相除(操作數(shù)I/操作數(shù)2->操作數(shù)3)
and and m/imm, m/imm, m位與(操作數(shù)I AND操作數(shù)2->操作數(shù)3)
or or m/imm, m/imm, m位或(操作數(shù)I OR操作數(shù)2->操作數(shù)3)


位異或(操作數(shù)I XOR操作數(shù)2->操作數(shù)
xor XOi m/imm.m/imm.m ^_i)_

分支(比較操作數(shù)I和操作數(shù)2,根據(jù)結(jié)
brbr:con m/imm, m/imm.moffs*

果con跳轉(zhuǎn)到操作數(shù)3)
注釋:
m為內(nèi)存地址,imm為立即數(shù),moffs*為一內(nèi)存地址,con為轉(zhuǎn)移條件
[0072]其中,mov為數(shù)據(jù)傳送類指令,add、sub、mul、div、and、or和xor為運算類指令,
br為程序控制類指令。使用表1中列出的基本指令即可實現(xiàn)大多數(shù)的計算應(yīng)用。為了支 持機群環(huán)境中任務(wù)的并行調(diào)度和管理,本發(fā)明中引入了與任務(wù)相關(guān)的指令:第一擴展指令。 在實際應(yīng)用中,可以把第一擴展指
[0073]令也加入到基本指令集中。具體的,第一擴展指令可以如表2所示:
[0074]表2第一擴展指令操作數(shù)表
[0075]
指令__操作數(shù)__?_
newr newr m I,m2, moffs*創(chuàng)建新的任務(wù)
newr的三個參數(shù)ml, m2, moffs*分別為:找地址、堆地址和第一條指令地址(由于從 第一指令開始執(zhí)行,因此首先獲得的待執(zhí)行指令的地址信息為第一條指令地址)
[0076]當任務(wù)執(zhí)行所需的內(nèi)存地址信息也包括任務(wù)需同步的全局變量信息時,第一擴展指令可以如表3所示:
[0077]表3第一擴展指令操作數(shù)表
[0078]指令__操作數(shù)__^_
newr newr ml, m2, m3, moffs*創(chuàng)建新的任務(wù)
newr的四個參數(shù)ml, m2, m3,moffs*分別為:棧地址、堆地址、同步全局更量和第一 條指令地址
[0079]其中,如表2及表3所示,根據(jù)參數(shù)ml (棧地址)可以獲得棧地址信息,根據(jù)參數(shù)m2 (堆地址)可以獲得堆地址信息,根據(jù)參數(shù)m3 (同步全局變量)可以獲得任務(wù)需同步的全局變量信息,根據(jù)參數(shù)moffs* (第一條指令地址)可以獲得任務(wù)中待執(zhí)行指令的地址信息??梢岳斫獾氖?,表2及表3中使用newr對第一擴展指令進行了命名,在本發(fā)明提供的其他實施例中,還可以使用其他名稱對第一擴展指令進行命名。
[0080]S200、根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理。
[0081]可以理解的是,在獲得以上信息以后,可以對任務(wù)進行調(diào)度處理或內(nèi)存優(yōu)化處理。具體的,可以根據(jù)以上信息選擇處于空閑狀態(tài)的計算節(jié)點執(zhí)行該任務(wù),可以選擇距離該任務(wù)所需訪問內(nèi)存地址所對應(yīng)的物理內(nèi)存地址相近的計算節(jié)點執(zhí)行該任務(wù),也可以使得編譯器根據(jù)以上信息對重新分配該任務(wù)所需訪問的內(nèi)存地址以對所需訪問的內(nèi)存地址進行優(yōu)化。
[0082]舉例來說:在機群系統(tǒng)中,為了提高系統(tǒng)運行效率,往往需要并行執(zhí)行多個任務(wù),將這多個任務(wù)分配給不同的計算節(jié)點。為了簡化對機群系統(tǒng)內(nèi)存的管理,一般情況下使用“頁”對機群系統(tǒng)的虛擬內(nèi)存進行劃分,劃分出多個虛擬內(nèi)存頁面,每個虛擬內(nèi)存頁面中都包含有多個連續(xù)的虛擬內(nèi)存地址。可以理解的是,為了可以訪問到所需訪問的物理地址,還需要提供虛擬內(nèi)存地址與物理地址之間的對應(yīng)關(guān)系。由于不同任務(wù)執(zhí)行過程中需要訪問的虛擬內(nèi)存地址不定,這也帶 來了并行任務(wù)執(zhí)行過程中可能存在至少兩個并行任務(wù)需要訪問同一虛擬內(nèi)存頁面中不同的虛擬內(nèi)存地址的情況。當出現(xiàn)這種情況時,傳統(tǒng)的任務(wù)處理方法是僅執(zhí)行其中的一個任務(wù),而讓其他任務(wù)等待,這種方法無疑降低了機群系統(tǒng)的效率。而本發(fā)明可以在獲得任務(wù)執(zhí)行所需的內(nèi)存地址信息后,可以根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理。
[0083]其中,任務(wù)調(diào)度處理的具體方式可以為:對并行任務(wù)所需訪問的同一個虛擬內(nèi)存頁面進行快照處理。當僅有兩個并行任務(wù)訪問同一虛擬內(nèi)存頁面時,可以對該虛擬內(nèi)存頁面進行一次快照處理,將該虛擬內(nèi)存頁面復制到不同于該虛擬內(nèi)存頁面的其他空閑虛擬內(nèi)存地址中。這樣,這兩個并行任務(wù)就可以分別訪問原始的虛擬內(nèi)存頁面和快照獲得的虛擬內(nèi)存頁面,不用再進行等待。
[0084]當然,還可以有其他的調(diào)度處理方式,如:重新整理任務(wù)的執(zhí)行順序,以使并行執(zhí)行的多個任務(wù)執(zhí)行時不再涉及相同的內(nèi)存頁面。舉例來說,假設(shè)第一任務(wù)、第二任務(wù)首先并行執(zhí)行,然后第三任務(wù)和第四任務(wù)并行執(zhí)行,第一任務(wù)和第二任務(wù)都需要訪問第一內(nèi)存頁面中的內(nèi)存地址,第三任務(wù)和第四任務(wù)都需要訪問第二內(nèi)存頁面中的內(nèi)存地址。本發(fā)明可以控制第一任務(wù)和第三任務(wù)并行執(zhí)行,第二任務(wù)和第四任務(wù)并行執(zhí)行,這樣在以上四個任務(wù)并行執(zhí)行過程中就不會出現(xiàn)并行任務(wù)訪問相同內(nèi)存地址的情況。
[0085]另一種任務(wù)調(diào)度處理方式是,選擇距離任務(wù)所需訪問內(nèi)存地址所對應(yīng)的物理內(nèi)存地址相近的計算節(jié)點執(zhí)行該任務(wù)??梢岳斫獾氖牵嬎愎?jié)點訪問距離自己較近物理內(nèi)存地址可以在更短的訪問路徑上完成數(shù)據(jù)訪問,從而縮短讀取時間,增加任務(wù)的執(zhí)行速度。在處理多個任務(wù)時,如果多個任務(wù)所需訪問的虛擬內(nèi)存地址對應(yīng)的物理內(nèi)存地址都距離某計算節(jié)點較近,則可以選擇該計算節(jié)點執(zhí)行這多個任務(wù),可以進一步加快任務(wù)的執(zhí)行效率。
[0086]因此,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理,可以包括:對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照并初始化所述任務(wù)的執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
[0087]可以理解的是,對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照并初始化所述任務(wù)的執(zhí)行上下文是任務(wù)被執(zhí)行前的準備步驟。
[0088]其中,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理,可以包括:將所述任務(wù)執(zhí)行所需的內(nèi)存地址信息反饋給編譯器,以使所述編譯器重新為所述任務(wù)分配內(nèi)存地址。
[0089]例如,編譯器為A任務(wù)分配了虛擬內(nèi)存地址0001到0010,為B任務(wù)分配了虛擬地址0011到0020。假設(shè)一個虛擬內(nèi)存頁面中包括有1024個虛擬內(nèi)存地址,那么從0000開始,到1023結(jié)束,為一個虛擬內(nèi)存頁面。從1024開始,到2047結(jié)束,為另一個虛擬內(nèi)存頁面。本發(fā)明在獲得任務(wù)A和任務(wù)B執(zhí)行所需的內(nèi)存地址信息后,就可以得知這兩個任務(wù)所需訪問的虛擬內(nèi)存地址位于同一個虛擬內(nèi)存頁面中。本發(fā)明還可以將以上信息反饋給編譯器,使編譯器重新為A任務(wù)和/或B任務(wù)分配內(nèi)存地址。
[0090]分配的方法有多種,如,僅重新分配A任務(wù)所需訪問的虛擬內(nèi)存地址:為A任務(wù)分配了虛擬內(nèi)存地址1025到1034。這樣,A任務(wù)和B任務(wù)所需訪問的內(nèi)存地址就位于不同的虛擬內(nèi)存頁面中,A任務(wù)和B任務(wù)就可以同時執(zhí)行,增加了任務(wù)執(zhí)行的效率。再如,僅重新分配B任務(wù)所需訪問的虛擬內(nèi)存地址:為B任務(wù)分配了虛擬內(nèi)存地址1035到1044。這樣,A任務(wù)和B任務(wù)所需訪問的內(nèi)存地址就位于不同的虛擬內(nèi)存頁面中,A任務(wù)和B任務(wù)就可以同時執(zhí)行。再如,分別對A任務(wù)所需訪問的虛擬內(nèi)存地址和B任務(wù)所需訪問的虛擬內(nèi)存地址進行重新分配:為A任務(wù)分配了虛擬內(nèi)存地址0125到0134,為B任務(wù)分配了虛擬內(nèi)存地址1035到1044。這樣,A任務(wù)和B任務(wù)所需訪問的內(nèi)存地址就位于不同的虛擬內(nèi)存頁面中,A任務(wù)和B任務(wù)同樣可以同時執(zhí)行。
[0091 ] 本發(fā)明實施例提供的一種任務(wù)處理方法,可以使用擴展指令獲得任務(wù)所需訪問的堆地址信息、任務(wù)所需訪問的棧地址信息和任務(wù)中待執(zhí)行指令的地址信息并根據(jù)這些地址信息對任務(wù)進行調(diào)度處理或內(nèi)存優(yōu)化處理。由于并行任務(wù)執(zhí)行過程中的效率受限于這些地址信息,本發(fā)明通過對這些地址信息進行調(diào)度處理或內(nèi)存優(yōu)化處理,可以有效提高任務(wù)執(zhí)行的效率,縮短任務(wù)執(zhí)行的時間。
[0092]如圖2所示,在本發(fā)明實施例提供的另一種任務(wù)處理方法中,步驟S200,可以包括:
[0093]S210、判斷所述任務(wù)是否帶有需同步的全局變量信息,如果是,執(zhí)行步驟S230,如果否,則執(zhí)行步驟S220 ;
[0094]可以理解的是,可以根據(jù)第一擴展指令獲得的同步全局變量信息判斷是否帶有需同步的全局變量信息。具體的,當任務(wù)不帶有需同步的全局變量信息時,第一擴展指令中任務(wù)需同步的全局變量信息所對應(yīng)的參數(shù)可以為空。也即:可以根據(jù)需同步的全局變量信息所對應(yīng)的參數(shù)返回值是否為空來判斷該任務(wù)是否攜帶有需同步的全局變量信息。
[0095]S220、對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照并初始化所述任務(wù)的執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù);
[0096]可以理解的是,對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照可以利用程序執(zhí)行的局部性原理,任務(wù)對所需訪問的堆地址內(nèi)的信息進行復制,保存到本地內(nèi)存,減少內(nèi)存一致性維護的開銷。由于任務(wù)執(zhí)行上下文中的堆信息是全局共享的,因此任務(wù)通過修改堆信息就可以將任務(wù)執(zhí)行的結(jié)果通知給系統(tǒng)的其他任務(wù)以實現(xiàn)任務(wù)間的數(shù)據(jù)交互。因此,可以僅對堆地址信息創(chuàng)建快照,而對計算節(jié)點私有的棧地址信息則不創(chuàng)建快照。
[0097]其中,步驟S220可以選擇處于空閑狀態(tài)的計算節(jié)點執(zhí)行該任務(wù)。本領(lǐng)域技術(shù)人員可以理解的是,如圖3所示,任務(wù)在執(zhí)行過程中,需要首先在編譯器001上編譯為虛擬指令代碼,為其分配虛擬內(nèi)存地址,然后在虛擬機或虛擬環(huán)境中經(jīng)指令編譯器002翻譯為目標指令,任務(wù)調(diào)度單元003 (也即任務(wù)調(diào)度器)將目標指令發(fā)送到相應(yīng)的執(zhí)行模塊005中進行執(zhí)行。其中,執(zhí)行模塊005可以與具體的硬件平臺006相對應(yīng)。
[0098]可以理解的是,將虛擬指令代碼翻譯為與特定硬件環(huán)境相關(guān)的目標指令可以保證應(yīng)用程序和虛擬指令代碼與平臺無關(guān),具有很好的適用性和可移植性。任務(wù)調(diào)度單元003可以選擇空閑的執(zhí)行模塊005 (計算節(jié)點)來執(zhí)行目標指令。具體的,可以使用靜態(tài)翻譯或動態(tài)翻譯的方式對虛擬指令代碼進行翻譯。
[0099]在實際應(yīng)用中,任務(wù)調(diào)度單元003可以將指令翻譯器002翻譯得到的目標指令分發(fā)到多個處于空閑狀態(tài)的執(zhí)行單元005,這多個處于空閑狀態(tài)的執(zhí)行單元005分別執(zhí)行目標指令中的一段代碼(某子任務(wù))。也即,經(jīng)過第一擴展指令和任務(wù)調(diào)度單元的調(diào)度,多個處于空閑狀態(tài)的計算節(jié)點可以分別執(zhí)行目標指令中的一段代碼以完成多個子任務(wù)并最終完成某一任務(wù)。本實施例中,指令的執(zhí)行可以是串行的,默認情況下會執(zhí)行到最后一條指令。因此,可以使用特定的機制界定代碼段的結(jié)束,即標明任務(wù)的結(jié)束。在本發(fā)明中,可以使用第二擴展指令來指示任務(wù)的結(jié)束。
[0100]S230、等待所述需同步的全局變量信息的內(nèi)容更新后,對所述任務(wù)需訪問的堆地址信息創(chuàng)建快照并初始化任務(wù)執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
[0101]本領(lǐng)域技術(shù)人員可以理解的是,在任務(wù)執(zhí)行所需的內(nèi)存地址信息包括任務(wù)需同步的全局變量信息的情況下,需首先等待該需同步的全局變量信息內(nèi)容更新后,再執(zhí)行后續(xù)處理。
[0102]可以理解的是,在多個任務(wù)順序執(zhí)行的過程中,在后執(zhí)行的任務(wù)可能需要前面所執(zhí)行任務(wù)的執(zhí)行結(jié)果。因此,當?shù)谝蝗蝿?wù)需要第二任務(wù)的執(zhí)行結(jié)果時,可以等待第二任務(wù)的執(zhí)行結(jié)果提交后(也即等待所需同步的全局變量信息內(nèi)容更新后),再啟動第一任務(wù)的執(zhí)行。具體的,可以使用標志位控制任務(wù)的運行。
[0103]如圖4所示,本發(fā)明實施例提供的另一種任務(wù)處理方法中,還可以包括:
[0104]S300、使用第二擴展指令結(jié)束所述任務(wù)并使用該第二擴展指令獲得所述任務(wù)的執(zhí)行結(jié)束信息,其中,所述任務(wù)的執(zhí)行結(jié)束信息包括:所述任務(wù)正常結(jié)束的信息和所述任務(wù)異常結(jié)束的信息;
[0105]具體的,第二擴展指令可以如表4所示:
[0106]表4第二擴展指令操作數(shù)表
[0107]
【權(quán)利要求】
1.一種任務(wù)處理方法,其特征在于,包括: 使用第一擴展指令創(chuàng)建任務(wù)并使用所述第一擴展指令獲得所述任務(wù)執(zhí)行所需的內(nèi)存地址信息,其中,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息包括:所述任務(wù)所需訪問的堆地址信息、所述任務(wù)所需訪問的棧地址信息和所述任務(wù)中待執(zhí)行指令的地址信息; 根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息 對所述任務(wù)進行內(nèi)存優(yōu)化處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息還包括: 所述任務(wù)需同步的全局變量信息。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括: 使用第二擴展指令結(jié)束所述任務(wù)并使用所述第二擴展指令獲得所述任務(wù)的執(zhí)行結(jié)束信息,其中,所述任務(wù)的執(zhí)行結(jié)束信息包括:所述任務(wù)正常結(jié)束的信息和所述任務(wù)異常結(jié)束的信息; 根據(jù)所述第二擴展指令獲得的所述任務(wù)的執(zhí)行結(jié)束信息對所述任務(wù)占用的資源進行釋放處理。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理,包括: 對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照并初始化所述任務(wù)的執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理,包括: 等待所述需同步的全局變量信息的內(nèi)容更新后,對所述任務(wù)需訪問的堆地址信息創(chuàng)建快照并初始化任務(wù)執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
6.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理,包括: 將所述任務(wù)執(zhí)行所需的內(nèi)存地址信息反饋給編譯器,以使所述編譯器重新為所述任務(wù)分配內(nèi)存地址。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述第二擴展指令獲得的所述任務(wù)的執(zhí)行結(jié)束信息對所述任務(wù)占用的資源進行釋放處理,包括: 判斷所述任務(wù)為正常結(jié)束還是異常結(jié)束,如果為正常結(jié)束,則提交所述任務(wù)更新后的全局變量信息,釋放所述任務(wù)所占用資源,刪除所述任務(wù)創(chuàng)建的快照;如果為異常結(jié)束,則釋放所述任務(wù)所占用的資源,刪除所述任務(wù)創(chuàng)建的快照。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在所述任務(wù)為異常結(jié)束的情況下,釋放所述任務(wù)所占用的資源,刪除所述快照后,還包括: 重新執(zhí)行所述根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理的步驟。
9.一種任務(wù)處理系統(tǒng),其特征在于,包括:第一獲取模塊和任務(wù)調(diào)度模塊, 所述第一獲取模塊使用第一擴展指令創(chuàng)建任務(wù)并使用所述第一擴展指令獲得所述任務(wù)執(zhí)行所需的內(nèi)存地址信息,發(fā)送至所述任務(wù)調(diào)度模塊中,其中,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息包括:所述任務(wù)所需訪問的堆地址信息、所述任務(wù)所需訪問的棧地址信息和所述任務(wù)中待執(zhí)行指令的地址信息; 所述任務(wù)調(diào)度模塊根據(jù)第一獲取模塊發(fā)送的所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行調(diào)度處理和/或根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息對所述任務(wù)進行內(nèi)存優(yōu)化處理。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述任務(wù)執(zhí)行所需的內(nèi)存地址信息還包括: 所述任務(wù)需同步的全局變量信息。
11.根據(jù)權(quán)利要求9或10所述的系統(tǒng),其特征在于,還包括:執(zhí)行結(jié)束信息獲取模塊和任務(wù)結(jié)束處理模塊, 所述執(zhí)行結(jié)束信息獲取模塊使用第二擴展指令結(jié)束所述任務(wù)并使用所述第二擴展指令獲得所述任務(wù)的執(zhí)行結(jié)束信息并發(fā)送至所述任務(wù)結(jié)束處理模塊中,其中,所述任務(wù)的執(zhí)行結(jié)束信息包括:所述任務(wù)正常結(jié)束的信息和所述任務(wù)異常結(jié)束的信息; 所述任務(wù)結(jié)束處理模塊根據(jù)執(zhí)行結(jié)束信息獲取模塊發(fā)送的所述任務(wù)的執(zhí)行結(jié)束信息對所述任務(wù)占用的資源進行釋放處理。
12.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述任務(wù)調(diào)度模塊包括:第一調(diào)度子模塊, 所述第一調(diào)度子模塊對所述任務(wù)所需訪問的堆地址信息創(chuàng)建快照并初始化所述任務(wù)的執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述任務(wù)調(diào)度模塊包括:第二調(diào)度子模塊, 所述第二調(diào)度子模塊等待所述需同步的全局變量信息的內(nèi)容更新后,對所述任務(wù)需訪問的堆地址信息創(chuàng)建快照并初始化任務(wù)執(zhí)行上下文,根據(jù)所述任務(wù)執(zhí)行所需的內(nèi)存地址信息選擇一計算節(jié)點執(zhí)行所述任務(wù)。
14.根據(jù)權(quán)利要求9或10所述的系統(tǒng),其特征在于,所述任務(wù)調(diào)度模塊包括:地址信息發(fā)送子模塊, 所述地址信息發(fā)送子模塊將所述任務(wù)執(zhí)行所需的內(nèi)存地址信息反饋給編譯器,以使所述編譯器重新為所述任務(wù)分配內(nèi)存地址。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述任務(wù)結(jié)束處理模塊,包括:結(jié)束判斷子模塊、異常結(jié)束處理子模塊和正常結(jié)束處理子模塊, 所述結(jié)束判斷子模塊結(jié)束所述任務(wù)并判斷所述任務(wù)為正常結(jié)束還是異常結(jié)束,在所述任務(wù)異常結(jié)束時,觸發(fā)所述異常結(jié)束處理子模塊,在所述任務(wù)正常結(jié)束的情況下,觸發(fā)所述正常結(jié)束處理子模塊; 所述異常結(jié)束處理子模塊,用于釋放所述任務(wù)所占用的資源,刪除所述任務(wù)創(chuàng)建的快昭.所述正常結(jié)束處理子模塊,用于提交更新后的全局變量信息,釋放所述任務(wù)所占用的資源,刪除所述任務(wù)創(chuàng)建的快照。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,還包括:重新執(zhí)行模塊,用于在所述異常結(jié)束處理子 模塊釋放所述任務(wù)所占用的資源,刪除所述快照后,重新觸發(fā)所述任務(wù)調(diào)度 模塊。
【文檔編號】G06F9/48GK103631648SQ201210295952
【公開日】2014年3月12日 申請日期:2012年8月20日 優(yōu)先權(quán)日:2012年8月20日
【發(fā)明者】顧磷, 盛中華, 文劉飛 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
白水县| 化德县| 邓州市| 江津市| 天峻县| 吐鲁番市| 开鲁县| 呼图壁县| 太仆寺旗| 江川县| 锦屏县| 浮山县| 馆陶县| 象山县| 灵石县| 旬邑县| 延川县| 扬州市| 定兴县| 兴文县| 晴隆县| 安义县| 罗城| 静安区| 南郑县| 南阳市| 灵川县| 信宜市| 罗定市| 丰都县| 阳山县| 三穗县| 合肥市| 彰武县| 甘孜| 广州市| 陇川县| 奇台县| 信宜市| 施甸县| 长沙县|