Updated scheduler descriptions (replaced repeated strings with constants)
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/predefined/StandardSchedulers.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/predefined/StandardSchedulers.java
index f96609e..ecfa060 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/predefined/StandardSchedulers.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/predefined/StandardSchedulers.java
@@ -27,6 +27,10 @@
private static final String PROCESS_PARAMETERS = "\nProcess parameters:\n";
private static final String OPTIONS = "\nOptions:\n";
private static final String REFERENCE = "\nReference:\n";
+ private static final String NO_ITEMS = " -\n";
+ private static final String PASSES_PARAMETERS_UPWARDS = " - passes parameters upwards\n";
+ private static final String HAS_EXACTLY_ONE_CHILD = " - has exactly one child\n";
+ private static final String REQUIRES_PARENT_SCHEDULER = " - requires parent scheduler\n";
private static final String LIU_LAYLAND_1973 = // http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.8216
" - Liu, Chung Laung, and James W. Layland (1973).\n" +
@@ -92,10 +96,10 @@
+ " - period [1] Time\n"
+ " Amount of time after which the capacity will be replenished.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " - passes parameters upwards\n"
- + " - requires parent scheduler\n",
+ + PASSES_PARAMETERS_UPWARDS
+ + REQUIRES_PARENT_SCHEDULER,
new Parameter[] { Parameter.CAPACITY, Parameter.PERIOD },
new Parameter[] {},
false, true, true),
@@ -103,12 +107,12 @@
"PriorityBased",
"???\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - priority [1] Integer\n"
+ " The priority of the process (a higher value means a higher priority).\n"
+ OPTIONS
- + " -\n",
+ + NO_ITEMS,
new Parameter[] {},
new Parameter[] { Parameter.PRIORITY },
false, false, false),
@@ -120,7 +124,7 @@
+ "cooperatively (they do not preempt each other), preemptive otherwise.\n"
+ "Tasks with the same priority also behave cooperatively.\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - priority [1] Integer\n"
+ " The priority of the process (a higher value means a higher priority).\n"
@@ -128,7 +132,7 @@
+ " The OSEK task group number (if for two processes the number is equal,\n"
+ " that means they are in the same task group).\n"
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ OSEK_2005,
new Parameter[] {},
@@ -139,12 +143,12 @@
"Fixed Priority Preemptive Scheduling (e.g. AUTOSAR),\n"
+ "same as OSEK but without task groups.\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - priority [1] Integer\n"
+ " The priority of the process (a higher value means a higher priority).\n"
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ LIU_LAYLAND_1973,
new Parameter[] {},
@@ -157,7 +161,7 @@
+ "from starving if a higher priority task is trying to constantly occupy the\n"
+ "CPU (safety insurance, bounding the execution time of sporadic loads).\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - priority [1] Integer\n"
+ " The priority of the process (a higher value means a higher priority).\n"
@@ -170,7 +174,7 @@
+ " - replenishment [1] Time\n"
+ " The periodic time interval after which the budget is set to the configured value.\n"
+ OPTIONS
- + " -\n",
+ + NO_ITEMS,
new Parameter[] {},
new Parameter[] { Parameter.PRIORITY, Parameter.MIN_BUDGET, Parameter.MAX_BUDGET, Parameter.REPLENISHMENT },
false, false, false),
@@ -179,12 +183,12 @@
"This is not a scheduling algorithm, it only describes how to derive priorities for a\n"
+ "fixed priority scheduler: Task with the shortest deadline gets the highest priority.\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - deadline [1] Time\n"
+ " The time after each activation at which the process must finish.\n"
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ AUDSLEY_1990,
new Parameter[] {},
@@ -195,13 +199,13 @@
"This is not a scheduling algorithm, it only describes how to derive priorities for a\n"
+ "fixed priority scheduler: Task with the shortest period gets the highest priority.\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - period [1] Integer\n"
+ " The time span after the previous activation at which\n"
+ " the next instance of the process shall be activated.\n"
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ LIU_LAYLAND_1973,
new Parameter[] {},
@@ -213,12 +217,12 @@
"Earliest Deadline First (EDF): The task with the closest deadline in relation\n"
+ "to the current point in time will be scheduled next.\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - deadline [1] Time\n"
+ " The time after each activation at which the process must finish.\n"
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ LIU_LAYLAND_1973,
new Parameter[] {},
@@ -229,14 +233,14 @@
"Least Local Remaining Execution-time First (LLREF): Task with the\n"
+ "smallest local remaining execution time will be scheduled next.\n"
+ ALGORITHM_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ PROCESS_PARAMETERS
+ " - executionTime [1] Time\n"
+ " The time which the process will use until it is finished\n"
+ " (usually the worst case execution time is used here in order\n"
+ " to guarantee that the process can finish).\n"
+ OPTIONS
- + " -\n",
+ + NO_ITEMS,
new Parameter[] {},
new Parameter[] { Parameter.EXECUTION_TIME },
false, false, false),
@@ -253,7 +257,7 @@
+ " - priority [1] Integer\n"
+ " The priority of the process (a higher value means a higher priority).\n"
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ ZOUAOUI_BOUSSAID_ABDELLATIF_2019,
new Parameter[] { Parameter.TIME_SLICE_LENGTH },
@@ -269,9 +273,9 @@
+ " It is assumed that execution times are an integer multiple of this\n"
+ " time slot length.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ ANDERSON_SRINIVASAN_2001,
new Parameter[] { Parameter.QUANT_SIZE },
@@ -286,9 +290,9 @@
+ " It is assumed that execution times are an integer multiple of this\n"
+ " time slot length.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " -\n",
+ + NO_ITEMS,
new Parameter[] { Parameter.QUANT_SIZE },
new Parameter[] {},
false, false, false),
@@ -301,9 +305,9 @@
+ " It is assumed that execution times are an integer multiple of this\n"
+ " time slot length.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " -\n"
+ + NO_ITEMS
+ REFERENCE
+ DEUBZER_MARGULL_MOTTOK,
new Parameter[] { Parameter.QUANT_SIZE },
@@ -318,9 +322,9 @@
+ " It is assumed that execution times are an integer multiple of this\n"
+ " time slot length.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " -\n",
+ + NO_ITEMS,
new Parameter[] { Parameter.QUANT_SIZE },
new Parameter[] {},
false, false, false),
@@ -336,10 +340,10 @@
+ " - period [1] Time\n"
+ " Amount of time after which the capacity will be replenished.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " - has exactly one child\n"
- + " - requires parent scheduler\n"
+ + HAS_EXACTLY_ONE_CHILD
+ + REQUIRES_PARENT_SCHEDULER
+ REFERENCE
+ STROSNIDER_LEHOCZKY_SHA_1995,
new Parameter[] { Parameter.CAPACITY, Parameter.PERIOD },
@@ -358,10 +362,10 @@
+ " - period [1] Time\n"
+ " Amount of time after which the capacity will be replenished.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " - has exactly one child\n"
- + " - requires parent scheduler\n"
+ + HAS_EXACTLY_ONE_CHILD
+ + REQUIRES_PARENT_SCHEDULER
+ REFERENCE
+ BUTTAZZO_2004,
new Parameter[] { Parameter.CAPACITY, Parameter.PERIOD },
@@ -379,10 +383,10 @@
+ " Amount of time after which the capacity will be replenished\n"
+ " after it has last been consumed.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " - has exactly one child\n"
- + " - requires parent scheduler\n"
+ + HAS_EXACTLY_ONE_CHILD
+ + REQUIRES_PARENT_SCHEDULER
+ REFERENCE
+ SPRUNT_SHA_LEHOCZKY_1989,
new Parameter[] { Parameter.CAPACITY, Parameter.REPLENISHMENT_DELAY },
@@ -400,10 +404,10 @@
+ " - period [1] Time\n"
+ " Amount of time after which the capacity will be replenished.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " - has exactly one child\n"
- + " - requires parent scheduler\n"
+ + HAS_EXACTLY_ONE_CHILD
+ + REQUIRES_PARENT_SCHEDULER
+ REFERENCE
+ ABENI_BUTTAZZO_1998,
new Parameter[] { Parameter.CAPACITY, Parameter.PERIOD },
@@ -420,10 +424,10 @@
+ " - period [1] Time\n"
+ " Amount of time after which the capacity will be replenished.\n"
+ PROCESS_PARAMETERS
- + " -\n"
+ + NO_ITEMS
+ OPTIONS
- + " - has exactly one child\n"
- + " - requires parent scheduler\n"
+ + HAS_EXACTLY_ONE_CHILD
+ + REQUIRES_PARENT_SCHEDULER
+ REFERENCE
+ CACCAMO_BUTTAZZO_SHA_2000,
new Parameter[] { Parameter.CAPACITY, Parameter.PERIOD },