一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于CFS调度器的任务调度方法、装置、设备及存储介质与流程

2022-02-19 02:10:43 来源:中国专利 TAG:

基于cfs调度器的任务调度方法、装置、设备及存储介质
技术领域
1.本发明属于计算机技术领域,尤其涉及一种基于cfs调度器的任务调度方法、装置、电子设备及存储介质。


背景技术:

2.完全公平调度器(completely fair scheduler)自问世以来,以其高效、公平等优点,在操作系统领域得到了广泛应用。其基本思想是,为不同优先级的任务提供统一的时间标准,即虚拟时间;通过虚拟时间来描述任务的运行时间信息,为操作系统任务调度提供直接依据。虚拟时间根据任务实际运行时间计算而来,计算方式与任务优先级和权重相关。优先级越高,权重越大,虚拟时间增长越慢;优先级越小,权重越小,虚拟时间增长越快。每次任务调度时,总是选取就绪队列中,虚拟时间最小的任务运行。因此从一个统计周期看,优先级高的任务获得的调度机会更多,其实际执行时间也就越多。任务实际运行时间与虚拟时间的计算关系是:
3.虚拟时间=任务实际运行时间
×
优先级为0的任务权重/任务权重
4.由上式可知,虚拟时间能反应基于优先级的任务执行时间信息。
5.cfs算法通常用红黑树来管理处理器上的各就绪任务,这些任务依据其虚拟时间大小挂接在红黑树上,虚拟时间越小则越靠近树的左边,每次调度时,选取红黑树最左边的任务运行。cfs的公平性保证,在一定周期内,每个就绪任务都有机会至少被调度运行一次,该周期记为调度周期。在调度周期内,各就绪任务会被分配与其优先级对应的执行时间,优先级越高,时间越长。在系统运行的某些时间点,比如就绪队列中任务发生变化、或系统时钟节拍中断产生时,会更新当前任务的虚拟时间,并判断是否需要发生调度。
6.当前任务运行中,可能会处理各类中断,比如后台网络数据传输的中断、系统时钟节拍中断等。中断处理一般分为上半部和下半部,硬件中断产生后就进入上半部处理,主要是登记中断,耗时较少;下半部执行中断的实际任务,耗时较多,执行完后下半部结束,中断处理完成,返回到任务上下文。
7.中断处理的内容与当前任务本身可能没有直接关系,因此处理器执行中断处理的时间应被视为系统公共开销,而不应该被算入当前任务的实际执行时间,这样任务调度才更加公平。传统方法的cfs算法中,没有将处理器执行中断处理的时间从任务运行时间中剥离,导致任务实际用于处理自身逻辑的时间统计存在一定偏差,导致虚拟时间无法准确反应任务实际处理自身逻辑的时间,从而导致任务调度公平性受损,系统性能受影响。


技术实现要素:

