I'd like to write user-mode scheduling mechanism for linux. This is a new stuff for Win7, and there's nothing similar on linux at the moment - link:
(google -> 'user mode scheduling' -> first entry)
I'd like to develop this project as my MSc thesis, but dont worry, I dont want you to solve it for me.
I was thinking of a mechanism which allows threads to switch context entirely in user-mode, taking advantage of multiprocessor machines. This is the minumum. The maximum is a direct copy of Win7 UMS(see link above).
I'd like your opinion on:
1) how big is the project?
2) is there something similar already
3) could it be done in 7 months for a person who knows basics linux kernel programming (I've written a cryptographic device driver and attached data prefetching to a kernel)
4)Is this the correct forum to ask this questions? ;) What other forums could I try at?
If you are considering such a project for an MSc thesis then you should do the research to answer these questions yourself. First, you need to understand the Linux schedulers in depth, then you need to consider how you might integrate user-mode scheduling into that, or how to add a user-mode scheduler to the kernel (noting that the kernel already supports more than one scheduler). Then, you need to consider how quickly you can design, model, implement, and test this sort of code to determine whether or not you can complete such a project in the time allowed. In any case, I think you need a month to analyze the problem in order to answer that.
As for direct copying of Win7 UMS code to Linux, I think you are probably out of your mind... :-)
I hope this is a joke ;) good one.
Originally Posted by Rubberman
To be clear: I wanted to copy THE IDEA of Win7 UMS (make exactly the same API on Linux)
Ah! I misinterpreted what you said, thinking you really meant to copy the MS code directly to Linux... Besides, that would probably not be something to submit as your MS thesis. As for the IDEA of it, it kind of depends upon what the intent of UMS is and whether or not that makes sense in the Linux environment. My general feeling is that you could probably do something of the sort in a 6-7 month time frame. In any case, look into the sched_setscheduler() and sched_getscheduler() functions currently in effect in Linux.
Originally Posted by wegorek