CN114860418A - 操作系统时钟源的使用方法、装置、电子设备及存储介质 - Google Patents
操作系统时钟源的使用方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114860418A CN114860418A CN202210755256.8A CN202210755256A CN114860418A CN 114860418 A CN114860418 A CN 114860418A CN 202210755256 A CN202210755256 A CN 202210755256A CN 114860418 A CN114860418 A CN 114860418A
- Authority
- CN
- China
- Prior art keywords
- thread
- scheduling
- hardware counter
- operating system
- clock source
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000006870 function Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 7
- 230000007958 sleep Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000000737 periodic effect Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004622 sleep time Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明实施例涉及芯片设计技术领域,公开了一种操作系统时钟源的使用方法、装置、电子设备及存储介质。上述操作系统时钟源的使用方法包括:在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作;在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间;将第二线程的调度时间写入硬件计数器中,其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断,在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。本发明的实施例的操作系统时钟源的使用方法,可以极大程度地减少操作系统运行时CPU的负载和功耗。
Description
技术领域
本发明实施例涉及芯片设计技术领域,特别涉及一种操作系统时钟源的使用方法、装置、电子设备及存储介质。
背景技术
任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时,线程的时间片轮转及软定时器超时等线程的调度操作。
传统的时钟节拍依赖于芯片的时钟产生周期性中断,其中,时钟由晶振通过锁相环(Phase Locked Loop,PLL)生成,然而,传统操作系统使用周期性时钟来判断是否需要进行线程调度,增加了CPU的负载。
发明内容
本发明实施方式的目的在于提供一种操作系统时钟源的使用方法、装置、电子设备及存储介质,可以极大程度地减少操作系统运行时CPU的负载和功耗。
为至少解决上述技术问题,本发明的实施方式提供了一种操作系统时钟源的使用方法,操作系统时钟源为外设于芯片的硬件计数器,包括以下步骤:在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作;在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间;将第二线程的调度时间写入硬件计数器中,其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断;在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。
为至少解决上述技术问题,本发明的实施方式还提供了一种操作系统时钟源的使用装置,操作系统时钟源为外设于芯片的硬件计数器,包括:第一确定模块,用于在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作;处理模块,用于在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间;执行模块,用于将第二线程的调度时间写入硬件计数器中,其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断;第二确定模块,用于在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。
为至少解决上述技术问题,本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的操作系统时钟源的使用方法。
为至少解决上述技术问题,本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的操作系统时钟源的使用方法。
本发明实施方式相对于现有技术而言,操作系统时钟源为外设于芯片的硬件计数器,在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作;在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间;将第二线程的调度时间写入硬件计数器中,其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断;在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。本发明实施例通过将外设于芯片的硬件计数器作为操作系统的时钟源,硬件计数器用于产生中断,即产生时钟节拍,使得系统中待调度执行的线程可以被操作,而由于系统通过获取用于硬件计数器产生中断的线程的调度时间,并将调度时间写入硬件计数器中,使得硬件计数器可以在线程应该被调度的时间点产生中断,从而调度线程,因此本申请无需周期性地产生中断,即避免了周期性中断产生的多次不必要的中断,从而可以降低操作系统CPU的负载和功耗。
另外,执行第一线程的调度操作,包括:调用第一线程的调度函数,进行第一线程的调度,以完成线程的调度流程。
另外,获取下一个待调度的第二线程的调度时间,包括:从预设的线程延时链表中获取第二线程的调度时间;其中,预设的线程延时链表用于存储多个线程的调度时间,以将调度时间写入硬件计数器中,使硬件计数器产生中断。
另外,所述硬件计数器的首次中断基于预设的操作系统的软件配置产生。
另外,执行第一线程的调度操作之后,还包括:去除操作系统的时间片轮转功能,以减少硬件计数器产生中断的次数,降低了CPU的负载。
另外,所述方法还包括:获取硬件计数器的计数值;根据计数值,确定操作系统时钟源的当前时间。通过硬件计数器的计数值确定当前系统时钟的准确时间,可以避免由于芯片进入睡眠状态,导致的时钟源停留在芯片进入睡眠状态之前的时间。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明一个实施例提供的一种操作系统时钟源的使用方法的流程图;
图2是根据本发明另一个实施例提供的一种操作系统时钟源的使用方法的流程图;
图3是根据本发明另一个实施例提供的一种操作系统时钟源的使用装置的示意图一;
图4是根据本发明另一个实施例提供的一种操作系统时钟源的使用装置的示意图二;
图5是根据本发明另一个实施例提供的一种电子设备的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列部件或单元的系统、产品或设备没有限定于已列出的部件或单元,而是可选地还包括没有列出的部件或单元,或可选地还包括对于这些产品或设备固有的其它部件或单元。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本发明的一个实施例涉及一种操作系统时钟源的使用方法,其中,操作系统时钟源为外设于芯片的硬件计数器。需要说明的是,本实施例的硬件计数器外设于芯片,易于改造和安装,可以作为多种操作系统的时钟源。
本实施例的操作系统时钟源的使用方法的具体实现流程图如图1所示,包括:
步骤101,在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作。
步骤102,在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间。
步骤103,将第二线程的调度时间写入硬件计数器中;其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断。
步骤104,在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。
本实施例中,操作系统时钟源为外设于芯片的硬件计数器,在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作;在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间;将第二线程的调度时间写入硬件计数器中,其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断;在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。本发明实施例通过将外设于芯片的硬件计数器作为操作系统的时钟源,硬件计数器用于产生中断,即产生时钟节拍,使得系统中待调度执行的线程可以被操作,而由于系统通过获取用于硬件计数器产生中断的线程的调度时间,并将调度时间写入硬件计数器中,使得硬件计数器可以在线程应该被调度的时间点产生中断,从而调度线程,因此本申请无需周期性地产生中断,即避免了周期性中断产生的多次不必要的中断,从而可以降低操作系统CPU的负载和功耗。
下面对本实施方式的操作系统时钟源的使用方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
在步骤101中,在硬件计数器产生中断,即产生时钟节拍的情况下,触发第一线程的调度,然后确定是否执行第一线程的调度操作。
具体地,本实施例的硬件计数器用于产生中断,使得系统中待执行的线程可以在硬件计数器产生中断后被调度执行。在芯片上电后,系统的CPU首先会通过硬件计数器在芯片上电后产生的首次中断来实现第一线程的调度,具体为在硬件计数器产生首次中断后,CPU来确定是否要执行第一线程的调度操作,若确定执行第一线程的调度操作,则进入步骤102。若不执行第一线程的调度操作,则系统会默认第一线程的调度操作已完成,可以执行后续操作。
其中,硬件计数器的首次中断基于预设的操作系统的软件配置产生。例如,预先对操作系统的软件配置进行设置,将硬件计数器的首次中断的时间点为芯片上电30ms后的时间点,则第一线程的调度时间即为芯片上电30ms后的时间点。其中,具体的调度方式与过程并不影响本实施例的实现,因此不作详细说明。
在步骤102中,在确定执行第一线程的调度操作的情况下,通过调用第一线程的调度函数,进行第一线程的调度,以完成第一线程的调度,然后获取下一个待调度的第二线程的调度时间。
具体地,本实施例中在执行第一线程的调度的同时,会从预设的线程延时链表中获取第二线程的调度时间,以将调度时间写入硬件计数器中,使硬件计数器在第二线程待调度的时间点产生中断。其中,预设的线程延时链表用于存储多个线程的调度时间,该预设的线程延时链表可以预先根据所需的线程的执行顺序建立,并预先存储在系统的存储器中,系统可以通过读取存储器来获取预设的线程延时链表,并从中获取各线程的调度时间。
可以理解的是,具体的线程执行顺序本领域技术人员可以根据需要系统实现的功能来确定,本实施例对此不做限制,例如,待执行的线程有3个,即线程1,线程2,线程3,并且将3个线程的执行顺序为线程2,线程3,线程1。
需要说明的是,本实施例去除了操作系统原本的时间片轮转功能,由于时间片轮转功能的存在会导致硬件计数器每间隔一段时间就会产生中断,导致CPU需要执行相应的处理操作,因此通过去除操作系统的时间片轮转功能,可以减少硬件计数器的中断次数,以降低中央处理器(central processing unit,CPU)的负载和功耗。
在步骤103中,将第二线程的调度时间写入硬件计数器中,以使硬件计数器产生中断,然后确定是否执行第二线程的调度操作。其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断。
具体地,本实施例将获取的第二线程的调度时间写入硬件计数器中,使得硬件计数器在第二线程的调度时间点产生中断,以触发第二线程的调度。例如,第二线程的调度时间在调度第一线程的10ms后,则在调度第一线程的10ms后,硬件计数器会产生中断。
在步骤104中,在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。
其中,若确定执行第二线程的调度,则调用第二线程的调度函数,进行第二线程的调度,若不执行第二线程的调度操作,则系统会默认第二线程的调度操作已完成,可以执行后续操作。
为了便于理解,现对本实施例的操作系统时钟源的使用方法中系统如何通过硬件计数器的中断进行的线程调度举例说明:
在芯片上电之前,将一个预设的线程延时链表存储至系统的存储器中,其中线程延时链表中按序存储着多个线程的调度时间,包括:线程1的调度时间为10:10:10,线程2的调度时间为10:10:15,线程3的调度时间为10:10:25;预先设置芯片上电后第一个需要调度的线程,即线程4,并将硬件计数器首次中断的时间点设置为10:10:00。
假设芯片10:09:00上电开始工作,由于软件配置,在10:10:00,硬件计数器会产生首次中断,此时CPU确定是否调度线程4,若确定调度线程4,则从获取预设的线程延时链表中获取下一个待调度的线程的时间,即线程1的调度时间10:10:10,在10:10:10硬件计数器产生第二次中断,CPU确定是否调度线程1,若确定调度线程1,则从获取预设的线程延时链表中获取下一个待调度的线程的时间,即线程2的调度时间10:10:15,在10:10:15硬件计数器产生第三次中断,CPU确定是否调度线程2,若确定不调度线程2,则从获取预设的线程延时链表中获取下一个待调度的线程的时间,即线程3的调度时间10:10:25,在10:10:25硬件计数器产生第四次中断,CPU确定是否调度线程3,若确定调度线程3,则调度线程3,并执行线程3。
由于传统技术中,采用芯片自带的时钟,例如systick时钟产生周期性的中断,中断之间的时间间隔取决于不同的应用,中断频率越快,系统的实时响应越快,但是系统的额外开销就越大,每次的systick时钟均会产生一个低优先级的中断,然后系统在中断函数中确定是否执行线程的调度操作,例如线程的切换,但增加了系统的负载,而本申请通过将外设于芯片的硬件计数器作为操作系统的时钟,去除周期性的调度查询,仅在进行线程调度的时间点,通过硬件计数器的计数值产生系统中断,以进行线程的调度,例如,通过芯片的时钟产生周期性的中断时,系统会每隔2ms产生一次中断,此时需要CPU进行一些处理,例如确定是否执行线程的调度操作,系统时钟可能在1s内产生30次中断,那么CPU需要在这1s内执行30次额外的工作,而在这1s内,实际待调度执行的线程可能只有10个,本实施例就只会产生10次中断,减少了20次中断,即减少了CPU20次额外的工作,从而可以极大程度地减少操作系统运行时CPU的负载和功耗。
本发明的一个实施例涉及一种操作系统时钟源的使用方法,其中,操作系统时钟源为外设于芯片的硬件计数器。下面对本实施方式的操作系统时钟源的使用方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。本实施例的操作系统时钟源的使用方法的具体实现流程图如图2所示,包括:
步骤201,在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作。
步骤202,在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间。
步骤203,将第二线程的调度时间写入硬件计数器中。其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断。
步骤204,在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。
其中,步骤201至步骤204与步骤101至步骤104大致相同,此处不再赘述。
步骤205,获取硬件计数器的计数值。
步骤206,根据计数值,确定操作系统时钟源的当前时间。
具体地,操作系统时钟源当前时间可以基于预设的规则和硬件计数器的计数值获取,其中,操作系统时钟源和硬件计数器的计数值之间的存在一定的公式关系,即为预设的规则。
进一步地,由于本实施例中采用外设于芯片的硬件计数器作为操作系统的时钟源,而硬件计数器即使芯片进入睡眠状态,也会继续工作,即硬件计数器仍会获取线程的调度时间,并产生中断,其中,硬件计数器的具体工作模式为:在芯片进入了睡眠状态后,获取下一个现成的调度时间,并根据下一个线程的调度时间开始计数,例如,若下一个线程的调度时间为5ms后,则硬件计数器会在5ms后产生中断,此时芯片会从睡眠状态苏醒,CPU开始确定是否执行下一个线程。因此,本实施例可以随时获取到硬件计数器的计数值。
可以理解的是,本实施例中由于硬件计数器在芯片进入睡眠状态后,仍会继续工作,因此,芯片处于睡眠状态时,也不会影响线程的调度。
由于传统技术中的操作系统时钟源在芯片进入睡眠状态后会停止工作,而为了确保睡眠结束后系统时钟不停留在睡眠前的时间,需要在芯片睡眠前记录睡前的时刻点1,在苏醒后再次记录时刻点2,根据时刻点2减去时刻点1得到睡眠时长,将此睡眠时长值加在操作系统记录系统时钟的全局变量上进行操作系统时钟的补偿,由于记录时刻点本身也消耗时间,从而导致最终的操作系统时钟补偿值偏大,并且在补偿的过程中运行的代码时间过长,也会占用CPU算力。而本申请实施例硬件计数器在芯片进入睡眠的情况下不会停止产生中断,因此通过硬件计数器的计数值确定当前系统时钟的准确时间,可以避免由于芯片进入睡眠状态,导致的时钟源停留在芯片进入睡眠状态之前的时间,即可以直接通过获取硬件计数器的计数值,得到当前操作系统时钟源的准确时间,无需额外进行操作系统时钟的补偿,降低了CPU的负载,并且芯片处于睡眠状态时,不会影响线程的调度,即不影响系统的正常工作。
需要说明的是,本实施方式中的上述各示例均为方便理解进行的举例说明,并不对本发明的技术方案构成限定。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明另一实施例涉及一种操作系统时钟源的使用装置,其中,操作系统时钟源为外设于芯片的硬件计数器。下面对本实施例的操作系统时钟源的使用装置的细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本例的必须,图3是本实施例所述的操作系统时钟源的使用装置的示意图,包括:第一确定模块301,处理模块302,执行模块303和第二确定模块304。
具体而言,第一确定模块301,用于在硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作。
处理模块302,用于在确定执行第一线程的调度操作的情况下,执行第一线程的调度操作,并获取下一个待调度的第二线程的调度时间。
在一个例子中,处理模块302,还用于从预设的线程延时链表中获取第二线程的调度时间;其中,预设的线程延时链表用于存储多个线程的调度时间。
在一个例子中,处理模块302,还用于调用第一线程的调度函数,进行第一线程的调度。
在一个例子中,处理模块302,还用于在执行第一线程的调度操作之后,关闭操作系统的时间片轮转功能。
执行模块303,用于将第二线程的调度时间写入硬件计数器中,其中,第二线程的调度时间用于供硬件计数器在第二线程的调度时间产生中断。
第二确定模块304,用于在硬件计数器在第二线程的调度时间产生中断的情况下,确定是否执行第二线程的调度操作。
不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明另一实施例涉及一种操作系统时钟源的使用装置,其中,操作系统时钟源为外设于芯片的硬件计数器。图4是本实施例所述的操作系统时钟源的使用装置的示意图,包括:第一确定模块401,处理模块402,执行模块403,第二确定模块404,获取模块405和第三确定模块406。
其中,第一确定模块401,处理模块402,执行模块403,第二确定模块404,与第三实施例中的第一确定模块301,处理模块302,执行模块303和第二确定模块304大致相同,此处不再赘述。
其中,获取模块405,用于获取硬件计数器的计数值。
第三确定模块406,用于根据计数值,确定操作系统时钟源的当前时间。
不难发现,本实施方式为与第二实施方式相对应的装置实施例,本实施方式可与第二实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明另一实施例涉及一种电子设备,如图5所示,包括:至少一个处理器501;以及,与所述至少一个处理器501通信连接的存储器502;其中,所述存储器502存储有可被所述至少一个处理器501执行的指令,所述指令被所述至少一个处理器501执行,以使所述至少一个处理器501能够执行上述各实施例中的操作系统时钟源的使用方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明另一实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种操作系统时钟源的使用方法,其特征在于,所述操作系统时钟源为外设于芯片的硬件计数器,包括:
在所述硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作;
在确定执行所述第一线程的调度操作的情况下,执行所述第一线程的调度操作,并获取下一个待调度的第二线程的调度时间;
将所述第二线程的调度时间写入所述硬件计数器中,其中,所述第二线程的调度时间用于供所述硬件计数器在所述第二线程的调度时间产生中断;
在所述硬件计数器在所述第二线程的调度时间产生中断的情况下,确定是否执行所述第二线程的调度操作。
2.根据权利要求1所述的操作系统时钟源的使用方法,其特征在于,所述执行所述第一线程的调度操作,包括:
调用所述第一线程的调度函数,进行所述第一线程的调度。
3.根据权利要求1所述的操作系统时钟源的使用方法,其特征在于,所述获取下一个待调度的第二线程的调度时间,包括:
从预设的线程延时链表中获取所述第二线程的调度时间;
其中,所述预设的线程延时链表用于存储多个线程的调度时间。
4.根据权利要求1至3中任一项所述的操作系统时钟源的使用方法,其特征在于,所述硬件计数器的首次中断基于预设的操作系统的软件配置产生。
5.根据权利要求4所述的操作系统时钟源的使用方法,其特征在于,所述方法还包括:
去除所述操作系统的时间片轮转功能。
6.根据权利要求1所述的操作系统时钟源的使用方法,其特征在于,所述方法还包括:
获取所述硬件计数器的计数值;
根据所述计数值,确定所述操作系统时钟源的当前时间。
7.一种操作系统时钟源的使用装置,其特征在于,所述操作系统时钟源为外设于芯片的硬件计数器,包括:
第一确定模块,用于在所述硬件计数器产生中断的情况下,确定是否执行第一线程的调度操作;
处理模块,用于在确定执行所述第一线程的调度操作的情况下,执行所述第一线程的调度操作,并获取下一个待调度的第二线程的调度时间;
执行模块,用于将所述第二线程的调度时间写入所述硬件计数器中,其中,所述第二线程的调度时间用于供所述硬件计数器在所述第二线程的调度时间产生中断;
第二确定模块,用于在所述硬件计数器在所述第二线程的调度时间产生中断的情况下,确定是否执行所述第二线程的调度操作。
8.根据权利要求7所述的操作系统时钟源的使用装置,其特征在于,所述装置还包括:
获取模块,用于获取所述硬件计数器的计数值;
第三确定模块,用于根据所述计数值,确定所述操作系统时钟源的当前时间。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6中任一项所述的操作系统时钟源的使用方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的操作系统时钟源的使用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210755256.8A CN114860418A (zh) | 2022-06-30 | 2022-06-30 | 操作系统时钟源的使用方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210755256.8A CN114860418A (zh) | 2022-06-30 | 2022-06-30 | 操作系统时钟源的使用方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860418A true CN114860418A (zh) | 2022-08-05 |
Family
ID=82626972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210755256.8A Pending CN114860418A (zh) | 2022-06-30 | 2022-06-30 | 操作系统时钟源的使用方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860418A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272564A (zh) * | 2008-04-17 | 2008-09-24 | 中兴通讯股份有限公司 | 一种软实时定时器调度的方法及软实时定时器模块 |
US8480398B1 (en) * | 2007-12-17 | 2013-07-09 | Tamer Yunten | Yunten model computer system and lab kit for education |
CN112199170A (zh) * | 2020-09-07 | 2021-01-08 | 广州致远电子有限公司 | 实时操作系统的定时处理方法、装置、设备及存储介质 |
CN114416322A (zh) * | 2022-01-21 | 2022-04-29 | 深圳集智数字科技有限公司 | 基于双链表的任务调度方法、装置、电子设备及存储介质 |
-
2022
- 2022-06-30 CN CN202210755256.8A patent/CN114860418A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8480398B1 (en) * | 2007-12-17 | 2013-07-09 | Tamer Yunten | Yunten model computer system and lab kit for education |
CN101272564A (zh) * | 2008-04-17 | 2008-09-24 | 中兴通讯股份有限公司 | 一种软实时定时器调度的方法及软实时定时器模块 |
CN112199170A (zh) * | 2020-09-07 | 2021-01-08 | 广州致远电子有限公司 | 实时操作系统的定时处理方法、装置、设备及存储介质 |
CN114416322A (zh) * | 2022-01-21 | 2022-04-29 | 深圳集智数字科技有限公司 | 基于双链表的任务调度方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60223555T2 (de) | Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen | |
US8015566B2 (en) | Attributing energy consumption to individual code threads in a data processing system | |
US7954101B2 (en) | Skipping non-time-critical task according to control table when operating frequency falls | |
US20130290758A1 (en) | Sleep mode latency scaling and dynamic run time adjustment | |
CN112199170B (zh) | 实时操作系统的定时处理方法、装置、设备及存储介质 | |
US12099379B2 (en) | Preemptive wakeup circuit for wakeup from low power modes | |
US6194940B1 (en) | Automatic clock switching | |
KR20150112660A (ko) | 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치 | |
US20030177163A1 (en) | Microprocessor comprising load monitoring function | |
CN118295778A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
US11086690B2 (en) | Semiconductor device and processor control method | |
CN114860418A (zh) | 操作系统时钟源的使用方法、装置、电子设备及存储介质 | |
WO2008146099A1 (en) | Data processing system, method for processing data and computer program product | |
US8826061B2 (en) | Timer, method of implementing system time using a timer, and integrated circuit device including the same | |
EP1405171A1 (en) | Method and apparatus to use task priority to scale processor performance | |
JP2003270371A (ja) | コンピュータシステムの時計装置 | |
EP2166450A1 (en) | A method to dynamically change the frequency of execution of functions within tasks in an ECU | |
GB2619036A (en) | A computer system using energy barrier instructions | |
NO347625B1 (en) | A Computer System Using Energy Barrier Instructions | |
CN114578763A (zh) | 机器人仿真方法、装置、电子设备及存储介质 | |
JP2010165209A (ja) | マルチスレッドプロセッサ装置 | |
JP2000181755A (ja) | 異常検知方法、異常検知装置、マルチタスクシステムおよび記録媒体 | |
JPH0648300B2 (ja) | 電子時計 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220805 |
|
RJ01 | Rejection of invention patent application after publication |