在*nix中,什么导致顶级命令中的"睡眠"?

Sta*_*bie 15 php unix linux process top-command

是什么导致sleeping我看到这些过程top?如果我要调用PHP的sleep()函数,那会增加sleeping我看到的计数top吗?拥有高数字是否有任何缺点sleeping

caf*_*caf 19

一个进程在被阻塞时正在休眠,等待某事.例如,它可能已经调用read()并正在等待数据从网络流到达.

sleep()确实是让你的过程睡了一段时间的一种方法.然而,睡眠是除了大量计算绑定过程之外的所有正常状态 - 睡眠本质上是一个过程在没有做任何事情时所做的事情.这是大多数进程正常睡眠的正常状态 - 如果不是这种情况,则往往表明您需要更多的CPU功率.


Abo*_*our 9

睡眠过程就像暂停过程.进程在以下情况下休眠:

  1. 它正在进行I/O操作(阻塞I/O)
  2. 当你通过睡眠命令它睡觉时()

任何流程的状态可以是:

  • 就绪:当它准备好执行时,它在队列中等待具有特定优先级的处理器调用
  • 睡眠:运行时它被阻止进行I/O操作或执行睡眠时()
  • 运行:当处理器执行进程时,它将运行.

状态含义

  • R Runnable

  • T停了

  • P等待Pagein

  • D等待I/O.

  • S睡觉<20秒

  • 我闲着 - 睡觉> 20秒

  • Z Zombie或已经不复存在