|
|||||||||||||||||||||||||
|
There are many Real Time systems in existence other than Linux-SRT. Linux-SRT is unique in that you can use it with "real" applications. It isn't necessary to modify application software for use with Linux-SRT. Quality of service can be applied to any program without recompiling. The applications I run with QOS enabled include xcdroast, cdparanoia, kmp3, alsaplayer, kmidi, krecord, kmedia, aacplay, Myth II, Mesa, xmms, mpeg_play, mpegtv, xanim, xspect and realplayer. You can apply it to anything you want to go faster, slower or at a fixed rate though. Many commercial microkernel systems are based on POSIX real time specifications. These only provide static priorities, not rate-based guarantees like Linux-SRT. Static priorities can't be used with applications which consume an unlimited amount of CPU (such as 3D graphics programs that always aim for the best possible frame rate). It is also not always possible to pick appropriate values for static priority scheduling when more than one real time application runs at once. On Linux, application writers have in some cases hard-coded very high static priorities into their applications, which may clash with other real time tasks. Another objective for Linux-SRT was to make it useful on a desktop machine, providing a complete solution from the kernel right up to a friendly user interface. Other Linux scheduling projectsMainstream Linux kernel scheduler development has focussed in the past on increasing performance for SMP machines, and not at all on real time features. There seems to be plenty of grassroots interest in doing real time on Linux, however.These interesting projects also add improved real time support to Linux: RTLinux is a real time microkernel which runs a conventional Linux kernel as one of its tasks. RTLinux tasks have excellent scheduling properties, but cannot make use of standard Linux system calls or other facilities. This makes the system useful for external device control and monitoring, but unsuitable for RT desktop applications.Kansas University's KURT project has a goal which is more similar to that of Linux-SRT. It is based on the much needed UTIME patch, which solves the kernel timing granularity problem with the use of one-shot timers. This provides microsecond resolution interval timers with minimal overhead and backwards compatibility with the periodic HZ interrupts. QLinux and Fairsched partition processes into groups and guarantee CPU time allocation to groups in proportion to preassigned weights. They are also hierarchical schedulers - groups can have subgroups which can have sub-subgroups, etc. QLinux provides network and disk scheduling as well as CPU; Fairsched is more up-to-date and supports SMP.
Maintained by
David Ingram
(last updated 11 May 2000) Copyright 2000 - AT&T Laboratories Cambridge | ||||||||||||||||||||||||