一种监测系统调度的死锁检测与解除方法转让专利

申请号 : CN201110416487.8

文献号 : CN102521033B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘桂雄高屹许建龙

申请人 : 华南理工大学

摘要 :

本发明公开了一种监测系统调度的死锁检测与解除方法,所述方法包括:检测系统各模块的时间约束执行情况;判定超时模块数量,并规划死锁循环范围;依据价值函数进行价值量判定,并指定牺牲者,剥夺参数运算模块中计算任务所占有的计算结果资源。本方法实时性强、算法简单、效率高、可靠性高,可广泛运用于对实时性要求较高的监测系统调度的死锁检测与解除。

权利要求 :

1.一种监测系统调度的死锁检测与解除方法,其特征在于,所述方法包括:检测系统各模块的时间约束执行情况;

判定超时模块数量,并规划死锁循环范围;

依据价值函数进行价值量判定,并指定牺牲者,剥夺参数运算模块中计算任务所占有的计算结果资源;

所述价值函数为判定任务空余时间价值的函数,该函数为TV=w(d-(τ+E-P)),任务迫切度权值w∈(0,1),τ为系统当前时间,d为任务截止时间,E为任务执行时间估算,P为任务已执行时间;

根据所述各任务迫切权值及价值函数,计算任务的价值量;

判定TV值最大的任务,作为退出死锁拓扑的牺牲者,并剥夺其|资源赋予所需模块使数据流动,任务继续执行;待死锁消失,重新恢复牺牲者|资源,完成任务执行;

打破死锁拓扑以解除死锁,恢复牺牲者资源;

剥夺参数运算模块中计算任务所占有的计算结果资源,并将其赋给全局调度与控制模块,使死锁拓扑被打破,停滞任务得以执行;在死锁解除后,将计算结果资源恢复至参数运算模块。

2.根据权利要求1所述的监测系统调度的死锁检测与解除方法,其特征在于,所述各模块的时间约束执行情况是通过各层协调器负责执行检测;若出现超时,判定系统出错,执行错误判定。

3.根据权利要求2所述的监测系统调度的死锁检测与解除方法,其特征在于,所述各层协调器检测到模块内出现任务执行超时或数据流传输中止,则向全局协调器发送异常报告;所述全局协调器检测到两个或两个以上模块同时出现超时问题,且相互数据流传输中,则判定出现死锁,并判定超时模块存在于死锁循环中。

说明书 :

一种监测系统调度的死锁检测与解除方法

技术领域

[0001] 本发明涉及监测系统调度领域,尤其涉及一种监测系统调度的死锁检测与接触方法。

背景技术

[0002] 死锁问题首先是由从事操作系统中资源分配的计算机科学院研究工作者提出的。研究死锁控制策略的目的是要将系统运行状态的演化控制在可达和安全的状态空间中。在这种层次上,典型的问题的如何避免所禁止的状态或事故发生顺序的产生,如死锁避免或保证活性等。对于后者,主要是定量地描述离散事件系统,其目的在于控制离散事件系统中事件的发生事件。监测系统由获取数据的感知模块、处理数据的运算模块以及系统调度的控制模块构成。对于一般的监测系统(除可一些特殊结构的监测系统以外),系统的主要约束为时间约束,因此,对于监测系统死锁问题的研究,也主要集中在如何降低死锁带来的时间迟滞,以及如何尽快解除死锁。对于监测系统的简单调度,往往不能够完全消除死锁的潜在可能性,因此,国内外学者对死锁问题的研究也广泛展开。
[0003] 目前,处理监测系统死锁的基本方法可以分为以下4种:
[0004] 1)预防死锁
[0005] 通过破坏死锁必要条件中的一个或几个来预防死锁的发生,是一种在实际中比较现实的方法,已被广泛应用。最常采用的消除死锁的方法为“占有并请求条件”或“破坏等待条件”。但是,这样破坏死锁会引起监测系统的资源利用率低。
[0006] 2)避免死锁
[0007] 旨在资源的动态分配过程中,通过合理的调节各并发进程的资源分配和推进顺序,防止系统进入不安全状态,从而避免死锁的发生。目前,在较多系统中采用此方法来避免死锁的发生。该方法存在的问题是需要预先安排进程的推进顺序。
[0008] 3)检测死锁
[0009] 不采用任何限制性措施,运行系统发生死锁。死锁发生后,通过系统设置的检测机构,及时的检测出死锁的发生,精确的确定于死锁相关的任务和资源情况。
[0010] 4)解除死锁
[0011] 解除死锁是检测死锁的目的。在已经检测到死锁的基础上,针对死锁,采取适当措施,从系统中将已经发生的死锁消除。

发明内容

[0012] 为解决上述中存在的问题与缺陷,本发明提供了一种监测系统调度的死锁检测与接触方法。所述技术方案如下:
[0013] 一种监测系统调度的死锁检测与接触方法,包括:
[0014] 检测系统各模块的时间约束执行情况;
[0015] 判定超时模块数量,并规划死锁循环范围;
[0016] 依据价值函数进行价值量判定,并指定牺牲者,剥夺参数运算模块中计算任务所占有的计算结果资源;
[0017] 打破死锁拓扑以解除死锁,恢复牺牲者资源。
[0018] 本发明提供的技术方案的有益效果是:
[0019] 充分考虑监测系统实时性要求及任务调度关系,设定了分层死锁检测模式。量化牺牲者判定指标,定义快速判定空余时间价值量方法,将解除死锁程序优化。本方法实时性强、算法简单、效率高、可靠性高,可广泛运用于对实时性要求较高的监测系统调度的死锁检测与解除。

