Distributed and Complex Systems Group : Homepage

:Vérimag Distributed and Complex Systems Group

BIP -- Incremental Component-based Construction of Real-time Systems

Tasks runing on dedicated CPU's

Download BIP code


This is a performance evaluation problem with timed tasks processing events from a bursty event generator. (Source http://www.tik.ee.ethz.ch/~leiden05)
The model is a serial connection of a bursty event generator with three tasks T1, T2 and T3, running on independent CPU's. A task can execute as soon as its predecessor has finished. A task on completion triggers an event for its successor. If the successor is busy, the event is queued. The block diagram for the model is shown below:


The atomic components for this model are 'Task' and the 'EventGenerator'. A generic timed model of  'Task'  which can be used either as a simple task or as a preemptable task is shown below.

It has a timed variable 'delay' to enforce best case execution time (BCET) and worst case execution time (WCET). 

The 'EventGenerator' component has a period T, jitter J, J>T, and has a minimum inter-arrival time D between successive events generated. Its model is as shown below.

The compound component 'System' is a serial connection of the EventGenerator and the three instances of  Task, T1, T2 and T3 , as shoen in the architecture below. In this model,  the tasks are non-preemptable, so the ports 'preempt' and 'resume' are not assiciated to connectors.

Running an execution gives the end-to-end delay of each event processed by the System, with details of the execution (CPU) time and waiting time. Here time means the number of 'tick' transitions occurred.

 

Steps to execute the application:


  To generate the C++ code for the application,

$ bipc -f task_a.bip --genC-top System

  To compile the application,

$ make -f $BIP_HOME/util/Makefile task_a.bip.x

  To run the execution,

$ task_a.bip.x

  Ctrl-C to terminate.


Back to examples