什么是实时系统?
1:指系统能够在限定的响应时间内提供所需水平的服务。
2:指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。
什么是实时任务?
定义:具有明确时间约束的计算任务,有软/硬,随机/周期性之分。
硬实时任务:必须满足任务对截止时间的要求
软实时任务:联系着一个截止时间,但不严格,可偶尔错过,不会对系统造成大的影响。有一个截止时间但可以超过
实时调度的基本条件
系统需要向调度程序提供相关任务的信息;系统处理能力需要足够的强;采用抢占调度机制;可以快速切换
系统需要向调度程序提供相关任务的信息:
就绪时间:成为就绪状态的时间
开始时间、完成截止时间。
处理时间:从开始到完成所需的时间
资源需求:任务执行时所需要的一组时间
优先级:任务性质不同赋予不同的优先级
系统处理能力需要足够的强:
处理能力不强导致某些实时任务不能得到及时处理
需要一种条件满足处理系统的处理能力:
系统中有M个周期性的硬实时任务,处理时间为Ci,周期时间表示为Pi,
单机系统中必须满足条件
∑( Ci / Pi )≤1 M个相加
多处理机系统:
∑( Ci / Pi )≤N N为处理机数
采用抢占调度机制:
硬实时任务:广泛采用抢占机制;
小的实时系统:能预知任务的开始和截至时间,可以简化调度所花费的系统开销。
可以快速切换:
对外部终中断的快速响应能力;
快速分优先配任务能力。
几种实时调度算法
常用的算法中介绍两种实时算法:最早截止时间优先EDF算法和最低松弛度LLF算法
最早截止时间优先EDF
截至时间越早优先级越高
最低松弛度优先LLF
根据人任务紧急的程度确定任务的优先级
松弛度=截止完成时间 – 还需执行时间 - 当前时间
随着时间的推进,差值越来越小,任务越来越紧迫