Abstract

An important component in the kernel of a real-time operating system (RTOS) is the task scheduler. Various solutions on task scheduling, such as priority inheritance and priority ceiling, have been proposed to deal with the priority-inversion problem that arises when a preemptive priority driven scheduling scheme is used. However, the priority inheritance protocol introduces drawbacks such as multiple blocking of tasks and deadlock, while the priority ceiling protocol is hardly supported by most existing real-time operating systems. We first present a formal description of a task scheduling algorithm that provides a solution to the priority inversion problem and eliminates multiple blocking of tasks running in a single processor platform. We use RTPA (real-time process algebra), a formal specification notation, to describe rigorously the architecture, and static and dynamic behaviours of the task scheduler. Our method employs a multi-queue based scheduling system in which all tasks pending on a resource or event are put into different queues with preassigned priorities. This technique eliminates the problem of priority inversion and prevents multiple-blocking and deadlock from happening. Based on the new method, a framework for implementing task scheduling and event handling is implemented for RTOS+, which is a portable real-time operating system developed by the authors.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call