-
在实时系统中,任务互斥访问关键数据结构、I/O设备等共享资源时,需要采用实时锁协议以避免死锁、阻塞链,同时减小优先级反转所造成的调度损失。在基于共享内存的多处理器实时系统中,文献[1]提出了一种单处理器优先级天花板协议(priority ceiling protocol, PCP)[2]的多处理器天花板协议(multiprocessor priority ceiling protocol, MPCP)。该协议适用于分组固定优先级(partitioned fixed-priority, P-FP)[3-4]调度下的多核/多处理器实时系统。
为了确保实时任务在其截止时限内完成,需要对任务的可调度性进行定量分析。在基于P-FP+ MPCP的调度策略下,可调度性分析包含任务最坏阻塞时间分析。文献[1]将任务阻塞分为本地局部资源阻塞、本地全局资源阻塞、远程低优先级任务阻塞、远程高优先级任务阻塞,以及间接阻塞,并通过计算各部分阻塞时间的累加和得到任务最坏阻塞时间。由于前两个阻塞部分并非相互独立,该方法存在重复计算问题。文献[5]将任务描述为临界区与非临界区相间的模型,采用响应时间分析法(response time analysis, RTA)[6-8]计算任务远程阻塞时间。该方法减小了文献[1]中的重复计算问题,但没有考虑相邻临界区间的间隔,因此所得的最坏阻塞时间仍较保守。文献[3]利用任务中相邻临界区间的最短时间间隔,提出了新的任务最坏时间分析方法。该方法在相邻临界区最短时间间隔较大时可排除文献[1]中的部分保守计算,相反则可能得到更坏的结果。文献[9]改进了文献[5]中的计算方法,提高了任务最坏阻塞响应时间计算的准确性。为了进一步提高任务阻塞时间分析的准确性,本文结合文献[5]的任务模型以及文献[9]的RTA分析框架,提出了分析任务多次请求同一共享资源所需的最短执行时间,以及任务在任意时间内累计执行临界区上限的方法,并基于该分析方法提出一种新的任务最坏阻塞时间分析方法。该方法进一步减小了分析所得的任务最坏阻塞时间,实验表明,该分析方法可提高实时任务集合的可调度性。
-
令 ${N_{i,k}}$ 表示 ${J_i}$ 请求资源 ${\rho _k}$ 的次数, ${\tau _{i,k,x}}$ 表示 ${\tau _i}$ 第x次访问 ${\rho _k}$ 的临界区, ${S_{i,k,x}}$ 表示与 ${\tau _{i,k,x}}$ 对应的临界区编号。如图 1所示, ${N_{i,k}} = 2$ , ${N_{i,h}} = 1$ , ${\tau _i}$ 在其第3个临界区中第2个请求 ${\rho _k}$ ,因此 ${S_{i,k,}}_2 = 3$ 。从 ${r_{i,l}}$ 到 ${\tau _i}$ 第x次( $1 \le x \le {N_{i,k}}$ )请求 ${\rho _k}$ 的最短时间间隔可由式(1)计算如下:
$$ {d_{i,k,x}} = \sum\limits_{j = 1}^{{S_{i,k,x}}} {N{C_{i,j}}} + \sum\limits_{j = 1}^{{S_{i,k,x}} - 1} {{C_{i,j}}} $$ (1) 表 1 本文变量列表
变量 含义 ${N_{i,k}}$ ${J_i}$ 请求资源 ${\rho _k}$ 的次数 ${\tau _{i,k,x}}$ ${\tau _i}$ 第x次访问 ${\rho _k}$ 的临界区 ${S_{i,k,x}}$ 与 ${\tau _{i,k,x}}$ 对应的临界区编号 ${d_{i,k,x}}$ 从 ${r_{i,l}}$ 到 ${\tau _i}$ 第x次( $ 1 \le x \le {N_{i,k}}$ )请求 ${\rho _k}$ 的最短时间间隔 ${\delta _{i,k,x}}(n)$ 从 ${J_i}$ 开始执行 ${\tau _{i,k,x}}$ 起,到其随后第n次请求 ${\rho _k}$ 的最短时间间隔 ${\eta _{i,k,x}}(\Delta t)$ 从 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}$ 开始, ${\tau _i}$ 在 $\Delta t$ 时间内请求 ${\rho _k}$ 的最大次数 $\Delta t$ 从 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}$ 开始, ${\tau _i}$ 在接下来的n次对 ${\rho _k}$ 的请求中其相应的临界区执行时间 ${\xi _{i,k}}$ ${\tau _i}$ 的一个作业在与 ${\rho _k}$ 相应的临界区中的累计执行时间 ${\varphi _{i,k}}$ ${\varphi _{i,k}}$ 在 ${\rho _k}$ 的临界区内被其他任务抢占的最大时间 ${\varepsilon _{i,k}}$ ${\tau _i}$ 占用资源 ${\tau _i}$ 的最大时间 ${b_{i,k,L}}$ ${\tau _i}$ 每次被异核低优先级任务阻塞的时间上限 ${b_{i,k,H}}(\Delta t)$ ${b_{i,k,H}}(\Delta t)$ 每次请求全局资源 ${\rho _k}$ 时,在 $\Delta t$ 内被异核高优先级任务阻塞的最大时间 ${Y_{i,k}}$ ${\tau _i}$ 每次请求全局资源时,被远程阻塞的最大时间 ${Y_i}$ ${\tau _i}$ 最大远程阻塞时间 ${\delta _{i,*,j}}(n)$ 从 ${J_i}$ 开始执行 ${\tau _{i,k,x}}$ ,执行n个临界区的最短时间间隔 ${\tau _{i,k,x}}$ 从 ${J_i}$ 执行 ${\tau _{i,k,x}}$ 开始,执行n个临界区的临界区执行时间之和 ${B_{i,L}}$ 在 ${\tau _i}$ 的一次执行中,其被本地低优先级任务阻塞的时间上限 ${B_i}$ ${\tau _i}$ 的最大本地阻塞时间 定理1 令 ${t_x}$ 为 ${J_{i,l}}$ 开始执行 ${\tau _{i,k,x}}\left( {1 \le x \le {N_{i,k}}} \right)$ 的时刻, ${t_n}$ 为该任务从 ${t_x}$ 开始到第n次( $n \ge 1$ ,且将 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}$ 设为第一次)请求资源 ${\rho _k}$ 的时刻,则 ${\rm{min}}({t_n} - {t_x}) = {\delta _{i,k,x}}(n)$ 。
其中,当 $x \le {N_{i,k}} - n + 1$ 且 $1 \le n \le {N_{i,k}}$ 时:
$$ {\delta _{i,k,x}}(n) = {d_{i,k,}}_{(x + n - 1)} - {d_{i,k,x}} $$ (2a) 当 $x > {N_{i,k}} - n + 1$ 且 $1 \le n \le {N_{i,k}}$ 时:
$$ {\delta _{i,k,x}}\left( n \right) = {C_i} - {d_{i,k,x}} + {T_i} - {R_i} + {d_{i,k,x + n - 1 - {N_{i,k}}}} $$ (2b) 当 $x + n - 1 > 2{N_{i,k}}$ 时:
$$ \begin{array}{c} {\delta _{i,k,x}}(n){\rm{ }} = (\left\lceil {(n + x - 1)/{N_{i,k}}} \right\rceil - 1){T_i} - {d_{i,k,x}} + \\ {d_{i,k,f}}_{(x)} + {C_i} - {R_i} \end{array} $$ (2c) 其中,
$$ f(x) = n + x - 1 - (\left\lceil {(n + x - 1)/{N_{i,k}}} \right\rceil - 1){N_{i,k}} $$ 证明:当 $x \le {N_{i,k}} - n + 1$ 且 $1 \le n \le {N_{i,k}}$ 时, $x + n - 1 \in [x,{N_{i,k}}]$ ,即n次请求在 ${\tau _i}$ 的一个作业内完成,如图 2所示。根据式(1)可知, ${\delta _{i,k,x}}(n) = {d_{i,k,}}_{(x + n - 1)} - {d_{i,k,x}}$ 。
当 $x > {N_{i,k}} - n + 1$ 且 $1 \le n \le {N_{i,k}}$ 时, $x + n - 1 \in [{N_{i,k}},2{N_{i,k}}]$ ,即n次请求由两个连续作业 ${J_{i,l}}$ 和 ${J_{i,l}}_{ + 1}$ 完成。其中, $[{t_x},{t_n}]$ 可分为三个部分: $[{t_x},{f_{i,l}}]$ , $[{f_{i,l}},{r_{i,l}}_{ + 1}]$ , $[{r_{i,l}}_{ + 1},{t_n}]$ 。若 ${J_{i,l}}$ 从 ${t_x}$ 起连续执行(不被中断)直至任务完成,则 $[{t_x},{f_{i,l}}]$ 取得最小值 ${C_i} - {d_{i,k,x}}$ 。由于 ${R_i} = {\rm{ma}}{{\rm{x}}_{\forall f}}({f_{i,l}} - {r_{i,l}})$ ,所以当 ${f_{i,l}} - {r_{i,l}} = {R_i}$ 时, ${r_{i,l}}_{ + 1} - {f_{i,l}} = {r_{i,l}}_{ + 1} - {r_{i,l}} - {R_i} = {T_i} - {R_i}$ 取得最小值,即 $[{f_{i,l}},{r_{i,l}}_{ + 1}]$ 的最小值为 ${T_i} - {R_i}$ 。由于 ${J_{i,l}}$ 已完成 ${N_{i,k}} - x + 1$ 个请求, ${J_{i,l}}_{ + 1}$ 需完成剩余的 $n - {N_{i,k}} + x - 1$ 个请求。根据式(1), $[{r_{i,l}}_{ + 1},{t_n}]$ 的最小值为 ${d_{i,k,x + n - 1 - {N_{i,k}}}}$ 。综合以上分析,式(2b)得证。
当 $x + n - 1 > 2{N_{i,k}}$ 时,n次请求由至少三个连续作业完成。令 ${J_{i,z}}$ >表示完成n次请求的最后的一个作业,则 $[{t_x},{t_n}]$ 可分为三个部分: $[{t_x},{r_{i,l}}_{ + 1}]$ , $[{r_{i,l}}_{ + 1},{r_{i,z}}]$ , $[{r_{i,z}},{t_n}]$ 。根据前述分析可知, $[{t_x},{r_{i,l}}_{ + 1}]$ 的最小值为 ${C_i} - d_{i,k}^x + {T_i} - {R_i}$ 。 $[{r_{i,l}}_{ + 1},{r_{i,z}}]$ 可包含 $\left\lceil {(n - {N_{i,k}} + x - 1)/{N_{i,k}}} \right\rceil - 1$ 个完成周期,因此该段时间为 $(\left\lceil {(n + x - 1)/{N_{i,k}}} \right\rceil - 2){T_i}$ 。 $[{r_{i,z}},{t_n}]$ 为 ${J_{i,z}}$ 执行直至完成余下的 $n - {N_{i,k}} + x - 1 - (\left\lceil {(n + x - 1)/{N_{i,k}}} \right\rceil - 2){N_{i,k}}$ 个请求所需的最短时间。根据f(x)定义及式(1)可知, $[{r_{i,z}},{t_n}]$ 的最小值为 ${d_{i,k,f}}_{(x)}$ 。综合以上分析,式(2c)得证。
定理1给出了一个任务从某个时刻开始任意次请求某个共享资源所需的最短时间。通过求 ${\delta _{i,k,x}}(n)$ 的反函数,可计算出任意时间间隔内一个任务请求某个共享资源的最大次数。
推论1 从 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}(1 \le x \le {N_{i,k}})$ 的时刻开始, ${\tau _i}$ 在 $\Delta t$ 时间内请求 ${\rho _k}$ 的最大次数为 ${\rho _k}$ 。
参照 ${\delta _{i,k,x}}(n)$ 的计算方法,还可推导出一个任务请求任意次某共享资源时在相应的临界区内执行的时间。进而可计算出任意时间间隔内,一个任务在与某共享资源相应的临界区内的执行时间上限。
推论2 从 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}(1 \le x \le {N_{i,k}})$ 的时刻开始, ${\tau _i}$ 在接下来的n次对 ${\rho _k}$ 的请求中其相应的临界区执行时间为 ${\psi _{i,k,x}}(n)$ 。
其中,当 $x \le {N_{i,k}} - n + 1$ 且 $1 \le n \le {N_{i,k}}$ 时:
$$ {\psi _{i,k,x}}(n) = \sum\limits_{j = x}^{x + n - 1} {{C_{i,j}}} $$ (3a) 当 $x > {N_{i,k}} - n + 1$ 且 $1 \le n \le {N_{i,k}}$ 时:
$$ {\psi _{i,k,x}}(n) = {\xi _{i,k}} - \sum\limits_{j = x + n - {N_{i,k}}}^{x - 1} {{C_{i,j}}} $$ (3b) 当 $x + n - 1 > 2{N_{i,k}}$ 时:
$$ {\psi _{i,k,x}}(n) = {\xi _{i,k}}\left\lfloor {n/{N_{i,k}}} \right\rfloor + {\psi _{i,k,x}}(n - {N_{i,k}}\left\lfloor {n/{N_{i,k}}} \right\rfloor ) $$ (3c) 式中, ${\xi _{i,k}} = \sum\limits_{\Phi ({\tau _{i,j*}}) = {\rho _k}} {{C_{i,j}}} $ 是 ${\tau _i}$ 的一个作业在与 ${\rho _k}$ 相应的临界区中的累计执行时间(令 $\Phi ({\tau _{i,j*}})$ 为临界区 ${\tau _{i,j*}}$ 对应的共享资源)。
推论3 从 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}(1 \le x \le {N_{i,k}})$ 的时刻开始, ${\tau _i}$ 在 $\Delta t$ 时间内在与 ${\rho _k}$ 相应的临界区上的执行时间上限为 ${\psi _{i,k,x}}({\eta _{i,k,x}}(\Delta t))$ 。
-
P-FP调度下,任务 ${\tau _i}$ 请求共享资源时可能发生本地阻塞(被本核任务阻塞)或远程阻塞(被异核任务阻塞)。当 ${\tau _i}$ 被远程阻塞时,锁住相应资源的异核任务可能在临界区内被抢占,从而可能对 ${\tau _i}$ 造成传递阻塞。本节采用文献[9]的任务阻塞时间分析框架,结合以上时间分析结果,提出新的任务最坏阻塞时间分析方法。
-
由于各全局资源的优先级天花板可能不同,任务在临界区内仍可能被抢占。如图 3所示,由于 ${\Omega _h} = {\pi _s} + {\pi _1} > {\Omega _k} = {\pi _s} + {\pi _2}$ , ${J_2}$ 在 ${\rho _k}$ 的临界区内被 ${J_1}$ 在 ${t_2}$ 时刻抢占,被 ${J_3}$ 在 ${t_3}$ 时刻抢占。根据文献[9],任务 ${\tau _i}$ 在 ${\rho _k}$ 的临界区内被其他任务抢占的最大时间为:
$$ {\varphi _{i,k}} = \sum\limits_{{\tau _a} \in {\Gamma _{i,{\rm{local}}}}} {\mathop {\max }\limits_{j \in [1,{S_{a - 1}}] \wedge \Phi ({\tau _{a,j*}}) = {\rho _k} \wedge {\Omega _h} > {\Omega _k}} {C_{a,j}}} $$ (4) 式中, ${\Gamma _{i,{\rm{local}}}}$ 为 ${\tau _i}$ 的本地任务。进而可知, ${\tau _i}$ 占用资源 ${\rho _k}$ 的最大时间为 ${\varepsilon _{i,k}} = {\varphi _{i,k}} + \mathop {\max }\limits_{j \in [1,{S_{i - 1}}] \wedge \Phi ({\tau _{i,j*}}) = {\rho _k}} {C_{i,j}}$ 。如图 3所示, ${\varepsilon _{2,k}} = {t_4} - {t_1}$ 。
当任务 ${\tau _i}$ 请求全局资源 ${\rho _k}$ 时,可能被异核低优先级任务阻塞。由于MPCP采用优先级排队机制,因此 ${\tau _i}$ 每次只能被一个低优先级任务阻塞。其中, ${\tau _i}$ 每次被异核低优先级任务阻塞的时间上限为:
$$ {b_{i,k,L}} = \mathop {\max }\limits_{{\tau _i} \in \Gamma - {\Gamma _{i,{\rm{local}}}} \wedge l > i} {\varepsilon _{l,k}} $$ (5) 当 ${\tau _i}$ 在某全局资源的优先级队列中等待时,若有高优先级异核任务请求相同资源,则这些异核任务会插入到 ${\tau _i}$ 前面,先于 ${\tau _i}$ 获得相应全局资源。如图 3所示, ${J_6}$ 在 ${J_4}$ 之前请求 ${\rho _k}$ ,而由于 ${J_4}$ 优先级较高, ${J_4}$ 先于 ${J_6}$ 获得 ${\rho _k}$ 。值得注意,在 ${\tau _i}$ 挂起等待 ${\rho _k}$ 期间,异核高优先级任务可能多次请求 ${\rho _k}$ ,从而可能多次阻塞 ${\tau _i}$ 。当某异核高优先级任务 ${\tau _h}$ 开始执行 ${\tau _{h,k,x}}(1 \le x \le {N_{i,k}})$ 时,在 $\Delta t$ 时间内, ${\tau _h}$ 在 ${\rho _k}$ 相应临界区内的最大执行时间为 ${\psi _{h,k,x}}({\eta _{h,k,x}}(\Delta t))$ ,在临界区内被抢占的最大时间为 ${\eta _{h,k,x}}(\Delta t){\varphi _{i,k}}$ 。因此 ${\tau _i}$ 每次请求全局资源 ${\rho _k}$ 时,在 $\Delta t$ 内被异核高优先级任务阻塞的最大时间为:
$$ \begin{array}{c} {b_{i,k,H}}(\Delta t){\rm{ }} = \sum\limits_{{\tau _h} \in \Gamma - {\Gamma _{i,{\rm{local}}}} \wedge h < i} {\mathop {\max }\limits_{x \in [1,{N_{i,k}}]} ({\psi _{h,k,x}}({\eta _{h,k,x}}(\Delta t))} ) + \\ {\eta _{h,k,x}}(\Delta t){\varphi _{i,k}}) \end{array} $$ (6) 由于式(5)等号两边关于 $\Delta t$ 单调递增,且 ${\tau _i}$ 的远程阻塞时间为 ${\tau _i}$ 被异核低优先级任务和异核高优先级任务阻塞的时间之和,因此 ${\tau _i}$ 每次请求全局资源时,被远程阻塞的时间可通过以下迭代过程决定:
$$ Y_{i,k}^{n + 1} = {b_{i,k,L}} + {b_{i,k,H}}(Y_{i,k}^n) $$ (7) 式中, $Y_{i,k}^0{\rm{ = }}0$ ,当 $Y_{i,k}^{n + 1} = Y_{i,k}^n$ , ${Y_{i,k}} = Y_{i,k}^{n + 1}$ ;若 $Y_{i,k}^{n + 1} > {T_i}$ ,则迭代可提前结束,此时 ${\tau _i}$ 不可调度。令 ${\Phi _{i,G}}$ 表示 ${\tau _i}$ 请求的全局资源集合,根据式(7)可得 ${\tau _i}$ 的最大远程阻塞时间为:
$$ {Y_i} = {N_{i,k}}\sum\limits_{{\rho _k} \in {\Phi _{i,k}}} {{Y_{i,k}}} $$ (8) -
在任务 ${\tau _i}$ 就绪前或被远程阻塞而挂起时,其本地低优先级任务可能被调度执行并请求共享资源。当低优先级本地任务获得并继承相应资源的优先级天花板时,其有效优先级将高于 ${\tau _i}$ ,从而发生优先级翻转,延迟 ${\tau _i}$ 的执行。在实时系统中,这种由优先级翻转引起的任务延迟被视作任务阻塞[10]。如图 4所示,在 ${J_1}$ 挂起等待全局资源 ${\rho _k}$ 期间, ${J_2}$ 和 ${J_31}$ 相继请求全局资源 ${\rho _k}$ 并挂起等待。此后,当 ${J_1}$ 执行非临界区时, ${J_2}$ 和 ${J_3}$ 的共享资源请求相继得到满足,从而阻塞 ${J_1}$ 。
令 ${N_{i,G}}$ 为 ${\tau _i}$ 的全局临界区数,则 ${\tau _i}$ 最多因远程阻塞而挂起 ${N_{i,G}}$ 次。此外,由于在 ${\tau _i}$ 到达时低优先级任务可能已经获得共享资源,因此 ${\tau _i}$ 最多可被每个低优先级本地任务阻塞 ${N_{i,G}} + 1$ 次。设 ${\tau _l}$ 为 ${\tau _i}$ 的本地低优先级任务, ${\tau _l}$ 只有执行临界区时才可能阻塞 ${\tau _i}$ ,而在 ${\tau _i}$ 就绪后, ${\tau _l}$ 只有在 ${\tau _i}$ 挂起期间才有机会执行其非临界区,因此 ${\tau _l}$ 在 ${\tau _i}$ 就绪期间的执行时间减去 ${\tau _i}$ 的远程阻塞时间即为 ${\tau _l}$ 对 ${\tau _i}$ 的本地阻塞时间。
设 ${t_{x*}}$ 为 ${J_{i,l}}$ 开始执行第 $j(1 \le j \le {S_i}_{ - 1})$ 个临界区的时刻, ${t_{n*}}$ 为该任务从 ${t_{x*}}$ 开始到 ${\tau _i}$ 第n次进入临界区的时刻。令 ${\delta _{i,*,j}}(n) = {\rm{min}}({t_{n*}} - {t_{x*}})$ ,令 ${\psi _{i,*,j}}(n)$ 表示 ${\tau _i}$ 从 ${t_{x*}}$ 起执行的n个临界区时间之和。其中, ${\delta _{i,*,j}}(n)$ 和 ${\psi _{i,*,j}}(n)$ 的计算方法与定理1和推论2类似(推论1、2针对特定共享资源 ${\rho _k}$ 的临界区,而 ${\delta _{i,*,j}}(n)$ 和 ${\psi _{i,*,j}}(n)$ 针对连续临界区)。根据以上分析, ${\delta _{i,*,j}}(n) = {\psi _{i,*,j}}(n) + {Y_i}$ 。由于 ${\delta _{i,*,j}}(n) \le {\psi _{i,*,j}}(n) + {Y_i}$ ,因此 ${\psi _{i,*,j}}(n) \ge {\delta _{i,*,j}}(n) - {Y_i}$ 。从而,在 ${\tau _i}$ 的一次执行中,其被本地任务阻塞的时间上限为:
$$ {B_{i,L}} = \mathop {\max }\limits_{x \in [1,{S_{i - 1}}] \wedge n > 0} \{ {\psi _{i,*,j}}(n)|{\psi _{i,*,j}}(n) \ge {\delta _{i,*,j}}(n) - {Y_i}\} $$ (9) 由于在任务 ${\tau _i}$ 就绪前或被远程阻塞而挂起时,其所有本地低优先级任务均可能先后被调度执行并请求共享资源,因此 ${\tau _i}$ 的本地阻塞时间不大于所有本地低优先级任务对请求造成的最大阻塞之和,即:
$$ {B_i} = \sum\limits_{l > i \wedge {\tau _l} \in {\Gamma _{i,{\rm{local}}}}} {{B_{i,L}}} $$ (10)
Worst-Case Blocking Time Analysis for MPCP
-
摘要: 多处理器天花板协议(MPCP)是经典的基于挂起机制的实时锁协议,被广泛应用于分组固定优先级(P-FP)调度下的多核/多处理器实时系统中。然而针对P-FP+MPCP调度的任务最坏阻塞时间分析往往过于保守,影响系统的可调度性。因此,该文提出一种计算实时任务最坏阻塞时间的新方法。其中实时任务模拟为非临界区与临界区的交替序列。该方法通过分析任务多次请求某一共享资源所需的最短执行时间,以及任务在任意时间内累计执行临界区时间的上限,提高了已有分析方法的计算准确性。可调度性实验表明,该方法优于已有方法,提高了系统可调度性。Abstract: Multiprocessor priority ceiling protocol (MPCP) is a classical suspension-based real-time locking protocol, wildly used in partitioned fixed-priority (P-FP) scheduled multiprocessor/multicore real-time systems. However, prior worst-case task blocking time (WCTBT) analysis is pessimistic, which negatively impacts the system schedulability. Therefore, a novel WCTBT analysis is proposed. In this analysis, a task is modeled to be an alternative sequence of normal and critical section segments. By analyzing the minimum execution time required for a task to request several shared resources, this method improves the accuracy of prior work and provides an upper bound on the cumulative execution time for a task to execute critical sections in any time interval. Schedulability experiments indicate that the proposed method outperforms the existing methods and improves the system schedulability significantly.
-
Key words:
- blocking /
- multicores /
- partitioned scheduling /
- real-time locking protocols /
- real-time systems
-
表 1 本文变量列表
变量 含义 ${N_{i,k}}$ ${J_i}$ 请求资源 ${\rho _k}$ 的次数 ${\tau _{i,k,x}}$ ${\tau _i}$ 第x次访问 ${\rho _k}$ 的临界区 ${S_{i,k,x}}$ 与 ${\tau _{i,k,x}}$ 对应的临界区编号 ${d_{i,k,x}}$ 从 ${r_{i,l}}$ 到 ${\tau _i}$ 第x次( $ 1 \le x \le {N_{i,k}}$ )请求 ${\rho _k}$ 的最短时间间隔 ${\delta _{i,k,x}}(n)$ 从 ${J_i}$ 开始执行 ${\tau _{i,k,x}}$ 起,到其随后第n次请求 ${\rho _k}$ 的最短时间间隔 ${\eta _{i,k,x}}(\Delta t)$ 从 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}$ 开始, ${\tau _i}$ 在 $\Delta t$ 时间内请求 ${\rho _k}$ 的最大次数 $\Delta t$ 从 ${J_{i,l}}$ 执行 ${\tau _{i,k,x}}$ 开始, ${\tau _i}$ 在接下来的n次对 ${\rho _k}$ 的请求中其相应的临界区执行时间 ${\xi _{i,k}}$ ${\tau _i}$ 的一个作业在与 ${\rho _k}$ 相应的临界区中的累计执行时间 ${\varphi _{i,k}}$ ${\varphi _{i,k}}$ 在 ${\rho _k}$ 的临界区内被其他任务抢占的最大时间 ${\varepsilon _{i,k}}$ ${\tau _i}$ 占用资源 ${\tau _i}$ 的最大时间 ${b_{i,k,L}}$ ${\tau _i}$ 每次被异核低优先级任务阻塞的时间上限 ${b_{i,k,H}}(\Delta t)$ ${b_{i,k,H}}(\Delta t)$ 每次请求全局资源 ${\rho _k}$ 时,在 $\Delta t$ 内被异核高优先级任务阻塞的最大时间 ${Y_{i,k}}$ ${\tau _i}$ 每次请求全局资源时,被远程阻塞的最大时间 ${Y_i}$ ${\tau _i}$ 最大远程阻塞时间 ${\delta _{i,*,j}}(n)$ 从 ${J_i}$ 开始执行 ${\tau _{i,k,x}}$ ,执行n个临界区的最短时间间隔 ${\tau _{i,k,x}}$ 从 ${J_i}$ 执行 ${\tau _{i,k,x}}$ 开始,执行n个临界区的临界区执行时间之和 ${B_{i,L}}$ 在 ${\tau _i}$ 的一次执行中,其被本地低优先级任务阻塞的时间上限 ${B_i}$ ${\tau _i}$ 的最大本地阻塞时间 -
[1] RAJKUMAR R. Real-time synchronization protocols for shared memory multiprocessors[C]//IEEE International Conference on Distributed Computing Systems. Paris:IEEE, 1990:116-123. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=89257 [2] SHA L, RAJKUMAR R, LEHOCZKY J. Priority inheritance protocols:an approach to real-time synchronization[J]. IEEE Transactions on Computers, 1990, 39(9):1175-1185. doi: 10.1109/12.57058 [3] SCHLIECKER S, NEGREAN M, ERNST R. Response time analysis on multicore ECUs with shared resources[J]. IEEE Transactions on Industrial Informatics, 2009, 5(4):402-413. doi: 10.1109/TII.2009.2032068 [4] BRANDENBURG B. Improved analysis and evaluation of real-time semaphore protocols for P-FP scheduling[C]//IEEE International Conference on Real-Time Embedded Technology and Application Symposium. Philadelphia:IEEE, 2013:141-152. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6531087 [5] LAKSHMANAN K, NIZ D, RAJKUMAR R. Coordinated task scheduling, allocation and synchronization on multiprocessors[C]//IEEE International Conference on Real-Time System Symposium. Washington D. C:IEEE, 2009:469-478. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5368127 [6] AUDSLEY N, BURNS A, RICHARDSON M, et al. Applying new scheduling theory to static priority preemptive scheduling[J]. Journal of Software Engineering, 1993, 8(5):284-296. doi: 10.1049/sej.1993.0034 [7] BINI E, BUTTAZZO G. Schedulability analysis of periodic fixed priority systems[J]. IEEE Transactions on Computers, 2004, 53(11):1462-1473. doi: 10.1109/TC.2004.103 [8] BRIL R, LUKKIEN J, VERHAEGH W. Worst-case response time analysis of real-time tasks under fixed-priority scheduling with deferred preemption[J]. Real-Time Systems, 2009, 42(1-3):63-119. doi: 10.1007/s11241-009-9071-z [9] YANG Mao-lin, LEI Hang, LIAO Yong. Synchronization analysis for hard real-time multicore systems[J]. Applied Mechanics and Materials, 2012, 241-244:2246-2253. http://www.scientific.net/AMM.241-244.2246 [10] BRANDENBURG B, ANDERSON J. Optimality results for multi-processor real-time locking[C]//IEEE International Conference on Real-Time Systems Symposium. San Diego:IEEE, 2010:49-60. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5702217 [11] DAVIS R, BURNS A. Improved priority assignment for global fixed priority pre-emptive scheduling in multiprocessor real-time systems[J]. Real-Time Systems. 2011, 47(1):1-40. doi: 10.1007/s11241-010-9106-5 [12] 刘加海, 杨茂林, 雷航, 等.共享资源约束下多核实时任务分配算法研究[J].浙江大学学报(工学版), 2014, 48(1):113-117. http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201401017.htm LIU Jia-hai, YANG Mao-lin, LEI Hang, et al. A research for multicore real-time task allocation algorithms[J]. Journal of Zhejiang University (Engineering Science), 2014, 48(1):113-117. http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201401017.htm