On Mon, Aug 18, 2003 at 05:38:33PM +0200, Farid Hajji wrote: > Marcus Brinkmann wrote: > > So you see, it is not about L4, but about glueing Hurd to L4. Mach did a > > lot of things for us that L4 is not doing, and we take the chance to try to > > more consequently implement the Hurd's fundamental design ideas. Freedom to > > the users! Freedom to map your physical memory as you want it, freedom to > > use the IPC policy you want, and the freedom to have functional device > > drivers without getting them approved by a kernel master geek ;) > > L4 also provides for user-space scheduling, besides the standard > in-kernel scheduler. Putting the scheduling policy out of the > kernel opens up new interesting possibilities, like, perhaps > real-time threads and better support for SMP systems as well.
Yeah, but it is not at all obvious to me how to do this, and happily, the Hurd itself doesn't need real time. We will use some of the scheduling interfaces in the device driver, in particular preemption control for interrupt handlers. As about SMP support, we certainly want to do that, but it will not be possible to do it at a local level like memory. Neal gave the heuristic argument to me at Oslo. He said, to paraphrase him, that all memory pages are equal (ie it doesn't matter which page you get), but all time slices are not. In particular, it does indeed matter if you get the next, let's say, one million time slices, or if you get only one and then have to wait a bit until everybody else got a chance to run, and that one million times. Also, time is consumed and then useless to anybody else, while access to memory can be revoked temporarily without too much problems (there is still the issue of caching etc, but it's controllable). The choice of the processor to run on is also not free for the user, because that would open the system to DoS attacks. For example, let's say you run an important task on processor A. Then N users tasks can cooperate in that they all choose to run on processor A. So although the scheduling parameters in L4 are interesting, and will make it possible to provide exciting user level features like real time, it is still entirely open how this could be done "the Hurd way". ;) Thanks, Marcus -- `Rhubarb is no Egyptian god.' GNU http://www.gnu.org [EMAIL PROTECTED] Marcus Brinkmann The Hurd http://www.gnu.org/software/hurd/ [EMAIL PROTECTED] http://www.marcus-brinkmann.de/

