啥进idle进程,cpu 为啥会执行idle进程空转
idle 进程,也就是0号进程,不参与schedule机制,当系统中没有任何进程可以调度(就绪队列为空),cpu会进入该进程。多cpu系统中每个cpu一个idle。void cpu_idle (void){ ... while (1) { void (*idle)(void) = pm_idle; if (!idle) idle = default_idle; while (!current-\u0026gt;need_resched) idle(); schedule(); ...}
内核初始化后,所有core都会进入该函数。`pm_idle`为电源管理idle函数不讨论。所以使用`default_idle`。#define safe_halt() __asm__ __volatile__("sti; hlt": : :"memory")
进入`default_idle`后,会执行hlt, 也就是硬件停机,处于该状态时cpu不能执行任何指令,只有通过中断请求才能唤醒。中断函数中设置`need_resched`就会进入`schedule`又开始正常进程调度。否则继续idle。
■网友
系统空闲进程,一般优先级最低,系统没事干的时候就执行它。实际上在某些系统会在idle中处理一些内存回收之类的事情。其存在的原因是为了让调度器有事情做,要不然所有的进程全挂起了调度器会很郁闷的。
推荐阅读
- 安卓后台进程经常被杀是一种怎么样的体验
- 为啥我软件点了结束任务,但是进程仍然在进行
- 同治■这场重量级医学年会在扬州举行,聚焦“脑心同治”的中西医结合防治进程
- 无锡举行长三角一体化进程中的江南运河文化高层论坛
- linux主机之间的进程间通信和主机内部的进程间通信的socket有啥区别
- 求证进程中的地址空间对应了那些东西
- BusinessCars|全面布局“三电”自研,沃尔沃电气化进程再进一步
- [智能]锻造高质量发展硬实力 泰州:加速智能制造进程
- |没有一个学生因贫失学 徐州市加快农村良好教育生态建设进程
- 趣头条|飞行汽车研发进程:上天容易,想要“落地”有点难