实时调度的调度方式

时间:2016-12-20 来源:http://www.win10xitong.cc 人气:

核心提示:实时调度方式同样可分为非剥夺调度方式和剥夺调度方式。 1)非剥夺实时调度方式 在一些小型实时系统或要求不太严格的实时控制系统中,经常采用非剥夺实时调度方式,该方式的调度算法比较简单,易于实现,具体实现方法有以下两种。 (1)采用轮转的方法。该方法

  实时调度方式同样可分为非剥夺调度方式和剥夺调度方式。

  1)非剥夺实时调度方式

  在一些小型实时系统或要求不太严格的实时控制系统中,经常采用非剥夺实时调度方式,该方式的调度算法比较简单,易于实现,具体实现方法有以下两种。

  (1)采用轮转的方法。该方法常用于工业生产的群控系统中,由一台计算机控制若干个相同或类似的对象,为每一个被控对象建立一个实时任务,并将它们排成一个轮转队列。调度程序每次选择队列中的第一个任务投人运行,当该任务完成后,便把它挂在轮转队列的末尾,等待下次调度运行,这时凋度程序再选择下一个(队首)任务运行。这种调度算法可获得数秒至数十秒的响应时间,可用于要求不太严格的实时控制系统中。

  (2)基于优先级。如果在实时系统中要求较为严格,如响应时间为数百毫秒的任务,则可为这些任务赋予较高的优先级。当这些实吋任务到达时,把它们安排在就绪队列的队首,等待当前仟务自我终止或运行完成后被调度执行。这种调度算法在做了精心的处理后,有可能获得仅为数秒至数白’毫秒级的响应时间,因而可用丁有一定要求的实时控制系统中。

  2)剥夺实时调度方式

  在要求较严格的(响应时间为数十毫秒以下)的实时系统中,应采用剥夺实时调度方式。一般是基于优先权进行剥夺,根据剥夺发生时间的不同可分成以下两种实现方法。

  (1)基于时钟中断的剥夺式优先权调度。在某实时任务到达后,如果该任务的优先级高于当前任务的优先级,这时并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务。这种调度算法能获得较好的响应效果,其调度延迟可降为几十毫秒至几毫秒。因此,可用于大多数的实时系统中。

  (2)立即剥夺的优先权调度。在这种调度策略中,要求操作系统具有快速响应外部事件中断的能力,一旦出现外部中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务。这种算法能获得非常快的响应,可把调度延迟降低到几毫秒至100微秒,甚至更低。