Gabriel Sechan wrote:
Microkernels can do hard real-time. Thus even *drivers* get throttled correctly so as not to chew up the system.

Well, yes. So can monolithics. A microkernel isn't a requirement to get hard real-time. The only requirement for hard realtime is an OS that can do the proper accounting and a lot of CPU/memory power (since hard real time generally has poor overall performance in order to garuntee certain apps having a minimum performance).

Maybe, but the only kernels which I have seen actually do hard real time were microkernels.

Presumably, the problem is complexity management. A microkernel has strong walls between the pieces. A monolithic kernel eventually winds up buried in the n^2 interactions.

Ah, I get what you want now. This has nothing to do with realtime, it has everything to do with prioritizing certain apps.

No, it has to do with real time. Audio and video have hard constraints and must get serviced on those constraints. After that, they need zero time.

Prioritizing only works when there is a lot of excess time laying around. In addition, it wakes up the audio/video thread a lot just to ask "do you need time?".

But its not, and never can be, psychic. If you want to make sure your movie has priority, nice down the other app. Otherwise, hope that the kernel correctly figures out that your app is interactive (interactive apps get the most priority).

Nice doesn't help if a lower priority app is rattling the disk, bashing the network, or any of the other tasks which switch to system and then bang the operation out.

I'd give more details on how it works exactly, but I don't remember and the book is packed away.

It's okay. I'm happy to let the nice folks at Apple bang around for a while. They did quite a lot of work around CoreAudio.

-a


--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to