package multi_reduce_resource public with aadlv3; with Cheddar_Multicore_Properties; with Cheddar_Properties; data ressource end ressource; data implementation ressource.impl properties Concurrency_Control_Protocol =>Priority_Ceiling; end ressource.impl; thread T1 properties Dispatch_Protocol => Periodic; Period => 17ms; Compute_Execution_Time=>6ms..6ms; Priority =>5; end T1; thread implementation T1.impl end T1.impl; thread T2 features fe: requires data access ressource.impl; properties Dispatch_Protocol => Periodic; Period => 17ms; Compute_Execution_Time=>6ms..6ms; Priority =>2; end T2; thread implementation T2.impl end T2.impl; thread T3 properties Dispatch_Protocol => Periodic; Period => 17ms; Compute_Execution_Time=>5ms..5ms; Priority =>4; end T3; thread implementation T3.impl end T3.impl; thread T4 features fe: requires data access ressource.impl; properties Dispatch_Protocol => Periodic; Period => 17ms; Compute_Execution_Time=>4ms..4ms; Priority =>3; end T4; thread implementation T4.impl end T4.impl; thread T5 properties Dispatch_Protocol => Periodic; Period => 17ms; Compute_Execution_Time=>8ms..8ms; Priority =>1; end T5; thread implementation T5.impl end T5.impl; process appli end appli; process implementation appli.impl subcomponents J1:thread T1.impl; J2:thread T2.impl; J3:thread T3.impl; J4:thread T4.impl; J5:thread T5.impl; d:data ressource.impl; connections cx1: data access d ->J2.fe; cx2: data access d ->J4.fe; end appli.impl; processor cpu properties Scheduling_Protocol =>(POSIX_1003_Highest_Priority_First_Protocol); Cheddar_Properties::Preemptive_Scheduler =>FALSE; end cpu; processor implementation cpu.impl end cpu.impl; system multi_core end multi_core; system implementation multi_core.impl subcomponents cpu1:processor cpu; cpu2:processor cpu; properties aadlv3::System_Soc_Type => SoC_Processing_Unit; Cheddar_Multicore_Properties::SoC_Interconnection_Type => Crossbar; Cheddar_Multicore_Properties::Migrations_type => Time_Unit_Migration_Type; Cheddar_Multicore_Properties::Processors_type => Identical_Multicores_Type; end multi_core.impl; system reduce_resource end reduce_resource; system implementation reduce_resource.impl subcomponents process1: process appli.impl; cpu_core:system multi_core.impl; properties Actual_Processor_Binding =>(reference (cpu_core)) applies to process1; end reduce_resource.impl; end multi_reduce_resource;