【OS笔记 8】进程的状态及状态转换

由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能具有多种状态。

一、进程的三种基本状态

1. 就绪状态(Ready)

进程已分配到除CPU之外的所有必要资源,只要再获得CPU,便可立即执行。

2. 执行状态 (Running)

进程已获得CPU,正在执行。(多处理机系统中,则有多个进程处于执行状态)

3. 阻塞状态(Block / Waiting)

正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,即进程的执行受到阻塞。

引起进程阻塞的事件:
① 向系统请求共享资源失败
② 等待某种操作的完成
③ 新数据尚未到达
④ 等待新任务的到达

在执行过程中,如果发生了上述事件,进程便通过阻塞原语 block 将自己阻塞。可见,阻塞是进程自身的一种主动行为



二、三种基本状态的转换

在这里插入图片描述


三、创建状态和终止状态

1. 创建状态(New)

进程正在创建的状态。创建工作尚未完成(即未进入就绪状态),进程不能被调度运行。

创建原语:Create()

(1)引起进程创建的事件

由系统内核创建的三种情况:
① 用户登录
在分时系统中,用户登录成功后,系统将为该用户建立一个进程。
② 作业调度
在多道批处理系统中,从后备队列中选择进程调度时,便为它(们)创建进程,并插入就绪队列中。
③ 提供服务
比如用户程序要求文件进行打印,操作系统将为它创建一个打印进程。

用户进程自己创建:
④ 应用请求

(2)创建的步骤

① 申请空白 PCB
② 为新进程分配其运行所需的资源
③ 初始化进程控制块 PCB
④ 将新进程插入就绪队列

(3)进程的层次结构

在OS中,允许一个进程创建另一个进程,也就是父进程创建子进程,由此便形成了一个进程的层次结构。

在这里插入图片描述

2. 终止状态(Terminated)

进程正常或异常结束,移出就绪队列,但尚未被撤销时的状态。

终止原语:Destroy(n) n是进程标识符

引起进程终止的事件:
① 正常结束
表示进程的任务已经完成,准备退出运行。
② 异常结束
指进程在运行时发生了某种异常事件,使程序无法继续运行。比如越界错、保护错、非法指令、运行超时等等。
③ 外界干预
进程应外界的请求而终止运行。比如操作员或操作系统干预、父进程请求、父进程终止时随着父进程而终止。

终止需要经过两个步骤:
① 等待操作系统进行善后处理
② 将进程的PCB清零,并将PCB空间返还系统



四、五种状态的转换

在这里插入图片描述



五、引入挂起原语(Suspend)

在许多系统中,为了系统和用户观察分析进程的需要,还引入了挂起操作。

程序被挂起,意味着进入静止状态

如果程序正处于执行状态,它将暂停执行。

如果程序正处于就绪状态,它将暂不接受调度。

1. 引入原因

(1)终端用户的需要

用户发现自己的程序有可疑问题,希望暂停时,可以使用挂起使之停止。

(2)父进程请求

有时父进程希望挂起自己的某个子进程,以便考察和修改。

(3)负荷调节的需要

实时系统中的工作负荷较重时,可以将一些不重要的进程挂起。

(4)操作系统的需要

操作系统有时需要挂起某些进程,以便检查运行中的资源使用情况或进行记账。

2. 引入挂起操作后的状态转换图

活动就绪 Readya(Ready + active)
静止就绪 Readys(Ready + suspend)

活动阻塞 Blockeda(Blocked + active)
静止阻塞 Blockeds(Blocked + suspend)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值