diff options
Diffstat (limited to 'TAO/examples/RTCORBA/Activity/README')
-rw-r--r-- | TAO/examples/RTCORBA/Activity/README | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/TAO/examples/RTCORBA/Activity/README b/TAO/examples/RTCORBA/Activity/README new file mode 100644 index 00000000000..32264d094e1 --- /dev/null +++ b/TAO/examples/RTCORBA/Activity/README @@ -0,0 +1,133 @@ +//$Id$ +=================== RT CORBA capabilities demo =================== + +Table of contents +----------------- +1. Introduction +2. Conf file parameters +3. Running the example. + +1. Introduction + +The Real-Time CORBA specification provides a high level API for programmers +to write distributed applications in which the priority of a distributed +thread of execution is maintained across separate hosts with potentially +different operating systems. It also provides support for explicit +binding, standard sychronizers, the ability to modify transport protocol +properties and thread pools as a standard. + +In this experiment we show the effect of maintaining end to end priorities. + +The experiment consists of the following participants: + +Job: A CORBA servant object that performs CPU intensive work. The ammount +of work depends on a load factor that is conveyed to the object per +invocation as an argument. + +Periodic Task: A periodic task is a thread of execution that is associated +with a Job. A Task periodically invokes the Job after a period of time +specified by the user. + +Activity: An activity is a collection of Jobs and Tasks hosted in a single +process. An activity reads a configuration file that can be used to +initialize in many ways such as a client or server. + +2. Conf file parameters +-------------------- +POA OPTIONS +========== +To specify POA options the format is: + +-POA <name> -PriorityModel <CLIENT|SERVER> <priority> -Lanes <count> (-Lane <priority> ,<static_threads> <dynamic_threads>)* -Bands <count> (-Band <low> <high>)* + +e.g. +-POA poa1 -PriorityModel CLIENT 10 -Bands 2 -Band 1 20 -Band 30 85 -Lanes 2 -Lane 10 1 0 -Lane 80 1 0 + +specifes a POA with: + +Name - poa1 + +Priority model - client propogated, def. priority = 10 + +Bands - 2 Bands with Band values as follows - + Band 1 : low priority = 1, high priority = 20 + Band 2 : low priority = 30, high priority = 85 + +Lanes - 2 Lanes with Lane values as follows - + Lane 1 : priority = 10, 1 static thread, 0 dynamic threads + Lane 2 : priority = 80, 1 static thread, 0 dynamic threads + +You can specify options for creating POA, Job and Task as shown +below. Please note that you must specify the number of POA, Job or Task via +the following options at the beginning of the conf. file: + +-POACount [count] +-TaskCount [count] +-JobCount [count] + +Job Options +=========== +The format for specify a Job is: +-Job <name> <poa_name> + +where, poa_name is the POA that this object is activated in. + +e.g. +-Job job_10 poa1 + +specifies a Job with, + +Name - job_10 +POA Name - poa1 + +Task Options +============ + +The format for specify a Task is: + +-ThreadTask -JobName <name> -Priority <priority> -Period <period> -ExecTime <exec_time> -Phase <phase> -Iter <iterations> -Load <load_weight> + +where, +-ThreadTask = Specifies a Thread based timer. +-JobName <name> = Name of the Job object that this task will exec. once every period. +-Priority <priority> = The OS thread priority at which to run this task. +-Period <period> = The period of execution. (in uS) +-ExecTime <exec_time> = The offline estimate of the worst case execution time for the Job. (uS) +-Phase <phase> = The phase to start at (uS) +-Iter <iterations> = Number of Periods to exec. +-Load <load_weight> = a load factor passed to the job that varies its processing. + +e.g. +-ThreadTask -JobName job_10 -Priority 10 -Period 1 -ExecTime 10000 -Phase 0 -Iter 20 -Load 1000 + +specifes a Thread Task in which, +JobName = job_10 +-Priority = 10 +-Period = 1uS +-ExecTime = 10000uS +-Phase = 0uS +-Iter = 20 iterations +-Load = 1000 + +4. Command-Line Options +---------------------- +-Started_Flag <file_name> : When a particular activity instance has +finished bootstrapping, it will create a file specified by <file_name> +to signal that it has started. This allows scripts to synchronize when +other instances of activity can be started. + +4. Running the example +---------------------- + +a). The activated Jobs are registered with a Naming service, so we need an NS running +e.g. ./Naming_Service -o naming_ior + +b). Start one or more instances of ./activity depending on the test configuration that you have designed. + +e.g. ./activity -ORBInitRef NameService=file://naming_ior -ORBSvcConf svc.conf.whatever -ORBDebugLevel 1 + +c) once all the instances exit, the test will generate data files: <job_name>.dat + +use gen_graph to generate a .png file to view the results in a graphical viewer. + + |