在实时操作系统中调度任务的方法、介质和设备的制作方法

文档序号:6457599阅读:125来源:国知局
专利名称:在实时操作系统中调度任务的方法、介质和设备的制作方法
技术领域
本发明的一个或多个实施例涉及调度,更具体地讲,涉及一种用于实时 操作系统(RTOS)(例如,MicroC/OS-II)的调度方法、介质和设备。
背景技术
实时操作系统(RTOS )使用RTOS安装在其中的计算装置的资源,并基 于各个任务的优先级调整任务的执行顺序。即,RTOS执行将要被执行的多 项任务的调度。调度设备执行根据时间点准备的任务以及通过中断请求的一个或多个任 务的调度,并执行这些任务。具体地,,调度设备在执行代表根据时间点准备 的任务的定时器中中断发生时到期的一个或多个定时器之后执行由中断请求 的任务。因此,在这种传统的调度设备中,随着到期定时器的数量的增加,由中 断请求的任务的起始执行被延迟。因此,RTOS的性能恶化。此外,尽管在 由中断请求的任务中,可能存在优先级高于由到期定时器代表的任务的优先 级的任务,但是现有的调度设备仍然首先执行由到期定时器代表的任务,然 后执行由中断请求的任务。因此,先前确定的任务的优先级被非故意地改变。发明内容本发明的一个或多个实施例提供了 一种调度方法,该方法能够在防止任 务优先级(如由到期定时器代表的优先级和由中断请求的任务代表的优先级) 之间的顺序颠倒的同时执行任务。此外,即使在中断发生时刻到期的定时器 的数量很大或者在中断发生之前已经到期的定时器的数量很大,所述方法也 不会使实时操作系统(RTOS)的性能恶化。本发明的一个或多个实施例提供了 一种调度设备,所述调度设备在防止 任务优先级(如由到期定时器代表的优先级以及由中断请求的任务的优先级) 之间的顺序颠倒的同时执行任务。此外,即使在中断发生时到期的定时器的 数量或者在中断发生时已经到期的定时器的数量很大时,所述方法也不会使RTOS的性能恶化。本发明的一个或多个实施例提供了 一种计算机可读记录介质,所述介质 上具有计算机程序,所述计算机程序能够在防止由到期定时器代表的任务的 优先级以及由中断请求的任务的优先级之间的顺序颠倒的同时执行任务,同 时,即使在中断发生时到期的定时器或者在中断发生之前已经到期的定时器的数量很大时,也不会使RTOS的性能恶化。将在下面的描述中部分阐述本发明的另外的方面和/或优点,另外的部 分,通过该描述将变得清楚或者通过实施本发明来了解。为了实现本发明的上述和/或其它方面和优点,本发明的实施例包含一种 调度方法。所述调度方法包括从一个或多个定时器中选择定时器,所述定 时器被选择用来代表与中断发生时的时间点相应的时间点,其中,所述一个 或多个定时器中的每一个代表任务、分配给该任务的时间点、分配给该任务 的优先级;按照优先级的顺序,执行由选择的定时器代表的任务以及由中断 请求的一个或多个任务。为了实现本发明的至少上述和/或其它方面和优点,本发明的实施例包含 一种调度设备。所述调度设备包括中断响应单元,从一个或多个定时器中 选择定时器,选"f奪所述定时器来代表与中断发生时的时间点相应的时间点, 其中,所述一个或多个定时器中的每个代表任务、分配给所述任务的时间点、 分配给所述任务的优先级;任务执行单元,按照优先级的顺序执行由选择的 定时器代表的任务以及由中断请求的一个或多个任务。为了实现本发明的至少上述和/或其它方面和优点,本发明的实施例包括 至少一个介质,所述介质包括用于控制计算机中的至少一个处理元件实施权 利要求1的方法的计算机可读代码。


