專(zhuān)利名稱(chēng):多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法及多核系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)操作系統(tǒng)領(lǐng)域,尤其涉及多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法及多 核系統(tǒng)。
背景技術(shù):
在多核系統(tǒng)中,通常存在對(duì)稱(chēng)多處理和非對(duì)稱(chēng)多處理應(yīng)用模式,而其處理器硬 件所提供的定時(shí)器機(jī)制與以往的單核處理器并無(wú)差異。隨著多核系統(tǒng)各種應(yīng)用模式的出 現(xiàn)以及業(yè)務(wù)復(fù)雜度的增加,由于在多核系統(tǒng)中沒(méi)有統(tǒng)一的定時(shí)器實(shí)現(xiàn)機(jī)制,各種業(yè)務(wù)應(yīng) 用往往存在運(yùn)行效率低、系統(tǒng)可靠性低的問(wèn)題。在相關(guān)技術(shù)中,提供了一種關(guān)于非對(duì)稱(chēng)多處理系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法,其將 所有定時(shí)器集中在控制面CPU上處理,這樣,隨著定時(shí)器數(shù)量的增加,控制面CPU負(fù)載 會(huì)大大增加。并且該方法在定時(shí)器超時(shí)后,控制面CPU是通過(guò)消息機(jī)制來(lái)通知目的CPU 的,若該消息丟失或延時(shí),則系統(tǒng)的可靠性也會(huì)降低。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方案,以至少解決上 述的多核系統(tǒng)中由于所有定時(shí)器集中在一個(gè)CPU上處理而導(dǎo)致系統(tǒng)性能較低的問(wèn)題。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種多核系統(tǒng)中定時(shí)器的 實(shí)現(xiàn)方法。根據(jù)本發(fā)明的多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法,包括以下步驟需要?jiǎng)?chuàng)建定時(shí)器 的內(nèi)核根據(jù)定時(shí)器的時(shí)長(zhǎng)和多核系統(tǒng)中每個(gè)內(nèi)核對(duì)應(yīng)的定時(shí)時(shí)間間隔,確定在定時(shí)器的 時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序;需要進(jìn)行處理的內(nèi)核按照處理順序和定時(shí)時(shí) 間間隔依次進(jìn)行處理。進(jìn)一步地,確定在定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序之前,該 方法還包括多核系統(tǒng)中每個(gè)內(nèi)核根據(jù)與其對(duì)應(yīng)的定時(shí)時(shí)間間隔分別建立各自的定時(shí)器 處理鏈表。進(jìn)一步地,需要進(jìn)行處理的內(nèi)核按照處理順序和定時(shí)時(shí)間間隔依次進(jìn)行處理包 括需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核生成定時(shí)器的表項(xiàng),并按照處理順序?qū)⒍〞r(shí)器的表項(xiàng)依次添 加到需要進(jìn)行處理的內(nèi)核的定時(shí)器處理鏈表中進(jìn)行處理,其中,定時(shí)器的表項(xiàng)包括以下 至少之一定時(shí)器的剩余時(shí)間、需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核、處理順序。進(jìn)一步地,按照處理順序?qū)⒍〞r(shí)器的表項(xiàng)依次添加到需要進(jìn)行處理的內(nèi)核的定 時(shí)器處理鏈表中進(jìn)行處理包括需要進(jìn)行處理的內(nèi)核處理存儲(chǔ)在本內(nèi)核的定時(shí)器處理鏈 表中的定時(shí)器的表項(xiàng)。進(jìn)一步地,按照處理順序?qū)⒍〞r(shí)器的表項(xiàng)依次添加到需要進(jìn)行處理的內(nèi)核的定 時(shí)器處理鏈表中進(jìn)行處理包括需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核將定時(shí)器的表項(xiàng)添加到處理順序 中最先進(jìn)行處理的內(nèi)核的定時(shí)器處理鏈表之后,定時(shí)器的剩余時(shí)間開(kāi)始遞減;最先進(jìn)行處理的內(nèi)核根據(jù)定時(shí)時(shí)間間隔更新定時(shí)器的剩余時(shí)間,并根據(jù)更新后的定時(shí)器的剩余時(shí) 間將定時(shí)器的表項(xiàng)添加到處理順序中最先進(jìn)行處理的內(nèi)核的下一個(gè)處理內(nèi)核的定時(shí)器處 理鏈表中進(jìn)行處理。進(jìn)一步地,確定在定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序包括將 需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核作為處理順序中最后一個(gè)處理內(nèi)核。進(jìn)一步地,需要進(jìn)行處理的內(nèi)核按照處理順序和定時(shí)時(shí)間間隔依次進(jìn)行處理包 括需要進(jìn)行處理的內(nèi)核進(jìn)行處理時(shí),判斷當(dāng)前是否需要停止或刪除定時(shí)器;若是,則 廢棄定時(shí)器。進(jìn)一步地,需要進(jìn)行處理的內(nèi)核按照處理順序和定時(shí)時(shí)間間隔依次進(jìn)行處理包 括在定時(shí)器的剩余時(shí)間為零時(shí),定時(shí)器超時(shí)。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種多核系統(tǒng)。根據(jù)本發(fā)明的多核系統(tǒng),包括多個(gè)內(nèi)核,其中,多個(gè)內(nèi)核中每個(gè)內(nèi)核包括計(jì) 算模塊,用于根據(jù)需要?jiǎng)?chuàng)建定時(shí)器的時(shí)長(zhǎng)和多核系統(tǒng)中每個(gè)內(nèi)核對(duì)應(yīng)的定時(shí)時(shí)間間隔, 確定在定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序;執(zhí)行模塊,用于按照處理順 序和定時(shí)時(shí)間間隔執(zhí)行與定時(shí)器對(duì)應(yīng)的處理。進(jìn)一步地,多個(gè)內(nèi)核中每個(gè)內(nèi)核還包括判斷模塊,用于判斷當(dāng)前是否需要停 止或刪除定時(shí)器;結(jié)束模塊,用于在判斷模塊確定當(dāng)前需要停止或刪除定時(shí)器的情況 下,廢棄定時(shí)器。通過(guò)本發(fā)明,采用多個(gè)內(nèi)核分布式協(xié)同處理定時(shí)器的方式,解決了多核系統(tǒng)中 由于所有定時(shí)器集中在一個(gè)CPU上處理而導(dǎo)致系統(tǒng)性能較低的問(wèn)題,有利于多核系統(tǒng)的 均衡處理,提高了系統(tǒng)的可靠性和穩(wěn)定性。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本 發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖 中圖1是根據(jù)本發(fā)明實(shí)施例的多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法的流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的多核系統(tǒng)的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的多核系統(tǒng)的結(jié)構(gòu)框圖;圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例二的創(chuàng)建定時(shí)器的示意圖;圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例二的經(jīng)過(guò)3ms后的示意圖;圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例二的定時(shí)器到達(dá)時(shí)的示意圖;圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例三的多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法的流程圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突 的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。根據(jù)本發(fā)明的實(shí)施例,提供了一種多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法,圖1是根據(jù) 本發(fā)明實(shí)施例的多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法的流程圖,如圖1所示,該方法包括以下步驟步驟S102,需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核根據(jù)定時(shí)器的時(shí)長(zhǎng)和多核系統(tǒng)中每個(gè)內(nèi)核對(duì) 應(yīng)的定時(shí)時(shí)間間隔,確定在定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序;步驟S104,需要進(jìn)行處理的內(nèi)核按照處理順序和該定時(shí)時(shí)間間隔依次進(jìn)行處理。通過(guò)上述步驟,采用多個(gè)內(nèi)核分布式協(xié)同處理定時(shí)器的方式,解決了多核系統(tǒng) 中由于所有定時(shí)器集中在一個(gè)CPU上處理而導(dǎo)致系統(tǒng)性能較低的問(wèn)題,有利于多核系統(tǒng) 的均衡處理,提高了系統(tǒng)的可靠性和穩(wěn)定性。需要說(shuō)明的是,定時(shí)時(shí)間間隔可以用于指示內(nèi)核可以實(shí)現(xiàn)的定時(shí)器的時(shí)間粒 度,在具體實(shí)施過(guò)程中,也可以對(duì)該定時(shí)時(shí)間間隔與多核系統(tǒng)中每個(gè)內(nèi)核的對(duì)應(yīng)關(guān)系進(jìn) 行配置。優(yōu)選地,在步驟S102之前,多核系統(tǒng)中每個(gè)內(nèi)核可以根據(jù)與其對(duì)應(yīng)的定時(shí)時(shí)間 間隔分別建立各自的定時(shí)器處理鏈表。這樣可以提高系統(tǒng)的靈活性和處理能力。例如,一個(gè)多核系統(tǒng)包括5個(gè)內(nèi)核,在系統(tǒng)初始化后,將內(nèi)核1對(duì)應(yīng)的定時(shí)時(shí)間 間隔設(shè)定為10ms,內(nèi)核2對(duì)應(yīng)的定時(shí)時(shí)間間隔設(shè)定為1ms,內(nèi)核3對(duì)應(yīng)的定時(shí)時(shí)間間隔 設(shè)定為5ms,內(nèi)核4對(duì)應(yīng)的定時(shí)時(shí)間間隔設(shè)定為20ms,內(nèi)核5對(duì)應(yīng)的定時(shí)時(shí)間間隔設(shè)定 為2000ms,每個(gè)內(nèi)核分別創(chuàng)建與自身的定時(shí)時(shí)間間隔相對(duì)應(yīng)的定時(shí)器處理鏈表。優(yōu)選地,在步驟S104中,需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核生成定時(shí)器的表項(xiàng),并按照處 理順序?qū)⒍〞r(shí)器的表項(xiàng)依次添加到需要進(jìn)行處理的內(nèi)核的定時(shí)器處理鏈表中進(jìn)行處理, 其中,定時(shí)器的表項(xiàng)包括以下至少之一定時(shí)器的剩余時(shí)間、需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核、 處理順序。該方法實(shí)現(xiàn)簡(jiǎn)單、可操作性強(qiáng)。優(yōu)選地,按照處理順序?qū)⒍〞r(shí)器的表項(xiàng)依次添加到需要進(jìn)行處理的內(nèi)核的定時(shí) 器處理鏈表中進(jìn)行處理包括需要進(jìn)行處理的內(nèi)核處理存儲(chǔ)在本內(nèi)核的定時(shí)器處理鏈表 中的定時(shí)器的表項(xiàng)。該方法可以利用多個(gè)內(nèi)核協(xié)同實(shí)現(xiàn)需要?jiǎng)?chuàng)建的定時(shí)器,使得系統(tǒng)可 以均衡處理,提高了系統(tǒng)的性能。在具體實(shí)施過(guò)程中,多核系統(tǒng)中每個(gè)內(nèi)核本地的定時(shí)器處理鏈表中可以存儲(chǔ)所 有內(nèi)核需要?jiǎng)?chuàng)建的定時(shí)器的表項(xiàng)。例如,內(nèi)核1的定時(shí)器處理鏈表中有兩個(gè)定時(shí)器的表 項(xiàng),一個(gè)是內(nèi)核2中的定時(shí)器Tl的表項(xiàng),一個(gè)是內(nèi)核1的定時(shí)器T3的表項(xiàng)。優(yōu)選地,按照處理順序?qū)⒍〞r(shí)器的表項(xiàng)依次添加到需要進(jìn)行處理的內(nèi)核的定時(shí) 器處理鏈表中進(jìn)行處理包括需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核將定時(shí)器的表項(xiàng)添加到處理順序中 最先進(jìn)行處理的內(nèi)核的定時(shí)器處理鏈表之后,定時(shí)器的剩余時(shí)間開(kāi)始遞減;最先進(jìn)行處 理的內(nèi)核根據(jù)其定時(shí)時(shí)間間隔更新定時(shí)器的剩余時(shí)間,并根據(jù)更新后的定時(shí)器的剩余時(shí) 間將定時(shí)器的表項(xiàng)添加到處理順序中最先進(jìn)行處理的內(nèi)核的下一個(gè)處理內(nèi)核的定時(shí)器處 理鏈表中進(jìn)行處理。該方法可以使得定時(shí)器的實(shí)現(xiàn)過(guò)程有序進(jìn)行,提高了系統(tǒng)的準(zhǔn)確性 和有效性。優(yōu)選地,確定在定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序包括將需 要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核作為處理順序中最后一個(gè)處理內(nèi)核。優(yōu)選地,在步驟S104中,需要進(jìn)行處理的內(nèi)核進(jìn)行處理時(shí),判斷當(dāng)前是否需要 停止或刪除定時(shí)器;若是,則廢棄定時(shí)器。
在具體實(shí)施過(guò)程中,可以在需要?jiǎng)?chuàng)建的定時(shí)器完成之后廢棄該定時(shí)器,也可以 在實(shí)現(xiàn)該定時(shí)器的過(guò)程中,廢棄該定時(shí)器。例如,在多核系統(tǒng)中有一個(gè)共享內(nèi)存,用于 存儲(chǔ)停止或刪除某個(gè)定時(shí)器的標(biāo)識(shí)信息,多核系統(tǒng)中每個(gè)內(nèi)核在處理其定時(shí)器處理鏈表 中的定時(shí)器的表項(xiàng)時(shí),通過(guò)共享內(nèi)存判斷當(dāng)前是否需要停止或刪除正在執(zhí)行的定時(shí)器的 表項(xiàng)。優(yōu)選地,在步驟S104中,在定時(shí)器的剩余時(shí)間為零時(shí),定時(shí)器超時(shí)。該方法可 以實(shí)現(xiàn)簡(jiǎn)單、可操作性強(qiáng)。例如,上述包括5個(gè)內(nèi)核的多核系統(tǒng),內(nèi)核2中需要?jiǎng)?chuàng)建一個(gè)時(shí)長(zhǎng)為12ms的定 時(shí)器,則需要進(jìn)行處理的內(nèi)核可以是內(nèi)核1和內(nèi)核2。在具體實(shí)施過(guò)程中,可以是內(nèi)核2 確定實(shí)現(xiàn)該定時(shí)器(t= 12ms)時(shí)長(zhǎng)內(nèi)的處理順序依次為內(nèi)核1至內(nèi)核2后,生成定時(shí)器 的表項(xiàng),其中,該定時(shí)器的表項(xiàng)可以包括定時(shí)器的剩余時(shí)間(t= 12ms)、需要?jiǎng)?chuàng)建定時(shí) 器的內(nèi)核(內(nèi)核2)、處理順序(內(nèi)核1_>內(nèi)核2);然后,內(nèi)核2將該定時(shí)器的表項(xiàng)添加 (即,掛入)到內(nèi)核1的定時(shí)器處理鏈表中,內(nèi)核1檢測(cè)到該定時(shí)器的表項(xiàng)后,將該表項(xiàng) 中定時(shí)器的剩余時(shí)間遞減,當(dāng)定時(shí)器的剩余時(shí)間減少到2ms時(shí),內(nèi)核1將該定時(shí)器的表 項(xiàng)添加到內(nèi)核2的定時(shí)器處理鏈表中,內(nèi)核2檢測(cè)到該定時(shí)器的表項(xiàng)后,將該表項(xiàng)中定時(shí) 器的剩余時(shí)間(t = 2ms)遞減,當(dāng)定時(shí)器的剩余時(shí)間為0時(shí),內(nèi)核2中的該定時(shí)器(t = 12ms)創(chuàng)建完成。對(duì)應(yīng)于上述方法,本發(fā)明實(shí)施例還提供了一種多核系統(tǒng),圖2是根據(jù)本發(fā)明實(shí) 施例的多核系統(tǒng)的結(jié)構(gòu)框圖,如圖2所示,該多核系統(tǒng)20包括多個(gè)內(nèi)核,其中,多個(gè) 內(nèi)核中每個(gè)內(nèi)核22包括計(jì)算模塊222,用于根據(jù)需要?jiǎng)?chuàng)建定時(shí)器的時(shí)長(zhǎng)和多核系統(tǒng)中 每個(gè)內(nèi)核對(duì)應(yīng)的定時(shí)時(shí)間間隔,確定在定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順 序;執(zhí)行模塊224,耦合至計(jì)算模塊222,用于按照處理順序和該定時(shí)時(shí)間間隔執(zhí)行與定 時(shí)器對(duì)應(yīng)的處理。通過(guò)上述步驟,采用多個(gè)內(nèi)核分布式協(xié)同處理定時(shí)器的方式,解決了多核系統(tǒng) 中由于所有定時(shí)器集中在一個(gè)CPU上處理而導(dǎo)致系統(tǒng)性能較低的問(wèn)題,有利于多核系統(tǒng) 的均衡處理,提高了系統(tǒng)的可靠性和穩(wěn)定性。圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的多核系統(tǒng)的結(jié)構(gòu)框圖,多個(gè)內(nèi)核中每個(gè)內(nèi)核22 還包括判斷模塊226,用于判斷當(dāng)前是否需要停止或刪除定時(shí)器;結(jié)束模塊228,耦合 至判斷模塊226,用于在判斷模塊226確定當(dāng)前需要停止或刪除定時(shí)器的情況下,廢棄定 時(shí)器。需要說(shuō)明的是,多核系統(tǒng)20在具體實(shí)施過(guò)程中可以對(duì)應(yīng)于上述的方法實(shí)施例, 在方法實(shí)施例中已經(jīng)進(jìn)行過(guò)的說(shuō)明在此不再贅述。下面結(jié)合優(yōu)選實(shí)施例和附圖對(duì)上述實(shí)施例的實(shí)現(xiàn)過(guò)程進(jìn)行詳細(xì)說(shuō)明優(yōu)選實(shí)施例一本實(shí)施例中,為克服在多核系統(tǒng)應(yīng)用中缺少統(tǒng)一的、可靠的定時(shí)器實(shí)現(xiàn)機(jī)制, 提供了一種在多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法,該方法包括以下步驟步驟1,系統(tǒng)初始化,多核處理系統(tǒng)中的每個(gè)內(nèi)核分別在共享內(nèi)存中建立相應(yīng)的 定時(shí)器處理鏈表,每個(gè)定時(shí)器處理鏈表分別對(duì)應(yīng)相應(yīng)的時(shí)間間隔。步驟2,創(chuàng)建定時(shí)器,需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核首先申請(qǐng)定時(shí)器控制塊,根據(jù)各內(nèi)核對(duì)應(yīng)的定時(shí)器間隔進(jìn)行計(jì)算,將定時(shí)器分成各定時(shí)器鏈表所對(duì)應(yīng)間隔的組合。步驟3,添加定時(shí)器,按照最后加入本內(nèi)核的原則,根據(jù)計(jì)算得到的組合順序?qū)?其加入相應(yīng)的定時(shí)器鏈表中。這樣,有利于避免定時(shí)器消息的發(fā)送。步驟4,刪除、停止定時(shí)器。例如,在需要?jiǎng)h除或停止定時(shí)器時(shí),在本內(nèi)核設(shè)置 相應(yīng)的屏蔽狀態(tài),當(dāng)需要?jiǎng)h除或停止的定時(shí)器添加到本內(nèi)核對(duì)應(yīng)的鏈表中待處理時(shí),廢 棄相應(yīng)的定時(shí)器??梢?jiàn),采用本發(fā)明實(shí)施例可以克服相關(guān)技術(shù)中在多核系統(tǒng)中缺少統(tǒng)一的、可靠 地定時(shí)器實(shí)現(xiàn)機(jī)制的缺點(diǎn),同時(shí)利用多個(gè)內(nèi)核協(xié)同處理定時(shí)器,有利于系統(tǒng)的負(fù)載均 衡,提高系統(tǒng)的可靠性。優(yōu)選實(shí)施例二以多核系統(tǒng)中包含4個(gè)CPU為例,詳細(xì)對(duì)本發(fā)明實(shí)施例的多核系統(tǒng)中定時(shí)器的 實(shí)現(xiàn)方法進(jìn)行說(shuō)明。假設(shè)4個(gè)CPU分別對(duì)應(yīng)lms、10ms、100ms、1000ms(即,定時(shí)時(shí) 間間隔)的定時(shí)器鏈表,CPUl和CPU3分別創(chuàng)建一個(gè)定時(shí)器,定時(shí)器時(shí)長(zhǎng)分別為303ms 和 1323ms。圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例二的創(chuàng)建定時(shí)器的示意圖,如圖4所示,CPUl創(chuàng) 建的303ms定時(shí)器的表項(xiàng)和CPU3創(chuàng)建的1323ms定時(shí)器的表項(xiàng)按照內(nèi)核的處理順序,首 先添加到隊(duì)列0中(即,CPUO對(duì)應(yīng)的定時(shí)器處理鏈表)進(jìn)行處理。因?yàn)橛?jì)算定時(shí)器添加 順序時(shí),CPUl創(chuàng)建的303ms定時(shí)器分別對(duì)應(yīng)CPUO和CPU2的定時(shí)器處理隊(duì)列(即,定時(shí) 器處理鏈表),因此,添加順序?yàn)殛?duì)列0、隊(duì)列2和隊(duì)列1。同理,CPU3創(chuàng)建的1323ms 定時(shí)器的添加順序?yàn)殛?duì)列0、隊(duì)列1、隊(duì)列2和隊(duì)列3。圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例二的經(jīng)過(guò)3ms后的示意圖,如圖5所示,當(dāng)經(jīng)過(guò) 3ms后,CPUl創(chuàng)建的303ms定時(shí)器添加到隊(duì)列2中,定時(shí)器的剩余時(shí)間更新為300ms, 再經(jīng)過(guò)300ms到時(shí)后添加到CPUl的定時(shí)器處理隊(duì)列(即,隊(duì)列1)中;CPU3創(chuàng)建的 1323ms定時(shí)器添加到隊(duì)列1中,定時(shí)器的剩余時(shí)間更新為1320ms,再經(jīng)過(guò)20ms后添加 到隊(duì)列2中。圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例二的定時(shí)器到達(dá)時(shí)的示意圖,如圖6所示,CPUl 創(chuàng)建的303ms定時(shí)器當(dāng)CPUl判斷剩余時(shí)間為0,并且目標(biāo)CPU為自己時(shí),表明設(shè)置的定 時(shí)器超時(shí);CPU3創(chuàng)建的1323ms定時(shí)器,再經(jīng)過(guò)300ms添加到隊(duì)列3中,經(jīng)過(guò)IOOOms到 時(shí)后,由于已在CPU3的定時(shí)器處理隊(duì)列中,當(dāng)CPU3判斷剩余時(shí)間為0,并且目標(biāo)CPU 為自己時(shí),表明設(shè)置的定時(shí)器超時(shí)。在具體實(shí)施過(guò)程中,如需刪除或停止定時(shí)器,則可以在相應(yīng)的CPU定時(shí)器處理 鏈表中廢棄相應(yīng)的定時(shí)器,設(shè)置屏蔽禁止目標(biāo)CPU對(duì)超時(shí)的定時(shí)器做有效處理即可??梢?jiàn),本發(fā)明優(yōu)選實(shí)施例采用了多個(gè)CPU對(duì)應(yīng)多個(gè)鏈表的方式來(lái)實(shí)現(xiàn)定時(shí)器的 處理,有效分擔(dān)地處理負(fù)載,提高了可靠性;并且,通過(guò)鏈表指針的操作在定時(shí)器鏈表 中移動(dòng),可以避免相關(guān)技術(shù)中消息的丟失的情況發(fā)生。優(yōu)選實(shí)施例三圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例三的多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法的流程圖,如 圖7所示,該方法可以包括以下處理步驟步驟S702,系統(tǒng)初始化,創(chuàng)建各CPU對(duì)應(yīng)的定時(shí)器處理鏈表。
步驟S704,根據(jù)所需創(chuàng)建的定時(shí)器時(shí)長(zhǎng)計(jì)算添加順序,掛入相應(yīng)的定時(shí)器處理 鏈表中。步驟S706,各CPU定時(shí)處理相應(yīng)鏈表的定時(shí)器,并根據(jù)定時(shí)器剩余時(shí)間添加到 相應(yīng)的定時(shí)器鏈表中。步驟S708,各CPU判斷其定時(shí)隊(duì)列是否有超時(shí),即,各CPU判斷是否有超時(shí)定 時(shí)器待處理。若有,則進(jìn)入步驟S710,否則進(jìn)入步驟S706繼續(xù)處理。步驟S710,判斷該定時(shí)器是否被屏蔽。如果該定時(shí)器被屏蔽,則丟棄對(duì)該定時(shí) 器的進(jìn)一步處理,釋放定時(shí)器資源;否則,進(jìn)入步驟S712。步驟S712,處理該定時(shí)器。例如,可以依次處理CPU上掛接的所有定時(shí)器,以 CPU對(duì)應(yīng)的定時(shí)器間隔遞減定時(shí)器的剩余時(shí)間,當(dāng)定時(shí)器與CPU對(duì)應(yīng)間隔的數(shù)值遞減為 0時(shí),如果定時(shí)器的剩余時(shí)間不為0,則根據(jù)定時(shí)器的掛接順序掛接到下一個(gè)CPU的處理 鏈表中;如果定時(shí)器剩余時(shí)間為0,則表明定時(shí)器到時(shí)。綜上所述,通過(guò)本發(fā)明實(shí)施例采用多個(gè)內(nèi)核分布式協(xié)同處理定時(shí)器的方式,解 決了多核系統(tǒng)中由于所有定時(shí)器集中在一個(gè)CPU上處理而導(dǎo)致系統(tǒng)性能較低的問(wèn)題,有 利于多核系統(tǒng)的均衡處理,提高了系統(tǒng)的可靠性和穩(wěn)定性。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通 用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所 組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將 它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順 序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中 的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的 技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的 任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法,其特征在于,包括以下步驟需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核根據(jù)所述定時(shí)器的時(shí)長(zhǎng)和所述多核系統(tǒng)中每個(gè)內(nèi)核對(duì)應(yīng)的定 時(shí)時(shí)間間隔,確定在所述定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序;所述需要進(jìn)行處理的內(nèi)核按照所述處理順序和所述定時(shí)時(shí)間間隔依次進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,確定在所述定時(shí)器的時(shí)長(zhǎng)之內(nèi)所述需要 進(jìn)行處理的內(nèi)核的所述處理順序之前,還包括所述多核系統(tǒng)中每個(gè)內(nèi)核根據(jù)與其對(duì)應(yīng)的所述定時(shí)時(shí)間間隔分別建立各自的定時(shí)器 處理鏈表。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述需要進(jìn)行處理的內(nèi)核按照所述處理 順序和所述定時(shí)時(shí)間間隔依次進(jìn)行處理包括所述需要?jiǎng)?chuàng)建所述定時(shí)器的內(nèi)核生成所述定時(shí)器的表項(xiàng),并按照所述處理順序?qū)?所述定時(shí)器的表項(xiàng)依次添加到所述需要進(jìn)行處理的內(nèi)核的所述定時(shí)器處理鏈表中進(jìn)行處 理,其中,所述定時(shí)器的表項(xiàng)包括以下至少之一所述定時(shí)器的剩余時(shí)間、所述需要?jiǎng)?chuàng) 建所述定時(shí)器的內(nèi)核、所述處理順序。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,按照所述處理順序?qū)⑺龆〞r(shí)器的表項(xiàng) 依次添加到所述需要進(jìn)行處理的內(nèi)核的所述定時(shí)器處理鏈表中進(jìn)行處理包括所述需要進(jìn)行處理的內(nèi)核處理存儲(chǔ)在本內(nèi)核的所述定時(shí)器處理鏈表中的定時(shí)器的表項(xiàng)。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,按照所述處理順序?qū)⑺龆〞r(shí)器的表項(xiàng) 依次添加到所述需要進(jìn)行處理的內(nèi)核的所述定時(shí)器處理鏈表中進(jìn)行處理包括所述需要?jiǎng)?chuàng)建所述定時(shí)器的內(nèi)核將所述定時(shí)器的表項(xiàng)添加到所述處理順序中最先進(jìn) 行處理的內(nèi)核的所述定時(shí)器處理鏈表之后,所述定時(shí)器的剩余時(shí)間開(kāi)始遞減;所述最先進(jìn)行處理的內(nèi)核根據(jù)所述定時(shí)時(shí)間間隔更新所述定時(shí)器的剩余時(shí)間,并根 據(jù)更新后的所述定時(shí)器的剩余時(shí)間將所述定時(shí)器的表項(xiàng)添加到所述處理順序中所述最先 進(jìn)行處理的內(nèi)核的下一個(gè)處理內(nèi)核的所述定時(shí)器處理鏈表中進(jìn)行處理。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,確定在所述定時(shí)器的時(shí)長(zhǎng)之內(nèi)所述需要 進(jìn)行處理的內(nèi)核的所述處理順序包括將所述需要?jiǎng)?chuàng)建所述定時(shí)器的內(nèi)核作為所述處理順序中最后一個(gè)處理內(nèi)核。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述需要進(jìn)行處理的內(nèi)核按照所述處理 順序和所述定時(shí)時(shí)間間隔依次進(jìn)行處理包括所述需要進(jìn)行處理的內(nèi)核進(jìn)行處理時(shí),判斷當(dāng)前是否需要停止或刪除所述定時(shí)器;若是,則廢棄所述定時(shí)器。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,所述需要進(jìn)行處理的內(nèi)核 按照所述處理順序和所述定時(shí)時(shí)間間隔依次進(jìn)行處理包括在所述定時(shí)器的剩余時(shí)間為零時(shí),所述定時(shí)器超時(shí)。
9.一種多核系統(tǒng),其特征在于,所述多核系統(tǒng)包括多個(gè)內(nèi)核,其中,所述多個(gè)內(nèi)核 中每個(gè)內(nèi)核包括計(jì)算模塊,用于根據(jù)需要?jiǎng)?chuàng)建定時(shí)器的時(shí)長(zhǎng)和所述多核系統(tǒng)中每個(gè)內(nèi)核對(duì)應(yīng)的定時(shí) 時(shí)間間隔,確定在所述定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序;執(zhí)行模塊,用于按照所述處理順序和所述定時(shí)時(shí)間間隔執(zhí)行與所述定時(shí)器對(duì)應(yīng)的處理。
10.根據(jù)權(quán)利要求9所述的多核系統(tǒng),其特征在于,所述多個(gè)內(nèi)核中每個(gè)內(nèi)核還包括判斷模塊,用于判斷當(dāng)前是否需要停止或刪除所述定時(shí)器;結(jié)束模塊,用于在所述判斷模塊確定當(dāng)前需要停止或刪除所述定時(shí)器的情況下,廢 棄所述定時(shí)器。
全文摘要
本發(fā)明公開(kāi)了一種多核系統(tǒng)中定時(shí)器的實(shí)現(xiàn)方法及多核系統(tǒng),該方法包括以下步驟需要?jiǎng)?chuàng)建定時(shí)器的內(nèi)核根據(jù)定時(shí)器的時(shí)長(zhǎng)和多核系統(tǒng)中每個(gè)內(nèi)核對(duì)應(yīng)的定時(shí)時(shí)間間隔,確定在定時(shí)器的時(shí)長(zhǎng)之內(nèi)需要進(jìn)行處理的內(nèi)核的處理順序;需要進(jìn)行處理的內(nèi)核按照處理順序和定時(shí)時(shí)間間隔依次進(jìn)行處理。通過(guò)本發(fā)明有利于多核系統(tǒng)的均衡處理,提高了系統(tǒng)的可靠性和穩(wěn)定性。
文檔編號(hào)G06F1/10GK102012718SQ20101055593
公開(kāi)日2011年4月13日 申請(qǐng)日期2010年11月15日 優(yōu)先權(quán)日2010年11月15日
發(fā)明者趙陽(yáng) 申請(qǐng)人:中興通訊股份有限公司