專(zhuān)利名稱(chēng):調(diào)整時(shí)鐘中斷周期的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及系統(tǒng)管理領(lǐng)域,更具體地,涉及系統(tǒng)管理領(lǐng)域中調(diào)整時(shí)鐘中斷周期的 方法和裝置。
背景技術(shù):
時(shí)鐘中斷是操作系統(tǒng)的推動(dòng)器,關(guān)系著不同任務(wù)的處理和調(diào)度等。系統(tǒng)利用時(shí)鐘 中斷,可以進(jìn)行負(fù)載統(tǒng)計(jì)、進(jìn)程時(shí)間統(tǒng)計(jì)、促使進(jìn)程的切換等。較高的時(shí)鐘節(jié)拍率即較小的 時(shí)鐘中斷周期,可以使進(jìn)程得到及時(shí)的調(diào)度,使系統(tǒng)具有更好的交互性和響應(yīng)速度。但是, 時(shí)鐘節(jié)拍率提高的同時(shí),使得內(nèi)核開(kāi)銷(xiāo)增大,影響操作系統(tǒng)的性能,并可能使一些計(jì)算量大 的進(jìn)程得不到及時(shí)處理。因此,為操作系統(tǒng)選擇一個(gè)合適的時(shí)鐘節(jié)拍率是非常重要的。在現(xiàn)有技術(shù)中,系統(tǒng)在啟動(dòng)之后,按照用戶配置的某個(gè)固定的時(shí)鐘節(jié)拍率以固定 的時(shí)鐘中斷周期運(yùn)行。也就是,諸如中央處理器之類(lèi)的處理器以固定的時(shí)鐘中斷周期來(lái)處 理它的運(yùn)行隊(duì)列,而不考慮運(yùn)行隊(duì)列中進(jìn)程的多少。在運(yùn)行隊(duì)列中可以存儲(chǔ)等待處理器處 理的進(jìn)程。即便在系統(tǒng)中啟用了動(dòng)態(tài)時(shí)鐘模式的tickless (無(wú)嘀嗒)功能,當(dāng)處理器進(jìn)入空 閑狀態(tài)時(shí),系統(tǒng)會(huì)將時(shí)鐘中斷周期改變?yōu)闊o(wú)窮大或足夠大的值來(lái)停止處理器的時(shí)鐘中斷, 但是當(dāng)處理器處于非空閑狀態(tài)的運(yùn)行狀態(tài)中時(shí),處理器仍然以固定的時(shí)鐘中斷周期來(lái)處理 進(jìn)程。在運(yùn)行狀態(tài)中固定的時(shí)鐘中斷周期缺乏靈活性,可能帶來(lái)諸如影響進(jìn)程的調(diào)度速 度、降低系統(tǒng)的響應(yīng)時(shí)間、或者是浪費(fèi)硬件資源等一系列問(wèn)題,從而進(jìn)一步影響系統(tǒng)的處理 效率。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了調(diào)整時(shí)鐘中斷周期的方法和裝置,能夠在處理器的運(yùn)行狀態(tài) 中使得原本固定的時(shí)鐘中斷周期具有靈活性,從而可以動(dòng)態(tài)調(diào)整時(shí)鐘中斷周期,提高系統(tǒng) 的處理效率。一方面,本發(fā)明實(shí)施例提供了一種調(diào)整時(shí)鐘中斷周期的方法,包括確定處理器的 運(yùn)行隊(duì)列中的進(jìn)程數(shù);確定處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期,使得進(jìn)程數(shù)大 于參考閾值時(shí),需要使用的時(shí)鐘中斷周期小于當(dāng)進(jìn)程數(shù)不大于參考閾值時(shí)需要使用的時(shí)鐘 中斷周期。另一方面,本發(fā)明實(shí)施例提供了一種用于調(diào)整時(shí)鐘中斷周期的裝置,包括第一確 定模塊,用于確定處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù);第二確定模塊,用于確定處理器在運(yùn)行狀 態(tài)中需要使用的時(shí)鐘中斷周期,使得當(dāng)進(jìn)程數(shù)大于參考閾值時(shí),需要使用的時(shí)鐘中斷周期 小于當(dāng)進(jìn)程數(shù)不大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期。基于上述的技術(shù)方案,可以根據(jù)進(jìn)程數(shù)來(lái)確定處理器在運(yùn)行狀態(tài)中需要使用的時(shí) 鐘中斷周期,使得當(dāng)進(jìn)程數(shù)大于參考閾值時(shí)使用的時(shí)鐘中斷周期小于當(dāng)進(jìn)程數(shù)不大于參考 閾值時(shí)使用的時(shí)鐘中斷周期。相比于現(xiàn)有技術(shù),當(dāng)處理器處于運(yùn)行狀態(tài)時(shí),可以動(dòng)態(tài)調(diào)整時(shí)鐘中斷周期,而不再使用固定的時(shí)鐘中斷周期,從而使得處理器在運(yùn)行狀態(tài)中使用的時(shí)鐘 中斷周期具有靈活性,便于根據(jù)需要來(lái)使用不同的時(shí)鐘中斷周期。并且,進(jìn)程數(shù)較多時(shí)使用 較小的時(shí)鐘中斷周期,可以提高響應(yīng)速度,而進(jìn)程數(shù)較少時(shí)使用較大的時(shí)鐘中斷周期,可以 降低時(shí)鐘中斷開(kāi)銷(xiāo)并使進(jìn)程充分執(zhí)行,從而可以提高系統(tǒng)的處理效率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附 圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域 技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1示出了根據(jù)本發(fā)明實(shí)施例的調(diào)整時(shí)鐘中斷周期的方法的流程圖;圖2示出了根據(jù)本發(fā)明實(shí)施例的調(diào)整時(shí)鐘中斷周期的另一方法的流程圖;圖3示出了根據(jù)本發(fā)明實(shí)施例的使用三個(gè)時(shí)鐘中斷周期的例子;圖4示出了根據(jù)本發(fā)明實(shí)施例的多CPU情況下調(diào)整時(shí)鐘中斷周期的例子;圖5示出了根據(jù)本發(fā)明實(shí)施例的用于調(diào)整時(shí)鐘中斷周期的裝置的結(jié)構(gòu)框圖;以及圖6示出了根據(jù)本發(fā)明實(shí)施例的用于調(diào)整時(shí)鐘中斷周期的裝置的另一結(jié)構(gòu)框圖。
具體實(shí)施例方式下面將結(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í)施 例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。首先,結(jié)合圖1描述根據(jù)本發(fā)明實(shí)施例的調(diào)整時(shí)鐘中斷周期的方法100。如圖1所示,方法100包括在SllO中,確定處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù);在 S120中,基于當(dāng)進(jìn)程數(shù)大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期小于當(dāng)進(jìn)程數(shù)不大于參考 閾值時(shí)需要使用的時(shí)鐘中斷周期,確定處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期。處理器可以將待處理的進(jìn)程放置在它的運(yùn)行隊(duì)列中,并在時(shí)鐘中斷的觸發(fā)下執(zhí)行 運(yùn)行隊(duì)列中的進(jìn)程。此時(shí),在處理器的運(yùn)行狀態(tài)中,處理器可以在至少兩個(gè)時(shí)鐘中斷周期之 一的觸發(fā)下進(jìn)行操作。隨著任務(wù)的執(zhí)行或添加等,運(yùn)行隊(duì)列中的進(jìn)程數(shù)將發(fā)生變化,根據(jù)運(yùn) 行隊(duì)列中的進(jìn)程數(shù),可以確定處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期,以在運(yùn)行狀 態(tài)中可以使用可變的時(shí)鐘中斷周期。根據(jù)該實(shí)施例,可以基于運(yùn)行隊(duì)列中的進(jìn)程數(shù)來(lái)改變需要使用的時(shí)鐘中斷周期, 使得在處理器的運(yùn)行狀態(tài)中,時(shí)鐘中斷周期不再是固定不變的時(shí)鐘中斷周期而具有一定的 靈活性,便于根據(jù)需要來(lái)動(dòng)態(tài)調(diào)整時(shí)鐘中斷周期。并且,在進(jìn)程數(shù)大于參考閾值時(shí)使用的時(shí) 鐘中斷周期小于在進(jìn)程數(shù)不大于參考閾值時(shí)使用的時(shí)鐘中斷周期,可以在進(jìn)程數(shù)較多時(shí)提 高系統(tǒng)的響應(yīng)速度,使得進(jìn)程得到及時(shí)調(diào)度,而在進(jìn)程數(shù)較少時(shí)減少時(shí)鐘中斷造成的系統(tǒng) 開(kāi)銷(xiāo),并使得進(jìn)程得到充分執(zhí)行,從而,可以提高系統(tǒng)的處理效率。下面詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的SllO和S120。在SllO中,確定處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù)。處理器可以直接查詢它的運(yùn)行隊(duì)列中的進(jìn)程數(shù),也可以通過(guò)讀取記錄有運(yùn)行隊(duì)列相關(guān)信息的表格,從表格中提取運(yùn)行隊(duì)列中的進(jìn)程數(shù)??梢悦扛纛A(yù)定時(shí)間來(lái)確定運(yùn)行隊(duì)列中的進(jìn)程數(shù)。該預(yù)定時(shí)間可以是諸如1秒、2秒 之類(lèi)的等長(zhǎng)時(shí)間,也可以是不等長(zhǎng)時(shí)間。如果預(yù)定時(shí)間是不等長(zhǎng)時(shí)間,那么可以根據(jù)當(dāng)前進(jìn) 程數(shù)、系統(tǒng)負(fù)載、硬件開(kāi)銷(xiāo)等,來(lái)確定下一次確定進(jìn)程數(shù)的時(shí)間間隔,或者直接隨機(jī)地確定 相鄰兩次確定進(jìn)程數(shù)之間的時(shí)間間隔。當(dāng)然,本領(lǐng)域技術(shù)人員還可以想到其他確定進(jìn)程數(shù) 所需的時(shí)間間隔。在S120中,基于當(dāng)進(jìn)程數(shù)大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期小于當(dāng)進(jìn)程 數(shù)不大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期,確定處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘 中斷周期。時(shí)鐘中斷周期可以是提前設(shè)置好的時(shí)鐘中斷周期,也可以是在確定時(shí)鐘中斷周期 的過(guò)程中動(dòng)態(tài)產(chǎn)生的時(shí)鐘中斷周期??梢詫llO中確定的進(jìn)程數(shù)與提前設(shè)置的閾值相比 較,根據(jù)進(jìn)程數(shù)與閾值之間的大小關(guān)系來(lái)確定時(shí)鐘中斷周期。也可以根據(jù)進(jìn)程數(shù)與時(shí)鐘中 斷周期之間映射關(guān)系,查詢存儲(chǔ)有映射關(guān)系的表格或者基于映射關(guān)系動(dòng)態(tài)生成時(shí)鐘中斷周 期,從而確定與進(jìn)程數(shù)相應(yīng)的時(shí)鐘中斷周期??梢曰诋?dāng)進(jìn)程數(shù)大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期小于當(dāng)進(jìn)程數(shù)不大 于該參考閾值時(shí)需要使用的時(shí)鐘中斷周期,確定處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷 周期。在該情況下,當(dāng)進(jìn)程數(shù)大于參考閾值時(shí),需要使用一個(gè)時(shí)鐘中斷周期,而當(dāng)進(jìn)程數(shù)不 大于該參考閾值時(shí),需要使用比該一個(gè)時(shí)鐘斷周期大的另一時(shí)鐘中斷周期。由于進(jìn)程數(shù)大 于參考閾值時(shí)對(duì)應(yīng)的時(shí)鐘中斷周期小于進(jìn)程數(shù)不大于該參考閾值時(shí)對(duì)應(yīng)的時(shí)鐘中斷周期, 因此在進(jìn)程數(shù)較多時(shí),由于時(shí)鐘中斷周期更小而使得各個(gè)進(jìn)程可以得到及時(shí)的調(diào)度,系統(tǒng) 具有更快的響應(yīng)時(shí)間,而在進(jìn)程數(shù)較少時(shí),由于時(shí)鐘中斷周期更大而使得留給每個(gè)進(jìn)程的 處理時(shí)間更長(zhǎng)、時(shí)鐘中斷發(fā)生的次數(shù)更少,所以在每個(gè)進(jìn)程得到有效調(diào)度的基礎(chǔ)上可以更 充分執(zhí)行每個(gè)進(jìn)程,同時(shí)可以減少時(shí)鐘中斷造成的上下文環(huán)境信息切換所需的時(shí)間和資源 消耗。從而,能夠提高系統(tǒng)的處理效率。根據(jù)本發(fā)明的一個(gè)實(shí)施例,參考閾值可以不僅僅是一個(gè)特定閾值,而可以包括至 少兩個(gè)閾值。在具有多閾值的情況下,可以具有更多的時(shí)鐘中斷周期,從而更好地針對(duì)系統(tǒng) 的處理環(huán)境來(lái)確定相適應(yīng)的時(shí)鐘中斷周期,靈活性更大。根據(jù)本發(fā)明的一個(gè)實(shí)施例,參考閾 值可以包括第一閾值和比第一閾值大的第二閾值。當(dāng)進(jìn)程數(shù)大于第一閾值且不大于第二 閾值時(shí),確定需要使用第一時(shí)鐘中斷周期;當(dāng)進(jìn)程數(shù)不大于第一閾值時(shí),確定需要使用比第 一時(shí)鐘周期大的第二時(shí)鐘中斷周期;當(dāng)進(jìn)程數(shù)大于第二閾值時(shí),確定需要使用比第一時(shí)鐘 周期小的第三時(shí)鐘中斷周期。這樣,在三個(gè)時(shí)鐘中斷周期中選擇與進(jìn)程數(shù)相適應(yīng)的時(shí)鐘中 斷周期,使得在進(jìn)程數(shù)適中時(shí),使用兼顧調(diào)度速度和時(shí)鐘中斷發(fā)生頻率的時(shí)鐘中斷周期以 優(yōu)化系統(tǒng)性能,在進(jìn)程數(shù)較多時(shí),減小時(shí)鐘中斷周期以使進(jìn)程得到及時(shí)響應(yīng),在進(jìn)程數(shù)較少 時(shí),在保證進(jìn)程被及時(shí)調(diào)度的前提下,增大時(shí)鐘中斷周期,減少時(shí)鐘中斷造成的上下文信息 保存時(shí)間和開(kāi)銷(xiāo),使調(diào)度的進(jìn)程更充分的執(zhí)行。通過(guò)可變的時(shí)鐘中斷周期,可以適應(yīng)不同進(jìn) 程數(shù)對(duì)響應(yīng)速度和處理性能的要求,從而能夠提高系統(tǒng)的處理效率。根據(jù)本發(fā)明實(shí)施例提供的調(diào)整時(shí)鐘中斷周期的方法,可以根據(jù)進(jìn)程數(shù)來(lái)在處理器 的運(yùn)行狀態(tài)中確定需要使用的時(shí)鐘中斷周期,相比于現(xiàn)有技術(shù),不再在處理器的運(yùn)行狀態(tài) 中使用固定的時(shí)鐘中斷周期,而可以動(dòng)態(tài)調(diào)整時(shí)鐘中斷周期,使得處理器在運(yùn)行狀態(tài)中使用的時(shí)鐘中斷周期具有靈活性,便于根據(jù)需要來(lái)使用不同的時(shí)鐘中斷周期。并且,在進(jìn)程 數(shù)大于參考閾值時(shí)使用的時(shí)鐘中斷周期小于在進(jìn)程數(shù)不大于參考閾值時(shí)使用的時(shí)鐘中斷 周期,可以在進(jìn)程數(shù)較多時(shí)提高系統(tǒng)的響應(yīng)速度,使得進(jìn)程得到及時(shí)調(diào)度,而在進(jìn)程數(shù)較少 時(shí)減少時(shí)鐘中斷造成的系統(tǒng)開(kāi)銷(xiāo),并使得進(jìn)程得到充分執(zhí)行,從而,可以提高系統(tǒng)的處理效率。圖2示出了根據(jù)本發(fā)明實(shí)施例的調(diào)整時(shí)鐘中斷周期的方法200。相比于圖1的方法100,圖2中的S210和S220與圖1的SllO和S120基本相同, 因此不再贅述。根據(jù)本發(fā)明的一個(gè)實(shí)施例,方法300在S220之后還可以包括S230,根據(jù)所確定的 時(shí)鐘中斷周期,更新下一時(shí)鐘中斷發(fā)生的時(shí)間。根據(jù)在S220中確定的時(shí)鐘中斷周期,可以確定以多長(zhǎng)的時(shí)間間隔來(lái)觸發(fā)下一時(shí) 鐘中斷,從而更新下一時(shí)鐘中斷發(fā)生的時(shí)間。例如,在當(dāng)前的時(shí)鐘中斷周期是1毫秒的情況 下,如果確定需要使用的時(shí)鐘中斷周期是4毫秒,則下一時(shí)鐘中斷發(fā)生的時(shí)間是當(dāng)前時(shí)鐘 中斷時(shí)間加上4毫秒,而不是當(dāng)前時(shí)鐘中斷時(shí)間加上1毫秒。同樣在該情況下,如果確定需 要使用的時(shí)鐘中斷周期不變,則仍然以1毫秒的時(shí)間間隔來(lái)產(chǎn)生時(shí)鐘中斷觸發(fā)。通過(guò)更新 下一時(shí)鐘中斷發(fā)生的時(shí)間,可以及時(shí)對(duì)時(shí)鐘中斷觸發(fā)時(shí)間進(jìn)行動(dòng)態(tài)調(diào)整,適應(yīng)當(dāng)前的進(jìn)程 數(shù)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,方法300在S220之后還可以包括S240,根據(jù)當(dāng)前使用 的時(shí)鐘中斷周期,更新指示時(shí)鐘中斷發(fā)生次數(shù)的中斷計(jì)數(shù)。由于系統(tǒng)管理、負(fù)載統(tǒng)計(jì)、某些任務(wù)執(zhí)行等需要借助時(shí)鐘中斷發(fā)生次數(shù),因此在每 次發(fā)生時(shí)鐘中斷之后,需要更新指示時(shí)鐘中斷發(fā)生次數(shù)的中斷計(jì)數(shù)。因?yàn)樵谔幚砥鞯倪\(yùn)行狀態(tài)中需要使用至少兩個(gè)時(shí)鐘中斷周期,每個(gè)時(shí)鐘中斷周期 表征的中斷時(shí)間不同,所以需要采用與每個(gè)時(shí)鐘中斷周期相應(yīng)的方式來(lái)更新中斷計(jì)數(shù),以 保持時(shí)鐘中斷次數(shù)與指示的時(shí)鐘中斷時(shí)間之間的對(duì)應(yīng)關(guān)系,使得單位中斷計(jì)數(shù)對(duì)應(yīng)相同的 中斷時(shí)間。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在當(dāng)前使用的時(shí)鐘中斷周期是用于計(jì)錄時(shí)鐘中斷次數(shù) 的基準(zhǔn)時(shí)鐘中斷周期時(shí),遞增中斷計(jì)數(shù);在當(dāng)前使用的時(shí)鐘中斷周期不是基準(zhǔn)時(shí)鐘中斷周 期時(shí),基于當(dāng)前使用的時(shí)鐘中斷周期和基準(zhǔn)時(shí)鐘中斷周期的比例,增大中斷計(jì)數(shù)。以該方 式,每單位的中斷計(jì)數(shù)對(duì)應(yīng)的中斷時(shí)間就是基準(zhǔn)時(shí)鐘中斷周期。雖然在相同時(shí)間內(nèi)具有不 同時(shí)鐘中斷周期的時(shí)鐘中斷發(fā)生的次數(shù)不同,但是它們?cè)谙嗤瑫r(shí)間內(nèi)對(duì)應(yīng)的計(jì)數(shù)相同。例如,假設(shè)用于記錄時(shí)鐘中斷次數(shù)的基準(zhǔn)時(shí)鐘中斷周期是1毫秒,當(dāng)前使用的時(shí) 鐘中斷周期是4毫秒,則在當(dāng)前使用的時(shí)鐘中斷周期是1毫秒時(shí),中斷計(jì)數(shù)可以增加1,在 當(dāng)前使用的時(shí)鐘中斷周期是4毫秒時(shí),由于4毫秒是基準(zhǔn)時(shí)鐘中斷周期的四倍,所以中斷計(jì) 數(shù)可以增加4。這樣,在相同的20毫秒時(shí)間內(nèi),如果使用1毫秒的時(shí)鐘中斷周期,則發(fā)生20 次時(shí)鐘中斷,中斷計(jì)數(shù)增加20 ;如果使用4毫秒的時(shí)鐘中斷周期,則發(fā)生5次時(shí)鐘中斷,中 斷計(jì)數(shù)仍然增加2(K4X5)。從而,單位中斷計(jì)數(shù)在不同的時(shí)鐘中斷周期下對(duì)應(yīng)相同的中斷 時(shí)間,保證了計(jì)數(shù)的統(tǒng)一性。雖然在圖3中示出了在S230之后執(zhí)行S240,但是本領(lǐng)域技術(shù)人員也可以想到在 S230之前執(zhí)行S240,或者S230與S240同時(shí)執(zhí)行。S230和S240執(zhí)行的順序沒(méi)有限制,只要在S220之后執(zhí)行即可。下面結(jié)合圖3,以參考閾值包括第一閾值和第二閾值為例,描述在多閾值的情況下 如何調(diào)整時(shí)鐘中斷周期。在圖3所示的例子中,時(shí)鐘中斷周期包括第一時(shí)鐘中斷周期Tl、第二時(shí)鐘中斷周 期T2和第三時(shí)鐘中斷周期T3,其中T3 < Tl < T2。可以提前為處理器設(shè)置這三個(gè)時(shí)鐘中 斷周期,根據(jù)進(jìn)程數(shù)確定需要使用這三個(gè)時(shí)鐘中斷周期中的哪一個(gè)。可以經(jīng)過(guò)至少一個(gè)基準(zhǔn)時(shí)鐘中斷周期,檢查處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù)N,每次 檢查所經(jīng)過(guò)的基準(zhǔn)時(shí)鐘中斷周期數(shù)可以不同?;鶞?zhǔn)時(shí)鐘中斷周期可以是Tl、T2和T3中最 小的一個(gè),也可以比Tl、T2和T3都小。確定進(jìn)程數(shù)N之后,將進(jìn)程數(shù)N與第一閾值附和第二閾值N2相比較,其中附 <N2。當(dāng)附<N<N2時(shí),確定需要使用第一時(shí)鐘中斷周期Tl ;當(dāng)NSm時(shí),確定需要使 用第二時(shí)鐘中斷周期T2 ;當(dāng)N > N2時(shí),確定需要使用第三時(shí)鐘中斷周期T3。這樣,在進(jìn)程 數(shù)較多時(shí),提高時(shí)鐘中斷節(jié)拍率即減小時(shí)鐘中斷周期,以較小的時(shí)鐘中斷周期T3來(lái)執(zhí)行, 從而保證每個(gè)任務(wù)都能及時(shí)得到調(diào)度,可以提高系統(tǒng)的響應(yīng)速度。在進(jìn)程數(shù)較少時(shí),降低時(shí) 鐘中斷節(jié)拍率即增大時(shí)鐘中斷周期,以較大的時(shí)鐘中斷周期T2來(lái)執(zhí)行,在保證每個(gè)任務(wù)得 到及時(shí)調(diào)度的同時(shí),能夠減小時(shí)鐘中斷次數(shù),提高處理器的任務(wù)運(yùn)行效率。確定了需要使用的時(shí)鐘中斷周期之后,可以更新下一時(shí)鐘中斷發(fā)生的時(shí)間。如果 需要使用的時(shí)鐘中斷周期是T1、T2或T3,則分別將下一時(shí)鐘中斷發(fā)生時(shí)間更新為當(dāng)前時(shí)鐘 中斷時(shí)間加上Τ1、Τ2或Τ3。如果時(shí)鐘中斷周期保持不變,則仍按照當(dāng)前使用的時(shí)鐘中斷周 期對(duì)下一時(shí)鐘中斷發(fā)生時(shí)間進(jìn)行更新。確定了需要使用的時(shí)鐘中斷周期之后,還可以更新中斷計(jì)數(shù)。假設(shè)Τ2 = 10Τ3以及 Tl = 4Τ3,那么可以以Τ3作為基準(zhǔn)時(shí)鐘中斷周期。如果當(dāng)前使用第一時(shí)鐘中斷周期Tl時(shí), 則每觸發(fā)一次時(shí)鐘中斷,中斷計(jì)數(shù)增加4 ;如果當(dāng)前使用第二時(shí)鐘中斷周期Τ2,則每觸發(fā)一 次時(shí)鐘中斷,中斷計(jì)數(shù)增加10 ;如果當(dāng)前使用第三時(shí)鐘中斷周期Τ3,則每觸發(fā)一次時(shí)鐘中 斷,終端計(jì)數(shù)增加1。這樣保證中斷計(jì)數(shù)每增加一對(duì)應(yīng)Τ2的時(shí)間。本發(fā)明實(shí)施例除了可以應(yīng)用到單處理器的系統(tǒng)中之外,當(dāng)然還可以應(yīng)用到多處理 器的系統(tǒng)中。在多處理器的系統(tǒng)中,針對(duì)單獨(dú)的處理器使用本發(fā)明實(shí)施例提出的調(diào)整時(shí)鐘 中斷周期的方法。圖4示出了根據(jù)本發(fā)明實(shí)施例的多處理器情況下調(diào)整時(shí)鐘中斷周期的例子。圖4的系統(tǒng)中包括多個(gè)處理器,分別是處理器0、處理器1至處理器η。圖4的系 統(tǒng)可以是啟用高分辨率或tickless功能的系統(tǒng)。系統(tǒng)中的每個(gè)處理器分別具有產(chǎn)生本地 時(shí)鐘中斷觸發(fā)的時(shí)鐘設(shè)備,每個(gè)處理器基于本地的時(shí)鐘設(shè)備來(lái)處理該處理器的運(yùn)行隊(duì)列中 的進(jìn)程。每個(gè)處理器的時(shí)鐘設(shè)備產(chǎn)生局部時(shí)鐘,控制相應(yīng)的處理器在局部時(shí)鐘的作用下處 理進(jìn)程。全局時(shí)鐘可以由任何一個(gè)局部時(shí)鐘充當(dāng)。例如,在圖4中,由處理器1的局部時(shí)鐘 充當(dāng)全局時(shí)鐘。那么,當(dāng)處理器1的局部時(shí)鐘的時(shí)鐘中斷周期改變時(shí),系統(tǒng)的全局時(shí)鐘的時(shí) 鐘中斷周期也發(fā)生改變。在多處理器的系統(tǒng)中,可以全部處理器都在可變的時(shí)鐘中斷周期下進(jìn)行處理,也 可以部分處理器在可變的時(shí)鐘中斷周期下進(jìn)行處理。例如,在圖4中,處理器1至處理器η 可以基于可變的時(shí)鐘中斷周期運(yùn)行。此時(shí),對(duì)于處理器1至處理器η中的每個(gè)處理器,需要更新下一時(shí)鐘中斷發(fā)生的時(shí)間,使得相應(yīng)的時(shí)鐘設(shè)備每次基于更新的下一時(shí)鐘中斷時(shí)間來(lái) 產(chǎn)生時(shí)鐘中斷觸發(fā),處理器在時(shí)鐘觸發(fā)下進(jìn)行處理。此外,可以通過(guò)一個(gè)特定的處理器來(lái)更新中斷計(jì)數(shù),也可以通過(guò)多個(gè)處理器來(lái)更 新各自對(duì)應(yīng)的中斷計(jì)數(shù)。通常,由充當(dāng)全局時(shí)鐘的局部時(shí)鐘控制下的處理器在全局時(shí)鐘中 斷處理程序中更新中斷計(jì)數(shù)。例如,在圖4中,可以由處理器1更新中斷計(jì)數(shù)。其他處理器 的局部時(shí)鐘產(chǎn)生本地時(shí)鐘中斷之后,不需要更新中斷計(jì)數(shù),而主要用來(lái)計(jì)算進(jìn)程運(yùn)行時(shí)間。 當(dāng)然,本領(lǐng)域技術(shù)人員也可以想到,為了系統(tǒng)管理等的需要,可能多個(gè)處理器需要維持自己 特定的中斷計(jì)數(shù),此時(shí),這些處理器需要通過(guò)各自的局部時(shí)鐘對(duì)相應(yīng)的中斷計(jì)數(shù)進(jìn)行更新。另外,在具有多處理器的系統(tǒng)中,也可以為多個(gè)處理器設(shè)置不同的本地時(shí)鐘中斷 周期。諸如鍵盤(pán)輸入、鼠標(biāo)輸入之類(lèi)的需要與用戶進(jìn)行交互的交互式進(jìn)程可以被綁定到具 有較小時(shí)鐘中斷周期的處理器或處理器集,從而滿足交互式進(jìn)程要求的快速響應(yīng)速度。對(duì) 計(jì)算量大、需要長(zhǎng)時(shí)間占用處理器的批處理進(jìn)程可以被綁定到具有較大時(shí)鐘中斷周期的處 理器或處理器集,從而滿足以減少時(shí)鐘中斷次數(shù)來(lái)提高計(jì)算性能的要求。上面描述了根據(jù)本發(fā)明實(shí)施例的調(diào)整時(shí)鐘中斷周期的方法,下面結(jié)合圖5和圖6 描述根據(jù)本發(fā)明實(shí)施例的用于調(diào)整時(shí)鐘中斷周期的裝置的結(jié)構(gòu)框圖。圖5示出了根據(jù)本發(fā)明實(shí)施例的用于調(diào)整時(shí)鐘中斷周期的裝置500的結(jié)構(gòu)框圖。裝置500包括第一確定模塊510和第二確定模塊520。第一確定模塊510可用于 確定處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù)。第二確定模塊520可用于基于當(dāng)進(jìn)程數(shù)大于參考閾值 時(shí)需要使用的時(shí)鐘中斷周期小于當(dāng)進(jìn)程數(shù)不大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期,確 定處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期。裝置500的第一確定模塊510和第二確定模塊520的上述和其他操作和/或功能 可以參考上述調(diào)整時(shí)鐘中斷周期的方法100和/或200中的相應(yīng)部分,為了避免重復(fù),在此 不再贅述。根據(jù)本發(fā)明實(shí)施例提供的用于調(diào)整時(shí)鐘中斷周期的裝置,第二確定模塊可以根據(jù) 第一確定模塊確定的進(jìn)程數(shù)來(lái)在處理器的運(yùn)行狀態(tài)中確定需要使用的時(shí)鐘中斷周期,相比 于現(xiàn)有技術(shù),不再在處理器的運(yùn)行狀態(tài)中使用固定的時(shí)鐘中斷周期,而可以動(dòng)態(tài)調(diào)整時(shí)鐘 中斷周期,使得處理器在運(yùn)行狀態(tài)中使用的時(shí)鐘中斷周期具有靈活性,便于根據(jù)需要來(lái)使 用不同的時(shí)鐘中斷周期。并且,通過(guò)第二確定模塊,在進(jìn)程數(shù)大于參考閾值時(shí)確定使用的時(shí) 鐘中斷周期小于在進(jìn)程數(shù)不大于參考閾值時(shí)確定使用的時(shí)鐘中斷周期,這樣做,可以在進(jìn) 程數(shù)較多時(shí)提高系統(tǒng)的響應(yīng)速度,使得進(jìn)程得到及時(shí)調(diào)度,而在進(jìn)程數(shù)較少時(shí)減少時(shí)鐘中 斷造成的系統(tǒng)開(kāi)銷(xiāo),并使得進(jìn)程得到充分執(zhí)行,從而,能夠提高系統(tǒng)的處理效率。圖6示出了根據(jù)本發(fā)明實(shí)施例的用于調(diào)整時(shí)鐘中斷周期的裝置600的結(jié)構(gòu)框圖。 裝置600中的第一確定模塊610和第二確定模塊620與圖5的裝置500中的第一確定模塊 510和第二確定模塊520基本相同。根據(jù)本發(fā)明的一個(gè)實(shí)施例,參考閾值可以包括第一閾值和比第一閾值大的第二閾 值。在該情況下,第二確定模塊620可以包括第一確定單元622、第二確定單元6M和第三 確定單元626。第一確定單元622可用于當(dāng)進(jìn)程數(shù)大于第一閾值且不大于第二閾值時(shí),確定 需要使用第一時(shí)鐘中斷周期。第二確定單元6M可用于當(dāng)進(jìn)程數(shù)不大于第一閾值時(shí),確定 需要使用比第一時(shí)鐘中斷周期大的第二時(shí)鐘中斷周期。第三確定單元擬6可用于當(dāng)進(jìn)程數(shù)大于第二閾值時(shí),確定需要使用比第一時(shí)鐘中斷周期小的第三時(shí)鐘中斷周期。第一確定單元622、第二確定單元6M和第三確定單元6 的上述和其他功能和/ 或操作可以參考上述調(diào)整時(shí)鐘中斷周期的方法100和/或200中的相應(yīng)部分,為了避免重 復(fù),在此不再贅述。根據(jù)本發(fā)明的一個(gè)實(shí)施例,裝置600還可以包括第一更新模塊630。第一更新模塊 630可用于根據(jù)所確定的時(shí)鐘中斷周期,更新下一時(shí)鐘中斷發(fā)生的時(shí)間。第一更新模塊630的上述和其他功能和/或操作可以參考上述調(diào)整時(shí)鐘中斷周期 的方法100和/或200中的相應(yīng)部分,為了避免重復(fù),在此不再贅述。通過(guò)第一更新模塊, 可以及時(shí)調(diào)整時(shí)鐘中斷周期,使得時(shí)鐘中斷觸發(fā)時(shí)間得到及時(shí)改變。 根據(jù)本發(fā)明的一個(gè)實(shí)施例,裝置600還可以包括第二更新模塊640。第二更新模塊 640可用于根據(jù)當(dāng)前使用的時(shí)鐘中斷周期,更新指示時(shí)鐘中斷發(fā)生次數(shù)的中斷計(jì)數(shù)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,第二更新模塊640可以包括第一更新單元642和第二 更新單元644。第一更新單元642可用于當(dāng)當(dāng)前使用的時(shí)鐘中斷周期是用于計(jì)錄時(shí)鐘中斷 次數(shù)的基準(zhǔn)時(shí)鐘中斷周期時(shí),遞增中斷計(jì)數(shù)。第二更新單元644可用于當(dāng)當(dāng)前使用的時(shí)鐘 中斷周期不是基準(zhǔn)時(shí)鐘中斷周期時(shí),基于當(dāng)前使用的時(shí)鐘中斷周期和基準(zhǔn)時(shí)鐘中斷周期的 比例,增大中斷計(jì)數(shù)。第二更新模塊640、第一更新單元642和第二更新單元644的上述和其他功能和/ 或操作可以參考上述調(diào)整時(shí)鐘中斷周期的方法100和/或200中的相應(yīng)部分,為了避免重 復(fù),在此不再贅述。通過(guò)第二更新模塊,可以為系統(tǒng)管理、負(fù)載計(jì)算、任務(wù)執(zhí)行等提供需要的參數(shù)。通 過(guò)第一更新單元和第二更新單元,可以使中斷計(jì)數(shù)在不同的時(shí)鐘中斷周期下具有統(tǒng)一性, 每單位的中斷計(jì)數(shù)對(duì)應(yīng)相同的中斷時(shí)間。本領(lǐng)域技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例中描述的各方法步驟和 單元,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的 可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各實(shí)施例的步驟及組成。這些功能 究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。本領(lǐng)域技 術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為 超出本發(fā)明的范圍。結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法步驟可以用硬件、處理器執(zhí)行的軟件程 序、或者二者的結(jié)合來(lái)實(shí)施。軟件程序可以置于隨機(jī)存取存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器 (ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM或技術(shù)領(lǐng)域 內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。盡管已示出和描述了本發(fā)明的一些實(shí)施例,但本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫 離本發(fā)明的原理和精神的情況下,可對(duì)這些實(shí)施例進(jìn)行各種修改,這樣的修改應(yīng)落入本發(fā) 明的范圍內(nèi)。
權(quán)利要求
1.一種調(diào)整時(shí)鐘中斷周期的方法,其特征在于,包括確定處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù);確定所述處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期,使得所述進(jìn)程數(shù)大于參考閾 值時(shí),需要使用的時(shí)鐘中斷周期小于當(dāng)所述進(jìn)程數(shù)不大于所述參考閾值時(shí)需要使用的時(shí)鐘 中斷周期。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述參考閾值包括第一閾值和比所述第 一閾值大的第二閾值,所述確定所述處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期包括當(dāng)所述進(jìn)程數(shù)大于所述第一閾值且不大于所述第二閾值時(shí),確定需要使用第一時(shí)鐘中 斷周期;當(dāng)所述進(jìn)程數(shù)不大于所述第一閾值時(shí),確定需要使用比所述第一時(shí)鐘周期大的第二時(shí) 鐘中斷周期;當(dāng)所述進(jìn)程數(shù)大于所述第二閾值時(shí),確定需要使用比所述第一時(shí)鐘周期小的第三時(shí)鐘 中斷周期。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括根據(jù)所確定的時(shí)鐘中斷周期,更新下一時(shí)鐘中斷發(fā)生的時(shí)間。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括根據(jù)當(dāng)前使用的時(shí)鐘中斷周期,更新指示時(shí)鐘中斷發(fā)生次數(shù)的中斷計(jì)數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)當(dāng)前使用的時(shí)鐘中斷周期、更新 指示時(shí)鐘中斷發(fā)生次數(shù)的中斷計(jì)數(shù)包括當(dāng)所述當(dāng)前使用的時(shí)鐘中斷周期是用于計(jì)錄時(shí)鐘中斷次數(shù)的基準(zhǔn)時(shí)鐘中斷周期時(shí),遞 增所述中斷計(jì)數(shù);當(dāng)所述當(dāng)前使用的時(shí)鐘中斷周期不是所述基準(zhǔn)時(shí)鐘中斷周期時(shí),基于所述當(dāng)前使用的 時(shí)鐘中斷周期和所述基準(zhǔn)時(shí)鐘中斷周期的比例,增大所述中斷計(jì)數(shù)。
6.一種用于調(diào)整時(shí)鐘中斷周期的裝置,其特征在于,包括第一確定模塊,用于確定處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù);第二確定模塊,用于確定所述處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期,使得當(dāng) 所述進(jìn)程數(shù)大于參考閾值時(shí),需要使用的時(shí)鐘中斷周期小于當(dāng)所述進(jìn)程數(shù)不大于所述參考 閾值時(shí)需要使用的時(shí)鐘中斷周期。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述參考閾值包括第一閾值和比所述第 一閾值大的第二閾值,所述第二確定模塊包括第一確定單元,用于當(dāng)所述進(jìn)程數(shù)大于所述第一閾值且不大于所述第二閾值時(shí),確定 需要使用第一時(shí)鐘中斷周期;第二確定單元,用于當(dāng)所述進(jìn)程數(shù)不大于所述第一閾值時(shí),確定需要使用比所述第一 時(shí)鐘中斷周期大的第二時(shí)鐘中斷周期;第三確定單元,用于當(dāng)所述進(jìn)程數(shù)大于所述第二閾值時(shí),確定需要使用比所述第一時(shí) 鐘中斷周期小的第三時(shí)鐘中斷周期。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,還包括第一更新模塊,用于根據(jù)所確定的時(shí)鐘中斷周期,更新下一時(shí)鐘中斷發(fā)生的時(shí)間。
9.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,還包括第二更新模塊,用于根據(jù)當(dāng)前使用的時(shí)鐘中斷周期,更新指示時(shí)鐘中斷發(fā)生次數(shù)的中 斷計(jì)數(shù)。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第二更新模塊包括 第一更新單元,用于當(dāng)所述當(dāng)前使用的時(shí)鐘中斷周期是用于計(jì)錄時(shí)鐘中斷次數(shù)的基準(zhǔn) 時(shí)鐘中斷周期時(shí),遞增所述中斷計(jì)數(shù);第二更新單元,用于當(dāng)所述當(dāng)前使用的時(shí)鐘中斷周期不是所述基準(zhǔn)時(shí)鐘中斷周期時(shí), 基于所述當(dāng)前使用的時(shí)鐘中斷周期和所述基準(zhǔn)時(shí)鐘中斷周期的比例,增大所述中斷計(jì)數(shù)。
全文摘要
本發(fā)明的實(shí)施例提供了調(diào)整時(shí)鐘中斷周期的方法和裝置。該方法包括確定處理器的運(yùn)行隊(duì)列中的進(jìn)程數(shù);基于當(dāng)進(jìn)程數(shù)大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期小于當(dāng)進(jìn)程數(shù)不大于參考閾值時(shí)需要使用的時(shí)鐘中斷周期,確定處理器在運(yùn)行狀態(tài)中需要使用的時(shí)鐘中斷周期。該裝置包括第一確定模塊和第二確定模塊。通過(guò)本發(fā)明實(shí)施例提供的方法和裝置,可以動(dòng)態(tài)調(diào)整時(shí)鐘中斷周期,使得處理器在運(yùn)行狀態(tài)中使用的時(shí)鐘中斷周期具有靈活性,便于根據(jù)需要來(lái)使用不同的時(shí)鐘中斷周期。并且,進(jìn)程數(shù)較多時(shí)使用較小的時(shí)鐘中斷周期,可以提高響應(yīng)速度,而進(jìn)程數(shù)較少時(shí)使用較大的時(shí)鐘中斷周期,可以降低開(kāi)銷(xiāo)并使進(jìn)程充分執(zhí)行,從而,可以提高系統(tǒng)的處理效率。
文檔編號(hào)G06F9/48GK102081555SQ20111004496
公開(kāi)日2011年6月1日 申請(qǐng)日期2011年2月24日 優(yōu)先權(quán)日2011年2月24日
發(fā)明者葉炎鐘 申請(qǐng)人:華為技術(shù)有限公司