如何防止优先级反转及其继承 - 如何为远程医疗设备选择合适的实时操作系统?
发布网友
发布时间:2022-05-14 12:18
我来回答
共1个回答
热心网友
时间:2023-10-16 17:52
防止优先级反转 操作系统中最令人头疼的错误是优先级反转。它是指低优先级任务阻止高优先级任务完成运行的状态。例如,在报警控制、数据记录仪和数据聚合器共享资源的病人监控系统里,优先级高的任务(报警控制器)必须等待优先级低的任务(数据记录器)结束才能继续运行。第三项任务(数据聚合器)的优先级比报警控制器的低,但比数据记录器的高。数据聚合器会抢占数据记录器的优先级,进而抢占报警控制器的优先级,这就无法满足实时提交的要求。 优先级继承 优先级继承是指将被阻止的高优先级任务的优先级分配给阻止任务的低优先级线程,直至完成被阻止的任务,以此防止优先级反转。例如,数据记录器可继承报警控制器的优先级,这样它就不会被数据聚合器抢占。当任务结束后,它会恢复最初的优先级,报警控制器会解除阻止并继续运行。
图4 优先级继承防止优先级反转 确保可用性 对许多系统来说,资源的可用性至关重要。假如某一子系统出现CPU周期匮乏,会导致十分严重的后果。例如,如果心脏监护仪的连接中断可能导致中心监护系统误认为出现报警情况并派出急救人员,或当病人真出现危急状况时,系统却无法发出报警信息。 根据以往经验,解决这一问题的途径是更新硬件或重新设计软件。虽然将新设计的软件发送到联网的医疗设备上是一个可行方案,但这不仅使成本高昂,而且还可能导致该设备已有的产品认证失效。 分区分区技术通过执行CPU预算并防止进程独占CPU周期,使资源匮乏的问题迎刃而解。可选择两种类型的分区:固定式和自适应式。 采用固定分区,系统设计人员为每个任务指定分配的CPU时间。分区内的任务消耗的CPU时间都不能超过分区时已分配的时间比例,以便于其他分区内的进程保持随时可用,进而保证所有关键进程随时可用。 遗憾的是,采用固定分区时,即使分配到其他地方的周期未被使用,另一个分区内的进程也无法使用,因为它不能使用超出其所在分区预先分配的CPU周期,固定分区虽然能防止系统出现资源匮乏,但它却浪费了CPU周期,而且削弱了系统应对高峰需求的能力。 与固定分区类似,自适应分区也能防止资源匮乏。然而,自适应分区采用一种动态调度算法将一个分区内闲置的CPU周期重新分配到另一个需要更多处理时间的分区内。当多个分区内的进程争夺CPU周期时,自适应分区会执行资源分配。这样,设计人员就能充分依赖系统资源保证,不必再为固定分区造成的处理能力降低而寻找良策了。 监视、停止或重启进程 防止整个系统的进程发生连锁故障和自我修复功能对可信赖的操作系统至关重要。需确保系统可用性的设备可采用面向硬件的高可用性解决方案和软件监视程序。 监视程序监视系统并进行多级恢复或按要求平稳关机。根据执行方式的不同,当出现故障时它应:先终止然后重启出现故障的进程而无需重启系统,或者,终止故障进程和相关进程,初始化硬件使其进入“安全”状态,然后以协调方式重启终止的进程,或者,如故障比较严重或危及安全,能以受控方式关机或使整个系统复位,并向系统操作员发出报警。 在所有情况下,监视程序都必须能自我监控并灵活响应内部故障。如果监视程序意外停止,它必须通过一个镜像进程复制本身的状态。 最后,软件监视程序能监视传统硬件监视程序看不到的系统事件。例如,硬件监视程序能确保驱动程序为硬件服务,但却很难检测到其他程序是否正与该驱动程序正确通话。软件监视程序能弥补这一不足,它会在驱动程序本身出现问题前采取行动。 结论 发达国家的人口老龄化趋势和健康预算紧缩都促使医疗服务方式由常规医院模式向远程医疗和家庭自助模式转变。这些变化和最新技术推动远程医疗设备的市场不断扩大,其发展速度之快在十年前是难以想象的。 设备制造商通过认真分析所选操作系统的性能特征,从而降低成本并提升其产品顺利通过行业认证而在市场上大获成功的机会。