【RTOS】低优先级任务在执行过程中高优先级任务在干什么
在操作系统中,低优先级任务想要得到CPU的使用权,是建立在高优先级任务遇到阻塞语句的前提下,比如等待事件标志、等待消息、等待信号量、遇见延迟函数等
而在低优先级任务执行过程中,高优先级任务在干什么,或者说CPU在干什么
在抢占式操作系统中,高优先级任务是不会等待低优先级任务彻底执行完毕后,通过调度器切换任务而获得CPU使用权,而是高优先级任务的就绪条件一满足就会立刻夺过CPU的使用权,暂时中断正在执行的低优先级任务,但CPU在执行低优先级任务时,是如何实时知道高优先级任务就绪了呢,由结果倒推原因,那就是CPU不是一直特别专一的只执行低优先级任务,而是有一个大扫描,会实时检测高优先级任务的运行条件是否已满足,一旦满足就会发生抢占事件,否则继续执行低优先级任务
其实仔细研究过操作系统后便知,这是操作系统的任务切换机制,操作系统跟人一样必须有一个心跳,整个系统按照这个心跳有序正确的工作,这个心跳就是系统时钟,系统时钟一般是由定时器产生,每隔一定时间便产生一次中断,系统便在这个中断里做一些事情,这当中就包括调度器的任务切换,即一次中断到来后便检测高优先级任务的就绪条件是否满足,条件满足则切换任务,不满足则继续执行当前任务,这就在现象上表现出,操作系统能实时知道高优先级任务何时就绪了,以便切换到高优先级任务而执行
再牛逼的梦想也架不住傻逼似的坚持
分类:
RTOS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