为什么用户态和内核态切换的开销大呢?

新手上路,请多包涵

一直以来我们都说用户态和内核态切换的开销大,但是为什么呢,它的主要开销在哪里呢?

阅读 12.5k
3 个回答

操作系统要保存和恢复一些寄存器、内存数据等进程上下文数据,至少一次的必然进程调度,内核切换的权限安全检查,系统调用和中断触发都可能有硬件驱动进行一些处理操作,综合下来开销挺大的,而且一秒钟内,由于多进程,会有很多次不同进程会频繁进入退出内核态,叠加起来,每一个进程进出内核态的开销时间和总体所有进程进出内核态的总开销时间就都会很大。

上下文切换吧,一个cpu要么在用户态工作,要么在内核态工作,你切换的话多多少少得消耗点资源吧。