CPU上下文切换:
就是先把前一个任务的CPU上下文(CPU寄存器和程序计数器)保存起来,然后加载任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。
切换根据任务的不同分为:
进程上下文切换,线程上下文切换,中断上下文切换。
系统调用和上下文切换:
一次系统调用过程发生两次CPU上下文切换。进程上下文切换是指从一个进程切换到另一个进程运行。而系统调用过程中一直是同一个进程在运行。
触发CPU调度的场景:
1.CPU为每个进程划分时间片,当时间片耗尽,进程会被挂起,同时切换到其它进程。
2.系统资源不足(如内存),进程会被暂时挂起,等资源满足时再运行。
3.进程执行睡眠函数sleep类方法,主动将自己挂起。
4.优先级高的进程运行时。
5.硬件发生中断时。