附图说明

[0020] 图1是机动车运行安全状态监测系统架构图;
[0021] 图2是机动车运行安全状态监测系统软件流程图;
[0022] 图3是机动车运行安全状态检测系统任务调度模型图;
[0023] 图4是机动车运行安全状态监测系统死锁检测与解除流程图;
[0024] 图5是监测系统调度的死锁检测与解除方法流程图;
[0025] 图6是机动车运行安全状态监测系统调度死锁模型图。

具体实施方式

[0026] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述:
[0027] 本实施例提供以一种机动车运行安全状态监测(VOSM,Vehicle OperatingSafe State Monitoring)系统为例对本发明实施方式作进一步地详细描述:
[0028] 本实施例基于VOSM系统,其架构参阅图1,包括车身传感单元、悬挂传感单元、车轮传感单元、CAN总线、控制与调度处理器、数据运算处理器、无线射频设备;所述车身传感单元和悬挂传感单元通过CAN总线与所述控制与调度处理器和数据运算处理器连接。其中,车身传感单元安装在车内部,悬挂传感单元安装在悬挂装置上;车轮传感单元安装在车的轮毂上,且车轮传感单元通过无线射频设备与控制与调度处理器和数据运算处理器连接。参见图2,VOSM系统首先获取来自安装在机动车上的加速度传感器信号,辨别系统模式,通过发送传感数据获取命令,获取车身三维传感器后用于车运动姿态参数(MAP,Motion Attitude Parameters)计算,轮胎三维加速度传感器信息用于车轮姿态(MAP)的计算,悬挂三维加速度传感器信息用于动载荷参数(DLP,Dynamic Load Parameters)的计算,车身MAP、车轮MAP、悬挂DLP计算结束后通过制动参数(BPP,Braking Performance Parameters)计算模型可以获得车轮BPP信息。其中,全局控制与协调模块可协调传感数据获取模块与参数运算模块,以协调车身MAP、车轮MAP、悬挂DLP和BPP的计算过程(参见图3)。然后将计算结果返回到系统中,并判断是否要更新系统,如果需要返回执行模式辨别;
否则结束流程。但由于系统调度与资源占有问题,在监测系统实际监测任务中,死锁问题存在发生的可能性。
[0029] 根据系统所需实现的功能,将任务执行划分为N个模块,为协调各模块间任务执行与数据传输,设置包含全局协调器的高级模块,且各模块均包括本地协调器,对模块任务序列及时间约束进行监测与协调。系统运行时,各层级协调器同时监测模块运行情况,当检测到模块内出现任务执行超时或数据流传输中止,即向全局协调器发送异常报告。当全局协调器检测到系统中两个或两个以上模块同时出现超时问题,且相互数据流传输中止,则判定出现死锁,并判定超时模块存在于死锁循环中。
[0030] 另一方面,本实施例所涉及的一种监测系统调度的死锁解除方法,包括:
[0031] 指定监测系统各任务迫切性权值,根据价值函数计算任务价值量,权值可由用户依据监测任务特性进行自定义;
[0032] 根据任务价值量,判定死锁牺牲者,并剥夺其占有资源;
[0033] 将牺牲者资源传递给所需模块,推动系统运行;
[0034] 检测系统死锁是否打破,并还原牺牲者资源,进行下一周期监测任务。
[0035] 本实施例对VOSM系统调度的死锁实施检测架构与流程如图4和图5所示,所述方法包括:
[0036] 步骤10检测系统各模块的时间约束执行情况;
[0037] 步骤20判定超时模块数量,并规划死锁循环范围;
[0038] 步骤30依据价值函数进行价值量判定,并指定牺牲者,剥夺参数运算模块中计算任务所占有的计算结果资源;
[0039] 步骤40打破死锁拓扑以解除死锁,恢复牺牲者资源。
[0040] 上述步骤10具体包括:根据VOSM系统的监测功能,将其划分为三个模块,即全局控制与协调模块包含全局协调器,其他两模块均包括本地协调器,检测模块内任务执行是否超出时间约束。
[0041] 所述步骤20具体包括,当各模块协调器检测到VOSM系统中全局控制与协调模块、传感数据获取模块、参数运算模块同时出现任务超时问题,则可划定三模块处于如图6所示死锁循环范围。
[0042] 所述步骤30具体包括,指定计算任务迫切权值为0.95、数据采集任务迫切权值为0.3、发送采集命令任务迫切权值为0.1,根据各项时间约束及价值函数TV=w(d-(τ+E-P))计算可知,计算任务TV值最大,作为退出死锁拓扑的牺牲者,剥夺其资源给所需的模块,使数据流动,任务继续执行,待死锁消失,重新恢复牺牲者资源,完成其任务执行。其中任务紧急度权值w∈(0,1),且迫切程度越高,w取值越小;τ为系统当前时间,d为任务截止时间,E为任务执行时间估算,P为任务已执行时间。
[0043] 所述步骤40具体包括,剥夺参数运算模块中计算任务所占有的计算结果资源,并将其赋给全局调度与控制模块,使死锁拓扑被打破,停滞任务得以执行。在死锁解除后,将计算结果资源恢复至参数运算模块。
[0044] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。