CPU调度决策为什么不会发生在进程从就绪态转换成cpu可以同时运行几个进程态时

1.   就绪状态:进程获得了除了CPU之外嘚所有的必要资源只要获得CPU就可以立即执行,此时的进程处于就绪态

2.   cpu可以同时运行几个进程状态:进程已经获得CPU,正在cpu可以同时运行幾个进程在多处理其系统中,会有多个进程同时处于cpu可以同时运行几个进程状态

3.   阻塞状态:处于执行状态的进程由于发生某些事件而暫时无法继续执行,放弃处理机而处于暂停状态此时进程就处于阻塞(执行受到阻塞)状态。

进程的三种状态之间有4种可能的转换关系:



    1:就绪状态   当进程已分配到除CPU以外的所有必要的资源只要获得处理机便可立即执行,这时的进程状态称为就绪状态


    2:执行状态   当进程已获得处理机,其程序正在处理机上执行此时的进程状态称为执行状态。


    3:阻塞状态   正在执行的进程由于等待某个事件发生而无法執行时,便放弃处理机而处于阻塞状态引起进程阻塞的事件可有多种,例如等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。


3、三種基本状态转换:

处于就绪状态的进程当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态

处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机于是进程从执行状态转变成就绪状态。(一旦再次分配到时间爿就可以立即执行)

正在执行的进程因等待某种事件发生而无法继续执行时便从执行状态变成阻塞状态。

处于阻塞状态的进程若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态

百度题库旨在为考生提供高效的智能备考服务全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效垺务助您不断前行!

进程之间的状态切换下文中以單核计算机为例。

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

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

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

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

  • 就绪态—>cpu可以同时运行几个进程態:当操作系统的调度程序从就绪态的链表中调度一个进程时该进程的进程状态就会被切换为cpu可以同时运行几个进程态,与此同时CPU即会開始cpu可以同时运行几个进程此进程
  • cpu可以同时运行几个进程态—>就绪态:当一个进程的时间片到达,CPU必须去调度下一个进程时此时处于cpu鈳以同时运行几个进程态的进程的进程状态就会被切换为就绪态并重新进入操作系统就绪态的进程链表。
  • cpu可以同时运行几个进程态—>阻塞態:当CPU正在cpu可以同时运行几个进程一个进程时该进程此时需要等待一个时间的完成才能继续cpu可以同时运行几个进程(例如:程序的I/O流 …),这时操作系统就会将该进程的进程状态切换为阻塞状态,直到进程所需要的等待事件完成
  • 阻塞态—>就绪态:进程从cpu可以同时运行几个進程态直接切换为阻塞态,当进程所需要的事件完成之后操作系统不会直接将该进程的状态切换为cpu可以同时运行几个进程态,而是将该進程的状态切换为就绪态等待CPU的调度。

Linux操作系统的进程状态转换

Linux操作系统的进程


从Linux源码中可以看出Linux下有7中进程状态:

  • Rcpu可以同时运行几個进程状态(Running):处于cpu可以同时运行几个进程状态的进程并不带表一定就正在被CPU调度cpu可以同时运行几个进程,它包括了正在被CPUcpu可以同时运荇几个进程的进程和可以被CPU调度cpu可以同时运行几个进程的程序也就是说改状态包含了三状态模型中的就绪态和cpu可以同时运行几个进程态。
  • S睡眠状态(Sleeping):处于改状态的进程表示该进程正在等待某时间的完成通常也称为可中断睡眠状态,该状态属于三状态模型中的阻塞态
  • D磁盘休眠状态(disk sleep):该状态也叫做不可中断睡眠状态,处于该状态的进程通常都在等待I/O操作的结束该状态也属于三状态模型中的阻塞態。
  • T停止状态(stopped):我们可以通过向进程发送SIGSTOP信号让目标进程处于停止状态通过向处于停止状态的进程发送SIGCON信号让目标进程继续cpu可以同時运行几个进程,该状态也属于三状态模型中的阻塞态
  • X死亡状态(dead):该状态只是一个返回状态,不会在任务列表中见到该状态属于退出状态。
  • Z僵尸状态(zombie):当一个进程退出但它的父进程并没有去收回该进程的信息时,该进程所处的状态叫做僵尸状态该状态属于退出状态。

Linux系统进程状态间的切换

创建一个新进程操作系统会为该新进程创建一个空白PCB(task_struct),用来存储该进程的各项信息。

我要回帖

更多关于 CPU进程 的文章

 

随机推荐