多进程的固件仿真运行方法、装置、设备以及存储介质与流程

文档序号:32487218发布日期:2022-12-10 01:31阅读:18来源:国知局
多进程的固件仿真运行方法、装置、设备以及存储介质与流程

1.本发明涉及固态硬盘测试技术领域,尤其涉及一种多进程的固件仿真运行方法、装置、设备以及存储介质。


背景技术:

2.固态硬盘(solid state disk,简称ssd),是用固态电子存储芯片阵列制成的硬盘,其凭借读写速度快的优势,广泛应用于各种电子领域。在ssd检测的相关技术方案中,通常是通过固件仿真的方式来进行检测,即通过软件模拟固件环境来便捷高效的对固件进行分析和漏洞检查。
3.在相关技术方案中,固件仿真过程常常会出现多进程并行的情况,在多核进程并行时,为了避免某一个进程结束时设备误判断整个固件仿真国产结束,通常会预设一个结束时刻,当设备运行到达该结束时刻时,再结束固件仿真运行。
4.然而,这种方案的缺陷在于,实际的固件仿真运行过程中可能会出现所有进程已经运行结束,但固件仿真程序仍在运行的情况,导致设备的运行资源浪费。也可能会出现还有进程正在运行,但固件仿真程序提前结束的情形,造成了整个固件仿真过程出现差错。因此,目前的固件仿真技术中存在多核进程下设备运行不稳定的问题。
5.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

