CN112817812B - 序列翻译模拟方法、装置、设备及存储介质 - Google Patents
序列翻译模拟方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112817812B CN112817812B CN202011634505.5A CN202011634505A CN112817812B CN 112817812 B CN112817812 B CN 112817812B CN 202011634505 A CN202011634505 A CN 202011634505A CN 112817812 B CN112817812 B CN 112817812B
- Authority
- CN
- China
- Prior art keywords
- time
- simulation
- translation
- scheduling
- sequence
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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/3423—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Abstract
本发明实施例公开了一种序列翻译模拟方法、装置、设备及存储介质。该方法应用于运行有实时操作系统的序列翻译模拟设备上,可以包括:在监测到翻译时间模拟的模拟触发事件时,获取模拟触发事件对应的模拟开始时间,且获取睡眠时间为第一时间的第一睡眠函数的已调用次数;若已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行上述步骤,否则调用睡眠时间为第二时间的第二睡眠函数,获取模拟结束时间;根据模拟开始时间和模拟结束时间,模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间。本发明实施例的技术方案,可以模拟出与扫描流程中的序列翻译的真实翻译时间对应的模拟翻译时间。
Description
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种序列翻译模拟方法、装置、设备及存储介质。
背景技术
每台机器在执行应用于该机器上的磁共振软件进行磁共振扫描时,都可能出现扫描失败的情况。目前,磁共振软件的扫描失败率主要是通过将应用有该磁共振软件的机器在现场环境中实际运行一段时间后才能确定,该扫描失败率也可以称为平均故障间隔时间(Mean Time Between Failure,MTBF)。
但是,每台机器每天能够扫描到的磁共振数据非常有限,而扫描失败率的准确确定需要大量的磁共振数据的支撑。换言之,现有技术需要将机器在现场环境中实际运行很长一段时间之后才能准确计算出扫描失败率,扫描失败率的确定速度太慢。
为了解决上述问题,有些技术人员尝试通过模拟磁共振扫描的扫描流程的方式确定扫描失败率。但是,在模拟该扫描流程中的序列翻译的过程中,技术人员遇到了因为业务错综复杂而迁移工作量大、及因为业务更新频繁而不利于稳定测试等等难点,序列翻译的模拟过程难以实现。
发明内容
本发明实施例提供了一种序列翻译模拟方法、装置、设备及存储介质,以实现对磁共振扫描中的序列翻译的真实翻译时间进行模拟的效果。
第一方面,本发明实施例提供了一种序列翻译模拟方法,可应用于运行有实时操作系统的序列翻译模拟设备上,可以包括:
在监测到翻译时间模拟的模拟触发事件时,获取模拟触发事件对应的模拟开始时间,且获取睡眠时间为第一时间的第一睡眠函数的已调用次数;
若已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行获取睡眠时间为第一时间的第一睡眠函数的已调用次数的步骤,否则调用睡眠时间为第二时间的第二睡眠函数,获取模拟结束时间;
根据模拟开始时间和模拟结束时间,模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间;
其中,预设调用阈值是第一睡眠函数的需调用次数,且第一时间是预先设置的用于实现序列翻译的序列翻译进程首次被调度时的执行时间,第二时间是序列翻译进程末次被调度时的执行时间。
可选的,上述序列翻译模拟方法,还可以包括:
根据真实翻译时间和第一时间确定出序列翻译进程的需调度次数,并确定在需调度次数的进程调度过程中的调度总延迟时间;
根据真实翻译时间和调度总延迟时间确定序列翻译进程在进程调度过程中的进程运行时间,并根据进程运行时间和第一时间确定第二时间。
在此基础上,可选的,确定在需调度次数的进程调度过程中的调度总延迟时间,可以包括:
确定在单次的进程调度过程中的调度单次延迟时间;
根据调度单次延迟时间和需调度次数,确定在需调度次数的进程调度过程中的调度总延迟时间。
在此基础上,可选的,确定在单次的进程调度过程中的调度单次延迟时间,可以包括:
在监测到延迟测试的测试触发事件时,获取测试触发事件对应的测试开始时间,且调用第一睡眠函数,获取测试结束时间;
根据测试开始时间、测试结束时间和第一时间确定调度测试延迟时间,重复执行在监测到延迟测试的测试触发事件时的步骤;
如果调度测试延迟时间的测试次数达到预设测试阈值,则根据各调度测试延迟时间确定在单次的进程调度过程中的调度单次延迟时间。
在此基础上,可选的,根据各调度测试延迟时间确定在单次的进程调度过程中的调度单次延迟时间,可以包括:
对各调度测试延迟时间进行统计,根据统计结果确定各调度测试延迟时间在各调度延迟范围内的数量占比;
根据各调度延迟范围和相应的数量占比确定在单次的进程调度过程中的调度单次延迟时间。
在此基础上,可选的,上述序列翻译模拟方法,还可以包括:
根据进程运行时间和第一时间确定预设调用阈值。
可选的,第一睡眠函数是用于从第一睡眠函数被执行的执行起始时间开始的第一时间内暂停执行任务的函数。
第二方面,本发明实施例还提供了一种序列翻译模拟装置,配置于运行有实时操作系统的序列翻译模拟设备上,可以包括:
已调用次数获取模块,用于监测到翻译时间模拟的模拟触发事件时,获取模拟触发事件对应的模拟开始时间,且获取睡眠时间为第一时间的第一睡眠函数的已调用次数;
睡眠函数调用模块,用于若已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行获取睡眠时间为第一时间的第一睡眠函数的已调用次数的步骤,否则调用睡眠时间为第二时间的第二睡眠函数,获取模拟结束时间;
序列翻译模拟模块,用于根据模拟开始时间和模拟结束时间,模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间;
其中,预设调用阈值是第一睡眠函数的需调用次数,且第一时间是预先设置的用于实现序列翻译的序列翻译进程首次被调度时的执行时间,第二时间是序列翻译进程末次被调度时的执行时间。
第三方面,本发明实施例还提供了一种序列翻译模拟设备,可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的序列翻译模拟方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的序列翻译模拟方法。
本发明实施例的技术方案,当应用于运行有实时操作系统的序列翻译模拟设备上的序列翻译模拟方法监测到翻译时间模拟的模拟触发事件时,可以立即获取与模拟触发事件对应的模拟开始时间、及睡眠时间为第一时间的第一睡眠函数的已调用次数;由于第一睡眠函数的执行过程相当于翻译代码的除了最后一次之外的其余次的运行过程,那么当已调用次数达到第一睡眠函数的需调用次数时,本次的翻译时间模拟过程才有可能完成,因此可以判断已调用次数是否达到需调用次数,若否则可以再次调用第一睡眠函数以使该已调用次数达到需调用次数,否则可以调用睡眠时间为第二时间的第二睡眠函数,由于该第二睡眠函数的执行过程相当于翻译代码的最后一次运行过程,由此第二睡眠函数的执行完毕意味着本次翻译时间模拟过程正式结束,因此可以在其执行完毕后立即获取模拟结束时间;进而,根据模拟开始时间和模拟结束时间可以模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间。上述技术方案,通过睡眠函数的睡眠时间模拟序列翻译中翻译代码的运行时间,且结合翻译代码的各次运行过程中的运行时间可能存在差异的特性设置了需要调用至少一次的第一睡眠函数和只需要调用一次的第二睡眠函数,由此在各睡眠函数执行完毕后模拟出了与序列翻译的真实翻译时间对应的模拟翻译时间,达到了对扫描流程中的序列翻译进行模拟的效果。
附图说明
图1a是现有技术中的磁共振扫描的架构图;
图1b是现有技术中的磁共振扫描的扫描业务模型;
图2是本发明实施例一中的一种序列翻译模拟方法的流程图;
图3是本发明实施例一中的一种序列翻译模拟方法中可选示例的流程图;
图4是本发明实施例二中的一种序列翻译模拟方法的流程图;
图5是本发明实施例二中的一种序列翻译模拟方法中可选示例的流程图;
图6是本发明实施例三中的一种序列翻译模拟装置的结构框图;
图7是本发明实施例四中的一种序列翻译模拟设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性说明:在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性的说明:参见图1a,用于实现磁共振扫描的磁共振软件④运行在工控机上①(Industrial Personal Computer,IPC)的实时操作系统③(Real Time Operating System,RTOS)上;序列板卡②插在工控机①的外围接口上,磁共振软件④在访问序列板卡②时需要通过运行在实时操作系统③上的序列板卡驱动程序⑤进行;访问数据流包括序列数据⑥和反馈数据⑦这两种,其中,序列数据⑥由磁共振软件④生成并通过序列板卡驱动程序⑤写入序列板卡②中,反馈数据⑦由序列板卡②生成并通过序列板卡驱动程序⑤通知磁共振软件④进行读取。
在磁共振系统中,序列数据和反馈数据有实时性要求,它们会要求在规定时间内(微秒级别)完成磁共振软件和序列板卡的数据交换,否则将会出现磁共振扫描失败的情况,因此运行着磁共振软件和序列板卡驱动程序的操作系统必须是一个实时操作系统。其中实时操作系统主要是对在进程调度和中断处理这两方面为有实时要求的软件和驱动程序提供高优先级别的处理机制,让这些实时软件和实时驱动程序尽可能降低被操作系统上其它并行运行的普通软件和普通驱动程序的干扰的可能性,以便在最短时间内完成工作任务。但是,实时操作系统在实际运行的过程中,由于多处理器和多任务的根本特性,不可避免的使得实时软件和实时驱动程序出现偶发性的实时性时间延迟,从而无法达到磁共振扫描的实时性要求,进而出现扫描失败的情况。这种因实时性时间延迟引起的扫描失败情况可以称为实时性失效,而因实时性失效导致的一次磁共振扫描失败的情况可以称为磁共振软件的扫描失败。上述实时失效率是一种测量磁共振扫描在实时操作系统上运行的实时性能指标,其基于的磁共振扫描的扫描业务模型可以参见图1b,依次可以包括序列翻译①、序列数据写入序列板卡②、序列板卡处理③、序列板卡反馈④和从序列板卡读取反馈数据⑤。
也就是说,为了将实时操作系统的实时失效性与磁共振软件的扫描失败率关联起来,从实时操作系统使用者和磁共振扫描使用者的角度来衡量实时操作系统的最极限和最坏的情况,以便更好地理解不同的实时操作系统的实时性能和稳定性,使得不同的实时操作系统有量化数据的比较和确定准入标准,由此提出了磁共振软件的实时失效率和磁共振软件的扫描失败率的概念。
在此基础上,为了提高扫描失败率的确定速度,发明人经过多方研究认为,可以将实时性失效进行量化来得到实时失效率,进而根据该实时失效率推导出扫描失败率。在对实时性失效进行量化的过程中,一种可选方案是通过对扫描流程进行多次模拟的方式实现。但是,正如背景技术所述的内容,在实现过程中遇到了序列翻译难以模拟的问题。
为了解决上述问题,发明人对此再次进行了深入研究,研究结果如下所述。根据图1b可知,实际的扫描流程依次可以包括序列翻译①、序列数据写入序列板卡②、序列板卡处理③、序列板卡反馈④以及从序列板卡读取反馈数据⑤,针对其中的序列翻译①,序列数据的翻译过程是由磁共振软件通过创建的实时任务完成的,其可以称为实际翻译,其中因为含有大量的业务代码而难以用于量化实时失效率。经过大量数据的收集结果确定实际翻译主要集中在200微秒和600微秒,上述统计出来的实际翻译的耗时可以称为真实翻译时间。需要说明的是,在对实际翻译进行量化时,主要是模拟实际翻译过程中真实翻译时间,而无需真的对磁共振数据进行翻译。由此,考虑到实际翻译是纯软件工作,其只是占用CPU进行运算,实时操作系统在进行进程调度时,实际翻译可以包含以下两部分的CPU消耗时间:CPU运行翻译代码的时间和实时操作系统调度时引起的延迟时间。在此基础上,为了解决实际翻译在量化时的困难点,发明人提出了使用更为简单的自己编写的测试代码来替代实际翻译,这些测试代码的运行过程可以称为模拟翻译,该模拟翻译的具体实现思路如下所述。
结合计算机的进程调度机制和序列翻译的执行逻辑确定,若要对序列翻译的真实翻译时间进行模拟,需要得到以下两个关键数据:因操作系统进程调度引起得到延迟时间①(即调度单次延迟时间)和1次连续运行翻译代码CPU时间②(即第一时间和第二时间)。需要说明的是,这里用不同的时间分别表示②的原因在于,在一次序列翻译过程中,翻译代码可能被运行多次,进程(即任务)可以包括处于运行队列的进程和处于睡眠队列的进程,当用于执行翻译代码的进程(即序列翻译进程)由睡眠队列被调度至运行队列后,翻译代码开始运行,并且在运行一段时间后,序列翻译进程会由运行队列被调度至睡眠队列,上述一段时间可以是根据计算机的运行机制预先设置的时间,在此称为第一时间。进一步,计算机可能会调度其余进程来运行其余代码,也有可能继续调度序列翻译进程来运行翻译代码,即使是继续运行翻译代码的情况,在两次运行期间仍然存在调度单次延迟时间。在此基础上,由于真实翻译时间是200微妙或是600微妙,为了有效保证真实翻译时间、第一时间和各次调度单次延迟时间,那么在一次序列翻译过程中最后一次(即末次)运行翻译代码的时间可能不再是第一时间,在此将其称为第二时间。即除了最后一次运行翻译代码的时间是第二时间,其余次运行翻译代码的时间均为第一时间。需要说明的是,在不同的实时操作系统中,①和②并非是固定时间,其可以基于不同的实时操作系统分别进行确定。
实施例一
图2是本发明实施例一中提供的一种序列翻译模拟方法的流程图。本实施例可适用于对扫描流程中的序列翻译的实际翻译时间进行模拟的情况。该方法可以由本发明实施例提供的序列翻译模拟装置来执行,该装置可以是由软件和/或硬件的方式实现的,该装置可以集成在运行有实时操作系统的序列翻译模拟设备上,该设备可以是各种用户终端或服务器。
参见图2,本发明实施例的方法具体包括如下步骤:
S110、在监测到翻译时间模拟的模拟触发事件时,获取模拟触发事件对应的模拟开始时间,且获取睡眠时间为第一时间的第一睡眠函数的已调用次数,其中,第一时间是预先设置的用于实现序列翻译的序列翻译进程首次被调度时的执行时间。
其中,模拟触发事件可以是在准备对运行于实时操作系统上的磁共振软件的扫描流程中的序列翻译的真实翻译时间进行模拟时触发的事件,其可以基于用户手动触发、机器自动触发等等多种方式进行触发。
模拟开始时间可以是该模拟触发事件被监测到的时间,或说本次翻译时间模拟的开始时间,即在模拟触发事件被监测到时立即开始执行本次的翻译时间模拟任务。睡眠函数可以是由实时操作系统提供的最精准的用于从该睡眠函数被执行的执行起始时间开始暂停执行任务的函数,具体的暂停时间与睡眠函数的睡眠时间有关,其设置原因是为了模拟翻译代码的运行时间。正如上文所述,序列翻译进程在被调度后的执行时间(即翻译代码的运行时间)可能是第一时间也可能是第二时间,在此为了简化表述,将睡眠时间为第一时间的睡眠函数称为第一睡眠函数,并且将睡眠时间为第二时间的睡眠函数称为第二睡眠函数。进一步,已调用次数可以是第一睡眠函数在本次的翻译时间模拟过程中已经被调用的次数,需要说明的,在一次翻译时间模拟过程中,第一睡眠函数可能被调用至少一次,这与具体的真实翻译时间有关。
S120、若已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行获取睡眠时间为第一时间的第一睡眠函数的已调用次数的步骤,否则调用睡眠时间为第二时间的第二睡眠函数,获取模拟结束时间,预设调用阈值是第一睡眠函数的需调用次数,第二时间是序列翻译进程末次被调度时的执行时间。
其中,预设调用阈值可以是在本次的翻译时间模拟过程中第一睡眠函数的需调用次数,根据上文所述可知,当第一睡眠函数被调用需调用次数并且第二睡眠函数被调用一次后,由此得到的模拟翻译时间相当于真实翻译时间。因此,当已调用次数未达到预设调用阈值时,可以再次调用第一睡眠函数;否则可以调用第二睡眠函数。进而,在第二睡眠函数执行完毕后,此时相当于一次序列翻译过程执行完毕,可以立即获取本次翻译时间模拟的模拟结束时间。
S130、根据模拟开始时间和模拟结束时间,模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间。
其中,根据模拟开始时间和模拟结束时间可以计算得到本次翻译时间模拟过程中的总耗时,其可以作为待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间。需要说明的是,由于每次睡眠函数在被真正执行前均存在调度单次延迟时间,因此上述得到的模拟翻译时间包含了序列翻译中的各次因操作系统进程调度引起的调度单次延迟时间和1次连续运行翻译代码CPU时间。在此基础上,为了更加形象化理解上述各步骤的具体实现过程,可以参见图3所示的可选示例。
本发明实施例的技术方案,当应用于运行有实时操作系统的序列翻译模拟设备上的序列翻译模拟方法监测到翻译时间模拟的模拟触发事件时,可以立即获取与模拟触发事件对应的模拟开始时间、及睡眠时间为第一时间的第一睡眠函数的已调用次数;由于第一睡眠函数的执行过程相当于翻译代码的除了最后一次之外的其余次的运行过程,那么当已调用次数达到第一睡眠函数的需调用次数时,本次的翻译时间模拟过程才有可能完成,因此可以判断已调用次数是否达到需调用次数,若否则可以再次调用第一睡眠函数以使该已调用次数达到需调用次数,否则可以调用睡眠时间为第二时间的第二睡眠函数,由于该第二睡眠函数的执行过程相当于翻译代码的最后一次运行过程,由此第二睡眠函数的执行完毕意味着本次翻译时间模拟过程正式结束,因此可以在其执行完毕后立即获取模拟结束时间;进而,根据模拟开始时间和模拟结束时间可以模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间。上述技术方案,通过睡眠函数的睡眠时间模拟序列翻译中翻译代码的运行时间,且结合翻译代码的各次运行过程中的运行时间可能存在差异的特性设置了需要调用至少一次的第一睡眠函数和只需要调用一次的第二睡眠函数,由此在各睡眠函数执行完毕后模拟出了与序列翻译的真实翻译时间对应的模拟翻译时间,达到了对扫描流程中的序列翻译进行模拟的效果。
实施例二
图4是本发明实施例二中提供的一种序列翻译模拟方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,上述模拟时间翻译方法,还可以包括:根据真实翻译时间和第一时间确定出序列翻译进程的需调度次数,并确定在需调度次数的进程调度过程中的调度总延迟时间;根据真实翻译时间和调度总延迟时间确定序列翻译进程在进程调度过程中的进程运行时间,并根据进程运行时间和第一时间确定第二时间。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图4,本实施例的方法具体可以包括如下步骤:
S210、根据真实翻译时间和第一时间确定出序列翻译进程的需调度次数,并确定在需调度次数的进程调度过程中的调度总延迟时间,其中,第一时间是预先设置的用于实现序列翻译的序列翻译进程首次被调度时的执行时间。
其中,由于一次序列翻译过程中需要调度多次序列翻译进程,且根据前文分析可知,序列翻译进程的需调度次数等于已调用次数加1。由于已调用次数可以根据真实翻译时间和第一时间确定,其可以表示出真实翻译时间中包括的完整的第一时间的数量,因此需调度次数可以根据真实翻译时间和第一时间来确定。进一步,每次进程调度过程中都可能存在一个调度单次延迟时间,那么根据需调度次数可以确定在那么多次的进程调度过程中的调度总延迟时间。
S220、根据真实翻译时间和调度总延迟时间确定序列翻译进程在进程调度过程中的进程运行时间,并根据进程运行时间和第一时间确定第二时间,其中,第二时间是序列翻译进程末次被调度时的执行时间。
其中,当从真实翻译时间中排除了进程调度过程中的调度总延迟时间之后可以得到序列翻译进程在进程调度过程中的进程运行时间,该进程运行时间是翻译代码的总的运行时间,其可以是需调度次数的第一时间和一次的第二时间的加和,因此根据进程运行时间和第一时间可以确定第二时间。
S230、在监测到时间模拟的模拟触发事件时,获取模拟触发事件对应的模拟开始时间,且获取睡眠时间为第一时间的第一睡眠函数的已调用次数。
S240、若已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行获取睡眠时间为第一时间的第一睡眠函数的已调用次数的步骤,否则调用睡眠时间为第二时间的第二睡眠函数,获取模拟结束时间,其中,预设调用阈值是第一睡眠函数的需调用次数。
其中,在实际应用中,可选的,由于进程运行时间可以根据需调度次数(即预设调用阈值)的第一时间和一次的第二时间确定,而第二时间必定小于等于第一时间,因此可以根据进程运行时间和第一时间确定预设调用阈值,比如将进程运行时间相对于第一时间的商作为预设调用阈值。
S250、根据模拟开始时间和模拟结束时间,模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间。
本发明实施例的技术方案,结合计算机的进程调度机制和序列翻译的执行逻辑可知,真实翻译时间是调度总延迟时间和序列翻译进程在进程调度过程中的进程运行时间的加和,进程运行时间是需调用次数的第一时间和一次的第二时间的加和,而且需调度次数是需调用次数加一,因此可以根据真实翻译时间和第一时间确定需调度次数,并确定在需调度次数的进程调度过程中的调度总延迟时间,进而根据真实翻译时间和调度总延迟时间确定进程运行时间,并根据进程运行时间和第一时间确定第二时间,由此到达了准确确定第二睡眠函数的睡眠时间(即第二时间)的效果。
在此基础上,一种可选的技术方案,确定在需调度次数的进程调度过程中的调度总延迟时间,可以包括:确定在单次的进程调度过程中的调度单次延迟时间,该调度单次延迟时间可以通过多次测试得到;根据调度单次延迟时间和需调度次数,确定在需调度次数的进程调度过程中的调度总延迟时间,即调度总延迟时间可以是调度单次延迟时间和需调度次数的乘积结果。
在此基础上,一种可选的技术方案,确定在单次的进程调度过程中的调度单次延迟时间,可包括:在监测到延迟测试的测试触发事件时,获取测试触发事件对应的测试开始时间,且调用第一睡眠函数,获取测试结束时间;根据测试开始时间、测试结束时间和第一时间确定调度测试延迟时间,重复执行在监测到延迟测试的测试触发事件时的步骤;如果调度测试延迟时间的测试次数达到预设测试阈值,则根据各调度测试延迟时间确定在单次的进程调度过程中的调度单次延迟时间。其中,测试触发事件可以是在准备对序列翻译中调度单次延迟时间进行测试时触发的事件,其可以是基于用户手动触发、机器自动触发等多种方式进行触发。测试开始时间可以是该测试触发事件被监测到的时间,即在测试触发事件被监测到时立即开始执行本次的延迟测试任务。在获取测试开始时间的同时调用第一睡眠函数,并且在第一睡眠函数执行完毕时立即获取测试结束时间,由于第一睡眠函数在被调用时存在调用延迟的情况,因此根据测试结束时间、测试开始时间和第一时间可以得到本次的延迟测试的调度测试延迟时间。示例性的,测试结束时间和测试开始时间之间的差值为102微秒,第一时间是100微秒,那么调度测试延迟时间是2微秒。循环往复上述过程,并且在测试次数达到预设测试阈值时,可以根据多次的调度测试延迟时间得到单次的进程调度过程中的调度单次延迟时间,如将各次调度测试延迟时间进行平均处理、加权平均处理、统计处理等等得到。上述调度单次延迟时间的确定流程可以参见图5。
在此基础上,一种可选的技术方案,根据各调度测试延迟时间确定在单次的进程调度过程中的调度单次延迟时间,可包括:对各调度测试延迟时间进行统计,根据统计结果确定各调度测试延迟时间在各调度延迟范围内的数量占比;根据各调度延迟范围和相应的数量占比确定在单次的进程调度过程中的调度单次延迟时间。示例性的,假设基于图5流程完成第一时间(Ts)是100微秒且在实时操作系统上运行12小时的延迟测试,得到4.3亿个调度测试延迟时间,对它们进行统计后得到如下表1的统计结果,那么调度单次延迟时间=0.9962×15微秒+0.0038×67微秒=15.1775微秒。
表1调度测试延迟时间的统计结果
1次进程调度引起的调度延迟范围 | 数量占比 |
1~15微秒 | 0.9962% |
15~67微秒 | 0.0038% |
在此基础上,为了更加形象化地理解上述各步骤的运算结果,在此以200微秒和600微秒的真实翻译时间、第一时间是100微秒为例,对上述运算结果进行展示,参见表2。需要说明的,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。
表2两种真实翻译时间对应的模拟翻译的运算结果
实施例三
图6为本发明实施例三提供的序列翻译模拟装置的结构框图,该装置用于执行上述任意实施例所提供的序列翻译模拟方法。该装置与上述各实施例的序列翻译模拟方法属于同一个发明构思,在序列翻译模拟装置的实施例中未详尽描述的细节内容,可以参考上述序列翻译模拟方法的实施例。参见图6,上述装置配置于运行有实时操作系统的序列翻译模拟设备上,具体可包括:已调用次数获取模块310、睡眠函数调用模块320和序列翻译模拟模块330。
其中,已调用次数获取模块310,用于监测到翻译时间模拟的模拟触发事件时,获取模拟触发事件对应的模拟开始时间,且获取睡眠时间为第一时间的第一睡眠函数的已调用次数;
睡眠函数调用模块320,用于若已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行获取睡眠时间为第一时间的第一睡眠函数的已调用次数的步骤,否则调用睡眠时间为第二时间的第二睡眠函数,获取模拟结束时间;
序列翻译模拟模块330,用于根据模拟开始时间和模拟结束时间,模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间;
其中,预设调用阈值是第一睡眠函数的需调用次数,且第一时间是预先设置的用于实现序列翻译的序列翻译进程首次被调度时的执行时间,第二时间是序列翻译进程末次被调度时的执行时间。
可选的,在上述装置的基础上,该装置还可包括:
调度总延迟时间确定模块,用于根据真实翻译时间和第一时间确定出序列翻译进程的需调度次数,并确定在需调度次数的进程调度过程中的调度总延迟时间;第二时间确定模块,用于根据真实翻译时间和调度总延迟时间确定序列翻译进程在进程调度过程中的进程运行时间,并根据进程运行时间和第一时间确定第二时间。
在此基础上,可选的,调度总延迟时间确定模块,具体可以包括:
调度单次延迟时间确定子模块,用于确定在单次的进程调度过程中的调度单次延迟时间;调度总延迟时间确定子模块,用于根据调度单次延迟时间和需调度次数,确定在需调度次数的进程调度过程中的调度总延迟时间。
在此基础上,可选的,调度单次延迟时间确定子模块,具体可以包括:
延迟测试单元,用于在监测到延迟测试的测试触发事件时,获取测试触发事件对应的测试开始时间,并且调用第一睡眠函数,获取测试结束时间;重复执行单元,用于根据测试开始时间、测试结束时间和第一时间确定调度测试延迟时间,重复执行在监测到延迟测试的测试触发事件时的步骤;调度单次延迟时间确定单元,用于如果调度测试延迟时间的测试次数达到预设测试阈值,则根据各调度测试延迟时间确定在单次的进程调度过程中的调度单次延迟时间。
在此基础上,可选的,调度单次延迟时间确定单元,具体可以包括:
数量占比确定子单元,用于对各调度测试延迟时间进行统计,根据统计结果确定各调度测试延迟时间在各调度延迟范围内的数量占比;调度单次延迟时间确定子单元,用于根据各调度延迟范围和相应的数量占比确定在单次的进程调度过程中的调度单次延迟时间。
在此基础上,可选的,在上述装置的基础上,该装置还可包括:预设调用阈值确定模块,用于根据进程运行时间和第一时间确定预设调用阈值。
可选的,第一睡眠函数是用于从第一睡眠函数被执行的执行起始时间开始的第一时间内暂停执行任务的函数。
本发明实施例三提供的序列翻译模拟装置,通过已调用次数获取模块完成当应用于运行有实时操作系统的序列翻译模拟设备上的序列翻译模拟方法监测到翻译时间模拟的模拟触发事件时,可以立即获取与模拟触发事件对应的模拟开始时间、以及睡眠时间为第一时间的第一睡眠函数的已调用次数;由于第一睡眠函数的执行过程相当于翻译代码的除了最后一次之外的其余次的运行过程,那么睡眠函数调用模块当已调用次数达到第一睡眠函数的需调用次数时,本次的翻译时间模拟过程才有可能完成,因此可以判断已调用次数是否达到需调用次数,若否则可以再次调用第一睡眠函数以使该已调用次数达到需调用次数,否则可以调用睡眠时间为第二时间的第二睡眠函数,由于该第二睡眠函数的执行过程相当于翻译代码的最后一次运行过程,由此第二睡眠函数的执行完毕意味着本次翻译时间模拟过程正式结束,因此可以在其执行完毕后立即获取模拟结束时间;进而,序列翻译模拟模块根据模拟开始时间和模拟结束时间可以模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间。上述装置,通过睡眠函数的睡眠时间模拟序列翻译中翻译代码的运行时间,且结合翻译代码的各次运行过程中的运行时间可能存在差异的特性设置了需要调用至少一次的第一睡眠函数和只需要调用一次的第二睡眠函数,由此在各睡眠函数执行完毕后模拟出了与序列翻译的真实翻译时间对应的模拟翻译时间,达到了对扫描流程中的序列翻译进行模拟的效果。
本发明实施例所提供的序列翻译模拟装置可执行本发明任意实施例所提供的序列翻译模拟方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述序列翻译模拟装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
图7为本发明实施例四提供的一种翻译模拟设备的结构示意图,参见图7,该设备包括存储器410、处理器420、输入装置430和输出装置440。设备中的处理器420的数量可以是一个或多个,图7中以一个处理器420为例;设备中的存储器410、处理器420、输入装置430和输出装置440可以通过总线或其它方式连接,图7中以通过总线450连接为例。
存储器410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的序列翻译模拟方法对应的程序指令/模块(例如,序列翻译模拟装置中的已调用次数获取模块310、睡眠函数调用模块320和序列翻译模拟模块330)。处理器420通过运行存储在存储器410中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的序列翻译模拟方法。
存储器410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种序列翻译模拟方法,该方法应用于运行有实时操作系统的序列翻译模拟设备上,可以包括:
在监测到翻译时间模拟的模拟触发事件时,获取模拟触发事件对应的模拟开始时间,且获取睡眠时间为第一时间的第一睡眠函数的已调用次数;
若已调用次数未达到预设调用阈值,则调用第一睡眠函数,重复执行获取睡眠时间为第一时间的第一睡眠函数的已调用次数的步骤,否则调用睡眠时间为第二时间的第二睡眠函数,获取模拟结束时间;
根据模拟开始时间和模拟结束时间,模拟出与待运行于实时操作系统上的磁共振软件在序列翻译时的真实翻译时间对应的模拟翻译时间;
其中,预设调用阈值是第一睡眠函数的需调用次数,且第一时间是预先设置的用于实现序列翻译的序列翻译进程首次被调度时的执行时间,第二时间是序列翻译进程末次被调度时的执行时间。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的序列翻译模拟方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(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中任一所述的序列翻译模拟方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011634505.5A CN112817812B (zh) | 2020-12-31 | 2020-12-31 | 序列翻译模拟方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011634505.5A CN112817812B (zh) | 2020-12-31 | 2020-12-31 | 序列翻译模拟方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817812A CN112817812A (zh) | 2021-05-18 |
CN112817812B true CN112817812B (zh) | 2022-11-04 |
Family
ID=75856796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011634505.5A Active CN112817812B (zh) | 2020-12-31 | 2020-12-31 | 序列翻译模拟方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817812B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434938A (zh) * | 2000-10-05 | 2003-08-06 | Arm有限公司 | 重启动翻译的指令 |
CN102662830A (zh) * | 2012-03-20 | 2012-09-12 | 湖南大学 | 一种基于动态二进制翻译框架的代码复用攻击检测系统 |
CN107408053A (zh) * | 2015-04-10 | 2017-11-28 | 谷歌公司 | 到本原客户端的二进制翻译 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10684936B2 (en) * | 2018-05-31 | 2020-06-16 | The Mathworks, Inc. | Observer for simulation test and verification |
-
2020
- 2020-12-31 CN CN202011634505.5A patent/CN112817812B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434938A (zh) * | 2000-10-05 | 2003-08-06 | Arm有限公司 | 重启动翻译的指令 |
CN102662830A (zh) * | 2012-03-20 | 2012-09-12 | 湖南大学 | 一种基于动态二进制翻译框架的代码复用攻击检测系统 |
CN107408053A (zh) * | 2015-04-10 | 2017-11-28 | 谷歌公司 | 到本原客户端的二进制翻译 |
Non-Patent Citations (1)
Title |
---|
基于动态二进制翻译框架的代码复用攻击检测与防御;刘超;《中国优秀硕士学位论文全文数据库信息科技辑》;20130615;第I138-114页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112817812A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9430288B2 (en) | Job scheduling based on historical job data | |
Ouyang et al. | Straggler detection in parallel computing systems through dynamic threshold calculation | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
US8332850B2 (en) | Thread starvation profiler by utilizing a set of counters | |
Nicol et al. | Problem oriented protocol design | |
CN110825731A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN112286806A (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
US11169910B2 (en) | Probabilistic software testing via dynamic graphs | |
CN113191114B (zh) | 用于验证系统的方法和装置 | |
CN112363914B (zh) | 一种并行测试资源配置寻优的方法、计算设备及存储介质 | |
CN112817812B (zh) | 序列翻译模拟方法、装置、设备及存储介质 | |
US9081605B2 (en) | Conflicting sub-process identification method, apparatus and computer program | |
CN111625350A (zh) | 网络消息数据的内存分配方法、装置、设备及存储介质 | |
CN111290942A (zh) | 压力测试方法、装置以及计算机可读介质 | |
CN112817811B (zh) | 扫描失败率的预测方法、装置、设备及存储介质 | |
CN115202946A (zh) | 自动化测试方法、装置、设备、存储介质及程序产品 | |
CN112783574B (zh) | 应用程序开发方法、装置、设备和存储介质 | |
CN114896128A (zh) | 基于区块链的应用程序性能测试方法及装置 | |
CN111258592B (zh) | 一种应用于集群服务器的免安装串行执行方法与系统 | |
CN113626340A (zh) | 测试需求识别方法、装置、电子设备及存储介质 | |
CN112181853A (zh) | 程序调试方法、装置及系统 | |
CN113590300B (zh) | 定时任务的执行方法、装置、存储介质及设备 | |
CN111782482B (zh) | 接口压力测试方法及相关设备 | |
CN112035425B (zh) | 一种日志的存储方法、装置及计算机系统 | |
CN110781079B (zh) | 数据处理流程调试方法、装置及电子设备 |
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 |