考虑一个事件驱动的实时系统。该系统通常等待一个实时的事件出现。事件可能出现在软件中----比如计时器过时----或者出现在硬件中----比如一个遥控车辆检测到它正在接近障碍物。当一个事件发生时,系统必须尽可能快地响应和服务它。我们将事件延迟(event latency)称为从事件发生到被服务之间所发生的时间(图6.12)。

通常,不同的事件有不同的延迟需求。例如,防抱死制动系统的延迟要求可能是3到5毫秒。也就是说,当第一次检测到轮子它在滑动时,控制防抱死的系统有3到5毫秒的时间来响应和控制这种情况。任何需要更长时间的反应都可能导致汽车失去控制。相比之下,在飞机上控制雷达的嵌入式系统可以容忍几秒钟的延迟。

两种延迟会影响实时系统的性能:

  • 中断延迟
  • 分派延迟

中断延迟是指在CPU上中断的到来到服务中断的例程的开始的时间区间。当中断发生时,操作系统必须首先完成它正在执行的指令,并确定发生的中断类型。然后,在使用特定的中断服务例程(ISR)服务中断之前,它必须保存当前进程的状态。执行这些任务所需的总时间是中断延迟(图6.13)。显然,对于实时操作系统来说,减少中断延迟以确保实时任务立即得到关注是至关重要的。实际上,对于硬实时系统,中断延迟不能简单地最小化,它必须满足这些系统的严格要求。

图6.13 中断延迟。

影响中断延迟的一个重要因素是在当内核数据结构被更新时,实时操作系统会要求中断只在很短的时间内被禁用。

调度分派器停止一个进程并启动另一个进程所需的时间被称为分派延迟。提供实时任务,即时访问CPU命令,实时操作系统最小化这种延迟。最有效的保持调度延迟比较低的技术是提供抢占式内核。

在图6.14中,我们绘制了分派延迟的组成图。分派延迟的冲突阶段有两个组件:

  1. 抢占内核中运行的任何进程。

  2. 由高优先级进程所需的低优先级资源进程释放。由资源的低优先级进程释放

例如,在Solaris中,优先级禁用的分派延迟超过100毫秒。如果启用了抢占,它将减少到不到一毫秒。

图6.14分派延迟

results matching ""

    No results matching ""