《任务挂起.docVIP

  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文档。上传文档
查看更多
《任务挂起

在多任务实时系统中,任务状态有四种:①执行状态(execute),表示正在执行中这种状态的任务只能有一个,由优先数决定。②挂起状态(suspend)表示暂时停止。机器正在进行输入输出等待或事件等待,所有任务一旦处于挂起状态,机器就在操作系统内循环。③就绪状态(ready)表示准备完了,一旦来通知就可以继续执行,或者由于优先数高的任务先执行,而优先数低的处于执行等待状态。④静止状态(dormant)或称潜伏状态,作为任务已经消除,不能执行的状态。所有的任务都处于静止状态时,表示该程序执行完毕。 转载请注明来自:/Knowledge/nPost/nPost_52144.htm uC/OS-II任务挂起和任务延时的异同: 同:二者都使任务进入等待状态。处于等待状态的任务不处于就绪状态,任务在就绪任务表中登记的就绪标志被取消,任务不可能被调度。 异:挂起的任务只能在其他任务中通过调用恢复函数OSTaskResume()使其恢复为就绪状态,否则将不可能再次被运行(因为它没有就绪),而延时的任务可以在延时时间到时自动恢复就绪状态,即使没有其他任务调用取消延时函数OSTimeDlyResume()。 任务挂起是怎么回事就相当于操作系统中将进程挂起的操作,可以查看itron的源代码,只要有操作系统的原理知识就可以解决了。itron里边的任务有三个状态 1 run 2 ready 3 (广义挂起)?? ?3.1 waiting ?3.2 suspended ?3.3 dormant ?3.4 no-existing 一个任务可以在三个状态之间切换,再具体可以看相关资料ready到waiting,,一个task在ready下时,这个task其实是可以执行的,但是有比他优先级更高的task在执行,当前task只好reay.这个task需要等待某一事件的发生比如说一个semaphone,他就跳转到waiting. waiting到ready,这个semaphone解除了,当前task又从waiting跳转到ready。可以看下资料把那几个状态的跳转关系看一下,就明白了状态大致如6楼所说,但在必威体育精装版的4.0系统上多了个二重等待状态理解一:挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则是不同的事件或资源(如信号量)就有自己的队列。 理解二:阻塞(pend)就是任务释放CPU,其他任务可以运行,一般在等待某种资源或信号量的时候出现。挂起(suspend)不释放CPU,如果任务优先级高就永远轮不到其他任务运行,一般挂起用于程序调试中的条件中断,当出现某个条件的情况下挂起,然后进行单步调试。 理解三:pend是task主动去等一个事件,或消息.suspend是直接悬挂task,以后这个task和你没任何关系,任何task间的通信或者同步都和这个suspended task没任何关系了,除非你resume task; 理解四:任务调度是操作系统来实现的,任务调度时,直接忽略挂起状态的任务,但是会顾及处于pend下的任务,当pend下的任务等待的资源就绪后,就可以转为ready了。ready只需要等待CPU时间,当然,任务调度也占用开销,但是不大,可以忽略。可以这样理解,只要是挂起状态,操作系统就不在管理这个任务了。 理解五:挂起是主动的,一般需要用挂起函数进行操作,若没有resume的动作,则此任务一直不会ready。而阻塞是因为资源被其他任务抢占而处于休眠态。两者的表现方式都是从就绪态里“清掉”,即对应标志位清零,只不过实现方式不一样。 操作系统中睡眠、阻塞、挂起的区别形象解释 首先这些术语都是对于线程来说的。对线程的控制就好比你控制了一个雇工为你干活。你对雇工的控制是通过编程来实现的。 挂起线程的意思就是你对主动对雇工说:“你睡觉去吧,用着你的时候我主动去叫你,然后接着干活”。 使线程睡眠的意思就是你主动对雇工说:“你睡觉去吧,某时某刻过来报到,然后接着干活”。 线程阻塞的意思就是,你突然发现,你的雇工不知道在什么时候没经过你允许,自己睡觉呢,但是你不能怪雇工,肯定你这个雇主没注意,本来你让雇工扫地,结果扫帚被偷了或被邻居家借去了,你又没让雇工继续干别的活,他就只好睡觉了。至于扫帚回来后,雇工会不会知道,会不会继续干活,你不用担心,雇工一旦发现扫帚回来了,他就会自己去干活的。因为雇工受过良好的培训。这个培训机构就是操作系统。 内存暂处理不过来的程序,称之为挂起程序 就是该程序未处于运行状态,但也没有被结束,只是暂时冻结 挂起 就是进入后台操作 前台看不见 我们能看到的

文档评论(0)

xiayutian80 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档