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