📜  实时系统中的任务

📅  最后修改于: 2022-05-13 01:56:11.246000             🧑  作者: Mango

实时系统中的任务

系统是实时的,即响应应在指定的时间限制内得到保证或系统应满足指定的期限。例如飞行控制系统、实时监视器等。
实时系统中有两种类型的任务:

  1. 周期性任务
  2. 动态任务
  • 周期性任务:在周期性任务中,作业定期发布。周期性任务是在固定的时间间隔后自我重复的任务。周期性任务由五个元组表示: T i = < Φ i , P i , e i , D i >
    在哪里,
    • Φ i – 是任务的阶段。阶段是任务中第一个作业的发布时间。如果未提及该阶段,则假定第一个作业的发布时间为零。
    • P i – 是任务的周期,即两个连续作业的发布时间之间的时间间隔。
    • e i - 是任务的执行时间。
    • D i - 是任务的相对截止日期。

    例如:考虑周期 = 5 且执行时间 = 3的任务 T i
    因此没有给出阶段,假设第一个作业的发布时间为零。因此,该任务的作业首先在 t = 0 时释放,然后执行 3 秒,然后在 t = 5 时释放下一个作业,执行 3 秒,然后在 t = 10 时释放下一个作业。因此,作业在 t = 时释放5k 其中 k = 0, 1, . . ., n

    间隔实时
    一组周期性任务的超周期是该集合中所有任务的周期的最小公倍数。例如,分别具有周期 4 和 5 的两个任务 T 1和 T 2将有一个超周期,H = lcm(p1, p2) = lcm(4, 5) = 20。超周期是之后的模式工作发布时间开始重复。

  • 动态任务:它是由事件的发生调用的顺序程序。事件可以由系统外部的进程或系统内部的进程生成。动态到达的任务可以根据其重要性和对其发生时间的了解进行分类。
    1. 非周期性任务:在这种类型的任务中,作业以任意时间间隔(即随机)发布。非周期性任务有软截止日期或没有截止日期。
    2. 零星任务:它们类似于非周期性任务,即它们随机重复。唯一的区别是零星任务有严格的截止日期。一个周期性任务由三个元组表示: T i =(e i , g i , D i )
      在哪里
      e i - 任务的执行时间。
      g i - 任务的两个连续实例出现之间的最小间隔。
      D i - 任务的相对截止日期。

抖动:有时不知道作业的实际发布时间。只知道 r i在 [r i -, r i + ] 范围内。这个范围被称为释放时间抖动。这里R I -是如何工作的早期,可以释放,R I +是一份工作多晚可以被释放。只有作业执行时间的范围 [ e i -, e i + ] 是已知的。这里 e i - 是作业完成执行所需的最短时间,e i + 作业完成执行所需的最长时间。

作业的优先约束:如果任务中的作业可以按任何顺序执行,则它们是独立的。如果任务中的作业必须执行有特定的顺序,则称作业具有优先约束。为了表示作业的优先约束,使用了偏序关系 <。这称为优先关系。如果J i < J j ie J j在J i完成之前无法开始执行,则作业J i是作业J j 的前驱。 Ĵ为J j的直接前导如果j置于j和没有其它工作j K,使得Ĵ置于置于如果J i < J j或J j < J i都不为真,则J i和J j是独立的。
表示优先约束的一种有效方法是使用有向图 G = (J, <),其中 J 是作业集。该图称为优先图。作业由图的顶点表示,优先约束使用有向边表示。如果存在从 J i到 J j 的有向边,则表示 J i是 J j 的直接前驱。例如: 假设任务 T 有 5 个作业 J 1 、J 2 、J 3 、J 4和 J 5 ,这样 J 2和 J 5在 J 1完成之前无法开始执行,并且没有其他约束。
此示例的优先约束是:
J 1 < J 2和 J 1 < J 5



优先图

设置优先图的表示:

  1. < (1) = { }
  2. < (2) = {1}
  3. < (3) = { }
  4. < (4) = { }
  5. < (5) = {1}

考虑另一个示例,其中给出了优先级图并且您必须找到优先级约束

优先图另一个例子

从上图中,我们得出以下优先约束:

  1. J 1 < J 2
  2. J 2 < J 3
  3. J 2 < J 4
  4. J 3 < J 4