CN101216785A - 根据简单优先级继承方案的多任务方法及其嵌入式系统 - Google Patents
根据简单优先级继承方案的多任务方法及其嵌入式系统 Download PDFInfo
- Publication number
- CN101216785A CN101216785A CNA2007103004269A CN200710300426A CN101216785A CN 101216785 A CN101216785 A CN 101216785A CN A2007103004269 A CNA2007103004269 A CN A2007103004269A CN 200710300426 A CN200710300426 A CN 200710300426A CN 101216785 A CN101216785 A CN 101216785A
- Authority
- CN
- China
- Prior art keywords
- task
- priority
- resource
- tasks
- embedded system
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000000052 comparative effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- UPLPHRJJTCUQAY-WIRWPRASSA-N 2,3-thioepoxy madol Chemical compound C([C@@H]1CC2)[C@@H]3S[C@@H]3C[C@]1(C)[C@@H]1[C@@H]2[C@@H]2CC[C@](C)(O)[C@@]2(C)CC1 UPLPHRJJTCUQAY-WIRWPRASSA-N 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical 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
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47J—KITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
- A47J27/00—Cooking-vessels
- A47J27/04—Cooking-vessels for cooking food in steam; Devices for extracting fruit juice by means of steam ; Vacuum cooking vessels
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47J—KITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
- A47J27/00—Cooking-vessels
- A47J27/14—Cooking-vessels for use in hotels, restaurants, or canteens
- A47J27/16—Cooking-vessels for use in hotels, restaurants, or canteens heated by steam
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24C—DOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
- F24C15/00—Details
- F24C15/32—Arrangements of ducts for hot gases, e.g. in or around baking ovens
- F24C15/322—Arrangements of ducts for hot gases, e.g. in or around baking ovens with forced circulation
- F24C15/327—Arrangements of ducts for hot gases, e.g. in or around baking ovens with forced circulation with air moisturising
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47J—KITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
- A47J27/00—Cooking-vessels
- A47J27/04—Cooking-vessels for cooking food in steam; Devices for extracting fruit juice by means of steam ; Vacuum cooking vessels
- A47J2027/043—Cooking-vessels for cooking food in steam; Devices for extracting fruit juice by means of steam ; Vacuum cooking vessels for cooking food in steam
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Food Science & Technology (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
提供了一种根据简单优先级继承方案的多任务方法及其嵌入式系统。提供了一种根据多个任务中每个任务的优先级来执行所述多个任务的多任务方法及其嵌入式系统。确定将被当前任务使用的资源是否正被另一任务使用;根据确定结果将当前的优先级与正使用所述资源的任务的优先级进行比较;以及根据比较结果,将正使用所述资源的任务的优先级增加到尝试占据CPU的所有任务的优先级中的最高优先级。因此,能够解决BPI和IIP中的传统问题。
Description
技术领域
本发明涉及一种根据多个任务中的每个任务的优先级执行所述多个任务的多任务方法及其嵌入式系统。
背景技术
可将在嵌入式系统中的操作系统(OS)分成实时OS(RTOS)和非RTOS。商业化的OS中代表性的RTOS是VxWorks(www.windriver.com)、pSOS(www.windriver.com)、VRTX(www.mento.com)、QNX(www.qnx.com)、Nucleus(www.atinudclus.com)、MC/OSII(www.mcos-ii.com)和OSE(www.ose.com)。这些RTOS通常支持用于停止执行特定任务并首先执行另一任务的抢占式(preempted)多任务。
为了使RTOS支持抢占式多任务,每个任务必须具有优先级。RTOS中的实时表示特定任务的执行结束时间必须在期望的调度(schedule)中。具体地讲,当必须比其他任务更严格地观测特定任务的执行结束时间时,将所述特定任务的优先级设置的比其他任务的优先级高。例如,任务的执行周期越短,必须越严格地观测该任务的执行结束时间。如果将任务的优先级反转,则任务的执行结束时间无法在期望的调度中,这导致RTOS中的实时特性破坏。
图1是描述在RTOS中的优先级反转的时序图。
参照图1,存在3个任务,并标记了通过占据中央处理单元(CPU)而被执行的每个任务的持续时间。在这3个任务中具有最低优先级的第一任务抢占CPU。在占据CPU的同时,第一任务锁定特定资源的mutex(互斥对象)。具体地讲,在图1的CPU占据持续时间内,将mutex被锁定的部分标记为暗色。mutex是用于防止多个任务在相同时间使用单个资源的对象。任务锁定预定资源的mutex的事实表示任务拥有所述预定资源的mutex,即只有该任务能使用所述预定资源。另外,只有该任务能解除所述预定资源的mutex锁定。
其后,优先级比第一任务高的第三任务抢占CPU。在占据CPU的同时,第三任务尝试锁定资源的mutex。然而,由于资源已被第一任务进行了mutex锁定,所以第三任务无法使用所述资源。结果,第三任务的执行被阻塞,第一任务的执行重新开始。其后,优先级比第一任务高并且比第三任务低的第二任务抢占CPU。第二任务不需要资源。因此,第二任务没有尝试资源的mutex锁定,并连续占据CPU,直到第二任务的执行结束为止。结果,发生了由于优先级比第三任务低的第二任务的执行而导致第三任务的执行被延迟的效果(即,优先级反转)。
为了解决优先级反转,已经提出了多种方案。代表性的方案是基本优先级反转(BPI)方案和立即继承协议(Immediate Inheritance Protocol,IIP)方案。
图2是在传统的嵌入式系统中根据BPI方案的多任务方法的流程图。具体地讲,图2中示出的多任务进程是整个多任务进程中的mutex锁定设置进程。
参照图2,在操作21,嵌入式系统从准备执行的任务中搜索具有最高优先级的任务(以下,称为“当前任务”)。
在操作22,嵌入式系统确定是否存在将被在操作21中找到的当前任务使用的资源的mutex锁定。如果在操作22中确定不存在mutex锁定,则进程进行到操作23,如果在操作22中确定存在mutex锁定,则进程进行到操作25。
在操作23,嵌入式系统关于当前任务锁定所述资源的mutex。
在操作24,嵌入式系统通过使用mutex锁定的资源来执行当前任务。
在操作25,嵌入式系统将当前任务的优先级与正在使用所述资源的任务的优先级进行比较。如果当前任务的优先级高于拥有所述资源的mutex锁定的资源的优先级,则进程进行到操作26,否则进程进行到操作28。
在操作26,嵌入式系统将拥有所述资源的mutex锁定的任务的优先级增加到当前任务的优先级。
在操作27,嵌入式系统将在拥有所述资源的mutex锁定的任务中所嵌套的任务的优先级增加到当前任务的优先级。
在操作28,嵌入式系统控制当前任务等待,直到资源的mutex锁定不存在为止,并且进程进行到操作22。在任务中嵌套的任务是处于后面的任务使用通过执行前面的任务所获得的结果的关系中的任务。具体地讲,这种优先级增加方案被称为优先级继承,现在将对其进行描述。
图3是描述BPI中的优先级继承的示图。
参照图3,第一任务使用与第二mutex相应的资源,第二任务输出与第二mutex相应的资源,并使用与第四mutex相应的资源,第四任务输出与第四mutex相应的资源。在这种情况下,如果只有第一任务的优先级增加到当前任务的优先级,则第一任务的执行不被具有比当前任务的优先级低的优先级的任务阻塞,但第二任务或第四任务的执行可能被具有比当前任务的优先级低的优先级的任务阻塞。结果,不输出与作为通过执行第二任务所获得的结果的第二mutex相应的资源或与作为通过执行第四任务所获得的结果的第四mutex相应的资源,因此,第一任务不可以使用与第二mutex相应的资源。
因此,嵌入式系统必须将在处理预定资源的mutex锁定的任务中嵌套的所有任务的优先级增加到当前任务的优先级。然而,这对嵌入式系统而言是相当大的开销,并且可能严重破坏嵌入式系统的实时特性。
图4是在传统的嵌入式系统中根据IIP方案的多任务方法的流程图。具体地讲,图4中示出的多任务进程是整个多任务进程中的mutex锁定设置进程。
参照图4,在操作41,嵌入式系统从已经准备执行的任务中搜索具有最高优先级的任务(以下,称为“当前任务”)。
在操作42,嵌入式系统确定是否存在将被在操作41中找到的当前任务使用的资源的mutex锁定。如果在操作42中确定不存在mutex锁定,则进程进行到操作43,如果在操作42中确定存在mutex锁定,则进程进行到操作46。
在操作43,嵌入式系统关于当前任务锁定所述资源的mutex。
在操作44,嵌入式系统将拥有mutex锁定的当前任务的优先级增加到期望抢占CPU的所有任务的优先级中的最高优先级。
在操作45,嵌入式系统通过使用mutex锁定的资源来执行当前任务。
在操作46,嵌入式系统控制当前任务等待,直到资源的mutex锁定不存在为止,并且进程进行到操作42。
如上所述,IIP方案可能非常简单并且有效。然而,由于处理mutex锁定的当前任务的优先级被无条件地增加,所以如果没有发生优先级反转,即如果当前任务使用与优先级比当前任务高的任务所使用的资源不同的资源,则优先级比当前任务高的任务的执行可能被延迟到当前任务的执行完成。具体地讲,IIP方案可能由于在频繁出现mutex锁定持续时间的进程中具有较低优先级的任务的执行而导致频繁阻塞具有较高优先级的任务的执行,这严重破坏了嵌入式系统的实时特性。
发明内容
本实施例提供了一种多任务方法和嵌入式系统,以解决传统的基本优先级反转(BPI)和立即继承协议(IIP)方案的问题。
本实施例还提供了一种存储有用于执行所述多任务方法的计算机可读程序的计算机可读记录介质。
其他方面和/或优点将在下面的描述中被部分阐述,部分地,从描述中将清楚,或可通过实施本发明而被了解。
通过提供一种根据多个任务中每个任务的优先级来执行所述多个任务的多任务方法来实现以上和/或其他方面,所述多任务方法包括:确定将被所述多个任务中的第一任务使用的资源是否正被第二任务使用;根据确定结果将第一任务的优先级与第二任务的优先级进行比较;以及根据比较结果将第二任务的优先级增加到所述多个任务的所有优先级中的最高优先级。
根据本发明的另一方面,提供了一种存储有使得处理器执行所述多任务方法的计算机可读程序的计算机可读记录介质。
通过提供一种根据多个任务中每个任务的优先级来执行所述多个任务的嵌入式系统来实现以上和/或其他方面,所述嵌入式系统的中央处理单元(CPU)包括:任务处理单元,确定将被所述多个任务中的第一任务使用的资源是否正被第二任务使用;优先级处理单元,根据确定结果将第一任务的优先级与第二任务的优先级进行比较,并根据比较结果将第二任务的优先级增加到所述多个任务的所有优先级中的最高优先级。
附图说明
通过参照附图详细描述本发明的实施例,以上和其他方面和优点将变得更清楚,其中:
图1是描述在实时操作系统(RTOS)中的优先级反转的时序图;
图2是在传统的嵌入式系统中根据基本优先级反转(BPI)方案的多任务方法的流程图;
图3是描述BPI中的优先级继承的示图;
图4是在传统的嵌入式系统中根据立即继承协议(IIP)方案的多任务方法的流程图;
图5是描述根据实施例的简单优先级继承(SPI)方案的时序图;
图6是根据实施例的嵌入式系统的框图;
图7是根据实施例的多任务方法的流程图;和
图8是根据实施例的在执行图7中示出的设置mutex(互斥对象)锁定的进程之后解除mutex锁定的进程的流程图。
具体实施方式
现在将详细阐述实施例,其示例在附图中示出,其中,相同的标号始终表示相同的部件。以下将通过参照附图来描述实施例以解释本发明。
图5是描述根据实施例的简单优先级继承(SPI)方案的时序图。
参照图5,存在3个任务,并标记了通过占据中央处理单元(CPU)执行每个任务的持续时间。3个任务中具有最低优先级的第一任务抢占CPU。在占据CPU的同时,第一任务锁定特定资源的mutex(互斥对象)。具体地讲,在图5的CPU占据持续时间中,将锁定mutex的部分标记为暗色。其后,优先级比第一任务高的第三任务抢占CPU。在占据CPU的同时,第三任务尝试锁定资源的mutex。然而,由于所述资源被第一任务mutex锁定,所以第三资源无法使用所述资源。结果,第三任务的执行被阻塞,并且第一任务的执行重新开始。
与BPI方案不同,根据本发明的实施例的SPI方案将第一任务的优先级增加到尝试占据CPU的所有任务的优先级中的最高优先级,而不是将第一任务的优先级增加到第三任务的优先级。另外,与IIP方案不同,只有第三任务尝试锁定mutex,即只有发生优先级反转,SPI方案才将第一任务的优先级增加到所述最高优先级,而不是无条件地将第一任务的优先级增加到所述最高优先级。当使用SPI方案时,由于将第一任务的优先级增加到所述最高优先级,所以能够解决由于优先级继承所导致的系统开销增加的BPI方案的问题。另外,由于只有发生优先级反转时才将第一任务的优先级增加到所述最高优先级,所以能够解决IIP方案的以下问题:由于具有较低优先级的任务的执行,导致频繁阻塞具有较高优先级的任务的执行。
以下,将详细描述根据SPI方案的多任务方法和嵌入式系统。
图6是根据实施例的嵌入式系统的框图。
参照图6,所述嵌入式系统包括:CPU 61、存储器62、输入/输出(I/O)装置63和总线64。然而,图6中示出的嵌入式系统的结构仅仅是用于描述当前实施例的最简单的示例,本领域的普通技术人员应该理解,还可包括其他部件。
CPU 61根据在存储器62中存储的实施操作系统(RTOS)经总线64从I/O装置63接收数据。CPU 61还执行任务以处理所接收的数据。CPU 61还经总线64将通过处理任务所获得的结果输出到I/O装置63。具体地讲,CPU61支持根据多个任务T1、T2至TN中每个任务的优先级来执行所述多个任务T1、T2至TN的多任务功能。
根据当前实施例,CPU 61包括:任务处理单元611、优先级处理单元612和资源处理单元613。然而,图6中示出的CPU 61的结构仅为用于描述当前实施例的最简单示例之一,本领域的普通技术人员应该理解,还可包括其他部件。
任务处理单元611确定在具有由优先级处理单元612分配的优先级的任务中具有最高优先级的任务是否准备被执行。如果具有最高优先级的任务没有准备被执行,则任务处理单元611确定具有第二最高优先级的任务是否准备被执行。通过重复上述过程,任务处理单元611在准备被执行的任务中搜索具有最高优先级的任务(以下,称为“当前任务”)。
另外,任务处理单元611通过使用资源处理单元613许可给当前任务的资源来执行当前任务。更详细地讲,任务处理单元611通过使用由资源处理单元613进行mutex锁定的资源来执行当前任务。另外,如果作为优先级处理单元612执行的比较结果,当前任务的优先级不高于使用所述资源的任务的优先级,则任务处理单元611控制当前任务等待,直到所述资源的使用权限被解除为止。更详细地讲,如果当前任务的优先级不高于拥有所述资源的mutex锁定的任务的优先级,则任务处理单元611控制当前任务等待,直到所述资源的mutex锁定不存在为止。另外,如果资源处理单元613解除了当前任务所拥有的mutex锁定,则任务处理单元611激活等待任务。
优先级处理单元612通过考虑多个任务的属性来向所述多个任务分配优先级。例如,任务的执行周期越短,优先级处理单元612向该任务分配越高的优先级。另外,如果作为资源处理单元613执行的确定结果,另一任务正在使用所述资源,则优先级处理单元612将当前任务的优先级与使用所述资源的优先级进行比较。更详细地讲,如果作为资源处理单元613执行的确定结果,存在将被当前任务使用的资源的mutex锁定,则优先级处理单元612将当前任务的优先级与拥有所述资源的mutex锁定的任务的优先级进行比较。
如果作为比较结果,当前任务的优先级高于使用所述资源的任务的优先级,则优先级处理单元612将使用所述资源的任务的优先级增加到尝试占据CPU 61的所有任务的优先级中的最高优先级。更详细地讲,如果当前任务的优先级高于拥有所述资源的mutex锁定的任务的优先级,则CPU 61将拥有所述资源的mutex锁定的任务的优先级增加到尝试占据CPU 61的所有任务的优先级中的最高优先级。另外,如果任务处理单元611执行的当前任务结束,则优先级处理单元612确定当前任务的优先级是否已经增加,如果当前任务的优先级已经增加,则优先级处理单元612将当前任务的优先级恢复为原始优先级。
资源处理单元613确定将被由任务处理单元611找到的当前任务使用的资源是否正被另一任务使用。更详细地讲,资源处理单元613通过确定是否存在将被当前任务使用的资源的mutex锁定,来确定将被当前任务使用的所述资源是否正被另一任务使用。无法被多个任务同时使用的资源的代表性示例是存储器62的特定区域M1和M2。如果多个任务同时使用存储器62的特定区域,则每当执行所述多个任务中的每个任务时,所述特定区域中存储的数据就改变,这导致每个任务的错误结果。
如果作为确定结果,资源没有被另一任务使用,则资源处理单元613将使用所述资源的使用权限授予当前任务。更详细地讲,如果作为确定结果,不存在所述资源的mutex锁定,则资源处理单元613通过锁定所述资源的mutex来将所述资源的使用权限授予当前任务。如果确定当前任务的优先级被优先级处理单元612恢复或者没有增加,则资源处理单元613解除当前任务拥有的mutex锁定。
图7是根据实施例的多任务方法的流程图。
参照图7,所述多任务方法包括被图6中示出的嵌入式系统顺序处理的操作。因此,尽管没有全面描述,但是还可将与图6中示出的嵌入式系统有关的内容应用于根据当前实施例的多任务方法。具体地讲,图7中示出的多任务进程是整个多任务进程的mutex锁定设置进程。
在操作71,所述嵌入式系统从已经准备被执行的任务中搜索具有最高优先级的任务(以下,称为“当前任务”)。
在操作72,所述嵌入式系统确定是否存在将被在操作71中找到的当前任务使用的资源的mutex锁定。如果在操作72确定不存在mutex锁定,则进程进行到操作73,如果在操作72确定mutex锁定存在,则进程进行到操作75。
在操作73,所述嵌入式系统锁定所述资源的mutex。
在操作74,所述嵌入式系统通过使用被mutex锁定的资源来执行当前任务。
在操作75,所述嵌入式系统将当前任务的优先级与使用所述资源的任务的优先级进行比较。如果当前任务的优先级高于拥有所述资源的mutex锁定的任务的优先级,则进程进行到操作76,否则进程进行到操作77。
在操作76,所述嵌入式系统将拥有所述资源的mutex锁定的任务的优先级增加到正尝试占据CPU 61的所有任务的优先级中的最高优先级。
在操作77,所述嵌入式系统控制当前任务等待,直到所述资源的mutex锁定不存在为止,并且进程进行到操作72。
图8是根据实施例的在执行图7中示出的mutex锁定设置进程之后解除mutex锁定的进程的流程图。
参照图8,如果当前任务的执行结束,则在操作81,所述嵌入式系统确定当前任务的优先级是否已经增加。如果在操作81确定当前任务的优先级已经增加,则进程进行到操作82,否则进程进行到操作83。
在操作82,所述嵌入式系统将当前任务的优先级恢复为原始优先级。
在操作83,所述嵌入式系统解除所述资源的mutex锁定。
在操作84,所述嵌入式系统激活等待任务。
本领域的技术人员应该理解,上述任务可被称为线程,并被应用于所述实施例。通常,任务是将CPU的使用顺序授予多个进程的调度的最小单位,并且线程是作为进程的一部分被执行的调度的最小单位。
可将所述实施例编写为计算机程序,并可在通过使用计算机可读记录介质执行所述程序的通用数字计算机中被实现。所述计算机可读记录介质的示例包括磁存储介质(例如,ROM、软盘、硬盘等)、光学记录介质(例如,CD-ROM或DVD)和诸如载波(例如,通过互联网的传输)的介质。
如上所述,根据本实施例,与BPI方案不同,通过将拥有mutex锁定的任务的优先级增加到尝试占据CPU的所有任务的优先级中的最高优先级,而不是将拥有mutex锁定的任务的优先级增加到当前任务的优先级,能够解决由于优先级继承所导致的系统开销增加的BPI方案的问题。发生这种情况是因为拥有mutex锁定的所有任务具有最高优先级,所以即使当多个mutex锁定相互重叠时,也不需要优先级继承。
另外,与IIP方案不同,只有将被当前任务使用的资源正被拥有mutex锁定的任务使用,即只有发生优先级反转,才将拥有mutex锁定的任务的优先级增加到最高优先级,而不是无条件地将拥有mutex锁定的任务的优先级增加到最高优先级,能够解决由于具有较低优先级的任务的执行导致频繁阻塞具有较高优先级的任务的执行的IIP方案的问题。
尽管已经显示和描述了实施例,但是本领域的技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对该实施例进行改变,本发明的范围在权利要求及其等同物中被限定。
Claims (11)
1.一种根据多个任务中每个任务的优先级来执行所述多个任务的多任务方法,所述多任务方法包括:
确定将被所述多个任务中的第一任务使用的资源是否正被第二任务使用;
根据确定结果将第一任务的优先级与第二任务的优先级进行比较;以及
根据比较结果将第二任务的优先级增加到所述多个任务的所有优先级中的最高优先级。
2.如权利要求1所述的多任务方法,其中,第一任务是准备被执行的任务中具有最高优先级的任务。
3.如权利要求1所述的多任务方法,其中,所述确定步骤包括:通过确定是否存在将被第一任务使用的资源的互斥对象锁定来确定所述资源是否正被第二任务使用。
4.如权利要求1所述的多任务方法,还包括:
当确定所述资源没有正被第二任务使用时,向第一任务授予所述资源的使用权限;以及
通过使用许可给第一任务的资源来执行第一任务。
5.如权利要求4所述的多任务方法,其中,所述授予步骤包括:通过为第一任务锁定所述资源的互斥对象,来向第一任务授予所述资源的使用权限。
6.一种存储有计算机可读程序的计算机可读存储介质,所述计算机程序使得处理器根据多个任务中每个任务的优先级执行所述多个任务的多任务方法,所述多任务方法包括:
确定将被所述多个任务中的第一任务使用的资源是否正被第二任务使用;
根据确定结果将第一任务的优先级与第二任务的优先级进行比较;以及
根据比较结果将第二任务的优先级增加到所述多个任务的所有优先级中的最高优先级。
7.一种根据多个任务中每个任务的优先级来执行所述多个任务的嵌入式系统,所述嵌入式系统的中央处理单元包括:
任务处理单元,确定将被所述多个任务中的第一任务使用的资源是否正被第二任务使用;以及
优先级处理单元,根据确定结果将第一任务的优先级与第二任务的优先级进行比较,并根据比较结果将第二任务的优先级增加到所述多个任务的所有优先级中的最高优先级。
8.如权利要求7所述的嵌入式系统,其中,第一任务是准备被执行的任务中具有最高优先级的任务。
9.如权利要求7所述的嵌入式系统,其中,任务处理单元通过确定是否存在将被第一任务使用的资源的互斥对象锁定来确定所述资源是否正被第二任务使用。
10.如权利要求7所述的嵌入式系统,还包括:
资源处理单元,如果确定所述资源没有正被第二任务使用,则所述资源处理单元向第一任务授予所述资源的使用权限,
其中,所述任务处理单元通过使用许可给第一任务的资源来执行第一任务。
11.如权利要求10所述的嵌入式系统,其中,资源处理单元通过为第一任务锁定所述资源的互斥对象,来向第一任务授予所述资源的使用权限。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070001699 | 2007-01-05 | ||
KR10-2007-0001699 | 2007-01-05 | ||
KR1020070001699A KR20080064608A (ko) | 2007-01-05 | 2007-01-05 | SPI(Simple PriorityInheritance) 방식에 따른 멀티태스킹 방법 및임베디드 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101216785A true CN101216785A (zh) | 2008-07-09 |
CN101216785B CN101216785B (zh) | 2016-08-24 |
Family
ID=39387248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710300426.9A Active CN101216785B (zh) | 2007-01-05 | 2007-12-27 | 根据简单优先级继承方案的多任务方法及其嵌入式系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8612982B2 (zh) |
EP (1) | EP1942413B1 (zh) |
KR (1) | KR20080064608A (zh) |
CN (1) | CN101216785B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887383A (zh) * | 2010-06-30 | 2010-11-17 | 中山大学 | 一种进程实时调度方法 |
CN103207809A (zh) * | 2012-01-13 | 2013-07-17 | 金蝶软件(中国)有限公司 | 清除互斥锁的方法及系统 |
CN103226480A (zh) * | 2012-01-05 | 2013-07-31 | 三星电子株式会社 | 用于动态地重新配置多核系统的操作系统的设备和方法 |
CN103870330A (zh) * | 2014-03-03 | 2014-06-18 | 大唐移动通信设备有限公司 | 一种基于dsp的任务调度方法和装置 |
CN107102894A (zh) * | 2017-04-07 | 2017-08-29 | 百度在线网络技术(北京)有限公司 | 任务调度方法、装置和系统 |
CN107133092A (zh) * | 2017-05-24 | 2017-09-05 | 努比亚技术有限公司 | 多线程同步处理方法、终端及计算机可读存储介质 |
CN107656676A (zh) * | 2011-12-28 | 2018-02-02 | 三星电子株式会社 | 用户装置的多任务方法和设备 |
WO2019001332A1 (zh) * | 2017-06-27 | 2019-01-03 | 阿里巴巴集团控股有限公司 | 任务的优先级处理方法和处理装置 |
CN111913809A (zh) * | 2020-07-28 | 2020-11-10 | 北京百度网讯科技有限公司 | 多线程场景下的任务执行方法、装置、设备和存储介质 |
CN111930488A (zh) * | 2020-09-11 | 2020-11-13 | 北京国科环宇科技股份有限公司 | 一种操作系统任务调度的优先级继承方法及系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429657B2 (en) * | 2008-04-28 | 2013-04-23 | Oracle International Corporation | Global avoidance of hang states via priority inheritance in multi-node computing system |
WO2009157136A1 (ja) * | 2008-06-24 | 2009-12-30 | パナソニック株式会社 | アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法 |
KR20100018289A (ko) * | 2008-08-06 | 2010-02-17 | 삼성전자주식회사 | 멀티 태스킹 성능 예측 방법 및 시스템 |
KR101232081B1 (ko) * | 2010-02-18 | 2013-02-08 | 삼성에스엔에스 주식회사 | 내비게이션 시스템의 멀티태스킹 관리 장치 및 그 방법 |
US8479207B2 (en) * | 2011-02-25 | 2013-07-02 | Qualcomm Incorporated | Priority inheritance in multithreaded systems |
CN103164276B (zh) * | 2013-03-27 | 2016-03-30 | 北京经纬恒润科技有限公司 | 对受保护对象进行嵌套处理的方法及装置 |
US9582340B2 (en) | 2014-01-09 | 2017-02-28 | Red Hat, Inc. | File lock |
US11157332B2 (en) * | 2016-07-06 | 2021-10-26 | International Business Machines Corporation | Determining when to release a lock from a first task holding the lock to grant to a second task waiting for the lock |
CN109522101B (zh) * | 2017-09-20 | 2023-11-14 | 三星电子株式会社 | 用于调度多个操作系统任务的方法、系统和/或装置 |
US10860387B2 (en) * | 2019-03-15 | 2020-12-08 | Red Hat, Inc. | Dynamic distributed work allocation |
KR20230092151A (ko) | 2021-12-17 | 2023-06-26 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083063A1 (en) * | 2000-12-26 | 2002-06-27 | Bull Hn Information Systems Inc. | Software and data processing system with priority queue dispatching |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4048638B2 (ja) * | 1998-04-27 | 2008-02-20 | ソニー株式会社 | スケジューリング装置及び方法並びに記録媒体 |
JP4170227B2 (ja) * | 2002-01-24 | 2008-10-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多重処理環境における処理の実行 |
JP2003345612A (ja) * | 2002-05-28 | 2003-12-05 | Sony Corp | 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム |
JP3953449B2 (ja) | 2003-08-26 | 2007-08-08 | 富士通株式会社 | タスク管理プログラムおよびタスク制御装置 |
US7690003B2 (en) | 2003-08-29 | 2010-03-30 | Fuller Jeffrey C | System and method for increasing data throughput using thread scheduling |
KR100595704B1 (ko) * | 2004-11-15 | 2006-07-03 | 엘지전자 주식회사 | 휴대단말기에서의 리소스 관리 방법 |
KR100848323B1 (ko) * | 2005-12-08 | 2008-07-24 | 한국전자통신연구원 | 임베디드 운영체제 커널의 실시간 성능을 향상시키는 방법 |
-
2007
- 2007-01-05 KR KR1020070001699A patent/KR20080064608A/ko active Search and Examination
- 2007-11-26 US US11/984,993 patent/US8612982B2/en active Active
- 2007-12-27 CN CN200710300426.9A patent/CN101216785B/zh active Active
-
2008
- 2008-01-07 EP EP08100138.0A patent/EP1942413B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083063A1 (en) * | 2000-12-26 | 2002-06-27 | Bull Hn Information Systems Inc. | Software and data processing system with priority queue dispatching |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887383B (zh) * | 2010-06-30 | 2013-08-21 | 中山大学 | 一种进程实时调度方法 |
CN101887383A (zh) * | 2010-06-30 | 2010-11-17 | 中山大学 | 一种进程实时调度方法 |
US10452427B2 (en) | 2011-12-28 | 2019-10-22 | Samsung Electronics Co., Ltd. | Method and apparatus for switching tasks using a displayed task stack |
US11675618B2 (en) | 2011-12-28 | 2023-06-13 | Samsung Electronics Co., Ltd. | Method and apparatus for switching tasks |
US11099888B2 (en) | 2011-12-28 | 2021-08-24 | Samsung Electronics Co., Ltd. | Method and apparatus for switching tasks |
CN107656676A (zh) * | 2011-12-28 | 2018-02-02 | 三星电子株式会社 | 用户装置的多任务方法和设备 |
US10108451B2 (en) | 2011-12-28 | 2018-10-23 | Samsung Electronics Co., Ltd. | Method and apparatus for switching tasks using a displayed task stack |
US10534638B2 (en) | 2011-12-28 | 2020-01-14 | Samsung Electronics Co., Ltd. | Method and apparatus for switching tasks using a displayed task stack |
CN103226480A (zh) * | 2012-01-05 | 2013-07-31 | 三星电子株式会社 | 用于动态地重新配置多核系统的操作系统的设备和方法 |
CN103207809A (zh) * | 2012-01-13 | 2013-07-17 | 金蝶软件(中国)有限公司 | 清除互斥锁的方法及系统 |
CN103870330A (zh) * | 2014-03-03 | 2014-06-18 | 大唐移动通信设备有限公司 | 一种基于dsp的任务调度方法和装置 |
CN107102894A (zh) * | 2017-04-07 | 2017-08-29 | 百度在线网络技术(北京)有限公司 | 任务调度方法、装置和系统 |
CN107133092A (zh) * | 2017-05-24 | 2017-09-05 | 努比亚技术有限公司 | 多线程同步处理方法、终端及计算机可读存储介质 |
WO2019001332A1 (zh) * | 2017-06-27 | 2019-01-03 | 阿里巴巴集团控股有限公司 | 任务的优先级处理方法和处理装置 |
US11321125B2 (en) | 2017-06-27 | 2022-05-03 | Alibaba Group Holding Limited | Task priority processing method and processing device |
CN111913809A (zh) * | 2020-07-28 | 2020-11-10 | 北京百度网讯科技有限公司 | 多线程场景下的任务执行方法、装置、设备和存储介质 |
CN111913809B (zh) * | 2020-07-28 | 2024-03-19 | 阿波罗智能技术(北京)有限公司 | 多线程场景下的任务执行方法、装置、设备和存储介质 |
CN111930488A (zh) * | 2020-09-11 | 2020-11-13 | 北京国科环宇科技股份有限公司 | 一种操作系统任务调度的优先级继承方法及系统 |
CN111930488B (zh) * | 2020-09-11 | 2021-02-05 | 北京国科环宇科技股份有限公司 | 一种操作系统任务调度的优先级继承方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20080064608A (ko) | 2008-07-09 |
EP1942413A3 (en) | 2010-01-27 |
EP1942413A2 (en) | 2008-07-09 |
US20080168454A1 (en) | 2008-07-10 |
CN101216785B (zh) | 2016-08-24 |
EP1942413B1 (en) | 2018-09-19 |
US8612982B2 (en) | 2013-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101216785A (zh) | 根据简单优先级继承方案的多任务方法及其嵌入式系统 | |
US10353749B2 (en) | Lock-free dual queue with condition synchronization and time-outs | |
US7810098B2 (en) | Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy | |
US5333319A (en) | Virtual storage data processor with enhanced dispatching priority allocation of CPU resources | |
US7395263B2 (en) | Realtime-safe read copy update with lock-free readers | |
US6223204B1 (en) | User level adaptive thread blocking | |
US7653791B2 (en) | Realtime-safe read copy update with per-processor read/write locks | |
US8429657B2 (en) | Global avoidance of hang states via priority inheritance in multi-node computing system | |
US8166480B2 (en) | Reducing lock contention by adding a time slice to an active thread holding a lock | |
US20080209422A1 (en) | Deadlock avoidance mechanism in multi-threaded applications | |
CN113205417B (zh) | 一种面向联盟链的交易并行处理方法及系统 | |
JPH04319734A (ja) | ロック管理装置 | |
US20070130569A1 (en) | Method, apparatus and program storage device for providing a no context switch attribute that allows a user mode thread to become a near interrupt disabled priority | |
JP2004021985A (ja) | マルチスレッドシステムにおけるスピン−放棄 | |
CN1914593A (zh) | 共享已空闲的处理器执行资源 | |
JPH07200323A (ja) | 解放された同期メカニズムの所有権を管理するための方法及びシステム | |
US8806497B2 (en) | System and method for altering the work definitions in an iterative parallel opportunistic work stealing scheduler | |
EP1435572A2 (en) | Method and apparatus for providing dynamic locks for resources | |
Holenderski et al. | Parallel-task scheduling on multiple resources | |
Al-Bayati et al. | Partitioning and selection of data consistency mechanisms for multicore real-time systems | |
US5708808A (en) | Method and apparatus for concurrency with critical regions | |
CN113961364B (zh) | 一种大规模锁系统实现方法、装置、存储介质和服务器 | |
JP3724075B2 (ja) | プロセスの実行方法 | |
JPH05120040A (ja) | コンピユータシステム | |
JPH03235130A (ja) | 排他優先制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |