实时系统是一种时间起主导作用的系统。在实时系统中,正确的但是迟到的应答往往比没有还要糟糕。
实时系统通常可以分为两类:硬实时,软实时。前者必须满足绝对的时间截止,后者最然不希望偶尔的错失时间截止,但是可以容忍。
实时系统中的事件可以按照响应方式进一步分为周期性时间和非周期性时间。一个系统可能要响应多个周期性事件流。根据每个时间需要处理时间的长短,系统甚至有可能无法处理完所有事件。假设,如果有m个周期时间,事件i以周期pi发生,并要ci秒CPU时间处理一个事件,存在处理负载的条件:\sum_{i=1}^{m} \cfrac{ci}{pi} <=1,若不等式成立,则说明实时系统是可调度的,反之则是不可调度的(数学公式不知道怎么编辑,我用的latex的方式写的/QAQ,语言描述为:每个事件ci/pi的和。看不懂不要紧,我后面会给例题)
例题:考虑一个有3个周期性事件的软实时系统,其周期分别为100ms,200ms,500ms。如果这些事件分别需要50ms,30ms,100ms的CPU时间,那么这个系统是否是可调度的?
50/100+30/200+100/500 = 0.5+0.15+0.2 = 0.85 <= 1
计算结果满足处理负载的条件,所以,该系统是可调度的。