欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

嵌入式sram操作系統(tǒng)線程實現(xiàn)和線程狀態(tài)轉(zhuǎn)換的方法

文檔序號:6556491閱讀:202來源:國知局
專利名稱:嵌入式sram操作系統(tǒng)線程實現(xiàn)和線程狀態(tài)轉(zhuǎn)換的方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式操作系統(tǒng)中線程的實現(xiàn)和線程狀態(tài)切換的技術(shù)領(lǐng)域,尤其是涉及到一種嵌入式SRAM操作系統(tǒng)線程實現(xiàn)和線程狀態(tài)轉(zhuǎn)換的方法。
背景技術(shù)
在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程是系統(tǒng)進(jìn)行資源分配的單位,諸如按進(jìn)程分給存放其映象的虛地址空間、執(zhí)行需要的主存空間、完成任務(wù)需要的其他各類資源,I/O CH、I/O DV和文件。同時,進(jìn)程也是處理器調(diào)度的獨(dú)立單位,進(jìn)程在任一時刻只有一個執(zhí)行控制流,我們將這種結(jié)構(gòu)的進(jìn)程稱單線程進(jìn)程(SingleThreaded Process)。這種單線程結(jié)構(gòu)的進(jìn)程已不能適應(yīng)當(dāng)今計算機(jī)技術(shù)的迅猛發(fā)展。
早期的計算機(jī)系統(tǒng)是基于單個處理器(CPU)的順序處理的機(jī)器,程序員編寫串行執(zhí)行的代碼,讓其在CPU上串行執(zhí)行,甚至每一條指令的執(zhí)行也是串行的(取指令、取操作數(shù)、執(zhí)行操作、存儲結(jié)果)。
為提高計算機(jī)處理的速度,首先發(fā)展起來的是聯(lián)想存儲器系統(tǒng)和流水線系統(tǒng),前者提出了數(shù)據(jù)驅(qū)動的思想,后者解決了指令串行執(zhí)行的問題,這兩者都是最初計算機(jī)并行化發(fā)展的例子。隨著硬件技術(shù)的進(jìn)步,并行處理技術(shù)得到了迅猛的發(fā)展,計算機(jī)系統(tǒng)不再局限于單處理器和單數(shù)據(jù)流,各種各樣的并行結(jié)構(gòu)得到了應(yīng)用。目前計算機(jī)系統(tǒng)可以分作以下四類·單指令流單數(shù)據(jù)流(SISD)一個處理器在一個存儲器中的數(shù)據(jù)上執(zhí)行單條指令流。
·單指令流多數(shù)據(jù)流(SIMD)單條指令流控制多個處理單元同時執(zhí)行,每個處理單元包括處理器和相關(guān)的數(shù)據(jù)存儲,一條指令事實上控制了不同的處理器對不同的數(shù)據(jù)進(jìn)行了操作。向量機(jī)和陣列機(jī)是這類計算機(jī)系統(tǒng)的代表。
·多指令流單數(shù)據(jù)流(MISD)一個數(shù)據(jù)流被傳送給一組處理器,通過這一組處理器上的不同指令操作最終得到處理結(jié)果。該類計算機(jī)系統(tǒng)的研究尚在實驗室階段。
·多指令流多數(shù)據(jù)流(MIMD)多個處理器對各自不同的數(shù)據(jù)集同時執(zhí)行不同的指令流。
可以把MIMD系統(tǒng)劃分為共享內(nèi)存的緊密耦合MIMD系統(tǒng)和內(nèi)存分布的松散耦合MIMD系統(tǒng)兩大類。在松散耦合MIMD系統(tǒng)中,每個處理單元都有一個獨(dú)立的內(nèi)存儲器,各個處理單元之間通過設(shè)定的線路或網(wǎng)絡(luò)通信,多計算機(jī)系統(tǒng)或cluster系統(tǒng)都是松散耦合MIMD系統(tǒng)的例子。
根據(jù)處理器分配策略,緊密耦合MIMD系統(tǒng)可以分為主從式系統(tǒng)(main/slavemultiprocessor)和對稱式系統(tǒng)(symmetric multiprocessor,簡稱SMP)兩類。
主從式系統(tǒng)的基本思想是在一個特別的處理器上運(yùn)行操作系統(tǒng)內(nèi)核,其他處理器上則運(yùn)行用戶程序和操作系統(tǒng)例行程序,內(nèi)核負(fù)責(zé)分配和調(diào)度各個處理器,并向其它程序提供各種服務(wù)(如輸入輸出)。這種方式實現(xiàn)簡單,但是主處理器的崩潰會導(dǎo)致整個系統(tǒng)的崩潰,并且極可能在主處理器形成性能瓶頸。
在對稱式多處理器系統(tǒng)(SMP)中,操作系統(tǒng)內(nèi)核可以運(yùn)行在任意一個處理器上,每個處理器都可以自我調(diào)度運(yùn)行的進(jìn)程和線程,并且操作系統(tǒng)內(nèi)核也被設(shè)計成多進(jìn)程或多線程,內(nèi)核的各個部分可以并行執(zhí)行。
目前cluster和SMP得到了廣泛的應(yīng)用,成為并行處理技術(shù)的熱點(diǎn)。值得注意的是,單線程結(jié)構(gòu)進(jìn)程從管理、通信和并發(fā)粒度多個方面都很難滿足并行處理的要求。
近二十年以來,計算機(jī)網(wǎng)絡(luò)技術(shù)得到了迅猛的發(fā)展,這里不考慮網(wǎng)絡(luò)基礎(chǔ)通信設(shè)施的進(jìn)展,單從網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)的角度來考慮,單線程結(jié)構(gòu)進(jìn)程就難以滿足要求。
分布式操作系統(tǒng)是一個無主從的、透明的資源管理系統(tǒng),也是一個松散耦合的MIMD系統(tǒng)。從資源管理看,每一類資源的管理都有可能分布在各個獨(dú)立的節(jié)點(diǎn)上,需要廣泛的協(xié)同和頻繁的通信,從分布并行看,要求操作系統(tǒng)合理使用網(wǎng)絡(luò)上的可計算資源,更好地發(fā)揮多處理器的能力,把許多任務(wù)或同一任務(wù)的不同子任務(wù)分配到網(wǎng)絡(luò)不同結(jié)點(diǎn)的處理器上去同時運(yùn)行,所有這一些都需要改良單線程結(jié)構(gòu)進(jìn)程,提高各個協(xié)作子任務(wù)之間的協(xié)作、切換和通信效率。
客戶/服務(wù)器計算是九十年代網(wǎng)絡(luò)計算的最大熱點(diǎn),對于基于服務(wù)器的客戶/服務(wù)器計算(如SQL服務(wù)器),要求采用更加高效的并行或并發(fā)解決方案來提高服務(wù)器處理效率;對于基于客戶的客戶/服務(wù)器計算(如頁服務(wù)器),雖然服務(wù)器的瓶頸效應(yīng)大大改善,但服務(wù)器一方除了頁面讀寫外還需要進(jìn)行鎖管理和鎖協(xié)商,客戶一方則面臨著如何快速解決計算邏輯問題,另外還要考慮鎖協(xié)商和頁回調(diào),這些也要求一種更加實用和有效的并行或并發(fā)解決方案;類似的問題同樣存在與協(xié)作式的客戶/服務(wù)器計算和基于中間件的客戶/服務(wù)器計算中。
從軟件技術(shù)的發(fā)展來看,系統(tǒng)軟件和應(yīng)用軟件均有了很大的進(jìn)展,要求人們設(shè)計出多事件并行處理的軟件系統(tǒng),如操作系統(tǒng)中的并行文件操作,數(shù)據(jù)庫中的多用戶事務(wù)處理,窗口子系統(tǒng)中的多個相關(guān)子窗口操作,實時系統(tǒng)中多個外部事件的同時響應(yīng),網(wǎng)絡(luò)中多個客戶共享網(wǎng)絡(luò)服務(wù)器任務(wù)等等。這些多事件并行處理的軟件系統(tǒng)當(dāng)然要求提高并行或并發(fā)處理的效率,而單線程結(jié)構(gòu)進(jìn)程對此是無能為力的。
在傳統(tǒng)的操作系統(tǒng)中,往往采用多進(jìn)程并發(fā)程序設(shè)計來解決并行技術(shù)、網(wǎng)絡(luò)技術(shù)和軟件技術(shù)發(fā)展帶來的要求,即創(chuàng)建并執(zhí)行多個進(jìn)程,按一定策略來調(diào)度和執(zhí)行各個進(jìn)程,以最大限度地利用計算機(jī)系統(tǒng)中的各種各樣的資源。這一方式當(dāng)然是可行的,但關(guān)鍵在于并行和并發(fā)的效率問題,采用這一方式來實現(xiàn)復(fù)雜的并發(fā)系統(tǒng)時,會出現(xiàn)以下的缺點(diǎn)·進(jìn)程切換的開銷大,頻繁的進(jìn)程調(diào)度將耗費(fèi)大量時間。
·進(jìn)程之間通信的代價大,每次通信均要涉及通信進(jìn)程之間以及通信進(jìn)程與操作系統(tǒng)之間的切換。
·進(jìn)程之間的并發(fā)性粒度較粗,并發(fā)度不高,過多的進(jìn)程切換和通信使得細(xì)粒度的并發(fā)得不償失。
·不適合并行計算和分布并行計算的要求。對于多處理器和分布式的計算環(huán)境來說,進(jìn)程之間大量頻繁的通信和切換過程,會大大降低并行度。
·不適合客戶/服務(wù)器計算的要求。對于C/S結(jié)構(gòu)來說,那些需要頻繁輸入輸出并同時大量計算的服務(wù)器進(jìn)程很難體現(xiàn)效率。
尤其是在嵌入式SRAM操作系統(tǒng)中,相對于SDRAM,SRAM空間有限,需要操作系統(tǒng)改進(jìn)進(jìn)程結(jié)構(gòu),提供新的機(jī)制,使得很多應(yīng)用能夠按照需求,在同一進(jìn)程中設(shè)計出多條的控制流,多控制流之間可以并行執(zhí)行,切換不需通過進(jìn)程調(diào)度;多控制流之間還可以通過內(nèi)存區(qū)直接通信,降低通信開銷。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式SRAM操作系統(tǒng)線程實現(xiàn)和線程狀態(tài)轉(zhuǎn)換的方法。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下1)線程狀態(tài)定義進(jìn)程由線程構(gòu)成,是進(jìn)程中的一條執(zhí)行路徑,每個進(jìn)程內(nèi)允許包含多個并行執(zhí)行的路徑,這就是多線程。線程是系統(tǒng)進(jìn)行處理器調(diào)度的基本單位,同一個進(jìn)程中的所有線程共享進(jìn)程獲得的主存空間和資源,一個線程具有
●創(chuàng)建態(tài)對應(yīng)于線程剛剛被創(chuàng)建和進(jìn)入到SRAM中的狀態(tài);●運(yùn)行態(tài)線程占有處理器正在運(yùn)行;●就緒態(tài)線程位于SRAM中,具備運(yùn)行條件,等待系統(tǒng)分配處理器以便運(yùn)行;●阻塞態(tài)線程位于SRAM中,不具備運(yùn)行條件,正在等待某個事件的完成;●就緒換出態(tài)和阻塞換出態(tài)由于SRAM空間不足,線程將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度;●退出態(tài)線程結(jié)束,退出SRAM,以后不再執(zhí)行。
在多線程環(huán)境中,仍然有與進(jìn)程相關(guān)的是進(jìn)程控制塊PCB,Process ControlBlock和用戶地址空間,而每個線程則存在獨(dú)立堆棧,以及包含寄存器信息、優(yōu)先級、其它有關(guān)狀態(tài)信息的線程控制塊。線程之間的關(guān)系較為密切,一個進(jìn)程中的所有線程共享其擁有的狀態(tài)和資源,它們駐留在相同的地址空間,可以存取相同的數(shù)據(jù);2)創(chuàng)建態(tài)當(dāng)一個新進(jìn)程被生成后,該進(jìn)程的一個線程也就被創(chuàng)建。此后,該進(jìn)程中的一個線程可以創(chuàng)建同一進(jìn)程中的其它線程,并為新線程提供指令計數(shù)器和變量,一個新線程還將被分配寄存器上下文和堆??臻g,并將其加入就緒隊列;3)就緒態(tài)線程位于SRAM中,具備運(yùn)行條件,等待系統(tǒng)分配處理器以便運(yùn)行,處于就緒狀態(tài)的線程事實上已被調(diào)度,已經(jīng)被放到某一隊列等待執(zhí)行,處于就緒狀態(tài)的線程何時可真正執(zhí)行,取決于線程優(yōu)先級以及隊列的當(dāng)前狀況,線程的優(yōu)先級如果相同,將遵循“先來先服務(wù)”的調(diào)度原則;線程依據(jù)自身優(yōu)先級進(jìn)入等待對列的相應(yīng)位置,某些系統(tǒng)線程具有最高優(yōu)先級、這些最高優(yōu)先級線程一旦進(jìn)入就緒狀態(tài),將搶占當(dāng)前正在執(zhí)行的線程的處理器資源,當(dāng)前線程只能重新在等待隊列尋找自己的位置。某些具有最高優(yōu)先級的線程執(zhí)行完自己的任務(wù)之后,將調(diào)用sleep()、wait()、suspend()方法,睡眠一段時間,等待被某一事件喚醒。一旦被喚醒,這些線程就又開始搶占處理器資源。這些最高優(yōu)先級線程通常被用來執(zhí)行一些關(guān)鍵性任務(wù),如屏幕顯示;低優(yōu)先級線程需等待更長的時間才能有機(jī)會運(yùn)行,由于系統(tǒng)本身無法中止高優(yōu)先級線程的執(zhí)行,因此用到了優(yōu)先級校高的線程對象,那么最好不時讓這些線程放棄對處理器資源的控制權(quán),以使其他線程能夠有機(jī)會運(yùn)行;4)運(yùn)行態(tài)線程已經(jīng)擁有了對處理器的控制權(quán),其代碼目前正在運(yùn)行.這個線程將一直運(yùn)行直到運(yùn)行完畢,除非運(yùn)行過程的控制權(quán)被一優(yōu)先級更高的線程強(qiáng)占,線程在如下3種情形之下將釋放對處理囂的控制權(quán)●主動或被動地釋放對處理器資源的控制權(quán),該線程必須再次進(jìn)入等待隊列,等待其他優(yōu)先級高或相等線程執(zhí)行完畢●睡眠一段確定的時間,不進(jìn)入等待隊列,這段確定的時間到期后,重新開始運(yùn)行●等持某一事件喚醒自己;5)阻塞態(tài)暫時這個線程將無法進(jìn)入就緒隊列,處于堵塞狀態(tài)的線程通常必須由某些事件才能喚醒.至于是何種事件,則取決于堵塞發(fā)生的原因,處于睡眠中的線程必須被堵塞一段固定的時間;被掛起、或處于消息等待狀態(tài)的線程則必須由一外來事件喚醒;6)就緒換出態(tài)已經(jīng)就緒的線程,由于SRAM空間不足,線程將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度,直到SRAM空間足夠;7)阻塞換出態(tài)已經(jīng)被阻塞的線程,由于SRAM空間不足,將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度,直到阻塞事件已經(jīng)完成,并且SRAM空間足夠;8)退出態(tài)表示線程已退出運(yùn)行狀態(tài),并且不再進(jìn)入就緒隊列,其中原因可能是線程已執(zhí)行完畢且正常結(jié)束,也可能是該線程被另一線程或父進(jìn)程/線程所強(qiáng)行中斷。
本發(fā)明具有的有益效果是(1)并行性。同一進(jìn)程的多個線程可在一個或多個處理器上并發(fā)或并行地運(yùn)行快速線程切換。
(2)共享性。同一個進(jìn)程中的所有線程共享進(jìn)程獲得的主存空間和一切資源。
(3)動態(tài)性。線程也是程序在相應(yīng)數(shù)據(jù)集上的一次執(zhí)行,由創(chuàng)建而產(chǎn)生,至撤銷而消亡,有其生命周期。
(4)經(jīng)濟(jì)性。多線程合用SRAM空間,充分解決了SRAM空間有限的特性,能夠在有限的SRAM空間中,運(yùn)行盡可能多的進(jìn)程/線程。


