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 |
VxWorks 6.9 内核编程指导之读书笔记 -- 多任务(二)的更多相关文章
- VxWorks 6.9 内核编程指导之读书笔记 -- 多任务
概述 VxWork系统任务 任务调度 任务创建和管理 任务的错误状态 任务异常处理 共享代码和重入 概述 现代实时操作系统是基于多任务和任务间通信的概念的.多任务环境运行一个实时进程RTP可以被作为一 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- ISRs和Watchdog Timer
中断服务程序 ISR 硬件中断处理是实时系统的关键,因为它是外部时间通知系统的方式. ISR亦称为中断处理函数,是对中断的正确响应.可以使用任何ISR连接到任何没有被VxWorks使用的中断上.当关联 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- VxWorks kernel application (一)
#1 什么是内核应用程序? #2 开发内核应用程序注意事项 什么是内核应用程序? 内核应用程序不同于RTP程序,它允许在内核态,与操作系统使用相同的地址空间.因此,它与操作系统会相互干扰.它可以编译成 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- VxWorks Small-Footprint Configuration
什么是Small-footprint? Small-footprint常见关键配置? 如何配置Small-footprint? 什么是Small-footprint? Small-footprint配 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- POSIX
POSIX能力 VxWorks扩展了POSIX,为了移植,VxWorks提供了额外的POSIX接口作为可选组件.VxWorks实现了POSIX 1003.1(POSIX .1)一些传统接口以及POSI ...
- VxWorks 6.9 内核编程指导之读书笔记 -- Singnals
Signals 信号是操作系统用于异常处理和异步控制流的关键.在很多方面,信号相当于软件方面的硬件中的中断.操作系统产生的信号包括总线错误和浮点处理异常.信号也提供了API来管理和产生信号.在应用程序 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- C++开发
5.1 介绍 针对C++的VxWorks配置 C++头文件 使用C++启动任务 C和C++之前调用代码 C++编译器说明 在信号处理和ISR中使用C++ 下载C++编写的内核模块 C++编译器的不同 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- VxWorks Kernel application (二)
#1 内核对象的静态实例化 内核对象的静态实例化 任务的静态实例化 VX_TASK宏用来在编译时声明一个任务对象.该宏带有2个参数:任务名和栈大小.不像taskSpawn函数,任务名称可以是NULL. ...
- 《Java编程思想》读书笔记(二)
三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...
随机推荐
- C# 如何编辑文件的摘要信息
我的以前的测试报告程序需要在倒完测试数据报告后,在文件摘要中加上一些类似版权说明的文字等等. 因此需要对文件摘要信息进行编辑. 我的记忆中以前好像只有office文档才可以又摘要信息, 现在看来基本上 ...
- C# RSA和Java RSA互通
今天调查了C# RSA和Java RSA,网上很多人说,C#加密或者java加密 ,Java不能解密或者C#不能解密 但是我尝试了一下,发现是可以的,下面就是我尝试的代码,如果您有什么问题,我想看看, ...
- 关于C#资源文件操作的总结
// 在这里,我来总结一下关于资源文件的相关操作. //1. 比较常见的有获取资源文件对应的文件流,然后转换到相对应的文件 // 比较典型的做法是通过代码程序集加载指定资源 // 如下通过Assemb ...
- OpenGL中的功能与OSG对应功能 (摘)
将OpenGL中的功能与OSG对应功能进行列举: OpenGL function OpenSceneGraph implementation glClear( GLbitfield mask ) os ...
- 深入NGINX:我们如何设计它的性能和扩展性
为了更好地理解设计,你需要了解NGINX是如何工作的.NGINX之所以能在性能上如此优越,是由于其背后的设计.许多web服务器和应用服务器使用简单的线程的(threaded).或基于流程的 (proc ...
- [Angular2 Form] Use RxJS Streams with Angular 2 Forms
Angular 2 forms provide RxJS streams for you to work with the data and validity as it flows out of t ...
- 《TCP/IP具体解释卷2:实现》笔记--IP多播
D类IP地址(224.0.0.0到239.255.255.255)不识别互联网内的单个接口,但识别接口组,被称为多播组. 单个网络上的组成员利用IGMP协议在系统之间通信. 多播路由器用多播选录协议. ...
- poj3041-Asteroids , 二分图的最小顶点覆盖数 = 最大匹配数
点击打开链接 Konig定理:二分图的最小顶点覆盖数 = 二分图的最大匹配数 题意: 在N*N的网络中有K颗小行星.小行星i的位置是(Ri, Ci).如今有一个强力的武器可以用一发光束将一整行或一整列 ...
- leetcode二分查找问题整理
自从做完leetcode上的三道关于二分查找的题后,我觉得它是比链表找环还恶心的题,首先能写出bugfree代码的人就不多,而且可以有各种变形,适合面试的时候不断挑战面试者,一个程序猿写代码解决问题的 ...
- C++检测一个文件是否存在
ifstream::is_open - C++ Reference http://www.cplusplus.com/reference/fstream/ifstream/is_open/ // if ...