vxworks中Task是什么意思

這篇文章主要為大家展示了“vxworks中Task是什么意思”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“vxworks中Task是什么意思”這篇文章吧。

我們提供的服務有:成都網站建設、網站設計、微信公眾號開發、網站優化、網站認證、五峰ssl等。為近1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的五峰網站制作公司

Task是啥?

VxWorks的Task,也就是任務,是系統里最基本的執行單元,類似于其它操作系統的Thread(線程)。現代的RTOS基本都通過提供一個多任務環境來支撐上層的應用程序。而上層的應用程序則使用不同的任務來模擬真實世界里各種各樣的分離事件。每個任務就是一個執行線程,使用著自己的系統資源。

那如果不使用多任務呢?也就是單任務系統又是如何工作的?我們看看這個案例:假設需要實現一個控制多節機械手臂的程序。

vxworks中Task是什么意思

在單任務環境下,通常的代碼實現就是一個無限循環,循環里輪詢每節的狀態。偽代碼如下:

vxworks中Task是什么意思

代碼結構比較簡單,很容易理解,這就是它的優勢。另外,因為只有一個任務,也就不需要切換任務了,CPU就可以專注于執行這個任務。

但是,單任務的缺點也很明顯。從代碼來看,每一節的地位平等,沒有輕重緩急的概念,而真實世界里,每一節的重要程度可能是有區別的。也就是說,這種代碼結構,不具備搶占能力,每一節必須等到被輪詢時,才有可能去執行。而且,每一節的執行頻率也不容易控制,很多條件語句會經常出現假值判斷的情況,這種代碼就是在浪費CPU了。

如果在多任務環境里,代碼大致如下:

vxworks中Task是什么意思

需要給每一節制作一個任務,每個任務等待一個通知,然后才能執行,也就是說每個任務都是一直在Waiting和Ready兩種狀態之間切換。Waiting表示它正在等待通知;Ready表示它等到通知了,可以去執行了,這個時候操作系統可以決定是不是要把CPU分配給它了。

可以看到,這種實現對操作系統的要求就高一些了。需要操作系統提供通知機制,讓不同的任務等待不同的通知。另外,如果有多個任務都等到通知了,操作系統還得提供排隊機制,以便于安排哪個任務可以使用CPU來執行了。

這種多任務的優點有很多:

1 任意頻率,每個任務的頻率取決于自己被通知的頻率,與其它任務關系不大;

2 可以排隊,給每個任務分配不同的優先級,這樣高優先級的任務就可以搶占正在執行的低優先級任務;

3 易于擴展,不同任務代碼之間的耦合性比較小,增加新任務時,對已有任務的影響比較小。

正所謂,春蘭秋菊,各擅勝場。而我們的真實世界,本身是一個并行的世界,許許多多事件都是同時在發生的。在模擬真實世界的軟件世界里,大量的場景也是更適合于用多任務來實現,例如下圖:

vxworks中Task是什么意思

VxWorks也正是采用這種多任務方式來保證它的實時性的。使用多任務把復雜問題分解,提供多種多任務通信機制來保障任務間的協作,提供高效的調度策略來保障重要任務的及時響應。這些任務可以分別獨立地等待系統資源(包括CPU、I/O設備及內存空間等),或者使用資源一起在宏觀上并發運行。當然了,在微觀上,并發運行的任務數量取決于CPU的內核數量。不過這不影響我們對任務的理解,關于多核的內容,我們以后會有專門的SMP章節,目前我們假定CPU都是單核的。

VxWorks的任務由兩部分組成:Stack和TCB。

Stack(棧)用來存放任務的動態變量和函數調用關系。

TCB全稱是任務控制塊(Task Control Block),在代碼中用一個龐大的結構體來表示,windTcb,在target/h/taskLib.h中可以看到它的完整定義。TCB里記錄的信息是任務的Context(上下文):

  • 任務的PC指針

  • CPU寄存器

  • 協處理器的寄存器(可選)

  • 標準IO的分配情況

  • 延時計數器

  • 時間片計數器

  • 內核控制結構

  • 信號量回調函數

  • 任務的私有環境變量

  • Errno狀態

  • 調試和性能監測信息

  • 虛擬內存上下文(支持RTP時)

以及Stack的信息,所以也可能把Stack看作Context的一部分。

VxWorks的調度策略進行任務調度時,就是讓正在使用CPU執行的任務停下來,然后把CPU分配給另一個任務來執行。這個過程就叫做上下文切換。

vxworks中Task是什么意思

可以看到,上下文切換就是對兩個任務Context的讀寫操作。為了保證實時性,這個切換過程必須準確、快速。

以上是“vxworks中Task是什么意思”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

分享題目:vxworks中Task是什么意思
分享地址:http://m.kartarina.com/article4/pihooe.html

成都網站建設公司_創新互聯,為您提供品牌網站制作網站策劃品牌網站設計網站改版網站營銷用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 亚洲人成网亚洲欧洲无码久久| 99久久人妻无码精品系列蜜桃| 亚洲av无码无线在线观看| 18禁无遮拦无码国产在线播放| 亚洲精品无码mⅴ在线观看| 国产精品无码久久四虎| 亚洲AV无码国产精品麻豆天美 | 无码少妇一区二区性色AV| 亚洲AV无码一区二区三区性色 | 国产成人无码免费视频97| 久久午夜夜伦鲁鲁片免费无码| 国产成人无码AV片在线观看 | 亚洲精品无码久久久久去q| 亚洲色无码专区一区| 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲爆乳精品无码一区二区| julia无码人妻中文字幕在线| 色窝窝无码一区二区三区成人网站 | 亚洲精品无码久久毛片| 2021无码最新国产在线观看| 国产亚洲精品无码成人| 亚洲AV无码专区日韩| 精品无码国产一区二区三区麻豆 | 亚洲国产av高清无码| 在线播放无码后入内射少妇| 国产乱人伦无无码视频试看 | 亚洲VA中文字幕无码一二三区| 精品乱码一区内射人妻无码| 亚洲av无码专区青青草原| av无码久久久久久不卡网站| 亚洲Aⅴ无码专区在线观看q| 亚洲AV无码久久精品色欲| 国产成人无码一二三区视频| 亚洲av无码成人精品区在线播放 | 人妻无码αv中文字幕久久| 中文字幕乱偷无码AV先锋| 亚洲精品无码成人片久久| 亚洲AV无码国产精品色午友在线| 国产白丝无码免费视频| 国产精品无码AV一区二区三区| 无码少妇精品一区二区免费动态|