Answers:
这就是GNU / Linux和其他多任务系统的工作方式,它们在运行的进程中共享处理器,dot
不会有99%,但在99%的时间内是100%。每个进程在一段时间内都控制着处理器。
这是由调度程序处理的(Linux有几个调度程序,有些只是采用通常的策略,有些试图给用户界面更多的时间,依此类推)。
现在,就您的情况而言,问题可能是- dot
并没有花费很多处理器时间,而是大量内存。当程序使用过多的内存时,就会发生抖动,这确实是使系统死机的过程,这并不是因为dot
执行了很多操作,而是因为内核必须在磁盘(交换分区)之间来回移动内存页面。和系统内存。
即使dot
仅占用了99%的CPU时间,也有可能立即更改为文本终端,结果是内核必须将dot
内容移出内存,以便可以将其X
放回内存中以便X
可以看到键您只需单击并移动到文本终端,然后内核必须移出仍在运行X
的内存dot
,然后再dot
移出以将文本终端进程(也许只是login
?)移回内存。(如果这看起来杂乱无章,这不仅仅是因为例子是凌乱-现实就是这样。凌乱)
一个示例是,如果您登录文本终端,则可以按击键,按退格键,并且它很乐意实时发生,但是如果您像运行一个小工具那样简单ps
,就会“冻结”。 ”,因为它必须释放内存以进行加载ps
(并且还必须在磁盘I / O队列中等待,磁盘I / O队列被大量用于在内存之间来回移动数据,直到能够ps
从文件系统中进行请求为止) 。