VxWorks 6.9 內核編程指導之讀書筆記 -- 多任務(二)


VxWorks的系統任務

VxWorks在引導時啟動的系統任務依賴於配置,有些總是運行。任務集與VxWorks的基本配置相關,很少的任務常用於可選的組件。

注意:別掛起、刪除或改變任何系統任務的優先級。否則將導致不可預期的系統行為。

基本VxWorks任務

Root Task

任務名稱

tRootTask

優先級

0

觸發事件

系統啟動

組件

N/A

描述

是第一個被內核執行的任務。入口函數是usrRoot,它初始化大部分VxWorks的功能。通常該任務在所有初始化完成之后終止。

它啟動tLogTask,tExcTask任務,網絡任務和tRlogin后代。

引用

VxWorks BSP Developer’s Guide

Logging Task

任務名稱

tLogTask

優先級

0

觸發事件

從ISR或任務中調用logMsg函數

組件

INCUDE_LOGGING

描述

該任務被VxWorks模塊調用來記錄系統消息和從不得不執行I/O的ISR中的消息。

引用

logLib API

Exception Task

任務名稱

tExcTask

優先級

0

觸發事件

從ISR中調用excJobAdd函數

組件

INCUDE_EXC_TASK

描述

代表ISR執行在中斷時不能執行的函數調用。必須在系統中有最高優先級。

引用

excLib API

Job Task

任務名稱

tJobTask

優先級

0 while waitting for a request

觸發事件

N/A。所有被VxWorks系統壓入隊列的工作。

組件

INCUDE_JOB_TASK

描述

代表任務執行執行工作。它運行在優先級0,然而等待請求,動態調整優先級來匹配請求執行工作的任務。一個主要用途是處理任務自刪。

引用

 

SMP ISR Task

任務名稱

tISRn

優先級

0

觸發事件

調用isrDeferJobAdd的設備中斷

組件

INCUDE_ISR_DEFER

描述

當設備驅動執行isrDeferJobAdd時,代表設備驅動來執行函數調用。n指的是延期任務真正運行的CPU的索引。按需要創建單獨的任務,每個任務與CPU相關聯。SMP感知的設備驅動,將延遲中斷到運行在本地CPU的tIsrN任務處理,為了避免交叉處理通信的負載。

引用

isrDeferLib API

Network Task

任務名稱

tNet0

優先級

50(默認)

觸發事件

報文到達,傳輸完畢,網絡協議定時器過期,套接字請求等。

組件

INCUDE_NET_DAEMON

描述

tNet0為VxWorks網絡協議棧執行網絡驅動和網絡協議處理。

引用

Network Stack Programmer‘s Guide

WDB Target Agent Task

任務名稱

tWdbTask

優先級

3 (默認)

觸發事件

N/A

組件

INCUDE_WDB

描述

當目標代理被設置為以任務模式運行時,該任務唄創建。響應從主機工具過來的請求。

引用

E.WDB Target Agent

WDB Target Agent Proxy Task

任務名稱

tWdbProxyTask

優先級

55 (default)

觸發事件

N/A

組件

INCUDE_WDB_PROXY

描述

當VxWorks沒有配置網絡棧時,代理用於與WDB通信。代理通過TCP/IP與主機工具通信,支持UDP/IP,TIPC,和MIPC。

引用

E.WDB Target Agent

可選組件的任務

下面的任務是VxWorks常見配置中的額外的任務

Kernel Shell Task

任務名稱

tShellN

優先級

1 (可配置)

觸發事件

系統引導(默認)

組件

INCUDE_SHELL

描述

Kernel Shell作為任務發起。從內核Shell中調用的任何函數和任務,不是發起,都運行在tShellN的上下文中。在控制台shell中的任務名稱是tShell0。內核shell可以被重入,因此可以在同時運行多個shell。遠程登錄的用戶,名稱也是一樣的。如他ShellRem1。tShell的基本名稱是可以配置的。

引用

VxWorks Kernel Shell User's Guide

Kernel Shell Login Task

任務名稱

tRlogind

優先級

55

觸發事件

新的rlogin連接。

組件

INCUDE_RLOGIN

描述

該登錄后台允許用戶遠程登錄。接受從另外一個VxWork或主機系統並啟動tRlogInTask_hexNum任務和tRlogOutTask_hexNum任務(這里的_hexNum表示該連接的十六進制數值)。只要遠程用戶沒有退出,該任務一直存在。另外,除非shell被配置成兼容5.5模式,服務器啟動遠程shell任務tShellRemdecNum(這里的decNum指向遠程shell會話的十進制數值)。

引用

rlogLib API

Kernel Shell Telnet Task

任務名稱

ipcom_telnetd

優先級

50

觸發事件

新的telnet連接

組件

INCUDE_IPTELNETS

描述

運行用戶通過telnet遠程登錄。ipcom_telnetd啟動其它任務服務新的連接,包括ipcom_telnetspawn,tStdioProxyhexNum和 tLoginhexNum。除非shell被配置為兼容5.5模式,否則遠程shell任務tShellRemdecNum被啟動。

引用

 Wind River Network Stack Programmer's Guide

RPC Task

任務名稱

tPortmapd

優先級

54

觸發事件

客戶端查詢RPC服務時

組件

INCUDE_RPC

描述

它作為RPC服務器處理運行在同一台機器上的RPC服務的中央注冊器。RPC客戶端通過查詢它來找到如何與各種服務器通信的辦法。

引用

rpcLib API 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM