进程控制 - wolai 笔记

1. 基本概念

进程控制就是要实现基层状态的转换

进程控制用原语实现

  • 原语用关/开中断来实现
  • 原语是一种特殊的程序,它的执行具有原子性
  • 原语的执行必须一气呵成,不可中断

2. 相关原语

2.1进程的创建

2.1.1创建原语

  • 申请空白PCB
  • 为新进程分配所需资源
  • 初始化PCB
  • PCB插入就绪队列

2.1.2引起进程创建的事件

  • 用户登录:分时系统中,用户登录成功,系统会为其建立一个新的进程
  • 作业调度:多道批处理系统中,有新的作业放入内存时,会为其建立一个新的进程
  • 提供服务:用户向操作系统提出某些请求时,会新建一个进程处理该请求
  • 应用请求:由用户进程主动请求创建一个子进程

2.2进程的终止

2.2.1撤销原语

  • PCB集合中找到终止进程的PCB
  • 若进程正在运行,立即剥夺CPU,将CPU分配给其他进程
  • 终止其所有子进程
  • 将该进程拥有的所有资源归还给父进程或操作系统
  • 删除PCB

2.2.2引起进程终止的事件

  • 正常结束:exit系统调用
  • 异常结束
  • 外界干预

2.3进程的阻塞

2.3.1阻塞原语

  • 找到要阻塞的进程对应的PCB
  • 保护进程运行状态,将PCB状态设置为“阻塞态”,暂时停止进程运行
  • PCB插入相应事件的等待队列

2.3.2引起进程阻塞的事件
  • 需要等待系统分配某种资源
  • 需要等待相互合作的其他进程完成工作

2.4进程的唤醒

2.4.1唤醒原语

  • 在事件等待队列中找到PCB
  • PCB从等待队列中移除,设置进程为就绪态
  • PCB插入到就绪队列,等待被调度

2.4.2引起进程唤醒的事件
  • 等待的事件发生

2.5进程的切换

2.5.1切换原语
  • 将运行环境信息存入PCB
  • PCB移入相应队列
  • 选择另一个进程执行,并更新其PCB
  • 根据PCB恢复新进程所需的运行环境

2.5.1引起进程切换的事件
  • 当前进程时间片到
  • 有更高优先级的进程达到
  • 当前进程主动阻塞
  • 当前进程终止


Comment