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

时间:2013-12-25 08:13:06

标签: operating-system multiprocessing cpu-usage round-robin

  

我的问题是cpu循环是否被赋予不同的进程   循环时尚?

Conext的问题是: -

我有Windows系统,让我说我已经打开了这10个不同的进程,例如 在媒体播放器中播放音乐,在键盘输入,键入记事本,在浏览器中浏览等。

当我在键盘输入的同时,音乐在后台播放而不会中断。我想知道如何 来音乐播放器给予连续的CPU周期。我的理解是操作系统在不同的CPU之间旋转cpu周期 以循环方式处理但是这种切换太快以至于最终用户无法发现中断 在音乐中(虽然实际上它被打断了)

3 个答案:

答案 0 :(得分:1)

简单的循环法是一种在一组进程(线程)之间共享计算资源的方法,但不是在Windows中使用的方法。每个线程都有静态和动态优先级。 scheduler选择一个具有最高优先级的线程来运行并给它一个时隙来执行。如果线程完全消耗了时隙,则预防性地将它从调度程序执行换出,或者线程可以将剩余的时隙返回给系统自愿,如果它没有什么可做的(例如它正在等待)对于IO操作的结束)。

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

在过去,如果你一次运行多个应用程序并且系统开始从磁盘交换进出流程(从操作系统的角度来看比让媒体播放器有机会运行更重要)然后你可以用沉默的间隙播放你的音乐。

答案 1 :(得分:0)

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

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

c)无所事事的进程(如wordpad等待键)告诉操作系统它们处于空闲状态,因此操作系统不会给它们任何时间直到某些事情发生(按下一个键,或者窗口已经被触发)移动所以他们必须重新绘制。)

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

答案 2 :(得分:0)

进入处理器的循环不是循环,因为循环意味着共享上的相等,而不是。 您可以使用优先级(窗口)或使用nice(Linux)更改所有循环分配百分比。 CPU在循环之间以动态分配。

在您的情境中,将声音放在更优先的位置,您将会遇到按键重复速度的延迟。 (就像你进入133Mhz计算机时那样)

许多额外信息: 通常的问题是CPU是唯一使pc强大的问题。 但实际上不是。是核心,但不是引擎。

你的声音不会被主要的过程所占据,因为我们可以“思考”。音频芯片适用于。他们得到了具体的声音芯片处理负载。所以,如果你推动播放... CPU推动播放,绘制一个播放器,将信息(mp3 mb文件)放入ram,然后发送到soundchip,声音芯片做了很多努力。

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

主板是组件之间的路径(微型,CPU,声音,vga,其他),所以总BUS MHz(周期)的总和它对你的CPU功率来说更重要。

作为最后的说明。如果在将声音与其他应用/流程一起使用时遇到问题,只需为流程添加更多优先级。

声音播放器的“背景状态”可能是单独获得较少优先级的一个原因......但我不确定。

我知道这不是一个很酷的asnwer。也许重新编辑它们。 把想法放在桌面上。

我建议您尝试使用相同文件至少3个声音播放器。 如果没有任何变化,请尝试使用3 txt编辑器。 如果没有任何改变,我们就会进入太空洞。

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