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
   51   52   53   54   55   56   57   58   59   60   61