专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
今天看啥  ›  专栏  ›  嵌入式微处理器

RTOS没有执行任务,CPU在干嘛?

嵌入式微处理器  · 公众号  ·  · 2024-10-08 12:00

文章预览

前几天,有小伙伴问了这样一个问题: RTOS有很多任务,如果没有执行任务了,都在延时等待(如vTaskDelay),或等待事件触发(如xQueueReceive),CPU在干嘛? 从裸机转向RTOS的小伙伴, 不知道你有没有过这样的疑问? 裸机 vs 系统 裸机情况下,就是一个while死循环: int main(void) { /* 初始化 */ while(1) { /* 循环处理多项事情 */ } } 换上RTOS就是为了提高CPU利用率,使其执行多个任务(多个while): void Task1(void) { /* 初始化 */ while(1) { /* 处理事情1 */ } } void Task2(void) { /* 初始化 */ while(1) { /* 处理事情2 */ } } void Task3(void) void Task4(void) ...... 通过对比裸机和操作系统的区别,再结合开篇的问题,你能联想到什么? 裸机情况下,CPU永远都在while(1)大循环中。那么,在操作系统下,CPU除了执行任务中的while,其他时间 都执行到哪儿去了? 答 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览