Operating system 音乐播放器进程

Operating system 音乐播放器进程,operating-system,processor,Operating System,Processor,我在读一本书,书中说一个单核处理器,没有超线程,一次只能处理一个进程,所以有一个疑问是,当我们在PC上做这么多操作,而且总是有一些后台进程时,为什么音乐播放器不能在这两个进程之间停一会儿呢。我知道CPU速度很快,但音乐播放器通常连续播放音乐,没有任何小的中断(这是可以观察到的)。有人能澄清这种行为吗 这是由于一个操作系统没有。事实上,这个过程被中断的时间很短,不足以引起人类的注意。另一个原因是,声卡有一个播放缓冲区,允许连续播放,同时数据以块的形式提供给它。因此,当向卡提供数据的过程被中断很短时

我在读一本书,书中说一个单核处理器,没有超线程,一次只能处理一个进程,所以有一个疑问是,当我们在PC上做这么多操作,而且总是有一些后台进程时,为什么音乐播放器不能在这两个进程之间停一会儿呢。我知道CPU速度很快,但音乐播放器通常连续播放音乐,没有任何小的中断(这是可以观察到的)。有人能澄清这种行为吗

这是由于一个操作系统没有。事实上,这个过程被中断的时间很短,不足以引起人类的注意。另一个原因是,声卡有一个播放缓冲区,允许连续播放,同时数据以块的形式提供给它。因此,当向卡提供数据的过程被中断很短时间时,仍然可以进行回放

1)正如您所说,没有超线程的单核CPU一次只能运行一个进程。通过上下文切换处理多个进程,即CPU将运行一个进程,然后切换到下一个进程,再切换到下一个进程,然后返回到第一个进程,依此类推。安排某个进程的频率取决于许多不同的因素,其中进程优先级是其中之一。(在过去,通常需要以更高的优先级运行WinAmp,以避免出现故障等。现在不需要这样做,因为CPU速度要快得多)

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

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

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


样本不足称为缓冲区不足。即使在现代计算机上,这种情况也可能发生,例如,如果您在运行音频播放器时启动了一个繁重的进程,CPU可能无法及时切换,我们可以清楚地听到声音馈送中的故障和间隙

这由操作系统调度程序处理

调度器将为每个进程分配一个时间片(这可能是几毫秒),并允许进程在这段时间内执行所需的操作。分配的长度由操作系统使用的算法决定(即短期调度、长期调度等)。您之所以没有注意到这一点,是因为CPU可以在如此高的频率下运行,即1GHz,这使得单核/线程上的多任务对用户来说是透明的

)

但通常我们听不到任何休息声。这么快我们就看不到任何休息了吗?