CN104572281A - 时钟中断实现周期性任务抢占的方法及嵌入式系统 - Google Patents
时钟中断实现周期性任务抢占的方法及嵌入式系统 Download PDFInfo
- Publication number
- CN104572281A CN104572281A CN201410856707.2A CN201410856707A CN104572281A CN 104572281 A CN104572281 A CN 104572281A CN 201410856707 A CN201410856707 A CN 201410856707A CN 104572281 A CN104572281 A CN 104572281A
- Authority
- CN
- China
- Prior art keywords
- processor
- interrupt
- high priority
- run
- clock interrupt
- 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
Landscapes
- Microcomputers (AREA)
Abstract
本申请公开了一种使用时钟中断实现周期性任务抢占的方法,包括如下步骤:第1步,处理器正在运行某个进程;第2步,当处理器收到时钟中断请求,则处理器保存正在运行的进程状态;第3步,处理器运行时钟中断处理程序进行计时;第4步,处理器判断是否有高优先级的进程等待处理;如果是,则处理器将时钟中断处理程序的返回地址改为高优先级的进程,这将使时钟中断处理程序返回到该高优先级的进程入口,从而使处理器改为运行该高优先级的进程;如果否,则处理器将之前保存的进程状态调出,继续运行该进程。本申请仅使用时钟中断就实现了抢占式任务调度方法,可以使得仅具有一种中断优先级的单片机满足任务间抢占调度的需求,从而降低硬件成本。
Description
技术领域
本申请涉及一种嵌入式系统以时钟中断实现任务抢占的方法。
背景技术
在计算机科学中,中断(Interrupt)是指处理器接收到来自硬件或软件的信号,提示发生了某个应该被注意的事件。时钟中断是一种最常见的中断,这是指系统时钟定期向CPU发出中断,CPU通过专门的时钟中断处理程序来保持计时。
有些单片机(也称微控制器)仅提供一个中断优先级,该中断优先级通常用于时钟中断。这种单片机处理时钟中断的方法如图1所示,包括如下步骤:
第1步,处理器正在运行某个进程。
第2步,当处理器收到时钟中断请求,则处理器保存正在运行的进程状态。
第3步,处理器运行时钟中断处理程序进行计时。
第4步,处理器将之前保存的进程状态调出,继续运行该进程。
有些单片机提供两个以上的中断优先级,其中最低的中断优先级通常用于时钟中断,稍高的一个中断优先级则可被用于任务调度中断。这种单片机处理两个中断优先级的中断的方法如图2所示,包括如下步骤:
第1步,处理器正在运行某个进程A。
第2步,当处理器收到时钟中断请求,则处理器保存正在运行的进程状态。
第3步,处理器运行时钟中断处理程序进行计时。
第4步,处理器判断是否有尚未处理的任务调度中断请求。
如果是,则处理器运行任务调度中断处理程序执行其他进程B,并由任务调度中断处理程序决定后续运行的进程顺序。
如果否,则处理器将之前保存的进程状态调出,继续运行该进程。
由图1可知,如果单片机仅提供一个中断优先级,则要用于时钟中断,而时钟中断处理程序只能返回原始进程的暂停点。这就意味着,仅具有一个中断优先级的单片机必须在一个进程运行完毕后才能运行下一个进程,进程之间无法抢占处理器资源。由图2可知,如果单片机提供两个以上的中断优先级,则最低的中断优先级用于时钟中断,较高的某一个中断优先级用于任务调度中断,此时高优先级的任务调度中断可以在某个进程尚未运行完毕的时候就运行下一个进程,从而使得进程之间可以抢占处理器资源。
例如,汽车的电子控制单元(ECU)需要实现进程之间的抢占,因此往往采用具有至少两个中断优先级的单片机。而具有的中断优先级越多,则单片机的成本也越高。
发明内容
本申请所要解决的技术问题是提供一种时钟中断实现周期性任务抢占的方法,该方法可以让仅具有一个中断优先级的单片机也能实现进程之间抢占处理器资源。
为解决上述技术问题,本申请时钟中断实现周期性任务抢占的方法包括如下步骤:
第1步,处理器正在运行某个进程。
第2步,当处理器收到时钟中断请求,则处理器保存正在运行的进程状态。
第3步,处理器运行时钟中断处理程序进行计时。
第4步,处理器判断是否有高优先级的进程等待处理。
如果是,则处理器将时钟中断处理程序的返回地址改为高优先级的进程,这将使时钟中断处理程序返回到该高优先级的进程入口,从而使处理器运行该高优先级的进程。当该高优先级的进程运行完毕,处理器将之前保存的进程状态调出,继续运行该进程。
如果否,则处理器将之前保存的进程状态调出,继续运行该进程。
用于实现本申请的时钟中断实现周期性任务抢占的方法的嵌入式系统包括:
——用于运行进程的单元;
——用于在收到时钟中断请求时保存正在运行的进程状态的单元;
——用于运行时钟中断处理程序进行计时的单元;
——用于判断是否有高优先级的进程等待处理的单元;
——用于将时钟中断处理程序的返回地址改为高优先级的进程的单元;
——用于将之前保存的进程状态调出并继续运行该进程的单元。
本申请仅使用时钟中断就实现了抢占式任务调度方法,可以使得仅具有一种中断优先级的单片机满足任务间抢占调度的需求,从而降低硬件成本。由于时钟中断请求是周期性地发送给处理器的,而本申请可以在每个时钟中断处理程序运行时实现进程之间的抢占,因而是周期性地任务抢占。
附图说明
图1是现有的仅具有一个中断优先级的单片机处理时钟中断的方法流程图;
图2是现有的具有两个以上中断优先级的单片机处理两个中断优先级的中断的方法流程图;
图3是本申请的时钟中断实现任务抢占的方法流程图;
图4是本申请的时钟中断实现周期性任务抢占的方法的一个实施例的流程图。
具体实施方式
请参阅图3,本申请的时钟中断实现周期性任务抢占的方法包括如下步骤:
第1步,处理器正在运行某个进程。
第2步,当处理器收到时钟中断请求,则处理器保存正在运行的进程状态。
第3步,处理器运行时钟中断处理程序进行计时。
第4步,处理器判断是否有高优先级的进程等待处理。
如果是,则处理器将时钟中断处理程序的返回地址改为高优先级的进程,这将使时钟中断处理程序返回到该高优先级的进程入口,从而使处理器改为运行该高优先级的进程。当该高优先级的进程运行完毕,处理器将之前保存的进程状态调出,继续运行该进程。
如果否,则处理器将之前保存的进程状态调出,继续运行该进程。
现有的单片机为了实现进程之间的抢占,需要具有至少两种中断优先级,并将任务调度中断设为较高的中断优先级。而本申请可以在仅具有一种中断优先级的单片机上实现任务抢占,这是由于本申请修改了时钟中断处理程序的返回地址,使其不再局限为返回原进程的暂停点,而可以根据等待处理的进程的优先级高低而自动返回具有最高优先级的进程。这样本申请便大大扩展了仅具有一个中断优先级的单片机的应用领域,并极大地节省了单片机的硬件成本。
请参阅图4,这是本申请的一个具体实施例。该实施例中,单片机仅具有一个中断优先级且用于时钟中断,或者单片机虽具有多个中断优先级但能用于操作系统的仅有一个中断优先级且用于时钟中断。假设在一段时间内出现三个进程需要处理,其处理优先级为进程A<进程B<进程C。
首先,处理器运行进程A。当处理器收到时钟中断请求,则处理器保存正在运行的进程A状态,并运行时钟中断处理程序进行计时。
此时,优先级高于进程A的进程B等待处理,则处理器将时钟中断处理程序的返回地址改为进程B,这将使处理器改为运行高优先级的进程B。当处理器收到时钟中断请求,则处理器保存正在运行的进程B状态,并运行时钟中断处理程序进行计时。
此时,优先级高于进程B的进程C等待处理,则处理器将时钟中断处理程序的返回地址改为进程C,这将使处理器改为运行更高优先级的进程C。假设在运行进程C过程中没有优先级高于进程C的其他进程等待处理,那么处理器运行完毕进程C。
此时,处理器返回处理被进程C打断的进程B。假设在运行进程B过程中没有优先级高于进程B的其他进程等待处理,那么处理器运行完毕进程B。
此时,处理器返回处理被进程B打断的进程A。
由以上实施例可知,本申请仅由时钟中断就可以实现不同优先级的多个进程之间抢占处理器资源,使具有高处理优先级的进程优先享有处理器资源,而具有低处理优先级的进程延后享有处理器资源。
用于实现本申请的时钟中断实现任务抢占的方法的嵌入式系统包括:
——用于运行进程的单元;
——用于在收到时钟中断请求时保存正在运行的进程状态的单元;
——用于运行时钟中断处理程序进行计时的单元;
——用于判断是否有高优先级的进程等待处理的单元;
——用于将时钟中断处理程序的返回地址改为高优先级的进程的单元;
——用于将之前保存的进程状态调出并继续运行该进程的单元。
所述嵌入式系统仅具有一个中断优先级,且该中断优先级用于时钟中断。这样本申请可以使得仅具有一种中断优先级的单片机满足任务间抢占调度的需求,
或者,所述嵌入式系统具有多个中断优先级,但仅有一个最低中断优先级用于该嵌入式系统的操作系统(或固件),且该最低中断优先级用于时钟中断。这样本申请可以使得具有两种以上中断优先级的单片机的操作系统(或固件)仅占用最低中断优先级,而将其他中断优先级用于应用软件。
以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (4)
1.一种时钟中断实现周期性任务抢占的方法,其特征是,包括如下步骤:
第1步,处理器正在运行某个进程;
第2步,当处理器收到时钟中断请求,则处理器保存正在运行的进程状态;
第3步,处理器运行时钟中断处理程序进行计时;
第4步,处理器判断是否有高优先级的进程等待处理;
如果是,则处理器将时钟中断处理程序的返回地址改为高优先级的进程,这将使时钟中断处理程序返回到该高优先级的进程入口,从而使处理器改为运行该高优先级的进程;当该高优先级的进程运行完毕,处理器将之前保存的进程状态调出,继续运行该进程;
如果否,则处理器将之前保存的进程状态调出,继续运行该进程。
2.一种嵌入式系统,其特征是,包括:
——用于运行进程的单元;
——用于在收到时钟中断请求时保存正在运行的进程状态的单元;
——用于运行时钟中断处理程序进行计时的单元;
——用于判断是否有高优先级的进程等待处理的单元;
——用于将时钟中断处理程序的返回地址改为高优先级的进程的单元;
——用于将之前保存的进程状态调出并继续运行该进程的单元。
3.根据权利要求2所述的嵌入式系统,其特征是,所述嵌入式系统仅具有一个中断优先级,且该中断优先级用于时钟中断。
4.根据权利要求2所述的嵌入式系统,其特征是,,所述嵌入式系统具有多个中断优先级,但仅有一个最低中断优先级用于该嵌入式系统的操作系统或固件,且该最低中断优先级用于时钟中断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410856707.2A CN104572281A (zh) | 2014-12-29 | 2014-12-29 | 时钟中断实现周期性任务抢占的方法及嵌入式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410856707.2A CN104572281A (zh) | 2014-12-29 | 2014-12-29 | 时钟中断实现周期性任务抢占的方法及嵌入式系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104572281A true CN104572281A (zh) | 2015-04-29 |
Family
ID=53088428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410856707.2A Pending CN104572281A (zh) | 2014-12-29 | 2014-12-29 | 时钟中断实现周期性任务抢占的方法及嵌入式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572281A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291552A (zh) * | 2017-06-27 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN111813531A (zh) * | 2020-08-31 | 2020-10-23 | 北京国科环宇科技股份有限公司 | 一种操作系统时钟调度方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11178077A (ja) * | 1997-12-16 | 1999-07-02 | Nec Eng Ltd | クロック従属選択回路 |
CN101639791A (zh) * | 2009-08-31 | 2010-02-03 | 浙江大学 | 一种改善嵌入式实时操作系统中断延迟的方法 |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作系统的任务调度方法 |
US20120310740A1 (en) * | 2011-05-31 | 2012-12-06 | Strode Maureen E | Mechanism for Geographically-Aware Electronic Traveling Advertisements |
CN103744726A (zh) * | 2014-01-02 | 2014-04-23 | 西北工业大学 | 一种Windows系统实时扩展的两级调度方法 |
-
2014
- 2014-12-29 CN CN201410856707.2A patent/CN104572281A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11178077A (ja) * | 1997-12-16 | 1999-07-02 | Nec Eng Ltd | クロック従属選択回路 |
CN101639791A (zh) * | 2009-08-31 | 2010-02-03 | 浙江大学 | 一种改善嵌入式实时操作系统中断延迟的方法 |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作系统的任务调度方法 |
US20120310740A1 (en) * | 2011-05-31 | 2012-12-06 | Strode Maureen E | Mechanism for Geographically-Aware Electronic Traveling Advertisements |
CN103744726A (zh) * | 2014-01-02 | 2014-04-23 | 西北工业大学 | 一种Windows系统实时扩展的两级调度方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291552A (zh) * | 2017-06-27 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN111813531A (zh) * | 2020-08-31 | 2020-10-23 | 北京国科环宇科技股份有限公司 | 一种操作系统时钟调度方法及系统 |
CN111813531B (zh) * | 2020-08-31 | 2020-11-27 | 北京国科环宇科技股份有限公司 | 一种操作系统时钟调度方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9218203B2 (en) | Packet scheduling in a multiprocessor system using inter-core switchover policy | |
KR100977662B1 (ko) | 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서 | |
EP2819009A3 (en) | Task scheduling for highly concurrent analytical and transaction workloads | |
US8056083B2 (en) | Dividing a computer job into micro-jobs for execution | |
CN104123179A (zh) | 中断控制方法及其电子系统 | |
CN101246438A (zh) | 一种对称多处理系统中进程与中断的处理方法及装置 | |
US9513953B2 (en) | Reducing virtual machine suspension time in checkpoint system | |
CN103389913B (zh) | 一种用于Linux系统的实时中断处理方法 | |
MY157557A (en) | Hardware resource management within a data processing system | |
US10467054B2 (en) | Resource management method and system, and computer storage medium | |
US20080195785A1 (en) | Interrupt Control | |
CN105117284A (zh) | 一种基于优先级比例队列的工作线程的调度方法 | |
WO2015188649A1 (zh) | 一种虚拟cpu与物理cpu之间的映射方法及电子设备 | |
CN104904169A (zh) | 调整线程优先级以改进点到点(p2p)器件之间的吞吐量 | |
CN105373425A (zh) | 一种嵌入式Linux系统性能优化的方法及装置 | |
CN104572281A (zh) | 时钟中断实现周期性任务抢占的方法及嵌入式系统 | |
CN108804212B (zh) | 用于将任务安排成循环的进度表的方法和装置 | |
US20150089101A1 (en) | Managing network interface controller-generated interrupts | |
EP2487590A3 (en) | Processor, computational node, parallel computer system, and arithmetic processing method | |
CN110908794A (zh) | 基于任务窃取算法的任务窃取方法及系统 | |
CN103761004B (zh) | 一种改善触控屏触控灵敏度的方法、触控屏及触控终端 | |
CN103765399A (zh) | 在多核系统中分配中断的方法和设备 | |
KR101377195B1 (ko) | 컴퓨터 마이크로 작업 | |
KR20120065097A (ko) | 단말 가상화 환경에서 사용자 입력 처리 성능 향상을 위한 인터럽트 처리 장치 및 그 방법 | |
CN109964206B (zh) | 用于处理任务的设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |