进程切换与模式切换

进程切换

•进程切换指从正在运行的进程中收回处理器,让待运行进程来占有处理器运行

•进程切换实质上就是被中断运行进程与待运行进程的上下文切换,处理过程是:

  •保存被中断进程的上下文

  •转向进程调度

  •恢复待运行进程的上下文

模式切换

•进程切换必须在操作系统内核模式下完成,这就需要模式切换

•模式切换又称处理器状态切换,包括:

  •用户模式到内核模式由中断/异常/系统调用中断用户进程执行而触发

  •内核模式到用户模式由OS执行中断返回指令将控制权交还用户进程而触发

模式切换的基本工作任务

•中断装置完成正向模式切换,包括:

  •处理器模式转为内核模式

  •保存当前进程的PC/PSW值到核心栈

  •转向中断/异常/系统调用处理程序

•中断返回指令完成逆向模式转换,包括:

  •从待运行进程核心栈中弹出PSW/PC值

  •处理器模式转为用户模式

进程切换的工作过程

1. (中断/异常等触发)正向模式切换并压入PSW/PC

2. 保存被中断进程的现场信息

3. 处理具体中断/异常

4. 把被中断进程的系统堆栈指针SP值保存到PCB

5. 调整被中断进程的PCB信息,如进程状态

6. 把被中断进程的PCB加入相关队列

7. 选择下一个占用CPU运行的进程

8. 修改被选中进程的PCB信息,如进程状态

9. 设置被选中进程的地址空间,恢复存储管理信息

10.恢复被选中进程的SP值到处理器寄存器SP

11.恢复被选中进程的现场信息进入处理器

12.(中断返回指令触发)逆向模式转换并弹出PSW/PC

进程切换的发生时机

•进程切换一定发生在中断/异常/系统调用处理过程中,常见的情况是:

•阻塞式系统调用、虚拟地址异常导致被中断进程进入等待态

•时间片中断、I/O中断后发现更高优先级进程 导致被中断进程转入就绪态

•终止用系统调用、不能继续执行的异常导致被中断进程进入终止态

进程切换与模式切换

•一些中断/异常不会引起进程状态转换,不会引起进程切换,只是在处理完成后把控制权交回给被中断进程,处理流程是:

  •(中断/异常触发)正向模式切换压入PSW/PC

  •保存被中断进程的现场信息

  •处理中断/异常

  •恢复被中断进程的现场信息

  •(中断返回指令触发)逆向模式转换弹出 PSW/PC

参考资料

https://www.icourse163.org/course/NJU-1001571004

原文地址:https://www.cnblogs.com/xumaomao/p/12860324.html