“卡住”(在“顶部”结果中)与“不响应”(在“活动监视器”中),“旋转”或“挂起”有何关系?


17

在执行top命令的结果中,有时会看到卡住

Apple的顶层(1)OS X手册页并未解释该词的用法。

如果全部,卡住与以下内容有何关系?

  1. 没有响应 –可能会在活动监视器,登录窗口的“强制退出应用程序”对话框中看到,依此类推
  2. .hang 文件–可能存在于 /Library/Logs/DiagnosticReports
  3. .spin 文件–可能存在于 /Library/Logs/DiagnosticReports

关于第一点有一个公认的答案。有关点2和3的答案将不胜感激。

Answers:


15

卡住的进程top和无响应的应用程序之间通常没有关联:

  • 卡住是指该进程当前是不可中断的,如果进程正在等待读取磁盘或网络数据块(或类似的低级内容),通常就是这种情况。从技术上讲,该进程正在内核空间(即Unix内核)中执行,并且不能被中断(因此,即使这样kill -9也不会产生任何影响)。通常,这些卡滞状态仅持续几毫秒(您也可以看到,top因为卡滞进程的数量随每个显示周期而变化)。
  • 无响应的应用程序可能过于忙碌回复无论如何OS X抛出他们。

我看到一种情况,即卡住的进程对应于无响应的应用程序:一个进程可以被卡住很长时间,也许是无休止地卡住,没有任何可能杀死它。这通常是某些编程错误的结果,例如与网络设备的不正确断开连接,然后内核不断尝试从中读取数据。在这种情况下,即使强制终止也不会删除该过程。


谢谢–如果“ 卡住”是“ 不间断”的同义词,那么我对这种状态很熟悉。uninterruptible当我从命令行运行时按下Control-T(SIGINFO)时,通常会看到fsck_hfs这种情况。有关更多内容,请SIGINFO参见Apple的termios(4)OS X手册页
Graham Perrin

与此答案相关,可能是堆栈溢出中的一个问题:如何以编程方式识别不响应的流程
Graham Perrin

2
我看了一下top的源代码:不间断与卡住是一样的。
nohillside

疑难杂症- 亮点来自libtop.c开源的Mac OS X 10.7.4。
格雷厄姆·佩林

1

进程状态U,TH_STATE_UNINTERRUPTIBLE和Linux进程状态D

有人提请注意MacOS顶部:“卡住”表示“不间断” 纳尔逊日志

…  TH_STATE_UNINTERRUPTIBLE,我认为ps报告为过程状态“ U”。我猜这就是Linux在“设备等待”中称之为“ D”的意思。在这种情况下,在大多数情况下,该过程很好,它正在等待某些I / O完成。…

psUbuntu手册页确认了进程状态代码–

D    Uninterruptible sleep (usually IO)

–没有其他提到不间断

在FreeBSD / Linux Linux内核交叉参考中:

我在2002年的讨论《答案帮83》中找到了答案:如何在不间断的睡眠状态下杀死进程?突出显示)非常适合@patrix的观察。

最后但并非最不重要的一点是,在2004年的[X-Unix] PS和Stuck Processes重点)文章中提到WindowServer,它非常适合与相关的问题,促使我在此处发布了该问题:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.