一種資源分配方法和裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種資源分配方法和裝置,該方法包括以下步驟:接收異步請(qǐng)求,對(duì)所述異步請(qǐng)求進(jìn)行判斷;如果是資源申請(qǐng)請(qǐng)求,則判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求,如果是,則將接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;否則,為所述接收到的資源申請(qǐng)請(qǐng)求分配資源;如果是資源釋放請(qǐng)求,則從所述條件隊(duì)列中選取資源申請(qǐng)請(qǐng)求,為選取的資源申請(qǐng)請(qǐng)求分配資源,將所述選取的資源申請(qǐng)請(qǐng)求從所述條件隊(duì)列中刪除;根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù)。本發(fā)明能夠?qū)崿F(xiàn)資源分配的有序性和通用性,進(jìn)而確保系統(tǒng)的可用性和健壯性。
【專利說(shuō)明】一種資源分配方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體涉及一種資源分配方法和裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)應(yīng)用的迅速發(fā)展,網(wǎng)絡(luò)中的數(shù)據(jù)量越來(lái)越大。在處理海量數(shù)據(jù)時(shí),一般在某些關(guān)鍵環(huán)節(jié)采用異步處理的方式,異步處理通常會(huì)伴隨著多線程和多進(jìn)程,因此,資源的并發(fā)訪問(wèn)控制上是一個(gè)難點(diǎn),尤其是對(duì)于長(zhǎng)時(shí)間運(yùn)行的系統(tǒng)而言,由于資源是有限的,如果處理不當(dāng),很容易出現(xiàn)系統(tǒng)性能下降,甚至直接宕機(jī)。
[0003]現(xiàn)有技術(shù)中,通常在海量數(shù)據(jù)處理系統(tǒng)中針對(duì)于一些特定場(chǎng)景采用基礎(chǔ)的互斥信號(hào)量函數(shù),進(jìn)行公共資源的互斥訪問(wèn),通用性和有序性較差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種資源分配方法和裝置,以解決現(xiàn)有的資源分配方法通用性和有序性較差的缺陷。
[0005]本發(fā)明提供了一種資源控制方法,包括以下步驟:
[0006]接收異步請(qǐng)求,對(duì)所述異步請(qǐng)求進(jìn)行判斷;
[0007]如果是資源申請(qǐng)請(qǐng)求,則判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求,如果是,則將接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;否則,為所述接收到的資源申請(qǐng)請(qǐng)求分配資源;如果是資源釋放請(qǐng)求,則從所述條件隊(duì)列中選取資源申請(qǐng)請(qǐng)求,為選取的資源申請(qǐng)請(qǐng)求分配資源,將所述選取的資源申請(qǐng)請(qǐng)求從所述條件隊(duì)列中刪除;
[0008]根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù)。
[0009]可選地,為所述接收到的資源申請(qǐng)請(qǐng)求分配資源之前,還包括:
[0010]判斷當(dāng)前可用資源量是否與所述接收到的資源申請(qǐng)請(qǐng)求匹配;
[0011]為所述接收到的資源申請(qǐng)請(qǐng)求分配資源,具體為:
[0012]如果所述當(dāng)前可用資源量與接收到的資源申請(qǐng)請(qǐng)求匹配,則為所述接收到的資源申請(qǐng)請(qǐng)求分配資源;
[0013]所述判斷當(dāng)前可用資源量是否與接收到的資源申請(qǐng)請(qǐng)求匹配之后,還包括:
[0014]如果所述當(dāng)前可用資源量與所述接收到的資源申請(qǐng)請(qǐng)求不匹配,則將所述接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;
[0015]所述性能參數(shù)包括當(dāng)前可用資源量;
[0016]根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為:
[0017]在為所述接收到的資源申請(qǐng)請(qǐng)求分配資源之后,根據(jù)為所述接收到的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量。
[0018]可選地,為所述選取的資源申請(qǐng)請(qǐng)求分配資源之前,還包括:
[0019]判斷所述當(dāng)前可用資源量是否與所述選取的資源申請(qǐng)請(qǐng)求匹配;
[0020]為所述選取的資源申請(qǐng)請(qǐng)求分配資源,具體為:
[0021]如果當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求匹配,則為所述選取的資源申請(qǐng)請(qǐng)求分配資源;
[0022]所述判斷當(dāng)前可用資源量是否與選取的資源申請(qǐng)請(qǐng)求匹配之后,還包括:
[0023]如果所述當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求不匹配,則將選取的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;
[0024]所述性能參數(shù)包括當(dāng)前可用資源量;
[0025]根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為:
[0026]在判斷出所述異步請(qǐng)求為資源釋放請(qǐng)求之后,根據(jù)接收到的資源釋放請(qǐng)求,更新當(dāng)前可用資源量;在為所述選取的資源申請(qǐng)請(qǐng)求分配資源之后,根據(jù)為所述選取的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量。
[0027]可選地,所述性能參數(shù)包括資源申請(qǐng)等待總時(shí)長(zhǎng);
[0028]根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為:
[0029]在為所述選取的資源申請(qǐng)請(qǐng)求分配資源之后,獲取與所述選取的資源申請(qǐng)請(qǐng)求對(duì)應(yīng)的等待時(shí)長(zhǎng),并根據(jù)所述等待時(shí)長(zhǎng),更新所述資源申請(qǐng)等待總時(shí)長(zhǎng)。
[0030]可選地,所述性能參數(shù)包括阻塞總次數(shù);
[0031]根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為:
[0032]在將接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中之后,更新所述阻塞總次數(shù);
[0033]判斷出所述當(dāng)前可用資源量與選取的資源申請(qǐng)請(qǐng)求不匹配之后,更新所述阻塞總次數(shù)。
[0034]本發(fā)明還提供了一種資源控制裝置,包括:
[0035]接收模塊,用于接收異步請(qǐng)求;
[0036]第一判斷模塊,用于對(duì)所述接收模塊接收到的所述異步請(qǐng)求進(jìn)行判斷;
[0037]第二判斷模塊,用于在所述第一判斷模塊判斷出所述異步請(qǐng)求是資源申請(qǐng)請(qǐng)求時(shí),判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求;
[0038]添加模塊,用于在所述第二判斷模塊判斷出所述條件隊(duì)列中存在資源申請(qǐng)請(qǐng)求時(shí),將所述接收模塊接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;
[0039]選取模塊,用于在所述第一判斷模塊判斷出所述異步請(qǐng)求是資源釋放請(qǐng)求時(shí),從所述條件隊(duì)列中選取資源申請(qǐng)請(qǐng)求;
[0040]分配模塊,用于為所述選取模塊選取的資源申請(qǐng)請(qǐng)求分配資源,在所述第二判斷模塊判斷出所述條件隊(duì)列中不存在資源申請(qǐng)請(qǐng)求時(shí),為所述接收模塊接收到的資源申請(qǐng)請(qǐng)求分配資源;
[0041]刪除模塊,用于將所述選取模塊選取的資源申請(qǐng)請(qǐng)求從所述條件隊(duì)列中刪除;
[0042]更新模塊,用于根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù)。
[0043]可選地,所述的裝置,還包括:
[0044]第三判斷模塊,用于在所述第二判斷模塊判斷出所述條件隊(duì)列中不存在資源申請(qǐng)請(qǐng)求時(shí),判斷當(dāng)前可用資源量是否與所述接收到的資源申請(qǐng)請(qǐng)求匹配;
[0045]所述分配模塊,具體用于在所述第三判斷模塊判斷出所述當(dāng)前可用資源量與接收到的資源申請(qǐng)請(qǐng)求匹配時(shí),為所述接收模塊接收到的資源申請(qǐng)請(qǐng)求分配資源;
[0046]所述添加模塊,還用于在所述第三判斷模塊判斷所述當(dāng)前可用資源量與所述接收到的資源申請(qǐng)請(qǐng)求不匹配時(shí),將所述接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;
[0047]所述性能參數(shù)包括當(dāng)前可用資源量;
[0048]所述更新模塊,具體用于根據(jù)所述分配模塊為所述接收到的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量。
[0049]可選地,所述性能參數(shù)包括當(dāng)前可用資源量;
[0050]所述更新模塊,具體用于在所述第一判斷模塊判斷出所述異步請(qǐng)求是資源釋放請(qǐng)求時(shí),根據(jù)所述接收模塊接收到的資源釋放請(qǐng)求,更新當(dāng)前可用資源量;根據(jù)為所述選取模塊選取的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量;
[0051]第四判斷模塊,用于判斷所述當(dāng)前可用資源量是否與所述選取模塊選取的資源申請(qǐng)請(qǐng)求匹配;
[0052]所述分配模塊,具體用于在所述第四判斷模塊判斷出所述當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求匹配時(shí),為所述選取的資源申請(qǐng)請(qǐng)求分配資源;
[0053]所述添加模塊,還用于在所述第四判斷模塊判斷出所述當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求不匹配時(shí),將選取的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中。
[0054]可選地,所述性能參數(shù)包括資源申請(qǐng)等待總時(shí)長(zhǎng);
[0055]所述更新模塊,具體用于在所述分配模塊為所述選取的資源申請(qǐng)請(qǐng)求分配資源之后,獲取與所述選取的資源申請(qǐng)請(qǐng)求對(duì)應(yīng)的等待時(shí)長(zhǎng),并根據(jù)所述等待時(shí)長(zhǎng),更新所述資源申請(qǐng)等待總時(shí)長(zhǎng)。
[0056]可選地,所述性能參數(shù)包括阻塞總次數(shù);
[0057]所述更新模塊,具體用于在所述添加模塊將所述接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中之后,更新所述阻塞總次數(shù);在所述第四判斷模塊判斷出所述當(dāng)前可用資源量與選取的資源申請(qǐng)請(qǐng)求不匹配之后,更新所述阻塞總次數(shù)。
[0058]本發(fā)明使用條件隊(duì)列對(duì)資源申請(qǐng)請(qǐng)求進(jìn)行有效控制,使得在同一時(shí)間只有一個(gè)異步請(qǐng)求對(duì)資源進(jìn)行申請(qǐng),實(shí)現(xiàn)資源分配的有序性和通用性,進(jìn)而確保系統(tǒng)的可用性和健壯性;另外,在控制資源申請(qǐng)請(qǐng)求的同時(shí),還對(duì)資源申請(qǐng)的相關(guān)性能參數(shù)進(jìn)行統(tǒng)計(jì),使得上層控制模塊能夠通過(guò)接口實(shí)時(shí)地獲取上述性能參數(shù),并根據(jù)該性能參數(shù)做出正確的性能評(píng)估,進(jìn)而實(shí)時(shí)靈活地變更策略。
【專利附圖】
【附圖說(shuō)明】
[0059]圖1為本發(fā)明實(shí)施例中的一種資源分配方法流程圖;
[0060]圖2為本發(fā)明實(shí)施例中的一種資源分配裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0061]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0062]需要說(shuō)明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0063]本發(fā)明實(shí)施例提供了一種資源分配方法,通過(guò)條件隊(duì)列對(duì)資源申請(qǐng)請(qǐng)求進(jìn)行處理,并根據(jù)對(duì)異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),其中,該性能參數(shù)可以是自定義的參數(shù),包括資源申請(qǐng)等待總時(shí)長(zhǎng)、阻塞總次數(shù)、資源申請(qǐng)次數(shù)、資源申請(qǐng)總量、當(dāng)前使用資源量、資源釋放次數(shù)、資源釋放總量和當(dāng)前使用資源量等參數(shù)。上述資源分配方法,如圖1所示,包括以下步驟:
[0064]步驟101,等待接收異步請(qǐng)求。
[0065]步驟102,對(duì)接收到的異步請(qǐng)求進(jìn)行判斷,如果是資源申請(qǐng)請(qǐng)求,則執(zhí)行步驟103 ;如果是資源釋放請(qǐng)求,則執(zhí)行步驟108。
[0066]步驟103,根據(jù)接收到的資源申請(qǐng)請(qǐng)求,更新資源申請(qǐng)次數(shù)和資源申請(qǐng)總量。
[0067]具體地,可以將資源申請(qǐng)次數(shù)加1,作為更新后的資源申請(qǐng)次數(shù);將資源申請(qǐng)總量加上接收到的資源申請(qǐng)請(qǐng)求中的資源申請(qǐng)量,作為更新后的資源申請(qǐng)總量。
[0068]步驟104,判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求,如果是,則執(zhí)行步驟105 ;否貝U,執(zhí)行步驟106。
[0069]步驟105,將接收到的資源申請(qǐng)請(qǐng)求添加到條件隊(duì)列中,更新阻塞總次數(shù)。
[0070]具體地,可以將阻塞總次數(shù)加1,作為更新后的阻塞總次數(shù)。
[0071]步驟106,判斷當(dāng)前可用資源量是否與接收到的資源申請(qǐng)請(qǐng)求匹配,如果是,則執(zhí)行步驟107 ;否則,返回步驟105。
[0072]具體地,可以判斷當(dāng)前可用資源量是否小于接收到的資源申請(qǐng)請(qǐng)求中的資源申請(qǐng)量,如果是,則確定當(dāng)前可用資源量與接收到的資源申請(qǐng)請(qǐng)求不匹配;否則,確定當(dāng)前可用資源量與接收到的資源申請(qǐng)請(qǐng)求匹配。
[0073]步驟107,為接收到的資源申請(qǐng)請(qǐng)求分配資源,并根據(jù)分配的資源量,更新當(dāng)前可用資源量和當(dāng)前使用資源量。
[0074]具體地,可以將為接收到的資源申請(qǐng)請(qǐng)求分配資源之前的當(dāng)前可用資源量,減去為接收到的資源申請(qǐng)請(qǐng)求分配的資源量,將得到的結(jié)果作為更新后的當(dāng)前可用資源量;將為接收到的資源申請(qǐng)請(qǐng)求分配資源之前的當(dāng)前使用資源量,加上為接收到的資源申請(qǐng)請(qǐng)求分配的資源量,將得到的結(jié)果作為更新后的當(dāng)前使用資源量。
[0075]其中,本發(fā)明實(shí)施例中的資源可以是邏輯資源,也可以是物理資源,例如,帶寬、內(nèi)存、CPU時(shí)間片和磁盤容量等。
[0076]步驟108,根據(jù)接收到的資源釋放請(qǐng)求,更新當(dāng)前可用資源量、資源釋放次數(shù)和資源釋放總量。
[0077]具體地,可以將當(dāng)前可用資源量加上資源釋放請(qǐng)求中的資源釋放量,作為更新后的當(dāng)前可用資源量;將資源釋放次數(shù)加1,作為更新后的當(dāng)前可用資源量;將資源釋放總量加上資源釋放請(qǐng)求中的資源釋放量,作為更新后的資源釋放總量。
[0078]步驟109,判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求,如果是,則執(zhí)行步驟110 ;否則,返回步驟101。
[0079]步驟110,從條件隊(duì)列中選取資源申請(qǐng)請(qǐng)求。
[0080]具體地,可以從條件隊(duì)列中選取最早進(jìn)入條件隊(duì)列的資源申請(qǐng)請(qǐng)求,也可以從條件隊(duì)列中選取優(yōu)先級(jí)最高的資源申請(qǐng)請(qǐng)求。
[0081]步驟111,判斷當(dāng)前可用資源量是否與選取的資源申請(qǐng)請(qǐng)求匹配,如果是,則執(zhí)行步驟112 ;否則,更新阻塞總次數(shù),并返回步驟101。
[0082]具體地,可以判斷當(dāng)前可用資源量是否小于選取的資源申請(qǐng)請(qǐng)求中的資源申請(qǐng)量,如果是,則確定當(dāng)前可用資源量與選取的資源申請(qǐng)請(qǐng)求不匹配,將阻塞總次數(shù)加1,作為更新后的阻塞總次數(shù);否則,確定當(dāng)前可用資源量與選取的資源申請(qǐng)請(qǐng)求匹配。
[0083]步驟112,將選取的資源申請(qǐng)請(qǐng)求從條件隊(duì)列中刪除,為選取的資源申請(qǐng)請(qǐng)求分配資源,根據(jù)分配的資源量,更新當(dāng)前可用資源量和當(dāng)前使用資源量,獲取與選取的資源申請(qǐng)請(qǐng)求對(duì)應(yīng)的等待時(shí)長(zhǎng),并根據(jù)該等待時(shí)長(zhǎng),更新資源申請(qǐng)等待總時(shí)長(zhǎng)。
[0084]具體地,可以將為選取的資源申請(qǐng)請(qǐng)求分配資源之前的當(dāng)前可用資源量,減去為選取的資源申請(qǐng)請(qǐng)求分配的資源量,將得到的結(jié)果作為更新后的當(dāng)前可用資源量;將為選取的資源申請(qǐng)請(qǐng)求分配資源之前的當(dāng)前使用資源量,加上為選取的資源申請(qǐng)請(qǐng)求分配的資源量,將得到的結(jié)果作為更新后的當(dāng)前使用資源量;將與選取的資源申請(qǐng)請(qǐng)求對(duì)應(yīng)的等待時(shí)長(zhǎng),加上資源申請(qǐng)等待總時(shí)長(zhǎng),將得到的結(jié)果作為更新后的資源申請(qǐng)等待總時(shí)長(zhǎng)。
[0085]本發(fā)明實(shí)施例使用條件隊(duì)列對(duì)資源申請(qǐng)請(qǐng)求進(jìn)行有效控制,使得在同一時(shí)間只有一個(gè)異步請(qǐng)求對(duì)資源進(jìn)行申請(qǐng),實(shí)現(xiàn)資源分配的有序性和通用性,進(jìn)而確保系統(tǒng)的可用性和健壯性;另外,在控制資源申請(qǐng)請(qǐng)求的同時(shí),還對(duì)資源申請(qǐng)的相關(guān)性能參數(shù)進(jìn)行統(tǒng)計(jì),使得上層控制模塊能夠通過(guò)接口實(shí)時(shí)地獲取上述性能參數(shù),并根據(jù)該性能參數(shù)做出正確的性能評(píng)估,進(jìn)而實(shí)時(shí)靈活地變更策略。
[0086]基于上述資源分配方法,本發(fā)明實(shí)施例還提供了一種資源分配裝置,如圖2所示,包括:
[0087]接收模塊201,用于接收異步請(qǐng)求;
[0088]第一判斷模塊202,用于對(duì)接收模塊201接收到的所述異步請(qǐng)求進(jìn)行判斷;
[0089]第二判斷模塊203,用于在第一判斷模塊202判斷出異步請(qǐng)求是資源申請(qǐng)請(qǐng)求時(shí),判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求;
[0090]添加模塊204,用于在第二判斷模塊203判斷出條件隊(duì)列中存在資源申請(qǐng)請(qǐng)求時(shí),將接收模塊201接收到的資源申請(qǐng)請(qǐng)求添加到條件隊(duì)列中;
[0091]選取模塊205,用于在第一判斷模塊202判斷出異步請(qǐng)求是資源釋放請(qǐng)求時(shí),從所述條件隊(duì)列中選取資源申請(qǐng)請(qǐng)求;
[0092]具體地,上述選取模塊205,具體用于從條件隊(duì)列中選取最早進(jìn)入條件隊(duì)列的資源申請(qǐng)請(qǐng)求;
[0093]或者,
[0094]從條件隊(duì)列中選取優(yōu)先級(jí)最高的資源申請(qǐng)請(qǐng)求。
[0095]分配模塊206,用于為選取模塊205選取的資源申請(qǐng)請(qǐng)求分配資源,在第二判斷模塊203判斷出條件隊(duì)列中不存在資源申請(qǐng)請(qǐng)求時(shí),為接收模塊201接收到的資源申請(qǐng)請(qǐng)求分配資源;
[0096]刪除模塊207,用于將選取模塊205選取的資源申請(qǐng)請(qǐng)求從條件隊(duì)列中刪除。
[0097]更新模塊209,用于根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù)。
[0098]進(jìn)一步地,上述裝置,還包括:
[0099]第三判斷模塊208,用于在第二判斷模塊203判斷出條件隊(duì)列中不存在資源申請(qǐng)請(qǐng)求時(shí),判斷當(dāng)前可用資源量是否與接收模塊201接收到的資源申請(qǐng)請(qǐng)求匹配;
[0100]相應(yīng)地,上述分配模塊206,具體用于在第三判斷模塊208判斷出當(dāng)前可用資源量與接收模塊201接收到的資源申請(qǐng)請(qǐng)求匹配時(shí),為資源申請(qǐng)請(qǐng)求分配資源;
[0101]上述添加模塊204,還用于在所述第三判斷模塊208判斷當(dāng)前可用資源量與接收模塊201接收到的資源申請(qǐng)請(qǐng)求不匹配時(shí),將資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;
[0102]上述更新模塊209,具體用于根據(jù)分配模塊206為接收模塊201接收到的資源申請(qǐng)請(qǐng)求分配的資源量,更新當(dāng)前可用資源量。
[0103]進(jìn)一步地,上述裝置,
[0104]上述更新模塊209,具體用于在第一判斷模塊202判斷出異步請(qǐng)求是資源釋放請(qǐng)求時(shí),根據(jù)接收模塊201接收到的資源釋放請(qǐng)求,更新當(dāng)前可用資源量;根據(jù)為選取模塊205選取的資源申請(qǐng)請(qǐng)求分配的資源量,更新當(dāng)前可用資源量;
[0105]第四判斷模塊210,用于判斷當(dāng)前可用資源量是否與選取模塊205選取的資源申請(qǐng)請(qǐng)求匹配;
[0106]相應(yīng)地,上述分配模塊206,具體用于在第四判斷模塊210判斷出當(dāng)前可用資源量與選取模塊205選取的資源申請(qǐng)請(qǐng)求匹配時(shí),為選取的資源申請(qǐng)請(qǐng)求分配資源;
[0107]所述添加模塊204,還用于在所述第四判斷模塊210判斷出當(dāng)前可用資源量與選取模塊205選取的資源申請(qǐng)請(qǐng)求不匹配時(shí),將選取的資源申請(qǐng)請(qǐng)求添加到條件隊(duì)列中。
[0108]進(jìn)一步地,上述更新模塊209,具體用于在分配模塊206為選取的資源申請(qǐng)請(qǐng)求分配資源之后,獲取與選取的資源申請(qǐng)請(qǐng)求對(duì)應(yīng)的等待時(shí)長(zhǎng),并根據(jù)該等待時(shí)長(zhǎng),更新資源申請(qǐng)等待總時(shí)長(zhǎng);
[0109]在添加模塊204將接收到的資源申請(qǐng)請(qǐng)求添加到條件隊(duì)列中之后,更新阻塞總次數(shù);在第四判斷模塊210判斷出當(dāng)前可用資源量與選取的資源申請(qǐng)請(qǐng)求不匹配之后,更新阻塞總次數(shù);
[0110]在第一判斷模塊202判斷出異步請(qǐng)求為資源申請(qǐng)請(qǐng)求時(shí),根據(jù)接收到的資源申請(qǐng)請(qǐng)求,更新資源申請(qǐng)次數(shù)和資源申請(qǐng)總量;在第一判斷模塊202判斷出異步請(qǐng)求為資源釋放請(qǐng)求時(shí),根據(jù)接收到的資源釋放請(qǐng)求,更新資源釋放次數(shù)和資源釋放總量;
[0111]在分配模塊206為接收到的資源申請(qǐng)請(qǐng)求分配資源后,根據(jù)為接收到的資源申請(qǐng)請(qǐng)求分配的資源量,更新當(dāng)前使用資源量;在所述分配模塊206為選取的資源申請(qǐng)請(qǐng)求分配資源后,根據(jù)為選取的資源申請(qǐng)請(qǐng)求分配的資源量,更新當(dāng)前使用資源量。
[0112]本發(fā)明實(shí)施例使用條件隊(duì)列對(duì)資源申請(qǐng)請(qǐng)求進(jìn)行有效控制,使得在同一時(shí)間只有一個(gè)異步請(qǐng)求對(duì)資源進(jìn)行申請(qǐng),實(shí)現(xiàn)資源分配的有序性和通用性,進(jìn)而確保系統(tǒng)的可用性和健壯性;另外,在控制資源申請(qǐng)請(qǐng)求的同時(shí),還對(duì)資源申請(qǐng)的相關(guān)性能參數(shù)進(jìn)行統(tǒng)計(jì),使得上層控制模塊能夠通過(guò)接口實(shí)時(shí)地獲取上述性能參數(shù),并根據(jù)該性能參數(shù)做出正確的性能評(píng)估,進(jìn)而實(shí)時(shí)靈活地變更策略。
[0113]結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法中的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或【技術(shù)領(lǐng)域】?jī)?nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0114]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種資源控制方法,其特征在于,包括以下步驟: 接收異步請(qǐng)求,對(duì)所述異步請(qǐng)求進(jìn)行判斷; 如果是資源申請(qǐng)請(qǐng)求,則判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求,如果是,則將接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中;否則,為所述接收到的資源申請(qǐng)請(qǐng)求分配資源;如果是資源釋放請(qǐng)求,則從所述條件隊(duì)列中選取資源申請(qǐng)請(qǐng)求,為選取的資源申請(qǐng)請(qǐng)求分配資源,將所述選取的資源申請(qǐng)請(qǐng)求從所述條件隊(duì)列中刪除; 根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù)。
2.如權(quán)利要求1所述的方法,其特征在于,為所述接收到的資源申請(qǐng)請(qǐng)求分配資源之前,還包括: 判斷當(dāng)前可用資源量是否與所述接收到的資源申請(qǐng)請(qǐng)求匹配; 為所述接收到的資源申請(qǐng)請(qǐng)求分配資源,具體為: 如果所述當(dāng)前可用資源量與接收到的資源申請(qǐng)請(qǐng)求匹配,則為所述接收到的資源申請(qǐng)請(qǐng)求分配資源; 所述判斷當(dāng)前可用資源量是否與接收到的資源申請(qǐng)請(qǐng)求匹配之后,還包括: 如果所述當(dāng)前可用資源量與所述接收到的資源申請(qǐng)請(qǐng)求不匹配,則將所述接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中; 所述性能參數(shù)包括當(dāng)前可用資源量; 根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為: 在為所述接收到的資源申請(qǐng)請(qǐng)求分配資源之后,根據(jù)為所述接收到的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量。
3.如權(quán)利要求1所述的方法,其特征在于,為所述選取的資源申請(qǐng)請(qǐng)求分配資源之前,還包括: 判斷所述當(dāng)前可用資源量是否與所述選取的資源申請(qǐng)請(qǐng)求匹配; 為所述選取的資源申請(qǐng)請(qǐng)求分配資源,具體為: 如果當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求匹配,則為所述選取的資源申請(qǐng)請(qǐng)求分配資源; 所述判斷當(dāng)前可用資源量是否與選取的資源申請(qǐng)請(qǐng)求匹配之后,還包括: 如果所述當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求不匹配,則將選取的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中; 所述性能參數(shù)包括當(dāng)前可用資源量; 根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為: 在判斷出所述異步請(qǐng)求為資源釋放請(qǐng)求之后,根據(jù)接收到的資源釋放請(qǐng)求,更新當(dāng)前可用資源量;在為所述選取的資源申請(qǐng)請(qǐng)求分配資源之后,根據(jù)為所述選取的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量。
4.如權(quán)利要求1所述的方法,其特征在于,所述性能參數(shù)包括資源申請(qǐng)等待總時(shí)長(zhǎng); 根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為: 在為所述選取的資源申請(qǐng)請(qǐng)求分配資源之后,獲取與所述選取的資源申請(qǐng)請(qǐng)求對(duì)應(yīng)的等待時(shí)長(zhǎng),并根據(jù)所述等待時(shí)長(zhǎng),更新所述資源申請(qǐng)等待總時(shí)長(zhǎng)。
5.如權(quán)利要求3所述的方法,其特征在于,所述性能參數(shù)包括阻塞總次數(shù); 根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù),具體為: 在將接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中之后,更新所述阻塞總次數(shù); 判斷出所述當(dāng)前可用資源量與選取的資源申請(qǐng)請(qǐng)求不匹配之后,更新所述阻塞總次數(shù)。
6.一種資源控制裝置,其特征在于,包括: 接收模塊,用于接收異步請(qǐng)求; 第一判斷模塊,用于對(duì)所述接收模塊接收到的所述異步請(qǐng)求進(jìn)行判斷; 第二判斷模塊,用于在所述第一判斷模塊判斷出所述異步請(qǐng)求是資源申請(qǐng)請(qǐng)求時(shí),判斷條件隊(duì)列中是否存在資源申請(qǐng)請(qǐng)求; 添加模塊,用于在所述第二判斷模塊判斷出所述條件隊(duì)列中存在資源申請(qǐng)請(qǐng)求時(shí),將所述接收模塊接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中; 選取模塊,用于在所述第一判斷模塊判斷出所述異步請(qǐng)求是資源釋放請(qǐng)求時(shí),從所述條件隊(duì)列中選取資源申請(qǐng)請(qǐng)求; 分配模塊,用于為所述選取模塊選取的資源申請(qǐng)請(qǐng)求分配資源,在所述第二判斷模塊判斷出所述條件隊(duì)列中不存在資源申請(qǐng)請(qǐng)求時(shí),為所述接收模塊接收到的資源申請(qǐng)請(qǐng)求分配資源; 刪除模塊,用于將所述選取模塊選取的資源申請(qǐng)請(qǐng)求從所述條件隊(duì)列中刪除; 更新模塊,用于根據(jù)對(duì)所述異步請(qǐng)求的處理結(jié)果,更新相應(yīng)的性能參數(shù)。
7.如權(quán)利要求6所述的裝置,其特征在于,還包括: 第三判斷模塊,用于在所述第二判斷模塊判斷出所述條件隊(duì)列中不存在資源申請(qǐng)請(qǐng)求時(shí),判斷當(dāng)前可用資源量是否與所述接收到的資源申請(qǐng)請(qǐng)求匹配; 所述分配模塊,具體用于在所述第三判斷模塊判斷出所述當(dāng)前可用資源量與接收到的資源申請(qǐng)請(qǐng)求匹配時(shí),為所述接收模塊接收到的資源申請(qǐng)請(qǐng)求分配資源; 所述添加模塊,還用于在所述第三判斷模塊判斷所述當(dāng)前可用資源量與所述接收到的資源申請(qǐng)請(qǐng)求不匹配時(shí),將所述接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中; 所述性能參數(shù)包括當(dāng)前可用資源量; 所述更新模塊,具體用于根據(jù)所述分配模塊為所述接收到的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量。
8.如權(quán)利要求6所述的裝置,其特征在于,所述性能參數(shù)包括當(dāng)前可用資源量; 所述更新模塊,具體用于在所述第一判斷模塊判斷出所述異步請(qǐng)求是資源釋放請(qǐng)求時(shí),根據(jù)所述接收模塊接收到的資源釋放請(qǐng)求,更新當(dāng)前可用資源量;根據(jù)為所述選取模塊選取的資源申請(qǐng)請(qǐng)求分配的資源量,更新所述當(dāng)前可用資源量; 第四判斷模塊,用于判斷所述當(dāng)前可用資源量是否與所述選取模塊選取的資源申請(qǐng)請(qǐng)求匹配; 所述分配模塊,具體用于在所述第四判斷模塊判斷出所述當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求匹配時(shí),為所述選取的資源申請(qǐng)請(qǐng)求分配資源; 所述添加模塊,還用于在所述第四判斷模塊判斷出所述當(dāng)前可用資源量與所述選取的資源申請(qǐng)請(qǐng)求不匹配時(shí),將選取的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中。
9.如權(quán)利要求6所述的裝置,其特征在于,所述性能參數(shù)包括資源申請(qǐng)等待總時(shí)長(zhǎng); 所述更新模塊,具體用于在所述分配模塊為所述選取的資源申請(qǐng)請(qǐng)求分配資源之后,獲取與所述選取的資源申請(qǐng)請(qǐng)求對(duì)應(yīng)的等待時(shí)長(zhǎng),并根據(jù)所述等待時(shí)長(zhǎng),更新所述資源申請(qǐng)等待總時(shí)長(zhǎng)。
10.如權(quán)利要求8所述的裝置,其特征在于,所述性能參數(shù)包括阻塞總次數(shù); 所述更新模塊,具體用于在所述添加模塊將所述接收到的資源申請(qǐng)請(qǐng)求添加到所述條件隊(duì)列中之后,更新所述阻塞總次數(shù);在所述第四判斷模塊判斷出所述當(dāng)前可用資源量與選取的資源申請(qǐng)請(qǐng)求不匹配之后,更新所述阻塞總次數(shù)。
【文檔編號(hào)】G06F9/50GK104298561SQ201410510340
【公開(kāi)日】2015年1月21日 申請(qǐng)日期:2014年9月28日 優(yōu)先權(quán)日:2014年9月28日
【發(fā)明者】李 杰 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司