Ucos系統時鐘節拍詳解

2021-09-02 16:52:47 字數 2071 閱讀 1589

我們以前在將這個作業系統在進行多工切換的時候,說過這樣的概念作業系統怎麼進行多工切換呢?

首先它把這個時間進行分片,就是劃分為1片

1片的,比如說這個時間都以

10毫秒劃分為

1個片,在第乙個

10毫秒中執行乙個任務,在第二個

10毫秒中執行另外乙個任務,在第三個

10毫秒中執行另外乙個任務,這樣的話,我們就進行了乙個多工的切換,多工在切換的過程中,必須要使用的乙個就是時鐘節拍,時鐘節拍實際上是乙個定時器,這個定時器它定時的來切換我們的各個任務,比如這個任務執行

10毫秒,那作業系統怎麼知道執行

10毫秒的時間有沒有到達,或者說當這個任務主動放棄

cpu的時候,那作業系統怎麼知道你主動放棄了

cpu,所以,在這裡就要用到時鐘節拍了。

時鐘節拍實際上就是乙個硬體定時器,就是由硬體給我們提供乙個定時器,它定時一定的時間,比如說,我們定時1毫秒,那也就是說每隔

1毫秒我來檢查一下當前的這個任務狀態,那比如說,在某乙個時鐘節拍中,我發現這個任務它的定時時間到了,它的執行時間到了,那我就讓它執行下乙個任務,把這個任務的執行權剝奪掉,然後執行下乙個任務,或者說,在某乙個時鐘節拍中這個任務主動放棄了

cpu,那這個時候,我也去執行下乙個任務,這就是我們時鐘節拍的作用。乙個作業系統必須要有乙個時鐘節拍,為什麼呢?

因為這個時間,還有任務狀態的判斷都與這個時鐘節拍有關係。那接下來這個問題出現了,我們使用到的這個時鐘節拍,並且我們知道時鐘節拍是由硬體定時器提供的,那這個定時時間多長比較合適呢?我們定時1毫秒,還是

10毫秒,還是

100毫秒好,一般來說,我們來看看定時

1毫秒和

100毫秒有什麼不同。

首先我們來看看定時1毫秒,定時

1毫秒也就是說,每隔

1毫秒,我們的

cpu會來檢查一下各個任務的狀態,那

cpu在檢查這個任務的狀態的時候,那我們可以看看,它在檢查這個任務的狀態的時候執行的**對於我們任務來說,它是乙個無用功,因為你在檢查任務的狀態的時候,這樣的**對於我們任務來說根本沒有任何作用,所以說,我們可以看到,當你

1毫秒中斷一次,也就是每秒鐘檢查

1000

次,而我這個

100毫秒,每秒鐘只檢查

10次,那也就是說,你檢查

1000

次,和檢查

10次,顯然檢查

1000

次做的無用功顯然要遠遠大於檢查

10次,那我們從這可以看到,檢查時間越短,那

cpu做的無用功也就越多。

但是,我們看一下另外乙個問題,假設我還是1毫秒進行一次時鐘節拍,定時器定時

1毫秒,假設在這個時刻,這個任務放棄了執行權,也就是說這個任務說,我不需要執行了,那從它放棄到我們

cpu發現了這個最大時間間隔是

1毫秒,為什麼呢?

因為我們定時器定時的時間是1毫秒,那對於定時

100毫秒呢,我們看一下,從這個任務放棄

cpu使用,到作業系統發現了它的最大時間是

100毫秒,那很顯然,這個

1毫秒要比

100毫秒的實時性要好,所以我們可以看到如果定時器定時的時間越短,它的實時性越好,但是

cpu做的無用功越多,同樣,定時的時間越長,雖然

cpu做的無用功越少,但是,它的實時性越差。那對於乙個系統,我們的時鐘節拍設定為多少合適呢?

一般來說,我們設定的時鐘節拍在10-100毫秒之間是比較好的,當然,隨著我們

cpu時鐘的提高,比如我們說我們這個

cpu跑的時鐘頻率比較高,都跑到了

100多

m,比如

128m

,400m

這樣的頻率,那這個時候,我們可以設定到

1000

赫茲,就是

1毫秒這樣的時間,一般來說,設定為

1毫秒已經是實時性比較好了,那如果你設定為微秒級的話,那這個時候,

cpu做的無用功就相當相當多了,那這個時候,我們的實時性也不會提公升到多好。所以,一般來說,我們設定的時鐘節拍在

10-100

毫秒之間。當然如果

cpu的頻率比較高,你可以設定到

1000

赫茲。

ucos 時鐘節拍 Ucos系統學習之時鐘節拍

ucos 系統學習之時鐘節拍 我們以前在將這個作業系統在進行多工切換的時候,說過這樣的概念操作系 統怎麼進行多工切換呢?首先它把這個時間進行分片,就是劃分為 片片的,比如說這個時間都以 毫秒劃分為 個片,在第乙個 毫秒中執行乙個任務,在第二個 毫秒中執行另外乙個任務,在第三個 毫秒中執行另外乙個任務...

2 6 系統時鐘節拍

任何的作業系統都需要提供乙個時鐘節拍,以供系統處理如延時,超時等與時間相關的事件 時基 系統時鐘節拍是特定的週期性中斷,中斷間的時鐘間隔取決於不同的應用。設定時基,一般是1ms左右 時鐘的節拍中斷使得可以將任務延遲若干個時鐘節拍 釋放cpu給其他任務,若干時間後再執行 在任務等待事件發生的時候,也提...

UCOSIII時鐘節拍

ucos裡,時鐘節拍就好比是人的心臟一樣重要。它對於cpu能順利在各任務間切換有著至關重要的作用。使用時鐘源有乙個特別需要注意的地方 使用者必須在多工系統啟動以後再開啟時鐘節拍器,也就是在呼叫osstart 之後。ucos中的時鐘節拍服務是通過在定時器中斷服務子程式中呼叫ostimetick 實現的...