Exact Polynomial Time Algorithm for the Response Time Analysis of Harmonic Tasks with Constrained Release Jitter
aa r X i v : . [ c s . O S ] N ov Exact Polynomial Time Algorithm for theResponse Time Analysis of Harmonic Tasks withConstrained Release Jitter
Thi Huyen Chau Nguyen,Department of Information Technology,Thang Long University (TLU), Hanoi, [email protected] Grass,Faculty of Computer Science and Mathematics,University of Passau, Germanygrass@fim.uni-passau.deKlaus Jansen,Department of Computer Science,Christian-Albrechts-University Kiel, [email protected] 4, 2019
Abstract
In some important application areas of hard real-time systems, preemptive spo-radic tasks with harmonic periods and constraint deadlines running upon a uni-processor platform play an important role. We propose a new algorithm for deter-mining the exact worst-case response time for a task that has a lower computationalcomplexity (linear in the number of tasks) than the known algorithm developed forthe same system class. We also allow the task executions to start delayed due torelease jitter if they are within certain value ranges. For checking if these con-straints are met we define a constraint programming problem that has a specialstructure and can be solved with heuristic components in a time that is linear inthe task number. If the check determines the admissibility of the jitter values, thelinear time algorithm can be used to determine the worst-case response time alsofor jitter-aware systems.
Hard real-time embedded systems must deliver functional correct results related to theirinitiating events within specified time limits. Such systems are usually modelled as a1omposition of a finite number of recurrent tasks with the tasks releasing a potentiallyinfinite sequence of jobs. In the often used sporadic task model, the jobs arrive at a timedistance that is greater than or equal to the inter-arrival time (called period), which thusrepresents an important task parameter. The processing of a job must be completedat the latest with the relative deadline of the associated task. An important step in thedesign of such a system is therefore the scheduling analysis, with which compliancewith the time conditions is checked, for the implementation of which further systemproperties must be introduced.In this paper we consider task executions by a single processor, a fixed priority tasksystem and we allow a task being preempted in order to perform a higher priority task.Deadlines may be constrained by values lower as or equal to the corresponding period.A common method of scheduling analysis for these characteristics is response timeanalysis (RTA) [15],[3].More recently, real-time systems with harmonic tasks ( the periods are pairs of in-teger multiples of each other) have received increased attention. This is due in partto the fact that harmonic task systems have at least two advantages over systems witharbitrary periods: the processor utilization may be larger than in the general case andthe worst-case response times for the different tasks can be determined in polynomialtime [8] whereas in the general case RTA is pseudo-polynomial in the representation ofthe task system. In the literature we have several case studies in the most important ap-plications fields like avionics [11], automotive [2], industrial controllers [26], robotics[22] where harmonic periods are used. If the given periods are not a priori harmonic,they can be made harmonic according to certain criteria from a set of non-harmonicperiods with associated allowable value ranges, an appropriate objective function or tosatisfy end-to-end latency requirements [21],[1],[20].The release jitter of a task is the maximum difference between the arrival times andthe release times over all jobs of this task and may extend its worst-case response time [3]. The combination of harmonic periods with rate monotonic prioritization leads toa reduction of the jitter problem, as both release jitter and execution time variation canbe kept small since every job execution of a task is started at the same time distancefrom the lower period limit. With an arbitrary prioritization however this advantage nolonger exists.The release jitter concept can also be used to replicate other phenomena that havea corresponding effect on response times as the following two examples show. Thismakes release jitter all the more important in response time analysis.In [24] response time analysis introduced for fixed priority scheduling on a uni-processor has been adapted and applied to the scheduling of messages on ControllerArea Networks (CAN). Instead of a release jitter, we now have a queue jitter of themessage with the same effect on the delivery time of that message as the release jitteron the end time of a job.A real-time job can suspend itself while waiting for an activity to complete. Thedynamic self-suspension model allows a job of a task to suspend itself at any timeinstance before it finishes as long as its worst-case self-suspension time is not exceeded.This property of real-time system may be modeled by a virtual jitter as discussed e.g.in [9].In the following we first introduce an iterative method to determine the exact worst- ase response times of harmonic tasks without considering release jitter. This methodcan be extended to the case that all tasks have the same release jitter. Finally, we showthat this method can also be used for variable release jitter, provided that the jittervalues fulfill certain restrictions, which we check with a linear-time algorithm. In 1973, Liu and Layland [18] had generalized the result on priority assignment of [12]to demonstrate the optimality of Rate Monotonic scheduling ( RM ). They also presenteda simple sufficient schedulability test for periodic fixed priorities tasks under RM andthe assumption that the deadline of a task is equal to its period. The sufficient test doesnot give an answer to the question whether sets with n tasks that lead to a higher totalprocessor utilization ( > n ( / n − ) ) can actually be scheduled or not. Kuo and Mok[16] have shown that it is sufficient to create harmonic periods in order to eliminateuncertainty about schedulability. In this case it is sufficient to keep the total processorutilization ≤ worst-caseresponse times R i of the tasks are determined with a binary search process. Thus con-straint deadlines D i with R i ≤ D i < T i ( T i denote the period of task τ i ) can also beallowed. This method takes advantage of the fact that in the case of rate-monotonicprioritization of harmonic tasks, the start times of the jobs of a task τ i always have thesame distance to the previous period which is defined by the worst-case response time of the task with the next higher priority.Bonifaci et al [8] no longer assume that the priorities decrease with longer periods( RM ), but allow any fixed priorities that are not dependent on any other task parameters.The basic task and scheduling model is the same as in our approach but the schedula-bility test is quite different. In order to determine the worst-case response time of a task τ n , they first arrange the tasks according to non-increasing periods τ . . . τ n − such thatafter this reordering τ has the largest and τ n − the lowest period. They have shownthat the response time for τ n must be in the interval [ , C n T ] where C n is the worst-caseexecution time of task τ n . This interval length is now gradually reduced to the taskperiods T . . . T n − , whereby they have to search for the right position of the smaller in-terval in the potentially larger predecessor interval. In contrast, we follow the standardapproach in which a modified fixed point iteration is carried out for determining theresponse time R n = C n + ∑ j < n C j (cid:6) R n / T j (cid:7) , which can now be carried out in exactly n iteration steps because of the harmonic periods.The approaches described so far for the handling of task systems with harmonicperiods do not allow a model extension to take release jitter into account. Rather, onemust resort to methods that have been developed for the treatment of arbitrary periods.Audsley [3] and Tindell [25] have definded the response time of task systems with jitterand Sjodin and Hansson [23] have proved that fixed point iteration can be applied fordetermining the response time. We first use our approach to determine the responsetime when all tasks have the same maximum jitter. We then investigate task systems inwhich each task can have different jitter and specify restrictions for the jitters so thatthe fixed point determination can also be carried out with jitter-aware task systems in3inear time. The first aim of this research is to develop an algorithm that determines the exactworst-case response time for fixed priority preemptive sporadic harmonic tasks with constrained deadlines running on an uni-processor platform. Although these proper-ties are equal with that in [8] our algorithm has a lower computational complexity. Itis based on the standard RTA approach which performs a fixed point iteration on thebasis of the processor demand function which takes into account the worst-case ex-ecution time of the examined task as well as its preemptions by higher-priority tasks( total interference ). In contrast to the standard approach we present a parametric ap-proximation of this total preemption time by higher priority tasks that contributes tothe response time of the task considered. This approximation proceeds in n phases offine-tuning to get the exact total interference hence arriving to the exact response time.The second objective is to include possible release jitter of the tasks. The necessarymodification of the algorithm for jitter-free tasks is straight forward if we assume thatall tasks have the same jitter. Then the approximations have only to be corrected byan additional jitter term. To handle the more general jitter-aware case we introduce adifferent calculation rule for the preemption time of a task by higher prioritized taskswhich, however, gives the same fixed point. This new formula has a certain formalsimilarity with the standard formula for jitter-aware systems. If the jitter of the taskwith the smallest period is the largest and the other jitters fulfill further constraints, wetake the largest jitter as a constant jitter for all tasks and use the algorithm introducedfor this case to determine the worst-case response time. Finally, we also allow otherjitter values, but have to check whether certain constraints are met and have to deter-mine the constant jitter value that is used to determine the worst-case response time.For checking purposes we define a constraint programming problem that has a specialstructure and can be solved with heuristic components in a time that is linear in n . We formally define the terminology, notation and task model in Section 2. In Section3, we present our new algorithm for getting the worst-case response time for a task ina time that is linear in n assuming that the higher priority tasks are ordered by non-increasing periods. The correctness of the algorithm is proved in Section 4. In therest of the paper we consider jitter-aware systems. In Subsection 5.1 we begin withmodifying the algorithm introduced in Section 3 for systems with the same jitter forall tasks. The new formula to determine the preemption time by higher priority tasksis introduced in Subsection 5.2 and it is shown that the fixed-point iteration results inthe same worst-case response time as the usually used formula. In Subsection 5.3, weapply the result to task systems where the task with the lowest period has the largestjitter. Finally, we loose the restrictions on jitter and define a constraint programmingproblem in Subsection 5.4 and introduce an algorithm to solve it in Subsection 5.5.4 System model and background
In this work, we analyze a set Γ = { τ , τ , . . . , τ n } of n hard real-time sporadic tasks ,each one releasing a sequence of jobs . Task τ i is characterized by: • a minimum interarrival time T i (that we call period , in short) between the arrivalof two consecutive jobs, • a worst-case execution time C i , and • a relative deadline D i .In Section 5 we will extend this model by release jitter J i . The task periods are assumedto be harmonic that is T i divides T j or vice versa ( T i | T j or T j | T i ) . All task parametersare positive integer numbers. Notice that, by properly multiplying all the parameters byan integer, rational numbers are also allowed. We assume constrained deadlines i.e., C i ≤ D i ≤ T i . The ratio U i = C i / T i denotes the utilization of task τ i , that is, the fractionof time required by τ i to execute.At the time instants denoted by a i , j , the i -th task arrives and it is released for exe-cution at a time r i , j ≥ a i , j . A released task requests the execution of its j -th job for anamount C i of time.The maximum difference r i , j − a i , j over all j is called release jitter J i and we startour presentation with the assumption of J i being 0 for all 1 ≤ i ≤ n .Two consecutive arrivals of the same task cannot be separated by less than T i , thatis, ∀ i j , a i , j + ≥ a i , j + T i . We denote the finishing time of the j -th job of the i -th task by f i , j . The worst-caseresponse time R i of a task is [10] R i = max j = , ,... { f i , j − r i , j } (1)A task set is said to be schedulable when the maximum time period between the releaseand the finishing time of task τ i is lower than the relative deadline [10]: ∀ i , R i ≤ D i . In this paper we assume that tasks are scheduled over a single processor by preemp-tive Fixed Priorities (FP). The tasks are ordered by decreasing priority: τ i has higherpriority than τ j if and only if i < j . Also, we use abbreviated notations for the sum ofutilizations of tasks with successive indexes. We set U ι ... κ = ∑ i = ι ... κ U i . Correspond-ingly we denote ∑ i = ι ... κ C i with C ι ... κ .Also, we recall some basic notions related to fixed-priority scheduling. In 1990,Lehoczky [17] introduced the notion of level-i busy period , which represents the in-tervals of time when any among the higher priority tasks is running, in the criticalinstant .In jitter-free systems the critical instant occurs when all tasks τ i are simultaneouslyreleased [18]. Without loss of generality such an instant is set equal to zero. In order5o check the schedulability of a jitter-free task system, it is therefore sufficient to testthe response times for the first jobs on compliance with the condition R i ≤ D i .For simplification in the notation, from now on we consider the worst-case responsetime of task τ n but our results could easily be applicable for all i < n .The total interference I n − ( t ) describes the amount of time that is taken for execut-ing the tasks with a higher priority then τ n during the time interval [ , t ) . I n − ( t ) = n − ∑ i = C i · (cid:24) tT i (cid:25) (2)The time period t − I n − ( t ) is therefore left during the interval [ , t ) for executing task τ n . The total time demand for a complete execution of the n -th task is given by the processor demand function : W n ( t ) = C n + I n − ( t ) = C n + n − ∑ i = (cid:24) tT i (cid:25) C i (3)The worst-case response time is the point in time at which t − I n − ( t ) = C n . We there-fore determine the worst-case response time R n as the least fixed point [3]: R n def = min { t | W n ( t ) = t } (4) According to (4) and as proven in [23] R n may be determined by an iterative techniquestarting with R ( ) n and producing the values R ( ) n , R ( ) n , R ( ) n , ... and approximating R n byapplying the recurrence: R ( ) n = C n − U ... n − R ( k ) n = C n + n − ∑ i = C i · & R ( k − ) n T i ' (5)The iteration stops when R ( k ) n = R ( k − ) n . Although the iteration converges for U ... n < n approximations to the true value of R n . It is presented in Theorem1. In preparation of the theorem, we introduce Lemmas that justify the admissibilityof a task reordering. Such rearrangements were also made in [8] and [7] .For this purpose, we introduce the following lemma: Lemma 1.
The order in which the tasks τ j with j < n are executed is immaterial forthe total interference of these higher priority tasks to τ n .Proof. By construction of Eq. (2), we have in any time interval [ , t ] , the total interfer-ence by higher priority tasks to τ n is I n − ( t ) = ∑ n − i = C i · l tT i m . Since for any given t , the6eorder of n − τ n simply equates the reorder of n − I n − ( t ) remains the same. The lemmafollows. (cid:3) From this lemma, we obtain that the interference of higher priority tasks to R ( k ) n , i.e., I n − ( R ( k − ) n ) , is independent of the order in which tasks τ i with i < n are executed. Thisleads us to the idea of computing the worst-case response time of τ n by rearranging theorder of its higher priority tasks. Corollary 1.
The order in which the tasks τ j with j < n are executed is immaterial forcalculating the worst-case response time of task τ n .Proof. Directly from Lemma 1, for any order in which the tasks τ j with j < n are ex-ecuted, the interference time I n − ( t ) remains the same with any given t . Consequently,the recursive equation t = C n + I n − ( t ) would obtain the same solution t = R n . Henceto compute R n we could choose an arbitrary order of these higher priority tasks and thecorollary is proved. (cid:3) Also note that when this method is successively applied for all τ i in the system,for each round of computation of R i since the priority of the i -th task as well as theset of its higher priorities remained unchanged, the corresponding re-ordering will betransparent to the ( i + ) -th task, i.e., it is not a task priority re-assignment and onlypre-process preparation for our worst-case response time analysis.Now in order to keep the calculation of the indices simple in the various process-ing steps described below, we choose an inverse rate-monotonic order. To formallydescribe this reordering we introduce a bijective mapping π : 1 . . . n − → . . . n − , (6)in which π ( i ) = k signifies that task τ k with priority k is at position i in the new order.The reverse rate monotonic order satisfies the condition that for all i < j period T π ( j ) divides the period T π ( i ) having the priorities π ( i ) and π ( j ) , respectively. Theorem 1.
We are given a set of n harmonic tasks in reverse rate monotonic order.Then the least fixed point of the equationR n = C n + n − ∑ i = C π ( i ) (cid:6) R n / T π ( i ) (cid:7) (7) can be obtained by applying the iterative formula: e R ( ) n = C n − U π ( ) ... π ( n − ) (8)1 ≤ i ≤ n − , e R ( i ) n = e R ( i − ) n + C π ( i ) (cid:18)(cid:24) e R ( i − ) n T π ( i ) (cid:25) − e R ( i − ) n T π ( i ) (cid:19) − U π ( i + ) ... π ( n − ) (9) we finally get R n = e R ( n − ) n . e R ( i − ) n is an integer multiple of T π ( i ) i.e., if e R ( i ) n = e R ( i − ) n holds. For then e R ( i − ) n is also an integer multiple of T π ( j ) ≤ T π ( i ) .Eq. (7) describes the usual form of the recursion to determine R n . Note that afterchanging the order of the tasks the value of the sum remains the same, i.e., we couldalso write the terms in the sum as C i ⌈ t / T i ⌉ without changing the result of the sum.Before we prove Theorem 1 in the next section, let us introduce some proper-ties of the result. The calculation of R n ends at the latest after n steps and thereforehas a linear complexity. Note that only n − O ( n · log ( T π ( ) )) with T π ( ) = max ≤ i ≤ n ( T π ( i ) ) . In [26] an algorithm has been proposed that is also based on abinary search but with a reduced complexity O ( log ( T π ( ) ) − log ( T π ( n ) )) to compute theresponse time of task τ n if the priorities are rate monotonic, i.e. decrease with increas-ing period length. If T π ( n ) = n − our algorithm and that in [26] have about the samecomplexity but our algorithm can be applied to arbitrary fixed-priorities. Considering[8] and our algorithm, we must add the time required for sorting to get the complexityof the complete algorithm. In order to obtain the result of Theorem 1, in this section we would present a parametricapproximation of the total interference of higher priority tasks that contributes to theresponse time of τ n . This approximation proceeds in n phases of fine-tuning to get theexact total interference hence arriving to the exact worst-case response time . The mainpart of this section is the prove that this fine-tuning can be performed in an inductivefashion, of which each phase now has a constant computational complexity.For this purpose, first of all we introduce a set of functions e I i ( t ) with changing i represents varying degrees of approximation of the total interference I n − ( t ) . Todefine such functions, we partition the task set Γ − τ n into two disjoint subsets Γ ⌈⌉ i and Γ / i . We start with Γ ⌈⌉ = /0 and Γ / = Γ − τ n and terminate with Γ ⌈⌉ n − = Γ − τ n and Γ / n − = /0. For the functions formed therebetween we produce Γ ⌈⌉ i = (cid:8) τ π ( ) . . . . τ π ( i ) (cid:9) and Γ / i = (cid:8) τ π ( i + ) . . . τ π ( n − ) (cid:9) with 0 ≤ i ≤ n −
1. The indexes of the tasks in the set Γ / i determine which addends in the definition equation of I n − ( t ) are replaced by theirlinear lower bounds i.e., the rule x ≤ ⌈ x ⌉ is applied. Its approximations are defined asfollows: 0 ≤ i ≤ n − , e I i ( t ) = ∑ i + ≤ j ≤ n − U π ( j ) · t + ∑ ≤ j ≤ i C π ( j ) & tT π ( j ) ' (10)The left sum is formed by the elements of Γ / i = (cid:8) τ π ( i + ) . . . τ π ( n − ) (cid:9) and the right sumby the elements of Γ ⌈⌉ i = (cid:8) τ π ( ) . . . . τ π ( i ) (cid:9) . Also note that by this construction, I n − ( t ) = e I n − ( t ) . 8he difference of two functions with immediately successive indexes is e I i ( t ) − e I i − ( t ) = C π ( i ) & tT π ( i ) ' − U π ( i ) · t It follows that the two functions are equal for all times that are multiples of T π ( i ) and that the maximum distance over all time instances is less than C π ( i ) . Fig. 1 showsan example of two functions C n + e I i ( t ) and C n + e I i − ( t ) . We are interested in the pointsof intersection with the identify function Id ( t ) = t and want to construct the solutionof t i = C n + e I i ( t i ) knowing the solution of t i − = C n + e I i − ( t i − ) . We observe in Fig. 1,that e I i ( t ) is linear in the time interval ν · T π ( i ) < t ≤ ( ν + ) · T π ( i ) with ν ∈ N and thetwo points of intersection (at the start point of the vertical arrow and the end point ofthe horizontal arrow) are within the same period of task τ π ( i ) . tνT π ( i ) ( ν +1) T π ( i ) Id(t) C n + e I i − ( t ) t i − t i C n + e I i ( t ) K i ( t ) t i − t i Figure 1: The figure shows an example of functions C n + e I i ( t ) , C n + e I i − ( t ) , K i ( t ) , and Id ( t ) as well as the solutions of t i − = C n + e I i − ( t ) and t i = K i ( t i ) To simplify the process of finding t i when knowing t i − we introduce another setof functions which have no subterms that are linear in time and would significantlylengthen the number of iterations until the fixed point is found. We obtain the moresuitable equality by manipulating the set of equations t = C n + e I i ( t ) . In doing so, theequations are solved for the time variable t as far as possible i.e., leaving the ceilingterms. We get t = K i ( t ) with0 ≤ i ≤ n − , K i ( t ) = C n + ∑ ≤ j ≤ i C π ( j ) l tT π ( j ) m − U π ( i + ) ... π ( n − ) (11)9he solution defined by any of the equations t i = K i ( t i ) is equal to that of the corre-sponding equation t i = C n + e I i ( t i ) as shown in the following Lemma. Lemma 2. t i = C n + e I i ( t i ) ⇔ t i = K i ( t i ) Proof.
Let be t i = C n + e I i ( t i ) = C n + ∑ i + ≤ j ≤ n − U π ( j ) · t i + ∑ ≤ j ≤ i C π ( j ) & t i T π ( j ) ' (*)Using some algebra we get t i = C n + ∑ ≤ j ≤ i C π ( j ) l t i T π ( j ) m − ∑ i + ≤ j ≤ n − U π ( j ) = K i ( t i ) (**)which proofs the ⇒ direction. We can also start with eq. (**) and make the reverseconversion to eq. (*). This proves the ⇐ direction. (cid:3) In Fig.1 K i ( t ) (dashed line) and C n + e I i ( t ) (solid line) have the same point of inter-section with the identity function. Note also that in the figure K i ( t ) is constant in theinterval ν · T π ( i ) < t ≤ ( ν + ) · T π ( i ) hence K i ( t i − ) = K i ( t i ) .The use of the functions (11) is not new. In [19] these functions are used to reducethe number of iterations applying the RTA method.The solution of any equation t i = K i ( t i ) can be found by an iteration: t ( k + ) i = C n + ∑ ≤ j ≤ i C π ( j ) (cid:24) t ( k ) i T π ( j ) (cid:25) − U π ( i + ) ... π ( n − ) , ≤ i ≤ n − t ( k + ) i = t ( k ) i , which is a solution of t i = K i ( t i ) .For the iterative calculation of the fixed point of t i = K i ( t i ) , it is important that thisfixed point is greater than or equal to the fixed point of the equation t i − = K i − ( t i − ) ,as shown in the following Lemma. Lemma 3. t i ≥ t i − .Proof. t i − is the least fixed point of t = K i − ( t ) . For all t < t i − we therefore have t < K i − ( t ) . We write K i ( t ) in terms of K i − ( t ) : K i ( t ) = K i − ( t )( − U π ( i ) ... π ( n − ) ) + C π ( i ) (cid:6) t / T π ( i ) (cid:7) − U π ( i + ) ... π ( n − ) For t < t i − we have: K i ( t ) > t ( − U π ( i ) ... π ( n − ) ) + C π ( i ) (cid:6) t / T π ( i ) (cid:7) − U π ( i + ) ... π ( n − ) U π ( i ) ... π ( n − ) = U π ( i ) + U π ( i + ) ... π ( n − ) it is K i ( t ) > t + − tU π ( i ) + C π ( i ) (cid:6) t / T π ( i ) (cid:7) − U π ( i + ) ... π ( n − ) ≥ tt = K i ( t ) therefore has no fixed point in the interval [ , t i − ) , so that t i ≥ t i − applies. (cid:3) This Lemma ensures that we can start the search for the fixed point t i with the fixedpoint t i − ≤ t i .Theorem 1 states that t i = K i ( t i − ) i.e., if we set t ( ) i = t i − , only one iteration stepis required and t ( ) i is the solution we are searching for. The proof of Theorem 1 is doneby induction and structured in the following way:1. Introducing the base case in Lemma 42. In the inductive hypothesis we assume that we have a solution of t i − = K i − ( t i − ) .We start the iterative procedure for getting a solution of t i = K i ( t i ) with the initialvalue t ( ) i = t i − and use the hypothesis in order to get a simplified version of theequation for t i (Lemma 5)3. Finally we will give a solution for t i = K i ( t i ) and prove its validity (Lemma 7).We start with the base case. Lemma 4.
The base case of the inductive proof is defined by i = .t = C n − U π ( ) ... π ( n − ) (13) Proof.
This follows immediately from t = K ( t ) (see Eq. (11) with i = (cid:3) Supposing we already had a solution of the Eq. (11) for the index i −
1, i.e. asolution of t i − = C n + ∑ ≤ j ≤ i − C π ( j ) l t i − T π ( j ) m − U π ( i ) ... π ( n − ) for the variable t i − .Now, we calculate t i as a function of t i − on the assumption that we start the itera-tion for getting t i with the initial value t ( ) i = t i − . Lemma 5.
We assume that we have found a solution for the equation t i − = K i − ( t i − ) .If we start the iteration for the determination of t i with this value t i − , we can use theequation t ( ) i = t i − · (cid:0) − U π ( i ) ... π ( n − ) (cid:1) + C π ( i ) · l t i − T π ( i ) m − U π ( i + ) ... π ( n − ) (14)11 roof. By the induction hypothesis we have t i − = C n + ∑ ≤ j ≤ i − C π ( j ) l t i − T π ( j ) m − U π ( i ) ... π ( n − ) (*)After multiplying both sides of the equation (*) by 1 − U π ( i ) ... π ( n − ) we get: C n + ∑ ≤ j ≤ i − C π ( j ) & t i − T π ( j ) ' = t i − · (cid:0) − U π ( i ) ... π ( n − ) (cid:1) (15)This equation allows us to substitute a subterm of a term in the form of the LHS by theRHS.We now consider the iteration for the determination of t i starting with t i − . In Eq.(12) we split the sum of the ceiling terms for j = j = i in the numerator into thesum from j = j = i − j = i : t ( ) i = C n + ∑ ≤ j ≤ i − C π ( j ) l t i − T π ( j ) m + C π ( i ) l t i − T π ( i ) m − U π ( i + ) ... π ( n − ) Observing (15) to simplify the numerator we get the Lemma. (cid:3)
Note that Eq. (14) can also be written as t ( ) i = t i − + − t i − · U π ( i ) + C π ( i ) · l t i − T π ( i ) m − U π ( i + ) ... π ( n − ) = t i − + C π ( i ) · (cid:16)l t i − T π ( i ) m − t i − T π ( i ) (cid:17) − U π ( i + ) ... π ( n − ) (16)so that t ( ) i ≥ t i − .After these preparations we can now take the decisive third step in the proof ofTheorem 1. First, a basic property of nested ceiling functions is recalled from Lemma 6in [13]. Lemma 6.
Let be x , z positive rational numbers with < x ≤ z. Then, (cid:24) x + (cid:18) − xz (cid:19) ⌈ z ⌉ (cid:25) = ⌈ z ⌉ (17)This Lemma allows to substitute the complex LHS by the simple RHS in a corre-sponding term.To complete the proof of Theorem 1 we have to show that the value of t ( ) i is asolution of the equation t i = K i ( t i ) . With reference to Fig. (1), we can elucidate the un-derlying idea as a preparation of the Lemma 7. The start point of the vertical arrow hasthe coordinates ( t i − , t i − ) and the end point of the horizontal arrow has the coordinates ( t i , t i ) . The function K i ( t ) is constant for all t ∈ [ t i − , t i ] hence K i ( t i − ) = K i ( t i ) . Lemma 7.
We assume the validity of (14) (induction hypothesis) and gett ( ) i = K i ( t i − ) ⇒ t ( ) i = K i (cid:16) t ( ) i (cid:17) ⇒ t i = t ( ) i roof. The proof is done in three steps:1. K i ( t ) is constant in the left open time interval I = T π ( i ) & t i − T π ( i ) ' − ! , T π ( i ) & t i − T π ( i ) ' Proof.
Eq. (11) contains only ceiling terms with a denominator T π ( j ) that isa multiple of T π ( i ) and the numerator t . All these ceiling terms are thereforeconstant in the mentioned interval. There are no other time dependent terms. (cid:3)
2. The two intances of time t i − ∈ I and t ( ) i ∈ I with t ( ) i ≥ t i − lie in the sameperiod of the task τ π ( i ) , i.e. T π ( i ) l t i − T π ( i ) m = T π ( i ) (cid:24) t ( ) i T π ( i ) (cid:25) . This is true if the ceilingterms are equal. Proof.
In Lemma 5 we have shown how we can use a simple term to determine t ( ) i . From this we get: & t ( ) i T π ( i ) ' = t i − · (cid:0) − U π ( i ) ... π ( n − ) (cid:1) + C π ( i ) · l t i − T π ( i ) m T π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1) By setting x = t i − · (cid:0) − U π ( i ) ... π ( n − ) (cid:1) T π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1) (*)and z = t i − T π ( i ) , (**)from the property of the nested ceiling of Lemma 6, it follows that & t ( ) i T π ( i ) ' = ⌈ z ⌉ = & t i − T π ( i ) ' (***)The Lemma is applicable in this case, since • with t = C n / ( − U π ( ) ... π ( n − ) ) > < t < t < · · · < t i − and z > • with 1 − U π ( i ) ... π ( n − ) > t i − > x > for the factor of the inner ceiling applies: C π ( i ) / (cid:0) T π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1)(cid:1) = − x / z (****)since by (*) and (**)1 − x / z = − t i − · (cid:0) − U π ( i ) ... π ( n − ) (cid:1) T π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1) T π ( i ) t i − The RHS can be transformed into:1 − − U π ( i ) ... π ( n − ) − U π ( i + ) ... π ( n − ) = U π ( i ) − U π ( i + ) ... π ( n − ) > > K i ( t ) is constant ∀ t ∈ I and we have for the time instances t i − ∈ I and t ( ) i ∈ I we get t ( ) i = K i ( t i − ) = K i ( t ( ) i ) . (cid:3)
3. Finally, t i = t ( ) i Proof.
The point in time as defined in Eq. (14) t ( ) i = K i ( t ( ) i ) is a fixed point ofthe equation t = K i ( t ) . Furthermore we started the fixed point iteration with thetime instant t i − which is lower than t ( ) i . Therefore t ( ) i is the least fixed pointi.e. t i = t ( ) i . By Lemma 2 it is also the least fixed point of t = C n + e I i ( t ) . (cid:3)(cid:3) We are now able to give a proof of Theorem 1:
Proof.
Theorem 1: The equations (8) and (9) are equivalent to (13) and (16), respec-tively if we substitute t by e R ( ) n and t i by e R ( k ) n . By Lemma 7 we know that e R ( k ) n is asolution of (9). Also by construction of (10) e I n − ( t ) = I n − ( t ) hence e R ( n − ) n is the exact worst-case response time R n . (cid:3) When release jitters have to be considered, the harmonic tasks lose the important prop-erty that all discontinuities of the total interference function are restricted to the timeswhich are multiples of the smallest period T π ( n − ) . This may cause that no polynomialalgorithm exists for the determination of the worst-case response time , and one has toresort to the algorithm for general tasks. In this section, we show that we can handlejitter that meets certain limits. 14elease jitter models the delay between the arrival time of a job and the time thejob is released. To determine the worst-case response time , we can assume that the jobsof a task follow each other with the minimum distance. The arrival times are thereforemultiples of the smallest inter-arrival time [5]. That is, the i -th job of a task τ j arrivingat the time a j , i = iT j is released within the time interval iT j ≤ r j , i ≤ iT j + J j where J j denotes the maximum jitter of the task over all jobs. As consequence, the time intervalbetween consecutive releases of a task may be lower than T j and the critical situationfor a task τ j arises when it is released together with all higher-priority tasks. Differentpoints in time can therefore be critical instances for the individual tasks.Audsley et al. [3] and Tindell et al. [25] have discussed the release jitter problem forreal time tasks in detail and proposed a modification of the total interference functionJ J i n − ( t ) = n − ∑ i = C i (cid:24) t + J i T i (cid:25) (18)which leads to the processor demand functionW J i n ( t ) = C n + J J i n − ( t ) = C n + n − ∑ i = C i (cid:24) t + J i T i (cid:25) (The index J i denotes functions, whose values depend on a variable jitter). The worst-case response time of task τ n results as the smallest fixed point [23] R J i n def = min (cid:8) t | W Jn i ( t ) = t (cid:9) (19)For this task to be schedulable, it must fulfill the condition [10]: R J i n ≤ D n − J n Again, we can reorder the higher-priority tasks without changing the value of thesefunctions, where the ordering rule for π is extended by ordering tasks with equal peri-ods according to increasing jitter. Ties are broken arbitrarily. We develop our methodfor determining the corresponding worst-case response time in four steps:1. Assuming the same jitter for all tasks.2. Shifting the times of discontinuities in a limited way without changing the timeof the fixed point.3. Application of the former results to handle strongly restricted different jitters fordifferent tasks (subsection 5.3)4. Loosening the restrictions introduced in subsection 5.3. To prepare our actual result, we first assume that all tasks have the same jitter J . Thediscontinuities of the processor demand function are now shifted from integer multiples15f the smallest period in the jitter-free case to a time that exactly J time units lie beforethese periods. W Jn ( t ) = C n + n − ∑ i = C i (cid:24) t + JT i (cid:25) (20)and the worst-case response time is defined as R Jn def = min (cid:8) t | W Jn ( t ) = t (cid:9) (21)The condition for a task set to be schedulable is now: R Jn ≤ D n − J Because we consider in this section different total interference functions which re-sult in different worst-case response times we introduce indexes to make the differencevisible. This recurrence can be solved analogously as the recurrence without jitter. Wefollow therefore the line of reasoning in sections 3 and 4 and begin with defining thefunction K Ji ( t ) where we use a reordering according to the mapping function π and forwhich we search the least fixed points.0 ≤ i ≤ n − , K Ji ( t ) = C n + ∑ ≤ j ≤ i C π ( j ) l t + JT π ( j ) m − U π ( i + ) ... π ( n − ) (22) Lemma 8.
We are given a set of n harmonic tasks where the n − tasks of higherpriority are ordered according to the mapping funtion π . Then the least fixed point ofthe equation (21) can be obtained by iteration: e R J ( ) n = C n + J − U π ( ) ... π ( n − ) − J (23)1 ≤ i ≤ n − , e R J ( i ) n = e R J ( i − ) n + − U π ( i ) ( e R J ( i − ) n + J ) + C π ( i ) (cid:24) e R J ( i − ) n + JT π ( i ) (cid:25) − U π ( i + ) ... π ( n − ) (24) we finally get R Jn = e R J ( n − ) n .Proof. The value e R J ( ) n is the solution of the equation e R J ( ) n = C n + U π ( ) ... π ( n − ) (cid:16) e R J ( ) n + J (cid:17) which is derived from (20) by replacing all ceiling functions by their arguments andwhich has been defined in [23] as a valid starting point for a fixed point iteration.Note that with J > < U π ( ) ... π ( n − ) < e R J ( ) n > I with constant values of K Ji ( t ) to: I = T π ( i ) & e R J ( i − ) n + JT π ( i ) ' − ! , T π ( i ) & e R J ( i − ) n + JT π ( i ) ' This means the discontinuities are now shifted to the time instances mT π ( i ) − J = m ′ T π ( n − ) − J for K i (( t ) with m , m ′ ∈ N but the interval length has not changed.2. Now we have to show that l ( e R J ( i − ) n + J ) / T π ( i ) m = l ( e R J ( i ) n + J ) / T π ( i ) m holds whatmeans that the two time instances e R J ( i − ) n and e R J ( i ) n are in the same time intervalwith a constant value of K Ji ( t ) i.e. K Ji ( e R J ( i ) n ) = K Ji ( e R J ( i − ) n ) .We substitute the RHS of (24) for e R J ( i ) n in l ( e R J ( i ) n + J ) / T π ( i ) m and show that thisterm can be simplified to l ( e R J ( i − ) n + J ) / T π ( i ) m . Again we use Lemma 6.We set x = e R J ( i ) n + JT π ( i ) by (24) = e R J ( i − ) n (cid:0) − U π ( i ) ... π ( n − ) (cid:1) − U π ( i ) JT π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1) + JT π ( i ) = (cid:16) e R J ( i − ) n + J (cid:17)(cid:0) − U π ( i ) ... π ( n − ) (cid:1) T π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1) (*)and z = e R J ( i − ) n + JT π ( i ) (**)With e R J ( i − ) n > e R J ( ) n and J > x > z >
0. From the propertyof the nested ceiling of Lemma 6, it follows that & e R J ( i ) n + JT π ( i ) ' = ⌈ z ⌉ = & e R J ( i − ) n + JT π ( i ) ' (***)The Lemma is applicable in this case, since for the factor of the inner ceilingapplies: C π ( i ) / (cid:0) T π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1)(cid:1) = − x / z (****)since by (*) and (**) x / z = ( e R J ( i − ) n + J ) (cid:0) − U π ( i ) ... π ( n − ) (cid:1) T π ( i ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1) · T π ( i ) e R J ( i − ) n + J After simplification we also get:1 − x / z = − − U π ( i ) ... π ( n − ) − U π ( i + ) ... π ( n − ) (cid:0) − U π ( i + ) ... π ( n − ) (cid:1) − U π ( i ) ≡ (cid:0) − U π ( i ) ... π ( n − ) (cid:1) and thedefinition U π ( i ) = C π ( i ) / T π ( i ) we have :1 − x / z = C π ( i ) T π ( i ) ( − U π ( i + ) ... π ( n − ) ) This proves that the Lemma 6 is applicable and Eq. (****) applies. (cid:3)
We can now give a first application of this method and start with introducing somedefinitions. We assume that the different tasks have different jitters and we are inter-ested in the minimum and maximum values: J max = max { J π ( i ) : 1 ≤ i ≤ n − } and J min = min { J π ( i ) : 1 ≤ i ≤ n − } We first set J = J min , and then determine the worst-case response time which wedenote by R minn applying (23) and (24). On the other hand, we set J = J max and obtainthe worst-case response time R maxn . Lemma 9.
We assume that we have different jitters for the different tasks and thereforehave to consider the processor demand function :W J i n − ( t ) = C n + n − ∑ i = C π ( i ) (cid:6) ( t + J π ( i ) ) / T π ( i ) (cid:7) (25) The solution of the recursive equationR J i n = W J i n ( R J i n ) (26) leads to the worst-case response time for which we haveR minn ≤ R J i n ≤ R maxn Proof.
We compare the total sums in the equations for determining R minn , R J i n , and R maxn summand-wise. The constant term C n is equal in the three sums. For the summandswith index i we have: C π ( i ) l t + J min T π ( i ) m , C π ( i ) l t + J π ( i ) T π ( i ) m , and C π ( i ) l t + J max T π ( i ) m with 0 ≤ J min ≤ J π ( i ) ≤ J max . With x ≤ y ⇒ ⌈ x ⌉ ≤ ⌈ y ⌉ we get: l t + J min T π ( i ) m ≤ l t + J π ( i ) T π ( i ) m ≤ l t + J max T π ( i ) m . This is true for any i and therefore it is ∀ t , W J min n ( t ) ≤ W J i n ( t ) ≤ W J max n ( t ) . The least intersections of these functions with the identity function Id ( t ) = t form the fixed points searched for. This implies that the fixed points are ordered as thelemma states. (cid:3) Unfortunately, the worst-case response times for J min and J max may differ greatly.In either case, however, we can determine an upper limit and lower limit on R J i n in lineartime. 18 .2 Different models for the total interference function The equation I n − ( R n ) = n − ∑ i = C π ( i ) (cid:6) R n / T π ( i ) (cid:7) (27)does not describe the only model for the total interference for J =
0, especially in caseof task sets with harmonic periods we can modify it. Our goal is to change the timeinstances of discontinuities individually for different tasks similar to the shift by jitter.We will show that the worst-case response time using this different interference modelremains unchanged by this modification such that it can be computed by our methodintroduced above. To derive this model and its implication we define time intervalswhich can not contain R n as an element and which we call the exclusion time intervals .In (27), the entire execution time of jobs of the task τ π ( i ) is added immediately afterthe time instants which are multiples of T π ( i ) but in fact, the processor processes theactivated jobs continuously. That means that the time intervals m i T π ( i ) < t ≤ m i T π ( i ) + C π ( i ) can only be used by the task τ π ( i ) or a higher priority task but never to executeparts of the low priority task τ n .Hence, the worst-case response time for the task τ n can not be in the left open timeintervals ( m i T i , m i T i + C i ] , ∀ i ≤ n − , ∀ m i ∈ N . Rather it lies before or after such aninterval.When we consider tasks with harmonic periods, we can increase the exclusion timeintervals . At the time m i T π ( i ) at least jobs of the tasks whose period divides T π ( i ) arereleased and must be executed according to their priority before the next time portioncan be assigned to the task τ n . Therefore R n can not be an element of the time intervals (cid:0) m i T π ( i ) , m i T π ( i ) + C π ( i ) ... π ( n − ) (cid:3) , ≤ i ≤ n − , ∀ m i ∈ N . For the task with the lowestperiod T π ( n − ) the exclusion time intervals are (cid:0) m n − T π ( n − ) , m n − T π ( n − ) + C π ( n − ) (cid:3) ∀ m n − ∈ N .Note that due to the commutativity of the addition C π ( i + ) ... π ( n − ) the order of theexecuted tasks after a period is not relevant.In Figure 2 we give an example of a task system with n =
5. The upper solid lineshows C + I ( R ) whereas the lower solid line represents C + b I ( R ) . R can only bean element of the time intervals in which the dotted line meets the two solid lines. Ateach multiple of T π ( ) an exclusion time interval begins which can not contain R andwhich has different length depending on the tasks that are released at that time. At time0, for example, all 5 tasks are released resulting in an exclusion time interval of length C π ( ) .... π ( ) . The length of the exclusion time interval are shown for the multiples of T π ( ) . For the sake of simplicity, we have presented the task executions after the times m T π ( ) in the order of increasing periods. When the order of execution is changed,nothing changes in the course of the dotted line.We now can formally demonstrate this property of exclusion intervals for R n asfollows: Lemma 10. ∀ i = . . . n − , ∀ m i ∈ N , R n / ∈ ( m i T π ( i ) , m i T π ( i ) + C π ( i ) ... π ( n − ) ] C + I ( t ) , C + b I ( t ) C π (1) ..π (4) C π (4) C π (2) ..π (4) C π (3) ..π (4) Id ( t ) R T T T T T T = T = T = 3 T Figure 2: The figure shows a 5 task system and explains that shifting activation timesof tasks has no influence on the response time
Proof.
Supposing that ∃ i ∈ [ , n − ] , m i ∈ N such that m i T π ( i ) < R n ≤ m i T π ( i ) + C π ( i ) ... π ( n − ) ,we will prove this Lemma by counterposition.By definition of Eq. (4), since W n ( t ) is a non-decreasing function with W n ( ) > R n is the first instant that W n ( t ) = t , we should have for all t < R n , W n ( t ) > t , hence W n ( m i T π ( i ) ) > m i T π ( i ) . (*)Also, we have: W n ( R n ) − W n ( m i T π ( i ) ) = n − ∑ j = & R n T π ( j ) ' − & m i T π ( i ) T π ( j ) '! C π ( j ) = i − ∑ j = & R n T π ( j ) ' − & m i T π ( i ) T π ( j ) '! C π ( j ) + n − ∑ j = i & R n T π ( j ) ' − & m i T π ( i ) T π ( j ) '! C π ( j ) ≥ n − ∑ j = i & R n T π ( j ) ' − & m i T π ( i ) T π ( j ) '! C π ( j ) (28)By nature of our reordered harmonic systems, for all j = i . . . n −
1, we have T π ( j ) | T π ( i ) hence T π ( j ) | m i T π ( i ) and l m i T π ( i ) T π ( j ) m = m i T π ( i ) T π ( j ) < R n T π ( j ) ≤ l R n T π ( j ) m . Therefore ∀ j ∈ [ i , n − ] , l R n T π ( j ) m − l m i T π ( i ) T π ( j ) m ≥
1. Replacing these into Eq. (28) we have:20 n ( R n ) − W n ( m i T π ( i ) ) ≥ n − ∑ j = i C π ( j ) W n ( R n ) ≥ W n ( m i T π ( i ) ) + n − ∑ j = i C π ( j ) R n = W n ( R n ) > m i T π ( i ) + C π ( i ) ... π ( n − ) (by (*))which contradicts that R n ∈ ( m i T π ( i ) , m i T π ( i ) + C π ( i ) ... π ( n − ) ] . The Lemma is proved. (cid:3) Our new model for calculating harmonic task system worst-case response time allowsfor the treatment of release jitter by applying the algorithm in Lemma 8. In this subsec-tion we start with proving the equivalence of the novel model with the standard modelconcerning the result of the corresponding fixed point iterations.With such a model b I n − ( t ) of the total interference , we can now define another processor demand function b W n ( t ) as: b W n ( t ) def = C n + b I n − ( t ) = C n + n − ∑ i = C π ( i ) & t − C π ( i + ) ... π ( n − ) T π ( i ) ' (29)where ∀ i , C π ( i + ) ... π ( n − ) < T π ( i ) because of the assumptions U π ( ) ... π ( n ) < T π ( ) ≥ T π ( ) ... ≥ T π ( n − ) . We then obtain its least fixed point b R n as: b R n def = min n t | b W n ( t ) = t o (30)Note that the arguments of the ceiling function in (29) are similar to that of (25) withthe exception that in (25) positive jitter values are added to the time variable t whereasin (29) the sum of execution times is subtracted from t .We will now demonstrate that this novel analysis model of b I n − ( t ) , b W n ( t ) and b R n isequivalent to the response time analysis of I n − ( t ) , W n ( t ) and R n . For this purpose, wefirst present the following property of b R n : Lemma 11. ∀ i = . . . n − , ∀ m i ∈ N , b R n / ∈ ( m i T π ( i ) , m i T π ( i ) + C π ( i ) ... π ( n − ) ] (31) Proof.
Supposing that ∃ i ∈ [ , n − ] , m i ∈ N such that m i T π ( i ) < b R n ≤ m i T π ( i ) + C π ( i ) ... π ( n − ) ,we will prove this Lemma by counterposition.Note also that since b W n ( t ) is a non-decreasing function with b W n ( ) >
0, and b R n isthe first instant that b W n ( t ) = t , we should have for all t < b R n , b W n ( t ) > t . (*)Now we will prove that b R n > m i T π ( i ) + C π ( i ) ... π ( n − ) by induction.1. First we prove the base case that b R n > m i T π ( i ) + C π ( n − ) .21ince by definition, b W n ( b R n ) = b R n , we have: b R n − b W n ( m i T π ( i ) ) = b W n ( b R n ) − b W n ( m i T π ( i ) )= n − ∑ j = C π ( j ) & b R n − C π ( j + ) ... π ( n − ) T π ( j ) ' − & m i T π ( i ) − C π ( j + ) ... π ( n − ) T π ( j ) '! (32)Let us consider the addends of the accumulated sum above:- For j = . . . n −
2: Since b R n > m i T π ( i ) we have: & b R n − C π ( j + ) ... π ( n − ) T π ( j ) ' − & m i T π ( i ) − C π ( j + ) ... π ( n − ) T π ( j ) ' ≥ j = n −
1: By nature of our reordered harmonic systems, with i ≤ n −
1, wehave T π ( n − ) | T π ( i ) hence T π ( n − ) | m i T π ( i ) and l m i T π ( i ) T π ( n − ) m = m i T π ( i ) T π ( n − ) < b R n T π ( n − ) ≤ l b R n T π ( n − ) m .Therefore, with j = n − & b R n T π ( j ) ' − & m i T π ( i ) T π ( j ) ' ≥ b R n − b W n ( m i T π ( i ) ) ≥ C π ( n − ) .By (*), we also have b W n ( m i T π ( i ) ) > m i T π ( i ) , hence b R n ≥ m i T π ( i ) + C π ( n − ) and the basecase is proved.2. Now supposing we already had b R n > m i T π ( i ) + C π ( k ) ... π ( n − ) with i + ≤ k ≤ n − b R n > m i T π ( i ) + C π ( k − ) ... π ( n − ) . We have: b R n − b W n ( m i T π ( i ) + C π ( k ) ... π ( n − ) ) = b W n ( b R n ) − b W n ( m i T π ( i ) + C π ( k ) ... π ( n − ) )= n − ∑ j = C π ( j ) & b R n − C π ( j + ) ... π ( n − ) T π ( j ) ' − & m i T π ( i ) + C π ( k ) ... π ( n − ) − C π ( j + ) ... π ( n − ) T π ( j ) '! (35)Let us consider the addends of the accumulated sum above:- For j = . . . n − , j = k −
1: Since by the inductive hypothesis b R n > m i T π ( i ) + C π ( k ) ... π ( n − ) , we have: & b R n − C π ( j + ) ... π ( n − ) T π ( j ) ' − & m i T π ( i ) + C π ( k ) ... π ( n − ) − C π ( j + ) ... π ( n − ) T π ( j ) ' ≥ j = k −
1: By the inductive hypothesis, we have b R n − C π ( j + ) ... π ( n − ) > m i T π ( i ) + C π ( k ) ... π ( n − ) − C π ( j + ) ... π ( n − ) = m i T π ( i ) . Also, i + ≤ k = ⇒ k − ≥ i , then bynature of our reordered harmonic systems, we have T π ( k − ) | T π ( i ) hence T π ( k − ) | m i T π ( i ) l m i T π ( i ) T π ( k − ) m = m i T π ( i ) T π ( k − ) . Combine all these we have b R n − C π ( j + ) ... π ( n − ) T π ( j ) > m i T π ( i ) T π ( k − ) = l m i T π ( i ) T π ( k − ) m = l m i T π ( i ) + C π ( k ) ... π ( n − ) − C π ( j + ) ... π ( n − ) T π ( j ) m . Finally, applying ⌈ x ⌉ ≥ x , for j = k − & b R n − C π ( j + ) ... π ( n − ) T π ( j ) ' − & m i T π ( i ) + C π ( k ) ... π ( n − ) − C π ( j + ) ... π ( n − ) T π ( j ) ' ≥ b R n − b W n ( m i T π ( i ) + C π ( k ) ... π ( n − ) ) ≥ C π ( k − ) . Also, by (*), b W n ( m i T π ( i ) + C π ( k ) ... π ( n − ) ) > m i T π ( i ) + C π ( k ) ... π ( n − ) . Conse-quently, we have b R n > m i T π ( i ) + C π ( k − ) ... π ( n − ) and the inductive case is proved.Finally, applying the results above inductively from the base case until k = i + b R n > m i T π ( i ) + C π ( i ) ... π ( n − ) , which contradicts the counterpositive hypothesisand the Lemma is proved. (cid:3) Now having this property of exclusion intervals for b R n , we could prove the correct-ness of the novel response time analysis: Lemma 12. R n = b R n (38) Proof.
We compare the associated ceiling functions composing W n ( t ) and b W n ( t ) : (cid:6) t / T π ( j ) (cid:7) and (cid:6) ( t − C π ( j + ) ... π ( n − ) ) / T π ( j ) (cid:7) The two terms have the same value for m j T π ( j ) + C π ( j + ) ... π ( n − ) < t ≤ ( m j + ) T π ( j ) for any j ∈ [ , n − ] . (*)By Lemma 10, the times of (*) are contained in the permissible value range of R n .Therefore for t = R n we obtain W n ( t ) = b W n ( t ) . Since for t = R n , W n ( t ) = t then for t = R n , b W n ( t ) = t , i.e., R n is a fixed point of the equation b W n ( t ) = t . Also, by definition, b R n is the least fixed point of b W n ( t ) = t , hence we have b R n ≤ R n . (**)Now by Lemma 11, the times of (*) are also contained in the permissible valuerange of b R n . Therefore for t = b R n , we also obtain W n ( t ) = b W n ( t ) . Since for t = b R n , b W n ( t ) = t then for t = b R n , W n ( t ) = t , i.e., b R n is a fixed point of the equation W n ( t ) = t .Since R n is the least fixed point of W n ( t ) = t , we have R n ≤ b R n . (***)From (**) and (***), the Lemma is proved. (cid:3) We now assume that the activation times of the tasks τ π ( i ) are delayed by a value0 < ∆ π ( i ) ≤ C π ( i + ) ... π ( n − ) and give an answer to the question whether this delays have an influence on the worst-case response time . Lemma 13.
Let be R ∆ n = C n + I ∆ n − ( R ∆ n ) with I ∆ n − ( R ∆ n ) = n − ∑ i = C π ( i ) l ( R ∆ n − ∆ π ( i ) ) / T π ( i ) m nd ≤ ∆ π ( i ) ≤ C π ( i + ) ... π ( n − ) then R ∆ n = R n Proof.
Because of the relation (13) and Lemma , we get b R n ≤ R ∆ n ≤ R n With Lemma 12 holds b R n = R ∆ n = R n (cid:3) In this section, different values of the jitter are considered. However, it is assumedthat the task with the smallest period has the largest jitter and all other task jitters areappropriately limited so that the Lemmas of section 5.2 are applicable.We have also to cope with the problem that jitter shifts the time of the discontinu-ities to the left whereas execution time intervals go in the opposite direction.Note that there is no margin for the value ∆ π ( n − ) in (5.2.2) of the task with thesmallest period i.e. we have ∆ π ( n − ) =
0. To derive the ranges for the other jitters weassume J max = J π ( n − ) and consider W Jmaxn − ( t ) = C n + n − ∑ i = C π ( i ) & t + J π ( n − ) T π ( i ) ' (39)and b W Jmaxn − ( t ) = C n + n − ∑ i = C π ( i ) & t + J π ( n − ) − ∆ π ( i ) T π ( i ) ' (40)which lead to the same worst-case response time .Since the jitter J π ( n − ) in these equations is the same for all tasks we can determinethe fixed point using our new method and get the worst-case response time .We have shown in the previous section the extent to which the times of the discon-tinuities may vary without affecting the value of the fixed point. This possibility ofvariation does not change if the times of the discontinuities are shifted from m i T π ( i ) tothe new reference time m i T π ( i ) − J π ( n − ) . Accordingly, we introduce a virtual jitter intothe formula for the total interference function related to this reference time: I J i n − ( t ) = n − ∑ i = C π ( i ) & t + J π ( i ) T π ( i ) ' = n − ∑ i = C π ( i ) & t + J π ( n − ) − J π ( n − ) + J π ( i ) T π ( i ) ' (41)Where t + J π ( n − ) describes the reference time and ∆ π ( i ) = J π ( n − ) − J π ( i ) the virtualjitter bounded by (5.2.2). 24 emma 14. For a set of n tasks with jitters the equationsR J max n = W Jmaxn − ( R J max n ) R J i n = b W Jmaxn − ( R J i n ) where the processor demand function is defined in (39) and (40) we get equal solutions:R J i n = R J max n if ∀ ≤ i ≤ n − , max (cid:0) , J π ( n − ) − C π ( i + ... π ( n − ) (cid:1) ≤ J π ( i ) ≤ J π ( n − ) (42) Proof.
In order to fulfill the condition of Lemma 14 for the the virtual jitter J π ( n − ) − J π ( i ) = ∆ π ( i ) must hold. Eq. (13) defines the range of ∆ π ( i ) . So we have 0 ≤ J π ( n − ) − J π ( i ) ≤ C π ( i + ) ... π ( n − ) . From this follows: J π ( n − ) − C π ( i + ) ... π ( n − ) ≤ J π ( i ) ≤ J π ( n − ) Since the upper bound could be < ≥ max -function. (cid:3) Since the maximum jitter should be assigned to the task τ n − we extend the rulesfor task ordering. Again, π describes a mapping of an ordered set from priority orderto reverse rate monotonic ordering. A tie is broken by ordering the task with equalperiods by growing jitter. Table 1: Example task set 1task parameters derived parameters i T i C i J i U i T i − J i J max response time worst-case response time usinga concrete example whose parameters are listed in Table 1. The tasks are ordered bygrowing priority. We assume that the relative deadline of the tasks is D i = T i . • Task τ : By (23) we have with n = C π ( ) ... π ( n − ) = R ( ) = C = • Task τ : The only task with a higher priority is τ . Thus we have π : 1 →
1. Weget by (23) with n = J = J max = J = e R ( ) = ( C − J max ) / ( − U ) + J max = /
9. By (24): e R ( ) = e R ( ) − U ( e R ( ) + J max ) + C l ( e R ( ) + J max ) / T m = Task τ : We now have 2 tasks with higher priority, which have the same periods.To sort by growing jitter we have to reorder the two tasks. Thus we have π :1 , → , τ π ( ) = τ and τ π ( ) = τ .We get by (23) with n = J = J max = J π ( ) = e R ( ) = ( C − J max ) / ( − U π ( ) ... π ( ) ) + J max = / e R ( ) = e R ( ) + (cid:16) − U π ( ) (cid:16) e R ( ) + J max (cid:17) + C π ( ) l ( e R ( ) + J max ) / T π ( ) m(cid:17) / (cid:0) − U π ( ) (cid:1) = / e R ( ) = e R ( ) − U π ( ) (cid:16) e R ( ) + J max (cid:17) + C π ( ) l ( e R ( ) + J max ) / T π ( ) m = π : 1 , , → , ,
3, for task 5 π : 1 , , , → , , ,
3, and for task 6 π : 1 , , , , → , , , ,
3. We see from the Table that all worst-case response timesR i are lower than T i − J i , thus the task system is schedulable. The condition introduced in the last section that J π ( n − ) must be greater than any otherjitter value J π i with 1 ≤ i ≤ n −
2, and the resulting other consequences for these jittersestablished in (42), may be too severe for practical applications. In this section we wantto adapt the allowed jitter to larger value ranges.It is known that in harmonic systems jitters are often small and for some tasks even0. So it makes sense, from a practical point of view, to limit the jitters for all i to J i < T i .This does not mean, however, that we can specify a solution for all task systems thatmeet these constraints. Rather, we do allow a change in the restrictions, so that thejitter of task τ π ( n − ) need not be the largest one and that also several tasks can have azero-jitterFor this purpose we introduce a new virtual jitter for the tasks J ′ π ( i ) = J π ( i ) + m i T π ( i ) (43)where for all i m i ∈ N .Introducing this virtual jitter into (25) we have to observe that the value of I J i n − ( t ) for all t is not changed. Therefore, outside of the ceiling functions, we subtract thesame amount that we add up inside. ∀ t ∈ R , I J i n − ( t ) = n − ∑ i = C π ( i ) & t + J π ( i ) T π ( i ) ' = n − ∑ i = C π ( i ) & t + J ′ π ( i ) T π ( i ) ' − m i ! (44)In section 5.3 we have shown that for real jitter values J π ( i ) that fulfill condition (42),we can determine the worst-case response time by replacing the constant jitter value J with J max = J ′ π ( n − ) in Lemma 8. We now want to determine the virtual jitter valuesaccording to equation (43) so that the same method can be applied to the virtual jittersthis time by replacing J with J ′ max = J ′ π ( n − ) that must be made greater than or equal26o all other virtual jitters. Since the virtual jitter can be changed in steps of of height T π ( n − ) , there is a greater number of virtual jitter value sets for which the worst-caseresponse time can be determined using our method.The following therefore apply in detail:1. The virtual jitter J ′ π ( n − ) must be the largest virtual jitter i.e. J ′ max = de f max i J ′ π ( i ) = J ′ π ( n − ) defines an upper bound for all other virtual jitters: ∀ i , ≤ i ≤ n − J ′ π ( n − ) ≥ J ′ π ( i ) . (45)2. In a similar way we can define a lower bound for the virtual jitters ∀ i , ≤ i ≤ n − J ′ π ( n − ) − C π ( i + ) .. π ( n − ) ≤ J ′ π ( i ) . (46)3. We write (45) and (46)in terms of real task jitters. From (45) follows ∀ i , ≤ i ≤ n − , J π ( i ) + m i T π ( i ) ≤ J π ( n − ) + m n − T π ( n − ) (47)If we consider that J π ( i ) ≥ ∀ i , ≤ i ≤ n − , max ( m i T π ( i ) , J π ( n − ) + m n − T π ( n − ) − C π ( i + ) .. π ( n − ) ) ≤ J π ( i ) + m i T π ( i ) (48)Once we have found a valid set of values of the variables m i , we can determine the total interference as the basis of the fixed point iteration for determining the worst-caseresponse time as follows: I ′ max n − ( t ) = ∑ i = .. n − C π ( i ) & t + J ′ max T π ( i ) ' − m i ! (49)Jitter is now constant in all ceiling terms, so we can use the Lemma 6 8 where we set J = J ′ max to determine the fixed point for the recursive equation: R n = C n + I ′ max n − ( R n ) (50)The variables m i must be integers and therefore we have a special type of constraintprogramming problem. The set of points that satisfy the constraints is called feasibilityregion. If there are no such points the feasible region is the null set and the problemhas no solution what means that it is infeasible. If there exists at least one solution theconstraint program is feasible.Note that we have two variables per inequality and the variable m n − is contained inevery constraints. Furthermore we have two constraints for each pair of variables m n − and m i with 1 ≤ i ≤ n − ( n − ) constraints. Our system ofconstraints is called monotone since each constraint is an inequality on two variableswith coefficients of opposite signs. 27he property of two variables per constraint present in our problem type has beenextensively discussed in the literature, generally assuming that bounds are known forthe value ranges of the variables. In [4] more general integer programs with 2 variablesper constraint are considered and an O ( ∆ ( n − )) feasibility algorithm is proposed,where ∆ denotes the maximum value range of any variable. As proved in [14] theproblem of finding a feasible solution of a system of monotone inequalities in integersis weak NP complete. The proposed algorithm transforms a fractional solution of thecorresponding LP program step by step into a solution of the ILP.In our problem, such bounds are not present as values, but are represented by termscontaining the variable m n − . In addition, all feasible solutions are equivalent, sincewe can apply appropriate corrections to the total interference function (44). m If the constraint program is feasible we can calculate from a valid solution infinitelymany other solutions by adding to or subtracting from all m i values a multiple of theinteger T π ( ) / T π ( i ) i.e., α T π ( ) / T π ( i ) where α ∈ Z . This is shown with the followingLemma. Lemma 15.
If we know a solution in the feasibility region of the constraint programdescribed in (47) and (48) with the variable values b m i then there are also infinity manysolutions in this region with the values of the variables ∀ ≤ i ≤ n − , m i = b m i + α T π ( ) T π ( i ) (51) where α ∈ Z .Proof. Any solution satisfies the constraints in (47) and (48) which define a lower andan upper bound, respectively. For the assumed solution the difference b m n − T π ( n − ) − b m i T π ( i ) must lay within these bounds. We have to show that any proposed transforma-tion does not change the value of this difference. By (51) we get: b m n − T π ( n − ) − b m i T π ( i ) = m n − T π ( n − ) − α T π ( ) − m i T π ( i ) + α T π ( ) = m n − T π ( n − ) − m i T π ( i ) (52)The new difference is the same as the old one and therefore also stays within the limits.Hence the lemma follows. (cid:3) (cid:3) Note that in (44) the values of the function I J i n − ( t ) over t do not change for any ofthe possible solution set m , . . . , m n − . Larger values of m i result in larger values ofvirtual jitters and a larger reduction outside the ceiling terms. So we can select any ofthe solutions as a representative. In the following we set m = m i ≥ emma 16. We consider the constraint program established by (47) and (48) . Form = we get m i ≥ with ≤ i ≤ n − Proof.
By (48) we have ∀ i , ≤ i ≤ n − , J π ( n − ) + m n − T π ( n − ) − C π ( i + ) ... π ( n − ) ≤ J π ( i ) + m i T π ( i ) and by (47) we have with i = m = J π ( n − ) + m n − T π ( n − ) ≥ J π ( ) + T π ( ) (53)We combine the two constraints and resolve to m i . Additionally we consider the integerof the division result T n − | T i and m i : ∀ i , ≤ i ≤ n − , m i ≥ T π ( ) T π ( i ) + & J π ( ) − J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i ) ' (54)With J π ( ) ≥ J π ( i ) < T π ( i ) , and C π ( i + ) ... π ( n − ) < T π ( i ) the second summand is ≥ − ≥
1. It follows for all i m i ≥ (cid:3) (cid:3) In Section 4.3, we have proposed a method where it was implicitly assumed thatall m i = ≤ i ≤ n −
1. Such a solution is now impossible, because we haveexplicitly set m =
1. If we have jitter values that are valid according to Section 4.3,there are also valid m i values according to Lemma 1 under the assumption m = The task of the algorithm presented below is to determine the m i values of a feasibleconstraint system or to characterize the system as infeasible. Since we also want toconsider the efficiency of the algorithm, in certain cases we use a simple heuristic thathas to choose between two possible values.The basic approach is to determine the values m , m , · · · n − one after the otherstarting from the fixed value m =
1. Therefore we start again with the constraints (47)and (48), select as index i and i +
1, and set m i and m i + in relation to each other. ∀ i , ≤ i ≤ n − , m i + T π ( i + ) + J π ( i + ) + C π ( i + ) ... π ( n − ) ≥ m i T π ( i ) + J π ( i ) (55) m i + T π ( i + ) + J π ( i + ) ≤ m i T π ( i ) + J π ( i ) + C π ( i + ) ... π ( n − ) (56)Note that C π ( n ) ... π ( n − ) =
0. We rearrange terms, exploit that m i + must be an integer,and that T π ( i + ) divides the period T π ( i ) . T π ( i ) T π ( i + ) m i + & J π ( i ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' ≤ m i + ≤ T π ( i ) T π ( i + ) m i + $ J π ( i ) − J π ( i + ) + C π ( i + ) ... π ( n − ) T π ( i + ) % (57)29et us first check under which conditions which values for m i + are allowed, assumingthat the value of m i is unique or has been chosen by a heuristic technique.In order to keep the presentation clear, we introduce the abbreviation e J π ( i ) = de f J π ( i + ) − J π ( i ) mod T π ( i + ) and use the universally valid identity x mod y = x − y ⌊ x / y ⌋ .We can therefore transform (57) into: T π ( i ) T π ( i + ) m i + $ J π ( i ) − J π ( i + ) T π ( i + ) % + & e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' ≤ m i + ≤ T π ( i ) T π ( i + ) m i + $ J π ( i ) − J π ( i + ) T π ( i + ) % + $ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) % (58)where 0 ≤ e J π ( i ) / T π ( i + ) < C π ( i + ) ... π ( n − ) / T π ( i + ) < C π ( i + ) ... π ( n − ) / T π ( i + ) < & e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' ∈ { , } and $ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) % ∈ { , } We define γ i ∈ (cid:26)(cid:24) e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) (cid:25) , (cid:22) e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) (cid:23)(cid:27) and discuss the possiblesituations depending on the value range of γ i in the following Lemma.Note that if m i has a unique value and the two terms defining the value range of γ i are equal, m i + is unique. Lemma 17.
We have e J π ( i ) < T π ( i + ) and C π ( i + ) ... π ( n − ) < C π ( i + ) ... π ( n − ) < T π ( i + ) then (70) has the following possible solutions depending on e J π ( i ) : γ i ∈ { } e J π ( i ) ≤ min ( C π ( i + ) ... π ( n − ) , T π ( i + ) − C π ( i + ) ... π ( n − ) − ) { } max ( C π ( i + ) ... π ( n − ) + , T π ( i + ) − C π ( i + ) ... π ( n − ) ) ≤ e J π ( i ) /0 C π ( i + ) ... π ( n − ) + ≤ e J π ( i ) ≤ T π ( i + ) − C π ( i + ) ... π ( n − ) − { , } T π ( i + ) − C π ( i + ) ... π ( n − ) ≤ e J π ( i ) ≤ C π ( i + ) ... π ( n − ) (59) Proof.
We look on the 4 cases:1. We have & e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' = ⇔ − < e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ≤ e J π ( i ) and get C π ( i + ) ... π ( n − ) − T π ( i + ) < e J π ( i ) ≤ C π ( i + ) ... π ( n − ) .The LHS is lower than 0 but e J π ( i ) ≥ ≤ e J π ( i ) ≤ C π ( i + ) ... π ( n − )
30e perform a similar consideration for the floor function $ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) % = ⇔ ≤ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) < ≤ e J π ( i ) < T π ( i + ) − C π ( i + ) ... π ( n − ) . Since periods and worst-case exe-cution times are integers we have 0 ≤ e J π ( i ) ≤ T π ( i + ) − C π ( i + ) ... π ( n − ) − & e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' = ⇔ < e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ≤ $ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) % = ⇔ ≤ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) < e J π ( i ) ≥ max ( C π ( i + ) ... π ( n − ) + , T π ( i + ) − C π ( i + ) ... π ( n − ) )
3. In this case, the lower limit is greater than the upper limit, i.e. the ceiling termassumes the value 1 and the floor term the value 0. This requires compliancewith the constraints: 0 ≤ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) < ∧ < e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ≤ C π ( i + ) ... π ( n − ) + ≤ e J π ( i ) ≤ T π ( i + ) − C π ( i + ) ... π ( n − ) −
14. This case is characterized by the fact that the ceiling term assumes the value 0 andthe floor term the value 1, i.e. − < e J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i + ) ≤ ∧ ≤ e J π ( i ) + C π ( i + ) ... π ( n − ) T π ( i + ) <
2. The maximum of the lower limits and the minimum of the upper limits leadsto the constraints: T π ( i + ) − C π ( i + ) ... π ( n − ) ≤ e J π ( i ) ≤ C π ( i + ) ... π ( n − ) . (cid:3) (cid:3) We can derive an interesting special case from Lemma 17.
Corollary 18.
If C π ( i + ) ... π ( n − ) + C π ( i + ) ... π ( n − ) < T π ( i + ) then m i is unique or thesystem is infeasible.Proof. The specified restriction excludes case 4 i.e. T π ( i + ) − C π ( i + ) ... π ( n − ) ≤ e J π ( i ) ≤ C π ( i + ) ... π ( n − ) ⇒ T π ( i + ) − C π ( i + ) ... π ( n − ) ≤ C π ( i + ) ... π ( n − ) (cid:3) (cid:3) m i , the value range of m i + comprises at most 2 values.If we compare the original constraint set defined in (47) and (48) with that of (55)and (56), we realize that the restrictions of each virtual jitter by the virtual jitter of task τ π ( n − ) has been lost. This can cause the calculated m i values not to comply with thesedecisive constraints. To avoid this, we calculate the value range for m n − after eachdetermination of an m i value. If it is empty, then there is no feasible solution for theconstraint problem. Based on the definition of m = T π ( ) T π ( n − ) + & J π ( ) − J π ( n − ) T π ( n − ) ' ≤ m n − ≤ T π ( ) T π ( n − ) + $ J π ( ) − J π ( n − ) + C π ( ) ... π ( n − ) T π ( n − ) % (60)If a value m i for i > m n − can be defined as follows: m i T π ( i ) T π ( n − ) + & J π ( i ) − J π ( n − ) T π ( n − ) ' ≤ m n − ≤ m i T π ( i ) T π ( n − ) + $ J π ( i ) − J π ( n − ) + C π ( i + ) ... π ( n − ) T π ( n − ) % (61)Since the lower and upper limits do not grow or sink monotonously with growing i,we compute the maximum of the lower limits and the minimum of the upper limits inorder to see whether there is still an admissible value for m n − . m n − . lb . i = de f max j = ··· m j T π ( j ) T π ( n − ) + & J π ( j ) − J π ( n − ) T π ( n − ) '! ≤ m n − ≤ min j = ··· m j T π ( j ) T π ( n − ) + $ J π ( j ) − J π ( n − ) + C π ( j + ) ... π ( n − ) T π ( n − ) %! = de f m n − . ub . i (62)If m n − . lb . i > m n − . ub . i , then the constraint system is infeasible. For an iterative calcu-lation of m n − . lb . i we can also write m n − . lb . i + = max m n − . lb . i , m i + T π ( i + ) T π ( n − ) + & J π ( i + ) − J π ( n − ) T π ( n − ) '! (63)and m n − . ub . i + = min m n − . lb . i , m i + T π ( i + ) T π ( n − ) + $ J π ( i + ) − J π ( n − ) + C π ( i + ) ... π ( n − ) T π ( n − ) %! (64)We can use the limitations for m n − in (62) to get new restrictions for m i + whichfollow from merging (47) and (48) into a lower than or equal to chain: & m n − T π ( n − ) + J π ( n − ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' ≤ m i + ≤ $ m n − T π ( n − ) + J π ( n − ) − J π ( i + ) T π ( i + ) %
32e replace m n − in the LHS of the inequality by m n − . lb . i and in the RHS by m n − . ub . i . max j = ··· (cid:16) m j T π ( j ) + T π ( n − ) l J π ( j ) − J π ( n − ) T π ( n − ) m(cid:17) + J π ( n − ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) ≤ m i + ≤ (65) min j = ··· (cid:16) m j T π ( j ) + T π ( n − ) j J π ( j ) − J π ( n − ) + C π ( j + ) ... π ( n − ) T π ( n − ) k(cid:17) + J π ( n − ) − J π ( i + ) T π ( i + ) We compare the limits for m i + in (57) and (65), which were determined in differentways. For the lower limits, we take the index i in (65), which is contained in the indexset over which the maximum is to be taken. We also observe that ⌈ x ⌉ ≥ x and performsome simplifications. Finally, we use the definition introduced in (62) to make thepresentation clearer. m i + ≥ m i + . lb def = & m n − . lb . i T π ( n − ) + J π ( n − ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' ≥ & m i T π ( i ) + J π ( i ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' (66)The lower limit of equation (57) is therefore lower than or equal to the lower limit of(65). In a similar way, we compare the upper limits in (57) and (65) and get: m i + ≤ m i + . ub def = $ m n − . ub . i T π ( n − ) + J π ( n − ) − J π ( i + ) T π ( i + ) % ≤ $ m i T π ( i ) + J π ( i ) + C π ( i + ) ... π ( n − ) − J π ( i + ) T π ( i + ) % (67)The upper and lower limits of equation (65) are therefore stricter than those of equation(57).A special situation is for i + = n −
1. Then we have by definition with C π ( i + ) ... π ( n − ) = C π ( n ) ... π ( n − ) = J π ( i + ) = J π ( n − ) the lower bound m n − . lb = m n − . lb . n − and theupper bound m n − . ub = m n − . ub . n − . If m n − . lb . n − ≤ m n − . ub . n − we choose m n − = m n − . lb . n − .Both in (62) and in (66), (67), it must be ensured that the respective lower limit isless than or equal to the corresponding upper limit, so that we obtain valid values for m n − and m i + . Lemma 19.
If for all i the virtual jitters meet the constraints: e J π ( i ) ≤ min ( C π ( i + ) ... π ( n − ) , T π ( i + ) − C π ( i + ) ... π ( n − ) − ) ∨ e J π ( i ) ≥ max ( C π ( i + ) ... π ( n − ) + , T π ( i + ) − C π ( i + ) ... π ( n − ) ) (68)33 hen the constraint system has a unique solution or is infeasible.Proof. We assume m n − . lb . i ≤ m n − . ub . i and m i + . lb ≤ m i + . ub , otherwise the system isinfeasible. By the first two cases of (59) the constraints in (68) for the virtual jitterslead to a unique solution of m i + for a unique m i . This means that for all i the upperlimit and the lower limit for m i + in (57) are equal. We join the two inequalities (66)and (67) together: & m i T π ( i ) + J π ( i ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' ≤ & m n − . lb . i T π ( n − ) + J π ( n − ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) ' ≤ m i + ≤ $ m n − . ub . i T π ( n − ) + J π ( n − ) − J π ( i + ) T π ( i + ) % ≤ $ m i T π ( i ) + J π ( i ) + C π ( i + ) ... π ( n − ) − J π ( i + ) T π ( i + ) % The inner terms need valid values of m n − . lb . i and m n − . ub . i i.e. m n − . lb . i ≤ m n − . ub . i anda valid value m i + i.e., m i + . lb ≤ m i + . ub . Otherwise the system is infeasible. Since thetwo outer terms are equal if the virtual jitters meet the restrictions mentioned above,the values of all terms in the chain must be equal in case of a feasible system and defineexactly one value of m i for all 1 ≤ i ≤ n − (cid:3) (cid:3) An interesting consequence for the further course of the calculations arises in thecase that m n − . lb . i = m n − . ub . i applies. We show this in the following Corollary. Corollary 20.
If m n − . lb . i = m n − . ub . i for some i, then m n − . lb . j = m n − . ub . j and m j . lb = m j . ub for any i < j ≤ n − or the system is infeasible.Proof. In (57) we have defined m i + . ub = j m n − . ub . i T π ( n − ) + J π ( n − ) − J π ( i + ) T π ( i + ) k and in (66) m i + . lb = l m n − . lb . i T π ( n − ) + J π ( n − ) − J π ( i + ) − C π ( i + ) ... π ( n − ) T π ( i + ) m .We denote the argument of the floor function by ν i + + ε i + with ν i + ∈ N and0 ≤ ε i + <
1. Then m i + . ub = ν i + . The lower bound is now m i + . lb = ⌈ ν i + + ε i + − δ i + ⌉ where δ i + = C π ( i + ) ... π ( n − ) / T π ( i + ) which is lower than U π ( i + ) ... π ( n − ) and therefore <
1. Evaluating the argument of the ceiling function we get m i + . lb = ( ν i + if δ i + ≥ ε i + ν i + + δ i + < ε i + (69)Therefore we get m i + . lb ≥ m i + . ub and we only have a feasible system for equality.34onsidering Eq. (63) and (64) and observing m n − . lb . i = m n − . ub . i we have to ana-lyze the second arguments of the min- and the max-function. In order to leave at leastone valid value for m n − it must be: m i + T π ( i + ) T π ( n − ) + & J π ( i + ) − J π ( n − ) T π ( n − ) ' ≤ m n − . lb . i = m n − . ub . i ≤ m i + T π ( i + ) T π ( n − ) + $ J π ( i + ) − J π ( n − ) + C π ( i + ) ... π ( n − ) T π ( n − ) % The maximum over the term m n − . lb . i and the leftmost term of the inequalities aboveyields m n − . lb . i + , whereas the minimum over the terms of the right inequality yields m n − . ub . i . Therefore from m n − . lb . i = m n − . ub . i follows m n − . lb . i + = m n − . lb . i = m n − . ub . i = m n − . ub . i + or the system is infeasible. (cid:3) (cid:3) We now want to derive further conditions under which the constraint system alwayshas a unique solution. Note that for C π ( i + ) ... π ( n − ) + C π ( i + ) ... π ( n − ) < T π ( i + ) the 4thcase cannot occur in (59) and the constraint program either has a unique solution or isnot feasible (see Corollary 18). It is C π ( i + ) ... π ( n − ) T π ( i + ) = n − ∑ j = i + U π ( j ) T π ( j ) T π ( i + ) ≤ n − ∑ j = i + U π ( j ) ≤ − i ∑ j = U π ( j ) Accordingly we have C π ( i + ) ... π ( n − ) T π ( i + ) = n − ∑ j = i + U π ( j ) T π ( j ) T π ( i + ) ≤ n − ∑ j = i + U π ( j ) ≤ − i + ∑ j = U π ( j ) From this follows by C π ( i ) = U π ( i ) T π ( i ) and because of our task reordering we have j ≥ i , T π ( j ) ≤ T π ( i ) . Furthermore, we use ∑ n − j = U π ( j ) < C π ( i + ) ... π ( n − ) + C π ( i + ) ... π ( n − ) T π ( i + ) = U π ( i + ) + n − ∑ j = i + U π ( j ) T π ( j ) T π ( i + ) ≤ U π ( i + ) + n − ∑ j = i + U π ( j ) < − U π ( i + ) − i ∑ j = U π ( j ) (70)From these formulas, situations can now be derived in which it can be guaranteed thatthe constraint system has an unique or no solution.1. For T π ( ) > T π ( ) > . . . . > T π ( n − ) we have T π ( j ) / T π ( i ) ≤ / j ≥ i +
2. Hence1 ≤ i ≤ n − , C π ( i + ) ... π ( n − ) + C π ( i + ) ... π ( n − ) T π ( i + ) = U π ( i + ) + n − ∑ j = i + U π ( j ) T π ( j ) T π ( i + ) < < U π ( i + ) + ∑ ij = U π ( j ) . This con-straint is met if ∑ ij = U π ( j ) ≥ .
5, i.e., if the tasks still to be processed contributea total utilization < .
5. Therefore, if the worst-case response time of a task τ n isto be determined for which the tasks τ π ( ) ... π ( n − ) have a utilization < .
5, thenthe solution is unique.We now assume that after determining a value m i two values for m i + are possible.This corresponds to case 4 in (59). To keep the algorithm efficient, we select one ofthese values by determining the length of the interval [ m n . lb . i + , m n . ub . i + ] for the two values and then selecting the value with the larger interval length. With the following algorithm we determine the values m = [ m , m , . . . ., m n − ] and themaximum virtual jitter J ′ π ( n − ) according to (43). Input : A task system with the parameters T = (cid:2) T π ( ) , T π ( ) , . . . ., T π ( n − ) (cid:3) , C = (cid:2) C π ( ) , C π ( ) , . . . ., C π ( n − ) (cid:3) , J = (cid:2) J π ( ) , J π ( ) , . . . ., J π ( n − ) (cid:3) . The tasks are ordered bynon-increasing periods i.e. T π ( ) ≥ T π ( ) ≥ . . . ≥ T π ( n − ) . Tasks with equal periods arearbitrarily ordered. Output : ’infeasible’ or J ′ max and mVariables : m . T n − . lb . i ← de f T π ( n − ) m n − . lb . i ; ⊲ newly introduced variables m . T n − . ub . i ← de f T π ( n − ) m n − . ub . i ; q lb . i , q ub . i ; ⊲ auxiliary variables C π ( n ) ... π ( n − ) ← for i = n − . . . do C π ( i ) ... π ( n − ) ← C π ( i + ) ... π ( n − ) + C π ( i ) end for m ← m . T n − . lb . ← T π ( ) + T π ( n − ) l J π ( ) − J π ( n − ) T π ( n − ) m ⊲ Eq. (60) m . T n − . ub . ← T π ( ) + T π ( n − ) j J π ( ) − J π ( n − ) + C π ( ) ... π ( n − ) T π ( n − ) k ⊲ Eq. (60) if m . T n − . lb . > m . T n − . ub . then return ’infeasible’ end iffor i = . . . . n − do m lb . i ← l m . T n − . lb . i − + J π ( n − ) − J π ( i ) − C π ( i + ) ... π ( n − ) T π ( i ) m ; ⊲ Eq. (66) m ub . i ← j m . T n − . ub . i − + J π ( n − ) − J π ( i ) T π ( i ) k ; ⊲ Eq. (67) q lb . i ← T π ( n − ) l J π ( i ) − J π ( n − ) T π ( n − ) m ; q ub . i ← T π ( n − ) j J π ( i ) − J π ( n − ) + C π ( i + ) ... π ( n − ) T π ( n − ) k if m lb . i = m ub . i then m i ← m lb . i m . T n − . lb . i ← max (cid:0) T π ( i ) m i + q lb . i , m . T n . lb . i − (cid:1) ⊲ Eq. (63) m . T n − . ub . i ← min (cid:0) T π ( i ) m i + q ub . i , m . T n . ub . i − (cid:1) ⊲ Eq. (64)36 f m . T n − . lb . i > m . T n − . ub . i then return ’infeasible’ end ifelse if m lb . i > m ub . i then return ’infeasible’ else ⊲ Evaluating the 2 feasible values m lb . i , m ub . i m . T n − . lb . . i ← max (cid:0) T π ( i ) m lb . i + q lb . i , m . T n . lb . i − (cid:1) ⊲ Eq. (63) m . T n − . lb . . i ← max (cid:0) T π ( i ) m ub . i + q lb . i , m . T n . lb . i − (cid:1) ; ⊲ Eq. (63) m . T n − . ub . . i ← min (cid:0) T π ( i ) m lb . i + q ub . i , m . T n . ub . i − (cid:1) ⊲ Eq. (64) m . T n − . ub . . i ← min (cid:0) T π ( i ) m ub . i + q ub . i , m . T n . ub . i − (cid:1) ; ⊲ Eq. (64) diff ← m . T n . ub . . i − m . T n . lb . . i diff ← m . T n . ub . . i − m . T n . lb . . i if diff > diff then ⊲ Comparing the remaining interval lengths m i ← m lb . i m . T n − . lb . i ← m . T n − . lb . . i m . T n − . ub . i ← m . T n − . ub . . i else m i ← m ub . i m . T n − . lb . i ← m . T n − . lb . . i m . T n − . ub . i ← m . T n − . ub . . i end ifif m . T n − . lb . i > m . T n − . ub . i then return ’infeasible’ end ifend ifend for J ′ max ← J π ( n − ) + m n − T π ( n − ) ⊲ for using in (49) return ( m , J ′ max ) ExampleT = ( , , , , ) ; C = ( , , , , ) ; J = ( , , , , ) ;Since the tasks are in the right order we have π ( ) = , π ( ) = , π ( ) = , π ( ) = , π ( n − ) = m = ( C ... , C ... , C ... , C ... , C ... ) = ( , , , , ) ; m . T n . lb . : = T + T ⌈ ( J − J ) / T ⌉ = + ⌈ / ⌉ = m . T n . ub . = T + T ⌊ ( J − J + C ... ) / T ⌋ = + ⌊ ( + ) / ⌉ = [ , ] for m (using T = i = m lb . = ⌈ ( m . T n . lb . + J − J − C ... ) / T ⌉ = ⌈ ( − − ) / ⌉ = m ub . = ⌊ ( m . T n . ub . + J − J ) / T ⌋ = ⌊ ( − ) / ⌋ = m limits are now determined.The auxiliary variables q lb . and q ub . have the values: q lb . : = T ⌈ ( J − J ) / T ⌉ = ⌈ / ⌉ = q ub . : = T ⌊ ( J − J + C ... ) / T ⌋ = ⌊ ( + ) / ⌋ = m for m lb . = m . T n . lb . . = max ( T m lb . + q lb . , m . T n . lb . ) = max ( ∗ + , ) = m . T n . ub . . = min ( T m lb . + q ub . , m . T n . ub . )= min ( ∗ + , ) = m = m . T n . ub . . / T =
41 and diff = m for m ub . = . m . T n . lb . . = max ( T m ub . + q lb . , m . T n . lb . ) = max ( ∗ + , ) = m . T n . ub . . = min ( T m ub . + q ub . , m . T n . ub . ) = ( + , ) = m ∈ [ , ] , i.e. diff = − =
20. We therefore select m = m . T n . lb . = m . T n . lb . . = m . T n . ub . = m . T n . ub . . = i : = m lb . = ⌈ ( m . T n . lb . + J − J − C ... ) / T ) ⌉ = ⌈ ( − ) / ⌉ = m ub . = ⌊ ( m . T n . ub . + J − J ) / T ) ⌋ = ⌊ / ⌋ = m =
4. For the next iteration we determine m . T n . lb . = max ( T m + T ⌈ ( J − J ) / T ⌉ , m . T n . lb . ) = m . T n . ub . = min ( T m + T ⌊ ( J − J + C ... ) / T ⌋ , m . T n . ub . ) = m namely 48. i = m lb . = ⌈ ( m . T n . lb . + J − J − C ... ) / T ) ⌉ = ⌈ ( − ) / ⌉ = m ub . = ⌊ ( m . T n . ub . + J − J ) / T ) ⌋ = ⌊ / ⌋ = m lb . = m ub . we get m = m . T n . lb . = max ( T m + T ⌈ ( J − J ) / T ⌉ , m . T n . lb . ) = m . T n . ub . = min ( T m + T ⌊ ( J − J ) / T ⌋ , m . T n . ub . ) = m = i = m = / = J ′ max : = m : = ( , , , , ) ;38 Experiments for task systems with jitter
Our algorithm is not suitable for arbitrary jitter values, because the necessary restric-tions are too strict. For example, if we create task sets pseudo-randomly and allow alljitter J π ( i ) within the intervals [ , α T π ( i ) ] with 0 < α ≤
1, we will only get allowed jittervalues for a very small percentage of real-time systems (<2%). This is true even if weonly consider a few tasks (e.g. 5) and high total utilization (e.g. 0.95) as shown in 3.The usefulness of our algorithm must therefore be proven by practical examples, forwhich we refer to future work. U π (1) ..π ( n ) %positive decisions0 . . . . . . . . . . . . . . . . α = 1 . α = 0 . α = 0 . α = 0 . Figure 3: Percentage number of feasible task sets with jitters J π ( i ) ∈ [ , α T π ( i − ) ] basedon 1000000 pseudo-randomly produced task sets for each α Of greater interest is an answer to the question of how good the quality of theheuristic component is in our algorithm. In our experiments we use the following ruleto compute the periods. The first period T =
10 is chosen arbitrarily. This has noeffect on the meaningfulness of the simulation as all response time bounds should beindependent of a scaling factor applied to all parameters. The periods of the other tasksare produced iteratively by pseudo-randomly selecting a factor from [1..4]. In orderto get the utilization values we use the algorithm UUniFast, as described in [6]. Thevalues C π ( i ) = T π ( i ) U π ( i ) are not of type integer which is not relevant in this case.The jitter values are produced observing the constraints (45),...,(48). First, we de-termine J π ( ) by pseudo-randomly selecting a value from [ , T π ( ) − ] . From this weget J ′ π ( ) = T π ( ) + J π ( ) .We combine (46) and (45) for i = J ′ π ( n − ) by selecting pseudo-randomly a value from [ J ′ π ( ) , J ′ π ( ) + C π ( ) .. π ( n − ) ] . Then we get J π ( n − ) = J ′ π ( n − ) mod T π ( n − ) . 39ince we now know the value J ′ π ( n − ) we can determine by (46) and (45) the othervalues J ′ π ( i ) selecting pseudo-randomly a value from [ J ′ π ( n − ) − C π ( i + ) .. π ( n − ) , J ′ π ( n − ) ] .It follows J π ( i ) = J ′ π ( i ) mod T π ( i ) .Such a task set fulfills the constraints (46),..., (48) and our algorithm should beable to characterize it as feasible and should determine m i values and J max . If it is notsuccessful, this is due to the heuristic part of the algorithm which selects in these casesthe wrong value m [ i ] .In our experiment we let the total utilization grow in steps of 0.5 and created2000000 task sets with n − =
14 tasks for each of these values. We found that upto a total utilization of U π ( ) ,.. π ( n − ) = .
75 all task set are correctly classified. Forlarger values of the utilization we have few task sets that are incorrectly classified asinfeasible. Note that a larger total utilization means larger execution times and there-fore larger ranges for the jitter values. Table 2 shows the concrete number of incorrectlyclassified task sets. Table 2: Effectivity of the Jitter-Heuristic U π ( ) .. π ( ) Because of the manifold practical applications of task systems with harmonic tasks itis important to take advantage of the special features resulting from the divisibility ofperiods by all smaller periods. For example, response time analysis is possible in poly-nomial time, while in the general case it has pseudo-polynomial complexity. We haveintroduced a new algorithm that calculates the exact worst-case response time of a taskin linear time when the higher-priority tasks are ordered by non-increasing periods.Our algorithm has another advantage, which is that the task model can be extended topractical requirements. We have made this more concrete using the example of releasejitters, which previous special algorithms for harmonic tasks could not handle. How-ever, we cannot process all jitter-aware task systems with harmonic periods with it andwe have therefore proposed a linear algorithm to check the jitter values for feasibility.
References [1] D. Abhijit, Z. Qi, M. Di Natale, C. Pinello, S. Kanajan, and A. Sangiovanni-Vincentelli. Period optimization for hard real-time distributed automotive sys-tems. In
Proceedings of the 44th Annual Design Automation Conference , DAC’07, pages 278–283, New York, NY, USA, 2007. ACM.402] S. Anssi, S. Kuntz, F. Terrier, and S. Gérard. On the gap between schedulabilitytests and an automotive task model.
Journal of Systems Architecture , 59:341 –350, June 2013.[3] N. Audsley, A. Burns, M. Richardson, K.W. Tindell, and A. J. Wellings. Ap-plying new scheduling theory to static priority pre-emptive scheduling.
SoftwareEngineering Journal , 8:284–292, 1993.[4] R. Bar-Yehuda and D. Rawitz. Efficient algorithms for integer programs with twovariables per constraint.
Algorithmica , 29(4):595–609, Apr 2001.[5] Sanjoy K. Baruah, Aloysius K. Mok, and Louis E. Rosier. Preemptively schedul-ing hard-real-time sporadic tasks on one processor. In
In Proceedings of the 11thReal-Time Systems Symposium , pages 182–190. IEEE Computer Society Press,1990.[6] E. Bini and G.C.Buttazzo. Measuring the performance of schedulability tests.
Real-Time Systems (RTSJ’05) , 30(1-2):129–154, 2005.[7] E. Bini, A. Parri, and G. Dossena. A quadratic-time response time upper boundwith a tightness property. In
Proc. IEEE Int. Real-Time Systems Symposium(RTSS’15) , San Antonio, TX, USA, December 2015.[8] V. Bonifaci, A. Marchetti-Spaccamela, N. Megow, and A. Wiese. Polynomial-time exact schedulability tests for harmonic real-time tasks. In
RTSS’13 , pages236–245, 2013.[9] J.-J. Chen, G. von der Bruggen, W.-H. Huang, and C. Liu. State of the art forscheduling and analyzing self-suspending sporadic real-time tasks. In
RTCSA ,pages 1–10. IEEE Computer Society, 2017.[10] R.I. Davis and A. Burns. Response time upper bounds for fixed priority real-timesystems. In
Proc. IEEE Int. Real-Time Systems Symposium, (RTSS’08) , pages407–418, 2008.[11] F. Eisenbrand, K. Kesavan, R. S. Mattikalli, M. Niemeier, A. W. Nordsieck,M. Skutella, J. Verschae, and A. Wiese. Solving an avionics real-time schedulingproblem by advanced ip-methods. In
ESA , 2010.[12] M.S. Fineberg and O. Serlin. Multiprogramming for hybrid computation.
Proc.AFIPS Fall Joint Computing Conference , pages 1–13, 1967.[13] W. Grass and T.H.C. Nguyen. Improved response-time bounds in fixed priorityscheduling with arbitrary deadlines.
Real-Time Systems (RTSJ’17) , 2017.[14] D. S. Hochbaum. Simple and fast algorithms for linear and integer programswith two variables per inequality.
SIAM J. Comput. , 23(6):1179–1192, December1994.[15] M. Joseph and P. Pandya. Finding response times in a real-time system.
TheComputer Journal , 29(5):390–395, 1986.4116] T.W. Kuo and A.K. Mok. Load adjustment in adaptive real-time systems. In
Proc.IEEE Int. Real-Time Systems Symposium (RTSS’91) , pages 160–170, Dec 1991.[17] J.P. Lehoczky. Fixed priority scheduling of periodic task sets with arbitrary dead-lines. In
Proc. IEEE Int. Real-Time Systems Symposium (RTSS’90) , pages 201–209, 1990.[18] C.L. Liu and J.W. Layland. Scheduling algorithms for multiprogramming in ahard-real-time environment.
J. ACM , 20(1):46–61, January 1973.[19] W. C. Lu, J. W. Hsieh, and W.-K.Shih. A precise schedulability test algorithm forscheduling periodic tasks in real-time systems. In
Proceedings of the 2006 ACMSymposium on Applied Computing , SAC ’06, pages 1451–1455, New York, NY,USA, 2006. ACM.[20] M. Mohaqeqi, M. Nasri, Y.Xu, A. Cervin, and K.E. Arzén. On the problemof finding optimal harmonic periods. In
Proceedings of the 24th InternationalConference on Real-Time Networks and Systems , RTNS ’16, pages 171–180, NewYork, NY, USA, 2016. ACM.[21] M. Nasri and G. Fohler. An efficient method for assigning harmonic periods tohard real-time tasks with period ranges. In , volume 00, pages 149–159, July 2015.[22] C.-S. Shih, S. Gopalakrishnan, P. Ganti, M. Caccamo, and L. Sha. Template-based real-time dwell scheduling with energy constraint. In
Proceedings of the 9thIEEE Real-Time and Embedded Technology and Applications Symposium (RTAS2003), May 27-30, 2003, Toronto, Canada , page 19, 2003.[23] M. Sjodin and H. Hansson. Improved response-time analysis calculations. In
Proc. IEEE Int. Real-Time Systems Symposium (RTSS’98) , pages 399–408, 1998.[24] K. W. Tindell, A. Burns, and A.J. Wellings. Calculating controller area network(can) message response times.
Control Engineering Practice , 3(8):1163 – 1169,1995.[25] K.W. Tindell, A. Burns, and A.J.Wellings. An extendible approach for analysingfixed priority hard real-time tasks.
Real-Time Systems (RTSJ’94) , 6(2):133–151,March 1994.[26] Y. Xu, A. Cervin, and K. E. Arzén.