CN115698948A - 执行周期性任务的计算机实现的方法、执行周期性任务的包括一个或多个处理器的系统以及计算机程序产品 - Google Patents
执行周期性任务的计算机实现的方法、执行周期性任务的包括一个或多个处理器的系统以及计算机程序产品 Download PDFInfo
- Publication number
- CN115698948A CN115698948A CN202180001371.XA CN202180001371A CN115698948A CN 115698948 A CN115698948 A CN 115698948A CN 202180001371 A CN202180001371 A CN 202180001371A CN 115698948 A CN115698948 A CN 115698948A
- Authority
- CN
- China
- Prior art keywords
- task
- periodic
- queue
- group
- tasks
- 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
- 230000000737 periodic effect Effects 0.000 title claims abstract description 1121
- 238000000034 method Methods 0.000 title claims abstract description 144
- 238000004590 computer program Methods 0.000 title claims description 14
- 239000000126 substance Substances 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007723 transport mechanism 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
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供了一种执行周期性任务的计算机实现的方法,该方法应用于包括一个或多个处理器的系统。计算机实现的方法包括:将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个。所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
Description
技术领域
本发明涉及显示技术,更具体地,涉及执行周期性任务的计算机实现的方法、执行周期性任务的包括一个或多个处理器的系统、以及计算机程序产品。
背景技术
周期性任务调度的主要目的是解决多个周期性任务对共享计算资源的占用。共享计算资源可以仅允许一个或多个任务同时使用它。因此,当周期性任务的总数超过允许同时使用共享计算资源的周期性任务的数目时,周期性任务调度变得必要。
发明内容
在一个方面,本公开提供一种执行周期性任务的计算机实现的方法,该方法应用于包括一个或多个处理器的系统,且包括:将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个;其中,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
可选地,分类所述周期性任务包括:当确定所述周期性任务的执行次数的数量大于执行次数的最小数量时,将周期性任务分类到所述第一组中。
可选地,分类所述周期性任务包括:当确定所述周期性任务的执行次数的数量小于等于执行次数的最小数量时,将周期性任务分类到所述第二组中。
可选地,所述计算机实现的方法还包括确定在两个周期性任务之间是否存在冲突;其中,在确定所述冲突之前,所述计算机实现的方法还包括:确定相应周期性任务的实际每循环执行持续时间是否是最小时隙的整数倍;在确定所述相应周期性任务的所述实际每循环执行持续时间不是所述最小时隙的整数倍时,将所述实际每循环执行持续时间上舍入到所述最小时隙的指定整数倍;以及为了确定所述冲突,将所述指定整数倍指定为调度每循环执行持续时间;其中,所述实际每循环执行持续时间用于执行所述相应周期性任务,并且所述调度每循环执行持续时间用于确定所述冲突。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列;以及分别向所述任务队列中的周期性任务分配优先序;其中,所述任务队列包括活动任务子队列和等待任务子队列;所述活动任务子队列中的周期性任务的优先序高于所述等待任务子队列中的周期性任务的优先序;所述第二组中的第二周期性任务的优先序高于所述第一组中的所述第一周期性任务的优先序;以及在同一子队列且在同一组中的周期性任务的优先序按优先级排序。
可选地,在同一子队列且在同一组中且具有同一优先级的周期性任务的优先序被随机排序或按照任务到达时间点排序。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列;以及对所述第一组的新到达的周期性任务进行排队;其中,对所述第一组的所述新到达的周期性任务进行排队包括:确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务之间存在冲突时,从所述任务队列中排除所述第一组的具有最低优先级的周期性任务。
可选地,所述计算机实现的方法还包括:重复确定冲突和排除周期性任务,直到所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间不存在冲突;以及将所述第一组的所述新到达的周期性任务添加到所述任务队列中;其中,所述任务队列中的所述第一组的周期性任务按照优先级排序。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列;以及对所述第一组的新到达的周期性任务进行排队;其中,对所述第一组的所述新到达的周期性任务进行排队包括:确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务之间不存在冲突时,将所述第一组的所述新到达的周期性任务添加到所述任务队列中;其中,所述任务队列中的所述第一组的周期性任务按照优先级排序。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队;其中,对所述第二组的所述新到达的周期性任务进行排队包括:确定在所述等待任务子队列中是否存在至少一个周期性任务;以及在确定在所述等待任务子队列中存在至少一个周期性任务时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。
可选地,被添加到所述等待任务子队列中的所述第二组的所述新到达的周期性任务被分配的优先序比所述等待任务子队列中的所述第一组的任何周期性任务的优先序高;以及所述等待任务子队列中的所述第二组的周期性任务按照优先级排序。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队;其中,对所述第二组的所述新到达的周期性任务进行排队包括:确定在所述等待任务子队列中是否存在至少一个周期性任务;在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队;其中,对所述第二组的所述新到达的周期性任务进行排队包括:确定在所述等待任务子队列中是否存在至少一个周期性任务;在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务之间存在冲突时,确定在所述活动任务子队列中是否存在所述第一组的至少一个周期性任务;在确定在所述活动任务子队列中存在所述第一组的至少一个周期性任务时,将所述活动任务子队列中的所述第一组的周期性任务移动到所述等待任务子队列中;以及在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间是否存在冲突。
可选地,所述计算机实现的方法还包括:在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
可选地,所述计算机实现的方法还包括:在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列;其中,在相应的调度时间点,更新所述任务队列包括:确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第一组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第一组的周期性任务时,确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间是否存在冲突;以及在确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列;其中,在所述等待任务子队列中具有最高优先序的所述周期性任务是所述第二组的周期性任务;其中,在相应的调度时间点,更新所述任务队列包括:确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;在确定存在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,从所述活动任务子队列中移除在所述活动任务子队列中具有等于零的执行次数的剩余数量的所述周期性任务;确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间是否存在冲突;以及在确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
可选地,所述计算机实现的方法还包括:根据优先序顺序逐个依次地重复确定冲突并且添加用于所述等待任务子队列中的剩余周期性任务的周期性任务,直到确定冲突为止。
可选地,所述计算机实现的方法还包括:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列;其中,在相应的调度时间点,更新所述任务队列包括:确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;以及在确定不存在在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,将具有最高优先序的所述周期性任务保持在所述等待任务子队列中。
可选地,所述计算机实现的方法还包括:确定在所述第二组的所述新到达的周期性任务与所述第二组的一个或多个现有周期性任务之间是否存在冲突;其中,确定所述冲突包括:遍历在所述第二组的所述一个或多个现有周期性任务中的任何一个的最后调度执行时段的当前时间和开始时间点之间可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应的候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段和所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠;其中,时隙的所述选择值排除使所述第二组的所述新到达的周期性任务的第一调度执行时段的初始开始时间点或结束时间点处的时间点在所述第二组的所述一个或多个现有周期性任务中的任何一个的任何调度执行时段内的任何值;其中,确定是否存在任何重叠包括,在确定当前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段与任何先前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段相同时,确定在所述当前轮遍历中存在重叠;其中,在各轮遍历中,不遍历初始开始时间点晚于所述第二组的所述新到达的周期性任务的结束时间点或者结束时间点早于所述第二组的所述新到达的周期性任务的候选初始开始时间点的所述第二组的任何现有周期性任务;以及其中,一旦第一次确定了所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务之一的调度执行时段之间的重叠,则终止相应轮遍历。
可选地,所述计算机实现的方法还包括:确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突;其中,确定所述冲突包括:获得所述第一组的所述一个或多个现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
可选地,所述计算机实现的方法还包括:确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突;其中,所述第一组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量;其中,所述第二组的所述新到达的周期性任务的调度执行时段被表示为:其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,以及NN代表所述新到达的周期性任务的执行次数的最大数量;其中,确定所述冲突包括:执行余数值计算以获得修改的调度执行时段:以及使用所述修改的调度执行时段来确定所述冲突。
可选地,所述计算机实现的方法还包括:确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突;其中,确定所述冲突包括:获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
可选地,所述计算机实现的方法还包括:确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突;其中,所述第二组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量;其中,所述第一组的所述新到达的周期性任务的调度执行时段表示为:其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,NN代表所述新到达的周期性任务的执行次数的最大数量;其中,确定所述冲突包括:执行余数值计算以获得修改的调度执行时段: 以及使用所述修改的调度执行时段来确定所述冲突。
可选地,所述计算机实现的方法还包括:确定在所述第一组的新到达的周期性任务和所述第一组的一个或多个现有周期性任务之间是否存在冲突;其中,确定所述冲突包括:获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
可选地,所述计算机实现的方法还包括:确定在新到达的周期性任务与一个或多个现有周期性任务之间是否存在冲突;其中,确定所述冲突包括遍历可用作所述新到达的周期性任务的候选初始开始时间点的时隙的选择值,以确定在具有相应候选初始开始时间点的所述新到达的周期性任务的候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠;其中,所述计算机实现的方法还包括在确定在所述新到达的周期性任务的任何候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间的任何重叠在容限范围内时,调整与所述一个或多个现有周期性任务的所述调度执行时段重叠的候选调度执行时段,以避免任何重叠。
在另一方面,本公开提供一种执行周期性任务的包括一个或多个处理器的系统,包括:存储器;一个或多个处理器;其中,所述存储器和所述一个或多个处理器彼此连接;以及所述存储器存储用于控制所述一个或多个处理器执行以下操作的计算机可执行指令:将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个;其中,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
在另一方面,本公开提供一种计算机程序产品,包括其上具有计算机可读指令的非暂时性有形计算机可读介质,所述计算机可读指令可由处理器执行以使所述处理器执行:将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个;其中,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
附图说明
根据各种公开的实施例,以下附图仅是用于说明目的的示例,并且不旨在限制本发明的范围。
图1示出了根据本公开的一些实施例中调度多个周期性任务的示例。
图2A示出了根据本公开的一些实施例中的用于执行周期性任务的计算机实现的方法。
图2B示出了根据本公开的一些实施例中的用于执行周期性任务的计算机实现的方法。
图3是示出根据本公开的一些实施例中的计算机实现的方法的流程图。
图4是示出根据本公开的一些实施例中的计算机实现的方法的流程图。
图5是示出根据本公开的一些实施例中的计算机实现的方法的流程图。
图6示出了根据本公开的一些实施例中调度多个周期性任务的示例。
图7是根据本公开的一些实施例中的动态立体显示设备的的框图。
具体实施方式
现在将参考以下实施例更具体地描述本公开。应当注意,本文中呈现的一些实施例的以下描述仅用于说明和描述的目的。其不是穷举的或限于所公开的精确形式。
本公开尤其提供了一种在包括用于执行周期性任务的一个或多个处理器的系统中的计算机实现的方法、包括用于执行周期性任务的一个或多个处理器的系统、以及计算机程序产品,其基本上消除了由于现有技术的限制和缺点而导致的一个或多个问题。在一个方面,本公开提供了一种在包括用于执行周期性任务的一个或多个处理器的系统中的计算机实现的方法。在一些实施例中,计算机实现的方法包括将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个。可选地,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
图1示出了根据本公开的一些实施例中调度多个周期性任务的示例。参考图1,随着时间对多个周期性任务进行调度。“时间”轴的单位可以是时隙。在一个示例中,时隙可以被定义为一毫秒或多个毫秒,例如1毫秒、10毫秒、50毫秒、100毫秒或1000毫秒。可选地,时隙被定义为100毫秒。
周期性任务可以由多个参数来表征,例如,循环时间T、每循环执行持续时间τ、执行次数的数量N、以及初始开始时间段循环时间T和初始开始时间段可以是整数。参考图1,周期性任务1具有循环时间T1、每循环执行持续时间τ1、执行次数的数量等于5、以及初始开始时间段在一个示例中,循环时间T1等于12个时隙。在另一个示例中,时隙等于100毫秒,并且循环时间T1等于1200毫秒。
参考图1,在时隙0,周期性任务2到达。第一每循环执行持续时间τ1开始于时隙#4。在一个示例中,该方法检查在时隙#1执行周期性任务2是否会引起与周期性任务1的任何冲突,例如,将周期性任务2的初始开始时间段设置为1个时隙。如图1所示,当周期性任务2的初始开始时间段设置为1个时隙时,发现冲突。
然后,计算机实现的方法检查在周期性任务1的第一每循环执行持续时间结束时执行周期性任务2是否会导致与周期性任务1的任何冲突,例如,将周期性任务2的初始开始时间段设置为6个时隙。如图1所示,当周期性任务2的初始开始时间段设置为6个时隙时,仍然发现冲突。
然后,该计算机实现的方法检查以被设置为7个时隙的初始开始时间段执行周期性任务2是否会导致与周期性任务1的任何冲突。如图1所示,当周期性任务2的初始开始时间段设置为7个时隙时,没有发现冲突。因此,可以以被设置为7个时隙的初始开始时间段调度周期性任务2。
在一些实施例中,用于执行周期性任务的本系统包括任务控制模块,用于存储周期性任务的相关信息,例如循环时间T、每循环执行持续时间τ、执行次数的数量N和初始开始时间段每个任务控制模块与相应周期性任务相关联。
在一些实施例中,计算机实现的方法包括形成包括至少一个周期性任务的任务队列。在一个示例中,任务队列包括活动任务子队列和等待任务子队列。将正在被活动地执行(已经开始)的周期性任务放置在活动任务子队列中。将尚未开始的周期性任务放入等待任务子队列中。可以更新包括活动任务子队列和等待任务子队列的任务队列。在一个示例中,当新的周期性任务到达时,更新任务队列。在另一示例中,任务队列可以分别在调度的时间点被周期性地更新。在另一个示例中,可以以同步的方式在每个时隙更新任务队列。在另一示例中,任务队列可以在每次任务的执行状态经历改变时被更新。
图2A示出了根据本公开的一些实施例中的用于执行周期性任务的计算机实现的方法。参考图2A,在一些实施例中,计算机实现的方法包括将周期性任务分类到包括第一组和第二组的至少两个组中的一个。可选地,当确定周期性任务的执行次数的数量大于执行次数的最小数量M时,将周期性任务分类到第一组中。可选地,M是大于等于10的数,例如11、12、13、14、15、16、17、18、19、20、25、30或35。在一个示例中,具有执行次数的无限数量的周期性任务可以被分类到第一组中。在另一示例中,具有大于10的执行次数的数量的周期性任务可以被分类到第一组中。可选地,在确定周期性任务的执行次数的数量小于等于执行次数的最小数量时,将周期性任务分类到第二组中。在一个示例中,具有小于等于10的执行次数的数量的周期性任务可以被分类到第二组中。
在一些实施例中,本方法要求第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。例如,最大循环时间可被设置为1260个时隙。第一组中的第一周期性任务的可能循环时间包括从1、2、2、3、3、5和7中选择的任意两个或多个数的任意乘积。在一个示例中,第一组中的第一周期性任务的可能循环时间包括1、2、3、4、5、6、7、9、10、12、15、18、20、21、24、28、30、35、36、42、45、60等。
周期性任务的实际每循环执行持续时间可以是时隙的整数倍(例如,2个时隙),或者时隙的非整数倍(例如,0.2个时隙)。在一些实施例中,本方法包括确定在两个周期性任务之间是否存在冲突。在一些实施例中,在确定冲突之前,本方法还包括确定各个周期性任务的实际每循环执行持续时间是否是最小时隙的整数倍。可选地,在确定各个周期性任务的实际每循环执行持续时间是最小时隙的整数倍时,实际每循环执行持续时间被用作调度每循环执行持续时间(scheduling execution duration per cycle),以便确定冲突。可选地,在确定各个周期性任务的实际每循环执行持续时间不是最小时隙的整数倍时,计算机实现的方法还包括将实际每循环执行持续时间上舍入(round up)到最小时隙的指定整数倍;以及将指定整数倍指定为调度每循环执行持续时间,以便确定冲突。在一个示例中,实际每循环执行持续时间用于执行各个周期性任务,并且调度每循环执行持续时间用于确定冲突。
再次参考图2A,对于每个周期性任务,在一些实施例中,包括用于执行周期性任务的一个或多个处理器的系统包括任务控制模块。任务控制模块存储关于周期性任务的各种属性的信息,包括不变属性和可变属性。不变属性的示例包括任务类型、循环时间、每循环执行持续时间、优先级、任务内容指针等等。可变属性的示例包括执行次数的剩余数量、下一个执行时间点、执行/等待状态等。在一个示例中,执行次数的剩余数量的初始值等于每次执行周期性任务时减少一的执行次数的数量。当执行次数的剩余数量减少到零时,从任务队列中移除用于周期性任务的任务控制模块。在另一个示例中,下一个执行时间点是周期性任务下一次要被执行时的时间点。例如,当系统开始执行周期性任务时或者当相应循环中的执行完成时,每个循环更新下一个执行时间点的值。在另一个示例中,执行/等待状态指示周期性任务是在活动任务子队列中还是在等待任务子队列中还是在要移除的子队列中。当周期性任务被分配有要被移除的状态时,该系统被配置为例如由于该周期性任务与其他周期性任务冲突而从任务队列中移除该周期性任务。
图2A示出了其中任务队列包括活动任务子队列和等待任务子队列的示例。在一些实施例中,计算机实现的方法还包括分别向任务队列中的周期性任务分配优先序。如图2A所示,周期性任务的优先序从右侧到左侧增加。活动任务子队列中的周期性任务的优先序高于等待任务子队列中的周期性任务的优先序。第二组中的第二周期性任务的优先序高于第一组中的第一周期性任务的优先序。在图2A中,第二组中的第二周期性任务包括周期性任务1至5,并且第一组中的第一周期性任务包括周期性任务6至7。周期性任务1至3在活动任务子队列中,并且周期性任务4至7在等待任务子队列中。如在此所使用的,术语“优先序(precedence)”指的是本系统和方法执行周期性任务的时间顺序。如在此所使用的,术语“优先级(priority)”是指分配给周期性任务的重要性。具有相对较高优先级(例如,更重要)的周期性任务不一定具有较高优先序(例如,在时间上被较早执行)。周期性任务的执行按照优先序顺序而不是按照优先级顺序来排序。优先序顺序受几个因素影响,包括状态(活动或等待)、任务类型(第一组或第二组)、优先级等。
在一些实施例中,在相同子队列和相同组中的周期性任务的优先序按照优先级排序。例如,周期性任务1至3处于活动任务子队列中且在第二组中,周期性任务1至3的优先序按照它们各自的优先级来排序。周期性任务6至7处于等待任务子队列中且在第一组中,周期性任务6至7的优先序按照它们各自的优先级排序。周期性任务4至5处于等待任务子队列中且在第二组中,周期性任务4至5的优先序按照它们各自的优先级排序。可选地,在同一子队列中且在同一组中且具有相同优先级的周期性任务的优先序被随机排序。可选地,在同一子队列中且在同一组中且具有相同优先级的周期性任务的优先序按照任务到达时间点进行排序。
图2B示出了根据本公开的一些实施例中的用于执行周期性任务的计算机实现的方法。参考图2B,为了说明,图2B中示出了更新的若干示例,包括“第一更新”、“第二更新”和“第三更新”。在“第一更新”之前,并且在周期性任务的执行期间,第二组的周期性任务1的执行次数的剩余数量被减少到零,第二组的周期性任务1被移动到要被移除的任务子队列,等待在下一次更新(“第一更新”)期间被移除。在“第一更新”之后,从任务队列中排除第二组的周期性任务1。第二组的周期性任务4被移动到活动任务子队列中。第一组的周期性任务6和7保留在等待任务子队列中。在“第二更新”之前,并且在周期性任务的执行期间,第二组的周期性任务2、3和4的执行次数的剩余数量被减少到零,第二组的周期性任务2、3和4被移动到要被移除的任务子队列中,等待在下一次更新(“第二更新”)期间被移除。在“第二更新”之后,第二组的周期性任务2、3和4也被排除在任务队列之外。第二组的周期性任务5被移动到活动任务子队列中。第一组的周期性任务6和7保留在等待任务子队列中。在“第三更新”之前,并且在周期性任务的执行期间,第二组的周期性任务5的执行次数的剩余数量被减少到零,第二组的周期性任务5被移动到要被移除的任务子队列中,等待在下一次更新(“第三更新”)期间被移除。在“第三更新”之后,从任务队列中排除第二组的周期性任务5。第一组的周期性任务6和7被移动到活动任务子队列中。如图2B所示,在本计算机实现的方法的一些实施例中,第二组中的第二周期性任务的优先序总是高于第一组中的第一周期性任务的优先序。可选地,第一组中的第一周期性任务保持在等待任务子队列中,直到第二组中的所有第二周期性任务都已经被执行(其执行次数的剩余数量变为零)并且从任务队列中被排除。
在一些实施例中,该计算机实现的方法还包括形成包括至少一个周期性任务的任务队列;以及将新到达的周期性任务排队。在一些实施例中,第一组中的第一周期性任务在它们之间没有冲突。
在一些实施例中,新到达的周期性任务是第一组的新到达的周期性任务。图3是示出根据本公开的一些实施例中的计算机实现的方法的流程图。参考图3,在一些实施例中,计算机实现的方法包括确定在任务队列中是否存在至少一个周期性任务。在确定任务队列中没有周期性任务(例如,空任务队列)时,在一些实施例中,计算机实现的方法包括将第一组的新到达的周期性任务添加到活动任务子队列中。
在确定任务队列中存在至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括确定任务队列中是否存在第一组的至少一个周期性任务。在确定任务队列中没有第一组的周期性任务时,在一些实施例中,计算机实现的方法还包括将第一组的新到达的周期性任务添加到等待任务子队列中。
在确定任务队列中存在第一组的至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括确定在第一组的新到达的周期性任务与任务队列中的第一组的周期性任务中的任何一个之间是否存在冲突。
在确定在第一组的新到达的周期性任务与任务队列中的第一组的周期性任务之间不存在冲突时,在一些实施例中,所述计算机实现的方法还包括将所述第一组的所述新到达的周期性任务添加到所述任务队列中。任务队列中的第一组的周期性任务按照优先级排序。如果任务队列中第一组的两个周期性任务具有相同的优先级,则它们可以被随机地排序或者按照任务到达时间点来排序。
在确定在第一组的新到达的周期性任务与任务队列中的第一组的周期性任务之间存在冲突时,在一些实施例中,所述计算机实现的方法还包括从所述任务队列中排除所述第一组中具有最低优先级的周期性任务。如果第一组的新到达的周期性任务是被排除的任务,则系统恢复到原始状态。
在一些实施例中,根据本计算机实现的方法,因为当考虑第一组的新到达的周期性任务时,任何潜在的冲突将被解决,因此,在任务队列中的第一组的周期性任务之间不存在冲突。因此,参考图2B,第一组中的周期性任务保留在等待任务子队列中,直到第二组中的所有周期性任务都已经被执行,并且被排除在任务队列之外。当第一组中的多个周期性任务从等待任务子队列移动到活动任务子队列中时,它们被一起移动,因为它们之间没有冲突。
在一些实施例中,在确定第一组的新到达的周期性任务不是第一组的具有最低优先级的周期性任务时,该计算机实现的方法还包括重复确定冲突并且排除周期性任务,直到在第一组的新到达的周期性任务与任务队列中的第一组的周期性任务中的任何一个之间不存在冲突为止;以及将第一组的新到达的周期性任务加入任务队列。任务队列中的第一组的周期性任务按照优先级排序。如果任务队列中第一组的两个周期性任务具有相同的优先级,则它们可以被随机地排序或者按照任务到达时间点来排序。
在一些实施例中,新到达的周期性任务是第二组的新到达的周期性任务。图4是示出根据本公开的一些实施例中的计算机实现的方法的流程图。参考图4,在一些实施例中,计算机实现的方法包括确定在任务队列中是否存在至少一个周期性任务。在确定任务队列中没有周期性任务(例如,空任务队列)时,在一些实施例中,计算机实现的方法包括将第二组的新到达的周期性任务添加到活动任务子队列中。
在确定任务队列中存在至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括确定在等待任务子队列中是否存在至少一个周期性任务。在确定在等待任务子队列中存在至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括将第二组的新到达的周期性任务添加到等待任务子队列中。被添加到等待任务子队列中的第二组的新到达的周期性任务被分配比等待任务子队列中的第一组的任何周期性任务高的优先序。可选地,等待任务子队列中的第二组的周期性任务按照优先级排序。如果等待任务子队列中的第二组的两个周期性任务具有相同的优先级,则它们可以被随机地排序或者按照任务到达时间点来排序。
在确定在等待任务子队列中没有周期性任务时,在一些实施例中,计算机实现的方法还包括确定在第二组的新到达的周期性任务和活动任务子队列中的任何周期性任务之间是否存在冲突。在确定在第二组的新到达的周期性任务和活动任务子队列中的任何周期性任务之间没有冲突时,在一些实施例中,计算机实现的方法还包括将第二组的新到达的周期性任务添加到活动任务子队列中。
在确定在第二组的新到达的周期性任务和活动任务子队列中的周期性任务之间存在冲突时,在一些实施例中,计算机实现的方法还包括确定在活动任务子队列中是否存在第一组的至少一个周期性任务。在确定在活动任务子队列中没有第一组的周期性任务时,在一些实施例中,计算机实现的方法还包括将第二组的新到达的周期性任务添加到等待任务子队列中。
在确定在活动任务子队列中存在第一组的至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括将活动任务子队列中的第一组的周期性任务移动到等待任务子队列中。在将活动任务子队列中的第一组的周期性任务移动到等待任务子队列中之后,在一些实施例中,该计算机实现的方法还包括确定在第二组的新到达的周期性任务和活动任务子队列中剩余的任何周期性任务之间是否存在冲突。
在将活动任务子队列中的第一组的周期性任务移动到等待任务子队列中之后,在确定在第二组的新到达的周期性任务和活动任务子队列中剩余的任何周期性任务之间不存在冲突时,在一些实施例中,该计算机实现的方法还包括将第二组的新到达的周期性任务添加到活动任务子队列中。可选地,活动任务子队列中的第二组的周期性任务按照优先级排序。如果活动任务子队列中的第二组的两个周期性任务具有相同的优先级,则它们可以被随机地排序或者按照任务到达时间点来排序。
在将活动任务子队列中的第一组的周期性任务移动到等待任务子队列中之后,在确定在第二组的新到达的周期性任务和活动任务子队列中剩余的任何周期性任务之间存在冲突时,在一些实施例中,计算机实现的方法还包括将第二组的新到达的周期性任务添加到等待任务子队列中。可选地,等待任务子队列中的第二组的周期性任务按照优先级排序。如果等待任务子队列中的第二组的两个周期性任务具有相同的优先级,则它们可以被随机地排序或者按照任务到达时间点来排序。
在一些实施例中,计算机实现的方法包括形成包括至少一个周期性任务的任务队列,该任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列。图5是示出根据本公开的一些实施例中的计算机实现的方法的流程图。参照图5,在相应的调度时间点,更新任务队列包括确定在等待任务子队列中是否存在至少一个周期性任务。当确定在等待任务子队列中没有周期性任务时,更新过程结束。
在确定在等待任务子队列中存在至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括确定在等待任务子队列中具有最高优先序的周期性任务是否是第一组的周期性任务。在确定在等待任务子队列中具有最高优先序的周期性任务是第一组的周期性任务时,在一些实施例中,计算机实现的方法还包括确定在等待任务子队列中具有最高优先序的周期性任务和活动任务子队列中的任何周期性任务之间是否存在冲突。在确定在等待任务子队列中具有最高优先序的周期性任务和活动任务子队列中的任何周期性任务之间不存在冲突时,在一些实施例中,计算机实现的方法还包括将在等待任务子队列中具有最高优先序的周期性任务添加到活动任务子队列中。在确定在等待任务子队列中具有最高优先序的周期性任务和活动任务子队列中的任何周期性任务之间存在冲突时,更新过程结束。
在一些实施例中,在将等待任务子队列中具有最高优先序的周期性任务添加到活动任务子队列中之后,在一些实施例中,计算机实现的方法还包括根据优先序顺序逐个地依次重复确定冲突并且添加用于等待任务子队列中的剩余周期性任务的周期性任务,直到确定冲突为止,在该时间点,更新过程结束。
再次参考图5,在确定在等待任务子队列中存在至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括确定在等待任务子队列中具有最高优先序的周期性任务是否是第二组的周期性任务。在确定等待任务子队列中具有最高优先序的周期性任务是第二组的周期性任务时,在一些实施例中,计算机实现的方法还包括确定是否存在活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务。在确定存在活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,在一些实施例中,计算机实现的方法还包括从活动任务子队列中移除活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务。在从活动任务子队列中移除活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务之后,在一些实施例中,计算机实现的方法还包括确定在等待任务子队列中具有最高优先序的周期性任务和活动任务子队列中剩余的任何周期性任务之间是否存在冲突。在确定在等待任务子队列中具有最高优先序的周期性任务和活动任务子队列中的任何周期性任务之间不存在冲突时,在一些实施例中,计算机实现的方法还包括将在等待任务子队列中具有最高优先序的周期性任务添加到活动任务子队列中。在确定在等待任务子队列中具有最高优先序的周期性任务和活动任务子队列中的任何周期性任务之间存在冲突时,更新过程结束。
在一些实施例中,在将等待任务子队列中具有最高优先序的周期性任务添加到活动任务子队列中之后,在一些实施例中,计算机实现的方法还包括根据优先序顺序逐个地依次重复确定冲突并且添加用于等待任务子队列中的剩余周期性任务的周期性任务,直到确定冲突为止,在该时间点,更新过程结束。
再次参考图5,在确定在等待任务子队列中存在至少一个周期性任务时,在一些实施例中,计算机实现的方法还包括确定在等待任务子队列中具有最高优先序的周期性任务是否是第二组的周期性任务。在确定等待任务子队列中具有最高优先序的周期性任务是第二组的周期性任务时,在一些实施例中,计算机实现的方法还包括确定是否存在活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务。在确定没有活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,将具有最高优先序的所述周期性任务保持在所述等待任务子队列中。
在一些实施例中,计算机实现的方法包括确定在新到达的周期性任务与一个或多个现有周期性任务之间是否存在冲突。可选地,计算机实现的方法包括确定在第二组的新到达的周期性任务和第二组的一个或多个现有周期性任务之间是否存在冲突。可选地,计算机实现的方法包括确定在第二组的新到达的周期性任务和第一组的一个或多个现有周期性任务之间是否存在冲突。可选地,计算机实现的方法包括确定在第一组的新到达的周期性任务和第二组的一个或多个现有周期性任务之间是否存在冲突。可选地,计算机实现的方法包括确定在第一组的新到达的周期性任务和第一组的一个或多个现有周期性任务之间是否存在冲突。
在一些实施例中,计算机实现的方法包括确定在第二组的新到达的周期性任务和第二组的一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,第二组的一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的相应一个的执行次数的最大数量。
在一些实施例中,第二组的新到达的周期性任务的调度执行时段被表示为:
其中,代表新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表新到达的周期性任务的循环时间,τN代表新到达的周期性任务的调度每循环执行持续时间,NN代表新到达的周期性任务的执行次数的最大数量。
在一些实施例中,确定在第二组的新到达的周期性任务和第二组的一个或多个现有周期性任务之间是否存在冲突包括遍历在第二组的一个或多个现有周期性任务中的任何一个的最后调度执行时段的当前时间和开始时间点之间可用的时隙的选择值,作为第二组的新到达的周期性任务的候选初始开始时间点,以确定在具有相应的候选初始开始时间点的第二组的新到达的周期性任务的候选调度执行时段和第二组的一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
为了减少遍历过程中的计算需求,在一些实施例中,时隙的选择值排除使第二组的新到达的周期性任务的第一调度执行时段的初始开始时间点或结束时间点处的时间点在第二组的一个或多个现有周期性任务中的任何一个的任何调度执行时段内的任何值。
为了进一步减少遍历过程中的计算需求,在一些实施例中,确定是否存在任何重叠的步骤包括,在确定当前轮遍历中的第二组的新到达的周期性任务的任何候选调度执行时段与任何先前轮遍历中的第二组的新到达的周期性任务的任何候选调度执行时段相同时,确定在当前遍历循环中存在重叠。
为了进一步减少遍历过程中的计算需求,在一些实施例中,在各轮遍历中,不遍历初始开始时间点晚于第二组的新到达的周期性任务的结束时间点或者结束时间点早于第二组的新到达的周期性任务的候选初始开始时间点的第二组的任何现有周期性任务。
为了进一步减少遍历过程中的计算需求,在一些实施例中,一旦第一次确定了第二组的新到达的周期性任务的候选调度执行时段与第二组的一个或多个现有周期性任务之一的调度执行时段之间重叠,则终止相应轮遍历。
在一些实施例中,确定在第二组的新到达的周期性任务和第一组的一个或多个现有周期性任务之间是否存在冲突包括获得第一组的一个或多个现有周期性任务的调度执行时段的持续时间的最小公约数;以及,限制在具有两倍于最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为第二组的新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的第二组的新到达的周期性任务的候选调度执行时段与第一组的一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,第一组的一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的相应一个的执行次数的最大数量。
第二组的新到达的周期性任务的调度执行时段被表示为:
其中,代表新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表新到达的周期性任务的循环时间,τN代表新到达的周期性任务的调度每循环执行持续时间,NN代表新到达的周期性任务的执行次数的最大数量。
在一些实施例中,确定在第一组的新到达的周期性任务和第二组的一个或多个现有周期性任务之间是否存在冲突包括获得第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及,限制在具有两倍于最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为第一组的新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的第一组的新到达的周期性任务的候选调度执行时段与第二组的一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,第二组的一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的相应一个的执行次数的最大数量。
第一组的新到达的周期性任务的调度执行时段表示为:
其中,代表新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表新到达的周期性任务的循环时间,τN代表新到达的周期性任务的调度每循环执行持续时间,NN代表新到达的周期性任务的执行次数的最大数量。
在一些实施例中,确定在第一组的新到达的周期性任务和第一组的一个或多个现有周期性任务之间是否存在冲突包括获得第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及,限制在具有最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为第一组的新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的第一组的新到达的周期性任务的候选调度执行时段与第一组的一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
本计算机实现的方法还引入了容限参数。图6示出了根据本公开的一些实施例中调度多个周期性任务的示例。参考图6,在遍历可用作新到达的周期性任务的候选初始开始时间点的时隙的选择值的一轮中,发现在新到达的周期性任务和任务队列中的两个现有周期性任务之间的冲突。然而,如图6所示,新到达的周期性任务的任何候选调度执行时段与任务队列中的任何现有周期性任务的调度执行时段之间的重叠大约为1个时隙。通过引入容限,可以调整与一个或多个现有周期性任务的调度执行时段重叠的候选调度执行时段,以避免重叠。
在一些实施例中,计算机实现的方法包括确定在新到达的周期性任务与一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,确定冲突包括遍历可用作新到达的周期性任务的候选初始开始时间点的时隙的选择值,以确定在具有相应候选初始开始时间点的新到达的周期性任务的候选调度执行时段与一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。可选地,该计算机实现的方法还包括,在确定新到达的周期性任务的任何候选调度执行时段与一个或多个现有周期性任务中的任何现有周期性任务的调度执行时段之间的任何重叠在容限范围内时,调整与一个或多个现有周期性任务的调度执行时段重叠的候选调度执行时段,使得避免任何重叠。该容限范围可以被定义为相对较小的范围,例如1个时隙、2个时隙、3个时隙等等。可选地,容限范围小于5个时隙,例如,小于4个时隙,或小于3个时隙。可选地,容限范围小于在彼此重叠的调度每循环执行持续时间或候选调度执行时段的1/2(例如,小于1/3、小于1/4、小于1/5、小于1/6、小于1/7、小于1/8、小于1/9或小于1/10)。
本计算机实现的方法具有若干优点。首先,根据本计算机实现的方法调度的周期性任务严格遵守它们各自的循环时间。例如,本计算机实现的方法可以保证严格地在调度时间点,各个周期性任务开始每循环执行持续时间。第二,本计算机实现的方法不对第二组的周期性任务(例如,具有执行次数的有限数量的周期性任务)的循环时间和每循环执行持续时间的选择施加限制或约束。第三,通过引入容限的概念,可以提高任务吞吐量,同时仍然保持对调度循环时间的严格遵守。第四,当需要时,本计算机实现的方法将第一组的周期性任务从活动任务子队列移动到等待任务子队列中,允许将第二组的新到达的周期性任务放置在活动任务子队列中。这种独特的实现减少了任务调度延迟。
在另一方面,本公开提供了一种包括用于执行周期性任务的一个或多个处理器的系统。在一些实施例中,包括用于执行周期性任务的一个或多个处理器的系统包括存储器;以及一个或多个处理器。存储器和一个或多个处理器彼此连接。在一些实施例中,存储器存储计算机可执行指令以控制一个或多个处理器将周期性任务分类到包括第一组和第二组的至少两个组中的一个。可选地,第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
图7是根据本公开的一些实施例中的动态立体显示设备的的框图。参考图7,在一些实施例中,动态立体显示设备1000可以包括任何适当类型的TV,如,等离子体TV、液晶显示器(LCD)TV、触屏TV、投影TV、非智能TV、智能TV等。动态立体显示设备1000还可以包括其他计算系统,如,个人计算机(PC)、平板电脑或笔记本电脑或智能手机等。此外,动态立体显示设备1000可以是任何适当的内容呈现装置,其能够呈现适当内容。并且用户可以与动态立体显示设备1000进行交互以执行感兴趣的操作。
如图7所示,动态立体显示设备1000可以包括处理器1002、存储介质1004、显示器1006、通信模块1008、数据库1010和外围设备1012。可以省略某些装置以及可以包括其他装置以更好的描述相关实施例。
处理器1002可以包括任何适当的一个或多个处理器。处理器1002可以包括用于多线程或并行处理的多个核心。处理器1002可以执行计算机程序指令的序列以执行各个过程。存储介质1004可以包括存储器模块(如,ROM、RAM、闪存模块)和大容量存储器(如,CD-ROM和硬盘)等。存储介质1004可以存储计算机程序,以在计算机程序由处理器1002执行时实现各种过程。例如,存储介质1004可以存储计算机程序,以在计算机程序由处理器1002执行时实现各种算法。
进一步的,通信模块1008可以包括某些网络接口装置,该网络接口装置被配置成建立通过通信网络(如,TV电缆网络、无线网络、互联网)的连接。数据库1010可以包括一个或多个数据库,所述一个或多个数据库被配置成存储某些数据以及对所存储的某些数据执行某些操作,如,数据库搜索。
显示器1006可以向用户提供信息。显示器1006可以包括任何适当类型的计算机显示装置或电子装置显示器,如,基于LCD或OLED的装置。外围设备1012可以包括各种传感器或其他I/O装置,如,键盘或鼠标。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
附图中的流程图和框图,图示了按照本公开各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个顺序接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器当确定周期性任务的执行次数的数量大于执行次数的最小数量时,将周期性任务分类到第一组中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以当确定所述周期性任务的执行次数的数量小于等于执行次数的最小数量时,将周期性任务分类到所述第二组中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在两个周期性任务之间是否存在冲突。可选地,存储器还存储计算机可执行指令以控制一个或多个处理器以在确定所述冲突之前,确定相应周期性任务的实际每循环执行持续时间是否是最小时隙的整数倍;在确定所述相应周期性任务的所述实际每循环执行持续时间不是所述最小时隙的整数倍时,将所述实际每循环执行持续时间上舍入到所述最小时隙的指定整数倍;以及为了确定所述冲突,将指定整数倍指定为调度每循环执行持续时间。可选地,存储器还存储计算机可执行指令以控制一个或多个处理器以使用实际每循环执行持续时间执行所述相应周期性任务,并且使用所述调度每循环执行持续时间确定所述冲突。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列;以及分别向所述任务队列中的周期性任务分配优先序。可选地,所述任务队列包括活动任务子队列和等待任务子队列。可选地,所述活动任务子队列中的周期性任务的优先序高于所述等待任务子队列中的周期性任务的优先序。可选地,所述第二组中的第二周期性任务的优先序高于所述第一组中的所述第一周期性任务的优先序。可选地,在同一子队列且在同一组中的周期性任务的优先序按优先级排序。可选地,在同一子队列且在同一组中且具有同一优先级的周期性任务的优先序被随机排序或按照任务到达时间点排序。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列;以及对所述第一组的新到达的周期性任务进行排队。可选地,为了对所述第一组的所述新到达的周期性任务进行排队,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务之间存在冲突时,从所述任务队列中排除所述第一组的具有最低优先级的周期性任务。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以重复确定冲突和排除周期性任务,直到所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间不存在冲突;以及将所述第一组的所述新到达的周期性任务添加到所述任务队列中。可选地,所述任务队列中的所述第一组的周期性任务按照优先级排序。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列;以及对所述第一组的新到达的周期性任务进行排队。可选地,为了对所述第一组的所述新到达的周期性任务进行排队,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务中的任何一个之间不存在冲突时,将所述第一组的所述新到达的周期性任务添加到所述任务队列中。可选地,所述任务队列中的所述第一组的周期性任务按照优先级排序。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队。可选地,为了对所述第二组的所述新到达的周期性任务进行排队,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述等待任务子队列中是否存在至少一个周期性任务;以及在确定在所述等待任务子队列中存在至少一个周期性任务时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。可选地,被添加到所述等待任务子队列中的所述第二组的所述新到达的周期性任务被分配的优先序比所述等待任务子队列中的所述第一组的任何周期性任务的优先序高。可选地,所述等待任务子队列中的所述第二组的周期性任务按照优先级排序。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队。可选地,为了对所述第二组的所述新到达的周期性任务进行排队,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述等待任务子队列中是否存在至少一个周期性任务;在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队。可选地,为了对所述第二组的所述新到达的周期性任务进行排队,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述等待任务子队列中是否存在至少一个周期性任务;在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务之间存在冲突时,确定在所述活动任务子队列中是否存在所述第一组的至少一个周期性任务;在确定在所述活动任务子队列中存在所述第一组的至少一个周期性任务时,将所述活动任务子队列中的所述第一组的周期性任务移动到所述等待任务子队列中;以及在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间是否存在冲突。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列。可选地,在相应的调度时间点,为了更新所述任务队列,存储器还存储计算机可执行指令以控制一个或多个处理器以确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第一组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第一组的周期性任务时,确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间是否存在冲突;以及在确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列。可选地,在所述等待任务子队列中具有最高优先序的所述周期性任务是所述第二组的周期性任务。可选地,在相应的调度时间点,为了更新所述任务队列,存储器还存储计算机可执行指令以控制一个或多个处理器以确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;在确定存在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,从所述活动任务子队列中移除在所述活动任务子队列中具有等于零的执行次数的剩余数量的所述周期性任务;确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间是否存在冲突;以及在确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以根据优先序顺序逐个依次地重复确定冲突并且添加用于所述等待任务子队列中的剩余周期性任务的周期性任务,直到确定冲突为止。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列。可选地,在相应的调度时间点,为了更新所述任务队列,存储器还存储计算机可执行指令以控制一个或多个处理器以确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;以及在确定不存在在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,将具有最高优先序的所述周期性任务保持在所述等待任务子队列中。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第二组的新到达的周期性任务与所述第二组的一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,所述第二组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量。
在一些实施例中,所述第二组的所述新到达的周期性任务的调度执行时段被表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,NN代表所述新到达的周期性任务的执行次数的最大数量。
在一些实施例中,为了确定所述冲突,存储器还存储计算机可执行指令以控制一个或多个处理器以遍历在所述第二组的所述一个或多个现有周期性任务中的任何一个的最后调度执行时段的当前时间和开始时间点之间可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应的候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段和所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。可选地,时隙的所述选择值排除使所述第二组的所述新到达的周期性任务的第一调度执行时段的初始开始时间点或结束时间点处的时间点在所述第二组的所述一个或多个现有周期性任务中的任何一个的任何调度执行时段内的任何值。可选地,为了确定是否存在任何重叠,存储器还存储计算机可执行指令以控制一个或多个处理器以在确定当前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段与任何先前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段相同时,确定在所述当前轮遍历中存在重叠。可选地,在各轮遍历中,不遍历初始开始时间点晚于所述第二组的所述新到达的周期性任务的结束时间点或者结束时间点早于所述第二组的所述新到达的周期性任务的候选初始开始时间点的所述第二组的任何现有周期性任务。可选地,一旦第一次确定了所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务之一的调度执行时段之间的重叠,则存储器还存储计算机可执行指令以控制一个或多个处理器以终止相应轮遍历。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突。可选地,为了确定所述冲突,存储器还存储计算机可执行指令以控制一个或多个处理器以获得所述第一组的所述一个或多个现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,所述第一组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量。
所述第二组的所述新到达的周期性任务的调度执行时段被表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,NN代表所述新到达的周期性任务的执行次数的最大数量。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突。可选地,为了确定所述冲突,存储器还存储计算机可执行指令以控制一个或多个处理器以获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,所述第二组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量;
所述第一组的所述新到达的周期性任务的调度执行时段表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,NN代表所述新到达的周期性任务的执行次数的最大数量。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在所述第一组的新到达的周期性任务和所述第一组的一个或多个现有周期性任务之间是否存在冲突。可选地,为了确定所述冲突,存储器还存储计算机可执行指令以控制一个或多个处理器以获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以确定在新到达的周期性任务和一个或多个现有周期性任务之间是否存在冲突。可选地,为了确定所述冲突,存储器还存储计算机可执行指令以控制一个或多个处理器以遍历可用作所述新到达的周期性任务的候选初始开始时间点的时隙的选择值,以确定在具有相应候选初始开始时间点的所述新到达的周期性任务的候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。在一些实施例中,存储器还存储计算机可执行指令以控制一个或多个处理器以在确定在所述新到达的周期性任务的任何候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间的任何重叠在容限范围内时,调整与所述一个或多个现有周期性任务的所述调度执行时段重叠的候选调度执行时段,以避免任何重叠。
在另一方面,本公开提供了一种计算机程序产品。所述计算机程序产品包括其上具有计算机可读指令的非暂时性有形计算机可读介质。在一些实施例中,所述计算机可读指令可由处理器执行以使所述处理器执行:将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个。可选地,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:当确定周期性任务的执行次数的数量大于执行次数的最小数量时,将周期性任务分类到第一组中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:当确定所述周期性任务的执行次数的数量小于等于执行次数的最小数量时,将周期性任务分类到所述第二组中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在两个周期性任务之间是否存在冲突。可选地,在确定所述冲突之前,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定相应周期性任务的实际每循环执行持续时间是否是最小时隙的整数倍;在确定所述相应周期性任务的所述实际每循环执行持续时间不是所述最小时隙的整数倍时,将所述实际每循环执行持续时间上舍入到所述最小时隙的指定整数倍;以及为了确定所述冲突,将指定整数倍指定为调度每循环执行持续时间。可选地,使用实际每循环执行持续时间执行所述相应周期性任务,并且使用所述调度每循环执行持续时间确定所述冲突。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列;以及分别向所述任务队列中的周期性任务分配优先序。可选地,所述任务队列包括活动任务子队列和等待任务子队列。可选地,所述活动任务子队列中的周期性任务的优先序高于所述等待任务子队列中的周期性任务的优先序。可选地,所述第二组中的第二周期性任务的优先序高于所述第一组中的所述第一周期性任务的优先序。可选地,在同一子队列且在同一组中的周期性任务的优先序按优先级排序。可选地,在同一子队列且在同一组中且具有同一优先级的周期性任务的优先序被随机排序或按照任务到达时间点排序。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列;以及对所述第一组的新到达的周期性任务进行排队。可选地,为了对所述第一组的所述新到达的周期性任务进行排队,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务之间存在冲突时,从所述任务队列中排除所述第一组的具有最低优先级的周期性任务。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:重复确定冲突和排除周期性任务,直到所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间不存在冲突;以及将所述第一组的所述新到达的周期性任务添加到所述任务队列中。可选地,所述任务队列中的所述第一组的周期性任务按照优先级排序。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列;以及对所述第一组的新到达的周期性任务进行排队。可选地,为了对所述第一组的所述新到达的周期性任务进行排队,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务中的任何一个之间不存在冲突时,将所述第一组的所述新到达的周期性任务添加到所述任务队列中。可选地,所述任务队列中的所述第一组的周期性任务按照优先级排序。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队。可选地,为了对所述第二组的所述新到达的周期性任务进行排队,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述等待任务子队列中是否存在至少一个周期性任务;以及在确定在所述等待任务子队列中存在至少一个周期性任务时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:对被添加到所述等待任务子队列中的所述第二组的所述新到达的周期性任务分配优先序,其比所述等待任务子队列中的所述第一组的任何周期性任务的优先序高;以及将所述等待任务子队列中的所述第二组的周期性任务按照优先级排序。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队。可选地,为了对所述第二组的所述新到达的周期性任务进行排队,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述等待任务子队列中是否存在至少一个周期性任务;在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;以及在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及对所述第二组的新到达的周期性任务进行排队。可选地,为了对所述第二组的所述新到达的周期性任务进行排队,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述等待任务子队列中是否存在至少一个周期性任务;在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务之间存在冲突时,确定在所述活动任务子队列中是否存在所述第一组的至少一个周期性任务;在确定在所述活动任务子队列中存在所述第一组的至少一个周期性任务时,将所述活动任务子队列中的所述第一组的周期性任务移动到所述等待任务子队列中;以及在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间是否存在冲突。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列。可选地,在相应的调度时间点,为了更新所述任务队列,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第一组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第一组的周期性任务时,确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间是否存在冲突;以及在确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列。可选地,在所述等待任务子队列中具有最高优先序的所述周期性任务是所述第二组的周期性任务。可选地,在相应的调度时间点,为了更新所述任务队列,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;在确定存在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,从所述活动任务子队列中移除在所述活动任务子队列中具有等于零的执行次数的剩余数量的所述周期性任务;确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间是否存在冲突;以及在确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:根据优先序顺序逐个依次地重复确定冲突并且添加用于所述等待任务子队列中的剩余周期性任务的周期性任务,直到确定冲突为止。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及在调度时间点分别周期性地更新所述任务队列。可选地,在相应的调度时间点,为了更新所述任务队列,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;以及在确定不存在在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,将具有最高优先序的所述周期性任务保持在所述等待任务子队列中。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第二组的新到达的周期性任务与所述第二组的一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,所述第二组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量。
在一些实施例中,所述第二组的所述新到达的周期性任务的调度执行时段被表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,NN代表所述新到达的周期性任务的执行次数的最大数量。
在一些实施例中,为了确定所述冲突,所述计算机可读指令还可由处理器执行以使所述处理器执行:遍历在所述第二组的所述一个或多个现有周期性任务中的任何一个的最后调度执行时段的当前时间和开始时间点之间可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应的候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段和所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。可选地,时隙的所述选择值排除使所述第二组的所述新到达的周期性任务的第一调度执行时段的初始开始时间点或结束时间点处的时间点在所述第二组的所述一个或多个现有周期性任务中的任何一个的任何调度执行时段内的任何值。可选地,确定是否存在任何重叠包括:在确定当前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段与任何先前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段相同时,确定在所述当前轮遍历中存在重叠。可选地,在各轮遍历中,不遍历初始开始时间点晚于所述第二组的所述新到达的周期性任务的结束时间点或者结束时间点早于所述第二组的所述新到达的周期性任务的候选初始开始时间点的所述第二组的任何现有周期性任务。可选地,一旦第一次确定了所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务之一的调度执行时段之间的重叠,则终止相应轮遍历。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突。可选地,为了更新任务队列,所述计算机可读指令还可由处理器执行以使所述处理器执行:获得所述第一组的所述一个或多个现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,所述第一组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量。
所述第二组的所述新到达的周期性任务的调度执行时段被表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,以及NN代表所述新到达的周期性任务的执行次数的最大数量。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突。可选地,为了确定所述冲突,所述计算机可读指令还可由处理器执行以使所述处理器执行:获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突。在一些实施例中,所述第二组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量;
所述第一组的所述新到达的周期性任务的调度执行时段表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,NN代表所述新到达的周期性任务的执行次数的最大数量。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在所述第一组的新到达的周期性任务和所述第一组的一个或多个现有周期性任务之间是否存在冲突。可选地,为了确定所述冲突,所述计算机可读指令还可由处理器执行以使所述处理器执行:获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及限制在具有所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:确定在新到达的周期性任务和一个或多个现有周期性任务之间是否存在冲突。可选地,为了确定所述冲突,所述计算机可读指令还可由处理器执行以使所述处理器执行:遍历可用作所述新到达的周期性任务的候选初始开始时间点的时隙的选择值,以确定在具有相应候选初始开始时间点的所述新到达的周期性任务的候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。在一些实施例中,所述计算机可读指令还可由处理器执行以使所述处理器执行:在确定在所述新到达的周期性任务的任何候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间的任何重叠在容限范围内时,调整与所述一个或多个现有周期性任务的所述调度执行时段重叠的候选调度执行时段,以避免任何重叠。
结合本文所公开的配置而描述的各种说明性操作可实施为电子硬件、计算机软件或两者的组合。这些操作可以用通用处理器、数字信号处理器(DSP)、ASIC或ASSP、FPGA或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或设计成产生本文公开的配置的它们的任何组合来实现或执行。例如,这样的配置可以至少部分地被实现为硬连线电路、实现为被制造到专用集成电路中的电路配置、或者实现为被加载到非易失性存储中的固件程序、或者作为机器可读代码从数据存储介质加载或加载到数据存储介质中的软件程序,这样的代码是可由诸如通用处理器或其他数字信号处理单元的逻辑元件阵列执行的指令。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以实现为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合、或者任何其它这种配置。软件模块可以驻留在非暂时性存储介质中,例如RAM(随机存取存储器)、ROM(只读存储器)、非易失性RAM(NVRAM),例如闪存RAM、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘或CD-ROM;或者以本领域已知的任何其它形式的存储介质。说明性存储介质耦合到处理器,使得处理器可从存储介质读取信息和将信息写入到存储介质。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在替代方案中,处理器和存储介质可作为分立组件驻留于用户终端中。
为了说明和描述的目的,已经给出了本发明的实施例的上述描述。其不是穷举的,也不是要将本发明限制为所公开的精确形式或示例性实施例。因此,前面的描述应当被认为是说明性的而不是限制性的。显然,许多修改和变化对于本领域技术人员将是显而易见的。选择和描述实施例是为了解释本发明的原理及其最佳模式实际应用,从而使得本领域技术人员能够理解本发明的各种实施例以及适合于所考虑的特定使用或实现的各种修改。本发明的范围旨在由所附权利要求及其等价物来限定,其中除非另有说明,否则所有术语都意味着其最广泛的合理意义。因此,术语“本发明(the invention、the presentinvention)”等不一定将权利要求范围限制为特定实施例,并且对本发明的示例性实施例的引用不意味着对本发明的限制,并且不应推断出这样的限制。本发明仅由所附权利要求的精神和范围来限定。此外,这些权利要求可能涉及使用“第一”、“第二”等,随后是名词或元素。这些术语应当被理解为命名法,并且不应当被解释为对由这些命名法所修改的元件的数量进行限制,除非已经给出了特定的数量。所描述的任何优点和益处可能不适用于本发明的所有实施例。应当理解,在不脱离由所附权利要求限定的本发明的范围的情况下,本领域技术人员可以对所描述的实施例进行改变。此外,本公开中的元件和组件都不是要贡献给公众,无论该元件或组件是否在所附权利要求中明确叙述。
Claims (28)
1.一种执行周期性任务的计算机实现的方法,该方法应用于包括一个或多个处理器的系统,且包括:
将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个;
其中,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
2.根据权利要求1所述的计算机实现的方法,其中,分类所述周期性任务包括:
当确定所述周期性任务的执行次数的数量大于执行次数的最小数量时,将周期性任务分类到所述第一组中。
3.根据权利要求1或2所述的计算机实现的方法,其中,分类所述周期性任务包括:
当确定所述周期性任务的执行次数的数量小于等于执行次数的最小数量时,将周期性任务分类到所述第二组中。
4.根据权利要求1至3中任一项所述的计算机实现的方法,还包括确定在两个周期性任务之间是否存在冲突;
其中,在确定所述冲突之前,所述计算机实现的方法还包括:
确定相应周期性任务的实际每循环执行持续时间是否是最小时隙的整数倍;
在确定所述相应周期性任务的所述实际每循环执行持续时间不是所述最小时隙的整数倍时,将所述实际每循环执行持续时间上舍入到所述最小时隙的指定整数倍;以及
为了确定所述冲突,将所述指定整数倍指定为调度每循环执行持续时间;
其中,所述实际每循环执行持续时间用于执行所述相应周期性任务,并且所述调度每循环执行持续时间用于确定所述冲突。
5.根据权利要求1至4中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列;以及
分别向所述任务队列中的周期性任务分配优先序;
其中,所述任务队列包括活动任务子队列和等待任务子队列;
所述活动任务子队列中的周期性任务的优先序高于所述等待任务子队列中的周期性任务的优先序;
所述第二组中的第二周期性任务的优先序高于所述第一组中的所述第一周期性任务的优先序;以及
在同一子队列且在同一组中的周期性任务的优先序按优先级排序。
6.根据权利要求5所述的计算机实现的方法,其中,在同一子队列且在同一组中且具有同一优先级的周期性任务的优先序被随机排序或按照任务到达时间点排序。
7.根据权利要求1至6中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列;以及
对所述第一组的新到达的周期性任务进行排队;
其中,对所述第一组的所述新到达的周期性任务进行排队包括:
确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及
在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务之间存在冲突时,从所述任务队列中排除所述第一组的具有最低优先级的周期性任务。
8.根据权利要求7所述的计算机实现的方法,还包括:
重复确定冲突和排除周期性任务,直到所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间不存在冲突;以及
将所述第一组的所述新到达的周期性任务添加到所述任务队列中;
其中,所述任务队列中的所述第一组的周期性任务按照优先级排序。
9.根据权利要求1至8中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列;以及
对所述第一组的新到达的周期性任务进行排队;
其中,对所述第一组的所述新到达的周期性任务进行排队包括:
确定在所述第一组的所述新到达的周期性任务与所述任务队列中的所述第一组的周期性任务中的任何一个之间是否存在冲突;以及
在确定在所述第一组的所述新到达的周期性任务和所述任务队列中的所述第一组的所述周期性任务之间不存在冲突时,将所述第一组的所述新到达的周期性任务添加到所述任务队列中;
其中,所述任务队列中的所述第一组的周期性任务按照优先级排序。
10.根据权利要求1至9中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及
对所述第二组的新到达的周期性任务进行排队;
其中,对所述第二组的所述新到达的周期性任务进行排队包括:
确定在所述等待任务子队列中是否存在至少一个周期性任务;以及
在确定在所述等待任务子队列中存在至少一个周期性任务时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。
11.根据权利要求10所述的计算机实现的方法,其中,被添加到所述等待任务子队列中的所述第二组的所述新到达的周期性任务被分配的优先序比所述等待任务子队列中的所述第一组的任何周期性任务的优先序高;以及
所述等待任务子队列中的所述第二组的周期性任务按照优先级排序。
12.根据权利要求1至11中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及
对所述第二组的新到达的周期性任务进行排队;
其中,对所述第二组的所述新到达的周期性任务进行排队包括:
确定在所述等待任务子队列中是否存在至少一个周期性任务;
在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;以及
在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
13.根据权利要求1至12中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及
对所述第二组的新到达的周期性任务进行排队;
其中,对所述第二组的所述新到达的周期性任务进行排队包括:
确定在所述等待任务子队列中是否存在至少一个周期性任务;
在确定在所述等待任务子队列中不存在周期性任务时,确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务中的任何一个之间是否存在冲突;
在确定在所述第二组的所述新到达的周期性任务与所述活动任务子队列中的周期性任务之间存在冲突时,确定在所述活动任务子队列中是否存在所述第一组的至少一个周期性任务;
在确定在所述活动任务子队列中存在所述第一组的至少一个周期性任务时,将所述活动任务子队列中的所述第一组的周期性任务移动到所述等待任务子队列中;以及
在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间是否存在冲突。
14.根据权利要求13所述的计算机实现的方法,还包括:在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间不存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述活动任务子队列中。
15.根据权利要求13所述的计算机实现的方法,还包括:在将所述活动任务子队列中的所述第一组的所述周期性任务移动到所述等待任务子队列中之后,确定在所述第二组的所述新到达的周期性任务和所述活动任务子队列中剩余的周期性任务中的任何一个之间存在冲突时,将所述第二组的所述新到达的周期性任务添加到所述等待任务子队列中。
16.根据权利要求1至15中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及
在调度时间点分别周期性地更新所述任务队列;
其中,在相应的调度时间点,更新所述任务队列包括:
确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第一组的周期性任务;
在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第一组的周期性任务时,确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间是否存在冲突;以及
在确定在所述等待任务子队列中具有最高优先序的周期性任务与所述活动任务子队列中的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
17.根据权利要求1至16中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及
在调度时间点分别周期性地更新所述任务队列;
其中,在所述等待任务子队列中具有最高优先序的所述周期性任务是所述第二组的周期性任务;
其中,在相应的调度时间点,更新所述任务队列包括:
确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;
在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;
在确定存在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,从所述活动任务子队列中移除在所述活动任务子队列中具有等于零的执行次数的剩余数量的所述周期性任务;
确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间是否存在冲突;以及
在确定在所述等待任务子队列中具有最高优先序的所述周期性任务与所述活动任务子队列中剩余的任何周期性任务之间不存在冲突时,将所述等待任务子队列中具有最高优先序的所述周期性任务添加到所述活动任务子队列中。
18.根据权利要求16或17所述的计算机实现的方法,还包括根据优先序顺序逐个依次地重复确定冲突并且添加用于所述等待任务子队列中的剩余周期性任务的周期性任务,直到确定冲突为止。
19.根据权利要求1至18中任一项所述的计算机实现的方法,还包括:
形成包括至少一个周期性任务的任务队列,所述任务队列包括活动任务子队列和等待任务子队列;以及
在调度时间点分别周期性地更新所述任务队列;
其中,在相应的调度时间点,更新所述任务队列包括:
确定所述等待任务子队列中具有最高优先序的周期性任务是否是所述第二组的周期性任务;
在确定所述等待任务子队列中具有最高优先序的周期性任务是所述第二组的周期性任务时,确定是否存在所述活动任务子队列中具有等于零的执行次数的剩余数量的任何周期性任务;以及
在确定不存在在所述活动任务子队列中具有等于零的执行次数的剩余数量的周期性任务时,将具有最高优先序的所述周期性任务保持在所述等待任务子队列中。
20.根据权利要求1至19中任一项所述的计算机实现的方法,还包括确定在所述第二组的所述新到达的周期性任务与所述第二组的一个或多个现有周期性任务之间是否存在冲突;
其中,确定所述冲突包括:
遍历在所述第二组的所述一个或多个现有周期性任务中的任何一个的最后调度执行时段的当前时间和开始时间点之间可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应的候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段和所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠;
其中,时隙的所述选择值排除使所述第二组的所述新到达的周期性任务的第一调度执行时段的初始开始时间点或结束时间点处的时间点在所述第二组的所述一个或多个现有周期性任务中的任何一个的任何调度执行时段内的任何值;
其中,确定是否存在任何重叠包括,在确定当前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段与任何先前轮遍历中的所述第二组的所述新到达的周期性任务的任何候选调度执行时段相同时,确定在所述当前轮遍历中存在重叠;
其中,在各轮遍历中,不遍历初始开始时间点晚于所述第二组的所述新到达的周期性任务的结束时间点或者结束时间点早于所述第二组的所述新到达的周期性任务的候选初始开始时间点的所述第二组的任何现有周期性任务;以及
其中,一旦第一次确定了所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务之一的调度执行时段之间的重叠,则终止相应轮遍历。
21.根据权利要求1至20中任一项所述的计算机实现的方法,还包括确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突;
其中,确定所述冲突包括:
获得所述第一组的所述一个或多个现有周期性任务的调度执行时段的持续时间的最小公约数;以及
限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第二组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第二组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
22.根据权利要求1至21中任一项所述的计算机实现的方法,还包括确定在所述第二组的新到达的周期性任务与所述第一组的一个或多个现有周期性任务之间是否存在冲突;
其中,所述第一组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量;
其中,所述第二组的所述新到达的周期性任务的调度执行时段被表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,以及NN代表所述新到达的周期性任务的执行次数的最大数量;
其中,确定所述冲突包括:
执行余数值计算以获得修改的调度执行时段:
以及
使用所述修改的调度执行时段来确定所述冲突。
23.根据权利要求1至22中任一项所述的计算机实现的方法,还包括确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突;
其中,确定所述冲突包括:
获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及
限制在具有两倍于所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第二组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
24.根据权利要求1至23中任一项所述的计算机实现的方法,还包括确定在所述第一组的新到达的周期性任务和所述第二组的一个或多个现有周期性任务之间是否存在冲突;
其中,所述第二组的所述一个或多个现有周期性任务中的相应一个的调度执行时段被表示为:
其中,代表所述一个或多个现有周期性任务中的所述相应一个的在第一调度执行时段开始之前的初始开始时间段,Ti代表所述一个或多个现有周期性任务中的所述相应一个的循环时间,τi代表所述一个或多个现有周期性任务中的所述相应一个的调度每循环执行持续时间,以及Ni代表所述一个或多个现有周期性任务中的所述相应一个的执行次数的最大数量;
其中,所述第一组的所述新到达的周期性任务的调度执行时段表示为:
其中,代表所述新到达的周期性任务的在第一调度执行时段开始前的初始开始时间段,TN代表所述新到达的周期性任务的循环时间,τN代表所述新到达的周期性任务的调度每循环执行持续时间,NN代表所述新到达的周期性任务的执行次数的最大数量;
其中,确定所述冲突包括:
执行余数值计算以获得修改的调度执行时段:
以及
使用所述修改的调度执行时段来确定所述冲突。
25.根据权利要求1至24中任一项所述的计算机实现的方法,还包括确定在所述第一组的新到达的周期性任务和所述第一组的一个或多个现有周期性任务之间是否存在冲突;
其中,确定所述冲突包括:
获得所述第一组的新增加的周期性任务和现有周期性任务的调度执行时段的持续时间的最小公约数;以及
限制在具有所述最小公约数的持续时间的遍历时段中,遍历在遍历时段中可用的时隙的选择值,作为所述第一组的所述新到达的周期性任务的候选初始开始时间点,以确定在具有相应候选初始开始时间点的所述第一组的所述新到达的周期性任务的候选调度执行时段与所述第一组的所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠。
26.根据权利要求1至25中任一项所述的计算机实现的方法,还包括确定在新到达的周期性任务与一个或多个现有周期性任务之间是否存在冲突;
其中,确定所述冲突包括遍历可用作所述新到达的周期性任务的候选初始开始时间点的时隙的选择值,以确定在具有相应候选初始开始时间点的所述新到达的周期性任务的候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间是否存在任何重叠;
其中,所述计算机实现的方法还包括在确定在所述新到达的周期性任务的任何候选调度执行时段与所述一个或多个现有周期性任务中的任何一个的调度执行时段之间的任何重叠在容限范围内时,调整与所述一个或多个现有周期性任务的所述调度执行时段重叠的候选调度执行时段,以避免任何重叠。
27.一种执行周期性任务的包括一个或多个处理器的系统,包括:
存储器;
一个或多个处理器;
其中,所述存储器和所述一个或多个处理器彼此连接;以及
所述存储器存储用于控制所述一个或多个处理器执行以下操作的计算机可执行指令:
将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个;
其中,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
28.一种计算机程序产品,包括其上具有计算机可读指令的非暂时性有形计算机可读介质,所述计算机可读指令可由处理器执行以使所述处理器执行:
将所述周期性任务分类到包括第一组和第二组的至少两个组中的一个;
其中,所述第一组中的第一周期性任务的循环时间分别是最大循环时间的一个或多个整数约数。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/097320 WO2022252026A1 (en) | 2021-05-31 | 2021-05-31 | Computer-implemented method in system comprising one or more processors for executing periodic tasks, system comprising one or more processors for executing periodic tasks, and computer-program product |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115698948A true CN115698948A (zh) | 2023-02-03 |
Family
ID=84323814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180001371.XA Pending CN115698948A (zh) | 2021-05-31 | 2021-05-31 | 执行周期性任务的计算机实现的方法、执行周期性任务的包括一个或多个处理器的系统以及计算机程序产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240045720A1 (zh) |
CN (1) | CN115698948A (zh) |
WO (1) | WO2022252026A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117421106B (zh) * | 2023-12-11 | 2024-03-08 | 湖南行必达网联科技有限公司 | 一种嵌入式软件的任务调度方法、系统及设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006523354A (ja) * | 2003-03-31 | 2006-10-12 | アバヤ テクノロジー コーポレイション | 周期的現象の効率的スケジューリング用システムおよび方法 |
US8438572B2 (en) * | 2006-03-15 | 2013-05-07 | Freescale Semiconductor, Inc. | Task scheduling method and apparatus |
CN102132254B (zh) * | 2008-08-28 | 2013-12-11 | Nec欧洲有限公司 | 用于调度周期性过程的方法和系统 |
US8924976B2 (en) * | 2011-08-26 | 2014-12-30 | Knu-Industry Cooperation Foundation | Task scheduling method and apparatus |
US20180039514A1 (en) * | 2016-08-05 | 2018-02-08 | General Electric Company | Methods and apparatus to facilitate efficient scheduling of digital tasks in a system |
CN109716298A (zh) * | 2016-09-16 | 2019-05-03 | 华为技术有限公司 | 用于短周期性任务的有效调度器 |
-
2021
- 2021-05-31 WO PCT/CN2021/097320 patent/WO2022252026A1/en active Application Filing
- 2021-05-31 CN CN202180001371.XA patent/CN115698948A/zh active Pending
- 2021-05-31 US US17/762,344 patent/US20240045720A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240045720A1 (en) | 2024-02-08 |
WO2022252026A1 (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ananthanarayanan et al. | {GRASS}: Trimming stragglers in approximation analytics | |
US10908954B2 (en) | Quality of service classes | |
CN113535367B (zh) | 任务调度方法及相关装置 | |
CN109408215B (zh) | 一种计算节点的任务调度方法和装置 | |
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
US10338970B2 (en) | Multi-platform scheduler for permanent and transient applications | |
CN107832143B (zh) | 一种物理机资源的处理方法和装置 | |
US20170351551A1 (en) | Concurrent distributed graph processing system with self-balance | |
US7681196B2 (en) | Providing optimal number of threads to applications performing multi-tasking using threads | |
US11169724B2 (en) | Method, electronic device, and program product for scheduling requests for reclaiming storage space | |
CN109917705B (zh) | 一种多任务调度方法 | |
US10310891B2 (en) | Hand-off scheduling | |
CN110362391B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN112214319A (zh) | 一种计算资源感知的任务调度方法 | |
WO2020121292A1 (en) | Efficient data processing in a serverless environment | |
CN105677744A (zh) | 一种文件系统中提高服务质量的方法和装置 | |
CN115698948A (zh) | 执行周期性任务的计算机实现的方法、执行周期性任务的包括一个或多个处理器的系统以及计算机程序产品 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
US10922134B2 (en) | Method, device and computer program product for processing data | |
CN113254223B (zh) | 一种系统重启后的资源分配方法、系统及相关组件 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN113157424A (zh) | 任务调度方法及装置 | |
CN111124708A (zh) | 面向微服务的批推理方法、服务器和计算机可读存储介质 | |
WO2019119951A1 (zh) | 设备资源管理 | |
CN115202842A (zh) | 任务调度方法及装置 |
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 |