操作系统——进程管理

进程管理

进程

可并发执行的程序在一个数据集合上的运行过程

特征

  • 动态性(最基本特征)
  • 并发性
  • 独立性
  • 异步性
  • 结构特性

进程控制块

包含信息

  • 标识符
  • 进程状态
  • 优先级
  • 程序计数器
  • 内存指针
  • 上下文数据
  • I/O状态信息
  • 统计信息

由操作系统创建并管理

两状态进程模型

两种状态

  • 运行态(Running)
  • 未运行态(Not-running)

操作系统需要知道进程当前处于哪种状态,以便进行进程的执行——PCB

未运行态进程队列

进程状态模型改进

未运行状态

  • 就绪状态(Ready to execute)

  • 阻塞状态(Blocked)

    • 等待I/O操作完成

通过采用两个不同的队列解决遍历队列需要花费的大量时间

五状态模型

运行(Running)

就绪(Ready)

阻塞(Blocked)

新建(New)

退出(Exit)

进程状态的转换

  • 就绪态->运行态
  • 运行态->阻塞态
  • 阻塞态->就绪态
  • 运行态->就绪态

系统中各进程状态管理

运行态进程:如果系统只有一个处理机,在任何时刻,最多只有一个进程处于运行态

就绪态进程:处于就绪态的进程按照一定算法排成一个就绪队列RL

阻塞态进程:处于阻塞态进程排在阻塞队列WL中

就绪队列和阻塞队列

多个阻塞队列

挂起(Suspended)进程

处理器运行速度远远快于I/O设备,当就绪态进程数为0,处理器必须等待

解决方式

  • 扩充内存

  • 进程交换到磁盘,释放内存空间

    • 进程被交换到磁盘上,进程从阻塞状态转换到挂起状态

一个挂起状态

两个挂起状态

  • 阻塞/挂起(Blocked/Suspend)
  • 就绪/挂起(Ready/Suspend)

挂起状态特征

  • 进程不能立即执行
  • 进程可能在等待某个事件,也可能不等待事件,进程挂起与否与进程阻塞与否没有必然关系

操作系统的控制结构

操作系统利用表结构来管理

  • 存储表(Memory Tables)

    • 用于记录主存和辅存的当前状态

      • 分配给进程的主存信息
      • 分配给进程的辅存信息
      • 主存块的保护属性(如进程可以访问的共享主存区域)
      • 管理虚拟内存所需的其他信息
  • I/O设备表(I/O Tables)

    • 管理I/O设备和计算机通道的当前状态

      • I/O设备是否可用
      • I/O操作的状态(正进行I/O操作)
      • I/O操作要读写的主存单元地址
  • 文件表(File Tables)

    • 文件是否存在?
    • 文件在辅存中的位置
    • 文件当前状态
    • 文件相关属性
    • 管理文件所需的其他信息
    • 通常都由文件管理系统维护和使用
  • 进程表(Primary Process Tables)

    • 进程放在什么位置

    • 进程当前的状态信息

      • 进程包括

        • 程序代码
        • 相关数据
        • 进程控制快PCB

进程控制块

  • 作用

    • 记录进程存在和特性信息,与进程同生死,对进程的管理通过对PCB管理实现
  • PCB信息

    • 进程标识信息

      • 唯一地标识一个进程,有外部标识符(字母)和内部标识符(整数)两种
    • 处理器状态信息

      • 处理器各种寄存器内容组成,能恢复现场从断点处继续运行
    • 进程控制信息

      • 包括进程状态、队列指针、调度参数、进程已执行时间和已等待时间、进程间通信的信号系统、进程所分配的内存空间指针等

进程控制

执行模式

  • 用户模式

    • 通常在该模式下执行用户程序
    • 权限较低
  • 系统模式、控制模式或内核模式(管态)

    • 在该模式下执行操作系统内核
    • 可执行特权指令,权限更高
  • 三个问题

    • 为什么需要两种执行模式?

      • 保护操作系统和重要数据不受用户干扰
    • 处理器如何知道当前系统处于哪个执行模式下?

      • 程序状态字(PSW)中管理程序/用户模式位记录了当前系统所处的模式信息
    • 模式如何切换?

      • 用户调用操作系统服务或发生中断时,执行模式从用户模式切换到内核模式
      • 当系统服务返回或中断返回到用户进程时,执行模式从内核模式切换到用户模式

进程创建

  • 给进程分配一个唯一的进程标识号
  • 给进程分配空间
  • 初始哈进程控制块
  • 将进程控制块加入到正确的队列中
  • 创建或扩充操作系统所需的其他数据结构

进程切换

  • 何时进行进程切换

    • 中断

      • 时钟中断、I/O中断、内存失效等
    • 陷阱

      • 进程运行时出现错误或异常
    • 系统调用

      • 请求I/O操作,如打开文件
  • 进程切换实现

    • 保存处理器上下文环境,包括PC和其他寄存器
    • 跟新当前处于运行态的进程的进程控制块
    • 把上述进程的PCB移到相应的队列中
    • 从就绪队列中选择另一个进程执行
    • 更新所选择进程的进程控制块
    • 更新内存管理的数据结构
    • 恢复处理器在被选择进程最近一次切换出运行态的上下文:载入PC和其他寄存器最后一次保存的值

进程切换和模式切换的区别

  • 模式切换时系统执行模式的改变,发生模式切换可以不改变正处于运行态的进程状态
  • 进程切换时,操作系统必须使其运行环境发生改变
  • 进程切换必然会存在模式切换,但模式切换不一定会发生进程切换
  • 进程切换比模式切换更复杂

操作系统的执行

操作系统是不是一个进程?

  • 无进程的内核

    • 在所有进程之外执行操作系统内核
    • 当前正在运行的进程发生中断或产生系统调用时,控制权交给内核
    • 操作系统代码作为一个在特权模式下工作的独立实体被执行
    • 进程的概念只适用于用户程序

在用户进程中执行

在用户进程的上下文中执行所有操作系统程序

操作系统时用户调用的一组例程,操作系统代码和数据位于共享地址空间中,被所有用户进程共享

内核模式下执行操作系统代码,但仍在当前的用户进程中,不需要执行进程切换

基于进程的操作系统

操作系统作为一组独立的系统进程来实现

方便模块化的设计操作系统,适用于多处理器或多计算机环境下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiyiqwq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值