6.本发明的主要目的在于提供一种多进程的固件仿真运行方法,旨在解决多核进程下设备运行不稳定的问题。
7.为实现上述目的,本发明提供的一种多进程的固件仿真运行方法,所述方法包括:
8.在接收到进程的活动事件时,确定所述活动事件的事件类型;
9.若所述事件类型为结束事件,确定所述进程关联的资源空间内是否存在所述进程的并行进程;
10.若存在所述并行进程,确定各个所述并行进程的预设结束时刻中的最末结束时刻;
11.根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时间,并在到达所述运行结束时间时,结束所述固件仿真。
12.可选地,当所述进程开始执行时,触发所述进程对应的所述开始事件,当所述进程结束执行时,触发所述进程对应的所述结束事件。
13.可选地,所述确定所述活动事件的事件类型的步骤之后,包括:
14.若所述事件类型为开始事件,保持所述固件仿真的运行,并在接收到新的所述活动事件时,执行所述确定所述活动事件的事件类型的步骤。
15.可选地,所述确定所述进程关联的资源空间内是否存在除所述进程外的并行进程
的步骤之后,包括:
16.若不存在所述并行进程,确定所述进程关联的串行进程中的最末结束时刻;
17.根据所述串行进程的所述最末结束时刻,确定所述运行结束时间。
18.可选地,所述确定各个所述并行进程的预设结束时刻中的最末结束时刻的步骤包括:
19.获取各个所述并行进程的所述预设结束时刻,并确定接收到所述结束事件时所述运行时间轴上对应的结束时刻;
20.确定各个所述预设结束时刻和所述结束事件对应的所述结束时刻之间的时间间隔;
21.确定各个所述时间间隔中的最大时间间隔,并将所述最大时间间隔对应的所述预设结束时刻,作为所述最末结束时刻。
22.可选地,所述确定所述进程关联的资源空间内是否存在除所述进程外的并行进程的步骤之前,包括:
23.在每一所述进程开始执行时,向所述进程分配对应的资源子空间;
24.所述确定所述进程关联的资源空间内是否存在除所述进程外的并行进程的步骤包括:
25.确定所述资源空间内,是否存在除所述进程对应的所述资源子空间外的其它资源空间;
26.若存在所述其它资源空间,判断所述资源空间内存在所述并行进程。
27.可选地,所述根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时间的步骤包括:
28.确定所述运行时间轴和设备实际运行时间之间的时间流逝比;
29.根据所述时间流逝比和所述最末结束时刻,确定所述运行结束时间。
30.此外,为实现上述目的,本发明还提供一种固件仿真运行装置,所述固件仿真运行装置包括:
31.事件接收模块,用于确定活动事件的事件类型;
32.并行进程检测模块,用于确定所述进程关联的资源空间内是否存在除所述进程外的并行进程;
33.结束时刻确定模块,用于确定各个所述并行进程的预设结束时刻中的最末结束时刻;
34.运行结束判定模块,用于根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时间,并在到达所述运行结束时间时,结束所述固件仿真。
35.此外,为实现上述目的,本发明还提供一种固件仿真设备,所述固件仿真设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多进程的固件仿真运行程序,所述多进程的固件仿真运行被所述处理器执行时实现如上所述的多进程的固件仿真运行方法的步骤。
36.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有多进程的固件仿真运行程序,所述多进程的固件仿真运行程序被处理器执行时实现如上所述的多进程的固件仿真运行方法的步骤。
37.本发明实施例提供一种多进程的固件仿真运行方法、装置、设备以及存储介质,其中,所述方法包括:在接收到进程的活动事件时,确定所述活动事件的事件类型;若所述事件类型为结束事件,确定所述进程关联的资源空间内是否存在所述进程的并行进程;若存在所述并行进程,确定各个所述并行进程的预设结束时刻中的最末结束时刻;根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时间,并在到达所述运行结束时间时,结束所述固件仿真。通过根据进程的活动事件来实时确定固件仿真的运行结束时刻,相较于传统的直接设置一个固定的结束事件点,既能在固件仿真过程中,进程运行结束时随即退出固件仿真运行,避免运行资源浪费,又能防止在进程运行的过程中提前结束固件仿真,避免整个固件仿真过程出现差错,从而提高了多核进程下设备运行的稳定性。
附图说明
38.图1为本发明实施例涉及的固件仿真设备的硬件架构示意图;
39.图2为本发明多进程的固件仿真运行方法的第一实施例的流程示意图;
40.图3为本发明多进程的固件仿真运行方法的第二实施例的流程示意图;
41.图4为本发明多进程的固件仿真运行方法的第三实施例的流程示意图;
42.图5为本发明的固件仿真运行装置的架构示意图;
43.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
44.本技术通过进程的活动事件来实时确定固件仿真的运行结束时刻,相较于传统的直接设置一个固定的结束事件点,既能在固件仿真过程中,进程运行结束时随即退出固件仿真运行,避免运行资源浪费,又能防止在进程运行的过程中提前结束固件仿真,避免整个固件仿真过程出现差错,从而提高了多核进程下设备运行的稳定性。
45.为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
46.作为一种实现方案,固件仿真设备的硬件架构可以如图1所示。
47.本发明实施例方案涉及的是固件仿真设备的硬件架构,所述固件仿真设备的硬件架构包括:处理器101,例如cpu,存储器102,通信总线103。其中,通信总线103用于实现这些组件之间的连接通信。
48.存储器102可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。如图1所示,作为一种计算机可读存储介质的存储器102中可以包括多进程的固件仿真运行程序;而处理器101可以用于调用存储器102中存储的多进程的固件仿真运行程序,并执行以下操作:
49.在接收到进程的活动事件时,确定所述活动事件的事件类型;
50.若所述事件类型为结束事件,确定所述进程关联的资源空间内是否存在所述进程的并行进程;
51.若存在所述并行进程,确定各个所述并行进程的预设结束时刻中的最末结束时
刻;
52.根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时间,并在到达所述运行结束时间时,结束所述固件仿真。
53.在一实施例中,处理器101可以用于调用存储器102中存储的多进程的固件仿真运行程序,并执行以下操作:
54.若所述事件类型为开始事件,保持所述固件仿真的运行,并在接收到新的所述活动事件时,执行所述确定所述活动事件的事件类型的步骤。
55.在一实施例中,处理器101可以用于调用存储器102中存储的多进程的固件仿真运行程序,并执行以下操作:
56.若不存在所述并行进程,确定所述进程关联的串行进程中的最末结束时刻;
57.根据所述串行进程的所述最末结束时刻,确定所述运行结束时间。
58.在一实施例中,处理器101可以用于调用存储器102中存储的多进程的固件仿真运行程序,并执行以下操作:
59.获取各个所述并行进程的所述预设结束时刻,并确定接收到所述结束事件时所述运行时间轴上对应的结束时刻;
60.确定各个所述预设结束时刻和所述结束事件对应的所述结束时刻之间的时间间隔;
61.确定各个所述时间间隔中的最大时间间隔,并将所述最大时间间隔对应的所述预设结束时刻,作为所述最末结束时刻。
62.在一实施例中,处理器101可以用于调用存储器102中存储的多进程的固件仿真运行程序,并执行以下操作:
63.在每一所述进程开始执行时,向所述进程分配对应的资源子空间;
64.所述确定所述进程关联的资源空间内是否存在除所述进程外的并行进程的步骤包括:
65.确定所述资源空间内,是否存在除所述进程对应的所述资源子空间外的其它资源空间;
66.若存在所述其它资源空间,判断所述资源空间内存在所述并行进程。
67.在一实施例中,处理器101可以用于调用存储器102中存储的多进程的固件仿真运行程序,并执行以下操作:
68.确定所述运行时间轴和设备实际运行时间之间的时间流逝比;
69.根据所述时间流逝比和所述最末结束时刻,确定所述运行结束时间。
70.基于上述基于固态硬盘测试技术的固件仿真设备的硬件架构,提出本发明多进程的固件仿真运行方法的实施例。
71.参照图2,在第一实施例中,所述多进程的固件仿真运行方法包括以下步骤:
72.步骤s10,在接收到进程的活动事件时,确定所述活动事件的事件类型;
73.在本实施例中,当固件仿真设备(以下简称设备)在执行固件仿真的过程中,接收到进程的活动事件时,确定该活动事件的事件类型。活动事件是固件仿真过程中,当进程执行到一些关键节点时,会被记录下此时的操作记录的操作日志。活动事件包括时间戳和该进程的相关标识信息,在接收到活动事件时,设备能够根据时间戳确定该活动时间在固件
仿真过程中设置的运行时间轴上对应的时间点。
74.在本实施例中,涉及的事件类型包括开始事件和结束事件,开始事件表征为当进程在执行之初,所触发的活动事件。结束事件表征为在进程执行结束时,所触发的活动事件。需要说明的是,由于活动事件中包含时间戳,因此开始事件对应的时间戳即为进程的开始时间,而结束事件对应的时间戳即为进程的结束时刻。因此通过确定进程的开始事件和结束事件,即可对应确定出该进程的开始时刻和结束时刻。
75.步骤s20,若所述事件类型为结束事件,确定所述进程关联的资源空间内是否存在所述进程的并行进程;
76.在本实施例中,在确定活动事件的事件类型的步骤之后,若确定出该进程的活动事件对应的事件类型为结束事件,则确定该进程关联的资源空间内是否存在除该进程之外,与该进程关联的并行进程。资源空间是设备在固件仿真运行时,为整个固件仿真程序所分配的内存空间。对于并行进程而言,由于内存资源有限,并行进程越多,每一个进程分配的资源子空间就越小,当多个并行进程中的某一个进程结束时,其它的进程的资源子空间会相对变大,即所述资源子空间的大小和所述并行进程的数量呈负相关,在大多数青葵按下,各个并行进程对应的资源子空间之和应当小于整个固件仿真所占用的资源空间。需要说明的是,本实施例中的并行进程,表征为同时在运行的进程,但是不同的并行进程之间,其开始时刻和结束时刻可能相同也可能不同,并且不同并行进程的执行时间可能相同也可能不同,本实施例中不做限定。
77.可选地,确定资源空间内是否存在并行进程的方式,可以是根据整个资源空间中资源子空间的个数来确定。由于每一个进程会在开始执行时,会根据进程的数据量和/或权重值大小分配一个对应的资源子空间,并且多个并行进程运行时,会有多个资源子空间占用整个资源空间,因此,当资源空间中存在除该进程的资源子空间外的其它资源子空间时,则确定此时的固件仿真过程中存在并行进程。
78.示例性地,在一具体实施方式中,将整个固件运行过程中的资源空间的占比,以可视化界面的形式输出至一显示界面的显示窗口中,显示窗口中能够显示固件运行过程中正在运行的进程,当存在一个以上的进程显示时,则设备确定此时的固件仿真过程中存在并行进程。
79.步骤s30,若存在所述并行进程,确定各个所述并行进程的预设结束时刻中的最末结束时刻;
80.在本实施例中,在确定是否存在并行进程之后,若确定出固件仿真过程中存在并行进程,则确定出各个并行进程的预设结束时刻,再从各个预设结束时刻中确定出结束得最晚的最末结束时刻。在本实施例中,由于固件仿真是以软件的形式来模拟固件的实际运行,在模拟运行过程中,通过固件仿真程序快速且频繁的执行大量的进程,从而模拟出固件在长期运行状态下的硬件老化情况。在本实施例中,会对每个模拟运行的进程,在刚开始执行的时候赋予一个预设的结束时刻,该结束时刻为理论上该进程的最短运行时间。需要说明的是,所述预设结束时刻为一个理论值,在进程的实际运行过程中,可能会由于资源空间的占用情况,造成实际运行时间大于或小于该预设结束时刻,因此确定出的最末结束时刻也为一个理论值。
81.可选地,确定各个并行进程的预设结束时刻中的最末结束时刻的方式可以为:获
取每个并行进程的预设结束时刻,并确定接收到所述结束事件时所述运行时间轴上对应的结束时刻,然后确定各个预设结束时刻和所述结束时刻点之间的时间间隔,再确定各个所述时间间隔中的最大时间间隔,并将所述最大时间间隔对应的所述预设结束时刻,作为最末结束时刻。
82.步骤s40,根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时间,并在到达所述运行结束时间时,结束所述固件仿真。
83.在本实施例中,在确定出最末结束时刻之后,根据最末结束时刻,确定固件仿真的运行时间轴的运行结束时间,以在设备运行到达该运行结束时间时,结束整个固件仿真流程。运行时间轴是设备在固件仿真过程中模拟出的一个横向滚动的时间轴程序,该运行时间轴能够模拟现实世界中的时间流逝。
84.可选地,由于固件仿真是在短时间内模拟出较长时间中固件的运行老化,为了提升固件仿真的可靠性,本实施例中的运行时间轴相较于设备固件的实际运行时间,还可以设置一个时间流逝比,根据所述时间流逝比和所述最末结束时刻,从而确定出所述运行结束时间。
85.示例性地,在一些具体实施方式中,运行时间轴和现实世界中设备固件的实际运行时间的时间流逝比可以为60:1,即现实世界中的1s对应运行时间轴的1min,当确定出最末结束时刻为18:00,若此时的运行时间轴上的时间为16:00,则经过两分钟之后,固件仿真结束。
86.当然,在另一些具体实施方式中,运行时间轴和现实世界中的时间流逝比例也可以等于1:1。示例性地,确定出最末结束时刻为18:00,若此时的运行时间轴上的时间为16:00,则经过两个小时之后,固件仿真结束。
87.可选地,在一些实施方式中,在确定固件仿真的运行时间轴的运行结束时间之后,且到达运行结束时间之前,在这个时间段内接收到新的活动事件时,返回执行确定所述活动事件的事件类型这一步骤。即在接收到新的活动事件之后,重新确定固件仿真的运行时间。
88.在本实施例提供的技术方案中,在接收到进程的活动事件时,确定活动事件的事件类型,当事件类型为结束事件时,确定所述进程关联的资源空间内是否存在除所述进程外的并行进程,若存在所述并行进程,确定各个所述并行进程的预设结束时间中的最末结束时刻,最后根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时刻,以在到达所述运行结束时刻时,结束固件仿真。通过根据进程的活动事件来实时确定固件仿真的运行结束时刻,相较于传统的直接设置一个固定的结束事件点,既能在固件仿真过程中,进程运行结束时随即退出固件仿真运行,避免运行资源浪费,又能防止在进程运行的过程中提前结束固件仿真,避免整个固件仿真过程出现差错,从而提高了多核进程下设备运行的稳定性。
89.参照图2,在第二实施例中,基于第一实施例,所述步骤s10之后,包括:
90.步骤s50,若所述事件类型为开始事件,保持所述固件仿真的运行,并在接收到新的所述活动事件时,执行所述确定所述活动事件的事件类型的步骤。
91.可选地,在本实施例中,在确定所述活动事件的事件类型之后,若确定出事件类型为开始事件,则保持所述固件仿真运行,并在接收到新的所述活动事件时,重新执行步骤
s10。当确定出的事件类型为开始事件时,表征为该进程开始运行,此时不需要更新进程的运行结束时间,固件仿真过程保持运行,且此时运行时间轴的结束时间保持为最初设置的结束时刻。当再次接收到新的活动事件时,确定该所述新的活动事件的时间类型,其中,若仍然为开始事件,继续保持固件仿真运行,若活动时间类型为结束事件,则执行步骤s20。
92.在本实施例提供的技术方案中,在确定活动事件的事件类型之后,若确定出的事件类型为开始时间,则保持固件仿真运行,且时间轴的结束时刻也保持原有的结束时刻,并且在重新接收到活动事件时,再次确定该活动事件的事件类型,直到事件类型为结束时间时,再执行第一实施例中所述的时间轴的结束时刻更新操作,提高了多核进程下设备运行的稳定性。
93.参照图3,在第三实施例中,基于任一实施例,所述步骤s20之后,包括:
94.步骤s60,若不存在所述并行进程,确定所述进程关联的串行进程中的所述最末结束时刻;
95.步骤s70,根据所述串行进程的所述最末结束时刻,确定所述运行结束时间。
96.可选地,在本实施例中,在确定是否存在所述进程的并行进程之后,若不存在并行进程,则转入寻找所述进程的串行进程中的最末结束时刻,根据串行进程中的最末结束时刻,确定出固件仿真的运行时间轴的运行结束时间。在本实施例中,串行进程表征为,在该结束事件对应的进程执行结束后才执行的进程。串行进程与并行进程的区别之一在于,串行进程是在上一串行进程结束,并释放其资源子空间之后,再向下一串行进程分配对应的资源子空间,因此,串行进程的最末结束时刻,即对应为最后一个执行的串行进程的结束时刻,根据所述最末结束时刻确定出运行时间轴的运行结束时间。
97.在本实施例提供的技术方案中,若进程关联的资源空间内不存在并行进程,转入寻找所述进程的串行进程中的最末结束时刻,并将所述最末结束时刻作为运行时间轴的运行结束时间,从而在到达所述运行结束时间时,结束固件仿真。提高了多核进程下设备运行的稳定性。
98.此外,参照图4,本实施例还提出一种固件仿真运行装置,所述固件仿真运行装置包括:
99.事件接收模块100,用于确定活动事件的事件类型;
100.并行进程检测模块200,用于确定所述进程关联的资源空间内是否存在除所述进程外的并行进程;
101.结束时刻确定模块300,用于确定各个所述并行进程的预设结束时刻中的最末结束时刻;
102.运行结束判定模块400,用于根据所述最末结束时刻,确定固件仿真的运行时间轴的运行结束时间,并在到达所述运行结束时间时,结束所述固件仿真。
103.此外,本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被固件仿真设备中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
104.因此,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多进程的固件仿真运行程序,所述多进程的固件仿真运行程序被处理器执行时实现如上实
施例所述的多进程的固件仿真运行方法的各个步骤。
105.其中,所述计算机可读存储介质可以是u盘、移动硬盘、只读存储器(read-only memory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
106.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
107.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
108.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1