package mars_pathfinder public data data_type end data_type; data implementation data_type.Impl -- properties -- Concurrency_Control_Protocol => PCP; end data_type.Impl; thread sched_bus_task properties Dispatch_Protocol => Periodic; Period => 125 ms; Deadline => 125 ms; Compute_Execution_Time => 1 ms .. 25 ms; Priority => 10 ; end sched_bus_task; thread implementation sched_bus_task.Impl end sched_bus_task.Impl; thread data_task features fe : requires data access data_type.Impl; properties Dispatch_Protocol => Periodic; Period => 125 ms; Deadline => 125 ms; Compute_Execution_Time => 25 ms .. 25 ms; Priority => 9 ; end data_task; thread implementation data_task.Impl end data_task.Impl; thread control_task features fe : requires data access data_type.Impl; properties Dispatch_Protocol => Periodic; Period => 250 ms; Deadline => 250 ms; Compute_Execution_Time => 25 ms .. 25 ms; Priority => 8 ; end control_task; thread implementation control_task.Impl end control_task.Impl; thread radio_task properties Dispatch_Protocol => Periodic; Period => 250 ms; Deadline => 250 ms; Compute_Execution_Time => 25 ms .. 25 ms; Priority => 7 ; end radio_task; thread implementation radio_task.Impl end radio_task.Impl; thread video_task properties Dispatch_Protocol => Periodic; Period => 250 ms; Deadline => 250 ms; Compute_Execution_Time => 25 ms .. 25 ms; Priority => 6 ; end video_task; thread implementation video_task.Impl end video_task.Impl; thread mesure_task features fe : requires data access data_type.Impl; properties Dispatch_Protocol => Periodic; Period => 5000 ms; Deadline => 5000 ms; Compute_Execution_Time => 50 ms .. 50 ms; Priority => 5 ; end mesure_task; thread implementation mesure_task.Impl end mesure_task.Impl; thread forecast_task features fe : requires data access data_type.Impl; properties Dispatch_Protocol => Periodic; Period => 5000 ms; Deadline => 5000 ms; Compute_Execution_Time => 50 ms .. 75 ms; Priority => 4 ; end forecast_task; thread implementation forecast_task.Impl end forecast_task.Impl; process Application end Application; process implementation Application.Impl subcomponents sched_bus_t : thread sched_bus_task.Impl; data_t : thread data_task.Impl; control_t : thread control_task.Impl; radio_t : thread radio_task.Impl; video_t : thread video_task.Impl; mesure_t : thread mesure_task.Impl; forecast_t : thread forecast_task.Impl; shared_data : data data_type.Impl; connections cx1 : data access shared_data -> data_t.fe; cx2 : data access shared_data -> control_t.fe; cx3 : data access shared_data -> mesure_t.fe; cx4 : data access shared_data -> forecast_t.fe; end Application.Impl; processor cpu properties Scheduling_Protocol=>(POSIX_1003_HIGHEST_PRIORITY_FIRST_PROTOCOL); end cpu; system mars end mars; system implementation mars.Impl subcomponents process1 : process application.Impl; cpu1 : processor cpu; properties Actual_Processor_Binding => (reference (cpu1)) applies to process1; end mars.Impl; end mars_pathfinder;