进程切换与中断

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

实质上就是被中断运行进程与待运行进程的上下文切换。

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

模式切换又称处理器切换,即用户模式和内核模式的互相切换。

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

1、阻塞式系统调用、虚拟地址异常。

导致被中断进程进入等待态。

2、时间片中断、I/O中断后发现更改优先级进程。

导致被中断进程进入就绪态。

3、终止用系统调用、不能继续执行的异常。

导致被中断进程进入终止态。

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

以下是处理流程:

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

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

3、处理具体中断、异常。

4、恢复被中断进程的现场信息。

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

进程切换的工作过程
1、(中断/异常等触发)正向模式切换并压入PSW/PC 。 (Program Status Word 程序状态字。program counter 程序计数器。指向下一条要执行的指令)

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

3、处理具体中断、异常。

4、把被中断进程的系统堆栈指针SP值保存到PCB。(Stack Pointer 栈指针。Process Control Block 进程控制块。)

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

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

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

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

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

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

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

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

参考:
https://www.csdndoc.com/article/10376985

你可能感兴趣的:(操作系统)