当前位置: 首页 > news >正文

白银区住房和城乡建设局网站手机做个人简历

白银区住房和城乡建设局网站,手机做个人简历,甜点的网站建设规划书,网站带后台模板大家好#xff0c;上篇文章写的一个中断操作变量的问题#xff0c;鱼鹰帮忙回复了#xff0c;大家可以再看看这篇文章。好友让我看这段代码CM3位带操作如果存储器系统支持“锁定传送”#xff08; lockedtransfers#xff09;#xff0c;或者总线上只有一个主机#xff… 大家好上篇文章写的一个中断操作变量的问题鱼鹰帮忙回复了大家可以再看看这篇文章。好友让我看这段代码CM3位带操作如果存储器系统支持“锁定传送” lockedtransfers或者总线上只有一个主机还可以使用CM3的位带功能来实现互斥锁的操作。通过使用位带则可以在C程序中实现互斥锁但是操作过程与互斥访问是不同的。在使用位带来做资源分配的控制机制时需要使用位带存储区的内存单元比如一个字该内存单元的每个位表示资源正被特定的任务使用。在位带别名区的读写实质上是锁定的“读‐改‐写”在传送期间总线不能被其它主机占有。因此只要每个任务都仅修改分配给它们自己的锁定位其它任务锁定位的值就不会丢失即使是两个任务同时写自己的锁定位也不怕如图                          以两个任务为例看如下情况红色箭头代表跳转执行任务2首先读取并判断之后因某种原因跳转到任务1执行读取、判断、设置操作又因为某种原因在设置完之后又跳转到任务2去进行设置、读取操作后来又到任务1去执行读取并判断操作发现有其它位置1则放弃该资源然后当运行任务2时因为还是之前的数据所以认为最终的判断认为有其它任务占用也放弃该资源。最终的结果就是两个任务都放弃了该资源。但这种情况很少见因为这需要在几条指令中来来回回跳转才会发生这种情况一般情况是整个操作流程只会被其它任务中断一次。再来分析以下执行流程任务1在读取完之后任务2设置了占用标志然后回到任务1判断结果就是任务1占用资源即使后续又被任务2中断了任务2也是会读取到任务1的占用标志从而放弃资源。以下是中断判断操作判断未执行之后可能跳转的位置自行分析关键在于设置。那么位带别名操作避免的是什么呢其实就是用于避免读-改-写的操作中因为中断导致其它任务设置的数据因为最后写的步骤而丢失了。如下因为在设置的时候发生中断导致任务2设置但是因为中断的是设置操作所以当回到设置的时候读取的数据还是之前的数据此时再进行设置操作必然导致任务2的设置操作丢失并最终导致严重后果。再深入思考后发现这些操作的关键在于你设置标志后判断你是否真的拥有该资源。那是否可以将前面的读取判断操作省去而直接去设置该标志呢我认为是可以的但是这里有一个缺点就是因为你不管有没有其它任务设置标志都自己去设置一旦在有其他任务设置的情况下设置标志你就必须进行清除自己标志的操作加上你之前设置的操作明显比先判断之后再进行设置操作效率更低。那么是不是说如果没有位带操作就没办法进行互斥访问呢当然不是简单的方法是关中断的方式但通过先前的分析发现其实关键点在于别破坏其他设置的标志即可这样我们可以把字节当位来看也是可以的你设置你的字节标志我设置我的字节标志互不干扰一样可以达到位带操作的效果只是空间占用更大一些罢了。但是单片机最大的读取类型是double型数据在stm32中即为8字节也就是说可设置的最大任务数就是8个任务而位带操作为8*864个任务但是是否可以采用多次判断的方式增加任务数呢比如两个double组合使用时利用两次判断两个变量的方法确定是否占用资源。这是一个解决方法但是这个方法是否存在风险呢通过后面的分析其实可以得到答案。再进行深入思考之后你就会发现最为关键的就是设置之后的“读取”这个确认操作这个操作是整个资源锁定操作的分水岭。在整个操作流程中不管哪个操作被中断然后被其它任务设置标志位关键都在读取这一步谁将变量读取到寄存器时没有其他任务设置标志位中谁就占用了资源。两个任务在宏观上可以认为在同时执行但是在执行读取操作的时候如果两个任务同时进行到了这一步必然有一个先后不管谁先谁后只要对方没有在你读取前放弃占用都会放弃占用而如果说真存在同时读取两个cpu的情况那么必然是同时放弃资源的结果。既然已经执行到了读取操作那么就必然进行了设置操作也就是说两个人同时设置了标志位都准备占用资源不管谁进行读取最终的结果就是资源已经被占用之后就是放弃了即使任务在在读取后马上被中断判断的操作但却不会影响该任务后续的判断、放弃操作了因为你读取的数据已经决定了该任务的所有后续操作所以关键操作就是读取操作你读取的到底是什么数据。那么最糟糕的情况就如前面所说两个任务的在读取之后都发现被其他任务占用然后都放弃资源然后我们再分析其他可能性两个任务的读取的数据理论上有四种可能11100100。但是实际上00是可以排除的因为读取之前必然已经进行了设置那么除了该任本身的标志位外只有其他任务可能设置的标志位了即要么设置要么没设置。如果设置了又分为两种情况如果另一个任务已经放弃了占用那么它就可以占用资源如果该任务在读取之前另一任务没有放弃资源那么就放弃资源。用图表示可能更清晰一些其实进行深入分析之后可以发现就是之前所说的两个关键操作它们的先后顺序而决定是否占用资源的关键操作就是读取操作。谁先读取到没有其他任务占用的情况谁就占用了该资源。现在再来考虑有没有可能出现两个任务读取操作之后发现对方都没请求占用资源而同时占用资源的情况我们知道互斥操作为的就是避免这种情况而特意设定的操作流程如果这种情况不能避免分析再多都没用。事实上这种情况是不可能出现的因为一个任务在读取的时候这个任务已经设置完本任务的标志位了一旦读取之前另一个任务没有设置标志位就算是占用了资源然后另一任务在读取的时候必然是有任务占用的结果就会放弃占用就不会存在这个任务读取时没任务占用另一个任务读取的时候也没占用因为同一时间只能有一个任务先进行读取操作不可能同时即使是同时进行读取操作最终的结果也只是同时放弃资源罢了。也就是说在在设置操作后给了任务两种可能性占用或不占用同时也避免了两个任务同时占用的情况。所以之前的遗留的问题答案是不会有风险因为最糟糕的情况也只是两个任务同时放弃资源。总之一句话谁读取时没其他任务占用不管后面发生什么情况这个资源我占定了。---------------------------------------------------------------------------------------2018-08-18Osprey在上面的互斥量问题的思考中我们可以得出一个结论读取的数据是什么决定了你接下来的动作是什么并且按照先前的探讨可以发现即使不关闭总中断也不会导致资源使用的混乱问题正是基于此考虑认为很多情况下是可以不关闭中断的但是当我看到如下uCOS II源码的时候认为不关闭中断也是可以的但是进行深入思考发现必须关闭中断才行。看如上消息邮箱OSMboxPend的源码可以发现在读取消息指针的时候就关闭了中断但是按照先前的思考即使没有关闭中断大不了在读取过程中被中断然后将OSEventPtr设置为非零状态。但是不会影响后面的判断操作但是真的如此吗从上面两种情况分析可以发现在不关闭中断的情况下确实可以保证判断语句正确执行这里假设pmsg pevent-OSEventPtr;这条C语言语句需要3条汇编语句操作执行但是最终根据读取的pmsg值进行判读后的结果却会导致两种截然不同的效果。一个是直接返回当前任务正常执行另一种情况是将当前任务设置为等待状态除此之外可能还会有影响整个系统混乱的操作这是绝对不允许的情况。在之前分析共享资源的互斥量时发现也会出现这种情况但是为什么却不会没事呢这是因为最糟糕的情况就是都获取不到共享资源而一般来说都获取不到资源的虽然少见但在之前那种不管中断操作的情况下确实会出现但是即使都获取不到资源也不会导致系统严重后果因为一般来说当自己没有获取到资源的时候下次还会继续尝试获取另一个任务同样如此在不管中断的情况下只是导致重新获取资源的话这是可以接受的一种情况。但是现在分析的这种情况却不允许因为本来能正常运行的你却让它进入等待状态很可能导致严重的后果。所以在判断问题上如果打断判断的不同结果会导致非常严重的后果那么最好将读取、判断、分类动作设置成原子操作不可打断的操作而将整个流程设置成原子操作的一般方法就是关中断。--------更新2018/08/23 Osprey
http://www.huolong8.cn/news/43570/

