Quizzing the Scheduler

By Paul Murphy, author of The Unix Guide to Defenestration

Pop quiz: which of the following schedulers is a standard Solaris 9 feature?

Of course it's "All of above", since these are all parts of the Solaris resource management framework. None, however, would be of any real importance to anyone other than a Sun sales guy talking to a mainframer except for one thing: the underlying structure is "forward portable." That's an awkward phrase by which I mean that your investment in the time needed to learn about this stuff now will help you understand and use the next generation Unix OS when that comes out.

On the surface the resource manager assigns resource limits to tasks grouped into projects and is therefore designed to appeal to managers who believe their job is to allocate systems resources to processes or users rather then Unix people who believe resources should be cheap and plentiful.

Beneath resource manager, however, lurk lgroups and lnodes -- and the combination is a lot more interesting. Right now an lnode is functionally a CPU board with its local memory in one of the mid range machines like a 6800, and resource manager therefore allocates processing resources and priorities to groups of processes within subdivisions of the machine that map to one or more lnodes.

Right now resource manager divides a box, like a 6800, into multiple virtual systems but the underlying hardware management modol is fully reversible -- meaning that it applies equally well to treating multiple real boxes on a local network as one virtual machine.

Today we call that grid computing and it's still quite clumsy; tomorrow what we now think of as lnodes within a box could become boxes on the network as grid control functionality moves into the kernel. Today's resource manager framework would then allow sysadmins to manage network resources by overlaying organizational needs on the natural fair share scheduling such a network would otherwise default to.

It's speculative, of course, but worth taking a look at now so that if, or when, Sun releases a network Unix running across multiple machines, you'll just go "oh yeah, I know how to use that..."