操作系统-04-进程控制

操作系统-04-进程控制

前言

  • 什么是进程控制?
    进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。简而言之就是实现进程状态切换。

mark

1. 概念

mark

  • 使用原语进行实现

mark

  • 大致流程

mark

这里说明一下调度和切换的区别:
调度是指决定资源分配给哪个进程的行为,是一种决策行为
切换是指实际分配的行为,是执行行为
一般来说现有资源调度,后有进程切换

2. 进程控制相关原语

进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情:

  1. 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)

    a.所有的进程控制原语一定都会修改进程状态标志

    b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境

    c.某进程开始运行前必然要恢复期运行环境

  2. 将PCB插入合适的队列

  3. 分配/回收资源

以下针对每种原语进行说明:

  • 进程创建

    • 创建原语
      1.申请空白PCB
      ​2.为新进程分配所需资源
      3.初始化PCB
      4.将PCB插入就绪队列​

    • 引发事件
      1.分时系统,用户登录
      2.多道批处理系统,新的作业提交到内存
      3.用户向操作系统提取请求
      4.用户进程自动请求创建子进程​

  • 进程终止

    • 撤销原语
      1.从PCB集合找到终止进程的PCB
      2.若进程正在运行,立即剥夺CPU,将CPU分配给其它进程
      3.终止其所有子进程
      4.回收资源给父进程或者操作系统
      5.删除PCB​​

    • 引发事件
      1.正常结束
      2.异常结束
      3.外界干预​

  • 进程阻塞

    • 阻塞原语
      1.找到进程对于的PCB
      2.保护进程运行现场,设置PCB状态为阻塞态,暂停进程运行
      3.将PCB插入对应的事件等待队列

    • 引发事件
      1.需要等待系统分配某种资源
      2.需要等待相互合作的其它进程完成工作

  • 进程唤醒

    • 唤醒原语
      1.在事件等待队列中找到PCB
      ​2.将其从等待队列移除,设置进程为就绪态
      3.将PCB插入就绪队列,等待被调度

    • 引发原因
      因何事阻塞,因何事唤醒
      阻塞和唤醒成对出现

  • 进程切换

    • 切换原语
      1.保存运行环境到PCB
      2.PCB移入相应队列
      3.选择另一个PCB执行,更新其PCB
      4.根据PCB恢复新进程的运行环境​

    • 引发原因
      1.当前进程时间片用完
      2.更高优先级进程达到
      3.当前进程主动阻塞
      4.当前进程终止​

参考书籍:《王道考研计算机操作系统》

参考博客https://mubu.com/doc/Cd-Y4YOfkh#

https://blog.csdn.net/weixin_43914604/article/details/104415990

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信