进程调度的时候会出现上下文切换,从而带来上下文切换的开销,使性能下降
进程什么时候被调度:
- 进程时间片被耗尽,会调度处于等待状态的进程
- 进程在系统资源不足时(例如内存不足),需要等待资源满足后再运行,这时CPU会调度其它进程运行
- 进程调度sleep睡眠时,会调度其它进程运行
- 当有优先级更高的进程时,需要挂起当前进程,运行更高优先级的进程
- 当发生硬件终端时,会挂起当前进程,转而执行内核中的硬件中断程序
过多的上下文切换会把内核时间消耗在寄存器、 内核栈、以及虚拟内存等数据的保留和恢复上,从而缩短进程真正的运行时间,导致系统的整体性能下降