The tasks are denoted by \Tau_1, \Tau_2,
... ... \Tau_N, and the subtasks of \Tau_i are denoted by
\tau_{i,1}, \tau_{i,2}, ... ... \tau_{i,m_i}, where m_i is the
total number of subtasks in task \Tau_i. Let N and M be the total number
of tasks and total number of subtasks, respectively. Given that the
tasks must be executed periodically, we refer to the kth instance of
task i as the kth job of task i. Each task or subtask is associated with
the following timing parameters:
- T_i: the interval between
the release times of two consecutive jobs of task i, referred to as task period.
- D_i: the maximum time
allowed from the release to the completion of a task i's job, referred
to as task deadline. In
general, D_i <= T_i.
- d_{i,j}: the maximum time
allowed from the release of a task i's job to the completion of
\tau_{i,j}, referred to as subtask
deadline, it is obvious that d_{i,j} <= D_i.
- c_{i,j}: the time needed
to complete \tau_{i,j} without any interruption, referred to as subtask execution time.
- C_i: the time needed to
complete task i without any interruption, referred to as task execution time, and C_i
is the sum of all c_{i,j}s.
- p_{i,j}: the priority
level statically assigned to \tau_{i,j}, referred to as subtask priority. We say that
\tau_{i,j} has a higher priority than \tau_{h,k} if p_{i,j} > p_{h,k}