Making Reservations

April 12, 2004
Real time doesn't always mean getting there first.

An RTOS facilitates meeting some system-design constraints. But, minimizing interrupt latency isn't the only way to ensure that jobs get done within time specifications.

Most developers think of a fixed-priority preemptive scheduling policy when they discuss hard real-time systems. The most common scheduling approach used by a majority of real-time operating-system (RTOS) implementations, it's easy to implement and easy to understand. A number of alternatives are listed in the Real-Time Scheduling Policies table below.

The various scheduling policies provide advantages, depending upon the task's type of job. For example, dynamic-priority preemptive scheduling is useful when fast system response time is crucial. A task that supports the user interface may have its priority increased when user input is being processed.

Reservations provide a way to manage resources like processor time. Such an approach divides up a system's processing capacity and will enable tasks to reserve a fraction of this capacity. The task needn't use all of its time, but it's guaranteed at least that amount. Also, a task needn't reserve a single block of time. It may have multiple blocks that are distributed at useful intervals. An RTOS that supports reservations has a mechanism to specify the required intervals. Reservation systems can be integrated on top of many existing RTOS implementations.

More reservations Task execution time is just one way to employ reservations. Almost any resource can benefit from reservation systems. Physical memory pages, network bandwidth, and disk bandwidth represent just a few resources commonly managed in real-time environments.

Network bandwidth reservations typically deliver quality-of-service (QoS) features. QoS is very important for Voice-over-IP (VoIP) service and real-time networking.

Finding an RTOS that supports reservation isn't easy, as few companies offer an RTOS with this feature. Green Hills Integrity and TimeSys Linux are two that provide a form of reservation support. Integrity has time and memory resource guarantees, while TimeSys Reservations is an add-on to TimeSys Linux. This system also supports TimeSys' implementation of the Real Time Java Specification.

See associated figure

REAL-TIME SCHEDULING POLICIES
Fixed-Priority Preemptive Scheduling
Each task has a fixed priority. The highest priority task runs. Tasks typically change their priority. Most common RTOS scheduler.
Dynamic-Priority Preemptive Scheduling
Each task has a priority that may change based on the services it may be performing or utilizing.
Rate-Monotonic Scheduling
Priorities assigned based on task frequency of execution. The higher-rate task has higher priority.
Deadline-Monotonic Scheduling
Generalization of rate-monotonic scheduling, in which a task's deadline is a fixed point in time relative to the beginning of the period. The highest priority has the shortest fixed deadline. Identical to rate-monotonic scheduling, when deadline time equals task period.
Earliest-Deadline-First Scheduling
Task with the earliest deadline is assigned the highest priority.
Least Slack Scheduling
Also known as least laxity algorithm. Task priorities assigned according to the laxity (the difference between the deadline interval and the computation time).
About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!