进程间的状态切换

这篇博客介绍了进程的三状态模型——运行态、就绪态和阻塞态,详细阐述了状态之间的切换过程,如就绪态到运行态、运行态到就绪态、运行态到阻塞态以及阻塞态到就绪态的转换。同时,文章还探讨了Linux操作系统中的7种进程状态,包括运行状态、睡眠状态、磁盘休眠状态、停止状态、追踪停止状态、死亡状态和僵尸状态,以及这些状态的转换情况。
摘要由CSDN通过智能技术生成

在任意时刻下,通常只有一个进程可以被加载到计算机的CPU上运行。

三状态模型

任何一个进程在它的生命周期内都会处于下面三种状态,使用这三种状态可以简单描述运行在计算机上的进程之间的状态切换,进程的一生都处在这三种状态间相互转换。

  • 运行态(Running):指该进程正在被CPU调度运行。
  • 就绪态(Ready):指该进程满足被CPU调度的所有条件但此时并没有被调度执行。
  • 阻塞态(Blocked):指该进程正在等待某事件的发生之后才可以继续被CPU调度运行。

三状态模型之间的切换

CPU在调度进程时,只会去操作系统维护的处于就绪态的进程PCB链表中调度,所以三状态模型之间的切换只有4种切换方式:

  • 就绪态—>运行态:当操作系统的调度程序从就绪态的链表中调度一个进程时,该进程的进程状态就会被切换为运行态,与此同时CPU即会开始运行此进程。
  • 运行态—>就绪态:当一个进程的时间片到达,CPU必须去调度下一个进程时,此时处于运行态的进程的进程状态就会被切换为就绪态并重新进入操作系统就绪态的进程链表。
  • 运行态—>阻塞态:当CPU正在运行一个进程时,该进程此时需要等待一个时间的完成才能继续运行(例如:程序的I/O流 …),这时操作系统就会将该进程的进程状态切换为阻塞状态,直到进程所需要的等待事件完成。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值