RTCoreBSD
Robert Watson
rwatson at FreeBSD.org
Wed Aug 10 12:14:09 GMT 2005
On Wed, 10 Aug 2005, Momtchil Momtchev wrote:
> No, kqueue/kevent is not realtime, as the whole FreeBSD kernel doesn't
> support hard real-time scheduling. In order to have hard real-time
> scheduling you should have a fully preemtible kernel, which schedules
> and preempts everything (even interrupt handlers). The RTCoreBSD uses a
> two-kernel approach with a real-time microkernel which runs the FreeBSD
> kernel as a process, providing a virtual interrupt controller. The
> real-time processes run directly on the microkernel and can't directly
> use the FreeBSD kernel services.
While FreeBSD is not a hard realtime system, it does have increasing
propertis of one: FreeBSD 6.0 ships with kernel preemption enabled by
default, and the priority propagation and priority management in the SMPng
locking primitives moves in that direction also. FreeBSD will preempt one
running ithread with one associated with a new interrupt if the scheduler
decides that's appropriate based on their priorities. With Giant off most
of the kernel, a lot of problems with deferred processing due to large
lock size have gone away.
Robert N M Watson
More information about the freebsd-current
mailing list