📜  操作系统中的线程状态

📅  最后修改于: 2021-09-27 22:51:33             🧑  作者: Mango

当线程在系统中移动时,它始终处于以下五种状态之一:

(1) Ready
(2) Running
(3) Waiting
(4) Delayed
(5) Blocked 

排除 CREATION 和 FINISHED 状态。

  1. 当要处理应用程序时,它会创建一个线程。
  2. 然后它被分配所需的资源(如网络),并进入READY队列。
  3. 当线程调度程序(如进程调度程序)为线程分配处理器时,它进入RUNNING队列。
  4. 当流程需要触发其他一些不受其控制的事件时(就像另一个要完成的流程),它会从RUNNING转换到WAITING队列。
  5. 当应用程序具有延迟线程处理的能力时,它可以在需要时延迟线程并使其休眠一段特定的时间。然后线程从RUNNING转换到DELAYED队列。

    线程延迟的一个例子是闹钟的暂停。在它第一次响铃并且没有被用户关闭后,它会在特定时间后再次响铃。在此期间,线程进入休眠状态。

  6. 当线程生成 I/O 请求并且在完成之前无法进一步移动时,它会从RUNNING转换到BLOCKED队列。
  7. 该过程完成后,线程从RUNNING过渡到FINISHED

WAITINGBLOCKED转换之间的区别在于,在 WAITING 中线程等待来自另一个线程的信号或等待另一个进程完成,这意味着突发时间是特定的。而在 BLOCKED 状态下,没有指定时间(这取决于用户何时给出输入)。

为了成功执行所有进程,处理器需要通过线程控制块(TCB)维护每个线程的信息。