CN112817811B - 扫描失败率的预测方法、装置、设备及存储介质 - Google Patents

扫描失败率的预测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112817811B
CN112817811B CN202011628403.2A CN202011628403A CN112817811B CN 112817811 B CN112817811 B CN 112817811B CN 202011628403 A CN202011628403 A CN 202011628403A CN 112817811 B CN112817811 B CN 112817811B
Authority
CN
China
Prior art keywords
time
failure
magnetic resonance
test
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011628403.2A
Other languages
English (en)
Other versions
CN112817811A (zh
Inventor
黄锦涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen United Imaging Research Institute of Innovative Medical Equipment
Original Assignee
Shenzhen United Imaging Research Institute of Innovative Medical Equipment
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen United Imaging Research Institute of Innovative Medical Equipment filed Critical Shenzhen United Imaging Research Institute of Innovative Medical Equipment
Priority to CN202011628403.2A priority Critical patent/CN112817811B/zh
Publication of CN112817811A publication Critical patent/CN112817811A/zh
Application granted granted Critical
Publication of CN112817811B publication Critical patent/CN112817811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

本发明实施例公开了一种扫描失败率的预测方法、装置、设备及存储介质。该方法应用于运行有实时操作系统的扫描失败率的预测设备上,可以包括:在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,其中,失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;在失效测试脚本执行完毕后获取测试结束时间,并根据测试开始时间、测试结束时间和失效时间更新失效次数;基于失效次数和测试次数确定磁共振软件的实时失效率,并根据实时失效率预测磁共振软件的扫描失败率。本发明实施例的技术方案,可以在将磁共振软件应用于现场环境前快速预测出磁共振软件的扫描失败率。

Description

扫描失败率的预测方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种扫描失败率的预测方法、装置、设备及存储介质。
背景技术
每台机器在执行应用于该机器上的磁共振软件进行磁共振扫描时,都可能出现扫描失败的情况。目前,磁共振软件的扫描失败率主要是通过将应用有该磁共振软件的机器在现场环境中实际运行一段时间后才能确定,该扫描失败率也可以称为平均故障间隔时间(Mean Time Between Failure,MTBF)。
但是,每台机器每天能够扫描到的磁共振数据非常有限,而扫描失败率的准确确定需要大量的磁共振数据的支撑。换言之,现有技术需要将机器在现场环境中实际运行很长一段时间之后才能准确计算出扫描失败率,扫描失败率的确定速度太慢。
发明内容
本发明实施例提供了一种扫描失败率的预测方法、装置、设备及存储介质,解决了磁共振软件的扫描失败率的确定速度较慢的问题。
第一方面,本发明实施例提供了一种扫描失败率的预测方法,应用于运行有实时操作系统的扫描失败率的预测设备上,可以包括:
在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,其中,失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;
在失效测试脚本执行完毕后获取测试结束时间,并根据测试开始时间、测试结束时间和失效时间更新失效次数;
基于失效次数和测试次数确定磁共振软件的实时失效率,并根据实时失效率预测磁共振软件的扫描失败率。
第二方面,本发明实施例还提供了一种扫描失败率的预测装置,配置于运行有实时操作系统的扫描失败率的预测设备上,可以包括:
失效测试脚本执行模块,用于在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,其中,失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;
失效次数更新模块,用于失效测试脚本执行完毕后获取测试结束时间,并根据测试开始时间、测试结束时间和失效时间更新失效次数;
扫描失败率预测模块,用于基于失效次数和测试次数确定磁共振软件的实时失效率,并根据实时失效率预测磁共振软件的扫描失败率。
第三方面,本发明实施例还提供了一种扫描失败率的预测设备,可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的扫描失败率的预测方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的扫描失败率的预测方法。
本发明实施例的技术方案,当应用于运行有实时操作系统的扫描失败率的预测设备上的扫描失败率的预测方法监测到失效测试的触发事件时,立即获取测试开始时间并且执行与该触发事件对应的失效测试脚本,该失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;在失效测试脚本执行完毕时立即获取测试结束时间,由此得到了根据测试结束时间和测试开始时间计算出的本次失效测试脚本被调用后的执行时间(即实测时间),进而根据实测时间和磁共振软件实际执行上述扫描流程时的失效时间可以确定本次失效测试是否是一次实时性失效,并根据确定结果更新失效次数;进而,基于失效次数和失效测试的测试次数可以确定磁共振软件的实时失效率,由于实时失效率和单个指令数据块有关,一个协议数据包括多个指令数据块,且扫描失败率与协议数据有关,因此根据实时失效率可以预测出磁共振软件的扫描失败率。上述技术方案,通过对实际的扫描流程进行模拟测试的方式实现了对磁共振扫描过程中的实时性失效进行量化来得到实时失效率的效果,进而根据实时失效率可以预测磁共振软件的扫描失败率,其无需真正运行实际的扫描流程,由此达到了在将磁共振软件应用于现场环境前快速预测出磁共振软件的扫描失败率的效果。
附图说明
图1a是现有技术中的磁共振扫描的架构图;
图1b是现有技术中的磁共振扫描的扫描业务模型;
图2是本发明实施例一中的一种扫描失败率的预测方法的流程图;
图3a是本发明实施例一中的协议数据层次图;
图3b是本发明实施例一中的协议数据关系图;
图3c是本发明实施例一中的指令数据块和协议数据的关系示意图;
图4a是本发明实施例一中的磁共振扫描的扫描流程的示意图;
图4b是本发明实施例一中的实时失效率测试的流程图;
图5a是本发明实施例二中的唤醒指令的示意图;
图5b是本发明实施例二中的反馈数据处理的时序图;
图6是本发明实施例二中的一种扫描失败率的预测方法的流程图;
图7a是本发明实施例二中的预设大小的指令数据块的示意图;
图7b是本发明实施例二中的指令数据块写入的流程图;
图8a是本发明实施例二中的主任务等待唤醒事件的流程图;
图8b是本发明实施例二中的子任务读取唤醒事件后通知主任务的流程图;
图9是本发明实施例三中的一种扫描失败率的预测方法的流程图;
图10a是本发明实施例三中的模拟翻译的流程图;
图10b是本发明实施例三中的调度单次延迟时间确定的流程图;
图11是本发明实施例四中的一种扫描失败率的预测装置的结构框图;
图12是本发明实施例五中的一种扫描失败率的预测设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性说明:参见图1a,用于实现磁共振扫描的磁共振软件④运行在工控机上①(Industrial PersonalComputer,IPC)的实时操作系统③(Real Time Operating System,RTOS)上;序列板卡②插在工控机①的外围接口上,磁共振软件④在访问序列板卡②时需要通过运行在实时操作系统③上的序列板卡驱动程序⑤进行;访问数据流包括序列数据⑥和反馈数据⑦这两种,其中,序列数据⑥由磁共振软件④生成并通过序列板卡驱动程序⑤写入序列板卡②中,反馈数据⑦由序列板卡②生成并通过序列板卡驱动程序⑤通知磁共振软件④进行读取。
在磁共振系统中,序列数据和反馈数据有实时性要求,它们会要求在规定时间内(微秒级别)完成磁共振软件和序列板卡的数据交换,否则将会出现磁共振扫描失败的情况,因此运行着磁共振软件和序列板卡驱动程序的操作系统必须是一个实时操作系统。其中实时操作系统主要是对在进程调度和中断处理这两方面为有实时要求的软件和驱动程序提供高优先级别的处理机制,让这些实时软件和实时驱动程序尽可能降低被操作系统上其它并行运行的普通软件和普通驱动程序的干扰的可能性,以便在最短时间内完成工作任务。但是,实时操作系统在实际运行的过程中,由于多处理器和多任务的根本特性,不可避免的使得实时软件和实时驱动程序出现偶发性的实时性时间延迟,从而无法达到磁共振扫描的实时性要求,进而出现扫描失败的情况。这种因实时性时间延迟引起的扫描失败情况可以称为实时性失效,而因实时性失效导致的一次磁共振扫描失败的情况可以称为磁共振软件的扫描失败。上述实时失效率是一种测量磁共振扫描在实时操作系统上运行的实时性能指标,其基于的磁共振扫描的扫描业务模型可以参见图1b,依次可以包括序列翻译①、序列数据写入序列板卡②、序列板卡处理③、序列板卡反馈④和从序列板卡读取反馈数据⑤。
也就是说,为了将实时操作系统的实时失效性与磁共振软件的扫描失败率关联起来,从实时操作系统使用者和磁共振扫描使用者的角度来衡量实时操作系统的最极限和最坏的情况,以便更好地理解不同的实时操作系统的实时性能和稳定性,使得不同的实时操作系统有量化数据的比较和确定准入标准,由此提出了磁共振软件的实时失效率和扫描失败率的概念。
在此基础上,为了解决背景技术中提及的磁共振软件的扫描失败率的确定速度比较慢的情况,发明人经过多方研究认为,可以将实时性失效进行量化来得到实时失效率,进而根据该实时失效率推导出磁共振软件的扫描失败率。
实施例一
图2是本发明实施例一中提供的一种扫描失败率的预测方法的流程图。本实施例可适用于对运行于实时操作系统上的磁共振软件的扫描失败率进行预测的情况,尤其适用于对运行于实时操作系统上的磁共振软件的实时性失效进行量化来得到实时失效率,进而根据实时失效率推导出磁共振软件的扫描失败率的情况。该方法可以由本发明实施例提供的扫描失败率的预测装置来执行,该装置可以由软件和/或硬件的方式实现,其可以集成在扫描失败率的预测设备上,该设备可以是各种用户终端或服务器,该设备上运行有实时操作系统。
参见图2,本发明实施例的方法具体包括如下步骤:
S110、在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,其中,失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本。
其中,触发事件可以是在准备测试运行于实时操作系统上的磁共振软件的实时失效率时触发的事件,其可以基于用户手动触发、机器自动触发等等多种方式进行触发,示例性的,由于准确的实时失效率通常需要在多次测试后得到,那么可以在测试次数未达到预测测试阈值时触发该触发事件,换言之,在一次失效测试结束后可以判断当前的测试次数是否达到预设失效阈值,若否则可以自动触发该触发事件以执行下一次测试,上述测试次数可以理解为触发事件被触发的次数,也可以理解为后续阐述的失效测试脚本被执行的次数,等等。
测试开始时间可以是该触发事件被监测到的时间,或者说本次失效测试的开始时间,即在触发事件被监测到时立即开始执行本次的失效测试任务。失效测试脚本可以是在测试开始时间时被调用的脚本,其是用于模拟磁共振软件在进行磁共振扫描时的扫描流程的脚本,示例性的,正如上文所述,参见图1b,扫描流程依次可以是序列翻译①、序列数据写入序列板卡②、序列板卡处理③、序列板卡反馈④和从序列板卡读取反馈数据⑤,那么该失效测试脚本被调用时可以依次模拟上述各流程。
需要说明的是,实时失效率可以根据实测时间和失效时间确定,其中实测时间可以是在失效测试脚本被调用时依次模拟上述各流程的耗时,而失效时间可以是磁共振软件在实际完成上述各流程时的耗时,因此各流程的模拟过程不一定是真正完成上述各流程,可以只模拟出各流程的耗时即可。换言之,失效测试脚本在被调用时可以对真正的磁共振数据进行处理,也可以对能够模拟出上述各流程的耗时的其余数据进行处理,等等,在此未做具体限定。
S120、在失效测试脚本执行完毕后获取测试结束时间,根据测试开始时间、测试结束时间和失效时间更新失效次数。
其中,失效测试脚本执行完毕可以理解为失效测试脚本已完成上述各流程,即一个扫描流程模拟完毕,此时可以获取该失效测试脚本执行完毕的时间,该时间可以称为测试结束时间,具体来说是本次失效测试的结束时间。由此一来,根据测试开始时间和测试结束时间可以确定本次失效测试的实测时间,进一步根据实测时间和失效时间可以确定本次失效测试是否为一次实时性失效,比如在实测时间大于等于或是说大于失效时间时认为是一次实时性失效,此时可以对失效次数进行更新处理,如对失效次数进行加一处理,并根据处理结果更新失效次数。即更新前的失效次数可以表示在本次失效测试前已经出现过的实时性失效的次数,而更新后的失效次数可以表示在本次失效测试后已经出现过的实时性失效的次数。当然,更新前的失效次数和更新后的失效次数可能相同也可能不同,这与实际的测试情况有关,在此未做具体限定。
需要说明的是,失效时间是预先设置的时间,其可以根据预先设置的真实翻译时间、写指令数据块耗时和唤醒事件响应耗时确定,其中,真实翻译时间可以是磁共振软件在进行序列翻译时消耗的时间,写指令数据块耗时是磁共振软件可以将指令数据块(即序列数据)写入序列板卡时消耗的时间,唤醒事件响应耗时可以是从序列板卡对指令数据块进行处理到磁共振软件读取到唤醒事件的时间,该唤醒事件可以是序列板卡生成的反馈数据。上述预先设置的各种时间可以是对磁共振软件的多次磁共振扫描统计后得到的具有代表性的时间。
S130、基于失效次数和测试次数确定磁共振软件的实时失效率,根据实时失效率预测磁共振软件的扫描失败率。
其中,当不再监测到触发事件时,即不再进行失效测试时,可以获取失效次数和测试次数,该失效次数可以是在多次失效测试过程中出现实时性失效的次数,测试次数可以是失效测试的执行次数,其与测试开始时间和/或测试结束时间的数量相一致。那么,根据失效次数和测试次数可以确定磁共振软件的实时失效率,比如将二者的比值作为实时失效率。换言之,一次可以测量的实时性失效过程可以为:一次序列翻译、一次指令数据块写入和一次序列数据反馈,那么通过多次重复这个可测量的实时性失效过程可以得到失效次数,进而结合失效次数和测试次数可以计算出实时失效率。示例性的,如表1所示:
表1实时失效率的计算过程
输入条件:
失效时间=真实翻译时间+写指令数据块耗时+Wakeup事件响应耗时
测试次数
实测数据:
实测时间=测试结束时间–测试开始时间
失效次数=累计{失效时间<=实测时间}的次数
计算结果:
实时失效率Fr=失效次数÷测试次数
进一步,根据实时失效率可以预测磁共振软件的扫描失败率,这样阐述的原因在于,参见图3a,序列翻译是将一个磁共振的协议数据⑥包含的一个时序控制块⑦转换为一组序列数据(即指令数据⑧)的过程。具体的,参见图3b,协议数据⑥包含多个序列控制块⑦,一个序列控制块⑦翻译为多条由序列板卡处理的指令数据⑧,多条指令数据⑧组成一组序列数据,该序列数据也被称为一个指令数据块⑨。那么,磁共振扫描可以是在磁共振系统上运行一组或多组序列数据,这里的一组序列数据可以称为一个协议数据。在磁共振扫描过程中,只要存在一个协议数据运行失败,那么本次磁共振扫描就失败了。根据图3a和图3b可以知道,一个协议数据包含多个序列控制块,一个序列控制块对应一个指令数据块,那么可以得到如图3c所示的协议数据和指令数据块的关系示意图。由于实时失效率可以认为是一个指令数据块在运行过程中实时失效的可能性,而与扫描失败率关联的一个协议数据包括多个指令数据块,因此扫描失败率和实时失效率之间存在关联性,即根据实时失效率可以预测出扫描失败率。比如,如果需要预测出单个协议的扫描失败率,那么可以先确定该协议内具有的指令数据块的数据块个数,再根据该数据块个数和实时失效率确定扫描失败率,其具体确定式子可以是Frp=1-(1–Fr)N,其中,Frp是扫描失败率,Fr是实时失效率,N是数据块个数,即扫描1/Frp个协议可能存在一个协议扫描失败,示例性的,如表2a所示。在此基础上,若需要预测出单位时间内的扫描失败率,那么可以获取磁共振软件在单位时间内扫描到的协议的协议个数、以及单个协议内具有的指令数据块的数据块个数,由此可以根据协议个数、数据块个数和实时失效率预测扫描失败率,示例性的,如表2b和表2c所示,它们是以单位时间是每天为例进行展示。当然,单位时间还可以是每月、每季度、每年等等,每台磁共振系统还可以是至少两台磁共振系统等等,在此未做具体限定。
表2a单个协议的扫描失败率的预测过程
Figure BDA0002877993580000101
表2b单台磁共振系统的扫描失败率的预测过程
假设单台磁共振系统每天扫描d个协议:
单台磁共振系统的扫描失败率(每天):Frd=Frp×d
单台磁共振系统的扫描失败率:每天扫描d个协议就有Frd个协议扫描失败
表2c单台磁共振系统的扫描失败率的预测过程
假设单台磁共振系统每天扫描n个受检者,每个受检者平均扫描m个协议:
单台磁共振系统的扫描失败率(每天):Frn=Frp×(n×m)
单台磁共振系统的扫描失败率:每天扫描n个受检者有Frn个受检者扫描失败
本发明实施例的技术方案,当应用于运行有实时操作系统的扫描失败率的预测设备上的扫描失败率的预测方法监测到失效测试的触发事件时,立即获取测试开始时间并且执行与该触发事件对应的失效测试脚本,该失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;在失效测试脚本执行完毕时立即获取测试结束时间,由此得到了根据测试结束时间和测试开始时间计算出的本次失效测试脚本被调用后的执行时间(即实测时间),进而根据实测时间和磁共振软件实际执行上述扫描流程时的失效时间可以确定本次失效测试是否是一次实时性失效,并根据确定结果更新失效次数;进而,基于失效次数和失效测试的测试次数可以确定磁共振软件的实时失效率,由于实时失效率和单个指令数据块有关,一个协议数据包括多个指令数据块,且扫描失败率与协议数据有关,因此根据实时失效率可以预测出磁共振软件的扫描失败率。上述技术方案,通过对实际的扫描流程进行模拟测试的方式实现了对磁共振扫描过程中的实时性失效进行量化来得到实时失效率的效果,进而根据实时失效率可以预测磁共振软件的扫描失败率,其无需真正运行实际的扫描流程,由此达到了在将磁共振软件应用于现场环境前快速预测出磁共振软件的扫描失败率的效果。
为了更好地理解上述各个步骤的具体实现过程,下面结合具体示例对本实施例所述的扫描失败率的预测方法进行示例性说明。示例性的,结合图4a所示的磁共振扫描的扫描流程的示意图,实时失效率的测试过程如图4b所示,其中,模拟翻译、指令数据块写入(即上文中的序列数据写入序列板卡)和序列数据反馈(即上文中的序列板卡处理、序列板卡反馈和从序列板卡读取反馈数据)是失效测试脚本被执行时实现的操作,模拟翻译是对序列翻译进行模拟的过程。
实施例二
在对本发明实施例二进行阐述之前,先对其可能涉及到的应用场景进行示例性说明。根据图1b可知,实际的扫描流程依次可以包括序列翻译①、序列数据写入序列板卡②、序列板卡处理③、序列板卡反馈④和从序列板卡读取反馈数据⑤,那么失效测试脚本被调用时可以依次模拟上述各流程。具体的,针对序列翻译①,序列数据的翻译过程由磁共振软件通过创建的实时任务完成,其可以称为实际翻译。实际翻译中因为含有大量的业务代码而难以用于量化实时失效率,其主要存在以下难点:因业务错综复杂而迁移工作量大、以及因业务更新频繁而不利于稳定测试。考虑到实际翻译是纯软件工作,其只是占用CPU进行运算,实时操作系统进行进程调度时,实际翻译可以包含以下两部分的CPU消耗时间:CPU运行翻译代码的时间和实时操作系统调度时引起的延迟时间。为了解决实际翻译在量化时的难点,发明人提出了使用更为简单的测试代码(即自己编写的模拟翻译脚本)来替代实际翻译,这些测试代码运行过程可以称为模拟翻译。经过大量数据的收集结果确定实际翻译主要集中在200微秒和600微秒,上述统计出来的实际翻译的耗时可以称为真实翻译时间。需要说明的是,200微妙对应于大小是5k字节的指令数据块,600微妙对应于大小是64k字节的指令数据块,它们都是根据真实的磁共振数据统计出来的具有代表性的数据。
针对序列数据写入序列板卡②,其是基于磁共振软件把翻译得到的某指令数据块通过序列板卡驱动程序传输给序列板卡的过程。需要说明的时,在实际翻译中产生的指令数据块的大小与磁共振软件针对协议数据的设计有关,而与实时操作系统无关,因此只要设计未发生变化,同样大小的指令数据块可以在不同的实时操作系统上量化为实时失效率。经过大量数据的收集结果认为,某大小为5k字节或是64k字节的指令数据块可以代表磁共振软件针对协议数据的设计。在量化实时失效率时,通常需要得到5k字节或是64k字节的实时失效率。为了便于表述,可以将磁共振软件把指令数据块写入序列板卡时所需要的时间称为写指令数据块耗时。需要说明的是,由于该磁共振扫描业务模型要求序列板卡生成反馈数据,因此在指令数据块中可以含有一条反馈指令数据,其可以称为唤醒指令(Wakeup指令)。唤醒指令的设计原理可以参见图5a,其中唤醒指令类型可以表明这是一条唤醒指令,而唤醒时间戳(即唤醒时间)可以填写为唤醒时间戳=当前时间戳+唤醒时间间隔,唤醒时间戳可以用WakeupTime表示,其也可以称为触发唤醒时间(即触发Wakeup时间)。
针对序列板卡处理③与序列板卡反馈④,序列板卡在接收到序列数据后,当其发现其中存在唤醒指令时,可以以WakeupTime开始定时,进而在定时器超时的时候向磁共振软件传输反馈数据,这样的反馈数据可以称为唤醒事件(即Wakup事件)。
针对从序列板卡读取反馈数据⑤,反馈数据可以通过中断方式被实时操作系统捕获,实时操作系统可以调用序列板卡驱动程序,以使序列板卡驱动程序通知磁共振软件读取到反馈数据,其具体实现过程如图5b所示。由于反馈数据是“Wakup事件”,那么从T0到T1的时间间隔可以称为唤醒事件响应耗时(即Wakeup事件响应耗时)。
为了体现上述实时操作系统的一次“序列翻译→序列数据写入序列板卡→序列板卡中断反馈”过程的实时性失效概率(即实时失效率),本发明实施例二设置了可以实现如下步骤的失效测试脚本,其具体实现过程如下所述。
图6是本发明实施例二中提供的一种扫描失败率的预测方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,预测设备上设置有序列板卡,失效测试脚本被执行时实现如下步骤:执行模拟翻译脚本,并在模拟翻译脚本执行完毕之后,将预设大小且包含有唤醒指令的指令数据块写入序列板卡中;读取序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图6,本实施例的方法具体可以包括如下步骤:
S210、在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,以使该失效测试脚本执行下述S220-S230,其中失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本。
S220、执行模拟翻译脚本,并在模拟翻译脚本执行完毕之后,将预设大小且包含有唤醒指令的指令数据块写入序列板卡中。
其中,参照磁共振软件的实际扫描流程,先执行用于模拟实际翻译过程的模拟翻译脚本,在模拟翻译脚本执行完毕后,这说明模拟的实际翻译已完成,此时已产生指令数据块,可以将该指令数据块写入序列板卡中。需要说明的是,在实际扫描流程中,指令数据块是由磁共振软件通过实际翻译后生成的数据。但是,模拟翻译脚本只是模拟实际翻译过程中的真实翻译时间,其并不是真的对磁共振数据进行翻译,因此本发明实施例所述的指令数据块是预设大小并且包含唤醒指令的数据块,其是否是磁共振数据都可以,这样设置的原因在于,正如上文所述,对各流程进行模拟时不一定是真正完成各流程,可以是只模拟出各流程的耗时,因此预先准备后的指令数据块的数据信息只要满足耗时模拟方面的相关要求即可。具体的,在将指令数据块写入序列板卡时,写指令数据块耗时与指令数据块的大小有关,因此指令数据块可以是预设大小的数据,该预设大小可以是5k字节或者是64k字节,通过情况下,5k字节和64k字节的指令数据块对应的实时失效率需要分别进行测试。另外,指令数据块中需包含唤醒指令,这是为了通过序列板卡在唤醒时间戳时传输唤醒事件,当然,在模拟过程中,序列板卡不需要对接收到的指令数据块进行处理,其可以只在在唤醒时间戳时产生反馈唤醒事件。
S230、读取序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件。
其中,当读取到序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件时,失效测试脚本执行完毕。
S240、在失效测试脚本执行完毕后获取测试结束时间,根据测试开始时间、测试结束时间和失效时间更新失效次数。
S250、基于失效次数和测试次数确定磁共振软件的实时失效率,根据实时失效率预测磁共振软件的扫描失败率。
本发明实施例的技术方案,通过执行模拟翻译脚本,并在该模拟翻译脚本执行完毕之后,将满足耗时模拟要求的预设大小且包含有唤醒指令的指令数据块写入序列板卡中,进而在读取到序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件时,完成了磁共振扫描的整个扫描流程在耗时方面的模拟,由此达到了准确模拟出扫描流程的耗时情况的效果。
一种可选的技术方案,将预设大小且包含有唤醒指令的指令数据块写入序列板卡中,可以包括:基于主任务将预设大小且包含有唤醒指令的指令数据块写入序列板卡,其中,主任务通过调用运行于实时操作系统上的序列板卡驱动程序,将指令数据块写入序列板卡中,且预设大小是磁共振软件在磁共振扫描中的指令数据块的大小。在此基础上,可选的,如果主任务调用序列板卡驱动程序失败,那么可以不再继续执行失效测试脚本,且对失效次数进行加一处理,并根据处理结果更新失效次数。需要说明的是,在上述情况下,由于不再继续执行失效测试脚本,这意味着失效测试脚本并未执行完毕,那么不会执行获取测试结束时间的步骤。也就是说,上述技术方案包括两个技术分支,一个技术分支是失效测试脚本执行完毕,即S220-S230均执行完毕,此时可以获取测试结束时间,根据测试开始时间、测试结束时间和失效时间更新失效次数;另一技术分支是失效测试脚本未执行完毕,此时可以直接对失效次数进行加一处理,并根据处理结果更新失效次数。接下来,两个技术分支均可以执行S250的步骤。为了更加形象化地理解上述技术方案,参见图7a和图7b,其中,预设大小(S)的指令数据块包括唤醒指令和其他指令数据,S可以是5k字节或是64k字节。
在此基础上,读取序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件,可以包括:基于主任务执行等待操作,如果监测到来源于子任务的通知事件时,读取通知事件对应的序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件;其中,子任务是在调用序列板卡驱动程序读取得到序列板卡通过中断方式传输的唤醒事件时,向主任务发送通知事件。具体的,主任务在将指令数据块传输给序列板卡后,开始执行等待操作,即进入等待唤醒事件状态。进一步,如果主任务监测到来源于子任务的通知事件时,读取相应的唤醒事件。在此基础上,可选的,若主任务等待操作的执行时间超过预先设置的唤醒事件响应耗时,这说明序列板卡未能在唤醒时间时传输唤醒事件,或者子任务未能读取到该唤醒事件,此时可以不再继续执行失效测试脚本,直接对失效次数进行加一处理,并根据处理结果更新失效次数。为了更加形象化地理解上述技术方案中主任务和子任务的实现过程,可以参见图8a和图8b。
实施例三
在对本发明实施例三进行阐述之前,先对本发明实施例三的应用场景进行示例性说明。在对实际翻译进行量化时,主要是模拟实际翻译过程中真实翻译时间,而无需真的对磁共振数据进行翻译。由此考虑到实际翻译是纯软件工作,其只是占用CPU进行运算,实时操作系统进行进程调度时,实际翻译可以包含以下两部分的CPU消耗时间:CPU运行翻译代码的时间和实时操作系统调度时引起的延迟时间。在此基础上,为了解决实际翻译在量化时的困难点,发明人提出了使用更为简单的自己编写的测试代码来替代实际翻译,这些测试代码的运行过程可以称为模拟翻译,该模拟翻译的具体实现思路如下所述。
结合计算机的进程调度机制和序列翻译的执行逻辑确定,若要对序列翻译的真实翻译时间进行模拟,需要得到以下两个关键数据:因操作系统进程调度引起得到延迟时间①(即调度单次延迟时间)和1次连续运行翻译代码CPU时间②(即第一时间和第二时间)。需要说明的是,这里用不同的时间分别表示②的原因在于,在一次序列翻译过程中,翻译代码可能被运行多次,进程(即任务)可以包括处于运行队列的进程和处于睡眠队列的进程,当用于执行翻译代码的进程(即序列翻译进程)由睡眠队列被调度至运行队列后,翻译代码开始运行,并且在运行一段时间后,序列翻译进程会由运行队列被调度至睡眠队列,上述一段时间可以是根据计算机的运行机制预先设置的时间,在此称为第一时间。进一步,计算机可能会调度其余进程来运行其余代码,也有可能继续调度序列翻译进程来运行翻译代码,即使是继续运行翻译代码的情况,在两次运行期间仍然存在调度单次延迟时间。在此基础上,由于真实翻译时间是200微妙或是600微妙,为了有效保证真实翻译时间、第一时间和各次调度单次延迟时间,那么在一次序列翻译过程中最后一次(即末次)运行翻译代码的时间可能不再是第一时间,在此将其称为第二时间。即除了最后一次运行翻译代码的时间是第二时间,其余次运行翻译代码的时间均为第一时间。需要说明的是,在不同的实时操作系统中,①和②并非是固定时间,其可以基于不同的实时操作系统分别进行确定。
图9是本发明实施例三中提供的一种扫描失败率的预测方法的流程图。本实施例以上述实施例二中的各技术方案为基础进行优化。本实施例中,可选的,模拟翻译脚本被执行时可以实现如下步骤:若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值的步骤,其中,预设调用阈值是第一睡眠函数的需调用次数,且第一时间是预先设置的磁共振软件在进行磁共振扫描时序列翻译进程首次被调度时的执行时间;否则,调用睡眠时间为第二时间的第二睡眠函数,其中,第二时间是序列翻译进程末次被调度时的执行时间。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图9,本实施例的方法具体可以包括如下步骤:
S310、在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,以使该失效测试脚本执行下述S320-S330,其中失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本。
S320、执行模拟翻译脚本,并在模拟翻译脚本执行完毕之后,将预设大小且包含有唤醒指令的指令数据块写入序列板卡中,其中,模拟翻译脚本被执行时实现如下步骤:若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值的步骤;否则,调用睡眠时间为第二时间的第二睡眠函数,其中,预设调用阈值是第一睡眠函数的需调用次数,且第一时间是预先设置的磁共振软件在进行磁共振扫描时序列翻译进程首次被调度时的执行时间,第二时间是序列翻译进程末次被调度时的执行时间。
其中,睡眠函数可以是由实时操作系统提供的最精准的用于从该睡眠函数被执行的执行起始时间开始暂停执行任务的函数,具体的暂停时间与睡眠函数的睡眠时间有关,其设置原因是为了模拟翻译代码的运行时间。正如上文所述,序列翻译进程被调度后的执行时间(即翻译代码的运行时间)可能是第一时间也可能是第二时间,在此为了简化表述,可将睡眠时间为第一时间的睡眠函数称为第一睡眠函数,并且将睡眠时间为第二时间的睡眠函数称为第二睡眠函数。
已调用次数可以是第一睡眠函数在本次的翻译时间模拟过程中已经被调用的次数,需要说明的,在一次翻译时间模拟过程中,第一睡眠函数可能被调用至少一次,这与具体的真实翻译时间有关。预设调用阈值可以是在本次的翻译时间模拟过程中第一睡眠函数的需调用次数,根据上文所述可知,当第一睡眠函数被调用需调用次数并且第二睡眠函数被调用一次后,由此得到的模拟翻译时间相当于真实翻译时间。因此,当已调用次数未达到预设调用阈值时,可以再次调用第一睡眠函数;否则可以调用第二睡眠函数。在此基础上,为了更加形象化理解上述模拟翻译脚本的实现过程,可以参见图10a所示的可选示例。
S330、读取序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件。
S340、在失效测试脚本执行完毕后获取测试结束时间,根据测试开始时间、测试结束时间和失效时间更新失效次数。
S350、基于失效次数和测试次数确定磁共振软件的实时失效率,根据实时失效率预测磁共振软件的扫描失败率。
本发明实施例的技术方案,由于第一睡眠函数的执行过程相当于翻译代码的除了最后一次之外的其余次的运行过程,且第二睡眠函数的执行过程相当于翻译代码的最后一次的运行过程,因此可判断已调用次数是否达到需调用次数,若否则可以再次调用第一睡眠函数以使该已调用次数达到需调用次数,否则可调用睡眠时间为第二时间的第二睡眠函数,由此完成了序列翻译的模拟过程。
在此基础上,一种可选的技术方案,上述模拟时间翻译方法,还可以包括:根据真实翻译时间和第一时间确定出序列翻译进程的需调度次数,并确定在需调度次数的进程调度过程中的调度总延迟时间;根据真实翻译时间和调度总延迟时间确定序列翻译进程在进程调度过程中的进程运行时间,并根据进程运行时间和第一时间确定第二时间。其中,由于一次序列翻译过程中需要调度多次序列翻译进程,且根据前文分析可知,序列翻译进程的需调度次数等于已调用次数加1。由于已调用次数可以根据真实翻译时间和第一时间确定,其可以表示出真实翻译时间中包括的完整的第一时间的数量,因此需调度次数可以根据真实翻译时间和第一时间来确定。进一步的,每次进程调度过程中都可能存在一个调度单次延迟时间,那么根据需调度次数可以确定在那么多次的进程调度过程中的调度总延迟时间。当从真实翻译时间中排除了进程调度过程中的调度总延迟时间之后可以得到序列翻译进程在进程调度过程中的进程运行时间,该进程运行时间是翻译代码的总的运行时间,其可以是需调度次数的第一时间和一次的第二时间的加和,因此根据进程运行时间和第一时间可以确定第二时间。
在此基础上,一种可选的技术方案,考虑到进程运行时间可以根据需调度次数(即预设调用阈值)的第一时间和一次的第二时间确定,而第二时间必定小于等于第一时间,因此可以根据进程运行时间和第一时间确定预设调用阈值,比如将进程运行时间相对于第一时间的商作为预设调用阈值。
在此基础上,一种可选的技术方案,确定在需调度次数的进程调度过程中的调度总延迟时间,可以包括:确定在单次的进程调度过程中的调度单次延迟时间,该调度单次延迟时间可以通过多次测试得到;根据调度单次延迟时间和需调度次数,确定在需调度次数的进程调度过程中的调度总延迟时间,即调度总延迟时间可以是调度单次延迟时间和需调度次数的乘积结果。
在此基础上,一种可选的技术方案,确定在单次的进程调度过程中的调度单次延迟时间,可包括:在监测到延迟测试的测试触发事件时,获取测试触发事件对应的测试开始时间,且调用第一睡眠函数,获取测试结束时间;根据测试开始时间、测试结束时间和第一时间确定调度测试延迟时间,重复执行在监测到延迟测试的测试触发事件时的步骤;如果调度测试延迟时间的测试次数达到预设测试阈值,则根据各调度测试延迟时间确定在单次的进程调度过程中的调度单次延迟时间。其中,测试触发事件可以是在准备对序列翻译中调度单次延迟时间进行测试时触发的事件,其可以是基于用户手动触发、机器自动触发等多种方式进行触发。测试开始时间可以是该测试触发事件被监测到的时间,即在测试触发事件被监测到时立即开始执行本次的延迟测试任务。在获取测试开始时间的同时调用第一睡眠函数,并且在第一睡眠函数执行完毕时立即获取测试结束时间,由于第一睡眠函数在被调用时存在调用延迟的情况,因此根据测试结束时间、测试开始时间和第一时间可以得到本次的延迟测试的调度测试延迟时间。示例性的,测试结束时间和测试开始时间之间的差值为102微秒,第一时间是100微秒,那么调度测试延迟时间是2微秒。循环往复上述过程,并且在测试次数达到预设测试阈值时,可以根据多次的调度测试延迟时间得到单次的进程调度过程中的调度单次延迟时间,如将各次调度测试延迟时间进行平均处理、加权平均处理、统计处理等等得到。上述调度单次延迟时间的确定流程可以参见图10b。
在此基础上,一种可选的技术方案,根据各调度测试延迟时间确定在单次的进程调度过程中的调度单次延迟时间,可包括:对各调度测试延迟时间进行统计,根据统计结果确定各调度测试延迟时间在各调度延迟范围内的数量占比;根据各调度延迟范围和相应的数量占比确定在单次的进程调度过程中的调度单次延迟时间。示例性的,假设基于图10b流程完成第一时间(Ts)是100微秒且在实时操作系统上运行12小时的延迟测试,得到4.3亿个调度测试延迟时间,对它们进行统计后得到如下表3a的统计结果,那么调度单次延迟时间=0.9962×15微秒+0.0038×67微秒=15.1775微秒。
表3a调度测试延迟时间的统计结果
1次进程调度引起的调度延迟范围 数量占比
1~15微秒 0.9962%
15~67微秒 0.0038%
在此基础上,为了更加形象化地理解上述各步骤的运算结果,在此以200微秒和600微秒的真实翻译时间、第一时间是100微秒为例,对上述运算结果进行展示,参见表3b。需要说明的,Tst=0.9962×n×15微秒+0.0038×n×67微秒=15.1775×n微秒,n=真实翻译时间÷100微秒,如果存在余数则n=n+1。第二时间和第一时间通常并不相等,以真实翻译时间为200微秒为例,当Tls为69.645微妙时刚好可以让CPU运行出30.355微妙的Tst。
表3b两种真实翻译时间对应的模拟翻译的运算结果
Figure BDA0002877993580000231
为了验证上述预测方法的可实现性,采用主任务和子任务这两个实时任务配合完成实时失效率的测量。具体的,在实时操作系统中,子任务的优先级比主任务的优先级更高,这是因为子任务处理的是序列板卡通过中断方式传输的反馈数据。在验证时可以设置以下表4a所示的2组输入参数:
表4a实时失效率测量的2组输入参数
Figure BDA0002877993580000241
在一台表4b所示的配置和操作系统环境的计算机上运行与上述实时失效率的测量相关的代码:
表4b计算机的硬件配置和操作系统环境
硬件配置
Intel处理器,超过8G内存
操作系统环境
Linux实时操作系统
由此得到了表4c所示的2组测量结果:
表4c实时失效率测量的2组测量结果
Figure BDA0002877993580000251
由此预测出表4d所示的2组扫描失败率:
表4d扫描失败率预测的2组预测结果
Figure BDA0002877993580000252
实施例四
图11为本发明实施例四提供的扫描失败率的预测装置的结构框图,该装置用于执行上述任意实施例所提供的扫描失败率的预测方法。该装置与上述各实施例的扫描失败率的预测方法属于同一个发明构思,在扫描失败率的预测装置的实施例中未详尽描述的细节内容,可以参考上述扫描失败率的预测方法的实施例。参见图11,该装置配置于运行有实时操作系统的扫描失败率的预测设备,具体可包括:失效测试脚本执行模块410、失效次数更新模块420和扫描失败率预测模块430。其中,
失效测试脚本执行模块410,用于在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;
失效次数更新模块420,用于失效测试脚本执行完毕后获取测试结束时间,并根据测试开始时间、测试结束时间和失效时间更新失效次数;
扫描失败率预测模块430,用于基于失效次数和测试次数确定磁共振软件的实时失效率,并根据实时失效率预测磁共振软件的扫描失败率。
可选的,在预测设备上可以设置有序列板卡,失效测试脚本被执行时可以通过如下子模块实现相应功能:
指令数据块写入子模块,用于执行模拟翻译脚本,并在模拟翻译脚本执行完毕之后,将预设大小且包含有唤醒指令的指令数据块写入序列板卡中;
唤醒事件读取子模块,用于读取序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件。
在此基础上,可选的,指令数据块写入子模块,具体可以包括:
指令数据块写入单元,用于基于主任务将预设大小且包含有唤醒指令的指令数据块写入序列板卡;其中,主任务是调用运行于实时操作系统上的序列板卡驱动程序,将指令数据块写入序列板卡中,且预设大小是磁共振软件在磁共振扫描中的指令数据块的大小。
在此基础上,可选的,唤醒事件读取子模块,具体可以包括:
唤醒事件读取单元,用于基于主任务执行等待操作,如果监测到来源于子任务的通知事件时,读取通知事件对应的序列板卡在唤醒指令对应的唤醒时间时传输的唤醒事件;其中,子任务是在调用序列板卡驱动程序读取得到序列板卡通过中断方式传输的唤醒事件时,向主任务发送通知事件。
可选的,在上述装置的基础上,该装置还可包括:
停止执行模块,用于若主任务调用序列板卡驱动程序失败或对于等待操作的执行时间超过预先设置的唤醒事件响应耗时,则不再继续执行失效测试脚本,并且对失效次数进行加一处理,根据处理结果更新失效次数。
可选的,模拟翻译脚本被执行时可以通过如下单元实现相应功能:
第一睡眠函数调用单元,用于若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值的步骤,其中预设调用阈值是第一睡眠函数的需调用次数,且第一时间是预先设置的磁共振软件在进行磁共振扫描时序列翻译进程首次被调度时的执行时间;
第二睡眠函数调度单元,用于否则,调用睡眠时间为第二时间的第二睡眠函数,其中,第二时间是序列翻译进程末次被调度时的执行时间。
可选的,扫描失败率预测模块430,具体可以包括:
数据块个数获取单元,用于获取磁共振软件在单位时间内扫描到的协议的协议个数、及单个协议内具有的指令数据块的数据块个数;
扫描失败率预测单元,用于根据协议个数、数据块个数以及实时失效率,预测磁共振软件的扫描失败率。
可选的,失效次数更新模块420,具体可以包括:
实测时间确定单元,用于根据测试开始时间和测试结束时间确定实测时间;
失效次数更新单元,用于若实测时间大于等于失效时间,则对失效次数进行加一处理,并根据处理结果更新失效次数;
其中,失效时间是根据预先设置的真实翻译时间、写指令数据块耗时和唤醒事件响应耗时确定的时间,真实翻译时间是磁共振软件在进行序列翻译时消耗的时间,写指令数据块耗时是磁共振软件将指令数据块写入序列板卡时消耗的时间,唤醒事件响应耗时是从序列板卡对指令数据块进行处理到磁共振软件读取到唤醒事件的时间。
本发明实施例四所提供的扫描失败率的预测装置,通过失效测试脚本执行模块、失效次数更新模块和扫描失败率预测模块相互配合,对实际的扫描流程进行模拟测试的方式实现了对磁共振扫描过程中的实时性失效进行量化来得到实时失效率的效果,进而根据实时失效率可以预测磁共振软件的扫描失败率,其无需真正运行实际的扫描流程,由此达到了在将磁共振软件应用于现场环境前快速预测出磁共振软件的扫描失败率的效果。
本发明实施例所提供的扫描失败率的预测装置可执行本发明任意实施例所提供的扫描失败率的预测方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述扫描失败率的预测装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图12为本发明实施例五提供的一种扫描失败率的预测设备的结构示意图,如图12所示,该设备包括存储器510、处理器520、输入装置530和输出装置540。设备中的处理器520的数量可以是一个或多个,图12中以一个处理器520为例;设备中的存储器510、处理器520、输入装置530和输出装置540可以通过总线或其它方式连接,图12中以通过总线550连接为例。
存储器510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的扫描失败率的预测方法对应的程序指令/模块(例如,扫描失败率的预测装置中失效测试脚本执行模块410、失效次数更新模块420和扫描失败率预测模块430)。处理器520通过运行存储在存储器510中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的扫描失败率的预测方法。
存储器510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种扫描失败率的预测方法,可应用于运行有实时操作系统的扫描失败率的预测设备上,可以包括:
在监测到失效测试的触发事件时,获取测试开始时间且执行触发事件对应的失效测试脚本,其中,失效测试脚本是用于模拟待运行于实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;
在失效测试脚本执行完毕后获取测试结束时间,并根据测试开始时间、测试结束时间和失效时间更新失效次数;
基于失效次数和测试次数确定磁共振软件的实时失效率,并根据实时失效率预测磁共振软件的扫描失败率。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的扫描失败率的预测方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种扫描失败率的预测方法,其特征在于,应用于运行有实时操作系统的扫描失败率的预测设备上,所述方法包括:
在监测到失效测试的触发事件时,获取测试开始时间且执行所述触发事件对应的失效测试脚本,其中,所述失效测试脚本是用于模拟待运行于所述实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;
在所述失效测试脚本执行完毕后获取测试结束时间,并根据所述测试开始时间、所述测试结束时间和失效时间更新失效次数;
基于所述失效次数和测试次数确定所述磁共振软件的实时失效率,并根据所述实时失效率预测所述磁共振软件的扫描失败率;
其中,所述根据所述测试开始时间、所述测试结束时间和失效时间更新失效次数,包括:
根据所述测试开始时间和所述测试结束时间确定实测时间;
若所述实测时间大于等于失效时间,则对失效次数进行加一处理,并根据处理结果更新所述失效次数;
其中,所述失效时间是根据预先设置的真实翻译时间、写指令数据块耗时和唤醒事件响应耗时确定的时间,所述真实翻译时间是所述磁共振软件在进行序列翻译时消耗的时间,所述写指令数据块耗时是所述磁共振软件将所述指令数据块写入序列板卡时消耗的时间,所述唤醒事件响应耗时是从所述序列板卡对所述指令数据块进行处理到所述磁共振软件读取到所述唤醒事件的时间。
2.根据权利要求1所述的方法,其特征在于,所述预测设备上设置有序列板卡,所述失效测试脚本被执行时实现如下步骤:
执行模拟翻译脚本,并在所述模拟翻译脚本执行完毕之后,将预设大小且包含有唤醒指令的指令数据块写入所述序列板卡中;
读取所述序列板卡在所述唤醒指令对应的唤醒时间时传输的唤醒事件。
3.根据权利要求2所述的方法,其特征在于,所述将预设大小且包含有唤醒指令的指令数据块写入所述序列板卡中,包括:
基于主任务将预设大小且包含有唤醒指令的指令数据块写入所述序列板卡;
其中,所述主任务是调用运行于所述实时操作系统上的序列板卡驱动程序,将所述指令数据块写入所述序列板卡中,且所述预设大小是所述磁共振软件在磁共振扫描中的所述指令数据块的大小。
4.根据权利要求3所述的方法,其特征在于,所述读取所述序列板卡在所述唤醒指令对应的唤醒时间时传输的唤醒事件,包括:
基于所述主任务执行等待操作,如果监测到来源于子任务的通知事件时,读取所述通知事件对应的所述序列板卡在所述唤醒指令对应的唤醒时间时传输的唤醒事件;
其中,所述子任务是在调用所述序列板卡驱动程序读取得到所述序列板卡通过中断方式传输的所述唤醒事件时,向所述主任务发送所述通知事件。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述主任务调用所述序列板卡驱动程序失败或者对于所述等待操作的执行时间超过预先设置的唤醒事件响应耗时,则不再继续执行所述失效测试脚本,并且对所述失效次数进行加一处理,根据处理结果更新所述失效次数。
6.根据权利要求2所述的方法,其特征在于,所述模拟翻译脚本被执行时实现如下步骤:
若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值,则调用所述第一睡眠函数,重复执行所述若睡眠时间为第一时间的第一睡眠函数的已调用次数未达到预设调用阈值的步骤,其中,所述预设调用阈值是所述第一睡眠函数的需调用次数,且所述第一时间是预先设置的所述磁共振软件在进行磁共振扫描时序列翻译进程首次被调度时的执行时间;
否则,调用睡眠时间为第二时间的第二睡眠函数,其中,所述第二时间是所述序列翻译进程末次被调度时的执行时间。
7.根据权利要求1所述的方法,其特征在于,所述根据所述实时失效率预测所述磁共振软件的扫描失败率,包括:
获取所述磁共振软件在单位时间内扫描到的协议的协议个数、及单个所述协议内具有的指令数据块的数据块个数;
根据所述协议个数、所述数据块个数和所述实时失效率,预测所述磁共振软件的扫描失败率。
8.一种扫描失败率的预测装置,其特征在于,配置于运行有实时操作系统的扫描失败率的预测设备上,所述装置包括:
失效测试脚本执行模块,用于在监测到失效测试的触发事件时,获取测试开始时间且执行所述触发事件对应的失效测试脚本,其中,所述失效测试脚本是用于模拟待运行于所述实时操作系统上的磁共振软件进行磁共振扫描时的扫描流程的脚本;
失效次数更新模块,用于所述失效测试脚本执行完毕后获取测试结束时间,并根据所述测试开始时间、所述测试结束时间和失效时间更新失效次数;
扫描失败率预测模块,用于基于所述失效次数和测试次数确定所述磁共振软件的实时失效率,并根据所述实时失效率预测所述磁共振软件的扫描失败率;
其中,所述根据所述测试开始时间、所述测试结束时间和失效时间更新失效次数,包括:
根据所述测试开始时间和所述测试结束时间确定实测时间;
若所述实测时间大于等于失效时间,则对失效次数进行加一处理,并根据处理结果更新所述失效次数;
其中,所述失效时间是根据预先设置的真实翻译时间、写指令数据块耗时和唤醒事件响应耗时确定的时间,所述真实翻译时间是所述磁共振软件在进行序列翻译时消耗的时间,所述写指令数据块耗时是所述磁共振软件将所述指令数据块写入序列板卡时消耗的时间,所述唤醒事件响应耗时是从所述序列板卡对所述指令数据块进行处理到所述磁共振软件读取到所述唤醒事件的时间。
9.一种扫描失败率的预测设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的扫描失败率的预测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的扫描失败率的预测方法。
CN202011628403.2A 2020-12-31 2020-12-31 扫描失败率的预测方法、装置、设备及存储介质 Active CN112817811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011628403.2A CN112817811B (zh) 2020-12-31 2020-12-31 扫描失败率的预测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011628403.2A CN112817811B (zh) 2020-12-31 2020-12-31 扫描失败率的预测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112817811A CN112817811A (zh) 2021-05-18
CN112817811B true CN112817811B (zh) 2022-09-06

Family

ID=75855054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011628403.2A Active CN112817811B (zh) 2020-12-31 2020-12-31 扫描失败率的预测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112817811B (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876942A (zh) * 2009-04-30 2010-11-03 卓望数码技术(深圳)有限公司 一种终端软件的测试方法及装置
CA2878010A1 (en) * 2012-07-02 2014-01-09 Millikelvin Technologies Llc Improved techniques, systems and machine readable programs for magnetic resonance
CN104216826A (zh) * 2013-06-05 2014-12-17 腾讯科技(深圳)有限公司 测试方法及装置
CN103580954A (zh) * 2013-10-29 2014-02-12 盛科网络(苏州)有限公司 交换机芯片软件仿真验证的装置及方法
CN104978263B (zh) * 2014-04-09 2019-01-29 腾讯科技(深圳)有限公司 一种移动端应用程序测试方法及系统
EP3446138B1 (en) * 2016-04-20 2020-08-19 Fraunhofer Gesellschaft zur Förderung der Angewand System, method and computer program for determining a pulse sequence for a magnetic resonance scanner
US10838850B2 (en) * 2017-11-27 2020-11-17 Accenture Global Solutions Limited Robotic regression testing for smart devices
CN108491323A (zh) * 2018-03-07 2018-09-04 深圳市飞音科技有限公司 一种基于Lua脚本的嵌入式软件自动化测试系统及方法
CN108959925A (zh) * 2018-06-22 2018-12-07 珠海市君天电子科技有限公司 一种恶意脚本的检测方法、装置、电子设备及存储介质
CN109408373B (zh) * 2018-09-26 2022-03-04 深圳壹账通智能科技有限公司 智能合约的测试方法、计算机可读存储介质及测试终端
CN109840205A (zh) * 2018-12-20 2019-06-04 平安科技(深圳)有限公司 应用程序测试方法、装置、可读存储介质及终端设备
CN110442524B (zh) * 2019-08-09 2021-03-30 中国建设银行股份有限公司 一种针对带有认证授权的web服务接口测试方法和装置
CN110584695B (zh) * 2019-09-12 2023-12-12 上海联影医疗科技股份有限公司 医疗影像设备的压力测试方法、装置、设备及存储介质
CN111274157B (zh) * 2020-02-27 2022-08-12 深圳平安医疗健康科技服务有限公司 测试数据模拟方法、装置、计算机设备和存储介质
CN111858372A (zh) * 2020-07-28 2020-10-30 南京铁道职业技术学院 对tsrs系统的自动化测试体系与方式

Also Published As

Publication number Publication date
CN112817811A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
Kim et al. Forecasting cloud application workloads with cloudinsight for predictive resource management
Mishra et al. Esp: A machine learning approach to predicting application interference
US8132170B2 (en) Call stack sampling in a data processing system
EP2386085A1 (en) Time based context sampling of trace data with support for multiple virtual machines
CN111625331A (zh) 任务调度方法、装置、平台、服务器及存储介质
Chen et al. Predicting job completion times using system logs in supercomputing clusters
US8332850B2 (en) Thread starvation profiler by utilizing a set of counters
US8832839B2 (en) Assessing system performance impact of security attacks
WO2019153188A1 (en) Gpu power modeling using system performance data
Wan et al. Analysis and modeling of the end-to-end i/o performance on olcf's titan supercomputer
US7421592B1 (en) High performance counter for realistic measurement of computer system load
CN106686619B (zh) 一种性能评估方法和设备
Schmitt et al. Online power consumption estimation for functions in cloud applications
CN112817811B (zh) 扫描失败率的预测方法、装置、设备及存储介质
US9081605B2 (en) Conflicting sub-process identification method, apparatus and computer program
CN111274112A (zh) 应用程序压测方法、装置、计算机设备和存储介质
CN112817812B (zh) 序列翻译模拟方法、装置、设备及存储介质
US8607232B2 (en) Identifying a transient thread and excluding the transient thread from a processor load calculation
CN113835953A (zh) 作业信息的统计方法、装置、计算机设备和存储介质
Araujo et al. Software aging issues in streaming video player.
Lesage et al. Exploring and understanding multicore interference from observable factors
CN111782482B (zh) 接口压力测试方法及相关设备
Yildiz et al. Data-Driven Workload Generation Based on Google Data Center Measurements
Brady Load Testing Virtualized Servers–Issues and Guidelines
Carothers Supporting Co-Design of Extreme-Scale Systems with In Situ Visual Analysis of Event-Driven Simulations

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant