ucos
系統學習之時鐘節拍
我們以前在將這個作業系統在進行多工切換的時候,
說過這樣的概念操作系
統怎麼進行多工切換呢?
首先它把這個時間進行分片,就是劃分為
片片的,比如說這個時間都以
毫秒劃分為
個片,在第乙個
毫秒中執行乙個任務,在第二個
毫秒中執行另外乙個任務,在第三個
毫秒中執行另外乙個任務,這樣的話,我們就
進行了乙個多工的切換,
多工在切換的過程中,
必須要使用的乙個就是時鐘
節拍,時鐘節拍實際上是乙個定時器,
這個定時器它定時的來切換我們的各個任
務,比如這個任務執行
毫秒,那作業系統怎麼知道執行
毫秒的時間有沒有
到達,或者說當這個任務主動放棄
cpu的時候,那作業系統怎麼知道你主動放
棄了cpu
,所以,在這裡就要用到時鐘節拍了。
時鐘節拍實際上就是乙個硬體定時器,
就是由硬體給我們提供乙個定時器,
它定時一定的時間,
比如說,
我們定時
毫秒,那也就是說每隔
毫秒我來檢查一
下當前的這個任務狀態,
那比如說,
在某乙個時鐘節拍中,
我發現這個任務它的
定時時間到了,
它的執行時間到了,
那我就讓它執行下乙個任務,
把這個任務的
執行權剝奪掉,
然後執行下乙個任務,
或者說,
在某乙個時鐘節拍中這個任務主
動放棄了
cpu,那這個時候,我也去執行下乙個任務,這就是我們時鐘節拍的作
用。乙個作業系統必須要有乙個時鐘節拍,為什麼呢?
因為這個時間,
還有任務狀態的判斷都與這個時鐘節拍有關係。
那接下來這個
問題出現了,
我們使用到的這個時鐘節拍,
並且我們知道時鐘節拍是由硬體定時
器提供的,那這個定時時間多長比較合適呢?我們定時
毫秒,還是
毫秒,還是
毫秒好,一般來說,我們來看看定時
毫秒和毫秒有什麼不同。
首先我們來看看定時
毫秒,定時
毫秒也就是說,
每隔毫秒,
我們的cpu
會來檢查一下各個任務的狀態,那
cpu在檢查這個任務的狀態的時候,那我們
可以看看,
它在檢查這個任務的狀態的時候執行的**對於我們任務來說,
它是乙個無用功,
因為你在檢查任務的狀態的時候,
這樣的**對於我們任務來說根
本沒有任何作用,所以說,我們可以看到,當你
毫秒中斷一次,也就是每秒鐘
檢查次,而我這個
毫秒,每秒鐘只檢查
次,那也就是說,你檢查
次,和檢查
次,顯然檢查
次做的無用功顯然要遠遠大於檢查
次,那我們從這可以看到,檢查時間越短,那
cpu做的無用功也就越多。
但是,我們看一下另外乙個問題,
假設我還是
毫秒進行一次時鐘節拍,
定時器定時
毫秒,假設在這個時刻,
這個任務放棄了執行權,
也就是說這個任務說,
我不需要執行了,那從它放棄到我們
cpu發現了這個最大時間間隔是
毫秒,為什麼呢?
Ucos系統時鐘節拍詳解
我們以前在將這個作業系統在進行多工切換的時候,說過這樣的概念作業系統怎麼進行多工切換呢?首先它把這個時間進行分片,就是劃分為1片 1片的,比如說這個時間都以 10毫秒劃分為 1個片,在第乙個 10毫秒中執行乙個任務,在第二個 10毫秒中執行另外乙個任務,在第三個 10毫秒中執行另外乙個任務,這樣的話...
ucOS的時鐘管理
1.系統時鐘節拍 時鐘節拍是特定的週期性中斷 時鐘中斷 這個中斷可以看作是系統心臟的脈動。作業系統通過時鐘中斷來確定時間間隔,實現時間的延時及確定任務超時。中斷之間的時間間隔取決於不同的應用,一般在10 200ms之間。時鐘的節拍式中斷使得核心可以將任務延時若干個整數時鐘節拍,以及當任務等待事件發生...
UCOS3嵌入式作業系統學習 ucos3原理
1.任務控制塊tcb 2.排程演算法 優先順序列表ospriotbl os prio tbl size 如圖,每位代表乙個優先順序,被置 1 表示此優先順序對應的任務就緒了。找出優先順序最高的就緒任務就是找出第乙個被置1的位所在的位置。就緒表osrdylis os cfg prio max 此陣列下...