面试题答案
一键面试进程调度策略选择
- 硬实时任务:
- 策略:通常采用抢占式调度策略,如最早截止时间优先(EDF)调度算法或速率单调调度(RMS)算法。
- 原因:硬实时任务有严格的截止时间要求,必须在规定时间内完成。抢占式调度能保证当一个更紧急(截止时间更近)的硬实时任务到达时,当前执行的任务可以被中断,优先执行紧急任务,以确保任务能满足其截止时间。例如,EDF算法根据任务的截止时间来调度,截止时间越早的任务越优先执行;RMS算法则根据任务的周期来分配优先级,周期越短优先级越高,适用于周期任务。
- 软实时任务:
- 策略:可以采用时间片轮转调度算法结合优先级调度算法。对于软实时任务,虽然也有时间要求,但偶尔错过截止时间不会造成严重后果。时间片轮转能保证每个任务都有机会执行,而优先级调度可根据任务的重要性或预估的执行时间等因素调整任务执行顺序。例如,对于一些非关键但有一定时间限制的后台任务,可以分配较低优先级,在硬实时任务执行间隙利用时间片执行。
评估指标
- 任务截止时间满足率:
- 定义:指成功在截止时间内完成的任务数量与总任务数量的比例。对于硬实时任务,这个指标至关重要,理想情况下应接近100%。
- 意义:直接反映调度策略能否满足实时任务的时间要求,是衡量实时系统性能的关键指标。
- 平均响应时间:
- 定义:从任务提交到开始执行的平均时间。对于实时任务,尤其是软实时任务,较短的平均响应时间可以提高用户体验或系统整体效率。
- 意义:体现了调度策略对任务请求的响应速度,响应时间越短,系统对任务的处理越及时。
- 系统吞吐量:
- 定义:单位时间内系统完成的任务数量。
- 意义:反映系统整体处理能力,较高的吞吐量意味着系统能在单位时间内处理更多任务,对于包含软实时任务的系统,吞吐量的提升可以更好地利用系统资源。
量化评估方法
- 任务截止时间满足率:
- 方法:在系统运行过程中,记录每个任务的截止时间和实际完成时间。每完成一个任务,检查是否在截止时间内完成。统计在截止时间内完成的任务数$N_{success}$和总任务数$N_{total}$,通过公式$截止时间满足率=\frac{N_{success}}{N_{total}}\times100%$计算。
- 平均响应时间:
- 方法:在任务提交时记录提交时间$t_{submit}$,在任务开始执行时记录开始执行时间$t_{start}$。对于每个任务计算其响应时间$T_{response}=t_{start}-t_{submit}$。在一段时间内完成多个任务后,计算这些任务响应时间的平均值,即$平均响应时间=\frac{\sum_{i = 1}^{n}T_{response_i}}{n}$,其中$n$为任务数量。
- 系统吞吐量:
- 方法:在一段固定时间$T$内,统计系统完成的任务数量$N$。通过公式$吞吐量=\frac{N}{T}$计算系统吞吐量,单位通常为任务数/秒。