專利名稱:Ip軟電話語音及視頻流媒體實時保證方法
技術領域:
本發(fā)明涉及基于IP的語音及多媒體傳輸,更具體而言涉及IP軟電話語音及視頻 流媒體實時保證方法。
背景技術:
IP軟電話技術一直是因特網(Internet)大規(guī)模普及發(fā)展以來的大熱門,而制約 IP軟電話語音及視頻流媒體傳輸質量的因素不外乎兩點,其一就是IP軟電話賴以生存的 網絡環(huán)境,不當?shù)木W絡搭建、網關、路由上出現(xiàn)的阻塞、延遲都會很明顯的影響到語音質量; 另一個就是IP軟電話工作所在的計算機運行環(huán)境,這其中包括硬件環(huán)境和軟件環(huán)境。內存 大小、CPU運算能力、聲卡采集速度和質量等等都是屬于硬件環(huán)境范疇,而軟件環(huán)境主要是 指終端對語音的采集和傳輸進程都必須通過操作系統(tǒng)調配。操作系統(tǒng)對于運行在其上的各 個進程的調配方式是依照各個進程所擁有的優(yōu)先級,優(yōu)先級越高就越早越長時間的搶占系 統(tǒng)資源。在現(xiàn)今時代背景下,網絡技術和計算機技術的高速發(fā)展,使得原先困擾IP軟電話 技術發(fā)展的網絡因素和計算機硬件環(huán)境因素大幅度弱化了,在通常情況下軟件環(huán)境是比較 順暢的,IP軟電話語音及視頻流媒體實時得以實現(xiàn)。然而當軟件環(huán)境出現(xiàn)異常時,IP軟電話語音及視頻流媒體的實時就無法保證了, 會出現(xiàn)延遲甚至中斷情況。之所以會發(fā)生這種情況,是因為目前的語音及視頻的采集和傳 輸進程大都是采用用戶級優(yōu)先級,在多任務搶占式CPU分配方式下,不可避免的會遇到當 其他進程出現(xiàn)問題將CPU資源完全占用后系統(tǒng)又無法正常釋放的情況,在這種情況下,就 會造成因語音及視頻的采集和傳輸進程因為無法及時占用到足夠的CPU資源而影響其功 能的使用。
發(fā)明內容
鑒于傳統(tǒng)IP軟電話語音及視頻流媒體傳輸?shù)纳鲜鋈毕?,本發(fā)明的目的在于提供 一個可靠的方案,以確保IP軟電話語音及視頻流媒體的數(shù)據(jù)在任何情況下都可以傳輸暢 通,而不會受到CPU 100%的影響而出現(xiàn)中斷傳輸或延遲傳輸?shù)那闆r。本發(fā)明提供的擁有系統(tǒng)級優(yōu)先級外殼、配置動態(tài)實時優(yōu)先級方案,適用于需要確 保進程運行穩(wěn)定性的各種情況。提升進程優(yōu)先級,使采集和傳輸處理永遠可以預占用一定 量的CPU資源,就是解決問題的關鍵所在。將語音及視頻的采集和傳輸進程封裝為擁有系統(tǒng)級優(yōu)先級的進程,封裝后的進程 將不再需要與其他用戶級優(yōu)先級的進程搶占CPU資源,系統(tǒng)就會為其預留一定的CPU資源, 以確保在任何情況下都不影響其正常工作。而且如果在系統(tǒng)級優(yōu)先級的基礎上,再增加動 態(tài)變更進程外殼優(yōu)先級的能力(實時動態(tài)調配優(yōu)先級,除了系統(tǒng)級優(yōu)先級以外,對于用戶 級優(yōu)先級同樣有效),就可避免除死機等操作系統(tǒng)崩潰以外的所有異常情況影響自有軟件 進程的正常工作。
本發(fā)明通過系統(tǒng)級優(yōu)先級和實時優(yōu)先級的雙保險,來確保IP軟電話語音及視頻 流媒體的實時暢通,給IP軟電話的使用者較好的使用感受。實時優(yōu)先級與普通優(yōu)先級的最 大區(qū)別在于相同優(yōu)先級進程的運行不按照時間片輪轉,而是先運行的進程就先控制CPU,如 果它不主動放棄控制,同級或低優(yōu)先級的進程就無法運行。根據(jù)本發(fā)明,提供一種IP軟電話語音及視頻流媒體實時保證方法,其特征在于 采用了系統(tǒng)級優(yōu)先級的進程外殼來封裝IP軟電話語音及視頻流媒體服務的內核線程;使 用動態(tài)實時優(yōu)先級調配方案,確保系統(tǒng)級優(yōu)先級的進程外殼的優(yōu)先級總維持在高于或持平 于用戶級優(yōu)先級進程;使IP軟電話語音及視頻流媒體服務永遠可以預占用一定量的CPU資 源,從而確保IP軟電話語音及視頻流媒體的實時暢通。根據(jù)本發(fā)明的優(yōu)選實施例,其中將IP軟電話語音及視頻流媒體服務的內核線程 封裝為擁有系統(tǒng)級優(yōu)先級的進程,封裝后的進程將不再需要與其他用戶級優(yōu)先級的進程搶 占CPU資源,系統(tǒng)就會為其預留一定的CPU資源,以確保在任何情況下都不影響IP軟電話 語音及視頻流媒體服務的內核線程正常工作。根據(jù)本發(fā)明的優(yōu)選實施例,其中在系統(tǒng)級優(yōu)先級的基礎上,再增加動態(tài)變更進程 外殼優(yōu)先級的能力,從而避免除操作系統(tǒng)崩潰以外的所有異常情況影響自有軟件進程的正
常工作。根據(jù)本發(fā)明的優(yōu)選實施例,其中所述實時優(yōu)先級的特征在于相同優(yōu)先級進程的 運行不按照時間片輪轉,而是先運行的進程就先控制CPU,如果它不主動放棄控制,同級或 低優(yōu)先級的進程就無法運行。本發(fā)明的技術關鍵在于1.采用了系統(tǒng)級優(yōu)先級的進程外殼來封裝IP軟電話語音及視頻流媒體服務的內 核線程;2.使用動態(tài)實時優(yōu)先級調配方案,確保系統(tǒng)級優(yōu)先級的進程外殼的優(yōu)先級總維持 在高于或持平于用戶級優(yōu)先級進程;本發(fā)明確保在任何條件下都可以確保IP軟電話語音及視頻流媒體實時效果,即 便是在CPU占用率100%的極端條件下,仍可以保持通話語音及視頻的流暢。雖然在下文中將結合一些示例性實施及使用方法來描述本發(fā)明,但本領域技術人 員應當理解,并不旨在將本發(fā)明限制于這些實施例。反之,旨在覆蓋包含在所附的權利要求 書所定義的本發(fā)明的精神與范圍內的所有替代品、修正及等效物。本發(fā)明的其他優(yōu)點、目標和特征在某種程度上將在隨后的說明書中進行闡述,并 且在某種程度上,基于對下文的考察研究對本領域技術人員而言將是顯而易見的,或者可 以從本發(fā)明的實踐中得到教導。本發(fā)明的目標和其他優(yōu)點可以通過下面的說明書,權利要 求書,以及附圖中所特別指出的結構來實現(xiàn)和獲得。
圖1示出了本發(fā)明的系統(tǒng)構架圖;以及圖2示出了根據(jù)本發(fā)明的IP軟電話語音及視頻流媒體實時保證方法的流程圖。
具體實施例方式下面結合附圖對本發(fā)明的具體實施方式
作進一步的詳細描述。需要注意的是,根據(jù)本發(fā)明的呼叫中心兩級交換方法的實施方式僅僅作為例子,但本發(fā)明不限于該具體實施方式
。圖1示出了本發(fā)明的系統(tǒng)架構圖。如圖1所示,整個保證方法就是由這個具有動態(tài)實時變動優(yōu)先級能力的系統(tǒng)級優(yōu)先級的進程外殼實現(xiàn)的。通過將IP軟電話語音及視頻 流媒體服務(主要是語音及視頻的采集和傳輸)內核線程封裝在一個系統(tǒng)級優(yōu)先級的進程 外殼中,使得操作系統(tǒng)在對待IP軟電話語音及視頻流媒體服務(主要是語音及視頻的采集 和傳輸)內核線程的申請系統(tǒng)資源時,會優(yōu)先于其他用戶級優(yōu)先級進程而提前分配系統(tǒng)資 源。而動態(tài)實時變動優(yōu)先級能力,就確保了在某個用戶級優(yōu)先級進程由于內部產生無窮循 環(huán)或出現(xiàn)線程阻塞等極端情況下,用戶級優(yōu)先級進程被系統(tǒng)提高優(yōu)先級后,系統(tǒng)級優(yōu)先級 的進程外殼可以相應的提高優(yōu)先級,而保證進程外殼在申請系統(tǒng)資源時的優(yōu)勢。我們采用優(yōu)先級最高的系統(tǒng)級進程作為IP軟電話語音及視頻流媒體服務(主要 是語音及視頻的采集和傳輸)內核的外殼,動態(tài)實時變動優(yōu)先級,使其一直高于或持平于 用戶級優(yōu)先級的進程,確保系統(tǒng)在正常情況下不使其他進程侵占此進程的CPU資源,這樣 就確保了傳輸?shù)牧鲿承裕沟谜Z音及視頻質量始終維持在一個可接受的范圍。換言之,動態(tài)實時優(yōu)先級調配方案就是確保進程整體優(yōu)先級高于其他用戶級優(yōu)先 級進程,從而確保被封裝其中的內核線程總可以占用到一定量的CPU資源。具體而言,在該 實施例中,我們采用系統(tǒng)級優(yōu)先級的進程外殼,并配置動態(tài)實時優(yōu)先級方案提升IP軟電話 語音及視頻流媒體服務(主要是語音及視頻的采集和傳輸)的內核線程的優(yōu)先級,使采集 和傳輸處理永遠可以預占用一定量的CPU資源,從而確保IP軟電話語音及視頻流媒體的實 時暢通。由此,該實施例確保了在任何條件下都可以確保IP軟電話語音及視頻流媒體實時 效果,即便是在CPU 100%的極端條件下,仍可以保持通話語音及視頻的流暢,給IP軟電話 的使用者較好的使用感受。動態(tài)實時變動優(yōu)先級可以確保線程的優(yōu)先級始終保持在16以上,而且線程的運 行不按照時間片輪轉,而是先運行的線程就先控制CPU,如果它不主動放棄控制,同級或低 優(yōu)先級的線程就無法運行。這樣就確保了在一個連續(xù)的時間段內,將無意外的可以保有一 定量的CPU時間,以維系采集和傳輸線程的連續(xù)正常運行。當出現(xiàn)高優(yōu)先級的線程時,采集 和傳輸線程會動態(tài)調高線程優(yōu)先級,以確保其優(yōu)先級的優(yōu)勢地位不變。本發(fā)明提供的擁有系統(tǒng)級優(yōu)先級外殼、配置動態(tài)實時優(yōu)先級方案,適用于需要確 保進程運行穩(wěn)定性的各種情況。提升進程優(yōu)先級,使采集和傳輸處理永遠可以預占用一定 量的CPU資源,就是解決問題的關鍵所在。將語音及視頻的采集和傳輸進程封裝為擁有系統(tǒng)級優(yōu)先級的進程,封裝后的進程 將不再需要與其他用戶級優(yōu)先級的進程搶占CPU資源,系統(tǒng)就會為其預留一定的CPU資源, 以確保在任何情況下都不影響其正常工作。而且如果在系統(tǒng)級優(yōu)先級的基礎上,再增加動 態(tài)變更進程外殼優(yōu)先級的能力(實時動態(tài)調配優(yōu)先級,可以對系統(tǒng)級優(yōu)先級進行動態(tài)調 配,同時對于用戶級優(yōu)先級同樣有效),就可避免除死機等操作系統(tǒng)崩潰以外的所有異常情 況影響自有軟件進程的正常工作。進程是依靠線程工作的,每個線程都會被賦予一個從0 (最低)到31 (最高)的優(yōu) 先級號碼。當系統(tǒng)確定將哪個線程分配給CPU的時候,它首先觀察優(yōu)先級為31的線程,并以循環(huán)的方式對它們進行系統(tǒng)調用。如果優(yōu)先級為31的線程可以調度,那么就賦予該線程一個CPU時間片。在該線程的時間片結束的時候,系統(tǒng)要查看是否還有另一個優(yōu)先級為31 的線程可以運行,如果有,它將允許該線程被賦予CPU時間片。只有優(yōu)先級為31的線程是可以調度的,系統(tǒng)就絕對不會將優(yōu)先級為0到30的線 程分配給CPU。這種情況稱為渴求調度(starvation)。這里存在個問題,是否低優(yōu)先級的線 程永遠得不到調用,因為在任何一個時間段內,系統(tǒng)中的大多數(shù)線程是不能調用的。例如 如果主線程調用GetMessage函數(shù),而系統(tǒng)發(fā)現(xiàn)沒有線程可以供它使用,那么系統(tǒng)就暫停進 程的線程運行,釋放該線程的剩余時間片,并且立即將CPU分配給另一個等待運行的線程, 高優(yōu)先級的線程會搶占低優(yōu)先級的線程。雖然系統(tǒng)級優(yōu)先級和用戶級優(yōu)先級在同等優(yōu)先級條件下,擁有系統(tǒng)級優(yōu)先級的線 程會先得到CPU時間,但是當有大量擁有用戶級優(yōu)先級的高優(yōu)先級線程等待CPU時間時,擁 有系統(tǒng)級優(yōu)先級的線程一樣無法搶占到CPU時間片。故而本發(fā)明通過系統(tǒng)級優(yōu)先級和實時優(yōu)先級的雙保險,來確保IP軟電話語音及 視頻流媒體的實時暢通,給IP軟電話的使用者較好的使用感受。實時優(yōu)先級與普通優(yōu)先級的最大區(qū)別在于相同優(yōu)先級進程的運行不按照時間片 輪轉,而是先運行的進程就先控制CPU,如果它不主動放棄控制,同級或低優(yōu)先級的進程就 無法運行。圖2示出了根據(jù)本發(fā)明的IP軟電話語音及視頻流媒體實時保證方法的流程圖。參見圖2,動態(tài)實時調控進程外殼的優(yōu)先級的方式就是首先定時遍歷系統(tǒng)進程列 表,然后比較本進程(在該具體實施方式
中,特指系統(tǒng)級優(yōu)先級的進程外殼;只有與系統(tǒng)級 優(yōu)先級進程配合,才能達到100%預占用CPU時間片的效果)優(yōu)先級和其他用戶級優(yōu)先級進 程,如果發(fā)現(xiàn)有高于本進程優(yōu)先級的,則立刻將本進程優(yōu)先級調高。如果未發(fā)現(xiàn)有高于本進 程優(yōu)先級的,則比較所有的用戶級優(yōu)先級進程的優(yōu)先級是否有高于16的,如果存在優(yōu)先級 高于16的,則保持本進程優(yōu)先級不變;如果全部低于16,則動態(tài)調低本進程優(yōu)先級。需要注意的是,16是一個分水嶺,一般的用戶級進程都不會超過16,系統(tǒng)會在 0-15這個范圍內分配優(yōu)先級,只有當用戶級進程長時間無法獲取到CPU時間片時,系統(tǒng)才 會暫時調高其優(yōu)先級,使之超過16。而我們采用系統(tǒng)級進程,系統(tǒng)開始分配優(yōu)先級就是在 16-31的范圍內。動態(tài)調低本進程的優(yōu)先級不能低于16,但是具體調低到多少,要看現(xiàn)有用戶級優(yōu) 先級進程中最大優(yōu)先級是多少,然后將本進程的優(yōu)先級在16-20這個范圍內取值,只要保 證其取值高于最大用戶級優(yōu)先級即可。因為正常情況下的用戶級優(yōu)先級的進程都不會超過 8,這樣只需將本進程(即系統(tǒng)級優(yōu)先級的進程外殼)的優(yōu)先級維持在16即可;當存在超過 8的用戶級優(yōu)先級的進程,每提升2點,系統(tǒng)級優(yōu)先級的進程外殼的優(yōu)先級就提升1點。這樣做的好處,就是確保進程外殼的優(yōu)先級始終動態(tài)保持在較高的優(yōu)先級,使得 系統(tǒng)級優(yōu)先級的進程外殼在參與到系統(tǒng)的資源分配時,始終占據(jù)優(yōu)勢,從而確保IP軟電話 語音及視頻流媒體服務(主要是語音及視頻的采集和傳輸)內核線程始終可以被分配到 CPU時間片,以確保其運行的連貫性和穩(wěn)定性。之所以不始終將進程外殼的優(yōu)先級保持在一 個很高的水平,是防止其影響到操作系統(tǒng)的正常工作。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。 這樣,倘若本發(fā) 明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含 這些改動和變型在內。
權利要求
一種IP軟電話語音及視頻流媒體實時保證方法,其特征在于采用了系統(tǒng)級優(yōu)先級的進程外殼來封裝IP軟電話語音及視頻流媒體服務的內核線程;使用動態(tài)實時優(yōu)先級調配方案,確保系統(tǒng)級優(yōu)先級的進程外殼的優(yōu)先級總維持在高于或持平于用戶級優(yōu)先級進程;使IP軟電話語音及視頻流媒體服務永遠可以預占用一定量的CPU資源,從而確保IP軟電話語音及視頻流媒體的實時暢通。
2.根據(jù)權利要求1所述的方法,其中將IP軟電話語音及視頻流媒體服務的內核線程 封裝為擁有系統(tǒng)級優(yōu)先級的進程,封裝后的進程將不再需要與其他用戶級優(yōu)先級的進程搶 占CPU資源,系統(tǒng)就會為其預留一定的CPU資源,以確保在任何情況下都不影響IP軟電話 語音及視頻流媒體服務的內核線程正常工作。
3.根據(jù)權利要求1或2所述的方法,其特征在于在系統(tǒng)級優(yōu)先級的基礎上,再增加動態(tài) 變更進程外殼優(yōu)先級的能力,從而避免除操作系統(tǒng)崩潰以外的所有異常情況影響自有軟件 進程的正常工作。
4.根據(jù)權利要求1所述的方法,其中所述實時優(yōu)先級的特征在于相同優(yōu)先級進程的運行不按照時間片輪轉,而是先運行的進程就先控制CPU,如果它不 主動放棄控制,同級或低優(yōu)先級的進程就無法運行。
全文摘要
本發(fā)明涉及一種IP軟電話語音及視頻流媒體實時保證方法。采用系統(tǒng)級優(yōu)先級外殼,并配置動態(tài)實時優(yōu)先級方案提升進程優(yōu)先級,使采集和傳輸處理永遠可以預占用一定量的CPU資源,從而確保IP軟電話語音及視頻流媒體的實時暢通。本發(fā)明確保在任何條件下都可以確保IP軟電話語音及視頻流媒體實時效果,即便是在CPU 100%的極端條件下,仍可以保持通話語音及視頻的流暢,給IP軟電話的使用者較好的使用感受。
文檔編號H04L29/06GK101815143SQ20101003390
公開日2010年8月25日 申請日期2010年1月6日 優(yōu)先權日2010年1月6日
發(fā)明者不公告發(fā)明人 申請人:北京訊鳥軟件有限公司