You are here: Home / RTLWS 1999-2017 / RTLWS Submitted Papers / 
2024-11-24 - 05:53

Dates and Events:

OSADL Articles:

2024-10-02 12:00

Linux is now an RTOS!

PREEMPT_RT is mainline - What's next?


2023-11-12 12:00

Open Source License Obligations Checklists even better now

Import the checklists to other tools, create context diffs and merged lists


2023-03-01 12:00

Embedded Linux distributions

Results of the online "wish list"


2022-01-13 12:00

Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completed

Another important milestone on the way to interoperable Open Source real-time Ethernet has been reached


2021-02-09 12:00

Open Source OPC UA PubSub over TSN project phase #3 launched

Letter of Intent with call for participation is now available



Real Time Linux Workshops

1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 - 2015

Eleventh Real-Time Linux Workshop on September 28 to 30, in Dresden, Germany

Announcement - Hotels - Agenda - Paper Abstracts - Presentations - Registration - Abstract Submission - Xenomai User Meeting - Sponsors

Papers

A Flexible Scheduling Framework Supporting Multiple Programming Models with Arbitrary Semantics in Linux

Doug Niehaus, ITTC Kansas University
Noah Watkins, ITTC Kansas University

General purpose operating systems have traditionally provided, and continue to provide, priority-based dynamic scheduling providing "generally good" system performance because it was a scheduling model that worked, or could be made to work, for a wide range of applications. Applications with specialized semantics have existed for many years, but were traditionally supported by expensive specialized systems. Real-Time systems are historically among the most common sytems with specialized semantics. Over the last several years, a variety of factors have called into question whether the traditional scheduler can continue to provide adequate support for the full range of next generation applications, and the range of combinations of applications which must coexist on a given computer system. Further, the power and low cost of commercial-off-the-shelf (COTS) computer systems hardware and software makes it increasingly attractive to support a wide range of applications with a wide range of semantics, thus causing a semantic explosion which challenges the capabilities of current systems.

Semantics of individual applications may be best described using progress, priority, or real-time semantics. Allocation of system resources may be best described using fixed priority, CPU share, physical partitioning, or time-division semantics. Researchers continue to experiment with a variety of scheduling algorithms for a wide range of purposes but system designers wishing to use research results have a high barrier to entry because changing system scheduling semantics is a difficult and time consuming project. Most of the work in specialized application semantics has investigated how to map them onto the priority model provided by most computer system precisely because it was common and perceived as difficult or impossible to change, and because no better way to have multiple application semantics coexist seemed possible.

The Kernel/User Systems Programming (KUSP) Project at the University of Kansas has worked on a number of projects over the years, but all were focussed on increasing the precision with which behavior of computations Linux can be controlled and measured. The Group Scheduling (GS) subsystem of KUSP is explicitly designed to permit implementation of a wide range of scheduling semantics as Scheduling Decision Functions (SDF) which can be plugged into the GS framework and organized into a hierarchy of groups, which specifies the scheduling semantics of the system as a whole. Individual groups of threads can represent computations, system service pools, or anything the developer desires. Each group can have its own SDF controlling selection among group members at scheduling time, and the ability to have groups be members of others groups permits the specification of a scheduling hierarchy for the whole system. Integration of GS with kernel concurrency control (rt-mutex), called proxy execution, permits customization of the other significant influence on computation behavior in the system beyond the scheduler.

The GS framework can reduce the cost of implementing customized programming models for individual applications, to reduce the cost of researchers wishing to experiment with specific scheudling algorithms, and to increase the precision with which the performance of different algorithms can be compared by providing a common implementation and testing framework. This paper presents the GS framework and how it can be used to implement a wide range of programming models.