- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 VxWorks操作系统的基本组件2.1VxWorks任务:任务调度基于优先级,且是可抢占式调度方式。2.1.1内核实现基本原理tick队列:Delay状态,无资格竞争使用CPUready队列:以优先级为序,有资格竞争使用CPUactive队列:系统中所有任务pend队列:竞争的资源当前不能用任务分成256个优先级,从0到255,其中0最高,255最低。可用taskPrioritySet函数重新设定任务优先级。任务在设计中由一个数据结构表示,此数据结构包含任务运行时所需信息,即任务上下文,其具体内容有:所在平台CPU内部所有的寄存器值、任务运行时暂时存放函数变量及函数调用时被传递参数的栈、各种定时信息、信号处理函数和其他辅助信息。2.1.2任务操作函数RR调度,通过kernelTimeSlice函数使能。taskPrioritySet函数,通过改变任务优先级来控制调度。taskLock关闭任务调度和taskUnlock重新开启任务调度,只有taskUnlock才能取消taskLock的作用。任务创建函数taskSpawn,调用后任务就进入运行状态。taskCreate可创建任务后,暂时使其挂起,需要taskActivate来激活。2.1.3深入了解任务栈通用操作系统的进程栈分为内核态栈和用户态栈,而VxWorks只有一个栈。其任务栈在初始创建后就不可在后期动态地增加内存容量。2.1.4任务名长度问题VxWorks支持任意长度的任务名,不要求任务名的全局唯一性。taskShow函数只打印任务名前11B。2.1.5正确结束任务任务正常运行到结束,通过exit函数结束;被直接删除,即非正常方式结束。VxWorks下exit函数用于结束一个任务的寿命,其底层调用windDelete函数完成表示任务的数据结构的释放和任务栈的释放。taskDelete可非正常结束任务,而 taskSafe和taskUnsafe可防止在预先无任何提示的情况下被其他任务删除。taskSuspend可挂起一个正在执行的函数,taskResume可取消taskSuspend的作用,taskDelay置正在运行的任务为睡眠状态。2.1.6任务的钩子函数——黑客机制VxWorks提供一种机制可让用户注册一种钩子函数,当系统有心得任务被创建,一个任务消亡及任务调度时,可执行用户注册的这些函数,从而达到用户的特殊目的。当VxWorks下无用户任务时,VxWorks将执行Idle任务,此任务有最低优先级。2.2VxWorks任务调度算法——基于优先级的抢占式调度进程调度时机:从内核状态退出之时。从内核状态退出时有两个渠道:系统调用和中断。系统时钟中断作为固定的进程调度时刻点,是进程调度的脉搏,并非间隔越小越好。实时操作系统必须迅速响应外部中断。CPU主频越高则系统的实时性越好。VxWorks的内核态仅由内核布尔变量kernelState表示,其本质即保护内核数据结构,防止多处代码对内核数据结构的同时操作。kernelState为TRUE时表示代码运行在内核状态。windExit可退出内核态,此函数除了将kernelState设为FASLE外,还运行内核工作队列中延迟的工作以及进程调度。中断分为时钟中断和其他硬件中断。一个嵌入式系统一定要有硬件中断。2.3VxWorks任务间通信策略通过MMU机制进行管理时,内存空间分成虚拟内存空间和物理内存空间。每个任务都有自己的内存映射表。无MMU机制时,虚拟地址就是物理地址,此时不同任务的地址空间必须严格隔离开。对于任务间通信,本质就是在使用共享物理内存的机制。有5种:信号量、消息队列、管道、网络Socket、信号机制。2.3.1信号量信号量的主要用途是互斥和同步。互斥即某个时刻只允许有一个任务在使用该资源;同步即任务间协同完成某一项共同工作的机制。2.3.2消息队列消息队列内核实现上实际是一个结构数组,每个消息的最大长度是固定的,满时任务等待基于的策略:FIFO或者优先级排序。2.3.3管道管道不对传递信息做任何包装,直接分配一块连续的内存空间作为任务间信息交互的中转站。本质上,管道只是在消息队列之上提供了文件系统层次的支持。2.3.4网络套接字SocketSocket的特殊在于通信的任务双方不需要限制在同一台PC上,可以是联网的任何两台计算机上的任务。2.3.5任务间通信的特殊机制:信号信号是用于通知一个任务某个事件的发生。有些类似中断。2.4VxWorks内存管理——虚拟地址空间支持内存管理包括:是否使能MMU、操作系统如何安排各组件在物理内存的布局、如何提供接口可让BSP开发人员提供内存映射的关系、是否提供某种策略可让用户预留一段物理内存以供私用。以ARM为例:使用MMU之前要在内存创建一张页表,对ARM而言,此页表有两
您可能关注的文档
- 2015《一带一路》与广西《双核驱动》发展战略.doc
- 2015专业就业-理科女生适合报考的事务型专业.doc
- 20150608.招标文件新改.doc
- 2015中国智能手机最后一班轮渡.docx
- 2015中级会计“会计实务”专项冲刺多选练习.doc
- 2015中级会计职称中级会计实务答疑精选[六].docx
- 2015中级会计职称知识点“中级会计实务”:资产负债表日后事项部分.docx
- 2015中级会计职称财务管理答疑精选[三].docx
- 2015中西医助理医师“中西医结合内科学”大纲.docx
- 2015事业单位时政热点-详解公务员职务与职级并行制度.doc
- 中奥到家集团有限公司环境、社会及管治报告.pdf
- 江苏南大苏富特科技股份有限公司环境、社会及管治报告 2021.pdf
- 超威动力控股有限公司二零二一年环境、社会及管治报告.pdf
- 兴纺控股有限公司环境、社会及管治报告 2021.pdf
- 鸿腾六零八八精密科技股份有限公司2021年环境、社会及管治报告.pdf
- 金嗓子控股集团有限公司环境、社会及管治报告 2021.pdf
- 联邦制药国际控股有限公司2021环境、社会及管治报告.pdf
- 云能国际股份有限公司二零二一年环境、社会及管治报告.pdf
- 稻香控股有限公司2021年环境、社会及管治报告.pdf
- 佳源服务控股有限公司2021 环境、社会及管治报告.pdf
文档评论(0)