通过下面结合附图对实施例的描述,本发明的这些和/或其它方面和优点 将会变得清楚和更容易理解,其中图1示出了根据本发明实施例的调度设备; 图2示出了根据本发明实施例的调度机制; 图3示出了根据本发明实施例的调度方法。
具体实施方式
现在,将详细描述实施例,其例子示出于附图中,其中,相同的标号始 终指示相同的元件。下面通过参照附图描述实施例以解释本发明。图1示出了根据本发明实施例的调度设备。例如,所述调度设备可包括 第一定时器列表存储单元110、中断响应单元120、第二定时器列表存储单元 130、属性检查单元140和任务执行单元150。例如,第一定时器列表存储单 元110、中断响应单元120、第二定时器列表存储单元130、属性检查单元140 和任务执行单元150可以被包含在实时操作系统(RTOS)中。尽管可以在 RTOS中执行将要描述的任务执行单元150的操作中的调度操作,但是也可 在RTOS装载到其中的计算装置的资源中等效地执行所述任务。时间点和优先级可以被分配给由调度设备执行的每个任务。通常,定时 器表示包括关于被分配给任务的时间点的信息和关于被分配给任务的优先级 的信息的信息。定时器可包括关于定时器的属性是硬的还是软的的信息。定 时器的硬属性表示定时器代表的任务通常不能在预定的截止期限之后执行。 即,当硬定时器代表的任务在截止期限之后执行时,该任务通常被认为是无 效的。另一方面,定时器的软属性表示定时器所代表的任务通常可以在预定 的截止期限之后执行。即,当软定时器代表的任务在截止期限之后执行时, 该任务通常被认为是有效的。然而,随着执行时间和截止期限之间的差值增 加,有效性会降低。当差值超过临界时间量时,任务的执行被认为是无效的。可以在RTOS中预先准备多个定时器。RTOS安装在其中的计算装置中 包含的时钟可以表示当前的时间。预先准备的多个定时器中的 一个或多个到 期定时器可以被汇总构成一个列表。下面,该列表被称为第一定时器列表。 到期定时器指示当前时间处于被分配给定时器的时间点的定时器,或者当前 时间已超过被分配给定时器的时间点的定时器。第一定时器列表中的定时器 可以按照分配给定时器的时间点的顺序排列。另一方面,已经被分配相同时 间点的多个定时器可以按照属性或优先级的顺序排列。第一定时器列表存储单元IIO可以存储第一定时器列表。到期定时器的数量通常随着当前时间的增加(即,随着时间的流逝)而增加。因此,第一 定时器列表存储单元110中存储的第一定时器列表通常在当前时间增加的同 时被持续地更新。中断响应单元120响应于中断的发生而操作。在本发明的实施例中,例 如,中断可以是时钟节拍(time-tick)中断。具体地,在本发明的实施例中, 中断可以每隔预定的时间段周期性地发生。当中断发生时,中断响应单元120可以选择在中断发生时到期的或者在 中断发生之前已经到期的 一个或多个定时器。可以从第 一定时器列表删除选 择的定时器。因此,可以更新第一定时器列表存储单元110中存储的第一定 时器列表。由中断响应单元120选择的定时器可以被汇总从而构成一个列表。下面, 所述列表被称为第二定时器列表。第二定时器列表中的定时器可以按照优先 级的顺序排列。第二定时器列表存储单元130可以用于存储第二定时器列表。属性检查单元140可以分析构成第二定时器列表的定时器的属性。具体 地,属性检查单元140可以检查构成第二定时器列表的定时器的属性是硬的 还是软的。任务执行单元150可以调度将要执行的第二定时器列表中的一个或多个 任务或者由中断请求的一个或多个任务,并执行这些任务。在本发明的实施例中,优先级被分配给由定时器代表的任务。类似地,优先级还可被分配给 由中断请求的任务。具体地,任务执行单元150可以考虑构成第二定时器列表的定时器中的 硬定时器的优先级来调度任务。因此,任务执行单元150可以按照优先级的 顺序来执行由构成第二定时器列表的定时器中的硬定时器代表的任务。任务执行单元150可以考虑构成第二定时器列表的定时器中的软定时器 的优先级以及由中断请求的一个或多个任务的优先级来调度任务。因此,任 务执行单元150可按照优先级的顺序执行由构成第二定时器列表的定时器中 的软定时器代表的任务以及由中断请求的一个或多个任务。更具体地,任务 执行单元150可以按照优先级的顺序执行第二定时器列表中代表的未被执行 的任务中具有最高优先级的任务,以及由中断请求的一个或多个任务中的一 个或多个未被执行的任务。当执行具有最高优先级的任务时,随后从第二定 时器列表中删除被执行的任务。因此,每当具有最高优先级的任务已经被执行时,都可更新第二定时器列表存储单元130中存储的第二定时器列表。当构成第二定时器列表的所有定时器的属性都是硬的时,任务执行单元150可以按照优先级的顺序执行由第二定时器列表代表的任务。可选地,当 构成第二定时器列表的所有定时器的属性都是软的时,任务执行单元150可 以按照优先级的顺序执行由第二定时器列表代表的任务以及由中断请求的一 个或多个任务。图2示出根据本发明的实施例的调度机制。在图2中,"Task,,表示任务, "Time"表示分配给任务的时间点,括号中的数字表示优先级。为了便于描 述,假定代表任务Tc、 Tb、 Te、 Td、 Ta和Th的所有定时器的属性都是软的, A3*N[ms](其中,N为自然数)时发生中断,在当前时间3ms时发生的中 断请求执行任务Tf和Tg,在当前时间6ms时发生的中断请求执行任务Th。 下面,基于图1的描述来解释图2。在当前时间为lms时,到期任务包括Tc和Ti。在当前时间为2ms时, 到期任务包括Tc、 Ti和Tb。在当前时间为3ms时,到期任务包括Tc、 Ti、 Tb和Te。在当前时间为4ms时,到期任务包括Tc、 Ti、 Tb、 Te和Tj。在当 前时间为5ms时,到期任务包括Tc、 Ti、 Tb、 Te、 Tj和Td。在当前时间为 6ms时,到期任务包括Tc、 Ti、 Tb、 Te、 Tj、 Td和Ta。因此,第一定时器列 表可以随着当前时间的增加(即,随着时间的流逝)而被更新。如上所述,在当前时间为4ms时,第一定时器列表包括代表任务为Tc、 时间点为lms、优先级为12的定时器;代表任务为Ti、时间点为lms、优先 级为10的定时器;代表任务为Tb、时间点为2ms、优先级为4的定时器; 代表任务为Te、时间点为3ms、优先级为8的定时器;代表任务为Tj、时间 点为4ms、优先级为2的定时器。此时,可以按照时间点的顺序,例如,按 照时间发生顺序,在第一定时器列表中排列这些定时器。然而,被分配了相 同时间点的定时器可按照优先级的顺序排列。即,可以按照下列顺序排列这 些定时器代表任务为Ti、时间点为lms、优先级为IO的定时器;代表任务 为Tc、时间点为lms、优先级为12的定时器;代表任务为Tb、时间点为2ms、 优先级为4的定时器;代表任务为Te、时间点为3ms、优先级为8的定时器; 代表任务为Tj、时间点为4ms、优先级为2的定时器。另一方面,中断响应单元120的操作的起始时间点可以是在中断发生之 后又过去一些时间的时间点。例如,当中断在当前时间3ms发生时,中断响应单元120可以在当前时间4ms时开始操作。此时,中断响应单元120选择 如下定时器代表任务为Tc、时间点为lms、优先级为12的定时器;代表任 务为Ti、时间点为lms、优先级为10的定时器;代表任务为Tb、时间点为 2ms、优先级为4的定时器;代表任务为Te、时间点为3ms、优先级为8的 定时器,这些定时器仅是第一定时器列表中包含的定时器中那些在中断发生 时已经到期的定时器或者在中断发生前已经到期的定时器。因此,可以从第 一定时器列表中删除代表任务为Tc、时间点为lms、优先级为12的定时器; 代表任务为Ti、时间点为lms、优先级为10的定时器;代表任务为Tb、时 间点为2ms、优先级为4的定时器;代表任务为Te、时间点为3ms、优先级 为8的定时器,并将它们包含在第二定时器列表中。此时,这些定时器可以 在第二定时器列表中按照优先级的顺序排列。即,在第二定时器列表中,定时器可以按照如下顺序排列代表任务为Tb、时间点为2ms、优先级为4的 定时器;代表任务为Te、时间点为3ms、优先级为8的定时器;代表任务为 Ti、时间点为lms、优先级为IO的定时器;代表任务为Tc、时间点为lms、 优先级为12的定时器。在这种情况下,在第二定时器列表中包含的任务Tb、 Te、 Ti和Tc中具 有最高优先级的任务Tb与由中断请求的任务Tf和Tg中包含的未被执行的任 务Tf和Tg之间,任务执行单元150可执行具有最高优先级的任务Tf。然后,在第二定时器列表中的任务Tb、 Te、 Ti和Tc中具有最高优先级 的任务Tb,与由中断请求的任务Tf和Tg中包含的未一皮执行的任务Tg,之间, 任务执行单元150可执行具有最高优先级的任务Tb。因此,可以从第二定时 器列表中删除代表任务为Tb、时间点为2ms、优先级为4的定时器。然后,在第二定时器列表中的任务Te、 Ti和Tc中具有最高优先级的任 务Te,与由中断请求的任务Tf和Tg之间未被执行的任务Tg,之间,任务执行 单元150可执行具有最高优先级的任务Te。因此,可以从第二定时器列表中 删除代表任务为Te、时间点为3ms、优先级为8的定时器。然后,在第二定时器列表中的任务Ti和Tc中具有最高优先级的任务Ti, 与由中断请求的任务Tf和Tg中未被执行的任务Tg,之间,任务执行单元150 可执行具有最高优先级的任务Tg。然后,任务执行单元150可执行第二定时器列表中的任务Ti和Tc中具 有最高优先级的任务Ti。因此,可以从第二定时器列表中删除任务为Ti、时间点为lms、优先级为IO的定时器。最后,任务执行单元150可执行第二定时器列表中的任务Tc。如上所述,任务执行单元150可以按照优先级的顺序执行第二定时器列 表中的任务Tj、 Td和Ta以及由中断请求的任务Th,所述第二定时器列表包 括代表任务为Tj、时间点为4ms、优先级为2的定时器;代表任务为Td、 时间点为5ms、优先级为6的定时器;代表任务为Ta、时间点为6ms、优先 级为3的定时器。即,任务执行单元150可以按照任务Th、 Tj、 Ta和Td的 顺序来执行任务Tj、 Td、 Ta和Th。图3示出了根据本发明实施例的调度方法。例如,所述调度方法可以包 括操作310至320。所述调度方法可以在将由到期定时器代表的任务的优先 级以及由中断请求的任务的优先级之间的顺序颠倒的可能性最小化的同时执 行任务。此时,即使在中断发生时到期的定时器或者中断发生之前已经到期 的定时器的数量很大,所述调度方法也不会使RTOS的性能恶化。在操作310,可由中断响应单元120从第一定时器列表中包含的定时器 中选择在中断发生时到期的或者在中断发生之前已经到期的一个或多个定时 器。下面,为了便于描述,假定在操作310中选择的所有定时器的属性都是 软的。在操作312,例如,由第一定时器列表更新单元(未示出)从第一定时 器列表中删除在操作310中选择的定时器。根据本发明的实施例,第一定时 器列表更新单元可以包含在调度设备中。在操作314,例如,可由任务执行单元150执行第二定时器列表代表的 任务以及由中断请求的一个或多个任务中具有最高优先级的任务。此时,第 二定时器列表可包括在操作310中选择的定时器。在操作316中,例如,可由第二定时器列表更新单元(未示出)确定在 操作314中执行的任务是否包含在由在操作310选择定的时器代表的任务中。 根据本发明的实施例,可以在调度设备中设置第二定时器列表更新单元。在操作318,当在操作316确定在操作314中执行的任务包含在由操作 310中选择的定时器代表的任务中时,第二定时器列表更新单元可以从第二 定时器列表中删除代表在操作314中执行的任务的定时器。在操作320,确定由第二定时器列表代表的任务以及由中断请求的任务 是否已经全部被执行(例如,由任务执行单元150执行)。当在操作320确定由第二定时器列表代表的任务以及由中断请求的任务 中存在未被执行的任务时,所述方法返回操作314。另一方面,当在操作316确定在操作314中执行的任务未包含在由在操 作310中选择的定时器代表的任务中时,所述方法进行操作320。如上所述,在根据本发明的一个或多个实施例的调度方法、介质和设备 中,当在中断发生时到期或者在中断发生之前已经到期的一个或多个定时器 的属性是软的而非硬的时,不在调度由到期定时器代表的任务之后调度由中 断请求的任务。通过同时考虑由到期定时器代表的任务的优先级和由中断请 求的任务的优先级来调度由到期定时器代表的任务以及由中断请求的任务。 因此,由于即使到期任务的数量很大,也能很快开始执行由中断请求的任务, 因此,RTOS的性能不会恶化。在根据本发明的一个或多个实施例的调度方法、介质和设备中,可以通由到期定时器代表的任务以及由中断请求的任务。因此,可以防止在执行由 中断请求的任务之前执行到期的任务的情况。除了上面描述的实施例,还可以通过介质(例如,计算^L可读介质)上 的计算机可读代码/指令来实施本发明的实施例,以控制实施任一上述实施例 的至少一个处理元件。所述介质可以对应于允许存储和/或发送计算机可读代 码的任何介质/J 某体。计算机可读代码可以以各种方式被记录在介质上或者被传送到介质上, 介质的例子包括记录媒体(例如磁存储媒体(例如,ROM、软盘、硬盘等) 和光学记录媒体(例如,CD-ROM或DVD ))、传输媒体(如,携带或包含载 波的媒体)以及因特网元件。因此,根据本发明实施例,介质可以是包含或 携带信号或信息的定义的和可测量的结构,如携带比特流的装置。所述々某体 也可以是分布式网络,从而计算机可读代码以分布的方式被存储/发送和执 行。此外,仅作为例子,处理元件可包括处理器或者计算机处理器,处理元 件可以是分布和/或包含在一个装置中。尽管已经示出和描述了 一些实施例,但是本领域的技术人员应该理解, 在不脱离本发明的原理和精神的情况下,可以在这些实施例中作出改变,本 发明的范围由权利要求及其等同物限定。
权利要求
1、一种调度方法,包括(a)从一个或多个定时器中选择定时器,所述定时器被选择用来代表与中断发生时的时间点相应的时间点,其中,所述一个或多个定时器中的每个代表任务、分配给该任务的时间点、分配给该任务的优先级;(b)按照优先级的顺序执行由选择的定时器代表的任务以及由中断请求的一个或多个任务。
2、 如权利要求1所述的调度方法,其中,步骤(b)包括(bl )从由选择的定时器代表的未被执行的任务中选择具有最高优先级 的第一任务;(b2 )执行选择的任务以及由中断请求的任务中包含的未被执行的任务 中具有最高优先级的第二任务;(b3)确定第二任务是否是第一任务;(b4)当确定第二任务是第一任务时,进行步骤(bl)。
3、 如权利要求2所述的调度方法,其中,步骤(b)还包括 (b5)当确定第二任务不是第一任务时,进行步骤(b2)。
4、 如权利要求1所述的调度方法,其中,在已经过了预定截止期限之后 执行在步骤(b)中可执行的任务。
5、 至少一种介质,所述介质包含控制计算机中的至少一个处理元件执行 权利要求1中的方法的计算机可读代码。
6、 一种调度设备,包括中断响应单元,从一个或多个定时器中选择定时器,所述定时器被选择 用来代表与中断发生时的时间点相应的时间点,其中,所述一个或多个定时 器中的每个代表任务、分配给所述任务的时间点、分配给所述任务的优先级;由中断请求的一个或多个任务。
7、 如权利要求6所述的调度设备,其中,任务执行单元按照优先级的顺 序执行由选择的定时器代表的一个或多个未被执行的任务以及由中断请求的 任务中未被执行的任务中具有最高优先级的任务,其中,任务执行单元重复 操作,直到由选择的定时器代表的任务以及由中断请求的任务全部被执行。
8、 如权利要求6所述的调度设备,其中,在预定的截止期限过去之后执行可由任务执行单元执行的任务。
9、 如权利要求6所述的调度设备,其中,所述定时器还代表由定时器代 表的任务是否可以在预定的截止期限过去之后被执行。
10、 如权利要求9所述的调度设备,还包括属性检查单元,所述属性检 查单元检查由选择的定时器代表的任务中的每一个是否可以在截止期限过去 之后被执行,其中,务,然后才安然1兀兄双曰?顺, 务以及由中断请求的任务,
全文摘要
提供了一种调度方法、介质和设备。在所述调度方法、介质和设备中,通过从一个或多个定时器中选择代表与中断发生时的时间点相应的时间点的定时器,并按照优先级的顺序执行由选择的定时器代表的任务以及由中断请求的一个或多个任务,即使中断发生时到期或者在中断发生时已经到期的定时器的数量很大,也可以在不使实时操作系统(RTOS)的性能恶化的同时,防止由到期定时器代表的任务以及由中断请求的任务之间的优先级颠倒的可能性,所述一个或多个定时器中的每个代表任务、分配给所述任务的时间点、分配给所述任务的优先级。
文档编号G06F9/48GK101216786SQ20081000150
公开日2008年7月9日 申请日期2008年1月4日 优先权日2007年1月5日
发明者任根洙, 俞正埈, 李在敦, 李承远, 辛容三, 郑旻奎 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1