首页 > Erlang并发教程 > 6.10 Erlang并发编程-进程调度,实时性以及优先级
2013
11-14

6.10 Erlang并发编程-进程调度,实时性以及优先级

BACK TOP文章索引

  1. 进程调度,实时性以及优先级
  2. 共2条评论

进程调度,实时性以及优先级

到目前为止我们还没有提到过一个Erlang系统中的进程是如何调度的。虽然这是一个实现相关的问题,但是也有一些所有实现都需要满足的准则:

  • 调度算法必须是公平的,换句话说,任何可以运行的进程都会被执行,并且(如果可能的话)按照它们变得可以运行的顺序来执行。
  • 不允许任意一个进程长期阻塞整个系统。一个进程被分配一小段运行时间(称为时间片),再那之后它将被挂起并等待下一次运行调度,以使得其他可运行的进程也有机会运行。

典型情况下,时间片被设为可以让当前进程完成500次规约(reduction)[3]的时间。

Erlang语言实现的一个要求是要保证让它能够适用于编写软实时的应用程序,也就是说,系统的反应时间必须至少是毫秒级别的。一个满足以上准则的调度算法通常对于一个这样的Erlang实现来说已经足够了。

要让Erlang系统能应用于实时应用程序的另一个重要的特性是内存管理。Erlang对用户隐藏了所有的内存管理工作。内存在需要的时候被自动分配并在不需要之后一段时间内会被自动回收。内存的分配和回收的实现必须要保证不会长时间地阻塞系统的运行,最好是比一个时间片更短,以保证不会影响其实时性。


6.10 Erlang并发编程-进程调度,实时性以及优先级》有 2 条评论

  1. 顶楼主 真么好的电影  看不懂的人我们也没有办法  第一次发帖顶楼主  不爱看的别看  不喜欢的别来这个网站   希望楼主越做越好

  2. 顶楼主 真么好的电影  看不懂的人我们也没有办法  第一次发帖顶楼主  不爱看的别看  不喜欢的别来这个网站   希望楼主越做越好

留下一个回复

你的email不会被公开。