I Introduction
To exploit the parallelism for timecritical applications on multicores, the design of scheduling and analysis techniques for parallel realtime tasks has attracted increasing interests in recent years. Among the scheduling algorithms for parallel realtime tasks, the federated scheduling [13] is a promising approach with high flexibility and simplicity in analysis.
Coordinated locking protocols are used to ensure mutually exclusive access to shared resources while preventing uncontrolled priority inversions [6, 11]. In multiprocessor systems, requests to shared resources can be executed locally by the tasks [15] or remotely by resource agents [16], e.g., by means of the Remote Procedure Call (RPC) mechanism. Local execution of requests is in general more efficient since migrations are not needed, while blockings can be better explored and managed with remote execution of requests, e.g., by constraining resource contentions on designated processors [9, 10]. While existing locking protocols for parallel tasks [6, 11] are all based on local execution of requests, no work has been done with remote execution of requests so far as we know.
The Distributed Priority Ceiling Protocol (DPCP) [16] is a classic multiprocessor realtime locking protocol for sequential tasks that executes requests of global resources remotely, where both tasks and shared resources are partitioned among the processors and all requests to a global resource must be conducted by the resource agents on the processor on which the resource is partitioned. Empirical studies [3] indicate that the DPCP has better schedulability performance compared to similar protocols with local execution of requests. Further, the recent ResourceOriented Partitioned (ROP) scheduling [10, 17, 18] with the DPCP guarantees bounded speedup factors.
In addition, since each heavy task exclusively uses a subset of processors under federated scheduling, there could be significant resource waste under the federated scheduling, i.e., almost half of the processing capacity is wasted in the extreme case. Executing globalresourcerequests on remote processors can alleviate the potential resource wastes by shifting a part of the resourcerelated workload of a task to processors with lower workload.
This paper for the first time studies the distributed synchronization framework for parallel realtime tasks. we answer the fundamental question of whether the key insight of remote execution of shared resources for sequential tasks can be applied to parallel realtime tasks and how to do so. We propose DPCPp, an extension of DPCP, to support parallel realtime tasks under federated scheduling, and develop the corresponding schedulability analysis and partitioning heuristic. DPCPp retains the fundamental property of the underlying priority ceiling mechanism of the DPCP, namely a request can be blocked by at most one lowerpriority request. Numerical evaluation with heavy tasks on more than 8core processors indicates that DPCPp improves the schedulability performance significantly compared to existing locking protocols under federated scheduling.
Ii System Model and Terminologies
We consider a set of parallel tasks to be scheduled on identical processors with shared resources .
Parallel Tasks. Each task is characterized by a WorstCase Execution Time (WCET) , a relative deadline , and a minimum interarrival time , where (constraineddeadline is considered). The utilization of is defined by .
The structure of is represented by a Directed Acyclic Graph (DAG) , where is the set of vertices and is the set of edges. Each vertex has a WCET , and the WCET of all vertices of is . Each edge represents the precedence relation between and . A vertex is said to be pending during the time while all its predecessors are finished and is not finished. A complete path is a sequence of vertices , where is a head vertex, is a tail vertex, and is the predecessor of for each pair of consecutive vertices and . We use to denote an arbitrary complete path. The length of , denoted by , is defined as the sum of the WCETs of the vertices on . We also use to denote the length of the longest path of . For example in Fig. 1(a), the longest path of is , and
At runtime, each task generates a sequence of jobs, and each job inherits the DAG structure of the task. Let denote the th job of . Let and denote the arrival and finish time of respectively, then must finish no later than , and the subsequent job cannot arrive before . The WorstCase Response Time (WCRT) of task is defined as . For brevity, let be an arbitrary job of .
Shared Resources. Each task uses a set of shared resources , and each resource is shared by a set of tasks . To ensure mutual exclusion, is protected by a binary semaphore (also called a lock for short). A job is allowed to execute a critical section for only if it holds the lock of , otherwise, it is suspended. A vertex requests at most times, and each time uses for a time of at most . For simplicity, we assume that a path requests at most times, and a job requests at most times.
Given that is included in , for brevity, we use and to denote the WCETs of the noncritical sections of and , respectively. For simplicity, it is assumed that . Further, critical sections are assumed to be nonnested, and nested critical sections remain in future work.
Scheduling. The tasks are scheduled based on the federated scheduling paradigm [13]. Each task with (i.e., heavy tasks) is assigned dedicated processors, and we use to denote the set of processors assigned to . The rest light tasks are assigned to the remaining processors. Each task has a unique base priority , and implies that has a base priority lower than . All jobs of and all vertices of have the same base priority .
At runtime, each heavy task is scheduled exclusively on the assigned processors according to a workconserving scheduler (i.e., no processor assigned to a task is idle when there is a vertex of the task is ready to be scheduled), while each light task is treated as a sequential task and is scheduled with the tasks (if one exists) assigned on the same processor. We focus on heavy tasks in the following and discuss how to handle both heavy and light tasks in Sec. VI.
Iii The Distributed locking protocol DPCPp
The design of DPCPp is based on the DPCP [16] and extents it to support parallel realtime tasks under federated scheduling.
Iiia The Synchronization Framework
Under federated scheduling, a resource can be shared locally or globally. A resource is a local resource if it is shared only by the vertices of a single task, and it is a global resource if it is shared by more than one task. For example in Fig. 1, is a global resource and is a local resource. We use and to denote the local resources and the global resources respectively.
Each global resource is assigned to a processor, and all requests to must execute on that processor, e.g., by means of an RPClike agent [16]. Once a vertex requests a global resource, it is suspended until the agent finishes. Requests to local resources are executed by the tasks directly, i.e., no migration is required.
For brevity, we use to denote the set of global resources on processor . The global resources that are assigned to the same processor as are denoted by , and the global resources that are assigned to the same processors as are denoted by .
IiiB Queue Structure
While pending, a vertex is either executing, ready and not scheduled, or suspended. The following queues are used to maintain the states of the vertices for each task.