相关文章:

  • 深圳涂料网站建设外贸数据分析网站
  • 前端做微网站做外贸的数据网站
  • 阿里网站搭建给网站做伪静态
  • 网站关键词方案网站建设难度大吗
  • 导购类网站怎么做的wordpress模板仿新版虎嗅huxiu-new主题
  • 网站建设外包合同7k7k网页游戏官网
  • 备案需要写网站建设方案书室内设计师网上培训班
  • c 做网站教程做票据业务的p2p网站
  • 网站建设有什么优势低代码开发软件
  • 建立网站需要多少钱八寇湖南岚鸿团队广告设计与制作合同范本
  • 大型网站制作公司飞数长沙网络营销网站建设
  • 万寿路网站建设加强网络舆情监测
  • 莱西大型网站建设wordpress 最好的编辑器
  • 建设银行手机登陆网站越南外贸平台
  • diy建站系统wordpress 默认编辑器
  • 网站如何做反爬wordpress网站设置关键词设置
  • 网站备案信息查询wordpress 看不到主题
  • 嘉兴网站建设搭建网站建设项目实训报告书
  • 漳州台商投资区建设局网站大连建站免费模板
  • 眉山网站建设哪家好wordpress rss 抓取
  • wordpress 企业网站没备案的网站收录
  • 网站程序开发成都公司建站模板
  • 杭州的电商网站建设网站建设合作协议文本
  • 培训加盟网站建设自适应网站做1920的
  • 免费做微网站做卡贴的网站
  • 如何做一个导航网站动态门户网站建设价格
  • 企业对做营销型网站有什么优势模拟建设官方网站
  • 公司用dw做网站吗wordpress关闭缩略图
  • 网站维护要学多久优秀免费h5页面制作
  • 国家建设执业注册中心网站如皋网站定制