關於部落格
  • 26586

    累積人氣

  • 0

    今日人氣

    0

    追蹤人氣

何謂多工

因為他也是循序執行 只是具有固定的週期性中斷 其週期為clock tick的時間長度 而當有clock tick 固定的中斷進來時 clock tick硬體中斷有固定中斷向量 此中斷向量指向此中斷的ISR 所以系統會執行clock tick的ISR 於是便把正在執行task的contex(內頁)存到該task的堆疊中 即是所謂的context switch 一般tick rate是 10~200ms (100~5Hz) UCOS-II 系統每隔10ms發生1次clock tick 中斷 而排程的依據是利用一個登錄所有task資訊的資料結構(TCB) 可以知道所有task的優先權與狀態 決定由進入ready狀態中的哪個task執行 ------------------------------------------------------------------------------ OSSched()執行時間 : ##task執行結束自行進入idle(呼叫deley) (所以所有task都是週期性執行的while loop) ##中斷結束後 ##clock tick中斷的ISR中即包含OSSched() 參考UCOS-II p.67 所以對kernel而言 他是一個前/背景系統 中斷服務即是前景行為 對user而言 他的所有task被kernel切換執行 似乎kernel同時執行許多task 好像進行多工執行 參考UCOS-II p.35
相簿設定
標籤設定
相簿狀態