專利名稱:多任務(wù)調(diào)度系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種多任務(wù)調(diào)度系統(tǒng)和方法。
背景技術(shù):
RTOS(Realtime operation system,實(shí)時(shí)操作系統(tǒng))是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái),是一個(gè)可靠性和可信性很高的實(shí)時(shí)內(nèi)核。RTOS將CPU時(shí)間、中斷、I/O、定時(shí)器等資源都包裝起來,留給用戶一個(gè)標(biāo)準(zhǔn)的API(Application Program Interface,應(yīng)用程序接口),并根據(jù)各個(gè)任務(wù)的優(yōu)先級,合理地在不同任務(wù)之間分配CPU時(shí)間。
RTOS通常設(shè)置于嵌入式系統(tǒng)中實(shí)時(shí)地完成各種功能,這些嵌入式系統(tǒng)通常具有實(shí)時(shí)性很好、系統(tǒng)體積小、資源有限和沒有圖形界面等特點(diǎn)。典型的RTOS有Vxworks、pSOS、Nucleus、eCos、uC/OS-II等。
GUI(Graphic User Interface,圖形用戶接口)系統(tǒng)以圖形的方式實(shí)現(xiàn)人機(jī)交互,調(diào)度機(jī)制是GUI系統(tǒng)的核心,管理GUI系統(tǒng)的驅(qū)動(dòng)和各個(gè)應(yīng)用程序,實(shí)現(xiàn)各個(gè)應(yīng)用程序?qū)PU資源的共享使用。高性能的GUI調(diào)度機(jī)制不僅占用很少的CPU資源,而且能夠快速響應(yīng)用戶請求。
上述GUI調(diào)度機(jī)制不是指操作系統(tǒng)內(nèi)核層面的任務(wù)調(diào)度,而是指具有界面顯示的各個(gè)應(yīng)用程序之間的調(diào)度機(jī)制。例如,開機(jī)便進(jìn)入待機(jī)模塊,摘機(jī)就進(jìn)入撥號(hào)模塊,不摘機(jī)按功能鍵就進(jìn)入功能菜單模塊,從功能菜單中選擇照相機(jī)從而進(jìn)入拍照模塊,此時(shí)如果有來電,則進(jìn)入語音通話模塊,在通話完畢掛機(jī)后又返回拍照模塊。
當(dāng)前典型的GUI系統(tǒng)為Windows操作系統(tǒng)的GUI,在嵌入式系統(tǒng)中比較常見的GUI系統(tǒng)為Qtopia和MiniGUI。下面分別介紹上述三個(gè)GUI系統(tǒng)。
1.Windows CE(Control System,控制系統(tǒng))。
Windows CE是嵌入式操作系統(tǒng),提供完整的GUI界面和調(diào)度系統(tǒng),與PC版的Windows在界面上幾乎完全一致。
2.MiniGUI。
MiniGUI是針對嵌入式設(shè)備的、跨操作系統(tǒng)的圖形界面支持系統(tǒng),屬于一種“嵌入式圖形中間件”軟件產(chǎn)品。在近八年的發(fā)展歷程中,MiniGUI已經(jīng)從一個(gè)僅僅是為了在Linux顯示中文而開發(fā)的小技術(shù),發(fā)展成為一個(gè)跨操作系統(tǒng)的、完善的嵌入式圖形用戶界面支持系統(tǒng)。MiniGUI最理想的平臺(tái)是Linux操作系統(tǒng),也可以支持uCOSII等RTOS。
3.Qtopia。
Qtopia由Qt/Embedded發(fā)展而來,是面向嵌入式系統(tǒng)的Qt版本。因?yàn)镼t是KDE等項(xiàng)目使用的GUI支持庫,因此有許多基于Qt的X Window程序可以非常方便地移植到Qtopia版本上。Qtopia是一個(gè)C++函數(shù)庫,它提供的控件集風(fēng)格沿用了PC風(fēng)格。
上述現(xiàn)有技術(shù)中的GUI系統(tǒng)的缺點(diǎn)為上述GUI系統(tǒng)的調(diào)度完全使用內(nèi)核提供的線程調(diào)度,每個(gè)應(yīng)用程序不管是否需要界面顯示都有獨(dú)立的線程來接收操作系統(tǒng)的調(diào)度?;诘讓訌?qiáng)大的操作系統(tǒng)做支撐,各個(gè)應(yīng)用程序的設(shè)計(jì)雖然具有極大的靈活性,但是,各個(gè)應(yīng)用程序?qū)Φ讓硬僮飨到y(tǒng)的依賴太重,通常需要平臺(tái)化的操作系統(tǒng)的支持,比如Windows或者Linux操作系統(tǒng)。
上述GUI系統(tǒng)的資源開銷巨大,不能適應(yīng)功能明確的小型嵌入式系統(tǒng)的應(yīng)用需求,一般不支持RTOS作為底層的操作系統(tǒng)。另外,對于嵌入式應(yīng)用也不需要復(fù)雜的GUI系統(tǒng),過于復(fù)雜的GUI事實(shí)上會(huì)降低用戶操作的簡便性。
上述GUI系統(tǒng)的各個(gè)應(yīng)用程序之間是一種松散關(guān)系,導(dǎo)致需要實(shí)現(xiàn)多個(gè)應(yīng)用程序時(shí)可能會(huì)出現(xiàn)如下的兩個(gè)問題1、如果將要實(shí)現(xiàn)的多個(gè)應(yīng)用程序作為不同的應(yīng)用程序功能模塊,則要求這些應(yīng)用程序功能模塊之間不要有太多的相互聯(lián)系。一旦這些應(yīng)用程序功能模塊之間有復(fù)雜的聯(lián)系,這些應(yīng)用程序功能模塊對系統(tǒng)的資源和設(shè)備(比如Camera、內(nèi)存)的需求必然會(huì)產(chǎn)生沖突,實(shí)現(xiàn)起來很難維護(hù);2、如果將要實(shí)現(xiàn)的多個(gè)應(yīng)用程序作為一個(gè)單獨(dú)應(yīng)用程序功能模塊,則會(huì)給多個(gè)程序員的協(xié)同開發(fā)帶來巨大的維護(hù)難度,將會(huì)導(dǎo)致多個(gè)程序員去開發(fā)同一個(gè)模塊或者一個(gè)程序員完成一個(gè)規(guī)模宏大的模塊。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種多任務(wù)調(diào)度系統(tǒng)和方法,從而可以實(shí)現(xiàn)具有設(shè)計(jì)簡單、占用系統(tǒng)資源小和用戶使用方便等特點(diǎn)的用戶交互系統(tǒng)。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的一種多任務(wù)調(diào)度系統(tǒng),包括用戶界面UI管理模塊和應(yīng)用程序模塊,UI管理模塊和應(yīng)用程序模塊運(yùn)行于同一個(gè)線程,在該獨(dú)立線程中管理應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,控制所述的多個(gè)應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài);應(yīng)用程序模塊和UI管理模塊運(yùn)行于同一個(gè)線程,包括多個(gè)分別實(shí)現(xiàn)不同任務(wù)功能的應(yīng)用程序。
所述多任務(wù)調(diào)度系統(tǒng)還包括資源庫包括供應(yīng)用程序模塊中各個(gè)應(yīng)用程序使用的圖片資源和/或文字資源。
所述多任務(wù)調(diào)度系統(tǒng)還包括輸入法驅(qū)動(dòng)模塊對在UI管理模塊、應(yīng)用程序模塊、資源庫中進(jìn)行文字輸入的輸入法進(jìn)行驅(qū)動(dòng)。
所述UI管理模塊具體包括消息管理模塊按照統(tǒng)一的唯一化的方式調(diào)用應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,和各個(gè)應(yīng)用程序進(jìn)行消息交互;將需要下發(fā)的消息發(fā)送給正在運(yùn)行的應(yīng)用程序,對應(yīng)用程序沒有處理的消息進(jìn)行默認(rèn)處理;和/或,應(yīng)用程序維護(hù)模塊在應(yīng)用程序模塊中創(chuàng)建和刪除應(yīng)用程序,在任何時(shí)刻控制多任務(wù)調(diào)度系統(tǒng)中最多只能有一個(gè)正在運(yùn)行的應(yīng)用程序。
所述消息管理模塊按照具有相同參數(shù)結(jié)構(gòu)的函數(shù)的指針調(diào)用所述各個(gè)應(yīng)用程序,和所述各個(gè)應(yīng)用程序交互具有統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)的消息。
所述UI管理模塊還包括線程管理模塊在多任務(wù)調(diào)度系統(tǒng)中創(chuàng)建并管理一個(gè)獨(dú)立線程。
所述UI管理模塊還包括應(yīng)用程序中斷模塊將正在運(yùn)行的應(yīng)用程序中斷,將中斷的應(yīng)用程序的所有相關(guān)上下文信息發(fā)送給程序堆棧,程序堆棧將該相關(guān)上下文信息進(jìn)行保存;應(yīng)用程序恢復(fù)模塊當(dāng)正在運(yùn)行的應(yīng)用程序退出后,將最后保存在程序堆棧中的應(yīng)用程序釋放出來,將釋放出來的應(yīng)用程序恢復(fù)為運(yùn)行狀態(tài)。
所述應(yīng)用程序模塊還包括線程維護(hù)模塊在正在運(yùn)行的應(yīng)用程序中創(chuàng)建并維護(hù)和所述UI管理模塊和應(yīng)用程序模塊共同使用的線程不同的另一個(gè)線程,該另一個(gè)線程不能控制多任務(wù)調(diào)度系統(tǒng)的顯示輸出,當(dāng)該正在運(yùn)行的應(yīng)用程序退出后,釋放所述創(chuàng)建的另一個(gè)線程。
所述多任務(wù)調(diào)度系統(tǒng)包括基于實(shí)時(shí)操作系統(tǒng)RTOS的用戶交互系統(tǒng)。
所述用戶交互系統(tǒng)包括圖形用戶接口GUI系統(tǒng)。
一種多任務(wù)調(diào)度的方法,包括應(yīng)用程序的管理模塊控制多個(gè)分別實(shí)現(xiàn)不同任務(wù)功能的應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài),并且處于運(yùn)行狀態(tài)的應(yīng)用程序運(yùn)行在同一個(gè)線程中。
所述方法還包括應(yīng)用程序的管理模塊按照統(tǒng)一的唯一化的方式調(diào)用應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,和各個(gè)應(yīng)用程序進(jìn)行消息交互;將需要下發(fā)的消息發(fā)送給正在運(yùn)行的應(yīng)用程序,對應(yīng)用程序沒有處理的消息進(jìn)行默認(rèn)處理。
所述管理模塊按照具有相同參數(shù)結(jié)構(gòu)的函數(shù)的指針調(diào)用所述各個(gè)應(yīng)用程序,和所述各個(gè)應(yīng)用程序交互具有統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)的消息。
所述方法還包括所述管理模塊將正在運(yùn)行的應(yīng)用程序中斷,將中斷的應(yīng)用程序的所有相關(guān)上下文信息發(fā)送給程序堆棧,程序堆棧將該相關(guān)上下文信息進(jìn)行保存;當(dāng)其它正在運(yùn)行的應(yīng)用程序退出后,所述管理模塊將最后保存在程序堆棧中的應(yīng)用程序釋放出來,將釋放出來的應(yīng)用程序恢復(fù)為運(yùn)行狀態(tài)。
所述方法還包括在正在運(yùn)行的應(yīng)用程序中創(chuàng)建并維護(hù)和所述UI管理模塊和應(yīng)用程序模塊共同使用的線程不同的另一個(gè)線程,該另一個(gè)線程不能控制多任務(wù)調(diào)度系統(tǒng)的顯示輸出,當(dāng)該正在運(yùn)行的應(yīng)用程序退出后,釋放所述創(chuàng)建的另一個(gè)線程。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明通過在整個(gè)多任務(wù)調(diào)度系統(tǒng)中運(yùn)行一個(gè)獨(dú)立線程,在這個(gè)獨(dú)立線程中按統(tǒng)一的唯一化方式調(diào)用各個(gè)應(yīng)用程序模塊。從而可以基于簡單的RTOS上實(shí)現(xiàn)比較完善的圖形化的用戶交互系統(tǒng)。
按照本發(fā)明實(shí)現(xiàn)的GUI系統(tǒng)具有設(shè)計(jì)簡單、占用系統(tǒng)資源小和用戶使用方便等特點(diǎn)。并且在開發(fā)該GUI系統(tǒng)時(shí),可以讓多個(gè)程序員同時(shí)完成不同的功能模塊,各個(gè)程序員在開發(fā)時(shí)不用考慮太多的相互關(guān)系,同時(shí)能夠?qū)⒏鱾€(gè)應(yīng)用程序模塊以一定的順序組織起來,保證各系統(tǒng)功能按一定的層次順序?qū)崿F(xiàn)。
圖1為本發(fā)明所述多任務(wù)調(diào)度系統(tǒng)的實(shí)施例的結(jié)構(gòu)示意圖;圖2為本發(fā)明所述多任務(wù)調(diào)度系統(tǒng)的實(shí)施例中的UI管理模塊的結(jié)構(gòu)示意圖;圖3為本發(fā)明所述應(yīng)用程序模塊的具體實(shí)現(xiàn)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提供了一種多任務(wù)調(diào)度系統(tǒng)和方法,本發(fā)明的核心為在整個(gè)多任務(wù)調(diào)度系統(tǒng)中運(yùn)行一個(gè)線程,在多個(gè)分別實(shí)現(xiàn)不同任務(wù)功能的應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài)。
下面結(jié)合附圖來詳細(xì)描述本發(fā)明,本方法所述多任務(wù)調(diào)度系統(tǒng)適用于基于RTOS的用戶交互系統(tǒng),比如GUI系統(tǒng)。以GUI系統(tǒng)為例,本發(fā)明所述多任務(wù)調(diào)度系統(tǒng)的實(shí)施例的結(jié)構(gòu)如圖1所示,包括如下模塊UI(User Interface,用戶界面)管理模塊、應(yīng)用程序模塊、輸入法驅(qū)動(dòng)和資源庫。各個(gè)模塊的功能如下UI(User Interface,用戶界面)管理模塊UI管理模塊的結(jié)構(gòu)如圖2所示。按照統(tǒng)一的唯一化的方式調(diào)用應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,和各個(gè)應(yīng)用程序進(jìn)行消息交互,管理應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,控制所述的多個(gè)應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài)。創(chuàng)建并管理GUI系統(tǒng)的線程,和管理的各個(gè)應(yīng)用程序運(yùn)行于同一個(gè)線程,該線程可以為獨(dú)立線程。帶有顯示界面。UI管理模塊包括線程管理模塊、消息管理模塊、應(yīng)用程序創(chuàng)建模塊、應(yīng)用程序中斷模塊和應(yīng)用程序恢復(fù)模塊。
其中,線程管理模塊在GUI系統(tǒng)中創(chuàng)建并管理一個(gè)獨(dú)立線程,通過該獨(dú)立線程來完成GUI系統(tǒng)中所有的應(yīng)用程序。本發(fā)明所述GUI系統(tǒng)使用獨(dú)立線程能保證各個(gè)應(yīng)用程序不會(huì)因?yàn)橥瑫r(shí)請求資源而造成資源沖突,用戶不能同時(shí)執(zhí)行兩個(gè)應(yīng)用程序,但是可以在兩個(gè)應(yīng)用程序之間切換。上述獨(dú)立線程可以為GUI系統(tǒng)中一個(gè)現(xiàn)有的線程。
其中,消息管理模塊通過使用單一的隊(duì)列化的消息調(diào)用接口,調(diào)用應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,和各個(gè)應(yīng)用程序進(jìn)行消息交互。整個(gè)GUI系統(tǒng)的各種事件(包括用戶按鍵、外部中斷的處理結(jié)果或者命令、各種任務(wù)的控制命令)都轉(zhuǎn)化為消息。
消息管理模塊處理的所有消息都具有統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包括消息ID和消息參數(shù),通過消息ID可以識(shí)別消息,消息參數(shù)包括消息相關(guān)的各種信息,如果消息相關(guān)的各種信息不能使用一個(gè)簡單的值來表達(dá),該消息參數(shù)就是一個(gè)指針,指向具體的消息數(shù)據(jù)結(jié)構(gòu)。
消息管理模塊首先將需要下發(fā)的消息發(fā)送給當(dāng)前運(yùn)行的應(yīng)用程序,該當(dāng)前運(yùn)行的應(yīng)用程序?qū)邮盏降南⑷绻惶幚?,則向消息管理模塊返回特定值,消息管理模塊對該消息做默認(rèn)處理。比如全局性的摘掛機(jī)消息通常都是由UI管理模塊中的消息管理模塊來默認(rèn)處理的。
本發(fā)明所述GUI系統(tǒng)與其他模塊的輸入接口是唯一的。由于GUI系統(tǒng)的所有消息的結(jié)構(gòu)是統(tǒng)一的,UI管理模塊和各個(gè)應(yīng)用程序的接口也是唯一的。每個(gè)應(yīng)用程序都使用具有相同參數(shù)結(jié)構(gòu)的一個(gè)函數(shù)作為被調(diào)用的接口,消息管理模塊只需要存儲(chǔ)當(dāng)前正在運(yùn)行的應(yīng)用程序的該函數(shù)的指針,通過指針調(diào)用該函數(shù),向當(dāng)前正在運(yùn)行的應(yīng)用程序發(fā)送消息。
其中,應(yīng)用程序維護(hù)模塊根據(jù)接收到的消息在GUI系統(tǒng)中創(chuàng)建新的應(yīng)用程序。在任何時(shí)刻維持GUI系統(tǒng)中最多只能有一個(gè)正在運(yùn)行的應(yīng)用程序。上述消息可以為現(xiàn)有的應(yīng)用程序發(fā)給UI管理模塊的特定消息,比如,某個(gè)應(yīng)用程序?yàn)榱舜蜷_其層次樹的下級應(yīng)用程序而發(fā)出的特定消息。上述消息還可以為為了完成某項(xiàng)任務(wù)的系統(tǒng)消息。
應(yīng)用程序維護(hù)模塊還可以根據(jù)需要?jiǎng)h除GUI系統(tǒng)中的應(yīng)用程序。
其中,應(yīng)用程序中斷模塊根據(jù)接收到的某個(gè)應(yīng)用程序發(fā)送的消息或系統(tǒng)消息將正在運(yùn)行的應(yīng)用程序中斷,釋放相關(guān)的可能產(chǎn)生沖突的資源,向程序堆棧發(fā)送一個(gè)Push消息通知程序堆棧保存相關(guān)上下文信息,將中斷的應(yīng)用程序的所有相關(guān)上下文信息發(fā)送給程序堆棧,程序堆棧將該相關(guān)上下文信息進(jìn)行保存。然后,應(yīng)用程序中斷模塊將函數(shù)調(diào)用指針指向新的正在運(yùn)行的應(yīng)用程序。
其中,應(yīng)用程序恢復(fù)模塊當(dāng)正在運(yùn)行的應(yīng)用程序退出后,將最后保存在程序堆棧中的應(yīng)用程序釋放出來,將函數(shù)調(diào)用指針指向釋放出來的應(yīng)用程序,將釋放出來的應(yīng)用程序恢復(fù)為正在運(yùn)行狀態(tài),向該應(yīng)用程序發(fā)送一條POP消息,通知它恢復(fù)由其自己維護(hù)的各種資源。堆棧結(jié)構(gòu)一個(gè)重要特點(diǎn)就是后進(jìn)先出,即最后保存的內(nèi)容最先被取出來。利用這種機(jī)制就能保證應(yīng)用程序的菜單式逐層回推。
應(yīng)用程序模塊包括多個(gè)分別實(shí)現(xiàn)不同任務(wù)功能的應(yīng)用程序,各個(gè)應(yīng)用程序都使用具有相同參數(shù)結(jié)構(gòu)的一個(gè)函數(shù)作為被調(diào)用的接口。UI管理模塊通過調(diào)用該正在運(yùn)行的應(yīng)用程序的接口函數(shù)來實(shí)現(xiàn)對應(yīng)的任務(wù)功能。當(dāng)該正在運(yùn)行的應(yīng)用程序的相關(guān)任務(wù)已經(jīng)完成,退出并釋放了其所有占用的資源,然后,將該應(yīng)用程序動(dòng)態(tài)申請的內(nèi)存也全部釋放。如圖3所示,應(yīng)用程序模塊中包括線程維護(hù)模塊。
線程維護(hù)模塊如果運(yùn)行中的應(yīng)用程序由于某種功能的要求,需要另開一個(gè)線程來執(zhí)行某項(xiàng)工作時(shí)(如完成復(fù)雜壓縮或者解碼工作),則由該運(yùn)行中的應(yīng)用程序通過線程維護(hù)模塊創(chuàng)建并維護(hù)另一個(gè)線程,并且這個(gè)線程必須不能控制顯示輸出。如果由于某種原因(比如來電振鈴)中斷或者結(jié)束該運(yùn)行中的應(yīng)用程序,則在新的應(yīng)用程序模塊運(yùn)行前,需要釋放上述創(chuàng)建的另一個(gè)線程。線程維護(hù)模塊的實(shí)現(xiàn)可以直接使用RTOS提供的API。
各個(gè)應(yīng)用程序都帶有顯示界面,可以通過向UI管理模塊發(fā)送消息來通知UI管理模塊中斷正在運(yùn)行的應(yīng)用程序,或者,創(chuàng)建新的應(yīng)用程序。
輸入法驅(qū)動(dòng)位于GUI系統(tǒng)中的底部,用于對在GUI系統(tǒng)中進(jìn)行文字輸入的輸入法進(jìn)行驅(qū)動(dòng)。
資源庫包括供各個(gè)應(yīng)用程序使用的圖片資源和文字資源。
在GUI系統(tǒng)的底層是硬件層,設(shè)置有用于輸入用戶控制的鍵盤和用于顯示的LCD(液晶顯示器)屏,在硬件層之上是鍵盤驅(qū)動(dòng)、LCD驅(qū)動(dòng)和顯示驅(qū)動(dòng)。
以上述GUI系統(tǒng)為例,本發(fā)明所述多任務(wù)調(diào)度的方法主要包括UI管理模塊控制多個(gè)分別實(shí)現(xiàn)不同任務(wù)功能的應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài),并且處于運(yùn)行狀態(tài)的應(yīng)用程序運(yùn)行在同一個(gè)線程中,該線程可以為獨(dú)立線程。
所述方法還包括UI管理模塊按照統(tǒng)一的唯一化的方式調(diào)用應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,和各個(gè)應(yīng)用程序進(jìn)行消息交互;將需要下發(fā)的消息發(fā)送給正在運(yùn)行的應(yīng)用程序,對應(yīng)用程序沒有處理的消息進(jìn)行默認(rèn)處理。
上述統(tǒng)一的唯一化的方式調(diào)用方式可以為UI管理模塊按照具有相同參數(shù)結(jié)構(gòu)的函數(shù)的指針調(diào)用所述各個(gè)應(yīng)用程序,和所述各個(gè)應(yīng)用程序交互具有統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)的消息。
所述方法還包括UI管理模塊根據(jù)需要將正在運(yùn)行的應(yīng)用程序中斷,將中斷的應(yīng)用程序的所有相關(guān)上下文信息發(fā)送給程序堆棧,程序堆棧將該相關(guān)上下文信息進(jìn)行保存;當(dāng)其它正在運(yùn)行的應(yīng)用程序退出后,所述管理模塊將最后保存在程序堆棧中的應(yīng)用程序釋放出來,將釋放出來的應(yīng)用程序恢復(fù)為運(yùn)行狀態(tài)。
在正在運(yùn)行的應(yīng)用程序中創(chuàng)建并維護(hù)和所述獨(dú)立線程不同的另一個(gè)線程,該另一個(gè)線程不能控制多任務(wù)調(diào)度系統(tǒng)的顯示輸出,當(dāng)該正在運(yùn)行的應(yīng)用程序退出后,釋放所述創(chuàng)建的另一個(gè)線程。
以上所述,僅為本發(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.一種多任務(wù)調(diào)度系統(tǒng),其特征在于,包括用戶界面UI管理模塊和應(yīng)用程序模塊,UI管理模塊和應(yīng)用程序模塊運(yùn)行于同一個(gè)線程,在該獨(dú)立線程中管理應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,控制所述的多個(gè)應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài);應(yīng)用程序模塊和UI管理模塊運(yùn)行于同一個(gè)線程,包括多個(gè)分別實(shí)現(xiàn)不同任務(wù)功能的應(yīng)用程序。
2.根據(jù)權(quán)利要求1所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述多任務(wù)調(diào)度系統(tǒng)還包括資源庫包括供應(yīng)用程序模塊中各個(gè)應(yīng)用程序使用的圖片資源和/或文字資源。
3.根據(jù)權(quán)利要求2所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述多任務(wù)調(diào)度系統(tǒng)還包括輸入法驅(qū)動(dòng)模塊對在UI管理模塊、應(yīng)用程序模塊、資源庫中進(jìn)行文字輸入的輸入法進(jìn)行驅(qū)動(dòng)。
4.根據(jù)權(quán)利要求1所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述UI管理模塊具體包括消息管理模塊按照統(tǒng)一的唯一化的方式調(diào)用應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,和各個(gè)應(yīng)用程序進(jìn)行消息交互;將需要下發(fā)的消息發(fā)送給正在運(yùn)行的應(yīng)用程序,對應(yīng)用程序沒有處理的消息進(jìn)行默認(rèn)處理;和/或,應(yīng)用程序維護(hù)模塊在應(yīng)用程序模塊中創(chuàng)建和刪除應(yīng)用程序,在任何時(shí)刻控制多任務(wù)調(diào)度系統(tǒng)中最多只能有一個(gè)正在運(yùn)行的應(yīng)用程序。
5.根據(jù)權(quán)利要求4所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述消息管理模塊按照具有相同參數(shù)結(jié)構(gòu)的函數(shù)的指針調(diào)用所述各個(gè)應(yīng)用程序,和所述各個(gè)應(yīng)用程序交互具有統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)的消息。
6.根據(jù)權(quán)利要求4所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述UI管理模塊還包括線程管理模塊在多任務(wù)調(diào)度系統(tǒng)中創(chuàng)建并管理一個(gè)獨(dú)立線程。
7.根據(jù)權(quán)利要求4所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述UI管理模塊還包括應(yīng)用程序中斷模塊將正在運(yùn)行的應(yīng)用程序中斷,將中斷的應(yīng)用程序的所有相關(guān)上下文信息發(fā)送給程序堆棧,程序堆棧將該相關(guān)上下文信息進(jìn)行保存;應(yīng)用程序恢復(fù)模塊當(dāng)正在運(yùn)行的應(yīng)用程序退出后,將最后保存在程序堆棧中的應(yīng)用程序釋放出來,將釋放出來的應(yīng)用程序恢復(fù)為運(yùn)行狀態(tài)。
8.根據(jù)權(quán)利要求1至7所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述應(yīng)用程序模塊還包括線程維護(hù)模塊在正在運(yùn)行的應(yīng)用程序中創(chuàng)建并維護(hù)和所述UI管理模塊和應(yīng)用程序模塊共同使用的線程不同的另一個(gè)線程,該另一個(gè)線程不能控制多任務(wù)調(diào)度系統(tǒng)的顯示輸出,當(dāng)該正在運(yùn)行的應(yīng)用程序退出后,釋放所述創(chuàng)建的另一個(gè)線程。
9.根據(jù)權(quán)利要求1所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述多任務(wù)調(diào)度系統(tǒng)包括基于實(shí)時(shí)操作系統(tǒng)RTOS的用戶交互系統(tǒng)。
10.根據(jù)權(quán)利要求9所述的多任務(wù)調(diào)度系統(tǒng),其特征在于,所述用戶交互系統(tǒng)包括圖形用戶接口GUI系統(tǒng)。
11.一種多任務(wù)調(diào)度的方法,其特征在于,包括應(yīng)用程序的管理模塊控制多個(gè)分別實(shí)現(xiàn)不同任務(wù)功能的應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài),并且處于運(yùn)行狀態(tài)的應(yīng)用程序運(yùn)行在同一個(gè)線程中。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述方法還包括應(yīng)用程序的管理模塊按照統(tǒng)一的唯一化的方式調(diào)用應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,和各個(gè)應(yīng)用程序進(jìn)行消息交互;將需要下發(fā)的消息發(fā)送給正在運(yùn)行的應(yīng)用程序,對應(yīng)用程序沒有處理的消息進(jìn)行默認(rèn)處理。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述管理模塊按照具有相同參數(shù)結(jié)構(gòu)的函數(shù)的指針調(diào)用所述各個(gè)應(yīng)用程序,和所述各個(gè)應(yīng)用程序交互具有統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)的消息。
14.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述方法還包括所述管理模塊將正在運(yùn)行的應(yīng)用程序中斷,將中斷的應(yīng)用程序的所有相關(guān)上下文信息發(fā)送給程序堆棧,程序堆棧將該相關(guān)上下文信息進(jìn)行保存;當(dāng)其它正在運(yùn)行的應(yīng)用程序退出后,所述管理模塊將最后保存在程序堆棧中的應(yīng)用程序釋放出來,將釋放出來的應(yīng)用程序恢復(fù)為運(yùn)行狀態(tài)。
15.根據(jù)權(quán)利要求11至14任一項(xiàng)所述的方法,其特征在于,所述方法還包括在正在運(yùn)行的應(yīng)用程序中創(chuàng)建并維護(hù)和所述UI管理模塊和應(yīng)用程序模塊共同使用的線程不同的另一個(gè)線程,該另一個(gè)線程不能控制多任務(wù)調(diào)度系統(tǒng)的顯示輸出,當(dāng)該正在運(yùn)行的應(yīng)用程序退出后,釋放所述創(chuàng)建的另一個(gè)線程。
全文摘要
本發(fā)明提供了一種多任務(wù)調(diào)度系統(tǒng)和方法,該多任務(wù)調(diào)度系統(tǒng)主要包括UI(用戶界面)管理模塊和應(yīng)用程序模塊。這些模塊運(yùn)行于同一個(gè)線程。UI管理模塊控制應(yīng)用程序模塊中的各個(gè)應(yīng)用程序,在任意時(shí)刻多個(gè)應(yīng)用程序中最多只能有一個(gè)處于運(yùn)行狀態(tài);利用本發(fā)明所述多任務(wù)調(diào)度系統(tǒng)和方法,可以實(shí)現(xiàn)具有設(shè)計(jì)簡單、占用系統(tǒng)資源小和用戶使用方便等特點(diǎn)的用戶交互系統(tǒng)。
文檔編號(hào)G06F9/46GK1928826SQ200610089088
公開日2007年3月14日 申請日期2006年8月2日 優(yōu)先權(quán)日2006年8月2日
發(fā)明者許操, 楊武軍, 王義鋒, 賀曉華, 龐潼川, 翟秀梅 申請人:愛普拉斯通信技術(shù)(北京)有限公司