zoukankan      html  css  js  c++  java
  • 进程运行过程中的模式切换与进程切换

    进程运行总伴随着模式切换,模式切换指的就是进程从用户态切换到内核态,而进程切换则指的是从进程A切换到进程B,进程切换的过程当中一定会发生模式切换,因为进程切换是需要操作系统的调度处理的。
    下面,我们具体分析一下模式切换和进程切换发生的时机以及其发生的整个过程。

    模式切换和进程切换的时机

    进程何时发生模式切换或者进程切换呢?

    1. 系统调用
    2. 中断(外设中断、时钟中断)
    3. 异常(内存访问出错、除法溢出)
      是否发生进程切换取决于中断处理程序,如发生时钟中断时会使操作系统检测进程时间片是否用完,如果用完就会发生进程切换,以及内存访问出错可能会造成程序崩溃回收或者将虚拟内存对应的内容调入物理内存中,这时也可能发生进程切换。外设中断可能会引起准备数据就绪,使得挂起进程变成就绪,调度器再决定继续运行当前进程还是调度

    模式切换的过程

    1. 栈指针的切换
    2. 保存CPU寄存器信息
    3. 切换程序计数器

    进程切换的过程

    1. 保存处理器上下文信息
    2. 更新处于进程状态及其其他记账信息和离开原因
    3. 将当前进程移动到对应队列
    4. 调度另外一个进程执行
    5. 改变进程运行状态
    6. 更新内存管理的信息
    7. 恢复进程运行的寄存器上下文信息

    进程的创建过程

    1. 为新进程分配唯一的进程描述符
    2. 为新进程分配内存空间
    3. 创建并初始化进程控制块
    4. 链接到合适的进程队列(就绪)
    5. 创建或扩充其他信息
  • 相关阅读:
    vue项目本地调试,内网穿透
    EMQ开启mysql认证
    vsftpd配置安装
    express使用https
    vue实现图片的上传和删除
    Linux下获取java堆栈文件并进行分析
    kill -3 PID命令获取java应用堆栈信息
    Linux下的java虚拟机性能监控与故障处理命令
    k8s下的eureak服务注册失败(cannot execute request on any known server)解决
    MariaDB主从复制虚拟机实战
  • 原文地址:https://www.cnblogs.com/hustyan/p/12544632.html
Copyright © 2011-2022 走看看