• 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 

  • 相关阅读:
    PHP面向对象之原型(trait)
    PHP面向对象之命名空间
    Javascript中的Copy()函数
    六、unique_lock取代lock_guard
    五、互斥量
    四、创建和等待多个线程
    三、线程传参
    二、线程的启动与结束 join与detach
    HTTP:常见状态码
    HTTP:简述URL、URN和URI
  • 原文地址:https://www.cnblogs.com/C-Sharp2/p/5915195.html
Copyright © 2020-2023  润新知