首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心计算机论文计算机理论
   实时嵌入式系统中的一种互斥方法      ★★★ 【字体: 】  
实时嵌入式系统中的一种互斥方法
收集整理:佚名    来源:本站整理  时间:2009-01-10 12:06:19   点击数:[]    

必担心会发生意外。但是这种方法的效率有点低下,执行Func()时已经是最高优先级状态了,却还要再设置,浪费了CPU时间,在嵌套次数较多时效率问题将更加严重。另一方面我们不能轻易将函数Func()中的互斥手段去掉,因为这要考虑在其它没提供互斥手段的情况下调用Func()。基于上述原因,我们引入一种高效的方法——嵌套计数法。

3.3最高优先级法的嵌套计数实现
    先来定义操作规则:COUNT为系统中的全局变量,初始化为0。
PriorityProtect()
{
  if(!COUNT) ……(1)
  利用具体的系统调用把当前任务设成最高优先级 ……(2)
  COUNT++; ……(3)
}
  UnPriorityProtect()
{
  COUNT--;……(4)
  if(!COUNT) ……(5)
  利用具体的系统调用把当前任务设成原先的优先级……(6)
}
  再来分析一下这种方法的安全性。COUNT是全局变量,对它的访问要防止竞争条件。但巧妙的是一旦我们把任务用操作系统原语调用设成最高优先级后,对COUNT的访问将是独占的;一个任务首次调用PriorityProtect()时在语句(1)处有竞争条件,但一次只能有一个任务通过(2)处的原语成为最高优先级,只要我们正确地配对使用这两个函数,当这个任务最终退出最高优先级状态时COUNT必为0,并不影响其它任务在(1)处的判断。这种方法的高效性也是明显的,在嵌套使用的里层仅仅进行嵌套计数的计算,并不用进行优先级的设置。

4 结论

尽管不同的实时嵌入式操作系统给用户提供的系统调用接口不尽相同,但是它们所准遵循的基本原理都是相同的。上述关于禁止任务抢占的普通实现以及嵌套计数实现提供的都是实现思想,在实际应用中很容易结合所使用的具体的操作系统写出PriorityProtect()和UnPriorityProtect()的实现代码。
[1] Labrosse Jean J,uc/OS-II-源码公开的实时嵌入式操作系统,邵贝贝译,北京:中国电力出版社,2001.
[2] 孔祥营等,嵌入式实时操作系统VxWorks及其开发环境Tornado,北京:中国电力出版社,2001.

上一页  [1] [2] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:资讯伦理守则现况:以社会层级及伦理议题分析

  • 下一篇文章:信息商品化及其对社会的影响初探
  • 返回上一页】【打 印】【关闭窗口
    中查找“实时嵌入式系统中的一种互斥方法”更多相关内容 5VAR论文频道
    中查找“实时嵌入式系统中的一种互斥方法”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››中小企业办公自动化系统的设计与实...
  • ››未雨绸缪:关于我国电子商务税收对...
  • ››网上书店为钱做秀 行业走势两极分...
  • ››Win2000索引服务的WEB应用
  • ››宽带化――电信发展的必由之路务
  • ››电子商务中x种错误思路和做法
  • ››网络营销与传统营销相比有何优势
  • ››Internet的下一个热点 从内容走向服...
  • ››基于CNAPS的流水号管理方法
  • ››网络时代的财务与会计:管理集成与...
  • ››实时嵌入式操作系统μC/OS-II在MP...
  • ››实时嵌入式系统中的一种互斥方法
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .