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

基于M2微处理器的线程调度方法、系统及计算机存储介质与流程

2021-10-20 00:06:00 来源:中国专利 TAG:计算机 线程 调度 方法 存储介质

基于m2微处理器的线程调度方法、系统及计算机存储介质
技术领域
1.本公开涉及计算机领域,更具体地涉及线程调度方法、系统及计算机存储介质。


背景技术:

2.实时操作系统对外部事件的响应时间决定着操作系统的性能,现有嵌入式实时操作系统都采用软件定时器来实现对时钟的控制,而软件定时器具有定时不精准、响应不及时的缺点。


技术实现要素:

3.本公开实施例提供一种基于m2微处理器的线程调度方法、系统及计算机存储介质,以至少解决上述实时操作系统定时不精准、响应不及时的问题之一。
4.根据本公开的第一方面,提供了一种基于m2微处理器的线程调度方法,所述方法包括:
5.创建至少一个任务线程,其中所述至少一个任务线程的优先级均相同;
6.启动m2微处理器的硬件定时器中断功能,并按照创建时间的先后顺序执行所述至少一个任务线程;
7.基于所述硬件定时器确定当前任务线程的执行时间是否达到预设时间;
8.如果确定当前任务线程的执行时间达到预设时间,则进入系统中断程序;
9.当所述系统中断程序结束后,切换至下一个任务线程。
10.可选地,基于硬件定时器确定当前任务线程的执行时间是否达到预设时间,包括:
11.从当前任务线程开始执行时,所述硬件定时器开始计数;
12.确定所述计数的数值是否达到所述预设时间的数值。
13.可选地,如果当前任务线程的执行时间达到预设时间,则进入系统中断程序,包括:
14.当所述计数的数值达到所述预设时间的数值,所述硬件定时器产生内部中断信号;
15.基于所述内部中断信号进入所述系统中断程序。
16.可选地,当所述系统中断程序结束后,所述硬件定时器的计数清零。
17.可选地,所述m2微处理器硬件定时器的时钟频率包括:1.5mhz

11718.75hz。
18.可选地,所述预设时间包括:21.76ms

85us。
19.可选地,所述方法还包括:
20.创建空闲线程;
21.当系统中没有要执行的任务线程时,切换至所述空闲线程。
22.可选地,所述方法还包括:
23.如果当前任务线程的执行时间未达到预设时间,则继续执行所述当前任务线程。
24.根据本公开的第二方面,提供了一种基于m2微处理器的线程调度系统,包括存储
器、处理器及存储在所述存储器上且在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述方法的步骤。
25.根据本公开的第三方面,提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。
26.根据本公开实施例的基于m2微处理器的线程调度方法、系统及计算机存储介质,通过硬件定时器实现对时钟的精准控制,进而实现精准及时的线程调度,增强了嵌入式操作系统的实时性,能够保证任务在确定的时间里运行,并且减少了对时间片的检测流程,以及减少了系统的上下文切换时间。
附图说明
27.通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
28.图1是根据本公开实施例的基于m2微处理器的线程调度装置的示意性框图;
29.图2是根据本公开实施例的基于m2微处理器的线程调度方法的示意性流程图;
30.图3是根据本公开实施例的基于m2微处理器的线程调度方法的示例;
31.图4是根据本公开实施例的基于m2微处理器的线程调度系统的示意性框图;
32.图5是根据本公开实施例的基于m2微处理器的线程调度系统的又一示意性框图。
具体实施方式
33.为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。基于本公开中描述的本公开实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本公开的保护范围之内。
34.随着嵌入式操作系统的发展,实时操作系统对时间的要求也越来越严格。目前,嵌入式实时操作系统的时间管理主要采用软件定时器来进行时间的管理和线程的调度。软件定时器以时钟为节拍产生一个周期中断,每当达到设定的时间时,相应的函数会提供中断服务和线程调度。而系统对外部事件的反应时间通常由两方面决定,一方面是上下文切换的时间,另一方面是中断的响应时间。其中影响上下文切换时间最重要的因素就是线程调度的策略。
35.目前的嵌入式实时操作系统的线程调度方主要有抢占式调度和基于时间片的轮询调度。抢占式调度允许高优先级的任务随时抢占低优先级的任务,这样就可以使得关键的代码可以按时得到执行。时间片轮询调度为每个任务分配一个时间片,如果时间片没用完任务就执行完了,那就立即切换到下一个任务,不用等待,如果时间片用完了任务还没执行完,那就会被就绪表中最高优先级的任务抢占,自己挂起到末端去排队等下一次调度。抢占式调度和时间片轮询调度无法保障系统的实时性,因为任务的执行周期不一定,高优先级的任务无法随时抢占低优先级任务,需要等低优先级任务时间片用完了才能抢占,并且
时间片轮询调度方法要随时检查时间片是否被用完,增大了反应的时间。
36.基于上述考虑,提出了根据本公开实施例的基于m2微处理器的线程调度方法。参见图1,图1示出了根据本公开实施例的基于m2微处理器的线程调度装置的示意性框图。如图1所示,所述基于m2微处理器的线程调度装置100包括:处理组件110、硬件定时器120和总线130,其中,
37.所述总线130包括一通路,用于在所述处理组件110、所述通信接口120和所述硬件定时器120之间进行信息传输;
38.所述处理组件110连接至所述总线130,用于创建至少一个任务线程,其中所述至少一个任务线程的优先级均相同;以及启动所述硬件定时器120的中断功能,并按照创建时间的先后顺序执行所述至少一个任务线程;
39.所述硬件定时器120连接至所述总线130,用于判断当前任务线程的执行时间是否达到预设时间;
40.所述处理组件110还响应于确定当前任务线程的执行时间达到预设时间,进入系统中断程序;以及在所述系统中断程序结束后,切换至下一个任务线程。
41.其中,在线程调度装置中设置硬件定时器,并采用硬件定时器对于当前执行的任务线程即当前任务线程的执行时间进行计时,当执行时间达到预设时间,则进入系统中断程序;等到系统中断程序结束后转换到下一个任务线程继续执行。可见,相比于传统的线程调度装置采用软件定时器,根据本公开实施例的线程调度装置增加了硬件定时器,并通过硬件定时器实现对时钟的精准控制,进而实现精准及时的线程调度,增强了嵌入式操作系统的实时性,能够保证任务在确定的时间里运行,并且减少了对时间片的检测流程,以及减少了系统的上下文切换时间。
42.可选地,所述处理组件110包括至少一个处理核心。
43.可选地,所述装置100还包括:通信接口140,连接至所述总线130,用于从外部设备150接收外部信息。在一些实施例中,所述通信接口包括至少一个串口通信接口。进一步地,在一些实施例中,所述串口通信接口包括通用异步收发传输器(uart,universal asynchronous receiver/transmitter)。
44.在一些实施例中,外部设备150可以是具有计算能力的设备。如,个人计算机、笔记本电脑、智能终端等。其中,外部设备可以生成外部事件。
45.需要说明的是,尽管上述设备仅示出了处理组件110、硬件定时器120、总线130和通信接口140,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述装置中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
46.参见图2,图2示出了根据本公开实施例的基于m2微处理器的线程调度方法的示意性流程图。如图2所示,所述方法200包括:
47.步骤s210,创建至少一个任务线程,其中所述至少一个任务线程的优先级均相同;
48.步骤s220,启动m2微处理器的硬件定时器中断功能,并按照创建时间的先后顺序执行所述至少一个任务线程;
49.步骤s230,基于所述硬件定时器确定当前任务线程的执行时间是否达到预设时间;
50.步骤s240,如果确定当前任务线程的执行时间达到预设时间,则进入系统中断程序;
51.步骤s250,当所述系统中断程序结束后,切换至下一个任务线程。
52.其中,任务线程具有相同的优先级,系统按照创建时间的先后顺序执行任务线程,即从最先创建的任务线程开始执行,采用硬件定时器对于当前执行的任务线程即当前任务线程的执行时间进行计时,当执行时间达到预设时间,则进入系统中断程序;等到系统中断程序结束后转换到下一个任务线程继续执行。根据本公开实施例的线程调度方法,通过硬件定时器实现对时钟的精准控制,进而实现精准及时的线程调度,增强了嵌入式操作系统的实时性,能够保证任务在确定的时间里运行,并且减少了对时间片的检测流程,以及减少了系统的上下文切换时间。
53.可选地,所述硬件定时器包括32位微处理器中的硬件定时器。其中,32位微处理器可以是基于mips架构的微处理器,例如m2微处理器。
54.其中,硬件定时器工作在定时模式时,将在设定的预设时间到达时产生硬件定时器内部中断。具体地,硬件定时器可以使用1个比较寄存器保存预置的预设时间数值。硬件定时器在执行当前任务线程时开始计数,当硬件定时器内计数的数值与比较寄存器内保存的预设时间数值相等时,硬件定时器即发生内部中断并置位特殊寄存器sys_irq_reg对应中断标志位(irq_tc0),引导对应的系统中断程序进行相应处理。在系统执行完对应的系统中断程序,在系统中断程序返回前,执行写寄存器t0_clrcnt_reg和t0_clrirq_reg,将硬件定时器计数的数值清零、中断标志位复位,硬件定时器将在下一个任务线程开始执行时再次从零开始计数。
55.在一些实施例中,所述硬件定时器的时钟频率包括:1.5mhz

11718.75hz。
56.其中,硬件定时器的计数时钟频率由公式:3m/(ref 1)计算得到,可以基于计算得到时钟频率,执行写入t0_clk_reg寄存器,从而完成对硬件定时器的计数时钟频率的设置。具体地,当硬件定时器tcx的tx_ref_reg寄存器内数值设定为=0时,硬件定时器tcx的计数器必须累计计满32位才产生中断,此时,可以利用读取tx_read_reg寄存器,得到当前实时的预设时间。在读取tx_read_reg的过程中,只能显示前20位信息。当硬件定时器tcx的tx_ref_reg寄存器内数值设定为≠0时,如果硬件定时器tcx在开启中断的状态下,硬件定时器tcx的计数器只要累计计满8位或累计达到tx_ref_reg中的预设时间即产生中断,可见,硬件定时器的定时功能可以根据调整定硬件定时器的时钟频率、预设时间的设置来选择预设时间,这为用户使提供极大方便。
57.在一些实施例中,所述预设时间包括:21.76ms

85us。
58.在一些实施例中,硬件定时器的设置可以包括:
59.void rt_t0_set1u(n,irq);//n是对应us数,irq=1触发中断void rt_t0_set100u(n,irq);//n是对应100us数,irq=1触发中断
60.void rt_t0_stop();
ꢀꢀꢀꢀꢀꢀꢀꢀ
//停止t0运行
61.void rt_t0_clr();
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//停止并清零t0
62.int rt_t0_flag();
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//读回标志位
63.可选地,在步骤s230中,基于硬件定时器判断当前任务线程的执行时间是否达到预设时间,包括:
64.从当前任务线程开始执行时,所述硬件定时器开始计数;
65.判断所述计数的数值是否达到所述预设时间的数值。
66.在一些实施例中,如果当前任务线程的执行时间达到预设时间,则进入系统中断程序,包括:
67.当所述计数的数值达到所述预设时间的数值,所述硬件定时器产生内部中断信号;
68.基于所述内部中断信号进入所述系统中断程序。
69.在一些实施例中,所述方法还包括:
70.如果当前任务线程的执行时间未达到预设时间,则继续执行所述当前任务线程。
71.在一些实施例中,所述方法还包括:当所述系统中断程序结束后,所述硬件定时器的计数清零。
72.可选地,所述方法还包括:
73.创建空闲线程;
74.当系统中没有要执行的任务线程时,切换至所述空闲线程。
75.其中,空闲线程是系统线程中一个比较特殊的线程,它具有最低的优先级,当系统中无其他线程可运行时,调度器将调度到空闲线程。
76.下面,参见图3,图3示出了根据本公开实施例的基于m2微处理器的线程调度方法的示例。如图3所示,方法300包括:
77.首先,嵌入式操作系统可以开始运行时,创建一个空闲线程和至少一个任务线程;其中,创建事先定义好的任务线程,并采用线程控制块的方式,给每个任务线程分配私有栈空间;
78.然后,由于任务线程具有相同的优先级,处理组件110从最先创建的第一个任务线程开始执行;
79.接着,处理组件110启动硬件定时器120的中断功能,并从第一个任务线程开始执行时开始计数;
80.接着,硬件定时器120确定计数的数值是否到达设定的预设时间,如果是,则处理组件110关闭硬件定时器120的中断功能,进入系统中断程序;如果否,则继续执行当前任务线程以及继续计数;
81.接着,当系统中断程序执行结束后,在系统中断程序返回前,硬件定时器120计数的数值清零、中断标志位复位,进入线程调度器;
82.接着,线程调度器切换到下一个任务线程,继续启动硬件定时器120的中断功能,硬件定时器120将在下一个任务线程开始执行时再次从零开始计数,依次类推,硬件定时器120确定当前任务线程的执行时间是否达到预设时间;如果当前任务线程的执行时间达到预设时间,则处理组件110进入所述系统中断程序;如果当前任务线程的执行时间未达到预设时间,则处理组件110继续执行所述当前任务。当系统中无其他线程可运行时,调度器将调度到空闲线程。
83.可见,根据本公开实施例的线程调度方法,基于32位微处理器的硬件定时器来实现对时钟的精准控制,进而实现精准及时的线程调度。严格时间的周期性调度,增强了嵌入式操作系统的实时性,能够保证任务会在确定的时间里运行,并且减少了对时间片的检测
流程,一定程度上减少了系统的上下文切换时间。
84.根据本公开实施例,还提出了一种基于m2微处理器的线程调度系统。参见图4图4示出了根据本公开实施例的基于m2微处理器的线程调度系统的示意性框图。如图4所示,所述系统400包括:存储器410、以及处理器420;
85.所述存储器410存储用于实现根据本公开实施例的线程调度方法中的相应步骤的程序代码;
86.所述处理器420用于运行所述存储器410中存储的程序代码,以执行以上根据本公开实施例的线程调度方法的相应步骤。
87.在一个实施例中,在所述程序代码被所述处理器420运行时执行以上根据本公开实施例的前述线程调度方法的相应步骤。
88.此外,根据本公开的另一方面,还提供了一种计算机可读存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本公开实施例的线程调度方法的相应步骤,并且用于实现根据本公开实施例的线程调度系统。
89.根据本公开实施例,还提出了一种基于m2微处理器的线程调度系统。参见图5,图5示出了根据本公开实施例的基于m2微处理器的线程调度系统的又一示意性框图。如图5所示,所述系统500包括:
90.外部设备510,用于生成外部事件;
91.根据本公开实施例所述的装置520,与所述外部设备510连接,用于基于所述硬件定时器响应所述外部事件。
92.可选地,所述外部设备包括计算设备。其中,计算设备可以是具有计算能力的设备。如,个人计算机、笔记本电脑、智能终端等。
93.综上所述,根据本公开实施例的线程调度方法、系统及计算机存储介质,通过硬件定时器实现对时钟的精准控制,进而实现精准及时的线程调度,增强了嵌入式操作系统的实时性,能够保证任务在确定的时间里运行,并且减少了对时间片的检测流程,以及减少了系统的上下文切换时间。
94.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
95.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
96.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
97.类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、
或者对其的描述中。然而,并不应将该本公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其公开点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
98.本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
99.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
100.应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
101.以上所述,仅为本公开的具体实施方式或对具体实施方式的说明,本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。本公开的保护范围应以权利要求的保护范围为准。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