音乐播放器流程

Aka*_*uja 6 operating-system processor

我正在读一本书,上面写着一个单核并且没有超线程的处理器一次只能处理一个进程,所以当我们在PC上执行这么多操作以及一些后台进程总是存在时就会产生疑问为什么音乐播放器不会在两者之间停留.我知道CPU速度非常快但是音乐播放器通常会持续播放音乐而不会有任何小的中断(可观察到).任何人都可以澄清这种行为吗?

Ava*_*vra 8

1)如你所说,没有超线程的单核CPU可以一次只运行一个进程.多个进程由上下文切换处理,即CPU将运行一个进程,然后切换到下一个进程,然后切换到下一个进程,然后再返回到第一个进程,依此类推.某个过程的安排频率取决于许多不同的因素,其中过程优先级为1.(在经常需要以高优先级运行WinAmp以避免故障等的日子里.现在这不是必需的,因为CPU要快得多).

2)所以,考虑到这一点,为什么它仍然听起来很棒而且没有故障?

处理音频时,CPU通过将声音设备放在声卡的硬件缓冲区或RAM中来为声音设备提供样本.声音处理器不直接从CPU获取数据,而是从这两个缓冲区中的一个读取样本.只要我们在缓冲区中有样本,我们就会很好,即使CPU没有做其他事情.

有关硬件缓冲区大小的详细信息在不同声卡上有所不同.一些(较旧的)声卡根本没有声音缓冲区,而RAM在这里起作用.

用完样本称为缓冲区欠载.即使在现代计算机上也可能发生这种情况,例如,如果您在运行音频播放器时开始繁重的过程,CPU可能无法及时切换回来,我们可以清楚地听到声音输入中的毛刺和间隙.