1、ucosii作業系統是怎麼管理任務的?
用圖是最能表現的:
(1)任務控制塊是來管理任務的。
(2)其中ucosii把所有的任務都是通過雙向鍊錶來連線到一起的,為什麼?我難道不能使用陣列來分配空間嗎?
關鍵原因:在整個作業系統中,因為我們不知道使用者到底需要多少個任務,所以使用鍊錶的話,在編譯後才確認的話,陣列的方式優秀很多。
我個人認為這張圖其實是有一些錯誤的:
比如裡面寫了指向任務的指標,我覺得是應該放置在任務堆疊裡面的,因為建立任務的時候,是將任務的函式名,傳遞給任務堆疊,然後任務堆疊再傳到cpu的sr暫存器中,實現任務切換的。
所謂的指向任務的指標:其實就是任務的函式的函式名。
2、ucosii作業系統是怎麼執行的?
(1)睡眠態:首先我們的任務是按需分配的,你想要多少個任務的話,那麼我們就可以建立多少個任務。剛剛建立的任務是處於睡眠的狀態的。
(2)就緒狀態:如果系統為任務配備了任務控制塊並且在任務的就緒表中進行了就緒登記的話,則任務就具備了執行的充分條件,這時候任務的狀態就叫做就緒態。
(3)執行狀態:處於就緒狀態的任務如果經過ucosii的點陣圖機制,判斷為處於最高優先順序的任務的話,那麼它就可以獲得cpu的使用權,這時候就是執行狀態。
(4)中斷服務狀態:這個真的就沒有什麼好說的了,連前後臺系統都會存在的狀態,觸發到中斷的條件,就會進入中斷態,而且不管你是否處於執行態還是怎麼樣?
以上的4個狀態是我認為ucosii作業系統中必不可少的狀態的。
(5)等待狀態:這個狀態的話,是可以通過裁剪ucosii核心去掉的,其實這個狀態就是為了滿足任務之間的通訊和任務與中斷服務子程式通訊產生的一種狀態。
3、ucosii作業系統任務之間是通過什麼進行通訊的?
總所周知,ucosii的任務是乙個特殊的函式,沒有型別,沒有返回值。
裡面是乙個死迴圈。
那麼為什麼它能夠跳出來執行別的任務?
它之所以能夠跳出來跟別的任務進行通訊的話,在下面的使用者需要新增的**中一定是有乙個任務切換的函式呼叫的。實質上是cpu的sr暫存器中的任務堆疊的切換的過程。
那麼它怎麼跟別的任務進行通訊?
常考題:linux的程序間通訊的方式:
訊號量(互斥型訊號量)、訊息佇列、共享記憶體、訊息郵箱、事件標誌組
其中ucosii任務之間進行通訊的方式除了共享記憶體,其餘都存在。
其中有好幾個是型別的:
比如訊號量和互斥型訊號量。使用這個是可以占用資源,或者同步任務的執行。
比如訊息郵箱和訊息佇列,訊息佇列也稱為多個訊息郵箱,都是用來在任務之間傳遞資料的。
事件標記組:首先請求事件標記組的時候,通過乙個整型數的某幾個位,如果那幾個位都已經置位或者都是為空的話,那麼請求事件標記組的任務可以得到執行。
為什麼需要互斥型訊號量?
因為會產生任務優先順序的反轉問題?
什麼是優先順序反轉?高優先順序任務被低優先順序任務剝脫cpu的使用權。
(1)假設現在有乙個低的優先順序任務占有cpu的核心,同時他占有了一些資源。
(2)此時,來了乙個高優先順序的任務,它想要得到這個資源,但是這個資源已經被低優先順序的任務占有了。
(3)在後來來了乙個中等優先順序的任務,它因為優先順序比低優先順序的任務高,但是它的優先順序沒有高的優先順序高,所以它強佔cpu的使用權,繼續執行。
(4)這時候,形成的情況就是中等優先順序的任務比高優先順序的任務更加早的執行,形成優先順序反轉的問題。
解決方案1:
如果低優先順序任務占有的那個資源後,後面有更高的優先順序任務到來的話,那麼就把自己的優先順序提高到那個想要占有優先順序的任務。
解決方案2:
使用互斥型訊號量。因為互斥型訊號量,只有你自己請求,自己釋放,不能通過別的任務釋放,如果你請求乙個已經請求過的互斥性訊號量的話,那麼直接跳過執行。
ucos ii作業系統
ucos ii是乙個多工的作業系統,其最大優點即為實時性。任務通常是乙個無限的迴圈,其中包括了使用者 而實時性即指最快的響應優先順序最高的任務。確實,對於乙個初步接觸ucos ii的新手來講,想要完全理解是要花時間的。我們想用ucos ii,在移植成功後 以後在寫移植方面吧 我們首先就得進行初始化,...
uCOS II作業系統
簡介 ucos ii是乙個簡單 高效的嵌入式實時作業系統核心 支援x86 arm powerpc mips等多種體系結構 www.ucos ii.com ucos ii的各種商業應用 醫療器械 移動 路由器 工業控制 gps 導航系統 智慧型儀器 更多 計算機作業系統的作用 從使用者的角度來看它就是...
uc os ii作業系統筆記
作業系統是應用程式與硬體的之間的介面,只有硬體構成的電腦成為裸機,作業系統的功能主要是對計算機的資源進行管理。主要的功能 1.處理器的管理,主要兩項工作 一是對中斷的管理,二是對處理器的工作的進行排程。因為處理器的硬體只能發現外部時間的中斷的請求,不能對中斷進行管理和處理。2.儲存的管理 3.裝置的...