圖1是本發(fā)明中線程的狀態(tài)切換圖;圖2是線程組成進(jìn)程的示意圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的說明。
一種嵌入式SRAM操作系統(tǒng)進(jìn)程實現(xiàn)和進(jìn)程狀態(tài)轉(zhuǎn)換的方法,其具體實施方法如下1)線程狀態(tài)定義進(jìn)程由線程構(gòu)成,是進(jìn)程中的一條執(zhí)行路徑,每個進(jìn)程內(nèi)允許包含多個并行執(zhí)行的路徑,這就是多線程。線程是系統(tǒng)進(jìn)行處理器調(diào)度的基本單位,同一個進(jìn)程中的所有線程共享進(jìn)程獲得的主存空間和資源,一個線程具有●創(chuàng)建態(tài)對應(yīng)于線程剛剛被創(chuàng)建和進(jìn)入到SRAM中的狀態(tài);●運(yùn)行態(tài)線程占有處理器正在運(yùn)行;●就緒態(tài)線程位于SRAM中,具備運(yùn)行條件,等待系統(tǒng)分配處理器以便運(yùn)行;●阻塞態(tài)線程位于SRAM中,不具備運(yùn)行條件,正在等待某個事件的完成;●就緒換出態(tài)和阻塞換出態(tài)由于SRAM空間不足,線程將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度;●退出態(tài)線程結(jié)束,退出SRAM,以后不再執(zhí)行。
在多線程環(huán)境中,仍然有與進(jìn)程相關(guān)的是進(jìn)程控制塊PCB,Process ControlBlock和用戶地址空間,而每個線程則存在獨(dú)立堆棧,以及包含寄存器信息、優(yōu)先級、其它有關(guān)狀態(tài)信息的線程控制塊。線程之間的關(guān)系較為密切,一個進(jìn)程中的所有線程共享其擁有的狀態(tài)和資源,它們駐留在相同的地址空間,可以存取相同的數(shù)據(jù),如此依賴,一個進(jìn)程的構(gòu)成如圖2所示。
線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個進(jìn)程的其它現(xiàn)成共享進(jìn)程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程,同一進(jìn)程中的多個線程之間可以并發(fā)執(zhí)行。
2)創(chuàng)建態(tài)當(dāng)一個新進(jìn)程被生成后,該進(jìn)程的一個線程也就被創(chuàng)建。此后,該進(jìn)程中的一個線程可以創(chuàng)建同一進(jìn)程中的其它線程,并為新線程提供指令計數(shù)器和變量,一個新線程還將被分配寄存器上下文和堆??臻g,并將其加入就緒隊列。
3)就緒態(tài)線程位于SRAM中,具備運(yùn)行條件,等待系統(tǒng)分配處理器以便運(yùn)行,處于就緒狀態(tài)的線程事實上已被調(diào)度,已經(jīng)被放到某一隊列等待執(zhí)行,處于就緒狀態(tài)的線程何時可真正執(zhí)行,取決于線程優(yōu)先級以及隊列的當(dāng)前狀況,線程的優(yōu)先級如果相同,將遵循“先來先服務(wù)”的調(diào)度原則。
線程依據(jù)自身優(yōu)先級進(jìn)入等待對列的相應(yīng)位置,某些系統(tǒng)線程具有最高優(yōu)先級、這些最高優(yōu)先級線程一旦進(jìn)入就緒狀態(tài),將搶占當(dāng)前正在執(zhí)行的線程的處理器資源,當(dāng)前線程只能重新在等待隊列尋找自己的位置。某些具有最高優(yōu)先級的線程執(zhí)行完自己的任務(wù)之后,將調(diào)用sleep()、wait()、suspend()方法,睡眠一段時間,等待被某一事件喚醒。一旦被喚醒,這些線程就又開始搶占處理器資源。這些最高優(yōu)先級線程通常被用來執(zhí)行一些關(guān)鍵性任務(wù),如屏幕顯示。
低優(yōu)先級線程需等待更長的時間才能有機(jī)會運(yùn)行,由于系統(tǒng)本身無法中止高優(yōu)先級線程的執(zhí)行,因此用到了優(yōu)先級校高的線程對象,那么最好不時讓這些線程放棄對處理器資源的控制權(quán),以使其他線程能夠有機(jī)會運(yùn)行。
4)運(yùn)行態(tài)線程已經(jīng)擁有了對處理器的控制權(quán),其代碼目前正在運(yùn)行.這個線程將一直運(yùn)行直到運(yùn)行完畢,除非運(yùn)行過程的控制權(quán)被一優(yōu)先級更高的線程強(qiáng)占,線程在如下3種情形之下將釋放對處理囂的控制權(quán)●主動或被動地釋放對處理器資源的控制權(quán),該線程必須再次進(jìn)入等待隊列,等待其他優(yōu)先級高或相等線程執(zhí)行完畢●睡眠一段確定的時間,不進(jìn)入等待隊列,這段確定的時間到期后,重新開始運(yùn)行●等持某一事件喚醒自己。
5)阻塞態(tài)暫時這個線程將無法進(jìn)入就緒隊列,處于堵塞狀態(tài)的線程通常必須由某些事件才能喚醒.至于是何種事件,則取決于堵塞發(fā)生的原因,處于睡眠中的線程必須被堵塞一段固定的時間;被掛起、或處于消息等待狀態(tài)的線程則必須由一外來事件喚醒。
6)就緒換出態(tài)已經(jīng)就緒的線程,由于SRAM空間不足,線程將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度,直到SRAM空間足夠。
7)阻塞換出態(tài)已經(jīng)被阻塞的線程,由于SRAM空間不足,將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度,直到阻塞事件已經(jīng)完成,并且SRAM空間足夠。
8)退出態(tài)表示線程已退出運(yùn)行狀態(tài),并且不再進(jìn)入就緒隊列,其中原因可能是線程已執(zhí)行完畢且正常結(jié)束,也可能是該線程被另一線程或父進(jìn)程/線程所強(qiáng)行中斷。
本嵌入式SRAM操作系統(tǒng)軟件已經(jīng)向中華人民共和國版權(quán)局申請計算機(jī)軟件著作權(quán)登記。
權(quán)利要求
1.一種嵌入式SRAM操作系統(tǒng)線程實現(xiàn)和線程狀態(tài)轉(zhuǎn)換的方法,其特征在于1)線程狀態(tài)定義進(jìn)程由線程構(gòu)成,是進(jìn)程中的一條執(zhí)行路徑,每個進(jìn)程內(nèi)允許包含多個并行執(zhí)行的路徑,這就是多線程。線程是系統(tǒng)進(jìn)行處理器調(diào)度的基本單位,同一個進(jìn)程中的所有線程共享進(jìn)程獲得的主存空間和資源,一個線程具有●創(chuàng)建態(tài)對應(yīng)于線程剛剛被創(chuàng)建和進(jìn)入到SRAM中的狀態(tài);●運(yùn)行態(tài)線程占有處理器正在運(yùn)行;●就緒態(tài)線程位于SRAM中,具備運(yùn)行條件,等待系統(tǒng)分配處理器以便運(yùn)行;●阻塞態(tài)線程位于SRAM中,不具備運(yùn)行條件,正在等待某個事件的完成;●就緒換出態(tài)和阻塞換出態(tài)由于SRAM空間不足,線程將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度;●退出態(tài)線程結(jié)束,退出SRAM,以后不再執(zhí)行。在多線程環(huán)境中,仍然有與進(jìn)程相關(guān)的是進(jìn)程控制塊PCB,Process ControlBlock和用戶地址空間,而每個線程則存在獨(dú)立堆棧,以及包含寄存器信息、優(yōu)先級、其它有關(guān)狀態(tài)信息的線程控制塊。線程之間的關(guān)系較為密切,一個進(jìn)程中的所有線程共享其擁有的狀態(tài)和資源,它們駐留在相同的地址空間,可以存取相同的數(shù)據(jù);2)創(chuàng)建態(tài)當(dāng)一個新進(jìn)程被生成后,該進(jìn)程的一個線程也就被創(chuàng)建。此后,該進(jìn)程中的一個線程可以創(chuàng)建同一進(jìn)程中的其它線程,并為新線程提供指令計數(shù)器和變量,一個新線程還將被分配寄存器上下文和堆??臻g,并將其加入就緒隊列;3)就緒態(tài)線程位于SRAM中,具備運(yùn)行條件,等待系統(tǒng)分配處理器以便運(yùn)行,處于就緒狀態(tài)的線程事實上已被調(diào)度,已經(jīng)被放到某一隊列等待執(zhí)行,處于就緒狀態(tài)的線程何時可真正執(zhí)行,取決于線程優(yōu)先級以及隊列的當(dāng)前狀況,線程的優(yōu)先級如果相同,將遵循“先來先服務(wù)”的調(diào)度原則;線程依據(jù)自身優(yōu)先級進(jìn)入等待對列的相應(yīng)位置,某些系統(tǒng)線程具有最高優(yōu)先級、這些最高優(yōu)先級線程一旦進(jìn)入就緒狀態(tài),將搶占當(dāng)前正在執(zhí)行的線程的處理器資源,當(dāng)前線程只能重新在等待隊列尋找自己的位置。某些具有最高優(yōu)先級的線程執(zhí)行完自己的任務(wù)之后,將調(diào)用sleep()、wait()、suspend()方法,睡眠一段時間,等待被某一事件喚醒。一旦被喚醒,這些線程就又開始搶占處理器資源。這些最高優(yōu)先級線程通常被用來執(zhí)行一些關(guān)鍵性任務(wù),如屏幕顯示;低優(yōu)先級線程需等待更長的時間才能有機(jī)會運(yùn)行,由于系統(tǒng)本身無法中止高優(yōu)先級線程的執(zhí)行,因此用到了優(yōu)先級校高的線程對象,那么最好不時讓這些線程放棄對處理器資源的控制權(quán),以使其他線程能夠有機(jī)會運(yùn)行。4)運(yùn)行態(tài)線程已經(jīng)擁有了對處理器的控制權(quán),其代碼目前正在運(yùn)行.這個線程將一直運(yùn)行直到運(yùn)行完畢,除非運(yùn)行過程的控制權(quán)被一優(yōu)先級更高的線程強(qiáng)占,線程在如下3種情形之下將釋放對處理囂的控制權(quán)●主動或被動地釋放對處理器資源的控制權(quán),該線程必須再次進(jìn)入等待隊列,等待其他優(yōu)先級高或相等線程執(zhí)行完畢●睡眠一段確定的時間,不進(jìn)入等待隊列,這段確定的時間到期后,重新開始運(yùn)行●等持某一事件喚醒自己;5)阻塞態(tài)暫時這個線程將無法進(jìn)入就緒隊列,處于堵塞狀態(tài)的線程通常必須由某些事件才能喚醒.至于是何種事件,則取決于堵塞發(fā)生的原因,處于睡眠中的線程必須被堵塞一段固定的時間;被掛起、或處于消息等待狀態(tài)的線程則必須由一外來事件喚醒;6)就緒換出態(tài)已經(jīng)就緒的線程,由于SRAM空間不足,線程將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度,直到SRAM空間足夠;7)阻塞換出態(tài)已經(jīng)被阻塞的線程,由于SRAM空間不足,將被交換出SRAM,進(jìn)入到SDRAM中去,暫時不參與線程調(diào)度,直到阻塞事件已經(jīng)完成,并且SRAM空間足夠;8)退出態(tài)表示線程已退出運(yùn)行狀態(tài),并且不再進(jìn)入就緒隊列,其中原因可能是線程已執(zhí)行完畢且正常結(jié)束,也可能是該線程被另一線程或父進(jìn)程/線程所強(qiáng)行中斷。
全文摘要
本發(fā)明提供了一種嵌入式SRAM操作系統(tǒng)線程實現(xiàn)和線程狀態(tài)轉(zhuǎn)換的方法。在嵌入式SRAM操作系統(tǒng),鑒于操作系統(tǒng)位于SRAM中,資源有限,使用線程作為操作系統(tǒng)調(diào)度的基礎(chǔ),進(jìn)程由線程構(gòu)成,是進(jìn)程中的一條執(zhí)行路徑,每個進(jìn)程內(nèi)允許包含多個并行執(zhí)行的路徑,這就是多線程。線程是系統(tǒng)進(jìn)行處理器調(diào)度的基本單位,同一個進(jìn)程中的所有線程共享進(jìn)程獲得的主存空間和資源,線程具有7個不同的狀態(tài)并且可以在狀態(tài)間進(jìn)行高效切換,可以充分利用SRAM的特點(diǎn),對于利用嵌入式SRAM操作系統(tǒng)進(jìn)行系統(tǒng)資源處理具有特殊意義。
文檔編號G06F9/46GK1825286SQ20061005011
公開日2006年8月30日 申請日期2006年3月31日 優(yōu)先權(quán)日2006年3月31日
發(fā)明者陳天洲, 胡威, 沙峰, 連毅 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
色达县| 西峡县| 永定县| 临高县| 齐齐哈尔市| 达州市| 海丰县| 都匀市| 什邡市| 怀化市| 松滋市| 刚察县| 大石桥市| 饶河县| 遂川县| 卢湾区| 河南省| 修水县| 中山市| 志丹县| 和龙市| 顺平县| 勐海县| 屯留县| 鹤峰县| 高邑县| 天门市| 从江县| 鲜城| 和静县| 长宁区| 阿城市| 武平县| 济阳县| 郴州市| 巴彦淖尔市| 祁阳县| 叶城县| 涿州市| 昔阳县| 衢州市|