作業系統中經常用到的資料結構:
佇列: 先進先出(可以用陣列,也可以用鍊錶)主要用於物件的排列
堆疊:先進後出(主要用陣列實現)用於程式模組的巢狀執行
多工系統:能用1個cpu併發(非同時)地執行多個程式的計算機管理系統
占有了pc的程式就是占有了cpu
所謂的切換就是pc(程式計數器) <-----目標位址
資料傳送指令:
子程式返回指令
中斷服務程式返回指令
都由堆疊彈出
任務的切換就是執行環境的切換
任務的三要素:程式**、私有堆疊、任務控制塊。
任務控制塊tcb(任務在系統中的身份證): 主要作用是儲存該任務的虛擬處理器的堆疊指標暫存器sp
同時還需要儲存該任務的優先級別,任務的狀態。
uc/os 2是用任務的優先順序來作為任務的標識的。
多個任務靠任務控制塊組成了乙個任務鍊錶。
uc/os2的任務**結構是乙個可以帶有臨界段的無限迴圈。
系統提供的空閒任務ostaskidle() : 只做計數工作。沒有呼叫任務延時函式。
系統提供的統計任務ostaskstat(): 每秒計算一次cpu在單位時間內被使用的時間,以方便應用程式了解cpu的使用率。
uc/os2把任務的優先順序分為64個優先級別,數字越大表示優先順序越低。
設定最低優先級別常數os_lowest_prio意味著系統有os_lowest_prio個優先級別。
最低和倒數第二低階別的分別賦給了空閒任務和統計任務。
任務堆疊task_stk_size os_stk taskstk【task_stk_size】
目的: 儲存cpu暫存器的內容和儲存任務私有資料。
建立任務的時候需要傳遞任務的堆疊指標和任務的優先級別
注意:使用ostaskcreat()建立任務的時候,要確認cpu對於堆疊增長的方向是支援向上還是支援向下。
建立新任務的時候,必須把諸如任務指標、任務堆疊指標、程式狀態字等cpu需要的資料放在任務堆疊裡。
主要是通過呼叫ostaskstkinit()
任務堆疊的初始化也就是對任務的虛擬處理器的初始化(復位)。
ucos2學習筆記 4任務管理
任務管理 在任務管理中,uc os2雖然可以管理多達64的任務,但建議保留幾個最高和最低的優先順序的任務,以備不時之需。任務管理 建立任務 刪除任務 改變任務優先順序 掛起任務 恢復任務以及獲取任務資訊。1.建立任務 uc os中提供了兩種,建立方式,ostaskcreate和ostaskcreat...
ucos2學習筆記 3 核心架構
核心結構 1.處理臨界 為了是有些 不被中斷或其他任務打斷,使其完整操作,同時核心中有 許多臨界 需要儲存。從而ucos中加入開關中斷的巨集定義 os enter critical 關中斷 os exit critical開中斷 在ocos2中,開關中斷有有三種實現方法 1 os critical ...
UCOS2作業系統學習筆記(4)
讀 嵌入式實時作業系統uc os ii 第二版 1 與處理器型別無關的 p73 os core.c os flag.c os mbox.c os mem.c os mutex.c os q.c os sem.c os task.c os time.c ucos ii.c ucos ii.h 2 與應...