Independent thesis Advanced level (degree of Master (One Year)), 10 credits / 15 HE credits
Real-time systems are employed in many areas, such as aerospace and defenses. In real-time systems, especially in hard real-time systems, it is important to meet the associated time requirements. With the increasing demand for high speed processing capabilities, the requirement for high computing power is becoming more and more urgent. However, it is no longer possible to increase processor speeds because of thermal and power constraints. Consequently, industry has focused on providing more computing capabilities using more number of processors.As to the scheduling policies, they can be classified into two categories, preemptive and non-preemptive. Preemptive scheduling allows preemptions arbitrarily, whereas it implies prohibitively high preemption related overheads. On the contrary, the non-preemptive scheduling which do not allow preemption at all, will not have such overheads, but suffers due to the block time on high priority tasks. Limited preemptive scheduling, that builds on the best of preemptive and non-preemptive scheduling, benefits from the limited number of preemptions without a major effect on real-time properties. It is proved that limited preemptive scheduling dominates preemptive and non-preemptive scheduling on uniprocessors under fixed priority. However, less work has been done on multiprocessor limited preemptive scheduling, especially under Earliest Deadline First (EDF). On a multiprocessor, limited preemptively scheduling real-time tasks imply an additional challenge with respect to determining which of the running task to preempt. On one extreme, the scheduler can preempt the lowest priority running task and this is referred to as Adaptive Deferred Scheduling (ADS). On the other hand, the scheduler can preempt any lower priority running task that becomes pre-emptible. Such a scheduler is referred to as Regular Deferred Scheduling (RDS)In this work, we empirically investigate the performance of ADS and RDS, and compare it with the global preemptive and non-preemptive scheduling, in the context of an EDF based scheduler. Our empirical investigation revealed that the number of preemptions under ADS is less compared to RDS, at runtime. This is due to the fact that by delaying preemptions, the higher priority tasks that are released subsequently will run in priority order thereby avoiding the need for more preemptions. Also, by delaying preemptions, the possibility of one or more processors becoming available increases. Experiments investigating the schedulability ratio shows that ADS and RDS performs almost equally well, but better than fully non-preemptive scheduling.