Real-Time Systems: Spring Scheduling Simulator SDL example
University of Massachusetts, Amherst

* ===== layout.sdl =====
Layout {
Node_layout (rtl4) {
Processor_layout (AP_1) {
Appl_set {
Process_set proc1, proc1a, proc2, proc3, proc4;
};
};
};
};
* ===== proc1_pg.c =====
Process_group (proc1_pg) {
Process_graph {
Begin: proc1;
};
};
* ===== proc1.c =====
Process (proc1) {
Non_periodic;
Separation 50;
R_time (C 1);
Deadline 50;
Deadline_type Hard;
RT_type Critical;
};
Task_group (proc1) {
Group_list {
Begin: starter;
starter: (first 0), (second 10), (third 20), (fourth 30);
};
Task (starter) {
Non_preemptive;
W_time (C 0);
};
Task (first) {
Non_preemptive;
W_time (C 2);
R_time (C 14);
Deadline 20;
};
Task (second) {
Non_preemptive;
W_time (C 2);
R_time (C 24);
Deadline 30;
};
Task (third) {
Non_preemptive;
W_time (C 6);
Deadline 40;
};
Task (fourth) {
Non_preemptive;
W_time (C 7);
Deadline 50;
};
};
* ===== proc1a_pg.c =====
Process_group (proc1a_pg) {
Process_graph {
Begin: proc1a;
};
};
* ===== proc1a.c =====
Process (proc1a) {
Non_periodic;
Separation 45;
R_time (C 1);
Deadline 45;
Deadline_type Hard;
RT_type Critical;
};
Task_group (proc1a) {
Task (first) {
Non_preemptive;
W_time (C 2);
R_time (C 4);
Deadline 15;
};
Task (second) {
Non_preemptive;
W_time (C 2);
R_time (C 14);
Deadline 25;
};
Task (third) {
Non_preemptive;
W_time (C 6);
R_time (C 20);
Deadline 35;
};
Task (fourth) {
Non_preemptive;
W_time (C 7);
R_time (C 30);
Deadline 45;
};
};
* ===== proc2_pg.c =====
Process_group (proc2_pg) {
Process_graph {
Begin: proc2;
};
R_time (C 2);
};
* ===== proc2.c =====
Process (proc2) {
Periodic;
Period 50;
Deadline 50;
Deadline_type Hard;
RT_type Critical;
};
Task_group (proc2) {
Group_list {
Begin: single;
};
Task (single) {
M_time (C 20);
Non_preemptive;
W_time (U 30 40);
};
};
* ===== proc3_pg.c =====
Process_group (proc3_pg) {
Process_graph {
Begin: proc3;
};
};
* ===== proc3.c =====
Process (proc3) {
Non_periodic;
Separation 20;
Deadline 30;
Deadline_type Hard;
RT_type Critical;
};
Task_group (proc3) {
Group_list {
Begin: single;
};
Task (single) {
M_time (C 5);
Non_preemptive;
W_time (C 20);
};
};
* ===== proc4_pg.c =====
Process_group (proc4_pg) {
Process_graph {
Begin: proc4;
};
};
* ===== proc4.c =====
Process (proc4) {
Non_periodic;
Separation 10;
Deadline 30;
Deadline_type Hard;
RT_type Critical;
};
Task_group (proc4) {
Group_list {
Begin: single;
};
Task (single) {
M_time (C 5);
Non_preemptive;
W_time (C 20);
};
};

Real-Time Systems