网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月10日漏签0天
嵌入式吧 关注:106,118贴子:491,625
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回嵌入式吧
>0< 加载中...

RTOS调度器是如何快速查找最高优先级任务的?

  • 取消只看楼主
  • 收藏

  • 回复
  • Brandonhit
  • 启动代码
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在实时操作系统(RTOS)的设计中,调度器(Scheduler)是其灵魂。为了保证系统的实时性,调度器必须在极短的时间内确定下一个要运行的任务。对于基于优先级的抢占式调度算法,核心问题是:如何从所有处于就绪态的任务中,快速找到优先级最高的那一个?
今天我们就来深入探讨 RTOS(如 μC/OS-II)中经典的“查表法”,看它如何利用空间换时间,实现 O(1) 时间复杂度。
一 、问题的引入:为什么不用循环?
假设RTOS系统有 64 个优先级(0-63),数值越小优先级越高。我们通常用一个 64 位的变量(或包含 8 个 uint8_t 的数组)来记录任务状态,每一位代表一个优先级任务的状态:1 表示就绪,0 表示未就绪。
最直观的方法是从第 0 位开始向后扫描,直到发现第一个为 1 的位。
最好情况: 第 0 位就是 1,查 1 次。
最坏情况: 只有第 63 位是 1,查 64 次。
这种 O(n) 的算法在实时系统中存在隐患:调度时间不确定(Non-deterministic)。在高频触发的滴答中断中,这种耗时的波动性可能导致任务抖动过大。
后续内容可看网页链接


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回嵌入式吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示