Kernel Thread Scheduling in Real-Time Linux for Wearable Computers

  • Kang, Dong-Wook (Department of Computer Science & Engineeneering, POSTECH, and is currently with the Embedded Software Research Division, ETRI) ;
  • Lee, Woo-Joong (Department of Computer Science & Engineering, POSTECH) ;
  • Park, Chan-Ik (Department of Computer Science & Engineering, POSTECH)
  • Received : 2006.10.01
  • Published : 2007.06.30

Abstract

In Linux, real-time tasks are supported by separating real-time task priorities from non-real-time task priorities. However, this separation of priority ranges may not be effective when real-time tasks make the system calls that are taken care of by the kernel threads. Thus, Linux is considered a soft real-time system. Moreover, kernel threads are configured to have static priorities for throughputs. The static assignment of priorities to kernel threads causes trouble for real-time tasks when real-time tasks require kernel threads to be invoked to handle the system calls because kernel threads do not discriminate between real-time and non-real-time tasks. We present a dynamic kernel thread scheduling mechanism with weighted average priority inheritance protocol (PIP), a variation of the PIP. The scheduling algorithm assigns proper priorities to kernel threads at runtime by monitoring the activities of user-level real-time tasks. Experimental results show that the algorithms can greatly improve the unexpected execution latency of real-time tasks.

Keywords