为什么计算机中的进程有时会占用所有CPU?

时间:2015-03-11 17:35:28

标签: multithreading memory-management process operating-system

我已经读过计算机中的进程是基于时间片安排在CPU上的。如果是这种情况,一个线程永远不应该长时间消耗100%的CPU,系统永远不应该挂起。这种推理有什么不对?

2 个答案:

答案 0 :(得分:1)

如果您的线程始终可执行,尤其是在具有多个处理器的系统上,则很容易获得100%的CPU。如果处理器无事可做,那么它也可以给准备好的线程留出时间。

答案 1 :(得分:0)

如果软件/硬件管理和运行环境没有缺陷,则不会。当多任务处理中的一个或多个进程中存在任何缺陷时,计算机通常会挂起。这些缺陷可能是

  • 虚拟内存在进程的不断分页中(颠簸)
  • 多任务处理的RAM不足
  • 非先发制人的多任务处理
  • 硬件性能不如预期
  • 错误的资源管理

当上述一个或多个发生时,正在执行的线程会持续延长资源的持续时间,有时会导致挂起。