A Non-Preemptive Soft Real Time Scheduler High Deadline Meeting Rate Z.I Abdul Khalib, R. Badlishah Ahmad, O. Bi Lynn Ong School of Computer and Communication Engineering University Malaysia Perlis P.O Box 77, d/a Pejabat Pos Besar 01007 Kangar Perlis zahereel @unimap.edu.my Abstract— Soft real time system tolerates missing deadline to a certain limit. However, enhancing the deadline meeting ratio (DMTR) of a soft real time system is definitely favorable as it will increase the system performance. In this paper we present a new non-preemptive dynamic scheduling algorithm for soft real time application with the ultimate aim of increasing the deadline meeting ratio of the evergreen Earliest Deadline First (EDF) algorithm during overload condition while maintaining the excellent performance it poses during normal load. Our approach, grouped jobs with near deadlines together using our novel algorithm and schedule the jobs within a group using another novel approach has boost the performance during overload. We named the approach Group, Utilization and Deadline Tolerance EDF (gutEDF). We will present results comparing the deadline meeting ratio of gutEDF and EDF under different deadline tolerance values and the Deadline Meeting Ratio improvement of the algorithm. Keywords— group scheduling, EDF, gutEDF, soft real time, non-preemptive, dynamic scheduling I. INTRODUCTION Real time systems (RTS) are computing system, which must response within specified time constraints to events that occur within its environment. In other words, the correct operation of an RTS depends not only on the value of the computational result as a general purpose computing system do, but it also demands temporal correctness. Under any circumstances, the computing system must response by triggering the respective actuators within the given time limit. A late reaction may be useless or destructive. In cases where a late result is tolerable by the user, then the RTS is categorized as soft real time system. On the other hand, when a late result could cause destruction, then the RTS is termed as hard real time system. Having defined the two types of RTS, we understand that in these days RTS plays a significant role in our society. RTS are being applied almost everywhere. Its applications spans from military systems, factory automation, chemical and nuclear plant control, telecommunication systems, high speed multimedia application, virtual reality, Internet gaming and consumer's gadgets. Despite the large application domain, many researches, developers, and technical managers have serious misconceptions about real time computing [1], where most of real time control systems are still developed using ad- hoc approaches. Very often one may find engineers and programmers designed their control applications with stringent timing constraints by writing large assembly language code, programming timers, writing low-level device drivers and manipulating task with interrupt priorities. No doubt, this approach allows the developed code to be optimized to run efficiently [2], but that is the reason why statement like “...the system was up and running excellent, however on day 69 it crashes...”.This is in line with the Murphy's law which state ' if something can go wrong, it will go wrong.' Hence, the right approached to real time programming is multi-threading. With multi-threading, all those threads must be schedule for execution utilizing a scheduling algorithm. In general, the existing scheduling algorithms can be classified into the following classes as in table 1. TABLE I. CLASSIFICATION OF SCHEDULING ALGORITHMS CLASS[2] Type Explanation Preemptive can stop running task to allow higher priority task to execute. Non-Preemptive running task must run to completion. Static scheduling decision based on fixed parameters assigned to tasks prior to activation. Dynamic Scheduling decision based on parameters that may change during system evolution. Off line A scheduling algorithm is used off line if it is executed on the entire task set before actual task activation. On line Scheduling decisions are taken at runtime every time a new task enters the system or when running task terminates In general, most hard real time system uses preemptive scheduling as this is necessary to ensure the highest priority task to execute first.