Date: 15 Nov 2022- 30 Nov 2022
The goal of this project was to implement one of the DVS based RTOS task-scheduling algorithms described in the paper: Real-Time Dynamic Voltage Scaling for Low-Power Embedded Operating Systems*.
The paper starts with a discussion on power-saving techniques in non-RT systems, focusing on voltage/frequency scaling. The author focuses on traditional algorithms (DVS, Static VS) that set the processor to run at some lower-than-max frequency during low average utilization periods.
In such systems without real-time task-completion guarantees, this coarse metric is sufficient to provide the power savings incurred by frequency reduction. However, in Real-time systems, this average utilisation metric is not sufficient to claim that a task-set will meet the deadline guarantee.
Tasks in Real-time systems must always satisfy two constraints to be run. A real-time scheduler guarantees that tasks will meet their deadlines given that:
The contribution of the paper is in providing a set of modified scheduling algorithms that use the mechanisms of Dynamic voltage-scaling to satisfy the above two constraints - thus extending the power-savings effects of DVS to Real-Time Systems as well. Modifying the scheduling algorithm amounts to modifying the schedulability test.

Schedulability test for DVS. Ci: Worst-case computation time. Pi: Task Period
$$ C_{worstcase}\leftarrow C_{latest}\\if \\C_{latest} < C_{worstcase} $$
Subsequently, the regular EDF/RM priority-based scheduling of tasks is performed.