- 1、本文档共94页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.1 基础知识 5.1.2 setjmp.h头文件 5.1.3 变量命名规则 5.1.4 范例分析 5.1.5 setjmp与longjmp的实现 5.2 最简单的多任务模型 5.3 协作式多任务操作系统 (TinyOS51 V1.0) 5.4 时间片轮询多任务操作系统(TinyOS51 V1.1) 5.5 信号量 (TinyOS51 V1.2) 5.6 消息邮箱 (TinyOS51 V1.3) 第5章 TinyOS51嵌入式操作系统 时间片轮询调度算法: 在分时系统中,一般采用“时间片轮询”调度算法,这是一种绝对公平的思想策略。首先将MCU的执行时间划分为若干个时间片,然后让处于就绪状态的任务,按顺序轮流占有MCU。当时间片用完时,即使任务没有执行完毕,则系统也会无情地剥夺该任务使用MCU的权利。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第5章 TinyOS51嵌入式操作系统 优先级调度算法: 为了满足任务的紧迫性和重要性,将任务划分为不同等级区别对待,优先级高的先执行,优先级低的后执行,且优先级高的任务可以暂停正在执行的优先级低的任务,当优先级高的任务执行完毕后,在继续执行暂停的优先级低的任务。 对于同优先级的任务,则使用时间片轮询调度算法。如果要求所有任务的优先级必须不同,这就是“完全基于优先级的调度算法”。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第5章 TinyOS51嵌入式操作系统 带优先级的时间片轮询调度算法: 当今的商业社会,企业为了实现利益的最大化,常常为优先级高的客户提供更多的服务,为优先级低的客户提供相对较少的服务。。 带优先级的时间片轮询调度算法就像企业对待客户一样,将任务划分为优先级(等级),对优先级高的任务可以分配更大的时间片,对优先级低的任务则分配较少的时间片,同时也让所有任务都得到执行。 此算法的操作系统中, 有2种情况下进行任务切换: 任务主动请求调度 分配给任务的时间片已到 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第5章 TinyOS51嵌入式操作系统 任务时间片的切换: 对于不是任务主动放弃CPU控制权而进行的任务调度,就是抢占式任务调度。 事实上,所有的操作系统都是使用一个周期性的中断来管理时间片的,在这个中断服务程序中判断任务是否用完自己的时间片。 除了协作式多任务操作系统外,其他的多任务操作系统都只在2个时刻进行任务切换,即任务主动调用OS提供的函数时,或中断服务程序结束时。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第5章 TinyOS51嵌入式操作系统 5.4.2 整体规则 1、内核API 在协作式多任务操作系统中,如果其中一个任务死掉,则可能造成整个系统崩溃。 为了克服TinyOS51 V1.0这个缺点,在TinyOS51 V1.1上添加了最简单的时间片轮询多任务调度算法,“在每个时钟节拍中断时调度”,即每次分配给任务的时钟节拍数都是一个时钟节拍。 TinyOS51 V1.1为时间片轮询多任务操作系统,因此用户不在使用任务切换函数,它仅提供给内核使用,并更换为_tnOsSched()。下表为新增的延时函数和用户中断函数。程序范例见5.23(P211) Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第5章 TinyOS51嵌入式操作系统 Evaluation only. Created
文档评论(0)