• 进程切换与模式切换


    进程切换

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

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

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

      •转向进程调度

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

    模式切换

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

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

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

      •内核模式到用户模式由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

  • 相关阅读:
    最简单跳转,待反混爻的合集
    搜索引擎劫持代码
    Warning: Cannot modify header information
    editplus 正则删换行
    在全程Linux環境部署IBM Lotus Domino/Notes 8.5
    3.5-杂项②
    3.4-杂项①
    3.3-ISDN
    3.2-帧中继②
    3.2-帧中继①
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12860324.html
Copyright © 2020-2023  润新知