8.本发明的目的在于提供一种基于cfs调度器的任务调度方法、装置、电子设备及存储介质,旨在解决由于处理器执行中断处理的时间被算入当前任务的实际执行时间而导致的任务调度公平性受损的问题。
9.一方面,本发明提供一种基于cfs调度器的任务调度方法,所述方法包括下述步
骤:
10.基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间,其中,所述实际运行时间不包含对应的处理器执行中断处理的时间;
11.基于每个任务的实际运行时间,优化对应的总虚拟时间;
12.根据优化后的总虚拟时间,执行基于cfs调度器的任务调度。
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.获取当前第三总时间对应的虚拟时间;
39.基于当前第三总时间对应的虚拟时间更新当前任务的当前总虚拟时间;
40.基于每个任务的实际运行时间,优化对应的总虚拟时间的步骤之后,还包括:
41.基于当前第三总时间更新当前第四总时间。
42.另一方面,本发明提供了一种基于cfs调度器的任务调度装置,所述装置包括:
43.运行时间跟踪单元,用于基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间,其中,所述实际运行时间不包含对应的处理器执行中断处理的时间;
44.优化执行单元,用于基于每个任务的实际运行时间,优化对应的总虚拟时间;以及
45.任务调度单元,用于根据优化后的总虚拟时间,执行基于cfs调度器的任务调度。
46.另一方面,本发明还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
47.另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤。
48.本发明基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间,其中,该实际运行时间不包含对应的处理器执行中断处理的时间,基于每个任务的实际运行时间,优化对应的总虚拟时间,根据优化后的总虚拟时间,执行基于cfs调度器的任务调度,从而使每个任务的总虚拟时间能更精确地反应基于优先级的任务执行时间信息,进而使cfs调度机制更公平,系统整体性能更高。
附图说明
49.图1a是本发明实施例一提供的基于cfs调度器的任务调度方法的实现流程图;
50.图1b是本发明实施例一提供的更新任务总虚拟时间的流程示例图;
51.图2a是本发明实施例二提供的更新处理器执行中断处理的总时间的实现流程示例图;
52.图2b是本发明实施例二提供的更新任务实际运行的总时间的实现流程示例图;
53.图2c是本发明实施例二提供的更新任务的总虚拟时间的实现流程示例图;
54.图2d是本发明实施例二提供的获取任务从最近一次调度运行到现在实际运行的
总时间的实现流程示例图;
55.图3是本发明实施例三提供的基于cfs调度器的任务调度装置的结构示意图;以及
56.图4是本发明实施例五提供的电子设备的结构示意图。
具体实施方式
57.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
58.以下结合具体实施例对本发明的具体实现进行详细描述:
59.实施例一:
60.图1a示出了本发明实施例一提供的基于cfs调度器的任务调度方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
61.在步骤s101中,基于每个任务的实际运行时间,优化对应的总虚拟时间,其中,该实际运行时间不包含对应的处理器执行中断处理的时间。
62.本发明实施例适用于电子设备,该电子设备可以是手机、平板电脑、可穿戴设备、车载设备、笔记本电脑、超级移动个人计算机(ultra

mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等终端设备,该电子设备可以是单处理器或多处理器设备,本技术实施例对电子设备的具体类型不作任何限制。
63.本发明实施例将任务处理中断的时间与任务实际运行时间(任务处理自身逻辑的时间)分开统计,根据每个任务的实际运行时间计算对应的总虚拟时间,使每个任务的总虚拟时间能更精确地反应基于优先级的任务执行时间信息,从而使cfs调度机制更公平,系统整体性能更高。
64.具体实现中,当当前任务被调度运行以后,可能需要多次更新其总虚拟时间,并作为该任务是否需要被挂起而其他任务被调度运行的判断依据。例如,当该任务因为等待资源而发生阻塞时,或该任务所在处理器的就绪任务队列发生变化,即有任务被添加或移除时,需要更新该任务的总虚拟时间信息。当前任务更新总虚拟时间的实现流程可如图1b所示。图1b中,横轴为时间轴,时间增长方向如图所示,该任务从被调度运行到被挂起总虚拟时间一共更新了n次,该任务在t0时刻被调度运行,在t1时刻第1次更新总虚拟时间,在t2时刻第2次更新总虚拟时间,在tk时刻第k次更新总虚拟时间,在tn时刻第n次更新总虚拟时间,并在更新第n次更新总虚拟时间后被挂起。
65.在基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间时,优选地,当当前任务需要更新总虚拟时间时,基于为当前任务和与当前任务对应的处理器分配的变量获取当前第一总时间和当前第二总时间,将当前第二总时间与当前第一总时间之差设置为当前第三总时间,以实现当前任务从最近一次更新总虚拟时间到现在实际运行总时间的获取。其中,当前第一总时间为当前任务从最近一次被调度运行到最近一次更新总虚拟时间时实际运行的总时间,当前第二总时间为当前任务从最近一次被调度运行到现在实际运行的总时间,当前第三总时间为当前任务从最近一次更新总虚拟时间到现在实际运行的总时间。以图1b为例,若当前处于t2时刻,则当前第一总时间为t0到t1时间段内当前任务实际运行的总时间,当前第二总时间为t0到t2时间段内当前任务实际运行的总时间。
66.优选地,为每个任务分配的第一变量用于记录该任务最近一次更新总虚拟时间时实际运行的第四总时间,为每个任务分配的第二变量用于记录该任务最近一次被调度运行时实际运行的第五总时间,在基于为当前任务和与当前任务对应的处理器分配的变量获取当前第一总时间时,将当前第四总时间与当前第五总时间之差设置为当前第一总时间,以实现当前第一总时间的获取。以图1b为例,若当前处于t2时刻,则当前第四总时间为t1时刻当前任务实际运行的总时间,当前第五总时间为t0时刻当前任务实际运行的总时间。
67.优选地,为每个任务分配的第三变量用于记录该任务最近一次被调度运行时对应的处理器执行中断处理的第六总时间,在基于为当前任务和与当前任务对应的处理器分配的变量获取当前第二总时间时,获取当前第六总时间、当前第七总时间和当前第八总时间,将当前第八总时间与当前第六总时间之差设置为当前第九总时间,以实现当前第二总时间的获取。其中,当前第七总时间为当前任务从最近一次被调度运行到现在经历的总时间,当前第八总时间为与当前任务对应的处理器当前执行中断处理(中断上半部 下半部)的总时间,当前第九总时间为当前任务从最近一次被调度运行到现在对应的处理器执行中断处理的总时间。
68.优选地,为每个任务分配的第四变量用于记录该任务最近一次被调度运行时的第一时间,为每个处理器分配的第五变量用于记录该处理器最近一次进入中断上半部时的第二时间,为每个处理器分配的第六变量用于记录该处理器最近一次退出中断下半部时执行中断处理的第十总时间,在获取当前第七总时间时,将当前时间与当前第一时间之差设置为当前第七总时间,以实现第七总时间的获取;在获取当前第八总时间时,判断当前任务对应的处理器是否正在执行中断处理,若是,则将当前时间与当前第二时间作差后再与当前第十总时间求和,得到当前第八总时间,否则将当前第十总时间设置为当前第八总时间,以实现第八总时间的获取。
69.优选地,当与当前任务对应的处理器进入中断上半部时,当与当前任务对应的处理器进入中断上半部时,基于当前时间更新当前任务对应的处理器的当前第二时间,当与当前任务对应的处理器退出中断下半部时,基于当前时间与当前第二时间之差更新当前任务对应的处理器的当前第十总时间,以实现每个处理器对应的执行中断处理的总时间的自动更新。
70.优选地,当切换至当前任务时,基于当前时间更新当前任务的当前第一时间,将获取到的当前第十总时间设置为当前第六总时间,将获取到的当前第四总时间设置为当前第五总时间,以在切换至当前任务时及时更新每个任务对应的处理器执行中断处理的总时间和每个任务实际运行的总时间。
71.在步骤s102中,基于每个任务的实际运行时间,优化对应的总虚拟时间。
72.在本发明实施例中,在基于每个任务的实际运行时间,优化对应的总虚拟时间时,优选地,获取当前第三总时间对应的虚拟时间,基于当前第三总时间对应的虚拟时间更新当前任务的当前总虚拟时间,从而实现了每个任务的总虚拟时间的优化。具体地,第三总时间对应的虚拟时间=第三总时间
×
优先级为0的任务权重/当前任务权重,更新后的总虚拟时间=更新前的总虚拟时间 第三总时间对应的虚拟时间。
73.在基于每个任务的实际运行时间,优化对应的总虚拟时间之后,优选地,基于当前第三总时间更新当前第四总时间,以在更新总虚拟时间后及时更新每个任务对应的第四总
时间。
74.在步骤s103中,根据优化后的总虚拟时间,执行基于cfs调度器的任务调度。
75.在本发明实施例中,cfs调度器每次进行任务调度时,选取就绪队列中总虚拟时间最小的任务运行。其中,该总虚拟时间具体指优化后的总虚拟时间。从而仅需为每个任务和每个处理器分别分配变量,通过简单的加减运算即可将中断处理时间从任务时间统计中剥离出来,内存和处理器运算开销小,且可以精确地跟踪任务的实际运行时间,另外,只要处理器管好自己的变量,无需进行加锁互斥,即可实现扩展,执行效率高。
76.在本发明实施例中,基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间,其中,该实际运行时间不包含对应的处理器执行中断处理的时间,基于每个任务的实际运行时间,优化对应的总虚拟时间,根据优化后的总虚拟时间,执行基于cfs调度器的任务调度,从而使每个任务的总虚拟时间能更精确地反应基于优先级的任务执行时间信息,进而使cfs调度机制更公平,系统整体性能更高。
77.实施例二:
78.本实施例提供了基于cfs调度器的任务总虚拟时间优化的实现流程示例,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
79.预先为每个处理器分配两个变量cpu

>prev_irq_start和cpu

>irq_time。其中,cpu

>prev_irq_start用于记录处理器最近一次进入中断上半部的时间戳(第二时间),cpu

>irq_time用于记录处理器执行中断处理的总时间(第十总时间),这两个变量的更新流程如图2a所示。
80.在步骤s201中,当处理器进入中断上半部时,将last_run_timestamp设置为当前时间戳:cpu

>prev_irq_start=now。
81.在步骤s202中。当处理器退出中断下半部时,更新该处理器执行中断处理的总时间:cpu

>irq_time =(now

cpu

>prev_irq_start),即,本次中断处理时间=now

cpu

>prev_irq_start,更新后的cpu

>irq_time=更新前的cpu

>irq_time (now

cpu

>prev_irq_start)。
82.预先为每个任务分配五个变量task

>last_run_timestamp、task

>last_irq_time、task

>last_rtime、task

>rtime和task

>vtime。其中,task

>last_run_timestamp用于记录该任务最近一次被调度运行时的时间戳(第一时间),task

>last_irq_time用于记录该任务最近一次被调度运行时对应的处理器执行中断处理的总时间(第六总时间),task

>rtime用于记录该任务最近一次更新总虚拟时间时实际运行的总时间(第四总时间),task

>last_rtime用于记录该任务最近一次被调度运行时实际运行的总时间(第五总时间),task

>vtime用于记录该任务的当前总虚拟时间。
83.在每次任务切换时,更新当前任务(新任务)的变量task

>last_run_timestamp、task

>last_irq_time和task

>last_rtime,这三个变量的更新流程如图2b所示。
84.在步骤s211中,当切换至当前任务时,将当前任务的last_run_timestamp设置为当前时间戳:task

>last_run_timestamp=now。
85.在步骤s212中,将last_irq_time设置为当前任务对应处理器执行中断的总时间:task

>last_irq_time=cpu

>irq_time。
86.在步骤s213中,将当前任务实际运行时间备份到last_rtime:task

>last_rtime
=task

>rtime。
87.每个任务的总虚拟时间更新流程如图2c所示。在每次更新总虚拟时间的同时,也会同时更新任务总的实际运行总时间。
88.在步骤s221中,获取当前任务最近一次被调度运行到最近一次更新总虚拟时间时实际运行的总时间:delta_rtime_prev=task

>rtime

task

>last_rtime。
89.具体地,初始时task

>rtime保存的是最近一次更新总虚拟时间时(最近一次被挂起时)当前任务实际运行总时间,task

>last_time表示当前任务最近一次被调度运行时间点的实际运行总时间,二者相减得到delta_rtime_prev,即当前任务从最近一次被调度运行到最近一次更新总虚拟时间时的实际运行时间。
90.在步骤s222中,获取当前任务从最近一次被调度运行到现在实际运行的总时间delta_rtime_now。
91.获取delta_rtime_now的具体实现流程如图2d所示。
92.在步骤s2221中,获取当前任务从最近一次被调度运行到现在经历的总时间delta_now。具体地,用当前系统时间now减去任务最近一次被调度运行的时间戳task

>last_run_timestamp。
93.在步骤s2222中,获取当前任务对应的处理器执行中断处理总时间cpu

>irq

time,保存在irq_time局部变量中。
94.在步骤s2223中,判断当前任务对应的处理器是否正在执行中断处理。
95.在步骤s2224中,若正在执行中断处理,则更新irq_time,得到处理器执行中断处理的总时间:irq_time =(now

cpu

>prev_irq_start)。具体地,将最近一次中断处理时间(由于cpu中断处理未完成,这部分时间尚未更新到cpu

>irq_time中)添加到irq_time,即更新后的irq_time=更新前的irq_time (now

cpu

>prev_irq_start)。
96.在步骤s2225中,计算当前任务从最近一次被调度运行到现在对应的中断处理总时间:delta_irq=irq_time

task

>last_irq_time。
97.在步骤s2226中,计算当前任务最近一次调度运行到现在实际运行的总时间:delta_rtime_now=delta_now

delta_irq。
98.在步骤s223中,计算当前任务从最近一次更新总虚拟时间到现在实际运行的总时间:delta_rtime=delta_rtime_now

delta_rtime_prev。
99.在步骤s224中,计算delta_rtime对应的虚拟时间:delta_vtime=delta_rtime
×
nice_o_weihgt/task_weight。
100.在步骤s225中,更新当前任务的总虚拟时间:task

>vtime =delta_vtime。即更新后的task

>vtime=更新前的task

>vtime delta_vtime。
101.在步骤s226中,更新当前任务的实际运行时间:task

>rtime =delta_rtime。即更新后的task

>rtime=更新前的task

>rtime delta_vtime。
102.由以上流程可知,本实施例提供的方法有以下优势:
103.首先,内存开销小。仅需为每个任务分配5个整形变量,为每个处理器分配2个整形变量,即可将中断处理时间从任务时间统计中剥离出来,精确地跟踪任务的实际运行时间。
104.其次,处理器运算开销小。流程中只包含一些基本的加减乘除运算,又以加减运算居多,只需要消耗极少的运算资源。
105.再次,扩展性好,能方便地扩展到多处理器平台。在多处理器平台中,各处理器管理自己的两个变量,互不冲突,不需要进行加锁互斥,执行效率很高。
106.实施例三:
107.图3示出了本发明实施例三提供的基于cfs调度器的任务调度装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
108.运行时间跟踪单元31,用于基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间,其中,该实际运行时间不包含对应的处理器执行中断处理的时间;
109.优化执行单元32,用于基于每个任务的实际运行时间,优化对应的总虚拟时间;以及
110.任务调度单元33,用于根据优化后的总虚拟时间,执行基于cfs调度器的任务调度。
111.在本发明实施例中,基于cfs调度器的任务调度装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。基于cfs调度器的任务调度装置的各单元的具体实施方式可参考前述方法实施例的描述,在此不再赘述。
112.实施例四:
113.图4示出了本发明实施例四提供的电子设备的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
114.本发明实施例的电子设备4包括处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42。该处理器40执行计算机程序42时实现上述各方法实施例中的步骤,例如图1a所示的步骤s101至s103。或者,处理器40执行计算机程序42时实现上述各装置实施例中各单元的功能,例如图3所示单元31至33的功能。
115.在本发明实施例中,基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间,其中,该实际运行时间不包含对应的处理器执行中断处理的时间,基于每个任务的实际运行时间,优化对应的总虚拟时间,根据优化后的总虚拟时间,执行基于cfs调度器的任务调度,从而使每个任务的总虚拟时间能更精确地反应基于优先级的任务执行时间信息,进而使cfs调度机制更公平,系统整体性能更高。
116.实施例五:
117.在本发明实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤,例如,图1a所示的步骤s101至s103。或者,该计算机程序被处理器执行时实现上述各装置实施例中各单元的功能,例如图3所示单元31至33的功能。
118.在本发明实施例中,基于为每个任务和每个处理器分配的变量,跟踪每个任务的实际运行时间,其中,该实际运行时间不包含对应的处理器执行中断处理的时间,基于每个任务的实际运行时间,优化对应的总虚拟时间,根据优化后的总虚拟时间,执行基于cfs调度器的任务调度,从而使每个任务的总虚拟时间能更精确地反应基于优先级的任务执行时间信息,进而使cfs调度机制更公平,系统整体性能更高。
119.本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,rom/ram、磁盘、光盘、闪存等存储器。
120.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献