: the ready queue of for the vertices that are ready to execute noncritical sections. The vertices in are scheduled in a First In First Out (FIFO) order.

: the ready queue of for the vertices that are holding local resources. The vertices in are scheduled in a FIFO order. If both and are not empty, the vertices in are scheduled first .

: the suspended queue of . Each vertex in is waiting for a request to be finished.
In addition, each processor maintains two hybrid queues to handle the globalresourcerequests.

: the ready queue of the globalresourcerequests on processor . The requests in are scheduled by the priorities of the tasks.

: the suspended queue of the globalresourcerequests on processor .
IiiC Locking Rules
Under priority scheduling, the problem of priority inversion [2] is inevitable when jobs compete for shared resources. Various progress mechanisms [16, 15, 2] are used to minimize the duration of priority inversions. We consider the inherent priority ceiling mechanism as used in the DPCP [16] in the following.
Consider a global resource on processor , the priority ceiling of is defined as , where is a priority level higher than the base priority of any task in . At runtime, the processor ceiling of at some time , denoted by , is the maximum of the priority ceilings of the global resources that are allocated to and locked at time . Let be a request from a job to a global resource . The effective priority of at some time , denoted by , is elevated to . The priority ceiling mechanism ensures that: a globalresourcerequest is granted the lock at time only if .
Next, we introduce the locking rules of DPCPp. Consider a vertex issues a request for a resource at some time .
Rule 1. If is a local resource locked by another vertex at time , then is suspended and enqueued to .
Rule 2. If is a local resource not locked at time , then locks and queues upon , i.e., is ready to be scheduled to execute the critical section.
Rule 3. If is a global resource on some processor , then is suspended and enqueued to . Meanwhile, tries to lock according to the priority ceiling mechanism. queues upon and is ready to be scheduled (according to its priority) if the lock is granted, otherwise is enqueued to .
Rule 4. Once finishes, it releases the lock of , and dequeues from if is a global resource. Then, is enqueued to .
Fig. 1 shows an example schedule of DPCPp with two DAG tasks on a fourcore processor, and each task is assigned two processors. At time , (i) is suspended and enqueued to until the globalresourcerequest finishes on processor at time , (ii) is suspended and enqueued to until releases at time , and (iii) locks a local resource , enqueued to , and is scheduled until time , while is suspended and queued upon until releases at time .
Lemma 1.
Under DPCPp, a request can be blocked by lowerpriority requests at most once.
Proof.
We prove by contradiction. Since each local resource is used only by a task, we consider globalresourcerequests. Suppose that a request () on a processor is blocked by at least two lowerpriority requests and (, ). Let and be the time when arrives and finishes respectively. Let and be the time when and are granted the locks respectively. Without loss of generality, we assume that .
While is pending at some time , the processor ceiling according to the priority ceiling mechanism. Since can be blocked by , the priority ceiling of is larger than , i.e., . Thus, during . Further, by hypothesis, is blocked by , then must be granted the lock at some time . Accoring to the priority ceiling mechanism, the effective priority of must be larger than the processor ceiling at time , i.e., . Thus, . Contradiction. ∎
Iv WorstCase Response Time Analysis
We derive an upper bound of the WCRT of an arbitrary path of using the fixedpoint ResponseTime Analysis (RTA) in this section. Let be the WCRT of an arbitrary path , then can be upper bounded by the maximum of the WCRTs of the paths, that is
(1) 
To upper bound
, we classify the delays of a path into four categories as follows.
Iva Blocking and Interference
First, we consider a globalresourcerequest of a job (, ) that causes to incur

