进程描述和控制

什么是进程

可以把进程视为由一组元素组成的实体,进程的两个基本元素是程序代码(program code)和与代码相关联的数据集(dataset)

用元素来表征进程:

  • 标识符(identifier):与进程相关的唯一标识符,用来区分其他进程
  • 状态:若进程正在执行,则进程处于运行态
  • 优先级:相对于其他进程的优先顺序
  • 程序计数器:程序中即将执行的下一条指令
  • 内存指针:包括程序代码和进程相关数据的指针,以及与其他进程共享内存块的指针
  • 上下文数据(context data):进程执行时处理器的寄存器中的数据
  • I/O状态信息:包括显式I/O请求、分配给进程的I/O设备和被进程使用的文件列表
  • 记账信息:包括处理器时间总和、使用的时钟数总和、时间限制、记帐号等

上述信息存放在进程控制块(process control block)

进程状态

两状态进程模型

在任何时刻,进程要么正在执行,要么未执行

image-20220315104745563.png

使用排队图来描述分派器的行为(被中断的进程转移到等待进程队列中,或在进程结束或取消时销毁掉它)

image-20220315104922540.png

进程的创建和终止

进程的创建

将一个新进程添加到正被管理的进程集时,操作系统需要建立用于管理该进程的数据结构,并在内存中给它分配地址空间

触发进程创建的事件

  • 新的批处理作业
  • 交互登录
  • 为提供服务而由操作系统创建
  • 由现有进程派生(spawn)

一个进程派生另一个进程,前一个为父进程,后一个为子进程

触发进程终止的事件

  • 正常完成
  • 超过时限
  • 无可用内存
  • 超出范围
  • 保护错误
  • 算术错误
  • 时间超出
  • I/O失败
  • 无效指令
  • 特权指令
  • 数据误用
  • 操作员或操作系统干涉
  • 父进程终止
  • 父进程请求

五状态模型

  1. 运行态running:进程正在执行
  2. 就绪态ready:进程做好准备,有机会即开始执行
  3. 阻塞态blocked:进程在某些事件发生前不能执行
  4. 新建态new:该新建的进程,还未被加入可执行进程组(未加载到内存)
  5. 退出态exit:进程自身终止或被取消

image-20220315112411750.png

两个队列

image-20220315114427875.png

多个队列

image-20220315114526742.png

被挂起的进程

原因:处理器比I/O活动速度块,会出现内存中所有进程都在等待I/O的现象

解决:交换,把内存中某个进程的一部分或全部移到磁盘中$\rightarrow$当内存中不存在就绪态的进程时,操作系统就把被阻塞的进程(阻塞态)换出到磁盘中的挂起队列(suspend queue),就新增了挂起态

单挂起态模型

image-20220315212328026.png

包含两个挂起态的模型

image-20220315212354709.png

进程挂起原因

  • 交换:操作系统需要腾出更多的内存空间以加载更多的就绪进程
  • 其他OS原因:OS对可疑进程执行挂起,检测
  • 交互式用户请求:用户希望对某个进程进行检查,如程序调试
  • 定时:周期执行的程序在下一次执行周期到来前挂起等待执行
  • 父进程请求

进程描述

操作系统的控制结构

操作系统为了管理进程和资源,必须掌握每一个的当前状态信息,因此维护四种不同的信息表

  • 内存表:跟踪内存和外存
  • I/O表:管理I/O设备和通道
  • 文件表:提供当前存在文件中的信息
  • 进程表:管理进程

image-20220315235024882.png

进程控制结构

程序、数据、栈和属性的集合称为进程映像(process image)

与每个进程相关的属性集称为进程控制块(process control block,PCB),它属于一种数据结构,存放了进程的程序段和数据段的位置

image-20220326155300843

1C0944F91647CD2D29A30A7F115CACC2.png

进程控制块中的信息

  • 进程标识符:每个进程都分配了一个唯一的数字标识符
  • 处理器状态信息:由处理器寄存器的内容组成。运行一个程序时。进程的信息一定会出现在寄存器中。中断进程时,必须保存该寄存器的所有信息,以便进程恢复执行时可以恢复所有这些信息
  • 进程控制信息:是操作系统控制和协调各种活动进程的所需的额外信息

进程控制

执行模式

大多数处理器至少支持两种执行模式:非特权模式和特权模式

非特权模式也称用户模式;特权模式也称系统模式、控制模式、内核模式

使用两种模式原因:保护操作系统和重要的操作系统表不受用户程序的干扰(内核模式下,软件会完全控制处理器及其所有指令、寄存器和内存)

进程状态

创建一个新进程步骤:

  1. 为新进程分配一个唯一的进程标识符
  2. 为进程分配空间
  3. 初始化进程控制块
  4. 设置正确的链接
  5. 创建或扩充其他数据结构

进程切换

何时?:可在操作系统从当前正运行进程中获得控制权的任何时刻发生

  • 中断(interrupt):时钟中断、I/O中断、内存失效
  • 陷阱(trap):错误或异常条件
  • 系统调用
最后修改:2022 年 03 月 26 日
如果觉得我的文章对你有用,请随意赞赏