You are here: Home / RTLWS 1999-2017 / 
2024-04-25 - 11:18

Dates and Events:

OSADL Articles:

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

Eighth Real-Time Linux Workshop on October 12 to 15, 2006, in Lanzhou, Gansu, P.R.China

Dynamic Kernel Thread Scheduling for Real-Time Linux

Dongwook Kang, Woojoong Lee, and Chanik Park
Department of CSE/GSIT
Pohang University of Science and Technology, Kyungbuk, Republic of Korea
dwkang@postech.ac.kr
wjlee@postech.ac.kr
postech.ac.kr

Real-time tasks are supported in Linux by separating the real-time task priorities from non real-time task priorities. However, this separation of priority ranges may no longer be effective when real-time tasks make the system calls for important system service like the I/O and the kernel threads that take care of these system calls. In that sense, Linux is known for supporting soft real-time requirements. The kernel threads in Linux systems are important as basic execution units providing kernel services for non real-time tasks as well as real-time tasks. In current Linux implementation, kernel threads are configured to have static priorities for better throughputs. However, the static assignment of priorities to kernel threads may cause trouble for real-time tasks when real-time tasks require kernel threads to be invoked for the kernel service via system calls. This is due to the fact that kernel threads do not discriminate real-time tasks from non real-time tasks. For example, the kernel thread called {\itshape pdflush} writes back to disks dirty memory pages. If real-time tasks have made several number of I/O requests of memory page updates and {\itshape pdflush} isn't scheduled sufficiently, then the responsiveness of real-time tasks may be prolonged significantly due to the shortage of memory cache.

In this paper, we present a dynamic kernel thread scheduling mechanism with {\itshape Weighted Average PIP}, a variation of the {\itshape Priority Inheritance Protocol} ({\itshape PIP}). The scheduling algorithms assign proper priorities to kernel threads at runtime by monitoring the activities of user-level real-time tasks. Through experiments, we have shown that the algorithms can greatly improve the unexpected execution latency of real-time tasks.

 

Valid XHTML 1.0 Transitional