nnsched is a kernel patch and accompanying userland tools which allow you to schedule processes under NetBSD using a neural network scheduler. It should be considered highly experimental, so play with it at your own risk.
To build it, get the files below and do the following, assuming `make' refers to a BSD Make implementation. If it doesn't, substitute make with bmake, nbmake or pmake depending on the system:
$ tar xzf nnsched-1.1.tar.gz
$ cd nnsched-1.1
$ make
$ make PREFIX=/usr install
Now the userland tools are built and installed (note that the installation step is optional and the PREFIX is set to /usr/local by default). To get kernel support, first obtain a copy of the NetBSD kernel sources. Version 1.1 of the scheduler has been developed for NetBSD 4.0 (these sources can be downloaded from one of the official NetBSD mirrors). It will probably not work on newer versions without major modifications, because the scheduler has been changed quite a bit.
Copy the NetBSD kernel sources into nnsched's sys
directory
(or copy nnsched's sys dir into the NetBSD sys
dir). Then
apply the kernel patches:
$ cd sys
$ patch < nnsched-1.1-netbsd-4.0.patch
Now, add options to include the neural network pseudo devices in the kernel to your config file (currently building a patched kernel without these options is not supported and will fail):
pseudo-device nnfmon # NN feature monitor
pseudo-device nnconf # NN configuration device
Now, config and build a new kernel (don't forget to
make clean; make depend
if you're using a previously
config'ed kernel!), install the kernel, reboot and enjoy.
If you do not know how to build and configure a kernel,
read this.
Finally, you will need to create the pseudo-devices:
# cd /dev
# mknod nnfmon c 165 0
# mknod nnconf c 166 0
# cd /dev
# mknod nnfmon c 188 0
# mknod nnconf c 189 0
That's it. Now you can start using the new scheduler.
The latest version is 1.1. Get the code here:
There is no real documentation or manual (yet), but you can read the master's thesis that introduced the system. It contains a chapter ("Implementation") that talks about how it can be used.
The presentation I gave on 12 June 2008 at Radboud University is now available in several formats, too:
nnsched was designed and implemented by
Peter Bex
Blah. Copyright 2005-2007 and all that.