我知道这个问题很久以前就被问过了,但我只是想与其他人分享信息。
术语“抖动”实际上与虚拟内存有关,操作系统使用它来为进程提供额外的内存或空间。抖动的实际含义是,当进程准备加载到内存中时,只有一些页面(部分)加载到实际物理内存中,其余页面在交换空间(虚拟内存或磁盘)中。
现在,如果进程需要执行的页面未加载到内存中,则会生成页面错误并要求操作系统替换该页面。此时,进程恢复其执行。
有时,操作系统替换的页面再次被进程所需,因此它再次要求操作系统将其加载到内存中,替换其他页面,如此反复。由于进程未执行,因此CPU利用率为0,但磁盘读写处于峰值状态。
我们的操作系统设计成这样,当CPU利用率降低时,它会在内存中启动另一个进程。现在,下一个进程必须等待,因为第一个进程正在忙碌。同样,由于CPU未被利用或为0(在我们的示例中),操作系统启动另一个进程,然后发生相同的事情。
因此,当进程忙于读写(交换页面)时,CPU利用率会降至极低水平。这就是所谓的抖动!