While it is widely believed that preemptability is a necessary requirement for developing real-time software, there are additional costs involved with preemptive scheduling, as compared to non-preemptive scheduling. Furthermore, in the context of fixed-priority scheduling, feasibility of a task set with nonpreemptive scheduling does not imply feasibility with preemptive scheduling (and vice-versa). In this paper, we use the notion of preemption threshold to develop a new scheduling model, which unifies the concepts of preemptive and non-preemptive scheduling, and subsumes both as special cases. The notion of preemption threshold was introduced by Express Logic, Inc. in their ThreadX real-time operating system. It allows a task to disable preemption from tasks up to a specified threshold priority. Tasks having priorities higher than the threshold are still allowed to preempt. In our new model, each task has a regular priority and a preemption threshold. We show how the new scheduling m...