Newtank

个人站

欢迎来到我的个人站~


进程的描述与管理

目录

进程的数据描述

进程控制块

进程控制块(PCB)是OS用于记录和刻画进程状态和环境的数据结构。包含标识信息、现场信息、控制信息

标识信息

用于存放标识该进程的信息。包含:

  • 系统分配的标识号
  • 系统分配的进程组标识号
  • 用户定义的进程名
  • 用户定义的进程组名

现场信息

用于存放进程运行时的处理器现场信息。包含:

  • 用户可见寄存器内容
  • 控制与状态寄存器内容
  • 栈指针内容

控制信息

用于存放和管理、调度进程相关的信息。包含:

  • 调度相关信息:状态、等待事件/原因、优先级
  • 进程组成信息:代码/数据地址、外存映像地址
  • 队列指引元:进程队列指针、父子兄弟进程指针
  • 通信相关信息:消息队列、信号量、锁
  • 进程特权信息:内存访问权限、处理器特权
  • 处理器使用信息:占用的处理器、时间片、处理器使用时间、执行时间、记账信息
  • 资源清单信息:正占用的资源、已使用的资源

进程映像

进程映像是某一时刻进程的内容及其执行状态的集合。包含

  • 进程控制块
  • 进程程序块:进程执行的程序空间
  • 进程数据块:进程处理的数据空间,包括数据、处理函数的用户栈和可修改的程序
  • 核心栈:进程在内核模式下运行时使用的堆栈,中断或系统过程使用

进程上下文

OS中的进程物理实体和支持进程运行的环境合成进程上下文,包括

  • 用户级上下文:用户程序块、用户数据区、用户栈、用户共享内存
  • 寄存器上下文:PSW、栈指针、通用寄存器
  • 系统级上下文:PCB、内存区表、核心栈

进程上下文刻画了进程的执行情况

进程管理

进程管理软件

  • 系统调用、中断、异常处理程序
  • 队列管理程序
  • 进程控制程序
  • 进程调度程序
  • 进程通信程序
  • 终端登录和作业控制程序、性能监控程序、审计程序等外围程序

队列模型

某个进程被提交后进入就绪队列。就绪队列中最前的进程被指派至处理器执行。

一种情况下进程完成执行,处理器从就绪队列中取出下一个进程。

一种情况下该进程处理超时,该进程被推入就绪队列,处理器取出下一个进程执行。

一种情况下该进程需要等待某个事件,处理器将其推入该事件的等待队列,然后从就绪队列取出下一个进程执行。而某个事件发送时,该事件对应的等待队列的队首便会被推入就绪队列。

队列管理模块

操作系统为进程建立就绪队列和等待队列,按需组织为先进先出队列或优先队列。队列中的进程可以通过PCB中的队列指引元采用单/双指引元或索引连接。

进程与资源调度围绕进程队列展开

进程控制过程

进程创建

进程表加一项,申请PCB并初始化,生成标识,建立映像,分配资源,移入就绪队列

进程撤销

从队列中移除,归还资源,撤销标识,回收PCB,移除进程表项

进程阻塞

保存现场,修改PCB,移入等待队列,调度其他进程

进程唤醒

等待队列中移除,修改PCB,移入就绪队列(优先级高于运行进程触发抢占)

进程挂起

修改状态并出入相关队列,收回内存等资源并送至对换区

进程激活

分配内存,修改状态并出入相关队列

其他

如修改进程特权

原语

原语时由若干条指令构成的完整功能程序,执行中不可中断。可以通过关中断实现。

进程控制中设计对OS核心数据结构(进程表、PCB池、队列、资源表)的修改应使用原语。

进程切换与模式切换

进程切换

从正在运行的进程中收回处理器,让待运行进程占用处理器运行。流程为

  1. 保存被中断进程的上下文
  2. 转向进程调度
  3. 恢复待运行进程的上下文

模式切换

进程切换必须在操作系统内核模式完成,这就需要模式切换。其中包括:

  • 用户模式到内核模式:由中断、异常、系统调用中断用户进程执行而触发
  • 内核模式到用户模式:OS执行中断返回指令将控制权交给用户进程而触发

正向模式切换基本任务包括:

  1. 处理器模式转为内核模式
  2. 保存当前进程的PC、PSW到核心栈
  3. 转向中断/异常/系统调用处理程序

逆向则包括:

  • 从待运行进程核心栈中弹出PC、PSW
  • 处理器模式转为用户模式

进程切换的工作过程

  1. 正向模式切换并压入PSW、PC
  2. 保存被中断进程的现场信息
  3. 处理具体中断/异常
  4. 把被中断进程的系统堆栈指针SP保存到PCB
  5. 调整被中断进程的PCB信息,如进程状态
  6. 把被中断进程的PCB加入相关队列
  7. 选择下一个占用CPU运行的进程
  8. 修改被选择进程PCB,如进程状态
  9. 设置被选择进程的地址空间,恢复存储管理信息
  10. 恢复被选择进程的SP
  11. 恢复被选择进程的现场信息
  12. 逆向模式转换并弹出PSW/PC