intertask blocking, if an agent on behalf of is executing on some processor while is suspended on a global resource on .
Second, a vertex of that is not on (i.e., ) causes to incur

intratask blocking, if is holding a local resource and scheduled while is suspended on , or if an agent is executing on behalf of on some processor while is suspended on a global resource on ; and

intratask interference, if is executing a noncritical section or a localresourcerequest while is ready and not executing.
Third, a globalresourcerequest from another job or from a vertex that is not on causes to incur

agent interference, if an agent on behalf of the request is executing while is (i) ready and not executing, or (ii) suspended on a local resource and the resource holder is not scheduled (i.e., preempted by the agent of the request).
Notabaly, the defined delays are mutually exclusive, i.e., at any point in time, a vertex or an agent can cause a path to incur at most one type of delay. This is essential to minimize overcounting in the blocking time analysis. For example in Fig. 1(b), at any time during , only causes path to incur intertask blocking, only causes path to incur intratask blocking, only causes path to incur intratask interference, and only causes path to incur agent interference. It is also noted that a path can incur multiple types of delays at a time. For instance, at any time during , path incurs intratask interference and agent interference due to and respectively.
Based on these definitions, we derive an upper bound on in Theorem 1. In preparation, we use to denote the workload of the other tasks that causes to incur intertask blocking. Analogously, let and denote the workloads of the vertices of not on that cause to incur intratask blocking and intratask interference, respectively. Let denote the workload of the agents that causes to incur agent interference. These open variables will be bounded in Sect. IVB and IVC.
Theorem 1.
.
Proof.
While is pending, it is either (I) executing, (II) suspended and executing on global resources, (III) ready and not executing, (IV) suspended and not executing on any global resource. By definition, the duration of (I) and (II) can be bounded by .
For case (III). The workload executed on can be from (i) the vertices of not on (i.e., intratask interference), and (ii) the agents on behalf of the vertices not on (i.e., agent interference). By definition, the workload of (i) can be upperbounded by , and the workload of (ii), denoted by , is a part of .
For case (IV). If is suspended on a local resource , then is either (iii) waiting a vertex of not on to release (i.e., intratask blocking), or (iv) waiting the agents that preempted the resource holder to finish (i.e., agent interference). If is suspended on a global resource on a processor , then it can be delayed by (v) an agent on behalf of another task on (i.e., intertask blocking), or (vi) an agent on behalf of a vertex of not on on (i.e., intratask blocking). By definition, the duration of (iii) and (vi) is , and the duration of (v) is . Further, for case (iv), we let the workload of the agents be .
Total durations of (I)  (IV). In (III) and (IV)(iv), there is at least a vertex ready and not executing, thus none of the processors is idle according to workconserving scheduling. Let the duration of (III) and (IV)(iv) be , then . By definition, . Hence, . Summing up (I)  (IV), we have . ∎
IvB Upper Bounds on Blockings
We begin with the analysis of intertask blocking. To derive an upper bound on , we first derive an upper bound on the response time of a globalresourcerequest.
In preparation, let denote the maximum number of jobs of a task during a time interval of length . It has been well studied that . Further, let be the cumulative length of the requests from higherpriority tasks of to the global resources that are assigned on the same processor as during a time interval of length . Since there are jobs of each higherpriority task () during a time interval length of , and each job uses resource for a time of at most , summing up the workload of all the higherpriority requests we have
(2) 
Let be the response time of a request from to a global resource . We bound according to the following lemma.
Lemma 2.
can be upper bounded by the least positive solution, if one exists, of the following equation.
(3) 
Where,
Proof.
Under DPCPp, a globalresourcerequest has an effective priority higher than . Thus, while is pending, only the globalresourcerequests can execute. Since globalresourcerequests are scheduled by their priorities, may wait for (i) at most one lowerpriority request to a global resource with priority ceiling no less than on the processor, (ii) intratask requests from the vertices not on to the global resources on the processor, and (iii) higherpriority requests to the global resources on the processor.
Be definition, (i) can be bounded by , and (ii) can be bounded by . By the definition of , (iii) can be bounded by . In addition, executes at most . We claim the lemma by summing up the respective bounds. ∎
With Lemma 2 in place, we are ready to upper bound .
Lemma 3.
, where,
(4) 
and
(5) 
Proof.
Each time requests a global resource on , it can be blocked by (i) at most one lowerpriority request and (ii) all higherpriority requests. Analogous to the proof in Lemma 2, (i) can be bounded by , and (ii) can be bounded by . Since requests each global resource at most times, the workload of the other tasks that cause to incur intertask blocking on can be bounded by in Eq. (4).
Further, each other task () has at most jobs before finishes, and each job uses a resource for a time of at most . Thus, the workload of the other tasks for the global resources on can be bounded by in Eq. (5). We claim the lemma by summing up the minimum of and for all processors. ∎
Next, we derive an upper bound for intratask blocking. For brevity, let . Intuitively, if there is a vertex on path requests a global resource on processor , and otherwise.
Lemma 4.
, where,
(6) 
and,
(7) 
Proof.
By definition, incurs intratask blocking on a local resource only if it requests . Clearly, if requests , and otherwise. Given that the vertices of not on can execute on a resource for a total of at most , incurs intratask blocking for at most , as in Eq. (6).
Moreover, incurs intratask blocking on a global resource on some processor only if it requests some global resource on . By definition, if requests some global resource on , and otherwise. Thus, the workload that cause to incur intratask blocking on can be bounded by summing up for all the global resources on , i.e., , as in Eq. (7).
Thus, can be bounded by summing up (i) for all local resource in , and (ii) for all processors. ∎
IvC Upper Bounds on Interference
Next, we derive upper bounds for the intratask interference and the agent interference. First, the intratask interference of can be upper bounded by the workload of the noncritical sections and the localresourcerequests of the vertices of that are not on .
Lemma 5.
.
Proof.
By definition, consists of the workload of (i) the noncritical sections and (ii) the localresourcerequests from the vertices of that are not on . From the task model, (i) and (ii) are bounded by and , respectively. Thus, can be bounded by the total of (i) and (ii). ∎
For each global resource on , the agent interference of consists of the agent workload of the vertices that are not on .
Lemma 6.
, where,
(8) 
and,
(9) 
Proof.
While is pending, the other tasks can request a resource for at most , and the vertices of not on can execute on for at most . Thus, the agent interference of can be bounded by summing up for all the global resources on . ∎
V Task and Resource Partitioning
According to the schedulability analysis in Sect. IV, the WCRT of a task can be determined only if the tasks and the global resources are partitioned. In this section, we present a partitioning algorithm to iteratively assign tasks and resources.
For ease of description, we consider the processors assigned to each task as a cluster. Accordingly, we use to denote the th cluster (). The capacity of , denoted by , is equal to the number of the processors in . The utilization of , denoted by , is the total of the utilizations of the task and the resources assigned to , where the utilization of a resource is defined as . The total utilization of the global resources assigned to a processor is denoted by , i.e., . The utilization slack of a cluster is defined by . A cluster is infeasible if .
Each task is initially assigned processors, and the global resources are partitioned according to the WorstFit Decreasing (WFD) heuristic, as shown in Algorithm 1. Intuitively, the global resource with the highest utilization is assigned to the processor with the lowest resource utilization in the cluster with maximum utilization slack, as shown in Algorithm 2. The schedulability analysis is performed from the task with highest base priority. If there is a task unschedulable, then we assign an additional processor, if one exists, to that task. Since the capacity of the cluster is updated when an additional processor is assigned, we reassign global resources and perform schedulability tests accordingly. The partitioning process runs at most rounds for systems containing only heavy tasks.
Vi Discussions
Although we focus on heavy tasks in this paper, the DPCPp approach can be extended to support light tasks. First, light tasks are treated as sequential tasks under federated scheduling, thus the original DPCP can be used to handle resource sharing between them. Further, since each heavy task is exclusively assigned a cluster of processors, the delays between heavy and light tasks are only due to global resources. According to the definitions in Sect. IVA, such delays can be captured by intertask blocking and agent interference. According to Lemma 3 and Lemma 6, bounding both intertask blocking and agent interference does not distinguish between heavy and light tasks. Thus, the delays between heavy and light tasks can be analyzed using the analysis framework as presented in Sect. IV. Notably, handling light tasks with shared resources optimally under federated scheduling remains as an open problem.
Further, we assume that the maximum number of requests of each vertex is known. This is possible in some reallife applications when the maximum number of requests of each vertex can be predetermined. Thus we can derive a more accurate blocking bound by using the exact number of requests on a path , i.e., , rather than enumerating the value of from [6]. The tradeoff is more calculations to enumerate all paths of the task in analysis. Notably, the presented analysis applies to the prior model [6, 11] by using the keypathoriented analysis [11].
The blockingtime analysis can be further improved by modern analysis techniques, e.g., the LinearProgrammingbased (LPbased) analysis in
[3]. However, we have no evidence on how the LPbased analysis [3] can be applied for this scenario yet. Thus, we first establish the fundamental analysis framework in this paper and remain finegrained analysis as future work.Vii Empirical Comparisons
In this section, we conduct schedulability experiments to evaluate the DPCPp approach using synthesized heavy tasks.
Viia Experimental Setup
Multiprocessor platforms with unispeed processors and , ranging over , or , shared resources were considered. For each , we generated the total utilizations of the tasksets from 1 to in steps of 0.05. The task utilizations of a taskset were generated according to the RandFixedSum algorithm [7] ranging over , where is the average utilization of the tasks. The base priority of the tasks was assigned by the Rate Monotonic (RM) heuristic. The number of tasks was determined by the chosen and the total utilization of the taskset.
For each task , the DAG structure was generated by the Grégory ErdösRényi algorithm [5], where the number of vertices was randamly chosen in
, and the probability of an edge between any two vertices was set to 0.1. Task period
was randomly chosen from loguniform distributions ranging over
, and was computed by . uses each resource in a probability . If used , the maximum number of requests was randomly chose from or , and the maximum critical section length was chosen in or . The WCET of each vertex and the maximum number of requests in each vertex were randamly determined such that and . To ensure plausibility, we enforced that and . The combination of the parameters consists of 216 experimental scenarios.ViiB Baselines
We compare DPCPp with existing locking protocols, denoted by SPINSON [6] and LPP [11], under federated scheduling (there is no study on locking protocols for the other stateoftheart scheduling approaches in the literature, for which we will discuss in Sect. VIII). For DPCPp, we use DPCPpEP to denote the analysis as presented in Sect. IV by enumerating all paths, and use DPCPpEN to denote the analysis by enumerating from 0 to for as in [6, 11]. We also use FEDFP to denote a hypothesis baseline without considering shared resources under federated scheduling [13].
ViiC Results
Fig. 2 shows acceptance ratios of the tested approaches with increasing normalized utilization, where Fig. 2(b) and (d) include more resource contentions compared to Fig. 2(a) and (c). It is shown that DPCPpEP consistently schedules more tasksets than SPINSON and LPP. In particular, the advantage of the DPCPp approach is more significant for heavy resourcecontentions as shown in Fig. 2(b) and (d), while SPINSON appears to be competitive for light resourcecontentions as shown in Fig. 2(a) and (c).
For brevity, we use the notations of dominance and outperformance^{1}^{1}1For an experimental scenario, algorithm is said to outperform algorithm if algorithm scheduled more task sets than algorithm , or dominate algorithm if its acceptance ratio is higher than that of algorithm at some tested points and never lower than that of algorithm at any tested point. to summarize the main trends of the results in Table 2 and 3. It is shown that the DPCPp approach improves upon SPINSON and LPP significantly. In particular, DPCPpEP outperforms in all scenarios, and it dominates in more than 99% scenarios. Similarly, DPCPpEN dominates and outperforms more often than less.
Table 2. Statistic for Dominance.
DPCPpEP  DPCPpEN  SPINSON  LPP  
DPCPpEP  N/A  216(100%)  215(99.5%)  216(100%) 
DPCPpEN  0(0.0%)  N/A  104(48.1%)  87(40.3%) 
SPINSON  0(0.0%)  10(4.6%)  N/A  39(18.1%) 
LPP  0(0.0%)  32(14.8%)  38(17.6%)  N/A 
Table 3. Statistic for Outperformance.
DPCPpEP  DPCPpEN  SPINSON  LPP  
DPCPpEP  N/A  216(100%)  216(100%)  216(100%) 
DPCPpEN  0(0.0%)  N/A  138(63.9%)  158(73.1%) 
SPINSON  0(0.0%)  78(36.1%)  N/A  114(52.8%) 
LPP  0(0.0%)  58(26.9%)  102(47.2%)  N/A 
Viii Related Work
Realtime scheduling algorithms and analysis techniques for independent parallel tasks have been widely studied in the literature [8, 13, 12, 14, 1, 4], where shared resources are not modeled explicitly.
The study of multiprocessor realtime locking protocols stems from the DPCP [16] and the Multiprocessor Priority Ceiling Protocol (MPCP) [15]. Empirical studies [3] showed that the DPCP has better schedulability performance than the MPCP. Based on the DPCP, Hsiu et al. [9] presented a dedicatedcore scheduling. More recently, Huang et al. [10] proposed the ROP scheduling. However, the work in [16, 15, 3, 9, 10] all assumes sequential task models. Although the locking protocols that are originally used for sequential tasks, e.g., [16, 15], might be used to handle concurrent requests of parallel tasks, no work on the corresponding analysis has been established in the literature. In this paper, we extend the DPCP to support parallel realtime tasks and present the schedulability analysis.
Recently, there is significant progress on the scheduling of parallel realtime tasks, e.g., partitioned [4], semipartitioned [1], global [8, 14], federated [13], and decompositionbased scheduling [12]. However, no study on locking protocols for the stateoftheart scheduling approaches other than the federated scheduling have been reported in the literature, so far as we know. For federated scheduling, Dinh et al. [6] studied the schedulability analysis for spinlocks. Jiang et al. [11] developed a semaphore protocol called LPP under federated scheduling. Both [6] and [11] assume local execution of resource requests. The presented DPCPp is based on a distributed synchronization framework, where requests to global resources are conducted on designated processors. In this way, the contention on each resource can be isolated to the designated processor such that blocking among tasks can be better managed.
Ix Conclusion
This paper for the first time studies the distributed synchronization framework for parallel realtime tasks with shared resources. We extend the DPCP to DAG tasks for federated scheduling and develop analysis techniques and partitioning heuristic to bound the task response time. More precise blocking analysis based on the concrete DAG structure would be an interesting future work.
References
 [1] (2017) Algorithms for hierarchical and semipartitioned parallel scheduling. In IPDPS, pp. 738–747. External Links: Link, Document Cited by: §VIII, §VIII.
 [2] (2010) Optimality results for multiprocessor realtime locking. See DBLP:conf/rtss/2010, pp. 49–60. External Links: Link, Document Cited by: §IIIC.
 [3] (2013) Improved analysis and evaluation of realtime semaphore protocols for PFP scheduling. See DBLP:conf/rtas/2013, pp. 141–152. External Links: Link, Document Cited by: §I, §VI, §VIII.
 [4] (2018) Partitioned fixedpriority scheduling of parallel tasks without preemptions. In RTSS, pp. 421–433. External Links: Link, Document Cited by: §VIII, §VIII.
 [5] (2010) Random graph generation for scheduling simulations. See DBLP:conf/simutools/2010, pp. 60. External Links: Link, Document Cited by: §VIIA.
 [6] (2018) Blocking analysis for spin locks in realtime parallel tasks. IEEE Trans. Parallel Distrib. Syst. 29 (4), pp. 789–802. External Links: Link, Document Cited by: §I, §VI, §VIIB, §VIII.
 [7] (2010) Techniques for the synthesis of multiprocessor tasksets. In WATERS, pp. 6–11. Cited by: §VIIA.
 [8] (2017) Improved response time analysis of sporadic DAG tasks for global FP scheduling. In RTNS, E. Bini and C. Pagetti (Eds.), pp. 28–37. External Links: Link, Document Cited by: §VIII, §VIII.
 [9] (2011) Task synchronization and allocation for manycore realtime systems. See DBLP:conf/emsoft/2011, pp. 79–88. External Links: Link, Document Cited by: §I, §VIII.
 [10] (2016) Resourceoriented partitioned scheduling in multiprocessor systems: how to partition and how to share?. See DBLP:conf/rtss/2016, pp. 111–122. External Links: Link, Document Cited by: §I, §I, §VIII.
 [11] (2019) Scheduling and analysis of parallel realtime tasks with semaphores. See DBLP:conf/dac/2019, pp. 93. External Links: Link, Document Cited by: §I, §VI, §VIIB, §VIII.
 [12] (2016) On the decompositionbased global EDF scheduling of parallel realtime tasks. See DBLP:conf/rtss/2016, pp. 237–246. External Links: Link, Document Cited by: §VIII, §VIII.
 [13] (2014) Analysis of federated and global scheduling for parallel realtime tasks. See DBLP:conf/ecrts/2014, pp. 85–96. External Links: Link, Document Cited by: §I, §II, §VIIB, §VIII, §VIII.
 [14] (2017) Schedulability analysis of conditional parallel task graphs in multicore systems. IEEE Trans. Comput. 66 (2), pp. 339–353. External Links: Link, Document Cited by: §VIII, §VIII.
 [15] (1990) Realtime synchronization protocols for shared memory multiprocessors. In ICDCS, pp. 116–123. External Links: Link, Document Cited by: §I, §IIIC, §VIII.
 [16] (1988) Realtime synchronization protocols for multiprocessors. See DBLP:conf/rtss/1988, pp. 259–269. External Links: Link, Document Cited by: §I, §I, §IIIA, §IIIC, §III, §VIII.
 [17] (2017) Release enforcement in resourceoriented partitioned scheduling for multiprocessor systems. See DBLP:conf/rtns/2017, pp. 287–296. External Links: Link, Document Cited by: §I.
 [18] (2019) Resourceoriented partitioning for multiprocessor systems with shared resources. IEEE Trans. Compt. 68 (6), pp. 882–898. Cited by: §I.
Comments
There are no comments yet.