THE ROYAL SITES IN TIMES OF CHARLES III ABSTRACT
3. GOBERNAR DESDE LOS SITIOS
For our experimental evaluation, we considered a broad range of different settings: we varied the number of processor cores in the system, the task set characteristics, the number of shared resources, and the way they are accessed by the tasks. A summary of the parameter ranges we explored in our evaluation is given in Table 6.3. To start with, we considered systems with 4, 8 and 16 cores. Embedded systems with 4 and 8 cores are readily available today, whereas embedded platforms with 16 cores are a slightly more forward-looking scenario. We generated task sets with up to 10 tasks per core (i.e., n ∈ {m, 2m, . . . , 10m}) using the task set generator presented by Emberson et al . [68]. Task periods were chosen at random from the interval
experiment parameter range description
1 and 2
m {4, 8, 16} number of processor cores
in the system
nr {m/2, m, 2m} number of shared resources rsf {0.1, 0.25, 0.4, 0.75} resource sharing factor:
fraction of tasks accessing
U {0.1n, 0.2n, 0.3n} total task set utilization Nmax {1, 2, 5, 10, 15} maximum number of
quests per accessed re-source
2
U 0.5m total task set utilization
n U
0.1 , 0.2U , 0.3U
task set size
Nmax varied maximum number of
quests per accessed re-source
Table 6.3: Overview of parameters varied in the experimental evaluation.
Varied parameters are not part of the configuration, but independent variables in the schedulability experiment.
[1ms, 1000ms] according to a log-uniform distribution, which covers a broad range of periods encountered in practice (e.g., in automotive systems [47]).
Task sets were generated with an average per-task utilization of either 0.1, 0.2, or 0.3. We considered either m/2, m, or 2m shared resources in the system.
Each resource was accessed by rsf · n tasks (rounded down if necessary) chosen independently at random, where rsf denotes the resource sharing factor, with rsf ∈ {0.1, 0.25, 0.4, 0.75}. If a task Ti accesses a resource `q,
then the number of Ti’s requests for `q (i.e., Ni,q) was chosen at randomly from the interval [1, . . . , Nmax]. The maximum number of requests Nmax was set to one of {1, 2, 5, 10, 15}. The critical section length Li,q was chosen at random either from the short interval [1µs, 15µs] or the medium interval [1µs, 100µs]. In the following, we denote a concrete combination of the above parameters as a configuration. We enforced that the cumulative length of all requests issued by a single task does not exceed its execution time. Formally:
∀Ti ∈ τ : ei ≥P
`q∈QLi,q· Ni,q.
For the lock types that support request priorities (i.e., P|N, P|P, PF|N, and PF|P), we employed a straightforward scheme for assigning these priorities:
Initially, all tasks are assigned the same (lowest) request priority. If a task set cannot be determined to be schedulable, the request priority of the tasks that cannot be shown to meet their deadlines is iteratively increased. This step is repeated until either the task set becomes schedulable or one of the following conditions apply: the task that cannot be shown to meet its deadline already has the highest locking priority, the locking priority of the same task has been already increased in the previous step, locking priorities are increased only for a small subset of the tasks in an alternating fashion over the last couple of steps. In either of these cases, further locking priority increases are deemed ineffective and schedulability cannot be established. Note that we assign the same priority to all requests issued by the same task (which is independent from its scheduling priority). Yet, our analysis supports assigning more fine-grained priorities at the level of resources (i.e., per task and per accessed resource). However, the development of a more sophisticated scheme for assigning request priorities (possibly at finer granularity than per task) is beyond the scope of this work.
We studied the schedulability in two sets of experiments to measure the impact of either varying system load or varying lock contention. In particular,
and the schedulability was measured as a function of the task set size. In the second set of experiments, the total utilization was fixed to U = m/2, and the task set size was determined by the average task utilization of the configuration (rounding up if necessary). The schedulability was then measured as a function of the maximum number of requests Nmax, which we varied across the interval [1, 40].
For each configuration, we generated and tested at least 1000 sample task sets for each n (in the first set of experiments) or Nmax (in the second set of experiments). In both sets of experiments, we applied eleven blocking analyses in total: the MILP-based analysis for each of the considered spin lock type (presented above), Gai et al .’s classic [72] (labeled “MSRP-classic”) and Brandenburg’s holistic [43, Ch. 5] analysis (labeled “MSRP-holistic”) for F|N spin locks. Finally, we added results for the (hypothetical) case in which no blocking occurs (labelled “no blocking”), that is, resources are treated as private rather than shared, and tasks are considered to execute independently. These results serve as an upper bound on schedulability (as schedulability can only decrease when accounting for blocking effects).
In the interest of performance, we did not unconditionally apply all analyses to each task set. In the case of F|N, we first applied —the comparably cheap—
holistic analysis, and used our —less pessimistic but computationally more demanding— analysis for F|N locks only when the holistic analysis did not already establish schedulability. Similarly, since F|N locks can be treated as a special case of PF|N locks with all request priorities set to the same value (see Section 5.6, we apply our analysis for PF|N only if the task set was not already established to be schedulable with F|N locks (either using our analysis for F|N locks or the holistic analysis). We performed similar optimizations for preemptable spin locks. Note that these optimizations do not affect the experimental results, but only their computational cost.
Next, we highlight trends and key findings from the experimental results.
Due to the large number of considered configurations, we illustrate our observations with selected representative configurations. The full results can be found online [132].