This year, I’ve been the TA for the “Intro. to Cyber-Physical Systems“ course at the Advanced Learning and Research Institute (ALaRI) at Università della Svizzera italiana (USI). Within the course, we had couple of lectures introducing Real-Time scheduling techniques, . namely the Rate Monotonic Scheduler (RMS), the Earliest Deadline First (EDF) and the Least Slack Time (LST). I found it a little bit confusing sometimes when in comes to deployment due to the lack of visual tools to visualize various examples to spot the difference among these schedulers.
Another aspect of the course is to show the usefulness and applicability of multiple processors when executing tasks, with some simple examples considered. Again, a visual example could make things much easier.
Therefore, and being found of Excel, I decided to create and excel sheet that executes different schedules and visualize tasks ordering in a way that makes it easier to compare different schedules with various sets of tasks. The provided excel workbook is fully implemented in formulas (without macros) and can run with no extra permissions.
On the other hand, I have also created a macro-enabled file with, in addition to the previous functionality of the standard edition, can also draw a task dependency graph. you can find both files in the download section.
Note: the worksheets and workbook are locked and only the tables with the task properties can be modified. in order to check the formulas and view hidden sheets you need to unlock the sheets/workbook using the password “rgb123“
Periodical Real-Time Scheduling:
In this view, you can:
- Schedule up to 10 tasks with RMS, EDF and LST, and compare among them
- Test different settings of task Period (P), Deadlines (D), Execution units (E) and Arrival time (R), and see the effect over the schedule
- You can see a detailed scheduling plan of one of them (select the Schedule from the drop-down list) up to 220 time units.
- Any unfeasible schedule will be marked in RED,with the first unfeasible occurrence in the detailed table view marked in red with the letter E.
- Customize the view displaying Grid lines (each five time units) and numbers (of current execution unit)
- The schedule will continue no matter if it fails or not.
- In EDF and LST, after the first unfeasible event, the schedule is completely ruined.
- In sometimes, we may get a ping-pong effect in LST (if two tasks happen to have the same slack time, it will execute one time unit from each mutually).
Multi-Processor with Task dependencies:
In this view, you can:
- Schedule up to 20 tasks, with up to 5 dependencies on previous tasks for each
- Customize the task minimum (Best case) and maximum (Worst case) execution time and observe the corresponding changes
- Customize the number of processors, up to 4, and the scheduling strategy (Worst Case Execution Time (WCET) or Best Case Execution Time (BCET))
- customize the view by displaying/hiding grid lines (every 5 time units)
- No circular references are allowed when defining task dependencies
- In some cases a task is allowed to be preempted (which is wrong in this case), This is a bug that I am working on now.
- The Macro-Free Standard version (only schedulers) : DOWNLOAD HERE
- The Macro-Enabled Full version (Standard + ability to draw task dependency graph) : DOWNLOAD HERE