One common way of constructing hard real-timeThe following section describes the assumed computational model. Section 3 provides a practical motivation for the use of offsets in hard real-time system design. Section 4 describes an efficient optimal priority assignment algorithm for tasks with offsets. Section 5 gives analysis to bound worst-case response times for such tasks. Section 6 shows how the analysis enables scheduling of task sets with precedence and exclusion constraints, previously deemed schedulable using only static cyclic scheduling technology. Concluding remarks are offered in Section 7.
Computational ModelA fixed number of transactions are assigned to a processor 2 . Each transaction is composed of a fixed number of tasks. Each task in a transaction requires a bounded amount of computation time for each invocation. A transaction may arrive periodically or sporadically, but with a minimum time between subsequent arrivals 3 -this minimum time is denoted the period. For each transaction arrival, each task is released (i.e. placed in a notional priority-ordered run queue) at a fixed offset in time, measured relative to the arrival time of the transaction; we assume that this offset is less than the period of the transaction. Necessarily all tasks in a given transaction must share the same period. Each task is assigned a unique static priority; tasks are dispatched preemptively based on this priority. For the moment we assume that tasks cannot lock semaphores and hence cannot be blocked (we will lift this restriction later). Tasks are permitted to have response times greater than their periods (and hence have arbitrary deadlines [6]). Furthermore, tasks are assumed to have a release jitterthis occurs when the arrival time (i.e. time when a task wishes to run) and the release time (i.e. the time when the task is placed in the priority-ordered run-queue) are not