Page 56 - DCAP608_REAL TIME SYSTEMS
P. 56
Unit 5: Real-time System Dependencies
End if Notes
End if
End for
Conditional Branches and Pipeline Relationship
This system can be easily moulded by a task graph that has edges expressing OR constraints.
Only one of all the immediate successors of a job whose outgoing edges express OR constraints
is to be executed. Such job is called a branch job. These jobs are represented by filled circles. The
sub-graph that begins from a vertex representing a branch job and ends at the vertex representing
the associated join job is called a conditional block.
!
Caution Only one conditional branch in each conditional block is to be executed.
Pipeline Relationship
A dependency between a pair of producer-consumer jobs that are piped can theoretically be
represented by a precedence graph. A pipeline relationship between jobs by a pipeline edge is
exemplified by the dotted edge between the jobs.
5.2 Functional Parameters
Following are the functional parameters of real-time system dependencies:
Pre-emptivity of Jobs
Executions of jobs can often be interleaved. The scheduler may suspend the execution of a less
urgent job and give the processor to more urgent job. The suspended job can be resumed again.
A job is pre-emptible if its execution can be suspended at any time to allow the execution of
other jobs and later it can be resumed from the point of suspension. A job is non-pre-emptible if
it must be executed from start to completion without interruption. Consider jobs that model the
transmission of data frames in a token ring. If transmission of frame is interrupted before its
completion then the entire frame must be re-transmitted from the start. So to save bandwidth,
we can make this job non-pre-emptible.
Sometimes, a job may be pre-emptible everywhere except of r a small portion which is constrained
to be non-pre-emptible. An interrupt handling job usually begins by saving the state of the
processor (register, stack pointer, program counter).This small portion of the job has to be mad
non-pre-emptible to because suspending it at that state may cause serious errors in the data
structures shared by other jobs. During pre-emption, the system must first save the state of the
pre-empted job at the time of pre-emption so it can resume the job from that state. The system
must prepare the execution environment for the pre-empting job before starting the job. Save
the current contents of register, load the new processor status register.
Criticality of Jobs
The criticality of a job is a positive number that indicates how critical the job is with respect to
other jobs. It is also called priority or weight. The more important the job the higher its priority
is. During an overload when it is not possible to schedule all the jobs to meet their deadlines, it
LOVELY PROFESSIONAL UNIVERSITY 51