Re:OS design
Posted: Mon Oct 18, 2004 1:34 pm
I wouldn't dismiss user-level threads lightly. In the guise of "lightweight threads" or "coroutines", several modern kernel designs pretty much revolve around them - being designed in instead of retrofitted, of course.Brendan wrote: The user-level threading wasn't too good because it was outside of the kernel's control - there was no way to tell the kernel the priority of your threads, and in some cases (with really old round robin kernel schedulers) you couldn't even tell the kernel that all of the threads within the process where blocked/waiting.
Eventually different versions of *nix built multi-threading support into the kernel to get rid of the problems with user-level threads.
You can switch between them quickly, without "risking" to lose focus to another address space, and there are several other nifty things can be done with them which I can't explain in a sentence.