Vworks 操作系统内核.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Vxworks 操作系统内核 Vxworks 内核(wind)的基本功能可以分为如下几类: 任务; 任务间通信 中断服务程序 定时器服务(watchdog timers) POSIX 时钟和定时器 POSIX memory-Locking 接口 任务 任务是代码运行的一个射象,从系统的角度看,任务是竞争系统资源的最小运行单元。 任务结构 实际引用中任务更好的对客观世界的事件做出反应。Vxworks 是多任务环境,每个任务都有自己的上下文(context),记录了任务运行时的 cpu 环境和系统资源状况,context切换时,比保护在任务控制块中(TCP),一备下次调用是恢复运行环境。 Context 包括:任务号,CPU 寄存器和浮点寄存器,可变栈几函数调用,标准的输入和输出,延迟时间,时间的大小,内核控制结构,信号处理函数(signal handlers),调用和性能监视。 3,任务状态和任务迁移 实时系统最基本的状况有以下四种: 就绪态(Ready):任务只等待系统分配 CUP 资源。 挂起态(Pend):任务需等待某些不可利用的资源而被阻塞。 休眠态(suspend):如果系统不需要某一个任务工作,则这个任务处于休眠状态。 延迟态(Delay):任务被延迟时所处的状态。 当系统函数对某一个任务进行操作时,任务从一种状态跃迁到另一种状态。处于任一状态的任务都可被删除。VxWorks 的任务跃迁如图 1 所示。 ready ? pend semtake() /msgQReceive() ready ? delay taskDelay() ready ? suspend taskSupend() pend ? ready semGive()/msgQsend() pend ? suspend taskSuspend() delay ? ready expired delay() delay ? suspend taskSuspend() suspend ? ready taskResume()/ taskActiveate() suspend ? pend taskResume() suspend ? delayed taskResume() kernelTimeSlice() control round-robin scheduling taskPrioritySet() change the priority of a task taskLock() disable task rescheduling taskUnlock enable task rescheduling 优先级抢占方式 抢允许、禁止; 如果任务设置了抢占允许位,当此任务处于运行态时,如果高一级优先级任务因某各系统调用阻塞态或挂起态迁移为就绪,则此高优先级任务会立即抢占当前任务 的运行,如果设置了禁止,则当前任务不可被处于就绪的高优先级任务抢占,继续运行阻塞, 刮起或者改变抢占设置为止。Wind 有 256 优先级,(0-255)0 的优先级最高,255 最低。在程序运行中,可通过 taskPriorityset 设置改变优先级。 轮询方式: 时间轮转的方式; 通过 KernelTimeSlice()函数为任务分配时间片; 优先级锁 通过 taskLock() 和 TaskUnlock()函数设置抢占方式; 任务控制: 任务控制包括:任务创建、控制、信息。tsakSpawn() create and activate a new task; taskInit() InitiaLize a new task taskActivate Activate an initialized task taskSpawn()函数可以做底层分配和初始化和任务激活,。初始化和激活函数分别是 taskInit ()和 taskActivate(); 如果你不给你的应用程序中任务起名,vxworks 会给每个没有名字的任务器名字,名字统一格式为 tN,N 是十进制数,每次加 1; taskName() get the task name associated with a task Id taskNameToId() look up the task ID associate with a task name. taskIdSelf() get the calling task ID taskidVerify() Verify the existence of a specified task taskSpawn( char *name //名称 int priority //任务的优先级int options //任务可选项 int stacksize //任务堆

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档