多个进程并行运行时的CPU周期分布



我的问题是,在循环时尚?

问题的正文是:-

我有windows系统,比如说我打开了这10个不同的进程在媒体播放器中播放音乐,在记事本中打字,在浏览器中冲浪等。

当我在写字板上打字时,音乐在背景中播放而不会中断。我想知道如何come音乐播放器被赋予连续的CPU周期。我的理解是,操作系统正在不同的cpu周期之间旋转以循环方式处理,但这种切换太快,最终用户无法发现中断在音乐中(尽管实际上它被中断了)

简单的循环是在一组进程(线程)之间共享计算资源的一种方式,而不是在Windows中使用的方法。每个线程都有其静态和动态优先级。scheduler选择优先级最高的线程来运行,并给它一个执行的时隙。如果线程完全占用了时隙,那么它会被调度程序预防性地从执行中交换出去,或者如果线程没有更多事情可做(例如,它正在等待IO操作的结束),它可能会自愿将剩余的时隙还给系统。

在你的特定问题中,还有另一种东西可以创造声音的连续播放。这是一种缓冲。媒体播放器预先从媒体读取数据,然后将其排队到硬件进行播放。所以硬件应该总是提前有缓冲的数据,否则声音会中断。如今,我们的计算机足够强大,即使在显著的负载下也能为硬件提供必要的流。

在过去,如果你同时运行多个应用程序,系统开始从磁盘上交换进程(从操作系统的角度来看,这比给媒体播放器运行的机会更重要),那么你可以在静音的情况下播放音乐。

a)CPU在声卡中填充一个缓冲区,当CPU执行其他操作时,该缓冲区会播放。所以CPU不必一直关心声卡。

b) 进程之间的切换发生在毫秒甚至微秒的时间范围内,所以作为一个人,你不会注意到这一点。

c) 无所事事的进程(比如等待按键的写字板)告诉操作系统它们是空闲的,所以操作系统不会给它们任何时间,直到发生什么事情(按键被按下,或者窗口被移动,所以必须重新绘制)。

d) CPU速度很快。即使你可以每秒键入10个键,CPU也不会为每个键花费超过100微秒的时间(实际上要少得多,但这个值更容易计算),所以当你以10个键/秒的速度键入时,你给CPU的工作量是1毫秒/秒。因此,您在打字时将占用0.1%的CPU时间。您甚至不会看到任务管理器中的CPU使用率上升。

进入处理器的循环不是循环,因为循环意味着共享上的平等,而不是。您可以使用priority(windows)或nice(Linux)更改所有周期分配百分比。CPU在两个周期之间按常规分配。

在你的上下文中,把更多的优先级放在声音上,你会在击键重复速度上落后。(就像你在133Mhz的电脑上那样)

许多额外信息:说CPU是使电脑充满电的唯一因素是一个常见的问题。但事实并非如此。是核心,但不是引擎。

你的声音并不像我们所想的那样被主发音器处理。音频芯片适用于。他们得到了具体的声音芯片处理负载。所以,如果你推动游戏。。。CPU推送播放,绘制播放器,将信息(mp3 mb文件)放入ram,然后发送到声音芯片,声音芯片完成繁重的工作。

无论如何,计算机的工作流程不是CPU->键盘->CPU,也不是那样的。你必须检查存储声音的RAM,并将其传递给声音芯片。延迟、当前状态、当前负载。。。

主板是公路上最好的组件(微型,cpu,声音,vga,其他),所以总总线MHz(周期)的总和比你的cpu功率更重要。

最后一点。如果您在其他应用程序/进程中使用声音时遇到问题,只需增加进程的优先级即可。

声音播放器的"背景状态"可能是其自身获得较少优先级的原因之一。。。但我不确定。

我知道这不是一件很酷的事。也许可以重新编辑它们。把想法摆在桌面上就行了。

我建议你用相同的文件至少尝试3个声音播放器。如果没有任何更改,请使用3个txt编辑器进行同样的操作。如果什么都没有改变,我们就陷入了一个黑洞。

我认为是RAM,如果不是,主板。因为你没有发布任何关于你的系统的数据,我不能再多说什么了。如果你有4gb内存,则不是。如果你有133Mhz的CPU,我们需要谈谈:)

最新更新