热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Threadx优先级翻转优先级继承

优先级翻转优先级翻转是指较低优先级已经获得临界资源,这时较高优先级线程也需要获得的这个临界资源时,较高优先级线程会被挂起,等待资源释放。如果这时中等优先级任务抢占了低优先级任务,就




优先级翻转

优先级翻转是指较低优先级已经获得临界资源,这时较高优先级线程也需要获得的这个临界资源时,较高优先级线程会被挂起,等待资源释放。如果这时中等优先级任务抢占了低优先级任务,就出现了低优先级任务先执行,高优先级任务在等待,而且时间也变得不确定。

实时系统最大特点就是高优先级任务能够在确定时间进行响应,并且能够抢占低优先级任务。优先级翻转现象打破了这种规则,使系统变得不稳定。

举例:

1,线程a执行,并获取了互斥量M

2,线程b抢占了线程a

3,发生中断,唤醒了线程c,把线程c加到了就绪队列,并且线程c是所有就绪线程中优先级最高线程。线程c执行并企图获取互斥量M,由于未能获取,自我挂起。切换到线程b继续执行。

4,直到线程b执行完,切换到线程a,线程a释放互斥量M,高优先级线程c才能继续执行。

高优先级线程c的执行响应时间发生了不确定性。

在这里插入图片描述

解决线程优先级翻转方法:

1,应用开发者通过合理设置线程优先级和资源来防止优先级翻转

2,低优先级线程获取共享资源时,可以设置抢占门限避免中等优先级的线程抢占执行

3,线程可以用互斥量的优先级继承选项来排除不确定的优先级翻转。


优先级继承

优先级继承是指 高优先级的线程申请被低优先级线程占有的互斥量时,低优先级会得到高优先级,当低优先级线程释放互斥量后,会恢复到原来的优先级。 也就是让低优先级任务短暂变为高优先级,阻止了中等优先级的抢占。

Threadx系统中只有互斥量有优先级继承选项,信号量没有。

参考:嵌入式实时操作系统的多线程计算






  • 点赞



  • 收藏



  • 分享




    • 文章举报






osnet
发布了29 篇原创文章 · 获赞 2 · 访问量 2718
私信

关注

推荐阅读
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • 探讨架构师在项目中应如何平衡对产品的关注和对团队成员的关注,以实现最佳的开发成果。 ... [详细]
  • 前端开发:从底层到顶端的行业现象解析
    在编程领域,鄙视链现象屡见不鲜,从C语言到Java、.NET等,每个技术栈都有其独特地位。然而,前端开发者尽管常处于鄙视链底端,却在市场需求中备受青睐。本文深入探讨这一现象,并分析前端工程师如何在竞争激烈的市场中脱颖而出。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • PHP插件机制的实现方案解析
    本文深入探讨了PHP中插件机制的设计与实现,旨在分享一种可行的实现方式,并邀请读者共同讨论和优化。该方案不仅涵盖了插件机制的基本概念,还详细描述了如何在实际项目中应用。 ... [详细]
  • 在Java中,this是一个引用当前对象的关键字。如何通过this获取并显示其所指向的对象的属性和方法?本文详细解释了this的用法及其背后的原理。 ... [详细]
  • 使用 GitHub、JSDelivr、PicGo 和 Typora 构建高效的图床解决方案
    本文详细介绍了如何利用 GitHub 仓库、JSDelivr CDN、PicGo 图床工具和 Typora 编辑器,搭建一个高效且免费的图床系统。通过此方案,用户可以轻松管理和上传图片,并在 Markdown 文档中快速插入高质量的图片链接。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文详细介绍了C语言中的指针,包括其基本概念、应用场景以及使用时的优缺点。同时,通过实例解析了指针在内存管理、数组操作、函数调用等方面的具体应用,并探讨了指针的安全性问题。 ... [详细]
  • 本文探讨了通过非官方渠道在苹果手机上安装已下架的迅雷应用程序的方法及潜在风险,重点讨论了信任开发者可能带来的安全问题。 ... [详细]
author-avatar
牛玺峻国_781
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有