当前位置:嗨网首页>书籍在线阅读

17-延迟、抖动和截止期限

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.6.2 延迟、抖动和截止期限

“延迟(latency)”是指触发请求(stimulus)开始发生直到执行响应的时间,如果延迟小于等于操作时限,系统会运行正常。在很多硬实时系统中,操作时限和延迟是等价的,系统以固定的时间间隔、在准确时间点处理触发请求。在软实时系统中,响应不需要那么精确,延迟也会有些区别——响应只需要在截止期限内发生就行。

通常很难测量延迟,因为要计算延迟,就必须知道请求发生的时间。但是,给请求打上时间戳,往往会影响对请求的及时响应。因此,很多测量延迟的方法都不这么处理;实际上,人们测量成功响应的时间偏差。连续事件中的时间偏差称为抖动(jitter),而不是延迟。

举个例子,假定触发请求每10ms发生一次。为了测量系统性能,我们给响应打上时间戳,确保每10ms响应一次,几次测量之间的偏差就是抖动,我们所测量的就是连续响应间的时间偏差。不知道请求发生的时间,我们也就不知道请求和响应之间真正的时间差;即使知道请求每10ms发生一次,我们还是不知道第一次请求何时开始。或许更令人惊讶的是,很多测量延迟的操作都错了,实际上得到的是抖动而不是延迟。可以确定的是,抖动是一个很有用的指标,而且这种测量方式很可能也是非常有用的。不管怎么说,我们都必须实事求是!

硬实时系统经常出现一些非常小的抖动,因为它们在一段时间后而不是那段时间内响应刺激。系统追求零抖动,从而使延迟等于操作间隔。如果延迟超过间隔,就会失败。

硬实时系统通常抖动更少,因为它是在请求之后(而不是在请求和响应之间)的某个确切时间点响应。硬实时系统的目标是零抖动,延迟等于操作时延——通常延迟会小很多,有时会大一些。因此,抖动可以作为性能指标的完美替代品了。