本發明專利技術提供了一種嵌入式SRAM操作系統線程實現和線程狀態轉換的方法。在嵌入式SRAM操作系統,鑒于操作系統位于SRAM中,資源有限,使用線程作為操作系統調度的基礎,進程由線程構成,是進程中的一條執行路徑,每個進程內允許包含多個并行執行的路徑,這就是多線程。線程是系統進行處理器調度的基本單位,同一個進程中的所有線程共享進程獲得的主存空間和資源,線程具有7個不同的狀態并且可以在狀態間進行高效切換,可以充分利用SRAM的特點,對于利用嵌入式SRAM操作系統進行系統資源處理具有特殊意義。
【技術實現步驟摘要】
本專利技術涉及嵌入式操作系統中線程的實現和線程狀態切換的
,尤其是涉及到一種嵌入式SRAM操作系統線程實現和線程狀態轉換的方法。
技術介紹
在傳統的操作系統中,進程是系統進行資源分配的單位,諸如按進程分給存放其映象的虛地址空間、執行需要的主存空間、完成任務需要的其他各類資源,I/O CH、I/O DV和文件。同時,進程也是處理器調度的獨立單位,進程在任一時刻只有一個執行控制流,我們將這種結構的進程稱單線程進程(SingleThreaded Process)。這種單線程結構的進程已不能適應當今計算機技術的迅猛發展。早期的計算機系統是基于單個處理器(CPU)的順序處理的機器,程序員編寫串行執行的代碼,讓其在CPU上串行執行,甚至每一條指令的執行也是串行的(取指令、取操作數、執行操作、存儲結果)。為提高計算機處理的速度,首先發展起來的是聯想存儲器系統和流水線系統,前者提出了數據驅動的思想,后者解決了指令串行執行的問題,這兩者都是最初計算機并行化發展的例子。隨著硬件技術的進步,并行處理技術得到了迅猛的發展,計算機系統不再局限于單處理器和單數據流,各種各樣的并行結構得到了應用。目前計算機系統可以分作以下四類·單指令流單數據流(SISD)一個處理器在一個存儲器中的數據上執行單條指令流?!沃噶盍鞫鄶祿?SIMD)單條指令流控制多個處理單元同時執行,每個處理單元包括處理器和相關的數據存儲,一條指令事實上控制了不同的處理器對不同的數據進行了操作。向量機和陣列機是這類計算機系統的代表?!ざ嘀噶盍鲉螖祿?MISD)一個數據流被傳送給一組處理器,通過這一組處理器上的不同指令操作最終得到處理結果。該類計算機系統的研究尚在實驗室階段?!ざ嘀噶盍鞫鄶祿?MIMD)多個處理器對各自不同的數據集同時執行不同的指令流??梢园袽IMD系統劃分為共享內存的緊密耦合MIMD系統和內存分布的松散耦合MIMD系統兩大類。在松散耦合MIMD系統中,每個處理單元都有一個獨立的內存儲器,各個處理單元之間通過設定的線路或網絡通信,多計算機系統或cluster系統都是松散耦合MIMD系統的例子。根據處理器分配策略,緊密耦合MIMD系統可以分為主從式系統(main/slavemultiprocessor)和對稱式系統(symmetric multiprocessor,簡稱SMP)兩類。主從式系統的基本思想是在一個特別的處理器上運行操作系統內核,其他處理器上則運行用戶程序和操作系統例行程序,內核負責分配和調度各個處理器,并向其它程序提供各種服務(如輸入輸出)。這種方式實現簡單,但是主處理器的崩潰會導致整個系統的崩潰,并且極可能在主處理器形成性能瓶頸。在對稱式多處理器系統(SMP)中,操作系統內核可以運行在任意一個處理器上,每個處理器都可以自我調度運行的進程和線程,并且操作系統內核也被設計成多進程或多線程,內核的各個部分可以并行執行。目前cluster和SMP得到了廣泛的應用,成為并行處理技術的熱點。值得注意的是,單線程結構進程從管理、通信和并發粒度多個方面都很難滿足并行處理的要求。近二十年以來,計算機網絡技術得到了迅猛的發展,這里不考慮網絡基礎通信設施的進展,單從網絡操作系統和分布式操作系統的角度來考慮,單線程結構進程就難以滿足要求。分布式操作系統是一個無主從的、透明的資源管理系統,也是一個松散耦合的MIMD系統。從資源管理看,每一類資源的管理都有可能分布在各個獨立的節點上,需要廣泛的協同和頻繁的通信,從分布并行看,要求操作系統合理使用網絡上的可計算資源,更好地發揮多處理器的能力,把許多任務或同一任務的不同子任務分配到網絡不同結點的處理器上去同時運行,所有這一些都需要改良單線程結構進程,提高各個協作子任務之間的協作、切換和通信效率。客戶/服務器計算是九十年代網絡計算的最大熱點,對于基于服務器的客戶/服務器計算(如SQL服務器),要求采用更加高效的并行或并發解決方案來提高服務器處理效率;對于基于客戶的客戶/服務器計算(如頁服務器),雖然服務器的瓶頸效應大大改善,但服務器一方除了頁面讀寫外還需要進行鎖管理和鎖協商,客戶一方則面臨著如何快速解決計算邏輯問題,另外還要考慮鎖協商和頁回調,這些也要求一種更加實用和有效的并行或并發解決方案;類似的問題同樣存在與協作式的客戶/服務器計算和基于中間件的客戶/服務器計算中。從軟件技術的發展來看,系統軟件和應用軟件均有了很大的進展,要求人們設計出多事件并行處理的軟件系統,如操作系統中的并行文件操作,數據庫中的多用戶事務處理,窗口子系統中的多個相關子窗口操作,實時系統中多個外部事件的同時響應,網絡中多個客戶共享網絡服務器任務等等。這些多事件并行處理的軟件系統當然要求提高并行或并發處理的效率,而單線程結構進程對此是無能為力的。在傳統的操作系統中,往往采用多進程并發程序設計來解決并行技術、網絡技術和軟件技術發展帶來的要求,即創建并執行多個進程,按一定策略來調度和執行各個進程,以最大限度地利用計算機系統中的各種各樣的資源。這一方式當然是可行的,但關鍵在于并行和并發的效率問題,采用這一方式來實現復雜的并發系統時,會出現以下的缺點·進程切換的開銷大,頻繁的進程調度將耗費大量時間?!みM程之間通信的代價大,每次通信均要涉及通信進程之間以及通信進程與操作系統之間的切換。·進程之間的并發性粒度較粗,并發度不高,過多的進程切換和通信使得細粒度的并發得不償失。·不適合并行計算和分布并行計算的要求。對于多處理器和分布式的計算環境來說,進程之間大量頻繁的通信和切換過程,會大大降低并行度?!げ贿m合客戶/服務器計算的要求。對于C/S結構來說,那些需要頻繁輸入輸出并同時大量計算的服務器進程很難體現效率。尤其是在嵌入式SRAM操作系統中,相對于SDRAM,SRAM空間有限,需要操作系統改進進程結構,提供新的機制,使得很多應用能夠按照需求,在同一進程中設計出多條的控制流,多控制流之間可以并行執行,切換不需通過進程調度;多控制流之間還可以通過內存區直接通信,降低通信開銷。
技術實現思路
本專利技術的目的在于提供一種嵌入式SRAM操作系統線程實現和線程狀態轉換的方法。本專利技術解決其技術問題采用的技術方案如下1)線程狀態定義進程由線程構成,是進程中的一條執行路徑,每個進程內允許包含多個并行執行的路徑,這就是多線程。線程是系統進行處理器調度的基本單位,同一個進程中的所有線程共享進程獲得的主存空間和資源,一個線程具有 ●創建態對應于線程剛剛被創建和進入到SRAM中的狀態;●運行態線程占有處理器正在運行;●就緒態線程位于SRAM中,具備運行條件,等待系統分配處理器以便運行;●阻塞態線程位于SRAM中,不具備運行條件,正在等待某個事件的完成;●就緒換出態和阻塞換出態由于SRAM空間不足,線程將被交換出SRAM,進入到SDRAM中去,暫時不參與線程調度;●退出態線程結束,退出SRAM,以后不再執行。在多線程環境中,仍然有與進程相關的是進程控制塊PCB,Process ControlBlock和用戶地址空間,而每個線程則存在獨立堆棧,以及包含寄存器信息、優先級、其它有關狀態信息的線程控制塊。線程之間的關系較為密切,一個進程中的所有線程共享其擁有的狀態和資源,它們駐留本文檔來自技高網...
【技術保護點】
一種嵌入式SRAM操作系統線程實現和線程狀態轉換的方法,其特征在于:1)線程狀態定義進程由線程構成,是進程中的一條執行路徑,每個進程內允許包含多個并行執行的路徑,這就是多線程。線程是系統進行處理器調度的基本單位,同一個進程中 的所有線程共享進程獲得的主存空間和資源,一個線程具有:●創建態:對應于線程剛剛被創建和進入到SRAM中的狀態;●運行態:線程占有處理器正在運行;●就緒態:線程位于SRAM中,具備運行條件,等待系統分配處理器以便運行; ●阻塞態:線程位于SRAM中,不具備運行條件,正在等待某個事件的完成;●就緒換出態和阻塞換出態:由于SRAM空間不足,線程將被交換出SRAM,進入到SDRAM中去,暫時不參與線程調度;●退出態:線程結束,退出SRAM ,以后不再執行。在多線程環境中,仍然有與進程相關的是進程控制塊PCB,ProcessControlBlock和用戶地址空間,而每個線程則存在獨立堆棧,以及包含寄存器信息、優先級、其它有關狀態信息的線程控制塊。線程之間的關系較 為密切,一個進程中的所有線程共享其擁有的狀態和資源,它們駐留在相同的地址空間,可以存取相同的數據;2)創建態當一個新進程被生成后,該進程的一個線程也就被創建。此后,該進程中的一個線程可以創建同一進程中的其它線程,并為新線程提 供指令計數器和變量,一個新線程還將被分配寄存器上下文和堆??臻g,并將其加入就緒隊列;3)就緒態線程位于SRAM中,具備運行條件,等待系統分配處理器以便運行,處于就緒狀態的線程事實上已被調度,已經被放到某一隊列等待執行,處于就 緒狀態的線程何時可真正執行,取決于線程優先級以及隊列的當前狀況,線程的優先級如果相同,將遵循“先來先服務”的調度原則;線程依據自身優先級進入等待對列的相應位置,某些系統線程具有最高優先級、這些最高優先級線程一旦進入就緒狀態,將搶占當 前正在執行的線程的處理器資源,當前線程只能重新在等待隊列尋找自己的位置。某些具有最高優先級的線程執行完自己的任務之后,將調用sleep()、wait()、suspend()方法,睡眠一段時間,等待被某一事件喚醒。一旦被喚醒,這些線程就又開始搶占處理器資源。這些最高優先級線程通常被用來執行一些關鍵性任務,如屏幕顯示;低優先級線程需等待更長的時間才能有機會運行,由于系...
【技術特征摘要】
1.一種嵌入式SRAM操作系統線程實現和線程狀態轉換的方法,其特征在于1)線程狀態定義進程由線程構成,是進程中的一條執行路徑,每個進程內允許包含多個并行執行的路徑,這就是多線程。線程是系統進行處理器調度的基本單位,同一個進程中的所有線程共享進程獲得的主存空間和資源,一個線程具有●創建態對應于線程剛剛被創建和進入到SRAM中的狀態;●運行態線程占有處理器正在運行;●就緒態線程位于SRAM中,具備運行條件,等待系統分配處理器以便運行;●阻塞態線程位于SRAM中,不具備運行條件,正在等待某個事件的完成;●就緒換出態和阻塞換出態由于SRAM空間不足,線程將被交換出SRAM,進入到SDRAM中去,暫時不參與線程調度;●退出態線程結束,退出SRAM,以后不再執行。在多線程環境中,仍然有與進程相關的是進程控制塊PCB,Process ControlBlock和用戶地址空間,而每個線程則存在獨立堆棧,以及包含寄存器信息、優先級、其它有關狀態信息的線程控制塊。線程之間的關系較為密切,一個進程中的所有線程共享其擁有的狀態和資源,它們駐留在相同的地址空間,可以存取相同的數據;2)創建態當一個新進程被生成后,該進程的一個線程也就被創建。此后,該進程中的一個線程可以創建同一進程中的其它線程,并為新線程提供指令計數器和變量,一個新線程還將被分配寄存器上下文和堆棧空間,并將其加入就緒隊列;3)就緒態線程位于SRAM中,具備運行條件,等待系統分配處理器以便運行,處于就緒狀態的線程事實上已被調度,已經被放到某一隊列等待執行,處于就緒狀態的線程何時可真正執行,取決于線程優先級以及隊列的當前狀況,線程的優先級如果相同,將遵循“先來先服務”的調度原則;線程依據自身優先級進入等待對列的相應位置,某些系統線程具有最高優先級、這些最高優先級線程一旦進入就緒狀態,將搶占當前正在...
【專利技術屬性】
技術研發人員:陳天洲,胡威,沙峰,連毅,
申請(專利權)人:浙江大學,
類型:發明
國別省市:86[中國|杭州]
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。