日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Vxworks系统学习之一----任务

發布時間:2023/12/10 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vxworks系统学习之一----任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.任務隊列

vxworks維護4個隊列:

tick隊列

ready隊列

active隊列

pend隊列

一,tick隊列

當執行taskDelay時,任務會被延長一段時間執行,此時,任務就會被加入到tick隊列中,任務處于Delay狀態,無權競爭CPU;

二,ready隊列

有資格競爭CPU的隊列,按照任務的優先級進行排隊,隊列頭部是優先級最高的任務;

三,active隊列

所有任務無論狀態如何都會在這個隊列中,這個隊列維護著系統當前所有的任務,我們通過“i”可以看到所有的任務就是通過遍歷active隊列來實現的;

四,pend隊列

當多個任務競爭一個資源時,如果資源不可得,任務就會被設置為pend狀態,進入pend隊列中;


函數taskSpawn創建任務,新建任務會放到active隊列,此時還不能競爭CPU,taskSpawn最后一步就是把任務放到ready隊列中,就可以競爭CPU了。


2.任務優先級

Vxworks共有256個優先級(0~255),0表示優先級最高,255表示優先級最低。taskSpawn創建任務時指定任務優先級,taskPrioritySet可以再創建完成后修改任務優先級。

Vxworks對于應用層任務,推薦使用100~250之間的優先級;驅動層任務,推薦使用51~99之間的任務。

內核網絡任務“tNetTask”的任務為50,要是有優先級低于這個,網絡收發包就可能受影響。


3.任務上下文

任務的數據結構包含以下內容:

1)CPU的所有寄存器值,還有任務內存映射空間、任務名稱、任務優先級、任務入口函數、信號量、隊列;

2)存放任務運行時的棧。棧的大小是由創建任務時確定的,此后不允許改變任務棧的大小,如果此任務有許多遞歸調用,就要申請大的棧空間,防止棧的溢出;

3)各種定時信息。系統時鐘是系統的脈搏,與高優先級的中斷聯系。每個Tick,OS都會響應一次中斷,這個中斷可以作為操作系統調度的觸發點;

4)信號處理函數,ctrl+c中斷當前前臺任務。

5)其他輔助信息,統計數據等


4.常用任務調度函數

1)kernelTimeSlice(int ticks) --------------RR調度使能函數

2)STATUS taskLock(void)和STATUS taskUnlock(void)-------------關閉/開啟任務調度,并不禁止中斷,是一種互斥機制

3)taskSpawn創建了任務之后就進入運行狀態,taskCreate創建了任務,還要通過taskActivate來激活,才能加入到ready隊列中。


5.任務棧

Vxworks的任務棧本質上是內核數據結構的簡單保護機制,僅有一個全局變量kernelState來表示是否在內核態。

Vxworks下任務棧即被應用程序使用,也被內核函數使用。

任務棧大小在任務創建時已經確定,在使用時不能修改。這樣會引起資源浪費,Vxworks官方文檔建議通過試驗法,通過checkStack(taskname or id)來查看任務棧的使用情況。


6.任務名

Vxworks可以起任意長度的名字,但是“i”顯示任務時,會截斷任務名,只顯示任務名字的前11B。

“i”最終調用函數taskShow(int tid, int level) /*level:0 = summary, 1 = detals, 2 = all tasks*/

除非自己寫函數替換掉

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Vxworks系统学习之一----任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。