![如果整个系统冻结,iTunes 如何继续播放音乐?](https://linux22.com/image/1279114/%E5%A6%82%E6%9E%9C%E6%95%B4%E4%B8%AA%E7%B3%BB%E7%BB%9F%E5%86%BB%E7%BB%93%EF%BC%8CiTunes%20%E5%A6%82%E4%BD%95%E7%BB%A7%E7%BB%AD%E6%92%AD%E6%94%BE%E9%9F%B3%E4%B9%90%EF%BC%9F.png)
我今天注意到了这一点 - 我的整个系统完全冻结,时钟冻结,点击和按键均无响应,时间机器动画停止运行。在重新分区启动驱动器时。我还打开了 iTunes,它一直在播放音乐。如果整个操作系统完全冻结,iTunes 如何继续播放媒体?我见过的其他 OS X 媒体播放器都无法做到这一点,我很想知道这是如何实现的。
谢谢。
答案1
答案2
我的猜测是,当您选择在 iTunes 中播放一首歌曲时,iTunes 会将歌曲的几乎所有原始数据推送到 DMA。由于 I/O 设备与 CPU 通信的方式,每个设备都有自己的内存地址。一旦 CPU 将数据推送到该地址,I/O 设备就可以使用那里的数据,而无需 CPU 照看它。因此,iTunes 将歌曲的数据移动到声音设备的内存地址,然后声音设备开始播放它。当您播放歌曲时 CPU 锁定时,声音设备还没有意识到 CPU 已停止,只是继续使用其内存地址中的数据播放歌曲。