1. 什么是CPU上下文
CPU 寄存器和程序计数器,都是 CPU 在运行任何任务前必须的依赖环境,被叫做CPU上下文。
- CPU寄存器: CPU 内置的容量小、但速度极快的内存。
- 程序计数器:存储 CPU 正在执行的指令位置、或者即将执行的下一条指令位置。
2. 什么是CPU上下文切换
把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。而这些保存下来的上下文,会存储在系统内核中,并在任务重新调度执行时再次加载进来。这样就能保证任务原来的状态不受影响,让任务看起来还是连续运行。
3. CPU上下文切换的类型有哪些
- 进程上下文切换
- 线程上下文切换
- 中断上下文切换
4. 如何从用户态到内核态的转变
需要通过系统调用来完成。
5. 一次系统调用涉及几次CPU上下文切换
涉及两次CPU上下文切换:用户态到内核态,内核态到用户态
6. 系统调用具体过程
- 保存CPU寄存器里原来用户态的指令位置
- 为了执行内核态代码,CPU 寄存器需要更新为内核态指令的新位置,跳转到内核态运行内核任务
- 当系统调用结束后,CPU 寄存器需要恢复原来保存的用户态,然后再切换到用户空间,继续运行进程
7.系统调用和进程上下文切换的关系
- 系统调用过程,通常称为特权模式切换,而不是上下文切换,系统调用属于同进程内的 CPU 上下文切换;进程上下文切换属于不同进